Contents
這是 Soft & Share 為訂閱會員所推出的服務,小編週一到週五會每天整理一篇開源專案的摘要說明整理 (中午 12 點前會發佈在 Soft & Share 網站 ) ,讓你可以利用中午休息時間快速掌握目前開源專案的焦點。
學習資源
自學電腦科學
如果你不是資工/資科本科系的畢業生,但是又想自學程式設計,有哪些科目是要補修的,這個網站指引你一條自學的道路
- 你應該學習哪些科目,為什麼?
- 每個科目最好的書籍或系列影片講座是什麼?
這個網站也有中文翻譯 ( 簡體中文 ) ,放在 github
Java 設計模式
蒐集了所有使用 Java 實現的設計模式,從這個連結進去,你可以看到以下的畫面,這個網站很佛心幫你分類還有困難等級的標籤

點選一個設計模式還可以看到 UML 圖示和 source code 的連結

使用 Java 實現的演算法
這個專案提供一個 gitpod 的連結,點選進去你就可以在網頁中測試或觀看這些演算法的 source code 是如何運作的
工具
為忙碌和沒有耐心的人所設計的遠端終端機軟體
這個工具靈感來自以下三個工具
- SSH – ET 和 SSH 之間的最大區別是,ET的 sessio 可以在網路中斷和IP漫遊( roaming ) 中倖免。 使用ssh,必須在網絡中斷後終止 ssh session 並重新連接
- autossh – Autossh是一個實用程式,當它檢測到重新連接時會自動重新啟動ssh session。但是每次的 session 都是新的,這意味著,如果在控制模式下使用tmux,則必須等待ssh連接斷掉,然後重新連接。即使TCP連接中斷并快速恢復,ET仍可通過維護tmux session來節省寶貴的時間
- mosh – Mosh 是 ET 的流行替代品。 雖然 mosh 提供了與 ET 相同的核心功能,但它不支援原生滾動( native scrolling )或 tmux 控制模式(tmux-CC)
如果你常使用 ssh 連線到遠端伺服器工作應該會常遇到當下一個要花很久時間處理很久的指令萬一這個 session 被中斷了,就要再重新來一次,這個工具就可以派上用場,以前小編是這樣處理這個問題
- 使用 ssh 登入後將比較花時間的工作在背景執行,而不是在終端機前等結果
- 將執行結果寫到一個 log 檔
不過有時候一些終端機程式是互動式的,執行到一半就要重來,確實很花時間
可以爬取帳號資訊的 Facebook 爬蟲
這個開源專案不是使用 Facebook 的 Graph API 而是使用了這些技術 – Selenium + Chrome Web Driver + Python,可以爬取 FB 帳號的以下內容
- 上傳的照片
- 加了標籤的照片
- 好友列表和他們的個人資料照片(包括追隨者,追隨者,工作朋友,大學朋友等)
- 用戶時間軸上所有可用的公開發文 / 狀態
因為這個工具不是使用 Facebook Graph API ,因為 FB 經常改版,所以這個工具要經常更新抓取 FB 網頁的相關 html tag
可以想一下這個工具可以用來做什麼?用來抓取你感興趣的人的發文,這樣就不用一直划手機了

自己架設 Emacs 並透過瀏覽器來使用
這位開發者的動機 – 有時候你不得不使用非個人電腦,因為安裝桌面 Emacs 和 dropbox 來同步訪問你的個人資料是不可能 / 不可取的。 因此有了 VPS 之後就一直在尋找雲端解決方案。
這位開發者製作了一個 Docker image ,所以可以將這個 Docker image 佈署到你的 VPS ,就可以透過網頁介面使用 Emacs 的功能
昨天介紹的 VS Code 外掛也是在解決同樣的問題,但是 VS Code 可以透過 GitHub Gist 做設定同步,相對簡單多了

將終端機變成 Web 程式
使用這個程式也是在解決在不同電腦開發程式的需求,但是要小心安全問題,看了一下這個專案說明,這位開發者有考慮到安全問題,使用上可以設定存取限制

像 Git 一樣對你的 PostgreSQL 資料庫做 branch 管理
這個功能在小編以前當開發者並教客戶如何使用版本控制工具的時候就很多人在問 – 資料庫的 Table 如何做版本控制,尤其是做 Merge 的時候還蠻痛苦的 ,你寫一個 script 針對資料庫的欄位變動做額外的處理
比較可惜的是這個工具目前只針對 PostgreSQL
Web 應用程式開發
使用各種不同的前端/後端開發框架仿製一個 medium.com 網站
大部分的網站應用程式都會從一個 ToDo list 功能來做教學示範,但是用來做真實世界的網頁應用程式開發技術可能不太夠,所以這個 Github 專案就是要來解決這個問題 – 使用各種不同的前端跟後端開發技術來開發一個完整功能的 Medium 網站
這個網站你可以看到使用各種熱門的前端框架 ( React/Angular .. ) 和後端框架 ( Node/ASP.Net Core /Laravel/ Django …. )
所以不管你用那種技術,這個專案可以幫助你了解開發一個全端網頁應用程式的技術
以 JSX 為基礎的網頁建立工具 ,不需要寫程式也可以製作出漂亮的網頁
什麼是 JSX ? 可以看這個網頁說明

壓縮 JSON
使用 JSCrush 演算法對 uri 編碼的 JSON 字串進行優秀的壓縮。
通常 JSON 資料會使用 POST 來傳遞,但是這個開源專案的 WHY ? 裡面提到他開發這個演算法的動機似乎是為了將 JSON 放在 GET request ,所以要將 JSON 編碼放在 URI 的參數
- To compress longish (5000 characters or less) strings so they can be shared and bookmarked easily
- My main use case for this is ZzArt to share json heavy links.
圖形視覺化的 Javascript 程式庫
功能很類似 D3.js , D3.js 是目前比較熱門的 Javascript 視覺化程式庫
雲端和網路管理
一個有支援免費使用量的 SaaS、 PaaS 和 IaaS 產品列表
https://github.com/ripienaar/free-for-dev
這個列表的範圍僅限於基礎設施開發人員(系統管理員、 DevOps 從業者等)可能會覺得有用的東西。
這個列表有一個幫你省時間的地方 – 列出每個服務的免費用量是多少,所以你可以自己評估一下用這些免費用量來做自己的 Side project demo
這個列表包含有以下分類
- 主要的雲端供應商
- Source Code 管理
- APIs,資料和機器學習
- Artifact Repos – 主要用於套件管理,例如 npm , Maven , yum ..
- 協同作業工具
- 程式碼品質分析
- 程式碼搜尋和瀏覽
- 持續建構和佈署 CI/CD
- 測試
- 資訊安全和 PKI
- 管理系統
- 即時通訊
- 日誌管理
- 監控
- 崩潰和異常處理
- 搜尋
- 表單
- CDN 和保護
- PaaS
- BaaS
- 網站託管
- DNS
- laaS
- DBaaS
- STUN, WebRTC, Web Socket Servers and Other Routers
- 問題追蹤和專案管理
- 儲存和媒體管理
- 設計和 UI
- 在地圖上做資料視覺化
- 套件建構系統
- 整合開發環境
- 分析事件和統計
- 訪客紀錄
- 國際行動電話驗證 API 和 SDK
- 支付管理
- Docker 相關
- Vagrant 相關
- 開發者部落格網站
- 雜項
- 其它免費資源
行動應用程式設計
將 Python 轉換成 Android 應用程式
Python-for-Android 是 Android 上 Python 應用程式的打包工具。 你可以建立自己的 Python 發行版,包括你想要的模組和相依模組,並將與你自己的程式碼捆綁在一起。
功能有
- 支援使用 Python 2和 Python 3 進行建構
- 不同的應用程式後端包括 Kivy、 PySDL2和一個帶有 Python webserver 的 WebView
- 自動支援大多數純 Python 模組,並內建支援許多其他模組,包括流行的相依模組,如 numpy 和 sqlalchemy
- 多種架構目標,針對任何給定裝置最佳化的 apk
所以這個應用程式是一個含有前端跟後端的 Web 應用程式,概念很像 Electron
程式設計語言
.NET Core runtime 的開放原始碼專案
.Net Core 可以支援 Mac/Windows/Linux ,這個開源專案可以找到許多 .NET Core 的相關資源,值得注意的兩個連結
- .NET home repo 連結 100 多個 .NET 開源專案
- ASP.NET Core home 學習 ASP.NET Core 的最佳起始地方
資料科學
這個專案用於追蹤自然語言處理(Natural Language Processing,NLP)目前的進展,包括資料集和最常見的 NLP 任務的當前狀態
遊戲
使用 Java 開發的沙盒高塔防衛遊戲
這個遊戲可在 Windows/Linux/Mac ,還有 Android 執行

喜歡今天小編整理的開源報報嗎?歡迎給小編意見與回饋
歸檔