寫注釋是一種藝術,更是一種情操.....沒有了注釋,彷彿麻辣香鍋不放鹽,冰淇淋沒有糖....光看代碼會少很多樂趣,當我們看代碼的時候,最舒服的莫過於看到一個寫得很好的注釋了,看著工整親切的注釋,彷彿在跟那個代碼的作者在聊天,讓我們快速理解代碼的同時,還能獲得一種跨越時空的交流快感。

然而有的小夥伴不喜歡寫注釋甚至提倡不寫注釋,理由是:一眼就看得懂的代碼不需要注釋,代碼就是最好的注釋,代碼藝術並不是注釋藝術;二來認為別人看不懂的代碼,寫注釋更是畫蛇添足多此一舉;然而,事實上隨便在github上找些比較優質的項目,或者傳統的優質開源項目(譬如 Linux,GNU),一般都會有不少注釋,便己利人,有助於項目長期發展。

當然注釋寫的太爛可能會有反作用,另當別論,如果你希望你的小開源項目未來能方便更多的夥伴參與,並且在自己離開之後能不會倒閉...寫注釋就太重要了,這也是一個項目想要可持續發展、長期發展的很重要的一點,而且是編碼之外的能力。小編總結為一句話:兩情若是久長時,想要長久發展,那麼代碼一定要寫注釋的。


這周可算是知識的大集合了,各種各樣的知識系項目紛紛上榜:演算法和機器學習的筆記#Algorithm_Interview_Notes-Chinese#,深度學習資源庫#Deep Learning World#,Docker 學習#docker_practise#和計算機科學(CS)學習筆記#CS-Notes#。然後還有一個新華字典的 API#chinese-xinhua#,分散式 bug 跟蹤器#git-bug#,macOS 版微信小助手#WeChatPlugin-MacOS#,快速鍵值存儲#FASTER#強化學習演算法設計的研究框架#Dopamine#和無線網路監測工具#Trackerjacker#。


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

1.Algorithm_Interview_Notes-Chinese

2018/2019/校招/春招/秋招/自然語言處理( NLP )/深度學習( Deep Learning )/機器學習( Machine Learning )/C/C++/ Python /面試筆記

這是一個演算法和機器學習方面的面試筆記,隨著機器學習的不斷發展,如果你想選一個和它相關的工作,亦或者是拿來提升自己在這方面的技能等級,就可以看看這些筆記。雖然面還有不少 TODO 正在補充中的部分,如果你剛好面試拿到了有點意思的問題,就順手補充進去吧

 

2.Deep Learning World

這是一個為深度學習研究與開發人員所準備的資源庫,目的是為開發人員和研究人員提供一個快捷方式,以便找到有關深度學習的有用資源。

其實現在不乏有這種類似的資源庫,但這個存儲庫也有其存在的必要性,該存儲庫的重點是資源是目標。資源的組織使得用戶可以容易地找到正在尋找的東西。這裡將資源劃分為很多類別,一開始可能會讓人頭疼!但是,如果知道自己所處的位置,則很容易找到最相關的資源。即使不知道該尋找什麼,一開始也提供了基礎的資源。所以,如果你在深度學習的這條路上,不妨來這裡看看。

 

3.FASTER

輕鬆高效的管理大型應用程序的狀態是當今雲計算中最困難的問題之一。FASTER 由此而生,這是一種新的並發鍵值存儲,專為點查找以及大量更新設計。通過快速的外部存儲,能夠支持比內存更大的數據。

 

FASTER 的與眾不同之處在於其高性能的緩存優化索——當數據在內存中時,每秒可執行1.6億次操作;它採用獨特的「混合記錄日誌」,將傳統的持久性日誌和就地更新( in-place updates )相結合,以形成內存工作集並保持較高的性能;同時,其架構是可以嵌入到雲應用程序的組件。FASTER 還提供了一種新的一致的恢復方案,以稍高的提交延遲為代價來實現更好的性能。

 

MoreInfo:https://www.microsoft.com/en-us/research/project/FASTER/

 

4.chinese-xinhua

這個項目提供了中華新華字典資料庫和 API 。收錄包括 14032 條歇後語,16142 個漢字,264434 個詞語,31648 個成語。

部分資料庫介紹:

5.git-bug

git-bug 是一個嵌入在 git 里的分散式 bug 跟蹤器,它使用 git 的內部存儲,使得使用者的項目中不會添加任何文件,而不必依賴某個地方的 web 服務來處理錯誤,也可以離線瀏覽和編輯錯誤報告。

這個項目的使用方法也很簡單,就像大家在使用 git 的基本操作,提交和和合併分支所做的一樣,不過是用來處理錯誤的。

 

6.WeChatPlugin-MacOS

一款功能強大的 macOS 版微信小助手

擁有著許多強大且實用的功能

防撤回:

安裝

7.Dopamine

一種用於強化學習演算法的快速原型設計的研究框架。它旨在滿足一個小型,易於理解的代碼庫的需求,用戶可以自由地嘗試瘋狂的想法(推測性研究)。 

特點:

簡單的實驗:讓新用戶輕鬆運行基準實驗。

靈活的開發:讓新用戶輕鬆嘗試研究創意。

緊湊而可靠:為少數經過實戰考驗的演算法提供實施方案。

可重複:促進結果的可重複性。

更多細節參見文檔:https://github.com/google/dopamine/tree/master/docs

 

 

8.docker_practice

這是一個用於 Docker 學習的書籍類項目

Docker 是個劃時代的開源項目,它徹底釋放了計算虛擬化的威力,極大提高了應用的維護效率,降低了雲計算應用開發的成本!使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕鬆!

本書既適用於具備基礎 Linux 知識的 Docker 初學者,也希望可供理解原理和實現的高級用戶參考。同時,書中給出的實踐案例,可供在進行實際部署時借鑒。前六章為基礎內容,供用戶理解 Docker 的基本概念和操作;7 ~ 9 章介紹包括數據管理、網路等高級操作;第 10 ~ 13 章介紹了容器生態中的幾個核心項目;14、15 章討論了關於 Docker 安全和實現技術等高級話題。後續章節則分別介紹包括 Etcd、CoreOS、Kubernetes、Mesos、容器雲等相關熱門開源項目。最後,還展示了使用容器技術的典型的應用場景和實踐案例。

在線閱讀:https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3

 

 

9.Trackerjacker

Trackerjacker 是一個無線網路監測工具,可以獲取設備的 mac 地址並加以監控,並將在後續開發中加入入侵(Jack)功能。

目前 Trackerjacker 可以做到 :

知道所有附近的無線網路,並知道連接到每個網路的所有設備。

知道誰在佔用所有帶寬。

有設備在30內中發送超過100000位元組的MAC地址時運行特定腳本(可用於確定IP攝像機何時上傳視頻,這表示它剛剛發現了一個行為)。

攻擊在( deauth )10秒內使用超過100000位元組的任何人。

攻擊( deauth )該地區的每一個小型監控,以便於Airbnb (國外租房平台) 不會監視我。

當任何 MAC 地址在大於-40dBm的功率水平下運行時得到警報,這是以前從未見過的新功能。

看看某個特定的人何時在附近(基於他們手機的MAC),並運行腳本提醒。

編寫自己的插件來運行一些腳本,以便每次在附近出現新的 Apple 設備時都能做些「有趣」的事情。

 

10.CS-Notes

如你所見,這是一個 CS 的學習筆記合集,它目前包含了這幾部分內容:

演算法、操作系統、網路、面向對象、資料庫、 Java 、系統設計、工具、編碼實踐

這個項目的學習資料十分詳盡,並且都附上了詳細的代碼,不失為一個好的自學參考

同時,作者也附上了其看過的好的技術書籍的書單,感興趣的話不妨去Star


參與投票

第33期開源周報:本周你最喜愛的開源項目是哪一個呢?

參與投票並且留言留下寶貴想法的同學,我們將邀請你加入開源項目學習群組。