本周開源周報流行開源項目榜中榜前十名項目就有意思了:先說說 English-level-up-tips-for-Chinese 吧,如果你的女神編程遇到了問題(不要較真,女神真的有可能也要編程的...,編程女孩也有很多女神...),你會視之無睹嗎?如果女神的問題你恰好不會,你打算怎麼辦?以小編的慘痛經驗來看,當然是自己趕緊學會了,禽獸...不對,親手,手把手教會她啊!那這個 English-level-up-tips-for-Chinese 大概就是這麼來的,女神要考托福了,求助於程序員朋友,故事就是從這裡開始了...不要羨慕,趕緊學習吧,這個項目可能是讓計算機從業人員受益匪淺的英語進階指南,絕對讓你受益匪淺,而且...順帶說一句,女神最後也跟他在一起了!

這裡提醒各位程序員朋友,必須要有時間陪女神,急女神之所急,解女神之所需,程序員的溫柔,是為了你周末雙休,加薪誘我也不回頭,少加班,多戀愛!

除了英語學習項目,其他一些項目也非常值得關注,像是一個後端用 Rust 編寫的現代文本編輯器 xi (貌似名字有點不和諧?),代碼錯誤檢查器 Glow,收集 Python 中令人驚訝的片段和鮮為人知的功能幫助python程序員增進技術的 wtfpython,根據內容感知圖像並進行調整的 Go 語言庫 Caire,JS庫callbag-basics,Git 存儲庫應用 GRV,NES 模擬器的 JS 庫 jsnes ,Greenlet,高級Python Web框架 Django,針對人工智慧學習系統TensorFlow準備的各種學習模型的庫 models 等等等等,可以說非常精彩了,說了這麼多,快看看本周開源周報吧。

本周流行開源項目榜中榜開源趨勢 Top 10

0.xi-editor

一個後端用Rust編寫的現代文本編輯器

設計思路:

1、分離成前端和後端模塊:前端負責呈現用戶界面並繪製一個充滿文字的屏幕。後端(也稱為「核心」)保存文件緩衝區,並負責所有可能的高價值的編輯操作。

2、原生UI:跨平台的UI工具包永遠不會讓人感覺是正確的。構建UI的最佳技術是平台的本地框架。在Mac上,就是 Cocoa

3、Rust:後端需要非常高效。特別是,它應該比正在編輯的緩衝區使用更多的內存。在C ++中這種性能水平符合要求,但Rust提供了一個更可靠的,在許多方面更高層次的編程平台。

4、一個持續的rope數據結構:即使對於非常大的文件,持續rope也是有效的。另外,它們為客戶提供了一個簡單的界面 - 從概念上講,它們就像字元串一樣是一串字元,客戶端不需要知道任何內部結構。

5、非同步操作:編輯不應該阻止和阻止用戶完成他們的工作。例如,自動保存將生成一個線程,其中包含當前編輯器緩衝區的快照(永久性rope數據結構是寫入時拷貝),然後可以在閑置時將其寫入磁碟,同時緩衝區仍然是完全可編輯的。

6、插件依靠腳本:大多數文本編輯器都有相關的腳本語言來擴展功能。然而,這些語言通常比「真實」的語言更加神秘而且不那麼強大。xi編輯器將通過管道與插件進行通信,讓它們以任何語言編寫,並使其與其他系統(如版本控制,深層靜態代碼分析程序等)更容易集成。

1.English-level-up-tips-for-Chinese

可能是讓計算機從業人員受益匪淺的英語進階指南

這個想法是作者在回答備考托福的女神的問題時產生的,他覺得學習英語應該是一件自然而然的事情,就像漢語一樣;而不是一條路走到黑。所以他寫了這份指南來提供一些學習英語的技巧。順帶一提他已經跟女神在一起了。

這是一份教你學習英語的技巧的指南,但是實際上有些東西可以應用在整個學習生活中而不是單單用於學習英語。比如說「享受你所學的東西」。

現在已經完成的篇目有認知篇,單詞篇,聽力篇,閱讀篇,口語篇和扯淡篇。

2.Glow

Glow是一款代碼錯誤檢查器,能夠明顯地標記出代碼中的錯誤。

基於Flow對JavaScript代碼的檢查,Glow能讓Flow檢查出的錯誤有明顯的標記。

同時,Glow還有以下特點:

1.更好的列印,代碼突出顯示類型的錯誤;

2.有互動式的watch模式;

3.通過使用球體的錯誤進行過濾

3.wtfpython

Python是一個精心設計的基於高級和基於解釋器的編程語言,為程序員的舒適度提供了許多功能。但有時候,一個Python代碼片段的結果對於普通用戶來說似乎並不那麼顯而易見。

wtfpython是一個用於收集python中令人驚訝的片段和鮮為人知的功能的項目,或者說一本書——非常生動且有趣——幫助python程序員增進技術。

4.Caire

Caire是基於Go語言的項目。它是一個基於《 Seam Carving for Content-Aware Image Resizing》論文的根據內容感知圖像並進行調整的庫。

它大概的工作原理是先根據提供的圖像生成能量圖,然後運用庫內演算法根據能量圖中的能量最低值找出圖像中最不重要的部分,再使用動態編程的方法從上到下或從左到右給圖像生成接縫,並且按照能量值為每個接縫分配自定義值。之後對圖像進行從第二行開始進行遍歷,遍歷過程中計算起最小能量級別,從最後一行開始,從能量矩陣中找到成本最低的接縫並將其除去。完成後重複上述過程。

示例:

原始圖片:

能量圖:

接縫:

Caire可以在人臉檢測上具有很大的應用前景。

5.callbag-basics

callbag-basics是基於JS中callbag標準的庫,支持響應式編程與迭代,具有速度快,可拓展性強等特點。

編程樣例:

callbag標準介紹:https://github.com/callbag/callbag

6.GRV-Git Repository Viewer

GRV是一個用於查看git存儲庫的應用。通過這個應用你可以查看,搜索和過濾項目目錄,提交和變動。

特點:

1,提交和目錄可以使用查詢功能進行過濾。

2,如果文件有了改動,UI自動刷新到更改後的內容。

3,可以自定義選項卡,主題以及視圖。

7.jsnes

一款NES 模擬器的js 庫,在瀏覽器上,你便可以重新體驗童年的樂趣,具體使用請參考官方文檔,另外,官方給出了一個實例網頁:

https://jsnes.fir.sh/

在這個網頁上,你可以遊玩它給出的所有遊戲。

運行塞爾達傳說:

8.Greenlet

雖然名字不咋滴,但Greenlet可以從npm上獲得。

Greenlet可以把一個非同步的功能移動到它自己的線程中,是一個簡化的workerize(在傳輸過程中自動把模塊卸下放進Web Workers(運行在後台的 JavaScript))的單功能版本。

因為它使用Web Workers,所以它只支持瀏覽器環境。如果你要在NodeJS(一個基於 Chrome V8 引擎的 JavaScript 運行環境)中使用,你的Web Workers必須先載入一個對應的polyfill,如使用像node-webworker一樣的圖書館,使你的瀏覽器可以使用這個API。

優勢:

當輸入或輸出小時Greenlet非常有效。

9.Django

Django是一個高級Python Web框架,鼓勵快速開發和乾淨,實用的設計。

所有文檔都在「 docs」目錄中,並在https://docs.djangoproject.com/en/stable/上在線 。如果剛剛開始,建議你閱讀文檔:

  • 首先,閱讀docs/intro/install.txt有關安裝Django的說明。
  • 接下來,通過輔導,以便(工作docs/intro/tutorial01.txt, docs/intro/tutorial02.txt等等)。
  • 如果要設置實際的部署伺服器,請閱讀 docs/howto/deployment/index.txt說明。
  • 你可能要仔細閱讀下面的熱門指南(in docs/topics)從那裡你可以跳轉到HOWTO(in docs/howto)來查找具體的問題,並查看引用(docs/ref)了解更多細節。
  • 請參閱docs/README有關構建文檔的HTML版本的說明

運行Django的測試套件:

10.models

models是針對人工智慧學習系統TensorFlow準備的各種學習模型的庫。模型庫分為四部分:官方模型,研究模型,樣本文件,教程性文件。

官方模型即官方開發出來,已經較為成熟的模型,例如圍棋高手Alphazero使用的的深度殘差分析模型,它們更加穩定,高效,適用於初步嘗試者。

研究模型是大量TensorFlow使用者自己撰寫的各種模型,部分模型的使用要額外詢問開發者。

樣本文件中包含的代碼片段和小模型被用於演示TensorFlow的特性,包括在不同的博客文章介紹的代碼。

教程性文件是描述TensorFlow tutorials的教程。