《HelloGitHub》第 38 期

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

簡介

分享 GitHub 上有趣、入門級的開源項目。java

這是一個面向編程新手熱愛編程對開源社區感興趣 人羣的月刊,月刊的內容包括:各類編程語言的項目讓生活變得更美好的工具書籍、學習筆記、教程等,這些開源項目大多都是很是容易上手,並且很是 Cool。主要是但願你們能動手用起來,加入到開源社區中。python

  • 會編程的能夠貢獻代碼
  • 不會編程的能夠反饋使用這些工具中的 Bug
  • 幫着宣傳你以爲優秀的項目
  • Star 項目⭐️

在瀏覽、參與這些項目的過程當中,你將學習到更多編程知識提升編程技巧找到編程的樂趣git

🎉 最後 HelloGitHub 這個項目就誕生了 🎉程序員


如下爲本期內容|每月 28 號發佈最新一期|點擊查看往期內容github

C++ 項目

一、Terminal:微軟開源的一個全新、現代、功能豐富、高效的 Windows 終端應用程序。它支持 Windows 命令行社區最經常使用的許多命令,還支持選項卡、富文本、全球化、可配置性、主題和樣式等功能。一直以來 Windows 不被開發者青睞的緣由之一就是終端很差用,如今有了這個我都想買個 Windows 系統的電腦了(肯定不是打遊戲?)golang

Go 項目

二、golang-developer-roadmap:成爲 Go 開發者的學習路線圖,中文版面試

三、scheduler:Go 語言實現的做業調度工具包。適用於須要任務調度的場景,可以讓初學者學到 time、reflect 等標準庫的用法,中文文檔redis

四、nic:一個易用的 HTTP Request 包。它封裝了 Go 的 HTTP 標準庫,提供了簡潔優雅的 API。能夠更輕鬆的發送HTTP 請求,解決了 Go 標準庫自定義 HTTP 請求,操做 headers、cookies 時繁瑣的步驟。相似於 Python 的 Requests 和 urllib 的區別。示例代碼:算法

resp, err := nic.Get("http://example.com", nil)
if err != nil {
    log.Fatal(err.Error())
}
fmt.Println(resp.Text)
複製代碼

五、redis-tui:炫酷的 redis 命令行圖形界面工具

六、gameboy.live:Gameboy 模擬器,還能夠經過 socket 遠程玩

# 下載
git clone https://github.com/HFO4/gameboy.live.git
# 運行
cd gameboy.live
go build -o gbdotlive main.go

# 命令說明
Usage of gbdotlive:
  -G    Play specific game in Fyne GUI mode  # 用 Fyne GUI 模式玩遊戲,會彈出一個窗口
  -c config # 配置文件路徑
        Set the game option list config file path
  -d    Use Debugger in GUI mode # GUI 的 debug 模式
  -f FPS
        Set the FPS in GUI mode (default 60) # FPS 設定
  -g    Play specific game in GUI mode (default true) # 是否默認啓動 GUI
  -h    This help # 顯示幫助
  -m    Turn on sound in GUI mode (default true) # GUI 模式下是否有聲音
  -p port
        Set the port for the cloud-gaming server (default 1989) # 默認監聽端口,能夠用 Telnet 玩
  -r ROM # 遊戲 ROM 的路徑
        Set ROM file path to be played in GUI mode
  -s    Start a cloud-gaming server # 啓動服務器,用 Telnet 玩
複製代碼

七、CovenantSQL:具備區塊鏈特性的去中心化 SQL 關係型數據庫。能夠提供 DBaaS 服務,去中心化存儲保證用戶隱私。中文文檔,MacOS 系統能夠經過 brew install cql 直接安裝

八、diving:基於 dive 分析 docker 鏡像,界面化展現了鏡像每層的變更(增長、修改、刪除等)、用戶層數據大小等信息。便捷獲取鏡像信息和每層鏡像內容的文件樹,能夠方便地瀏覽鏡像信息。對於須要優化鏡像體積時很是方便

Java 項目

九、rhizobia_J:陌陌開源的 Java 安全編碼規範和 SDK

十、generator-jhipster:用於在幾秒鐘內建立 Spring Boot + Angular/React 項目的開源應用程序生成器(腳手架)。它能夠自動化生成一個完整 Web 應用或微服務架構,加快項目的開發效率。特色和技術棧:

  • 基於 Spring Boot 框架的服務端,具有高性能和高可用的 Java 技術棧
  • 基於 Angular、React、Bootstrap 的時尚、現代、移動優先的前端
  • 基於 JHipster Registry、Netflix OSS、ELK 堆棧和 Docker 的強大的微服務架構
  • 使用 Yeoman、Webpack 和 Maven/Gradle 構建應用程序的強大工做流程

十一、Gloading:深度解耦的 Android 加載組件,特色:

  • 深度解耦 App 中全局加載中、加載失敗及空數據視圖
  • 分離全局加載狀態視圖的實現和使用
  • 不須要在每一個頁面的佈局文件中額外添加加載狀態視圖
  • 可用於 Activity,也可用於爲某個 View 顯示加載狀態等
Gloading.initDefault(new GlobalAdapter());
Gloading.Holder holder = Gloading.getDefault().wrap(activity).withRetry(retryTask);
Gloading.Holder holder = Gloading.getDefault().wrap(view).withRetry(retryTask);

//顯示加載中的UI狀態
holder.showLoading() 

//顯示加載成功的UI狀態
holder.showLoadSuccess()

//顯示加載失敗的UI狀態
holder.showFailed()

//顯示加載成功,但數據未空的UI狀態
holder.showEmpty()
複製代碼

十二、Android-BLE:Android 藍牙框架,包括掃描、鏈接、設置通知、發送數據、讀取、接收數據和 OTA 升級等。近乎一行代碼植入項目,可擴展、配置藍牙相關操做,適用於 Android-BLE4.0 藍牙。即使是 BLE 方面的小白也能夠在短短几分鐘內接入並運用到項目中

JavaScript 項目

1三、practice:使用當下流行的多種不一樣前端技術棧,實現不一樣項目的詳細教程,教你如何快速上手這些技術。雖然項目名稱叫作 Practice 可是內容爲當前前端最火的框架實踐,並且符合生產環境下的開發流程規範,推薦學習

1四、ieaseMusic:基於網易雲音樂 API 開發的第三方客戶端,支持 Linux、Mac OS 系統。成熟的 JS 桌面應用產品,顏值很高,音樂資源豐富

1五、ts-utility-plugins:使用原生 TS 構建特效、插件、業務的實踐教程項目。脫離各類框架實現原生的特效以及插件

PHP 項目

1六、PHP-Interview-QA:《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各種的問題,並嘗試提供簡潔準確的答案,爲你面試 PHP 相關崗位提供「祕籍」。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職緣由、職業規劃等部分

1七、wizard:一款基於 Laravel 開發框架的開源文檔管理系統。目前已經在多家公司部署使用,支持:Markdown、Swagger 文檔管理,公司內部的統一身份認證系統(LDAP)等功能

Python 項目

1八、PySnooper:Python 的第三方調試庫。讓你經過裝飾器方法,方便的知道每一行程序運行後的結果,而不須要再手動增長 print 展現過程數據、調試程序。示例代碼:

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)
# 輸出以下
Starting var:.. number = 6
15:29:11.327032 call         4 def number_to_bits(number):
15:29:11.327032 line         5     if number:
15:29:11.327032 line         6         bits = []
New var:....... bits = []
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
....
複製代碼

1九、Python-100-Days:《Python 100 天重新手到大師》—— Python 的入門學習資料,學習曲線低。非專業人士也能上手學習,適合新手入門

20、Zvm:一款用 Python 實現的簡易 JVM。實現功能以下:class 文件解析、類加載、運行時數據區、指令解釋器、基本指令集、簡易 GC、簡易線程、簡易 JDK 庫,能夠運行基本的 Java class 文件。代碼量少,模塊清晰,適合用來學習 JVM 的基本結構和實現

2一、city-vein:用公交路線數據,還原城市結構。經過數據可視化手段,還原了 30 多個城市的城市結構。該項目中有數據獲取和處理的腳本,並且該項目充分體現了數據可視化帶來的便利和效果,易於激發學習編程的熱情。在線瀏覽

Ruby 項目

2二、huginn:基於 Ruby 開發的自動化處理任務工具。能夠監控事物而後根據編寫好的邏輯進行處理(IFTTT),好比:監控天氣而後經過微信提醒你帶傘、追的小說或者動漫更新通知、聚合信息發送等。它框架穩定、生態活躍,有了它從而讓你的生活更加有效率,快去試試吧

Swift 項目

2三、Brooklyn:炫酷的蘋果電腦屏幕保護程序

2四、PopMenu:一款簡單、漂亮、方便、靈活自定義的彈出菜單組件。若是你的 App 須要一款靈活好看的彈出菜單的話,那麼 PopMenu 值得你一試

其它

2五、commit-messages-guide:Git 提交描述(commit)的編寫指南,中文

2六、weekly:《阿里雲前端技術週刊》

2七、algo:必知必會的數據結構和算法代碼答案(多種編程語言)

2八、vim-bootstrap:一個簡單、易用的 .vimrc 配置文件生成工具,也可經過網站點選生成。支持 Vim、NeoVim、NeoVim-Qt、MacVim 和 GVim。特色:

  • 輕量:包含少且必要的插件
  • 易用:適合在vim中成功存活的入門者
  • 易於定製:只需選擇使用的語言,便可得到對應配置
  • 先進的插件管理器:使用 Vim-Plug 管理插件,簡單易用、速度快
  • 支持多種編程語言

2九、hacker-laws:程序員工做中可能使用到的定律、原則的講解,這些原則多應用於咱們的開發和設計中,開卷有益

教程

30、vscode-extension-samples:官方 VS Code 開發擴展插件的代碼實例集合

3一、3d-game-shaders-for-beginners:有關如何爲 3D 遊戲實施 SSAO、景深、照明、法線貼圖等效果的教程。包含示例代碼(C++)與 Demo,更便於理解和學習

機器學習

3二、bentoml:一個機器學習工具用來打包和發佈模型。幫助數據科學家用不到 5 分鐘把在 ipython notebook 裏的模型發佈到生產環境

%%writefile iris_classifier.py
from bentoml import BentoService, api, env, artifacts
from bentoml.artifact import PickleArtifact
from bentoml.handlers import DataframeHandler

# You can also import your own python module here and BentoML will automatically
# figure out the dependency chain and package all those python modules

@artifacts([PickleArtifact('model')])
@env(conda_pip_dependencies=["scikit-learn"])
class IrisClassifier(BentoService):

 @api(DataframeHandler)
    def predict(self, df):
        # arbitrary preprocessing or feature fetching code can be placed here 
        return self.artifacts.model.predict(df)
複製代碼

3三、stanford-cs-229-machine-learning:斯坦福 CS229 教程講義文檔,該文檔內容細緻、條理清晰,方便入門者做爲讀書筆記學習。中文版

3四、mlcourse.ai:一套機器學習課程。課程全面細緻,同時帶有 demo 以及進階的 Kaggle 比賽的樣例,很是適合初學者逐步的深刻學習

3五、lihang-code:機器學習領域經典書籍《統計學習方法》的課件和代碼。這個項目提供了課件、代碼資源,敘述從具體問題或實例入手,由淺入深,闡明思路,給出必要的數學推導,便於讀者掌握統計學習方法的實質,學會運用

3六、maskrcnn-benchmark:Facebook 開源的 PyTorch 版本的 Mask-RCNN。研究人員能夠按照教程、示例代碼逐步進行實現


換種方式閱讀

聲明

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

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

相關文章
相關標籤/搜索