《HelloGitHub》第 36 期


公告

本期內容較多。本期共有 41 個項目:C# 項目(1),C++ 項目(1),CSS 項目(2),Go 項目(5),Java 項目(2),JavaScript 項目(5),Objective-C 項目(1),PHP 項目(2),Python 項目(7),Ruby 項目(1),Swift 項目(1),其它(6),開源書籍(2),機器學習(5)

《HelloGitHub》第 36 期

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

簡介

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

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

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

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

🎉 最后 HelloGitHub 這個項目就誕生了 🎉


以下為本期內容|每個月 28 號發布最新一期|點擊查看往期內容

C# 項目

1、xs:一個專注於簡單的開源跨平台編程語言。這門語言的設計目標是改進閱讀與編寫效率,降低語法負擔。讓使用者能夠把真正的注意力放在解決問題上,只需極少的代碼就能優雅地表達邏輯。中文手冊,示例代碼如下:

# export namespace
\HelloWorld {
    System # import namespace
}
# package
program -> {
    # main function
    Main() -> () {
        # list
        greetings := {"Hello", "Hola", "Bonjour",
                    "Ciao", "こんにちは", "안녕하세요",
                    "Cześć", "Olá", "Здравствуйте",
                    "Chào bạn", "您好"}
        # for-each  
        @ item <- greetings {
            # switch
            ? item -> [ 0 <= 8 ] {
                prt(item) # call function
            } _ {
                # lambda
                prt( greetings.filter( {it -> it.len> 4} ) )
                <- @
            }
        }
    }
}

C++ 項目

2、calculator:微軟 Windows 系統預裝的計算器工具開源了。該工具提供標准、科學、程序員計算器的功能,以及各種度量單位和貨幣之間的轉換功能。實現語言為 C++ 代碼並不復雜,快來看看微軟工程師編寫的代碼吧!運行效果如下:

CSS 項目

3、CSS-Inspiration:這里匯集了 CSS 的使用和學習的示例代碼,展示不同 CSS 屬性或者不同的課題使用 CSS 來解決的各種方法。在線閱讀地址包含代碼實際展示樣式

4、bootstrap-table:基於 Bootstrap 的 jQuery 表格插件,通過簡單的設置就可以擁有強大的單選、多選、排序、分頁、編輯、導出、過濾(擴展)等功能。示例代碼:

<table data-toggle="table">
  <thead>
    <tr>
      <th>Item ID</th>
      <th>Item Name</th>
      <th>Item Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Item 1</td>
      <td>$1</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Item 2</td>
      <td>$2</td>
    </tr>
  </tbody>
</table>

Go 項目

5、drone:一個基於 Docker 的持續集成平台,使用 Go 語言編寫

6、etcd:一個高可用的分布式鍵值數據庫,k8s 全家桶標配的注冊與發現服務。它采用 raft 一致性算法,基於 Go 語言實現。可以通過該項目了解、學習 raft 的實際應用場景

# 使用 etcd 的客戶端存取鍵值對
$ etcdctl put mykey "this is awesome"
$ etcdctl get mykey

7、pprof:Go 語言的性能分析工具,可以用來調試 Go 程序的內存泄露、goroutine 泄露之類的問題。使用方法:

# 安裝
$ go get -u github.com/google/pprof
# 生成一個profile文件
$ pprof -top [你的golang程序二進制文件] profile.pb.gz
# 生成火焰圖
$ pprof -web [你的golang程序二進制文件] profile.pb.gz

8、learn-go-with-tests:通過單元測試學習 Go 語言。下載倉庫源碼后,進入對應目錄。每一個小文件夾就是一個對應的 Go 項目,在里面go test即可運行單元測試。由於是測試驅動開發,所以需要在你改動代碼之后跑通單元測試才算學會通過。每一個對應的文件夾都有相應 Markdown 文字教程,比較淺顯易懂。而且還有中文版

9、AUXPI:基於 API 的簡單圖床應用。整合了主流圖床的 API,並且做了一個 GUI 用來管理,安裝簡單

Java 項目

10、Luban:圖片壓縮是常見的問題,那么微信是如何處理圖像的壓縮?Luban(魯班)就是通過在微信朋友圈發送近 100 張不同分辨率的圖片,對比原圖與微信壓縮后的圖片逆向推算出來的壓縮算法。示例代碼:

// 同步調用
Flowable.just(photos)
    .observeOn(Schedulers.io())
    .map(new Function<List<String>, List<File>>() {
      @Override public List<File> apply(@NonNull List<String> list) throws Exception {
        // 同步方法直接返回壓縮后的文件
        return Luban.with(MainActivity.this).load(list).get();
      }
    })
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe();

11、yacy_search_server:一款采用了新的搜索方法的搜索引擎軟件。 它不需要中央服務器,但它搜索的結果來自於獨立的分布式網絡。在這樣的分布式網絡中,沒有任何一個實體可以決定列出的內容或結果出現的順序。啟動和關閉的方法:

  • GNU/Linux 系統,啟動:./startYACY.sh、關閉:./stopYACY.sh
  • Windows 系統,啟動:雙擊startYACY.bat、 關閉:雙擊stopYACY.bat
  • Mac OS X 系統,請使用 Mac 應用程序,並像其他 Mac 應用程序那樣啟動或停止它(雙擊)

JavaScript 項目

12、Web:前端入門的圖文教程,從 0-1 的過程。內容詳細,對於新入行前端的同學有很多的幫助

13、ncform:只需要配置相關參數,便可方便生成表單的UI組件,自帶校驗規則滿足日常 90% 的要求。表單是 Web 應用中常見的組件,但是開發表單是一個重體力活,ncform 通過配置便可生成表單,極大的提高了開發效率

14、vscode-leetcode:這是一個可以讓用戶在 VS Code 編輯器中,練習 LeetCode 習題的插件。支持:查看高票解答、提交答案、測試答案等。提高了刷題效率,助你在校招、社招中殺出重圍。上班摸魚刷題利器

15、griffith:讓流式播放變得簡單。無論你視頻格式是 mp4 還是 hls,Griffith 都能使用媒體源拓展(MSE)來實現分段加載等功能,提供在線視頻播放。示例代碼:

// yarn add griffith

import Player from 'griffith'

const sources = {
  hd: {
    play_url: 'https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_hd.mp4',
  },
  sd: {
    play_url: 'https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_sd.mp4',
  },
}

render(<Player sources={sources} ></Player>)

16、makegirlsmoe_web:動漫角色圖片生成工具。支持:選擇發色、發型、眼睛、皮膚、微笑、風格等等特征生成二次元圖片。自定義生成可愛的二次元頭像,二次元界福音。在線嘗試

Objective-C 項目

17、BackgroundMusic:macOS 音頻工具,包含功能:自動暫停音樂、設置各個應用程序的音量、錄制系統音頻

PHP 項目

18、php-console:使用簡單,功能全面的 PHP 命令行應用庫。提供控制台參數解析、命令運行、顏色風格輸出、 用戶信息交互等功能

19、PasteMe:快速分享文本、代碼的網站項目。支持加密、一鍵復制、永久保存、閱后即焚等功能。在線示例

Python 項目

20、ds-cheatsheets:Python 在數據科學方面使用庫的速查表,包含了 Pandas、Jupyter、SQL、Dask 等。雖然都是些基本的 API 調用,但是用來備忘和速查足以

21、better-exceptions:更加友好、實用、漂亮的輸出 Python 異常

22、scrapydweb:Scrapy 爬蟲管理平台,支持:Scrapyd 集群管理、日志可視化、定時任務、郵件通知、移動端 UI

23、awesome-python-login-model:該項目收集了各大網站登陸方式和部分網站的爬蟲程序。登陸方式實現包含 selenium 登錄、通過抓包直接模擬登錄等。有助於新手研究、編寫爬蟲

24、gita:基於 Python 開發的管理 git 工具,使用后可在任何目錄下代理執行 git 指令。同時支持同時顯示多個 repo 的狀態信息、本地分支與遠程分支的關系等

25、dash:一款只用幾百行 Python 代碼就可以輕易實現數據分析可視化的利器,是目前 Python 社區數據可視化主要的工具之一。具有:使用簡單、易於擴展、開發團隊活躍等特點

26、pylane:一個基於 gdb 的 Python 進程注入和調試工具。通過 gdb trace Python 進程,然后在該進程的 Python vm 中動態地注入一段 Python 代碼, 從而對一個運行中的 Python 進程執行一段任意的邏輯。更多 Python 調試經驗,可閱讀這篇文章

Ruby 項目

27、jekyll:強大的靜態博客網站生成工具。無需數據庫,可以通過 Markdown 和 Config 輕松生成一個靜態博客。該項目十分成熟、社區活躍、擁有多種主題可供選擇。最后可以通過 GitHub Page 把生成的博客免費部署上線。快速開始:

1. 安裝 jekll:gem install bundler jekyll
2. 創建項目:jekyll new my-awesome-site
3. 進入新創建的項目:cd my-awesome-site
4. 本地運行:bundle exec jekyll serve
5. 本地訪問地址:http://localhost:4000

Swift 項目

28、Bagel:一個小型、原生的 iOS 網絡調試工具。使用過程不需要配置證書、代理之類的東西。只需要 iOS 設備和 Mac 處於同一網絡,就可以查看、監控 App 的網絡流量等信息

其它

29、howto-make-more-money:該項目介紹了程序員如何掙零花錢的姿勢

30、translations:一些不錯的英文資料、文章翻譯項目

31、ChinaMobilePhoneNumberRegex:一組匹配中國大陸手機號碼的正則表達式

32、web-frameworks:該項目展示了不同編程語言的 Web 框架性能對比,持續更新。可以作為挑選 Web 框架的參照信息

33、FiraCode:高逼格的具有編程連字的等寬字體,最適合在編程編輯器、IDE、終端中使用。十分酷的字體,可以增加寫代碼的欲望

34、ChromeAppHeroes:優秀、實用的 Chrome 插件集合。該項目還包含插件的中文的使用介紹,為的是讓好的插件被更多人發現和使用

開源書籍

35、PythonDataScienceHandbook:英文原版《Python Data Science Handbook》,該書對於希望或已經從事數據科學相關工作的 Python 工程師而言是重要的學習手冊。在線閱讀

36、Go42:《Go語言四十二章經》Golang 入門書籍。書中作者總結了自己踩坑的經驗總結和思考,在線閱讀

機器學習

37、BigGAN-PyTorch:“Bye Bye TPU”,4 個 GPU 就能訓練“史上最強” BigGAN!只需 4-8 個 GPU 即可訓練,擺脫了算力束縛

38、Virgilio:本資源庫旨在為以下領域提供三種有機完整的學習路徑:機器學習、商業智能、雲計算。在此你將能夠了解相關原理並且在項目實踐中予以運用。如果仔細遵循這些學習路徑,則可以從零開始構建完整的認識和獲得始終可用的技能。事實上,這些學習路徑不需要之前有相關知識,但基礎編程和簡單數學是理解和實踐大多數相關概念的必要條件

39、QuickDraw:谷歌開發的一個流行的在線游戲,神經網絡會猜測你在畫什么。神經網絡從每幅圖畫中學習,提高正確猜測塗鴉內容的能力。現在你可以基於這個倉庫,用 Python 構建自己的 Quick Draw 游戲

40、GNNPapers:自從卷積神級網絡面世以來,大部分人將其應用在規則的空間結構數據當中,比如圖像。但是現實中存在更多的並不具備規則的空間結構的數據,因此研究人員提出了處理這部分數據的網絡模型-GNN。該項目列舉了 GNN 方面的論文,較為全面,適合有一定基礎的人閱讀

41、faceswap:這個工具可以對圖片和視頻進行換臉。可以很方便地處理圖片和視頻,搞些有意思的事情


換種方式閱讀

聲明

如果你發現了好玩、有意義的開源項目 點擊這里 分享你覺得有意思的項目。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM