《HelloGitHub》第 57 期

削微寒發表於2020-12-28

興趣是最好的老師,HelloGitHub 就是幫你找到興趣!

簡介

分享 GitHub 上有趣、入門級的開源專案。

這是一個面向程式設計新手熱愛程式設計對開源社群感興趣 人群的月刊,月刊的內容包括:各種程式語言的專案讓生活變得更美好的工具書籍、學習筆記、教程等,這些開源專案大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社群中。

  • 會程式設計的可以貢獻程式碼
  • 不會程式設計的可以反饋使用這些工具中的 Bug
  • 幫著宣傳你覺得優秀的專案
  • Star 專案⭐️

在瀏覽、參與這些專案的過程中,你將學習到更多程式設計知識提高程式設計技巧找到程式設計的樂趣

? 最後 HelloGitHub 這個專案就誕生了 ?


以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容

C 專案

1、ngx_waf:一個 Nginx 防火牆模組。我差點就錯過了的寶藏專案,它使用簡單不需要複雜的配置,支援的功能直戳我的痛點。你看:

  • 支援 IPV4、IPV6 和 IP 段黑白名單
  • CC 防禦即自動拉黑 IP 一段時間
  • 支援 GET、POST、URL、Cookie 等黑名單(正則)

C++ 專案

2、fast-cpp-csv-parser:讀取 CSV 檔案的 C++ 庫(僅標頭檔案)。示例程式碼:

# include "csv.h"

int main(){
  io::CSVReader<3> in("ram.csv");
  in.read_header(io::ignore_extra_column, "vendor", "size", "speed");
  std::string vendor; int size; double speed;
  while(in.read_row(vendor, size, speed)){
    // 對 ram.csv 檔案中的資料,做你想做的事情吧!
  }
}

3、UNO:使用 C++ 編寫的命令列 UNO 紙牌遊戲。操作方便支援人機或聯機對戰,遊戲基於 Asio 網路庫和現代 C++ 開發,也有對 C++17 的嘗試。分別實現了服務端、客戶端,程式碼簡單對 C++ 新手友好,UNO 的愛好者快來玩一玩吧!

4、godot:一款功能豐富的開源遊戲引擎。最初它只是一款 2D 引擎,近期擴充了 3D 部分的能力。相較於 UE4 或者 Unity 這樣的成熟商業引擎來說,Godot 還很年輕不夠成熟,尤其 3D 方面的能力。但它擁有簡易的開發方式,上手簡單。而且社群活躍、文件覆蓋全面、有較為豐富的示例程式碼,對於剛入門的遊戲開發者友好。同時開源引擎底層程式碼完全開源,開發者可以閱讀和貢獻程式碼,而不是隻停留在遊戲邏輯開發層面。總而言之 Godot 是一個極有潛力的遊戲引擎,推薦給想學習遊戲開發的同學

CSS 專案

5、water.css:一個專門為簡單頁面和示例網頁準備的 CSS 框架

Go 專案

6、fyne:一款 Go 語言跨平臺 UI 庫。想用 Go 寫圖形介面應用的小夥伴,快速上手:

安裝
$ go get fyne.io/fyne
執行一個 demo
$ go get fyne.io/fyne/cmd/fyne_demo/
$ fyne_demo

7、golearn:Go 寫的機器學習框架。來,跑個模型試試吧:

cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/knnclassifier
go run knnclassifier_iris.go

Java 專案

8、keepass2android:一個開源的 Android 密碼管理器。下載地址,功能:

  • 僅需輸入一次安全性很強的密碼(很長或隨機的密碼)
  • 支援幾乎可與所有的 Android 的瀏覽器
  • 支援 .kdbx 檔案的讀寫
  • 能夠編輯條目包括附加字串欄位、檔案附件、標籤等
  • 等等

9、PrettyZoo:一款 Java 寫的高顏值 ZooKeeper 客戶端桌面應用。該專案使用了 JDK11 以及 JavaFX 編寫的 GUI 客戶端,程式碼量適中適合想學習 JavaFX 編寫應用的朋友。需要連線 ZK 服務端檢視資料的話,手邊有這麼個工具還是挺方便的。實用和顏值集一身的專案

10、vueblog:一款輕量級 Java 部落格專案。基於 SpringBoot+Vue 實現並附有詳細開發文件和講解視訊,讓剛學會 Java 的同學也能搞定。每個體面的技術人員可能都有一個自己說了算的部落格吧

JavaScript 專案

11、x-spreadsheet:基於 JavaScript 實現的輕量級 Web 電子表格庫。它功能齊全,包含表格的基本操作和函式等,還有詳細的中文文件,線上嘗試

12、h5-Dooring:一款功能齊全的 H5 頁面視覺化配置平臺。讓你通過視覺化的方式製作出 H5 頁面,技術棧以 React 為主,後臺採用 Node.js 實現。雖然網上有很多這種工具,但本專案免費開源、功能齊全值得一試

13、Ant-Forest:基於 Auto.js 的螞蟻森林能量自動收穫指令碼。它是個“綠色環保”的專案,我能從中感受到滿滿的愛和想把它做好的決心!來看看作者開發 Ant-Forest 時解決了哪些難題:

  1. 能量球識別無法使用控制元件資訊(使用基於霍夫變換的影像識別)
  2. 指令碼執行邏輯易被打斷(使用事件監聽及擴充套件模組增強魯棒性)
  3. 每次只能執行一次(完善的複查及定時迴圈功能)
  4. 不同裝置解析度及螢幕比例不同(使用等比縮放/定寬縮放等進行適配)

14、tui.image-editor:功能齊全的圖片編輯器。支援圖片剪裁、旋轉、塗鴉等功能,實現了 Vue 和 React 封裝的元件,便於整合進你的專案

15、windows95:基於 Electron 實現的 Windows 95 作業系統。它實現了該作業系統下的所有東西,對!所有!想體驗下 Windows 95 版的掃雷嗎?下載安裝即可

Objective-C 專案

16、LuLu:免費開源的 macOS 防火牆軟體

PHP 專案

17、humhub:用 PHP 寫的開源社交平臺。看過《社交網路》的小夥伴,都知道大名鼎鼎的 Facebook 最早就是祖克伯用 PHP 語言寫出來的,humhub 能夠讓不會程式設計的小夥伴也可以用建立出一個社交平臺啦。跟著提示一步步操作,不到 1 分鐘我的社交平臺就建好了,點選訪問

18、phpbrew:一個編譯、安裝、管理多版本 PHP 的工具。有了它就可以方便地在不同 PHP 版本之間自由切換啦,特性:

  • 配置選項簡化為 Variants 無需擔心路徑問題
  • 整合至 bash/zsh 等,易於切換版本
  • 易於安裝、啟用 PHP 擴充套件

Python 專案

19、python-patterns:Python 設計模式和使用場景的集合

20、pgcli:支援語法高亮和自動補全的 Postgres 資料庫客戶端命令列工具。它安裝簡單上手快速,如果你用過 Postgres 資料庫自帶的命令列工具,就一定能感受到 pgcli 的迷人之處

21、15-minute-apps:基於 PyQt 框架寫的小型桌面應用程式的集合。想用 Python 寫桌面應用的小夥伴,這個專案應該可以幫到你。比如寫個掃雷遊戲:

Swift 專案

22、Pine:一個免費、輕量、簡潔的 macOS Markdown 編輯器。功能:

  • 主題
  • LaTex 公式
  • 自動儲存
  • 自定義字型
  • 字數統計等寫作分析
  • 等等

23、Publish:專為 Swift 開發人員準備的靜態網站生成器。讓你實現整個網站都是用 Swift 構建的工具,支援多種主題、外掛以及更多強大的自定義選項。示例網站,安裝和快速開始:

$ git clone https://github.com/JohnSundell/Publish.git
$ cd Publish
$ make
$ mkdir MyWebsite
$ cd MyWebsite
$ publish new

其它

24、open-source-rover:NASA 面向科技愛好者開源的火星漫遊車設計方案和程式碼。通過該專案你可以使用便宜的樹莓派做出自己的火星漫遊車,所需的零件很容易就可以買到,遙控部分是使用現成的 Xbox 手柄或者手機,減少花銷。喜歡動手和硬體的小夥伴們,這個東西夠酷嗎?

25、bat:替代 cat 的命令列工具。你還在命令列用 cat 檢視檔案嗎?那你就 out 啦!今天推薦的 bat 它不僅支援語法高亮,還能展示 Git 的改動。macOS 下安裝命令:brew install bat 相信你用過 bat 後就不會再想用回 cat 了

26、Web-Dev-For-Beginners:微軟開源的 Web 開發教程。該教程共有 24 節課,但目前只有英文版

27、neofetch:展示作業系統資訊的命令列工具,支援將近 150 種作業系統

28、jpeg_tutorial:教你編寫 JPEG 解碼器的教程,示例為 Rust 程式碼

29、sql-style-guide:一份 SQL 語句編寫風格建議。比如:

-- Good
select *
from users
where email = 'example@domain.com'

-- Bad
select *
from users
where email = "example@domain.com"

開源書籍

30、pure-bash-bible:該書有好多複製就能用的 bash 函式,我願稱其為 bash 的“奇技淫巧”。比如把字母轉為大寫的函式:

upper() {
    # Usage: upper "string"
    printf '%s\n' "${1^^}"
}

$ upper "hello"
HELLO

機器學習

31、pulse:根據包含馬賽克的人臉影像,生成一張相似容貌的結果。注意不是復原哦,僅可用於人臉

32、Surface-Defect-Detection:該專案整理了目前大量靠譜的表面缺陷檢測資料集,還有最新的頂會論文以及作者的解讀筆記。從事視覺方向的小夥伴,心動了嗎?


最後

如果你發現了 GitHub 上有趣的專案,歡迎在 HelloGitHub 專案提 issues 告訴我們。

關注「HelloGitHub」公眾號,第一時間收到推送

相關文章