HelloGitHub 第 34 期
開源、入門級視訊播放器跨平臺視訊播放器。該播放器擁有視訊播放器基本功能,適合學習播放器開發技術,音訊、視訊技術

Go 專案
sqler
根據 SQL 和配置檔案生成介面的工具。與傳統的 SQL 生成 RESETful API 的工具不同,這個工具允許你自定義一些 API 的前、後處理,Auth 之類的行為。啟動命令sqler -config=path to config file
,配置示例:
adduser { // 引數校驗 validators { user_name_is_empty = "$input.user_name && $input.user_name.trim().length > 0" user_email_is_empty = "$input.user_email && $input.user_email.trim(' ').length > 0" user_password_is_not_ok = "$input.user_password && $input.user_password.trim(' ').length > 5" } bind { name = "$input.user_name" email = "$input.user_email" password = "$input.user_password" } methods = ["POST"] // 許可權校驗 authorizer = <<JS (function(){ log("use this for debugging") token = $input.http_authorization response = fetch("http://requestbin.fullcontact.com/zxpjigzx", { headers: { "Authorization": token } }) if ( response.statusCode != 200 ) { return false } return true })() JS exec = <<SQL INSERT INTO users(name, email, password, time) VALUES(:name, :email, :password, UNIX_TIMESTAMP()); SELECT * FROM users WHERE id = LAST_INSERT_ID(); SQL }color
Golang 的命令列色彩使用庫。擁有豐富的色彩渲染輸出、通用的 API 方法、相容 Windows 系統

釣魚網站生成工具。該工具會根據給定的模版生成一個釣魚網站,然後在該網站輸入的使用者名稱密碼等敏感資訊會被記錄

通過動態二維碼傳輸資料,如:傳輸檔案等。

批量管理 Git 倉庫的命令列工具

Java 專案
hutool
功能豐富的 Java 工具包。它幫助我們實現了常用的工具方法,從而減少程式碼的體積,提高開發效率。該專案最初是作者工作專案中的util
模組,後來慢慢積累並加入更多非業務相關工具類方法。經過整理修改,最終形成豐富的開源工具集。示例程式碼:
int a = 1; //aStr為"1" String aStr = Convert.toStr(a);android-viabus-architecture
一款響應式架構。藉助匯流排轉發資料的請求和響應,實現 UI、業務的完全解耦

Android 工具庫,註釋規範、API文件清晰明瞭、工具類種類多。根據不同功能模組封裝,方便使用。幫助開發人員,便捷、快速地開發安全、可靠的專案。內建部分常用的資原始檔,如 color.xml、layout.xml 等
JavaScript 專案
vConsole騰訊開源的移動 H5 的控制檯開發除錯工具,支援檢視 console 日誌、網路請求、自定義外掛等。示例程式碼:
<script src="path/to/vconsole.min.js"></script> <script> // init vConsole var vConsole = new VConsole(); console.log('Hello world'); </script>

騰訊開源的通用 Web 元件化框架。特點:
- 擁有官方 UI 元件庫
- 使用 omio 可以相容到 IE8
- 設計精巧、相容性好
- 基於 Web Components 標準
- 等等
import { render, WeElement, define } from 'omi' define('my-counter', class extends WeElement { static observe = true data = { count: 1 } sub = () => { this.data.count-- } add = () => { this.data.count++ } render() { return ( <div> <button onClick={this.sub}>-</button> <span>{this.data.count}</span> <button onClick={this.add}>+</button> </div> ) } }) render(<my-counter />, 'body')RSSHub
輕量、易於擴充套件的 RSS 生成器,可以給任何奇奇怪怪的內容生成 RSS 訂閱源。現已支援豐富的源,詳情見文件
hve-notes靜態部落格寫作客戶端,你可以用它來記錄你的生活、心情、知識、筆記、創意。使用了 electron 技術,對於學習 Javascript 桌面端開發是一個很好的專案

提供線上借書功能的開源小程式專案。連線讀者與圖書館,實現圖書借閱線上化。介面風格良好,功能完整。具有註冊登入、圖書搜尋、書單系統、訂單管理等功能。這是一個完整的小程式專案,包括了前後端的開發,並且撰寫了完善的文件,適合初學者學習。可以掃描下面的小程式碼體驗:

實現了類似 GitHub 404 頁面的動畫效果。效果有趣,使用場景較多,並且實現了元件化,示例程式碼:
<html> <head> <title>Demo - Axial3d</title> </head> <body> <script src="https://unpkg.com/axial3d"></script> <div id="axial3d"></div> <script> (function () { var options = { selector: '#axial3d', imgs: [ {src: 'https://bestvist.github.io/axial3d/public/demo1/bg.png', left: '50px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/2.png', left: '150px', top: '10px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/3.png', left: '50px', top: '300px'}, {src: 'https://bestvist.github.io/axial3d/public/demo1/4.png', left: '300px', top: '300px'} ] } var effect = new Axial3d(options); })() </script> </body> </html>

基於 Three.js 的 Web 3D 地球資料視覺化的開源元件庫。使用 Gio.js 的網頁應用開發者,可以快速地以申明的方式建立自定義的 Web3D 資料視覺化模型,新增資料,並且將其作為一個元件整合到自己的應用中。支援靜態 Dom、React和微信小程式。具有一下特點:
- 易用性 -- 僅使用 4 行 Javascript 即可建立 3D 地球資料視覺化模型
- 定製化 -- 使用 Gio.js 提供的豐富的 API 來建立自定義樣式的 3D 地球
- 現代化 -- 基於 Gio.js 構建高互動、跨平臺、自適應的現代化 3D 前端應用

Objective-C 專案
keycastr在螢幕上實時顯示當前按鍵的工具

一款 macOS 的強大的修鍵軟體
PHP 專案
laravel-s用於快速整合Swoole 到Laravel ,開箱即用。特點:
- 整合 LaravelS 之後無需使用 PHP FPM,直接基於 Swoole 開啟 HTTP Server
- 程式碼常駐記憶體之中,效能提升非常明顯
- 可快速開發 WebSocket/TCP/UDP 服務
- 支援非同步任務佇列、自定義程序、定時任務,支援更多的業務場景
- 可直接使用 Swoole 的很多特性
- 等等

Python 專案
sherlock(英文)在主流社交網站,例如:GitHub、Facebook 等網站上查詢指定的使用者名稱是否存在。你想取一個獨一無二的名字嗎?快試試吧

Python 的第三方庫,用於快速建立命令列。支援裝飾器方式呼叫、多種引數型別、自動生成幫助資訊等。示例程式碼如下:
import click @click.command() @click.option("--count", default=1, help="Number of greetings.") @click.option("--name", prompt="Your name", help="The person to greet.") def hello(count, name): """Simple program that greets NAME for a total of COUNT times.""" for _ in range(count): click.echo("Hello, %s!" % name) if __name__ == '__main__': hello() # 下面為執行效果 $ python hello.py --count=3 Your name: Click Hello, Click! Hello, Click! Hello, Click!PSpider
程式碼量極少,功能卻很完備的 Python 爬蟲框架。特點:
- 功能完備:包含抓取、解析、儲存等
- 程式碼量少:方便閱讀原始碼、動手修改、二次開發
- 等等

(英文)介紹 Python 有趣、神奇的開源專案。目前涵蓋多個領域、專案豐富
ranger以類似 VIM 操作,方便、快捷地管理檔案的工具
Swift 專案
iOS-Developer-Roadmap(英文) iOS 開發者學習路線圖
其它
Visual-Studio-Code-Keymap-CNVS Code 編輯器官方快捷鍵查圖漢化版
algorithm-visualizer演算法視覺化工具。你可以自由選擇自己想學習的演算法,每個演算法它都清晰描繪了其原理和運作過程
html《HTML 標準》中文版
機器學習
spinningup(英文)OpenAI 製作的教育資源,可以更容易地學習深層強化學習。官方專案,淺顯易懂,提供練手的例子,方便初學者或對深層強化學習感興趣的人群學習和入門
the-gan-zoo生成對抗網路(Generative Adversarial Networks,簡稱GAN)的一個大集合,作者列舉了生成對抗網路領域各式各樣的應用集合,大部分為論文,包含少數的 GitHub 專案。該專案對於 GAN 領域覆蓋面全面,論文列表整理清晰,GAN 方向的研究者可以從這個專案中查詢到想看的經典的論文或者擴充自己的知識儲備

Google 神級語言表示模型的 PyTorch 預訓練模型和 PyTorch 框架結合,使得更加容易上手。PyTorch 版本更方便小白上手實驗。示例程式碼:
import torch from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM # Load pre-trained model tokenizer (vocabulary) tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # Tokenized input text = "Who was Jim Henson ? Jim Henson was a puppeteer" tokenized_text = tokenizer.tokenize(text) # Mask a token that we will try to predict back with `BertForMaskedLM` masked_index = 6 tokenized_text[masked_index] = '[MASK]' assert tokenized_text == ['who', 'was', 'jim', 'henson', '?', 'jim', '[MASK]', 'was', 'a', 'puppet', '##eer'] # Convert token to vocabulary indices indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text) # Define sentence A and B indices associated to 1st and 2nd sentences (see paper) segments_ids = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1] # Convert inputs to PyTorch tensors tokens_tensor = torch.tensor([indexed_tokens]) segments_tensors = torch.tensor([segments_ids])RecommenderSystem-Paper
推薦系統論文整理列表,包括了行業頂尖會議 AAAI、NIPS 等發表的論文,以及 KDD 一些獲獎論文。方便推薦系統方向以及文字表示方向等研究人員,跟蹤閱讀行業內經典論文和最新研究方向
Semantic-Segmentation-Suite影象語義分割模型元件整理,包含了模型、資料增廣、準確率評價等模組。方便研究者快速搭建和試驗一個影象語義分割模型,同時集成了一些 state-of-the-art 的模型
