Skip to main content

黑洞资源笔记

  1. Medis 是薄雾算法 Mist 的工程实践,其名取自 Mist 和 Redis

    薄雾算法是一款性能强到令作者惊喜的全局唯一ID算法,作者将它与业内同样高性能的Redis和Golang结合到一起,碰撞出了 TPS 为 2.5w/sec 这样超高性能的工程。

    有了 Mist 和 Medis,你就拥有了和美团 Leaf、微信 Seqsvr、百度 UIDGenerator 性能相当(甚至超过)的全局唯一 ID 服务了。相比复杂的 UIDGenerator 双 Buffer 优化和 Leaf-Snowflake,薄雾算法 Mist 简单太多了。

    Medis 的高性能从何而来?

    作为开发者,你一定想知道 Medis 这 2.5w/sec 的 TPS 到底从何而来。实际上这不仅是薄雾算法本身超高性能带来的结果,作者在设计上也做了很多尝试,例如:

    使用 Channel 作为数据缓存,这个操作使得发号服务性能提升了 7 倍;
    采用预存预取的策略保证 Channel 在大多数情况下都有值,从而能够迅速响应客户端发来的请求;
    用 Gorouting 去执行耗费时间的预存预取操作,不会影响对客户端请求的响应;
    采用 Lrange Ltrim 组合从 Redis 中批量取值,这比循环单次读取或者管道批量读取的效率更高;

    写入 Redis 时采用管道批量写入,效率比循环单次写入更高;
    Seqence 值的计算在预存前进行,这样就不会耽误对客户端请求的响应,虽然薄雾算法的性能是纳秒级别,但并发高的时候也造成一些性能损耗,放在预存时计算显然更香;
    得益于 Golang Echo 框架和 Golang 本身的高性能,整套流程下来令人很满意,如果要追求极致性能,可以试试 Rust;

    medis
  2. 台湾电子书网站 pubu下载软件正式发布

    下载基本没限制,网站上的电子书,杂志,报纸这三样能下。

    有声书不能下。付费书籍,能试读都可以下载
  3. Appwrite是一个开源的端到端的后端服务,可以打包为一组 Docker 微服务,以支持 Web、移动、本机或后端应用程序。 Appwrite 抽象了从头开始构建现代后端 API 所需的复杂性和重复性,并允许您更快地构建安全的应用程序。

    使用 Appwrite,可以轻松地将应用程序与用户身份验证和多种登录方法、用于存储和查询用户和团队数据的数据库、存储和文件管理、图像处理、云功能和更多服务集成。

    Github | 官网地址
  4. 一张插画家Rod Hunt画的苹果总部Apple Park的插画

    这张画里面有乔布斯、库克、史蒂夫沃兹尼亚克和乔尼艾夫,看看能不能找得着
  5. Viddy是用Go开发的开源的watch命令替代器,具备原始watch命令的基本功能:包括定期执行命令,并显示结果;颜色输出;差异高亮;

    同时还具备一些新功能,包括time machine模式;类似Vim的键盘映射;搜索文本;暂停并重新启动执行;强制以精确的间隔运行命令;支持shell别名;自定义键映射;自定义颜色等等

    viddy | #工具
  6. Space Cloud 是一个基于 Go 和 Kubernetes 的 serverless 平台,可在任何数据库上提供即时、实时的 API,并为自定义业务逻辑提供事件触发器和统一 API。

    Space Cloud 可帮助开发者构建现代应用程序,在大多数情况下无需编写任何后端代码。提供 GraphQL 和 REST API,前端应用可以以安全的方式直接使用这些 API。

    特征

    1.强大的 CRUD:灵活的查询、事务、聚合和跨数据库连接
    2.实时:对您的数据库进行实时查询
    3.文件存储:上传/下载文件到可扩展的文件存储(例如,Amazon S3、谷歌云存储)
    4.可扩展:自定义 HTTP 服务的统一 API
    5.事件驱动:在数据库或文件存储事件上触发 webhook 或无服务器函数
    6.细粒度访问控制:与您的身份验证系统集成的动态访问控制(例如,auth0、firebase-auth)
    7.Scalable : 用 Golang 编写,遵循云原生实践并水平扩展
    8.服务网格:无需学习任何内容即可获得服务网格的所有功能!
    9.缩减到零:自动扩展您的 http 工作负载,包括缩减到零

    下方的文档可以查看完整的功能集

    支持的数据库:
    1.MongoDB
    2.PostgreSQL和 PostgreSQL 兼容数据库(例如 CockroachDB、Yugabyte 等)
    3.MySQL和 MySQL 兼容的数据库(例如 TiDB、MariaDB 等)
    SQL 服务器

    文档说明 | Github | 官网
  7. Rust写的高效搜索引擎

    lnx 的构建是为了不重新发明轮子,它位于tokio-rs工作窃取运行时、超Web 框架与tantivy 搜索引擎的原始计算能力相结合的基础之上。

    这使得 lnx 可以一次对数万个文档插入提供毫秒级索引(不再等待被索引的东西!),每个索引事务以及处理搜索的能力,就像它只是对哈希表的另一种查找一样

    特征
    *lnx 虽然非常新,但由于其所处的生态系统,它提供了广泛的功能。
    *复杂查询解析器。
    *容错模糊查询。
    *容错快速模糊查询。(预先计算的拼写校正)
    *More-Like-This 查询。
    *按字段排序。
    *快速索引。
    *快速搜索。
    *细粒度性能调整的几个选项。
    *多个存储后端可用于测试和开发。
    *基于权限的授权访问令牌。

    Github | 官网 | #搜索引擎
  8. 基于PaddleOCR & OnnxRuntime的跨平台OCR库

    百度paddlepaddle工程化不是太好,为了方便大家在各种端上进行ocr推理,我们将它转换为onnx格式,使用python/c++/java/swift/c# 将它移植到各个平台。

    RapidOCR (捷智OCR):英文版 | 中文版 | #ocr