《HelloGitHub》第 50 期

削微寒發表於2020-05-28

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

簡介

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

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

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

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

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


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

C# 專案

1、KSFramework:一個整合 KEngine、SLua/XLua 的 Unity 5 Asset Bundle 遊戲開發框架。它為程式設計師、美術、策劃、運營提供輔助工具集,很多大型遊戲都在用的專案,快來學起來吧

C++ 專案

2、FlowChar:一個用來把虛擬碼生成純字元流程圖的小工具。讓使用者僅需要寫一段簡單的虛擬碼,便可以生成對應的流程圖。該專案結構清晰、使用簡單,程式碼量少適合使用和“把玩”。示例圖如下:

3、notepanda:這是一個用 C++ 和 Qt 開發的記事本專案。支援程式碼高亮、自定義字型樣式,還可以命令列撥出:notepanda main.cpp,支援 Windows、Linux 和 MacOS 三大系統。可作為學習 Qt、如何做開源專案的實戰

4、yuzu:免費開源的 Nintendo Switch 模擬器。剛剛開源的專案,目前僅支援 Windows、Linux,部分主流遊戲:塞爾達傳說、寵物小精靈、馬里奧等

CSS 專案

5、css.gg:開源圖示 UI 庫。支援 CSS、SVG、Figma、NPM 等

Go 專案

6、grpcui:gRPC 的 Web 頁面除錯工具。該專案提供互動式的除錯介面,讓你開發 gRPC 的時候如虎添翼

7、uptoc:一個基於 Go 的靜態部落格部署到雲端儲存的工具。靜態部落格不論是部署在 GitHubPages 還是 Netlify 等平臺都存在國內訪問速度慢的問題,解決這個問題最好的辦法就是部署在國內的雲端儲存,如騰訊雲 COS、阿里雲 OSS、七牛雲等。藉助該工具可以快速上傳到上述雲端儲存平臺,加快你的靜態部落格訪問速度

# 安裝
curl -sSf http://uptoc.saltbo.cn/install.sh | sh
# 使用
uptoc --driver oss --region cn-beijing --access_key xxx --access_secret xxx --bucket demo-bucket /opt/blog/public

8、xlsx:讀寫 xlsx 檔案的 Go 庫。示例程式碼:

//example type
type structTest struct {
    IntVal     int     `xlsx:"0"`
    StringVal  string  `xlsx:"1"`
    FloatVal   float64 `xlsx:"2"`
    IgnoredVal int     `xlsx:"-"`
    BoolVal    bool    `xlsx:"4"`
}
structVal := structTest{
    IntVal:     16,
    StringVal:  "heyheyhey :)!",
    FloatVal:   3.14159216,
    IgnoredVal: 7,
    BoolVal:    true,
}
//create a new xlsx file and write a struct
//in a new row
f := NewFile()
sheet, _ := f.AddSheet("TestRead")
row := sheet.AddRow()
row.WriteStruct(&structVal, -1)

//read the struct from the same row
readStruct := &structTest{}
err := row.ReadStruct(readStruct)
if err != nil {
    panic(err)
}
fmt.Println(readStruct)

9、Yearning:Go 寫的高顏值、開源 SQL 稽核平臺

Java 專案

10、jbake:基於 Java 的開源靜態網站、部落格生成器。常用命令如下:

# 快速開始
$ curl -s "https://get.sdkman.io" | bash
$ sdk install jbake
$ mkdir awesome-jbake && cd awesome-jbake
$ jbake -i
$ jbake -b -s

jbake -h  #檢視幫助文件
jbake -i  #安裝依賴
jbake -s #執行專案

11、kkFileView:基於 Spring boot 打造的多型別檔案線上預覽專案。支援多種檔案例如:doc、ppt、xls、mp4、txt 等,功能強大便於快速開發和二次開發

12、zfile:免費開源的線上雲盤專案。功能特性:

  • 資料夾密碼
  • 支援線上瀏覽文字檔案、視訊、圖片、音樂
  • 檔案/目錄二維碼
  • 全域性搜尋
  • 等等

13、Schedulis:一個基於 Azkaban 開發的工作流任務排程系統。該排程系統具備高效能、高可用(去中心化多排程中心和多執行器)和多租戶資源隔離等。特性:

  • 常規的 Command Shell 和 Linkis(HadoopMR、Hive、Spark、Sqoop、Python)大資料任務
  • 特色的資料檢查和工作流之間的依賴任務
  • 完善的告警和工作流執行策略
  • 提供多種型別的引數設定,動態全域性變數和簡單易用的 UI

JavaScript 專案

14、typical:零依賴、僅 400 位元組的輸入動畫庫。示例程式碼:

import {
    type,
    type as loop
};

const steps = [1000, 'Ready', 1000, 'Set', 1000, 'Go'];

type(element, ...steps, loop);

15、HueJumper2k:用 JS 實現的 2KB 大小的 3D 賽車遊戲。線上試試

16、avataaars-generator:基於 React 實現的卡通頭像生成工具。線上嘗試

17、jexcel:一個輕量級、功能強大的電子表格庫。輕鬆實現複雜資料的表格管理,支援 JS 陣列、JSON、CSV 等資料,並且可以實現 excel 檔案的直接複製和貼上。示例程式碼:

var data = [
    ['Jazz', 'Honda', '2019-02-12', '', true, '$ 2.000,00', '#777700'],
    ['Civic', 'Honda', '2018-07-11', '', true, '$ 4.000,01', '#007777'],
];

jexcel(document.getElementById('spreadsheet'), {
    data:data,
    columns: [
        { type: 'text', title:'Car', width:120 },
        { type: 'dropdown', title:'Make', width:200, source:[ "Alfa Romeo", "Audi", "Bmw" ] },
        { type: 'calendar', title:'Available', width:200 },
        { type: 'image', title:'Photo', width:120 },
        { type: 'checkbox', title:'Stock', width:80 },
        { type: 'numeric', title:'Price', width:100, mask:'$ #.##,00', decimal:',' },
        { type: 'color', width:100, render:'square', }
     ]
});

18、form-create:一個可以通過 JSON 自動生成具有動態渲染、資料收集、驗證和提交功能的表單生成器。結合內建多種常用表單元件和自定義元件,輕鬆搞定複雜的表單,支援 iview、element-ui、and-design-vue

Python 專案

19、MrDoc:一個基於 Python 開發的線上文件系統。支援 Markdown 語法、文集分類、科學公式、流程圖、思維導圖等內容。清爽的閱讀介面,還可以把內容打包匯出為 Markdown 檔案、EPUB 檔案、PDF 檔案。適合作為個人和小型團隊的私有文件服務

20、geek_crawler:極客時間課程(目前僅支援圖文、音訊)下載到本地的 Python 指令碼。需輸入賬號密碼後,才能將指定極客時間專欄課程儲存到本地,方便隨時隨地學習

21、fastapi:基於 Python 3.6+ 的高效能 Web 框架。“人如其名”用 FastAPI 寫介面那叫一個快、除錯方便,Python 在進步而它基於這些進步,讓 Web 開發變得更快、更強。示例程式碼:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

# 啟動命令:uvicorn main:app --reload

Swift 專案

22、vimr:Neovim 的 macOS 版

23、SwiftUI:該專案參考 SwiftUI 官方示例,記錄程式碼和展示效果

其它

24、winget-cli:微軟開源的 Windows 程式包管理器,幫助開發者快速的安裝工具(預覽版)。 目前有搜尋、顯示和安裝軟體包等功能,命令簡單 winget install <tool>

25、fullstackopen:免費開源的 Web 全棧程式設計課程。一站式學習 React、Redux、Node.js、MongoDB、GraphQL 以及 TypeScript,這門課程會向你介紹基於 JavaScript 的現代 Web 程式設計技術。讓你可以利用 ReactJS 搭配 Node.js 開發的 REST API,來搭建單頁面應用程式

26、vim:Vim 官方倉庫

27、tool-tips:玩轉 IDE 加班遠離你,IntelliJ IDEA 的技巧倉庫

28、GitHub520:通過修改 hosts 解決 GitHub 訪問慢、圖裂問題的專案。基於 GitHub Action 定時訪問 ipaddress 自動獲取、輸出 GitHub 相關域名對應的最新 IP 保證長期有效,使用者不需要安裝和執行程式碼,直接複製專案首頁的內容便可生效

開源書籍

29、thinking-in-java-zh:《Java 程式設計思想》中文版。線上閱讀

機器學習

30、pose-animator:一個基於 PoseNet 和 FaceMesh 可將你的 Pose 變成 2D 動畫的工具。生成的動畫人物會根據你的表情和肢體動作做出相應動作,來試試製作你專屬的 2D 映象人吧

31、Real-World-Masked-Face-Dataset:口罩人臉資料集

32、scikit-opt:一個封裝了 7 種啟發式演算法的 Python 程式碼庫。分別是:差分進化演算法、遺傳演算法、粒子群演算法、模擬退火演算法、蟻群演算法、魚群演算法、免疫優化演算法,示例程式碼:

from sko.GA import GA_TSP

ga_tsp = GA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=50, max_iter=500, prob_mut=1)
best_points, best_distance = ga_tsp.run()

33、photo2cartoon:將真實照片轉換為卡通風格的開源專案。效果如下:


最後

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

關注 HelloGitHub 公眾號獲取第一手的更新

相關文章