《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)javascript

《HelloGitHub》第 36 期

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

簡介

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

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

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

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

🎉 最後 HelloGitHub 這個項目就誕生了 🎉python


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

C# 項目

一、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++ 項目

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

CSS 項目

三、CSS-Inspiration:這裏聚集了 CSS 的使用和學習的示例代碼,展現不一樣 CSS 屬性或者不一樣的課題使用 CSS 來解決的各類方法。在線閱讀地址包含代碼實際展現樣式golang

四、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 項目

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

六、etcd:一個高可用的分佈式鍵值數據庫,k8s 全家桶標配的註冊與發現服務。它採用 raft 一致性算法,基於 Go 語言實現。能夠經過該項目瞭解、學習 raft 的實際應用場景

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

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

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

八、learn-go-with-tests:經過單元測試學習 Go 語言。下載倉庫源碼後,進入對應目錄。每個小文件夾就是一個對應的 Go 項目,在裏面go test便可運行單元測試。因爲是測試驅動開發,因此須要在你改動代碼以後跑通單元測試纔算學會經過。每個對應的文件夾都有相應 Markdown 文字教程,比較淺顯易懂。並且還有中文版

九、AUXPI:基於 API 的簡單圖牀應用。整合了主流圖牀的 API,而且作了一個 GUI 用來管理,安裝簡單

Java 項目

十、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();

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

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

JavaScript 項目

十二、Web:前端入門的圖文教程,從 0-1 的過程。內容詳細,對於新入行前端的同窗有不少的幫助

1三、ncform:只須要配置相關參數,即可方便生成表單的UI組件,自帶校驗規則知足平常 90% 的要求。表單是 Web 應用中常見的組件,可是開發表單是一個重體力活,ncform 經過配置即可生成表單,極大的提升了開發效率

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

1五、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>)

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

Objective-C 項目

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

PHP 項目

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

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

Python 項目

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

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

2二、scrapydweb:Scrapy 爬蟲管理平臺,支持:Scrapyd 集羣管理、日誌可視化、定時任務、郵件通知、移動端 UI

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

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

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

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

Ruby 項目

2七、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 項目

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

其它

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

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

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

3二、web-frameworks:該項目展現了不一樣編程語言的 Web 框架性能對比,持續更新。能夠做爲挑選 Web 框架的參照信息

3三、FiraCode:高逼格的具備編程連字的等寬字體,最適合在編程編輯器、IDE、終端中使用。十分酷的字體,能夠增長寫代碼的慾望

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

開源書籍

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

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

機器學習

3七、BigGAN-PyTorch:「Bye Bye TPU」,4 個 GPU 就能訓練「史上最強」 BigGAN!只需 4-8 個 GPU 便可訓練,擺脫了算力束縛

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

3九、QuickDraw:谷歌開發的一個流行的在線遊戲,神經網絡會猜想你在畫什麼。神經網絡從每幅圖畫中學習,提升正確猜想塗鴉內容的能力。如今你能夠基於這個倉庫,用 Python 構建本身的 Quick Draw 遊戲

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

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


換種方式閱讀

  • 網站: https://hellogithub.com
  • GitBook: https://gitbook.hellogithub.com

聲明

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

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

相關文章
相關標籤/搜索