《HelloGitHub》第 32 期

公告

新加入了 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 服務的工具。運行步驟以下:

  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>

九、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 的時候也能夠本身建立、定製屬於本身的主題

1六、picojs:200 行實現的面部識別庫,在線示例

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 任務記錄


換種方式閱讀

聲明

若是你發現了好玩、有意義的開源項目 點擊這裏 分享你以爲有意思的項目。

歡迎轉載,請註明出處和做者,同時保留聲明。

本文同步分享在 博客"削微寒的程序員之路"(CNBlog)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索