《HelloGitHub》第 24 期(兩週年)

公告

今天是《HelloGitHub》月刊 兩週年。當時發佈第一期的時候,根本沒有想到能夠走到如今。前端

這兩年,HelloGitHub 項目有過輝煌的時刻:連續 3 天 GitHub 趨勢首頁、Python 分類名列前茅;一天飆升 300 stars,個人整個首頁都被 star 信息填滿,往下滑了好幾頁;截止到我寫這篇文章,HelloGitHub 項目共有 4k 的 stars、《HelloGitHub》月刊系列博文共 4萬 閱讀量;vue

固然也有想要放棄,斷刊的時候。那段時間工做中的項目嚴重延期幾乎每天加班,可是我沒有斷過一次刊。無論搞到多晚,次日爬起來看到個人文章被你們喜歡和承認。一切都是值得的。起初也有被人質疑的時候、調侃的時候,可是我仍是堅持下來了。java

記得有一次,我開發 HelloGitHub.com 網站,開發完成擡頭一看天都亮了。看着初升的太陽,內心一陣知足。各類上線的雜事弄完,看着本身的網站上線,嘩嘩的請求日誌,那個畫面真的讓人陶醉啊。node

在作 HelloGitHub 項目過程當中,收穫了不少的知識、拓展了本身的視野。發現牛人太多,本身要走的路還有很長。隨着內容的逐漸的增多,不斷的經過技術去優化發刊的過程、信息的獲取途徑。真正感覺到程序帶來的益處和方便,算是學以至用吧。各類小夥伴的鼎力支持,無論怎麼說這個項目能走到如今不是我一我的的功勞,再次謝謝各位 🙏 。python

最後,我會一直把這個項目作下去,分享更多即收穫更多。我但願讓更多人發現編程的樂趣,讓好的項目被更多人發現、使用並參與到其中。webpack

《HelloGitHub》第 24 期

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

簡介

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

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

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

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

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


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

C 項目

一、reading-code-of-nginx-1.9.2:nginx-1.9.2 源碼通讀分析註釋,帶詳盡函數中文分析註釋以及相關函數流程調用註釋

Go 項目

二、annie:Go 編寫的快速、簡單、乾淨的視頻下載程序。支持嗶哩嗶哩、YouTube 視頻網站

$ annie -c cookies.txt https://www.bilibili.com/video/av20203945/

 Site:      嗶哩嗶哩 bilibili.com
 Title:     【2018拜年祭單品】相遇day by day
 Type:      video
 Stream:
     [default]  -------------------
     Quality:         高清 1080P60
     Size:            220.65 MiB (231363071 Bytes)
     # download with: annie -f default "URL"

 16.03 MiB / 220.65 MiB [==>----------------------------]   7.26% 9.65 MiB/s 19s

三、knowledge:Go 知識圖譜

Java 項目

四、PreLoader:Android 頁面在打開後須要在 UI 初始化完成後才能發起網絡請求,以避免網絡請求返回後展現到 UI 時出現錯誤。但這種串行的作法致使頁面的整個初始化時間變長。使用該工具能夠在打開頁面以前預加載數據,而後在頁面 UI 初始化完成後提取預加載好的數據進行展現,從而縮短頁面初始化時間,提高用戶體驗。示例代碼以下:

// 開啓預加載任務
int preLoaderId = PreLoader.preLoad(new Loader());
Intent intent = new Intent(this, PreLoadBeforeLaunchActivity.class);
intent.putExtra("preLoaderId", preLoaderId);
startActivity(intent);
// 預加載任務:模擬網絡接口請求獲取數據
class Loader implements DataLoader<String> {
    @Override
    public String loadData() {
        //此方法在線程池中運行,無需再開子線程去加載數據
        try {
            Thread.sleep(600);
        } catch (InterruptedException ignored) {
        }
        return "data from network server";
    }
}

// 在Activity(或Fragment)中UI初始化完成後開始監聽預加載數據
PreLoader.listenData(preLoaderId, new Listener());

// 數據加載完成後,會調用DataListener.onDataArrived(...)來處理加載後的數據
class Listener implements DataListener<String> {
    @Override
    public void onDataArrived(String data) {
        //此方法在主線程中運行,無需使用Handler切換線程運行
        Toast.makeText(activity, data, Toast.LENGTH_SHORT).show();
    }
}

五、SuperLike:仿今日頭條點贊噴射表情動畫

JavaScript 項目

六、node-in-debugging:《Node.js 調試指南》做者整理了使用 Node.js 開發這幾年的調試經驗和思路

七、chrome-music-lab:Chrome 音樂實驗室是一個網站,讓學習音樂變得更加簡單、好玩。徹底基於Web端,國內可直接訪問、老小皆宜、支持多種樂器,圓你一個音樂夢

八、mpvue:小程序的前端框架。框架基於 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 實現。使其能夠運行在小程序環境中,爲小程序開發引入了整套 Vue.js 開發體驗。5 分鐘上手視頻

  • 完全的組件化開發能力:提升代碼複用性
  • 完整的 Vue.js 開發體驗
  • 方便的 Vuex 數據管理方案:方便構建複雜應用
  • 快捷的 webpack 構建機制:自定義構建策略、開發階段 hotReload
  • 支持使用 npm 外部依賴
  • 使用 Vue.js 命令行工具 vue-cli 快速初始化項目
  • H5 代碼轉換編譯成小程序目標代碼的能力

九、30-seconds-of-code:精選能夠在 30秒 或更短的時間內理解的實用 JavaScript 代碼片斷集合

Objective-C 項目

十、WeChatPlugin-MacOS:Mac 版微信小助手,支持自動回覆、消息防撤回、遠程控制、微信多開、會話置底、免認證登陸、通知快捷回覆等功能

十一、LSAnimator:經過使用 LSAnimator(Objective-C)或者 CoreAnimator(Swift)能夠用少許的代碼實現複雜而又易於維護的動畫,而且彌補了 JHChainableAnimations 的致命缺陷。詳細描述

PHP 項目

十二、DzzOffice:一套開源辦公套件,適用於企業、團隊搭建本身的 相似 Google 企業應用套件、微軟 Office365 的企業協同辦公平臺。在線演示

Python 項目

1三、HAipproxy:使用 Scrapy+Redis 實現的高可用分佈式 IP 代理池,爲大型分佈式爬蟲提供高可用低延遲的代理 IP 資源。

from client.py_cli import ProxyFetcher
args = dict(host='127.0.0.1', port=6379, password='123456', db=0)
# 這裏`zhihu`的意思是,去和`zhihu`相關的代理ip校驗隊列中獲取ip
# 這麼作的緣由是同一個代理IP對不一樣網站代理效果不一樣
fetcher = ProxyFetcher('zhihu', strategy='greedy', redis_args=args)
# 獲取一個可用代理
print(fetcher.get_proxy())
# 獲取可用代理列表
print(fetcher.get_proxies()) # or print(fetcher.pool)

以知乎爲目標抓取網站,該代理IP池的實際性能測試結果以下:

1四、MovieHeavens:基於 Pyqt4 的電影天堂電影搜索工具,不再用忍受各類廣告和點擊跳轉了

1五、WechatSogou:基於搜狗微信搜索的微信公衆號爬蟲庫,極易上手。示例代碼:

import wechatsogou

ws_api = wechatsogou.WechatSogouAPI()
ws_api.get_gzh_info('微信名稱')

Swift 項目

1六、iina:Mac 下開源多媒體播放器,支持多國語言、高逼格 UI。安裝:brew cask install iina

其它

1七、Interview-Notebook:該項目整理了技術面試中須要掌握的基礎知識,包含了網絡、操做系統、算法、數據庫、Java、分佈式等

1八、blog:螞蟻數據體驗技術團隊的博客

1九、work-in-australia:介紹程序員如何申請到澳洲工做

20、front-end-interview-handbook:與典型的軟件工程師面試不一樣,前端面試對算法的重視比較低。面試會更多考查錯綜複雜的前端知識,像 HTML、CSS、JavaScript 等等。這個項目整理了這些問題,並給出了答案以及參考鏈接。中文版

機器學習

2一、MachineLearning:ApacheCN 製做的《機器學習實戰》。配套視頻:編碼能力強,建議觀看《機器學習實戰 - 教學版》。 編碼能力弱,建議觀看《機器學習實戰 - 討論版》

2二、tensorflow-docs:TensorFlow Docs 是由掘金翻譯計劃實時維護的 TensorFlow 官方文檔中文版,維護者爲全球各大公司開發人員和各著名高校研究者及學生

2三、DeepLeague:英雄聯盟的機器學習項目,規模不大,適合研究一些 CV 和 ML 的算法應用


換種方式閱讀

聲明

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

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

相關文章
相關標籤/搜索