《HelloGitHub》第 35 期

HelloGitHub發表於2019-02-28

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

《HelloGitHub》第 35 期

簡介

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

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

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

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

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


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

C# 專案

1、IdentityServer4.Admin:免費開源的 IdentityServer4 與 Asp.Net Core Identity 管理器。IdentityServer4 官方的管理器是收費的,該專案很好的替代了官方管理器,可以方便的管理使用 IdentityServer4 所搭建的認證伺服器

《HelloGitHub》第 35 期

C++ 專案

2、FLIF:免費、新穎的無損影象格式。壓縮比方面優於 PNG、lossless WebP、lossless BPG、lossless JPEG2000 等格式

Go 專案

3、cds:企業級開源持續整合系統。支援橫向擴充套件、自帶 UI、常用的持續整合構建等功能

《HelloGitHub》第 35 期

4、docui:終端 Docker 管理工具,自帶一個終端介面。使用該工具可以方便的通過介面管理 docker 不用再記那些命令。安裝命令:

# Homebrew
$ brew tap skanehira/docui
$ brew install docui

# go get
$ go get -d github.com/skanehira/docui
$ cd $GOPATH/src/github.com/skanehira/docui
$ GO111MODULE=on go install
複製程式碼

《HelloGitHub》第 35 期

5、go-echarts:Golang 程式碼生成對應的 echarts 視覺化圖表。例項程式碼:

// example.go
package main

import (
    "log"
    "math/rand"
    "os"
    "time"

    "github.com/chenjiandongx/go-echarts/charts"
)

var nameItems = []string{"襯衫", "牛仔褲", "運動褲", "襪子", "衝鋒衣", "羊毛衫"}
var seed = rand.NewSource(time.Now().UnixNano())

func randInt() []int {
    cnt := len(nameItems)
    r := make([]int, 0)
    for i := 0; i < cnt; i++ {
        r = append(r, int(seed.Int63()) % 50)
    }
    return r
}

func main() {
    bar := charts.NewBar()
    bar.SetGlobalOptions(charts.TitleOpts{Title: "Bar-示例圖"}, charts.ToolboxOpts{Show: true})
    bar.AddXAxis(nameItems).
        AddYAxis("商家A", randInt()).
        AddYAxis("商家B", randInt())
    f, err := os.Create("bar.html")
    if err != nil {
        log.Println(err)
    }
    bar.Render(f)
}
複製程式碼

《HelloGitHub》第 35 期

6、1m-go-websockets:該專案演示瞭如何用 Go 編寫一個可以提供超過一百萬個 websockets 連線、執行記憶體小於 1GB 的伺服器。setup.sh 是用來建立 websocket 客戶端的,destroy.sh 則用來銷燬客戶端

Java 專案

7、SpringBoot-Learning:Spring Boot 教程

8、halo:Java 部落格系統。在層出不窮的部落格系統中,很難看到使用 Java 編寫的簡潔優雅的部落格系統。該專案還具備著輕快且功能強大的特點,這些特性使它從眾多 Java 部落格系統脫穎而出。安裝命令:

# 安裝 Halo
$ yum install -y wget && wget -O halo-cli.sh https://git.io/fxHqp && bash halo-cli.sh -i
# 更新 Halo
$ bash halo-cli.sh -u
複製程式碼

《HelloGitHub》第 35 期

9、APIJSON:快速開發 API 服務的框架。為簡單的增刪改查、複雜的查詢、簡單的事務操作提供了完全自動化的 API。大部分 HTTP 請求後端再也不用寫介面了,也不用寫文件了,適合中小型前後端分離的專案

《HelloGitHub》第 35 期

10、IQL:基於 SparkSQL 實現了一套即席查詢服務,具有如下特性:

  • 優雅的互動方式,支援多種 datasource/sink、多資料來源混算
  • Spark 常駐服務,基於 zookeeper 的引擎自動發現
  • 多 session 模式實現並行查詢
  • 等等

《HelloGitHub》第 35 期

JavaScript 專案

11、Gitter:GitHub 的小程式客戶端。UI 設計漂亮,可作為小程式和 GitHub 結合的實戰專案學習

《HelloGitHub》第 35 期

12、Motrix:桌面下載工具,支援下載 HTTP、FTP、BT、磁力鏈、百度網盤等資源。介面簡潔易用,採用 Vue + VueX + Element 的技術架構適合學習桌面應用開發

《HelloGitHub》第 35 期

13、rainbow:體積小、易於使用、支援各種程式語言的語法高亮外掛。該專案原理是通過正則過濾關鍵字,然後進行高亮。程式碼:

// JS關鍵字判斷
Rainbow.extend('javascript', [

    /**
     * matches $. or $(
     */
    {
        name: 'selector',
        pattern: /\$(?=\.|\()/g
    },
    {
        name: 'support',
        pattern: /\b(window|document)\b/g
    }
...
複製程式碼

14、Chart.js:基於 canvas 的視覺化庫。可用於構建簡單的 H5 圖表,滿足基本的日常視覺化需求

《HelloGitHub》第 35 期

15、ant-design-vue:Ant Design 的 Vue 實現,該專案已經得到 Ant Design 官方認可

Objective-C 專案

16、iWeChat:還原、探索微信 APP 的專案。通過該專案借鑑、學習微信客戶端開發的相關設計與技術,也可以學到如何分析一個第三方 APP 的方法

Python 專案

17、spug:使用 Python+Vue 實現的開源運維平臺,前後端分離方便二次開發。該專案基於 Docker 映象釋出部署,方便安裝和升級。支援運維常見功能:主機管理、任務計劃管理、釋出部署、監控告警等

《HelloGitHub》第 35 期

18、ruia:基於 asyncio 和 aiohttp 的 Python3 非同步爬蟲框架。它具有容易上手、非阻塞、擴充套件性強等特點,例項程式碼:

from ruia import TextField, Item, Spider

class HackerNewsItem(Item):
    target_item = TextField(css_select='tr.athing')
    title = TextField(css_select='a.storylink')


class HackerNewsSpider(Spider):
    start_urls = ['https://news.ycombinator.com/news?p=1']

    async def parse(self, response):
        async for item in HackerNewsItem.get_items(html=response.html):
            yield item

if __name__ == '__main__':
    HackerNewsSpider.start()
複製程式碼

《HelloGitHub》第 35 期

其它

19、devhub:支援 Android、iOS、Web、Desktop 的 GitHub 管理通知客戶端。能夠幫你方便地接收、檢視、管理 GitHub 訊息、動態等

《HelloGitHub》第 35 期

20、neovim:致力於改善 Vim 的維護、可擴充套件性等方面的編輯器。它功能強大、專案開發活躍、社群活躍,“新一代”的 Vim

《HelloGitHub》第 35 期

21、Micro8:浸淫滲透攻擊的老鳥所寫,內容一線深入淺出,主要是 Windows 系統場景。對於初中級安全從業人員、乙方安全測試、甲方安全自檢、網路安全愛好者等提高都有很大的幫助

22、OI-WIKI:免費、開放、持續更新的程式設計競賽相關知識教程。包含競賽的基礎知識、常見題型、解題思路以及常用工具等內容,幫助大家更快速、深入地學習程式設計競賽相關知識

23、USTC-CS-Courses-Resource:該倉庫收錄中國科學技術大學眾多課程資源。包括電子版教材、參考書、講義、試卷、學習心得、習題解答等。以計算機學院課程為主,也包含公選課、自由選修等其他課程。

《HelloGitHub》第 35 期

開源書籍

24、You-Dont-Know-JS:(英文)深入探討 JavaScript 語言核心機制的書籍,適用於深入學習 JS。該書已出版,但線上閱讀免費

25、d2l-zh:《Dive into Deep Learning 》翻譯版,即《動手學深度學習》。線上閱讀

26、cppwasm-book:《C/C++ 面向 WebAssembly 程式設計》,線上閱讀

機器學習

27、gpt-2:OpenAI 釋出的 15 億引數量通用語言模型 GPT-2,迄今最大模型!展示了一種構建語言處理系統的潛在方式,即根據自然發生的演示學習執行任務。例項程式碼:

export PYTHONIOENCODING=UTF-8
python3 src/generate_unconditional_samples.py | tee samples
python3 src/generate_unconditional_samples.py --top_k 40 --temperature 0.7 | tee samples
python3 src/interactive_conditional_samples.py --top_k 40
複製程式碼

28、deep-learning-drizzle:世界計算機名校的深度學習、強化學習、機器學習、計算機視覺、自然語言處理等方面的公開課

29、stanfordnlp:適用於多種人類語言的 Stanford NLP 官方 Python 庫。包含用於執行 CoNLL 2018 共享任務的最新完全神經管道以及訪問 Java Stanford CoreNLP 伺服器的軟體包。例項程式碼:

import stanfordnlp
stanfordnlp.download('en')   # This downloads the English models for the neural pipeline
nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English
doc = nlp("Barack Obama was born in Hawaii.  He was elected president in 2008.")
doc.sentences[0].print_dependencies()
複製程式碼

30、Tensorflow-Cookbook:易學易用的 Tensorflow 教程


換種方式閱讀

宣告

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

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

相關文章