《HelloGitHub》第 37 期

HelloGitHub發表於2019-04-27

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

《HelloGitHub》第 37 期

簡介

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

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

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

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

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


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

C# 專案

1、RemoteDesktopManage:基於 MSTSC 連線 Windows 遠端桌面,並對其進行封裝實現管理多個遠端桌面配置的小工具。更加方便地管理多個遠端桌面,實現同時遠端、互相切換。相當於把多個 MSTSC 集合在一個軟體裡,並進行分組打標試用

《HelloGitHub》第 37 期

C++ 專案

2、tinytetris:一個用 C++ 編寫的終端版俄羅斯方塊遊戲。提供了兩個版本的原始碼,分為註釋版和庫版,註釋較多易於理解和學習

《HelloGitHub》第 37 期

Go 專案

3、overlord:基於 Go 語言編寫的 memcache 和 redis&cluster 的代理及叢集管理平臺。致力於提供自動化高可用的快取服務解決方案。自帶圖形介面的快取叢集管理程式,安裝步驟

《HelloGitHub》第 37 期

4、kratos:嗶哩嗶哩開源的一套 Go 微服務框架,包含大量微服務相關框架及工具。解決了 gin 在微服務場景下的一些適配和微服務本身的一系列生態,快速開始

《HelloGitHub》第 37 期

5、docker-slim:自動縮減 docker 映象的體積的工具。大幅度縮減 docker 映象的體積,方便分發,使用命令 docker-slim build --http-probe your-name/your-app。比如 Node.js 映象縮減後的對比:

from ubuntu:14.04 - 432MB => 14MB (縮減了 30.85 倍)

from debian:jessie - 406MB => 25.1MB (縮減了 16.21 倍)

from node:alpine - 66.7MB => 34.7MB (縮減了 1.92 倍)
複製程式碼

6、beam:eBay 開源的分散式圖資料庫,少數依然支援 SparQL 的圖資料庫

Java 專案

7、giffun:Android 端開源的 GIF 瀏覽和分享 App。該應用介面基於 Material Design 標準設計,圍繞 GIF 為主題,建立了一個小型的社交系統。支援:

  • 檢視熱門搞笑的 GIF 圖
  • 關注你喜歡的人,他的有趣分享盡收眼底
  • 一鍵釋出你自己的 GIF 趣圖
  • 對你感興趣的內容點贊、點評
  • 喜歡的內容輕鬆轉發至主流社交軟體,傳遞你的快樂

《HelloGitHub》第 37 期

8、cim:一款面向開發者的 IM 即時通訊系統。命令列通訊工具,對開發者友好。提供了一些元件讓開發者易於擴充套件和定製功能。架構圖如下:

《HelloGitHub》第 37 期

9、SpringAll:Spring 系列原始碼教程,包含 Spring Boot、Spring Boot、Spring Cloud 等。Spring 是 Java 目前生命力最強的框架之一,通過資料與原始碼的配合,容易學習和上手

10、seata:一套一站式分散式事務解決方案。讓分散式事務的使用像本地事務的使用一樣,簡單和高效,並逐步解決開發者們遇到的分散式事務方面的所有難題。分散式事務提出了很多年,但是一直沒有很好的解決方案,要不就收費很貴。螞蟻金服開源的 seata,將讓分散式事務不在束之高閣,任何需要的人都可以使用它,推薦學習和使用。工作流程圖如下:

《HelloGitHub》第 37 期

JavaScript 專案

11、xgplayer:由位元組跳動西瓜視訊開源的帶解析器、能節省流量的 HTML5 視訊播放器。可以作為 H5 元件、Vue、React 元件單獨使用。它根據元件化的原則設計了一個獨立的、可分離的 UI 元件。更重要的是,它不僅在 UI 層具有靈活性,而且在功能上也很大膽:它擺脫了視訊載入、緩衝和格式支援。在播放器端載入視訊、解析視訊、轉換格式,讓不支援分段播放的 MP4 動態支援,這樣就無須轉換源視訊的格式,伺服器端也無其他開銷。官網,示例程式碼:

//  安裝:$ npm install xgplayer
// 第一步:<div id="vs"></div>
// 第二步:
import Player from 'xgplayer';

const player = new Player({
    id: 'vs',
    url: 'http://s2.pstatp.com/cdn/expire-1-M/byted-player-videos/1.0.0/xgplayer-demo.mp4'
})
複製程式碼

12、zhui:這是一款國風的元件庫。好用的元件庫千千萬,有趣的創意萬里挑一

《HelloGitHub》第 37 期

13、emoji-minesweeper:Emoji 符號的掃雷遊戲。程式碼很簡短,遊戲創意很酷。寥寥 300+ 行程式碼實現該遊戲,簡短易於初學者學習

《HelloGitHub》第 37 期

14、squoosh:谷歌開源的圖片壓縮工具。在保證圖片質量的情況下快速壓縮圖片,支援多種圖片格式。6.63M 的圖片壓縮後為 2.92M,使用起來簡單方便

《HelloGitHub》第 37 期

15、leetcode:更加貼近前端的資料結構與演算法的庫。以 leetcode 作為切入點,詳細講解關於資料結構的方方面面, 並以JavaScript 語言作為解題語言。 後期會加入更多關於前端貼合的內容, 比如:react fiber 的實現和連結串列、react hooks 的實現和陣列等等

  • 第一部分:leetcode 經典題目的解析,包括思路、關鍵點和具體的程式碼實現
  • 第二部分:對於資料結構與演算法的總結
  • 第三部分:anki 卡片, 將 leetcode 題目按照一定的方式記錄在 anki 中,方便大家記憶

Python 專案

16、ffmpeg-python:FFmpeg 是一套可以用來記錄、轉換數字音訊、視訊,並能將其轉化為流的開源計算機程式。這個是其 Python 的庫,可以用該庫操作、處理視訊和音訊。示例程式碼:

# 水平翻轉視訊
import ffmpeg
stream = ffmpeg.input('input.mp4')
stream = ffmpeg.hflip(stream)
stream = ffmpeg.output(stream, 'output.mp4')
ffmpeg.run(stream)
複製程式碼

《HelloGitHub》第 37 期

17、pyright:微軟出品的 Python 靜態型別檢查工具。執行速度快,適合大型 Python 專案,引用一句話:動態語言一時爽,重構火葬場

18、pyxel:基於 Python 程式設計程語言實現的復古遊戲引擎。示例程式碼:

# 程式碼中匯入 Pyxel 模組後
import pyxel
# 首先使用 init 函式指定視窗大小
pyxel.init(160, 120)

def update():
    if pyxel.btnp(pyxel.KEY_Q):
        pyxel.quit()

def draw():
    pyxel.cls(0)
    pyxel.rect(10, 10, 20, 20, 11)
# 最後然後使用 run 函式啟動 Pyxel 應用程式
pyxel.run(update, draw)
複製程式碼

《HelloGitHub》第 37 期

Ruby 專案

19、githubchart-api:根據 GitHub 賬號的貢獻記錄生成對應影像。一行程式碼,可以在任何網站展示自己在 GitHub 上的貢獻活躍圖示。示例程式碼:

<img src="http://ghchart.rshah.org/使用者名稱" alt="Github commit chart" />
複製程式碼

《HelloGitHub》第 37 期

20、guides:Ruby 程式設計風格指南。統一的格式風格有利於程式碼的維護和迭代,對於 Ruby 使用者而言幫助極大

Swift 專案

21、GodEye:一行程式碼自動顯示日誌、崩潰、網路、ANR、洩漏、CPU、資料夾等資訊,就像上帝睜開眼睛一樣

《HelloGitHub》第 37 期

其它

22、CS-Notes:該專案整理、聚集了技術面試必備的基礎知識。省去了查詢資料的時間,同時也是一份很好的學習資料

23、zju-icicles:浙江大學各種課程相關資源集合。包含:課程、作業、答案、複習資料、選課攻略等,是浙大在校生的必備資源,對於有考研想法的小夥伴而言也是很好的資源

24、awesome-scalability:一個系統的閱讀列表,描述了可擴充套件、高可用、高效能的大型系統背後的東西。每部分都是基於真實案例,講述瞭如何搭建一個可擴充套件、高可用、高效能的大型系統,案例都是來自於經過數百萬甚至數十億使用者實戰檢驗的系統。對於所有工程師而言都是一個很好的學習資料,開卷有益

25、awesome-wechat-weapp:該專案收集了微信小程式開發過程中會使用到的資料、問題以及第三方元件庫。隨著微信小程式的市場越來越大,很多公司也專門以製作小程式為業,不論對感興趣的人還是想自己動手做小程式的人而言,這份合集省去了不少查詢資料的時間

26、REKCARC-TSC-UHT:清華大學計算機系課程相關資源集合。內容豐富,包含從大一到大四,跟著清華學子一起學習傳說中高校的課程吧

開源書籍

27、prometheus-book:《Prometheus 操作指南》,線上閱讀

28、the-craft-of-selfteaching:《自學是門手藝》一個程式設計入門者的自學心得。如今學習資源很多,對於初學者入門而言,最難的是如何自學,閱讀本書開啟程式設計自學大門吧

教程

29、nginx-quick-reference:該專案描述瞭如何提高 Nginx 的效能、安全性等方面的步驟,讓你的網站在 SSL Labs 的評級到達 A+

機器學習

30、openpose:基於卷積神經網路和監督學習的開源庫,可以實現人的面部、軀幹和四肢甚至手指的跟蹤。適用於多人,且標記準確,同時具有較好的魯棒性

31、FaceDetection-DSFD:騰訊優圖的雙分支人臉檢測器全新演算法,該演算法已經被計算機視覺頂級會議 CVPR 2019 接收。優圖此次提出的 DSFD 人臉檢測演算法,主要有 3 點創新:

  1. 新的特徵增強模組(FEM:Feature Enhance Module)
  2. 分層錨點漸進式的代價函式監督(PLA:Progressive Anchor Loss)
  3. 改進的錨點匹配策略(Improved Anchor Matching Strategy)

《HelloGitHub》第 37 期

32、SPADE:英偉達(NVIDIA)新開源的繪圖工具。利用生成對抗網路,根據幾根簡單的線條就能生成栩栩如生的影像

《HelloGitHub》第 37 期

33、LearningToPaint:一個深度強化學習專案,研究如何讓機器用畫筆畫畫。也可體驗製作自己的繪畫或根據一張圖片生成一整個繪畫過程

《HelloGitHub》第 37 期


換種方式閱讀

宣告

如果你發現了好玩、有意義的開源專案 點選這裡 分享你覺得有意思的專案。

歡迎轉載,請註明出處和作者,同時保留宣告。

相關文章