興趣是最好的老師,HelloGitHub 讓你對編程感興趣!
簡介
分享 GitHub 上有趣、入門級的開源項目。
這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、Java、Go、C/C++、Swift...讓你在短時間內感受到開源的魅力,對編程產生興趣!
十一假期就要來了,假期最重要的還是休息。本期游戲項目有點多,外出路上帶上一個開源項目,不無聊!
最后,提前祝我們的祖國生日快樂、繁榮昌盛!HelloGitHub 的小伙伴們假期愉快!
以下為本期內容|每個月 28 號更新
C 項目
1、HEX-LINK:自制電腦游戲的體感設備。該項目包含制作時需要的硬件設計和全部源碼
.├─firmware # 軟件(根據自己使用的工具選擇如下一種工程即可)│ ├─ArduinoIDE_Proj # Arduino IDE版工程 │ │ ├─Additional_Libraries # 里面的文件夾需要復制到Arduino IDE安裝目錄下的libraries文件夾│ │ ├─Hex_Link_Leonardo # 需要下載至接收端的程序│ │ └─Hex_Link_Nano # 需要下載至發送端的程序│ ├─Bootloaders # 需要下載至芯片的arduino bootloader │ └─Vscode_PlatformIO_Proj # VScode PlatformIO版工程 │ ├─Hex_Link_Leonardo # 需要下載至接收端的程序│ └─Hex_Link_Nano # 需要下載至發送端的程序├─hardware # 硬件(PCB工程)│ ├─BOM # PCB的物料清單,包含參考的購買鏈接(鏈接僅作參考,在其他任何店鋪購買相同型號即可)│ ├─Hex_Link_Rec # 接收端PCB工程│ ├─Hex_Link_Trans # 發送端PCB工程│ └─Nano_Jtag_Pin # 轉接板:用來燒錄Nano bootloader的Jtag口轉接板├─model # 接收端外殼3維模型│ ├─Solidworks_Project # 2018版本Solidworks工程│ └─STL_TAP # STL文件,可直接用于3D打印.TAP文件是頂層亞克力板的CNC加工文件├─references # 參考文檔└─tools # 額外的腳本工具復制代碼
C# 項目
2、SteamTools:集合多種 Steam 客戶端工具的工具箱。該工具支持 Window、Linux、macOS、Android 操作系統,包括游戲庫存管理、解鎖成就、史低價格、出售庫存物品等功能,還有豐富的插件等待你發掘
3、xLua:為 C#、Unity、.Net 等環境增添 Lua 腳本編程的能力,使得 Lua 代碼方便地與 C# 相互調用
XLua.LuaEnv luaenv = new XLua.LuaEnv();luaenv.DoString("CS.UnityEngine.Debug.Log(hello world)");luaenv.Dispose();復制代碼
4、BBDown:命令行嗶哩嗶哩視頻下載工具
C++ 項目
5、libqalculate:使用 C++ 編寫的多功能計算器桌面應用、庫和 CLI 程序。它易于使用功能強大,支持大型可定制函數庫、單位計算和轉換、符號計算(包括積分和方程)。作為用戶你可以直接在命令行中使用,作為開發者你也可以在自己的項目中使用這個庫。官方還制作了 Qt 和 GTK 兩個版本的 GUI 計算器應用
6、btop:界面酷炫的命令行資源監視器??梢燥@示處理器、內存、磁盤、網絡和進程的使用情況和統計信息,還支持鼠標操作
7、TinyWebServer:Linux 下的 C++ 輕量級 Web 服務器。該項目不僅可以用來搭建 Web 服務,也適合 C++ 初學者作為網絡編程實戰項目。作者還寫了文章講解相關代碼和原理,幫助初學者更好的掌握網絡編程相關知識
CSS 項目
8、css_tricks:常用 CSS 樣式示例集合
Go 項目
9、video-srt-windows:自動識別視頻語音生成字幕文件的工具。采用 Go+walk 開發所以僅支持 Windows 系統,原理是請求在線語音轉文字的服務,超出免費額度需付費。另外還加入了導出字幕文件和翻譯功能
10、go-daily-lib:每天學習一個 Go 語言庫。內容包含標準庫和三方庫,每個庫對應一篇介紹和上手的文章
11、Open-IM-Server:基于 Go 實現的輕量級即時通訊(IM)項目。具有高性能、易擴展、安裝簡單、私有化部署等特性,同時包含多種客戶端 SDK。從服務器到客戶端一體的開源即時通訊(IM)解決方案
12、go-fly:基于 Go 語言實現的在線客服系統,采用 Gin+MySQL+JWT+WebSocket 等技術棧實現
13、viper:用來搞定 Go 應用中配置的庫。支持多種配置文件類型、監控并重新加載配置文件、遠程讀取配置系統等
viper.SetConfigName("config") // 配置文件名,不包括后綴viper.SetConfigType("yaml") // 配置文件的后綴viper.AddConfigPath("/etc/appname/") // 查找配置文件的目錄viper.AddConfigPath("$HOME/.appname") // 支持查找多個目錄// 異常處理if err := viper.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { // 如果沒有找到配置文件 } else { // 找到了配置文件,但出現了其他錯誤 }}復制代碼
Java 項目
14、o2oa:國產的 OA 系統。功能齊全支持考勤、會議管理、云盤等,適用于企業 OA、協同辦公
15、IJPay:Java 支付工具庫,輕松完成支付模塊開發。封裝了常用的微信、QQ、支付寶、銀聯、PayPal 支付等支付方式的各種常用接口。不依賴任何 MVC 框架,輕松接入到 Java 項目
16、VirtualApp:Android 系統的沙盒程序,App 虛擬化引擎。它創建了一個虛擬空間,在那里可以任意安裝、啟動、控制、卸載應用。虛擬空間與外部隔離相當于沙盒環境,可在安卓上實現應用多開、靜默安裝等黑科技
JavaScript 項目
17、sharedb:基于 JSON 數據 OT 算法的實時數據庫。簡單來說就是實時協同數據框架,可用來實現當頁面因用戶操作發生數據變化時,實時把數據同步展示到其它用戶頁面上,其中 OT 算法就是解決此協同過程中問題的通用算法。常見的場景比如:多用戶之間的狀態同步、在線協作文檔、離線后數據改動同步等
18、30-Days-Of-JavaScript:30 天 JavaScript 編程挑戰。該教程雖然是英文教程但是圖文并茂通俗易通,內容循序漸進包含練習題,適合零基礎想要學習 JavaScript 的同學
19、YesPlayMusic:高顏值的第三方網易云播放器。它不僅擁有簡潔美觀的外觀,還有豐富的功能
- 支持 Windows/macOS/Linux
- 私人 FM/每日推薦歌曲
- 網易云賬號登錄
- 歌詞顯示
- 自定義快捷鍵和全局快捷鍵
- 等等
20、javascript:Airbnb 開源的 JavaScript 風格指南。中文
// 采用數組解構const arr = [1, 2, 3, 4];// badconst first = arr[0];const second = arr[1];// goodconst [first, second] = arr;復制代碼
21、spy-debugger:遠程調試手機頁面和抓包的工具。操作簡單僅需手機和電腦在同一個 WIFI 下,即可在實現真機調試頁面
Kotlin 項目
22、Component:Android 的組件化框架,幫助開發者在實現項目組件化。它的強大在于功能齊全、更新及時,支持 Kotlin、AndroidX、RxJava、協程等
Objective-C 項目
23、iOSInterviewQuestions:iOS 面試題集合(附答案)
Python 項目
24、Pokemon-Terminal:適用于多種終端的口袋妖怪主題工具。支持 iTerm2、ConEmu、Terminology、Windows 的終端,已經收集了 719 個小精靈
25、mypy:Python 靜態類型檢查庫。既然 Python 是一門動態類型語言,為啥還要檢查類型呢?有了靜態類型檢測則無需運行代碼,就可以發現程序中潛在的錯誤。還可以加入到 git hook
中,實現在提交代碼前自動檢查。詳情查看這篇文章
26、CPython-Internals:圖文并茂的 Python 源碼閱讀筆記項目。閱讀的是比較新的 CPython 3.8 版本,重點是項目一直在更新維護
static void take_gil(PyThreadState *tstate){ /* 忽略 */ while (_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)) { /* 只要 gil 是鎖住的狀態, 進入這個循環 */ int timed_out = 0; unsigned long saved_switchnum; saved_switchnum = _PyRuntime.ceval.gil.switch_number; /* 釋放 gil.mutex, 并在以下兩種條件下喚醒 1. 等待 INTERVAL 微秒(默認 5000) 2. 還沒有等待到 5000 微秒但是收到了 gil.cond 的信號 */ COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond, _PyRuntime.ceval.gil.mutex, INTERVAL, timed_out); /* 當前持有 gil.mutex 這把互斥鎖 */ if (timed_out && _Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked) && _PyRuntime.ceval.gil.switch_number == saved_switchnum) { /* 如果超過了等待時間, 并且這段等待時間里 gil 的持有者沒有變更過, 則嘗試讓當前持有 gil 的線程進行釋放gil 把 gil_drop_request 值設為 1, 持有鎖的線程看到這個值的時候, 會嘗試放棄 gil */ SET_GIL_DROP_REQUEST(); } /* 繼續回到 while 循環, 檢查 gil 是否為鎖住狀態 */ } /* 忽略 */}復制代碼
Rust 項目
27、nushell:一種更加人性化的新型 shell
Swift 項目
28、Clipy:macOS 的剪貼板擴展應用。支持展示剪貼板歷史記錄、內容模版等功能
其它
29、QWidgetDemo:Qt 編寫的示例集合。每個示例都可獨立運行、代碼簡潔易懂,適合初學者學習
30、xemu:免費開源的 Xbox 模擬器,支持 Windows、Linux、macOS 系統
31、yabai:適用于 macOS 的平鋪式窗口管理器。該工具可以輕松實現窗口平鋪不重疊,不用鼠標僅通過鍵盤移動、調整、切換、全屏、自動布局等管理窗口的操作
Control+Option+A/D
:激活 平鋪/浮動 模式Option+h/j/k/l
:使 左/下/上/右 側窗口成為活動窗口Shift+Option+h/j/k/l
:向 左/下/上/右 移動當前活動窗口Command+Option+n
:創建新桌面,并將當前活動窗口移動至新桌面
32、awesome-for-beginners:對初學者友好的開源項目集合。如果你想參與到開源項目的建設,可以在這個集合中尋找項目,祝你早日完成第一個貢獻(PR)
33、lifeRestart:在線文字游戲《人生重開模擬器》。純文字游戲只需開局選天賦分配初始屬性,后面就是看歲月如白駒過隙,轉眼就過完了這一生,不滿意的話可以輕松重開新的人生。游戲憑借詼諧幽默的文案和出乎意料的結尾,廣受好評。在線試玩
34、chinese-dos-games:中文 DOS 游戲集合。在線試玩
開源書籍
35、introduction-to-front-end-engineering:一本小書《帶你入門前端工程》。該書是作者對過去兩年前端工程化實踐的經驗和心得總結,在線閱讀
36、pumpkin-book:《機器學習公式詳解》西瓜書公式推導解析。在線閱讀
機器學習
37、invoice:增值稅發票 OCR 識別項目。包含訓練好的模型和微服務,啟動后可直接通過接口調用
38、GameAISDK:基于圖像識別的 AI 自動化框架,支持吃雞類、射擊類、MOBA 類等游戲類型。內置多種圖像識別算法和 AI 算法,不用摳圖完全基于圖像識別的 AI 訓練和框架
39、genshin_auto_fish:基于深度學習的原神手游自動釣魚工具。其中用 YOLOX 搞定魚的定位和類型的識別以及魚竿落點的定位,用 DQN 搞定自適應控制釣魚過程的點擊,讓力度落在最佳區域內
如果你發現了 GitHub 上有趣的項目,就分享給大家伙吧。
以上就是本期的所有內容了!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121555.html