扫一扫
关注 HG 公众号
发现更多开源乐趣

第 32 期

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

C 项目

1. os-tutorial

Star 17.4k Watch 812 Fork 2.0k
(英文)如何从头开始创建操作系统

2. nvtop

Star 2.5k Watch 50 Fork 91
NVIDIA GPU 类 (h)top 的任务监控工具,它可以监控多个 GPU 并以熟悉的方式(类 htop 方式)打印有关它们的信息
nvtop

C# 项目

3. QuickLook

Star 5.4k Watch 191 Fork 441
它允许 Windows 用户只需按空格键即可以快速地查看文件内容(类 macOS 的 Quick Look)
QuickLook

C++ 项目

4. oatpp

Star 2.3k Watch 90 Fork 439
轻量、高性能、零依赖,纯 C++ 实现的 Web 框架。示例代码片段:

ENDPOINT("GET", "demo/api/json", getJson) {
  auto dto = MyDto::createShared();
  dto->statusCode = 200;
  dto->message = "Hello json";
  return createDtoResponse(Status::CODE_200, dto);
}

Output:
{"message": "Hello json", "statusCode": 200}

Go 项目

5. go-sniffer

Star 1.0k Watch 45 Fork 185 中文
该工具通过抓包截取项目中的数据库、redis 请求解析成相应的语句。便于调试,不要修改代码,直接嗅探项目中的数据请求。使用说明如下:

=======================================================================
[使用说明]

    go-sniffer [设备名] [插件名] [插件参数(可选)]

    [例子]
          go-sniffer en0 redis          抓取redis数据包
          go-sniffer en0 mysql -p 3306  抓取mysql数据包,端口3306

    go-sniffer --[命令]
               --help 帮助信息
               --env  环境变量
               --list 插件列表
               --ver  版本信息
               --dev  设备列表
    [例子]
          go-sniffer --list 查看可抓取的协议

=======================================================================
[设备名] : lo0 :   127.0.0.1
[设备名] : en0 : x:x:x:x:x5:x  192.168.1.3
[设备名] : utun2 :   1.1.11.1
=======================================================================

go-sniffer

6. dive

Star 19.4k Watch 276 Fork 692
用来探索 docker 镜像每一层文件系统,以及发现缩小镜像体积方法的命令行工具。启动命令:dive 镜像名
dive

7. soar

Star 6.0k Watch 274 Fork 870 中文
SQL 自动优化和改写的工具。可以自动优化 MySQL 语法族,并且给出为什么要这样优化的理由。功能特点:

  • 跨平台支持
  • 目前只支持 MySQL 语法族协议的 SQL 优化
  • 支持基于启发式算法的语句优化
  • 支持复杂查询的多列索引优化(UPDATE、INSERT、DELETE、SELECT)
  • 等等
echo "select title from sakila.film" | ./soar 
# Query: 25807E6B94BEA72C
★ ★ ★ ★ ☆ 80分
SELECT
  title
FROM
  sakila. film
##  最外层SELECT未指定WHERE条件
* **Item:**  CLA.001
* **Severity:**  L4
* **Content:**  SELECT语句没有WHERE子句,可能检查比预期更多的行(全表扫描)。对于SELECT COUNT(\*)类型的请求如果不要求精度,建议使用SHOW TABLE STATUS或EXPLAIN替代。

8. websocketd

Star 14.5k Watch 363 Fork 819
把命令行的输出 stdout 和 stderr 重定向为一个 websocket 服务的工具。运行步骤如下:

  1. 安装命令:brew install websocketd
  2. 创建 count.sh 内容如下
  3. 运行 count.sh,命令:./count.sh
  4. 启动一个 websocket server,命令:websocketd --port=8080 ./count.sh
  5. 创建 html 文件,代码如下
  6. 点击打开 count.html 文件,查看效果
count.sh 文件内容如下

#!/bin/bash
for ((COUNT = 1; COUNT <= 3; COUNT++)); do
  echo $COUNT
  sleep 1
done

count.html 文件内容如下

<!DOCTYPE html>
<pre id="log"></pre>
<script>
  // helper function: log message to screen
  function log(msg) {
    document.getElementById('log').textContent += msg + '\n';
  }

  // setup websocket with callbacks
  var ws = new WebSocket('ws://localhost:8080/');
  ws.onopen = function() {
    log('CONNECT');
  };
  ws.onclose = function() {
    log('DISCONNECT');
  };
  ws.onmessage = function(event) {
    log('MESSAGE: ' + event.data);
  };
</script>

9. athens

Star 3.1k Watch 90 Fork 351
Go Modules 下载代理服务,解决国内 Go 装包的痛。妈妈再也不用担心我因为装不上依赖库而不吃饭,使用步骤:

$ export GO111MODULE=on
$ export GOPROXY=http://127.0.0.1:3000
$ git clone https://github.com/athens-artifacts/walkthrough.git
$ cd walkthrough
$ go run .
go: downloading github.com/athens-artifacts/samplelib v1.0.0
The 🦁 says rawr!

10. archiver

Star 2.8k Watch 47 Fork 245
命令行压缩和解压缩工具。终于不用再记 tar -czvf 了,使用命令:

# Syntax: arc archive [archive name] [input files...] 压缩

$ arc archive test.tar.gz file1.txt images/file2.jpg folder/subfolder

# Syntax: arc unarchive [archive name] [destination] 解压缩

$ arc unarchive test.tar.gz

Java 项目

11. ratel

Star 1.2k Watch 22 Fork 149 中文
命令行可联网的斗地主游戏。Ratel 分客户端和服务端,你可以让小伙伴们的客户端都连接你的服务器进行游戏,也可以直接连接作者的公网服务器进行游戏
ratel

12. SpiderMan

Star 836 Watch 14 Fork 95 中文
手机端显示 Android 崩溃日志,示例代码如下:

SpiderMan.init(this)
//设置回调异常信息,友盟等第三方崩溃信息收集平台会用到,
.setOnCrashListener(new SpiderMan.OnCrashListener() {
    /**
      *
      * @param t
      * @param ex
      * @param model 崩溃信息记录,包含设备信息
      */
    @Override
    public void onCrash(Thread t, Throwable ex, CrashModel model) {

    }
});

SpiderMan

JavaScript 项目

13. three.js

Star 59.4k Watch 2.5k Fork 22.9k
一个知名的 JavaScript 3D 库。随着数据可视化以及 Web AR 的流行,会越来越多使用到 three.js ,尤其是和 Vue/React 前端框架结合使用。官方网站包含丰富的示例和全面的中文文档,赶快去写几个 demo 熟悉下该库吧
three.js

14. storybook

Star 46.8k Watch 698 Fork 4.4k
UI 组件开发测试的环境。你可以使用 React、React Native、Vue、Angular、Ember 开发你的组件,并且可以使用 storybook 提供的众多插件进行测试以及开发。在线示例

15. hexo

Star 30.0k Watch 860 Fork 3.9k
基于 Node.js 快速、简洁且高效的静态博客生成框架。可以使用 hexo 快速生成静态博客,它拥有丰富的插件库主题库。在使用 hexo 的时候也可以自己创建、定制属于自己的主题

16. picojs

Star 5.5k Watch 149 Fork 405
200 行实现的面部识别库,在线示例

Objective-C 项目

17. MacPass

Star 5.3k Watch 223 Fork 391
一款 macOS 平台的免费、开源、实用的密码管理工具
MacPass

Python 项目

18. himawaripy

Star 1.3k Watch 51 Fork 219 中文
一个 Python3 脚本,它会定时(需设置定时任务)抓取由日本 Himawari 8 气象卫星拍摄的接近实时的地球照片,并将它设置成你的桌面背景
himawaripy

其它

19. search-engine-optimization

Star 1.4k Watch 77 Fork 225
(英文)这个项目收集了很多 SEO 优化的建议

20. lemonade-stand

Star 6.1k Watch 220 Fork 302 中文
《开源项目挣钱实用手册》中文版

21. ProgrammingFonts

Star 1.6k Watch 76 Fork 188
适合程序员的编程字体的集合,现在有 30 多种奇妙的字体
ProgrammingFonts

22. Linux-Tutorial

Star 7.0k Watch 632 Fork 2.3k 中文
Java 程序员眼中的 Linux

23. Best-websites-a-programmer-should-visit

Star 30.2k Watch 1.2k Fork 3.6k
(英文)一些对程序员有用的网站,网站类别包含:新闻、查问题、学习、教程等

开源书籍

24. sdn-handbook

Star 664 Watch 60 Fork 201 中文
有关 SDN 的资料和书籍非常丰富,但入门和学习 SDN 依然是非常困难。该项目整理了 SDN 实践中的一些基本理论和实践案例心得,希望大家看完后有所收获

25. write-you-a-haskell

Star 2.7k Watch 203 Fork 222
(英文)《Write You a Haskell》

机器学习

26. awesome-machine-learning

Star 44.0k Watch 3.3k Fork 11.1k 中文
一个精选的机器学习框架、库、软件的集合项目

27. fastai

Star 17.5k Watch 654 Fork 6.2k
利用当前最好的深度学习算法简化训练神经网络的过程。包含了很多“开箱即用”的工具,支持 Vision、Collab 等模型。示例代码:

# here's how to train an MNIST model using resnet18
untar_data(MNIST_PATH)
data = image_data_from_folder(MNIST_PATH)
learn = create_cnn(data, tvm.resnet18, metrics=accuracy)
learn.fit(1)

28. deepvariant

Star 1.9k Watch 160 Fork 480
一个数据分析工作流。能够使用深度神经网络从下一代 DNA 序列数据中调用遗传变异体,联想到了最近的基因编辑人类事件。关于如何工作的技术细节,如下图:
deepvariant

29. AIAlpha

Star 940 Watch 106 Fork 300
使用无监督学习和监督学习来预测股票,有趣的项目。运行步骤如下:

git clone https://github.com/VivekPa/AlphaAI.git
cd AlphaAI
pip install -r requirements.txt
python run.py

AIAlpha

30. bert

Star 22.2k Watch 921 Fork 6.2k
一种新的语言表征模型,来自 Transformer 的双向编码器表征。目前最强 NLP 预训练模型,横扫 11 项 NLP 任务记录
bert