公告
新加入了 2 位機器學期的小夥伴負責機器學習專欄。項目的首頁增長合做組織一欄,若有開源組織有意合做能夠點擊聯繫我。javascript
咱們還在路上,不停地前行。html
《HelloGitHub》第 32 期
興趣是最好的老師,HelloGitHub 就是幫你找到興趣!前端
簡介
分享 GitHub 上有趣、入門級的開源項目。java
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人羣的月刊,月刊的內容包括:各類編程語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是很是容易上手,並且很是 Cool。主要是但願你們能動手用起來,加入到開源社區中。python
- 會編程的能夠貢獻代碼
- 不會編程的能夠反饋使用這些工具中的 Bug
- 幫着宣傳你以爲優秀的項目
- Star 項目⭐️
在瀏覽、參與這些項目的過程當中,你將學習到更多編程知識、提升編程技巧、找到編程的樂趣。mysql
🎉 最後 HelloGitHub 這個項目就誕生了 🎉c++
如下爲本期內容|每月 28 號發佈最新一期|點擊查看往期內容git
C 項目
一、os-tutorial:(英文)如何從頭開始建立操做系統程序員
二、nvtop:NVIDIA GPU 類 (h)top 的任務監控工具,它能夠監控多個 GPU 並以熟悉的方式(類 htop 方式)打印有關它們的信息github
C# 項目
三、QuickLook:它容許 Windows 用戶只需按空格鍵便可以快速地查看文件內容(類 macOS 的 Quick Look)
C++ 項目
四、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 項目
五、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 =======================================================================
六、dive:用來探索 docker 鏡像每一層文件系統,以及發現縮小鏡像體積方法的命令行工具。啓動命令:dive 鏡像名
七、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替代。
八、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>
九、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!
十、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 項目
十一、ratel:命令行可聯網的鬥地主遊戲。Ratel 分客戶端和服務端,你可讓小夥伴們的客戶端都鏈接你的服務器進行遊戲,也能夠直接鏈接做者的公網服務器進行遊戲
十二、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 項目
1三、three.js:一個知名的 JavaScript 3D 庫。隨着數據可視化以及 Web AR 的流行,會愈來愈多使用到 three.js ,尤爲是和 Vue/React 前端框架結合使用。官方網站包含豐富的示例和全面的中文文檔,趕快去寫幾個 demo 熟悉下該庫吧
1四、storybook:UI 組件開發測試的環境。你可使用 React、React Native、Vue、Angular、Ember 開發你的組件,而且可使用 storybook 提供的衆多插件進行測試以及開發。在線示例
1五、hexo:基於 Node.js 快速、簡潔且高效的靜態博客生成框架。可使用 hexo 快速生成靜態博客,它擁有豐富的插件庫、主題庫。在使用 hexo 的時候也能夠本身建立、定製屬於本身的主題
Objective-C 項目
1七、MacPass:一款 macOS 平臺的免費、開源、實用的密碼管理工具
Python 項目
1八、himawaripy:一個 Python3 腳本,它會定時(需設置定時任務)抓取由日本 Himawari 8 氣象衛星拍攝的接近實時的地球照片,並將它設置成你的桌面背景
其它
1九、search-engine-optimization:(英文)這個項目收集了不少 SEO 優化的建議
20、lemonade-stand:《開源項目掙錢實用手冊》中文版
2一、ProgrammingFonts:適合程序員的編程字體的集合,如今有 30 多種奇妙的字體
2二、Linux-Tutorial:Java 程序員眼中的 Linux
2三、Best-websites-a-programmer-should-visit:(英文)一些對程序員有用的網站,網站類別包含:新聞、查問題、學習、教程等
開源書籍
2四、sdn-handbook:有關 SDN 的資料和書籍很是豐富,但入門和學習 SDN 依然是很是困難。該項目整理了 SDN 實踐中的一些基本理論和實踐案例心得,但願你們看完後有所收穫
2五、write-you-a-haskell:(英文)《Write You a Haskell》
機器學習
2六、awesome-machine-learning:一個精選的機器學習框架、庫、軟件的集合項目
2七、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)
2八、deepvariant:一個數據分析工做流。可以使用深度神經網絡從下一代 DNA 序列數據中調用遺傳變異體,聯想到了最近的基因編輯人類事件。關於如何工做的技術細節,以下圖:
2九、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
聲明
若是你發現了好玩、有意義的開源項目 點擊這裏 分享你以爲有意思的項目。
歡迎轉載,請註明出處和做者,同時保留聲明。
本文同步分享在 博客"削微寒的程序員之路"(CNBlog)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。