《HelloGitHub》第 26 期
公告
五月初 hellogithub.com 網站做了優化和試錯。因為我個人能力原因,導致這段時間網站出現了間斷性不能訪問,現在問題已經修復。多謝大家的支持、理解和反饋。
網站新增了“星圖”的功能,還在測試階段歡迎反饋問題。
總而言之,今年已過半 HelloGitHub 還在路上,希望大家多多支持,我們會越來越好。??
《HelloGitHub》第 26 期
興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
簡介
分享 GitHub 上有趣、入門級的開源項目。
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人群的月刊,月刊的內容包括:各種編程語言的項目、讓生活變得更美好的工具
- 會編程的可以貢獻代碼
- 不會編程的可以反饋使用這些工具中的 Bug
- 幫著宣傳你覺得優秀的項目
- Star 項目??
在瀏覽、參與這些項目的過程中,你將學習到更多編程知識、提高編程技巧、找到編程的樂趣。
?? 最後 HelloGitHub 這個項目就誕生了 ??
以下為本期內容|每個月 28 號發布最新一期|點擊查看往期內容
C 項目
1、ttygif:錄制終端.gif
C++ 項目
2、TrafficMonitor:一款用於 Windows 平臺的網速監控懸浮窗軟件。可以顯示當前網速、CPU及內存利用率、任務欄顯示、更換皮膚、歷史流量統計等功能
CSS 項目
3、caomei:一套免費、精致的開源圖標庫。
- 精心繪制 丨 風格統一、力求像素級的顯示
- 使用高效 丨 資源輕量、靈活、多設備兼容
- 開源免費 丨 個人私用和商用版權開源免費
4、You-need-to-know-css:該項目包含了一些常用的 CSS 樣式示例和作者閱讀《CSS揭秘》的收獲分享,適合於想要提高 CSS 技能的同學
Go 項目
5、lgo:實現像 python 一樣的交互式編程,同時整合了 Jupyter Notebook。效果如下:
6、gopool:Golang 分布式的連接池,協程池。內含 Redis Client 連接池實現,特點如下:
- 提供下遊的高可用訪問,投票機制摘除下遊不健康節點
- 最小健康比、最大冷卻時長可配置
- 每個下遊節點對應一個 channel,保證負載均衡
- 提供連接池狀態監控接口包括總連接數、每個 IP 的連接數
7、go-perfbook:《關於 Go 性能優化的思考》概述了編寫高性能 Go 代碼的最佳實踐。中文
Java 項目
8、AutoEx:幫助 Android 開發者,讓項目在崩潰時從異常堆棧中,自動尋找 Stack Overflow 的回答。體積只有 9kb 並且沒有依賴其他第三方庫。當程序出現異常時會有如下輸出:
┌—————————————————————AutoEx——————————————————————
├ 錯誤類型:android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0056 type #0x12 is not valid。↑詳細異常請往上滾動查看↑
├ 推薦參考Stack Overflow上4條同類問題。↓點擊下方連接查看↓
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 標題:Android Resources$NotFoundException: Resource ID #0x7f030027
├ 鏈接:https://stackoverflow.com/questions/21269502/android-resourcesnotfoundexception-resource-id-0x7f030027
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 標題:android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e
├ 鏈接:https://stackoverflow.com/questions/48161713/android-content-res-resourcesnotfoundexception-resource-id-0x7f07007e
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 標題:App crashes when adding an ImageView?
├ 鏈接:https://stackoverflow.com/questions/47600747/app-crashes-when-adding-an-imageview
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 標題:XML Android app will not load on phone
├ 鏈接:https://stackoverflow.com/questions/48310838/xml-android-app-will-not-load-on-phone
└—————————————————————AutoEx——————————————————————
9、javatuples:提供了多個方便易用的 Java 元組類。寫 Java 代碼經常會有需要使用元組的場景,我們經常會用 Array 或者 List 來代替這種實現。但是這不僅不夠優雅,並且不夠安全(你要放棄泛型來達到可以存放不同類型的數據)。而 javatuples 提供了多個類型安全的、優雅的實現類,大大提升了我們開發的效率以及便捷性。示例代碼:
...
String str = ...;
Integer integ = ...;
Double[] doubleArray = ...;
...
// create a tuple
Triplet<String,Integer,Double[]> triplet = Triplet.with(str, integ, doubleArray);
// fetch data
...
String myStr = triplet.getValue0();
Integer myInteg = triplet.getValue1();
Double[] myDoubleArray = triplet.getValue2();
...
JavaScript 項目
10、javascript-algorithms:包含了多種基於 JavaScript 的算法與數據結構,中文
11、Day.js:一個輕量的 JavaScript 時間日期處理庫。保持和 Moment.js 的 API 設計完全一樣。如果你曾經用過 Moment.js,那麽你已經知道如何使用 Day.js 了。體積僅有 2kb 是 Moment.js 的輕量化方案,示例代碼如下:
dayjs().startOf(‘month‘).add(1, ‘day‘).set(‘year‘, 2018).format(‘YYYY-MM-DD HH:mm:ss‘);
12、tui.calendar:功能全面的 JavaScript 日程安排日歷。雖然項目依賴了 jQuery,但是對於真實項目來說這樣做是可以的。此項目適用於多種場景,炫酷的交互和 UI
13、carbon:以美觀、整潔的方式,展示你的代碼片段。同時提供 SVG、PNG 多種方式展示
14、BizCharts:螞蟻出品的基於 React 的圖表庫。圖表樣式豐富、使用方便、易擴展、文檔齊全,官網
Python 項目
15、redis-faina:Redis 性能分析器。提供兩種模式分析模式:命令實時、讀取日誌。其原理是使用 Redis MONITOR 命令,將該命令的結果通過管道傳遞給 redis-faina 腳本,腳本將返回的信息解析,並匯成總成統計信息。具體信息如下所示:
註意:分析非常閑的 redis 實例時,分析的結果可能偏差的很多。
時間單位為微秒:ms = 1.0 × 10^-6 seconds
Overall Stats
========================================
# 總命令數
Lines Processed 10
# QPS
Commands/Sec 1.03
# 出現最多的 key 的前綴
Top Prefixes
========================================
startchart 9 (90.00%)
# 請求最多的key
Top Keys
========================================
startchart:521xueweihan/hellogithub 9 (90.00%)
# 請求最多的命令
Top Commands
========================================
get 9 (90.00%)
# 請求響應時間的分布
Command Time (microsecs)
========================================
Median 583914.0
75% 637395.0
90% 5703923.0
99% 5703923.0
# 總耗時最多的命令
Heaviest Commands (microsecs)
========================================
get 9746157.0
# 慢請求列表
Slowest Calls
========================================
5703923.0 "get" "startchart:521xueweihan/hellogithub"
637395.0 "get" "startchart:521xueweihan/hellogithub"
633909.0 "get" "startchart:521xueweihan/hellogithub"
583914.0 "get" "startchart:521xueweihan/hellogithub"
569207.0 "get" "startchart:521xueweihan/hellogithub"
548745.0 "get" "startchart:521xueweihan/hellogithub"
545493.0 "get" "startchart:521xueweihan/hellogithub"
523571.0 "get" "startchart:521xueweihan/hellogithub"
16、marshmallow:使用類似於 ORM 的語法,序列化、反序列化 Python 對象。可以將序列化的對象呈現為標準格式,適用於例如數據校驗、返回 HTTP API 的 JSON。示例代碼如下:
from datetime import date
from marshmallow import Schema, fields, pprint
class ArtistSchema(Schema):
name = fields.Str()
class AlbumSchema(Schema):
title = fields.Str()
release_date = fields.Date()
artist = fields.Nested(ArtistSchema())
bowie = dict(name=‘David Bowie‘)
album = dict(artist=bowie, title=‘Hunky Dory‘, release_date=date(1971, 12, 17))
schema = AlbumSchema()
result = schema.dump(album)
pprint(result, indent=2)
# 輸出如下
# { ‘artist‘: {‘name‘: ‘David Bowie‘},
# ‘release_date‘: ‘1971-12-17‘,
# ‘title‘: ‘Hunky Dory‘}
Rust 項目
17、fd:一個簡單、快速、友好的替代 find 命令的方案
18、rayon:一個易用、無數據競爭的將順序叠代器妝化成並行叠代器。簡單說就是原本你的數組只能一個一個地遍歷,使用這個庫可以並發同時從幾個 index 開始遍歷,同時也能遍歷 map 等類似的數據結構
Swift 項目
19、DotzuX:iOS APP 內置調試工具,支持 log 日誌查看、網絡抓包、沙盒查看等功能,代碼零入侵。示例代碼:
//Step 1.
#if DEBUG
import DotzuX
#endif
//Step 2.
#if DEBUG
DotzuX.enable()
#endif
//Step 3.
public func print<T>(file: String = #file, function: String = #function, line: Int = #line, _ message: T, _ color: UIColor? = nil) {
#if DEBUG
swiftLog(file, function, line, message, color)
#endif
}
其它
20、architect-awesome:《後端架構師技術圖譜》
21、a-cartoon-intro-to-redux-cn:《看漫畫學 Redux》
22、architecture.of.internet-product:知名互聯網公司的架構文檔
23、public-apis:(英文)用於 Web 開發的公共 API 集合
24、practical-programming-books:實用的計算機相關技術書籍、入門的實用教程、技術網站、博文集合
開源書籍
25、sicp-py-zh:《SICP Python 描述中文版》在線閱讀
機器學習
26、AlphaZero_Gomoku:使用 TensorFlow/Pytorch/Theano 實現 AlphaZero 算法,通過自我對弈從零訓練五子棋 AI。實現簡單、清晰,適合學習、了解 AlphaGo Zero 背後的關鍵思想和技術細節
換種方式閱讀
- 網站: https://hellogithub.com
- GitBook: https://gitbook.hellogithub.com
聲明
如果你發現了好玩、有意義的開源項目 點擊這裏 分享你覺得有意思的項目。
歡迎轉載,請註明出處和作者,同時保留聲明。
《HelloGitHub》第 26 期