我在 Github 上持续关注的项目

我在 Github 上持续关注的项目

in

本列表不做分类,不做评级,也不仅只关注高星,而是争取简单介绍我个人认为有趣的,或者愿意持续关注的项目,不分先后随机地列出。我也可能会不预先通知地将某些我不再关注的、或不再被维护的项目移出此列表。


最精简的 Office - Awfice

HTML , JavaScript

https://github.com/zserge/awfice

这个项目给自己的描述是 “the world smallest office suite”, 也即世界上最小的 office 套件,同时也给出了每一个单独组件的大小,例如表格组件 Spreadsheet 在我写下这行文字时的大小是 679 bytes。当然,你无法期望如此大小的组件能像诸如 Apple iWork, MS Office 或金山 Office 等软件一样满足工作的大部分需求,很多组件仅仅只满足了字面意义上的功能(例如 Text Editor 真的只能编辑文本,连保存功能都只能交给用户来管理) — 事实上,作者自己也在调侃这是一个半开玩笑式的项目。然而,计算机发展史上很多项目都是出自异想天开、赌约甚至是玩笑,很多时候伟大的项目最初的设想都是超越同时代地 “滑稽” 的。我认为这也是真正极客精神的一种体现:对任何看似荒谬的想法,也要尽可能去大胆探索并实现,甚至即使最终只证明了它的不可行性,也已经是对某个方向边界的一种拓展以及对自己能力的磨练,没准下一个伟大的项目就出自你我手中呢?


发布管理器 - Ship.js

JavaScript

https://github.com/algolia/shipjs

本项目是著名开源搜索服务 Algolia 旗下的 JS 包版本发布管理器。我在为一个基于 Vuepress 的静态文档网站查找一个方便的版本发布工具时找到了这个项目,虽然最终没有使用它,但是它试图解决的 JS 项目版本发布中问题确实戳中了很多痛点。也许后面某一天我会实际上手一试。


物联网数据引擎 - TDEngine

C , Python

https://github.com/taosdata/TDengine

我对物联网以及相关知识没有任何涉猎,但是一法通万法,在我熟悉的生物信息计算领域,海量(数量和单体数据的体量)数据的存储、查询、转换与处理是几乎所有现代研究的基础,随着人类需要处理的数据量的几何级数式增长,越来越多的 ETL 工具、分布式存储查询工具被开发出来以供特定领域的需求。本项目看起来似乎是一个 Startup 的面向物联网数据的核心引擎,能够在 Github 上将自己的核心、尤其是很底层的代码开源本身就是对技术力的自信,通过我的简单研究,这个引擎实际是一个 IoT Domain Specific 的关系型数据库的替代品,并同时原生:

  • 支持传统 SQL 的高速查询
  • 针对多设备在数据表和模型层面作了优化
  • 优化了持续查询的表现
  • 支持 Pub/Sub 模型
  • 提供了多语言(Python/R/Matlab/Java/C)的客户端,提供 Kafka 等消息队列系统的接口,以及 Grafana 等监控工具的支持

项目官网有提到云方案的资费,但我没有仔细研究有哪些云服务商提供 TDEngine 的封装好的 Hosted Service,如果这一点有现成的解决方案,那将是对很多有类似需求公司(不仅仅是物联网领域,而是广义上需要分布式多设备持续查询的任意领域)的福音,毕竟,在 DevOps 复杂度和成本越来越高的今天,我连 PostgreSQL 都会去找 CloudSQL、RDS 这种 DBaaS 云托管服务而实在懒得自己去管理了。。。


底层系统设计资料 - low-level-design-primer

https://github.com/prasadgujar/low-level-design-primer

一份非常简单的底层系统设计的学习资料清单,话不多说,直接开啃就好。


包罗万象的计算机开发自学指南 - Coding Interview University

https://github.com/jwasham/coding-interview-university

与另一份底层设计学习清单,这份计算机(面向编程面试)学习指南包罗万象,从前端开发到算法再到系统设计都有所涵盖,如果全部学习下来我认为基本可以顶得上计算机 B.S. 科班一年的知识量。适合任何想要系统性学习计算机以及拥有 3-6 个月面试准备时间的计算机从业面试者。


Github 的自托管开源方案替代品 - Gitea

Go

https://github.com/go-gitea/gitea

不用多介绍,如果你(出于代码安全或学习或任何其他原因)想自己托管一个能媲美 Github 服务的 基于 git 的版本控制平台,这个基于 Go 的开源项目基本实现了所有你需要的功能!


又一份学习 Vim 的指南 - Learn-Vim

Vim

https://github.com/iggredible/Learn-Vim

不用多说,这是又一份帮你学 (bèi) 习 (sòng) Vim 使用方式和技巧的学习资料!


社区开发的模拟飞行 A320 - FlyByWire A32NX

C++ , HTML , JavaScript

https://github.com/flybywiresim/a32nx

微软模拟飞行可堪称是模拟类游戏中的霸主之一了,多年来经久不衰,甚至有职业飞行员配置全套装备来锻炼自己的飞行技巧。2020 年微软推出的最新一代模拟飞行更是因其逼真的模拟体验(尽管有飞行员称新一代模拟体验在专业人员看来有所下降)和新渲染技术带来的逼真的环境模拟而好评如潮。本项目是社区维护的空客 A320 飞机模型。A32X 可以说是北美中短程航线(东西海岸、佛罗里达航线等)最普及的机型之一了,作为一个社区维护的开源模型,它提供了很完整的特性,模拟飞行迷们赶紧安装试试吧!✈


在 Python 中画出复杂的系统设计图 - Diagrams

Python , JavaScript

https://github.com/mingrammer/diagrams

就像本项目描述所说的 “Diagram as Code”, 这个基于 Graphviz(在 Mac 上需要 brew install graphviz 来安装,其他平台须遵循安装指南) 的项目让你使用 Python 代码来画出复杂的云系统设计图。设计理念有点类似 Markdown 的 mermaid 插件,不同之处在于本项目面向 Python 开发者。目前在我的尝试中,用较为简洁的代码就可以画出很漂亮的 Technical Diagram,但距离完全替代诸如 draw.io、Lucidchart 等 GUI 工具还有些差距,不过,由于本项目是完全开源免费的,我相信比起收费的 Lucichart 等工具在不复杂的基础用例上有着更好的前景。

下面是我根据官方例子画的一个简单的 GKE 应用的设计图:

from diagrams import Diagram
from diagrams.k8s.clusterconfig import HPA
from diagrams.k8s.compute import Deployment, Pod, ReplicaSet
from diagrams.k8s.network import Ingress, Service

with Diagram("WorkFlow Launcher Pod on GKE with 3 Replicas", show=False):
    net = Ingress("wfl.domain.com") >> Service("svc")
    net >> [Pod("pod1"),
            Pod("pod2"),
            Pod("pod3")] << ReplicaSet("rs") << Deployment("dp") << HPA("hpa")

diagram


  • 封面图片来自无版权图站 pixabay