公告
新加入了 2 位機器學期的小伙伴負責機器學習專欄。項目的首頁增加合作組織一欄,如有開源組織有意合作可以點擊聯系我。
我們還在路上,不停地前行。
《HelloGitHub》第 32 期
興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
簡介
分享 GitHub 上有趣、入門級的開源項目。
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人群的月刊,月刊的內容包括:各種編程語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社區中。
- 會編程的可以貢獻代碼
- 不會編程的可以反饋使用這些工具中的 Bug
- 幫着宣傳你覺得優秀的項目
- Star 項目⭐️
在瀏覽、參與這些項目的過程中,你將學習到更多編程知識、提高編程技巧、找到編程的樂趣。
🎉 最后 HelloGitHub 這個項目就誕生了 🎉
以下為本期內容|每個月 28 號發布最新一期|點擊查看往期內容
C 項目
1、os-tutorial:(英文)如何從頭開始創建操作系統
2、nvtop:NVIDIA GPU 類 (h)top 的任務監控工具,它可以監控多個 GPU 並以熟悉的方式(類 htop 方式)打印有關它們的信息
C# 項目
3、QuickLook:它允許 Windows 用戶只需按空格鍵即可以快速地查看文件內容(類 macOS 的 Quick Look)
C++ 項目
4、oatpp:輕量、高性能、零依賴,純 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:該工具通過抓包截取項目中的數據庫、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
=======================================================================
6、dive:用來探索 docker 鏡像每一層文件系統,以及發現縮小鏡像體積方法的命令行工具。啟動命令:dive 鏡像名
7、soar: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:把命令行的輸出 stdout 和 stderr 重定向為一個 websocket 服務的工具。運行步驟如下:
- 安裝命令:
brew install websocketd
- 創建 count.sh 內容如下
- 運行 count.sh,命令:
./count.sh
- 啟動一個 websocket server,命令:
websocketd --port=8080 ./count.sh
- 創建 html 文件,代碼如下
- 點擊打開 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: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:命令行壓縮和解壓縮工具。終於不用再記 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:命令行可聯網的斗地主游戲。Ratel 分客戶端和服務端,你可以讓小伙伴們的客戶端都連接你的服務器進行游戲,也可以直接連接作者的公網服務器進行游戲
12、SpiderMan:手機端顯示 Android 崩潰日志,示例代碼如下:
SpiderMan.init(this)
//設置回調異常信息,友盟等第三方崩潰信息收集平台會用到,
.setOnCrashListener(new SpiderMan.OnCrashListener() {
/**
*
* @param t
* @param ex
* @param model 崩潰信息記錄,包含設備信息
*/
@Override
public void onCrash(Thread t, Throwable ex, CrashModel model) {
}
});
JavaScript 項目
13、three.js:一個知名的 JavaScript 3D 庫。隨着數據可視化以及 Web AR 的流行,會越來越多使用到 three.js ,尤其是和 Vue/React 前端框架結合使用。官方網站包含豐富的示例和全面的中文文檔,趕快去寫幾個 demo 熟悉下該庫吧
14、storybook:UI 組件開發測試的環境。你可以使用 React、React Native、Vue、Angular、Ember 開發你的組件,並且可以使用 storybook 提供的眾多插件進行測試以及開發。在線示例
15、hexo:基於 Node.js 快速、簡潔且高效的靜態博客生成框架。可以使用 hexo 快速生成靜態博客,它擁有豐富的插件庫、主題庫。在使用 hexo 的時候也可以自己創建、定制屬於自己的主題
Objective-C 項目
17、MacPass:一款 macOS 平台的免費、開源、實用的密碼管理工具
Python 項目
18、himawaripy:一個 Python3 腳本,它會定時(需設置定時任務)抓取由日本 Himawari 8 氣象衛星拍攝的接近實時的地球照片,並將它設置成你的桌面背景
其它
19、search-engine-optimization:(英文)這個項目收集了很多 SEO 優化的建議
20、lemonade-stand:《開源項目掙錢實用手冊》中文版
21、ProgrammingFonts:適合程序員的編程字體的集合,現在有 30 多種奇妙的字體
22、Linux-Tutorial:Java 程序員眼中的 Linux
23、Best-websites-a-programmer-should-visit:(英文)一些對程序員有用的網站,網站類別包含:新聞、查問題、學習、教程等
開源書籍
24、sdn-handbook:有關 SDN 的資料和書籍非常豐富,但入門和學習 SDN 依然是非常困難。該項目整理了 SDN 實踐中的一些基本理論和實踐案例心得,希望大家看完后有所收獲
25、write-you-a-haskell:(英文)《Write You a Haskell》
機器學習
26、awesome-machine-learning:一個精選的機器學習框架、庫、軟件的集合項目
27、fastai:利用當前最好的深度學習算法簡化訓練神經網絡的過程。包含了很多“開箱即用”的工具,支持 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:一個數據分析工作流。能夠使用深度神經網絡從下一代 DNA 序列數據中調用遺傳變異體,聯想到了最近的基因編輯人類事件。關於如何工作的技術細節,如下圖:
29、AlphaAI:使用無監督學習和監督學習來預測股票,有趣的項目。運行步驟如下:
git clone https://github.com/VivekPa/AlphaAI.git
cd AlphaAI
pip install -r requirements.txt
python run.py
30、bert:一種新的語言表征模型,來自 Transformer 的雙向編碼器表征。目前最強 NLP 預訓練模型,橫掃 11 項 NLP 任務記錄
換種方式閱讀
- 網站: https://hellogithub.com
- GitBook: https://gitbook.hellogithub.com
聲明
如果你發現了好玩、有意義的開源項目 點擊這里 分享你覺得有意思的項目。
歡迎轉載,請注明出處和作者,同時保留聲明。