程式設計師經常看的開源月刊《HelloGitHub》第 57 期

2021-01-11 HelloGitHub

興趣是最好的老師,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++ 庫(僅頭文件)

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 寫的機器學習框架。來,跑個模型試試吧

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 時解決了哪些難題:

能量球識別無法使用控制項信息(使用基於霍夫變換的圖像識別)腳本執行邏輯易被打斷(使用事件監聽及擴展模塊增強魯棒性)每次只能運行一次(完善的複查及定時循環功能)不同設備解析度及屏幕比例不同(使用等比縮放/定寬縮放等進行適配)

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 構建的工具,支持多種主題、插件以及更多強大的自定義選項。

其它

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 語句編寫風格建議。比如:

-- Goodselect *from userswhere email = 'example@domain.com' -- Badselect *from userswhere email = "example@domain.com"

開源書籍

30、pure-bash-bible:該書有好多複製就能用的 bash 函數,我願稱其為 bash 的「奇技淫巧」。

機器學習

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

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

最後

迎留言告訴我本期你最喜歡那個項目,如果覺得本文還不錯的話,就點讚、轉發一波吧~

相關焦點

  • 程式設計師之間的十八層鄙視網絡 - OSCHINA - 中文開源技術交流社區
    程式設計師,是一個知識、智商、都異於常規行業的群體。自傲,清高,悶騷,也屬於這個群體鮮明標籤。程式設計師有時候很自我,這樣就給自己一個盲目的優越感。特別在與其他程式設計師對比的時候,他總能找到在一兩個地方優於你的地方,所以,程式設計師之間的鄙視網絡,在程式設計師這個職位誕生之日起,就慢慢的形成了。時至今日,這張鄙視網絡已經相當的龐大。
  • 普通程式設計師與高級程式設計師有什麼差別?你知道嗎?
    雖然一個程式設計師寫的最多的是代碼,並且幾乎很少有程式設計師是心甘情願的寫文檔,但是一個優秀的程式設計師必須具備一定的寫文檔能力,當然,這個文檔不是說就是Word。比如:Markdown。如果你做的工作現在需要分派給其他人,你有了新的安排,你Handover你的工作的時候,如果你有良好的文檔習慣,那接手工作的人能夠很容易的上手,不然,他看不懂文檔,會來反覆的打擾你。
  • 一名40 歲「老」程式設計師的反思 - OSCHINA - 中文開源技術交流社區
    <本文是國外一位 40 歲「老」程式設計師對職業生涯的思考,他認為從長遠來看,應該多投資一些不容易過期、衰竭期較長的知識領域中。譯文大意如下。
  • 是什麼成就了一名「高級」程式設計師?
    除多年編程經驗之外,還有什麼能區分一個程式設計師是「老手」還是「新手」?編程技巧當然是一部分,但它絕非是全部。聰明的程式設計師可能比他們的同行擁有更出眾的編程技巧,但那不足以說明他們就是「老手」。同樣,僅僅因為擁有10年編程經驗也並不意味著他們就是高手。在工作崗位上,擁有多年編程經驗也不能說明問題。即便沒被炒魷魚,那也不能提升你的價值。
  • 1024程式設計師節持續引爆星城
    長沙2020年10月27日 /美通社/ -- 10月23日,「長沙·中國1024程式設計師節」在長沙盛大開幕。1024程式設計師節活動現場大會第二日,1024程式設計師節主題大會「2020開源技術英雄會」重磅開場,中國電子技術標準化研究院副院長孫文龍,長沙市委常委、市委宣傳部部長陳剛,長沙高新區黨工委副書記、管委會主任郭力夫,長沙市委副秘書長、市委宣傳部副部長、市委網信辦主任莫小佳,長沙市開福區委書記曹再興,長沙信息產業園黨工委書記肖勇軍,長沙市開福區委副書記、馬欄山視頻文創產業園黨工委書記鄒犇淼
  • 歷史上最偉大的 12 位程式設計師 - OSCHINA - 中文開源技術交流社區
    所謂程式設計師,是指那些能夠創造、編寫電腦程式的人。不論一個人是什麼樣的程式設計師,或多或少,他都在為我們這個社會貢獻著什麼東西。然而,有些程式設計師的貢獻卻超過了一個普通人一輩子能奉獻的力量。
  • 如何在 Github 上發現優秀的開源項目?
    問到點子上了,GitHub 其中一個最重要的作用就是發現全世界最優秀的開源項目,你沒事的時候刷刷微博、知乎,人家沒事的時候刷刷 GitHub ,看看最近有哪些流行的項目,久而久之,這差距就越來越大,那麼如何發現優秀的開源項目呢?這篇文章我就來給大家介紹下。1.
  • 被嫌棄的35歲程式設計師
    走出短暫的焦慮期後,蘇銳意識到,年齡沉澱下的經驗果實對他走上創業之路大有裨益 — 對人的理解、對事物運行規律的體悟比 20 多歲清晰多了。「幹的活兒我挺喜歡的,還能掙錢,工資拿的還不低,為什麼要焦慮呢」,從業 20 多年的程式設計師任從文(化名)是個天生的樂天派。「我從來沒有產生過年齡焦慮。
  • 2020年【法院動態】第57期 新左旗法院向旗第十五屆人大常委員會第...
    2020年【法院動態】第57期 新左旗法院向旗第十五屆人大常委員會第二十次會議報告掃黑除惡專項鬥爭… 2020-12-22 17:23 來源:澎湃新聞·澎湃號·政務
  • 開源中國4-1期軟體推薦 流程圖繪製軟體Dia
    開源中國4-1期(4月第1周)推薦的開源軟體是流程圖繪製軟體Dia,被稱為免費開源的Visio替代軟體。
  • 從噹噹看打造高星 GitHub 開源項目的經驗
    「我們認同馬丁福勒這位代碼溝通大師的理念,任務代碼是給人看的,不是僅僅給機器編譯用的。維護一個有缺陷但是代碼清晰的項目,遠比維護一個代碼混亂但暫時未發現缺陷的項目要更加容易、更加受歡迎。」噹噹在 2015 年 9 月開始開源了內部使用的分布式作業調度框架——elastic-job,然後又於 2016 年 1 月 18 日開源了資料庫分庫分表中間件——sharding-jdbc。噹噹後端使用 Java 開發較多,所以這次做的開源項目也是基於 Java 開發者而非產品型。目的是讓 Java 程式設計師能夠順暢使用,對於非 Java 用戶可能未必友好。
  • 程式設計師為教師妻子開發專屬應用;2020 最佳開源項目出爐;中國構建全...
    而程式設計師 Charlie Chapman 的妻子是一名幼兒園老師,教 5、6 歲孩子在 Zoom 上進行寫字、繪畫。最初,她使用 iPhone 和默認的相機應用程式製作文檔相機。但打開相機應用時總會出現這兩個問題:  相機視圖周圍有許多按鈕和鑲邊,因此看起來笨拙體驗差;  缺乏橫向支持。
  • 初、中、高級程式設計師的進化之路(前端)
    程式設計師的進化之路通常在初級這個階段,是進步空間最大的階段,這個階段是不存在天花板的。編碼 編碼是初級階段最需要經常做的事情,古話說孰能生巧,寫代碼也是同樣的道理。在公司要多做業務,嘗試不同的業務,目標是讓自己先成為一個熟練工。下班後也可以折騰點小項目做,可以選擇自己感興趣的內容,嘗試自己實現一遍。學會模仿,參考大牛的編碼風格,照葫蘆畫瓢。
  • 程式設計師除了去上班怎樣賺外快?
    極牛http://geekniu.com: 你可以認為這是一個程式設計師版本的「在行」,我瀏覽了下,雖然被約次數比在行要低不少,但專業性比較強,期望他們能儘快的推廣開來吧。做諮詢雖然也是實名的,但和私活是完全不同的。
  • 程式設計師的這108個笑話 你都看得懂嗎?-程式設計師,笑話,編程, ——快...
    1、程序猿最煩兩件事,第一件事是別人要他給自己的代碼寫文檔,第二件呢?是別人的程序沒有留下文檔。2、程序猿的讀書歷程:x語言入門—>x語言應用實踐—>x語言高階編程—>x語言的科學與藝術—>編程之美—>編程之道—>編程之禪—>頸椎病康復指南。
  • 缺乏想像力的程式設計師 - OSCHINA - 中文開源技術交流社區
    我的反駁——當時並沒有說出來——是,「那你一定不能成為一個優秀的程式設計師,不是嗎?」這篇文章並不是討論範型問題的(範型是個好東西,也許某一天Go語言裡也會有,也許不會),而是關於想像力的,或者,至少是關於被程式設計師們誤認 為是想像力的:抱怨。一個朋友發現,現代一種流行的娛樂方式就是去上網抱怨。對於抱怨者,這很有趣,對於抱怨的接收者,是使其沮喪消沉。
  • 開源智能人工助手Betty:將英語句子轉為UNIX命令
    即使是Google工程師和開源開發者Jeff Pickhardt這樣的硬核大牛也沒辦法記住一些不經常用的命令。所以,Pickhardt開發了Betty:將英語句子轉化為UNIX命令。「我經常記不住一些命令
  • 中國程式設計師 VS 美國程式設計師,差距就在這五點
    美國程式設計師大多數都是因為熱愛編程行業而從事這份工作的,他們會專注某一個領域幾十年。50歲以上的程式設計師還會安心待在同一個崗位寫代碼,專研技術。他們想法很簡單, 對於編程這種事情更多的是那種單純似的熱愛。影響因素:國外的程式設計師,專心寫程序並專研,他的級別和工資就會年年往上漲,和做管理的人員沒太大區別。
  • 《程式設計師9月B刊:大數據核心技術與實踐》火熱上市!
    在這個需求的刺激下,過去數年,大數據開源生態圈得到了長足的發展——在數據的整個生命周期中,從收集到處理,再到數據可視化和儲存,各種開源技術框架林立。而以這些開源技術為基石,業內湧現出一系列令人敬佩的大數據架構實踐,因此《程式設計師電子刊9月B:大數據實戰與技術》摘錄了電商、移動、遊戲等行業的大數據應用,並覆蓋了當下熱門的大數據開源技術實踐與技術細節,如Hadoop、Spark、Docker等,為你揭開大數據在各行各業的第一手實踐,以及大數據生態圈相關開源技術調優。