Contents
這是 Soft & Share 為訂閱會員所推出的服務,小編週一到週五會每天整理一篇開源專案的摘要說明整理 (早上 8 點前會發佈在 Soft & Share 網站 ) ,讓你可以利用上班前快速掌握目前開源專案的焦點。( 之前出版的開源報報 )
每天快速瀏覽開源報報具備有什麼效益?
- 增加自己的學習動力,提升自己的視野
- 從開源專案中獲得 side project 靈感與想法
- 利用開源專案提升自己的生產力
每天使用 NT8.3 元,你可以使用 Soft & Share 開源報報省下掌握每天開源資訊焦點的時間,這是一個很划算的時間槓桿投資
今日內容摘要
✅ 關於數位形態發生(通過程式碼建立形式)主題的綜合資源列表
✅ 記錄真實軟體中的真實錯誤,以說明趨勢並學習如何防止或更快發現這些錯誤
✅ 為開發人員設計的可編寫 script 的便箋簿
✅ Material-UI 風格的日期與時間選擇器
✅ 讓瀏覽web 應用程式速度變快
✅ 一次多物件追蹤的一個簡單起點
✅ 一個高效能的強化學習分散式訓練框架
✅ 自監督學習工具箱和基準
✅ 支援深度學習和傳統演算法的機器學習框架
✅ 用於 secret 管理、加密作為服務和特權訪問管理的工具
✅ 微軟 Azure 開發者解決方案
✅ Kubernetes 的宣告式持續部署
✅ 建立你自己的殭屍網路
✅ 一個用 Swift 編寫的優雅 HTTP 網路程式庫
✅ 一個方便的 Java 測試容器
✅ 一個專門為物聯網設計的作業系統平台
開源報報內容
學習資源
關於數位形態發生(通過程式碼建立形式)主題的綜合資源列表
數位形態發生是一種衍生藝術,通過運算可以實現複雜的形狀發展或形態發生。此概念適用於設計,藝術,建築和建模的許多領域。這個概念最初是在生物學領域發展的,後來又發展到地質學,地貌學和建築學領域。( 維基百科 )
數位形態發生是透過使用基於生物、化學和物理過程的運算模型和生成系統,探索自然界中形狀、形式和模式是如何出現的。 它吸收了自然科學幾乎每一個領域的研究成果,並在建築、數字製造、藝術、工程、生物醫學等領域有應用。
對於這樣一個跨學科的主題,很難追蹤和關聯所有人們遇到的有趣的知識點,這就是這個列表的來源。 這個列表的目的是簡潔地將各種成長演算法和實驗室實驗以及相關的數學、物理和程式設計概念編目在一個地方,以便
- 為開發人員和電腦藝術家提供某種“備忘單”參考
- 透過更容易地檢視看似不相干的主題之間的關係,激發新的見解。
記錄真實軟體中的真實錯誤,以說明趨勢並學習如何防止或更快發現這些錯誤
這個儲存庫記錄了真實軟體中的真實錯誤。 在披露這些錯誤的時候,最新的版本都被修補了。 發現過去所犯的錯誤可能是一個有用的工具,可以幫助我們發現錯誤的趨勢,從而使它通過所有的品質控制流程。 理解發生了什麼,是弄清楚如何在其他軟體中檢測這些問題的第一步。
工具
為開發人員設計的可編寫 script 的便箋簿
Boop 是開發人員貼上文字並使用基本操作(如 JSON 格式化、 unescaping、 base 64編碼等)轉換文字的地方。 這個想法是為了使這些任務快速取用,避免將寶貴的資料貼上到隨機的網站
這個 Mac 軟體是開放原始碼也可以在 App Store 下載

Web 應用程式開發
Material-UI 風格的日期與時間選擇器
這個套件需要@material-ui / core v4。 舊版 v3不能工作。


讓瀏覽web 應用程式速度變快
使用 turbolink 可以更快地瀏覽你的 web 應用程式。 在不增加客戶端 JavaScript 框架複雜度的情況下,獲得單網頁應用程式的效能優勢。 使用 HTML 在伺服器端 render view,並像往常一樣連結到網頁。 當你追隨一個連結時,Turbolinks 會自動獲取該網頁,在它的 <body>中進行交換,並合並它的<head>,所有這些都不會增加整個網頁的負載成本。
功能
- 自動優化瀏覽。不需要註釋連結或指定網頁的哪些部分應該更改
- 不需要伺服器端的協作。使用完整的 HTML 頁面響應,而不是部分頁面片段或 JSON
- 尊重 Web。Back 和 Reload 按鈕的工作正如你所期望的。搜尋引擎友好的設計
- 支援行動應用程式,iOS 和 Android 的 Adapter 可以讓你使用原生瀏覽控制元件建構混合應用程式
資料科學
一次多物件追蹤的一個簡單起點
近年來,作為多目標跟蹤核心元件的物件檢測(object detection)和重新識別(re-identification)技術取得了顯著進展。 然而,為了提高推理速度,人們很少關注在一個網路中完成這兩個任務。 沿著這條路徑進行的最初嘗試最終導致結果降級,主要是因為重新識別分支沒有得到適當的學習。 在這項工作中,我們研究了失敗背後的基本原因,並相應地提出了一個簡單的起點( baseline )來解決問題。 在30 FPS 的 MOT 挑戰資料集上,它的效能明顯優於現有的技術水平。 我們希望這個起點能夠激發和幫助評估這個領域的新想法。
✍ 論文網址 A Simple Baseline for Multi-Object Tracking

一個高效能的強化學習分散式訓練框架
特性
- 可重複性。我們提供了高品質的主流強化學習演算法實現,嚴格地再現了論文對應的指標。
- 大規模並行支援。框架最高可支援上萬個CPU的同時併發運算,並且支援多GPU強化學習模型的訓練。
- 可複用性強。使用者無需自己重新實現演算法,通過複用框架提供的演算法可以輕鬆地把經典強化學習演算法應用到具體的場景中。
- 良好擴充套件性。當用戶想調研新的演算法時,可以通過繼承我們提供的抽象類別可以快速實現自己的強化學習演算法。
框架的架構
PARL 目標在建構一個用於訓練演算法執行複雜任務的代理。 PARL 引入用於遞迴建構代理的主要抽象如下:
- Model :Model 用來定義前向(Forward)網路,這通常是一個策略網路(Policy Network)或者一個值函式網路(Value Function),輸入是當前環境狀態(State)。
- Algorithm :Algorithm 定義了具體的演算法來更新前向網路(Model),也就是通過定義損失函式來更新Model。一個Algorithm包含至少一個Model。
- Agent:Agent 負責演算法與環境的互動,在互動過程中把生成的資料提供給Algorithm來更新模型(Model),資料的預處理流程也一般定義在這裡。

自監督學習工具箱和基準
Openselfsup 是一個基於 PyTorch 的開源無監督表徵學習(unsupervised representation learning)工具箱。
下面是非監督式學習、自監督學習和表徵學習的關係。 這個工具箱演算法主要針對陰影區域,即無監督表徵學習。 自監督表徵學習是其主要分支。 由於在許多情況下我們並沒有嚴格區分自監督表徵學習和非監督表徵學習,所以我們仍然把這種學習稱為 OpenSelfSup。

支援深度學習和傳統演算法的機器學習框架
NeoML 是一個端到端的機器學習框架,允許你建構、訓練和部署機器學習模型。 該框架被 ABBYY 工程師用於電腦視覺和自然語言處理任務,包括影像預處理、分類、文件佈局分析、 OCR 以及從結構化和非結構化文件中提取資料。
主要特點:
- 支援超過100 層類型的神經網路
- 傳統的機器學習: 20 個以上演算法(分類、迴歸、聚類等)
- CPU 和 GPU 支援,快速推理
- 支援 ONNX
- 語言: C++ ,Java,Objective-C
- 跨平台: 同樣的程式碼可以在 Windows、 Linux、 macOS、 iOS 和 Android 上執行
雲端和網路管理
用於 secret 管理、加密作為服務和特權訪問管理的工具
Vault 是安全訪問 secret 的工具。 所謂 secret 就是任何你想要嚴格控制訪問許可權的東西,比如 API 金鑰、密碼、憑證等等。 Vault 為任何 secret 提供了統一的介面,同時提供了嚴格的訪問控制和詳細的稽核日誌記錄。
一個現代的系統需要訪問大量的 secret : 資料庫憑證,外部服務的 API 金鑰,服務導向架構通訊的憑證,等等。 理解誰正在訪問什麼 secret 已經非常困難,而且是平台特有的。 如果沒有自定義解決方案,新增金鑰滾動( key rolling )、安全儲存和詳細稽核日誌幾乎是不可能的。 這就是 Vault 介入的地方。
✍ 參考 Soft & Share 開源報報 106 ( 這邊有介紹一個開源專案將 vault 部屬在 aws )
微軟 Azure 開發者解決方案
微軟為 Azure 開發者提供了許多 Lab 課程 – https://microsoftlearning.github.io/AZ-204-DevelopingSolutionsforMicrosoftAzure/
這個 repository 的用途
- 為了支援這個課程,我們需要對課程內容進行頻繁的更新,以便使用課程中使用的 Azure 服務來保持它的最新性。 我們正在 GitHub 上釋出實驗指南和實驗檔案,允許課程作者和 mct 之間開放貢獻,以便隨著 Azure 平臺的變化保持最新內容。
- 我們希望這能給實驗室帶來一種前所未有的協作感——當 Azure 發生變化時,你首先會在現場交付中發現它,繼續在實驗室原始碼中進行增強。 幫助你的MCTs 同學。
Kubernetes 的宣告式持續部署
Argo CD 是用於 Kubernetes 的宣告式 GitOps 持續交付工具。
為何使用 Argo CD?
- 應用程式定義,配置和環境應為宣告式的,並受版本控制。
- 應用程式部署和生命週期管理應是自動化的,可稽核的且易於理解的

架構

建立你自己的殭屍網路
聲明:此專案應僅用於授權測試或教育目的。
BYOB是一個開源專案,為安全研究人員和開發人員提供了一個框架,以建構和操作基本的殭屍網絡,以加深對每年感染數百萬設備並產生現代殭屍網路的複雜惡意軟體的了解,從而提高自己的能力。 制定應對這些威脅的對策。
它的目標在使開發人員能夠輕鬆實現自己的程式碼並添加出色的新功能,而無需從頭開始編寫RAT(遠端管理工具)或C2(命令與控制伺服器)。
RAT的主要功能是可以將任意程式碼/檔案從C2遠端加載到記憶體中並在目標電腦上執行,而無需在磁碟上寫入任何內容。
這個專案由兩個部分組成 :在終端機執行的程式 (/byob ) 和 web GUI (/web-gui)
行動應用程式設計
一個用 Swift 編寫的優雅 HTTP 網路程式庫
功能
- 可連結(Chainable)的要求 / 回應方法
- 合併支援
- URL / JSON 參數編碼
- 上載檔案 / 資料 / 串流 / MultipartFormData
- 使用請求或恢復資料下載檔案
- 使用 URLCredential 做認證
- HTTP 回應確認
- 上傳和下載附有進度的 Progress Closures
- cURL 命令輸出
- 動態調整和重試請求
- TLS 憑證和公鑰固定
- 網路可到達性確認
- 全面的單元和整合測試涵蓋
程式設計語言/程式庫
一個方便的 Java 測試容器
一個 Java 8 程式庫,支援 JUnit 測試,提供輕量,一次性使用的常見資料庫,Selenium web 瀏覽器實體,或是其它可在 Docker 容器中執行的東西
Testcontainer 讓以下的測試更簡單
- 資料訪問層整合測試:使用MySQL,PostgreSQL或Oracle 資料庫的容器化實例測試你的資料訪問層程式碼是否具有完全兼容性,但無需在開發人員的電腦上進行複雜的設置,並且無需擔心測試始終以已知的資料庫狀態。 也可以使用任何其他可以容器化的資料庫類型。
- 應用程式整合測試:用於在具有相依套件的短期測試模式下運行應用程式,例如資料庫,訊息佇列或 Web 伺服器。
- UI/可接受性測試:使用與 Selenium 相容的容器化 Web 瀏覽器進行自動 UI 測試。 每個測試都可以獲取瀏覽器的新實例,而無需擔心瀏覽器狀態,plugin版本或瀏覽器自動升級。 然後,你將獲得每個測試 session 或測試失敗的每個 session 的影片記錄。
更多細節請參考 Testcontainer 的官方網站
嵌入式系統
一個專門為物聯網設計的作業系統平台
Arm Mbed OS 是一個專門為物聯網產品設計的開源嵌入式作業系統。 它包括所有的功能,你需要開發一個基於 Arm Cortex-M 微控制器連線的產品,包括安全,連線,一個即時作業系統和驅動器的感測器和 I/O 裝置。
喜歡今天小編整理的開源報報嗎?歡迎給小編意見與回饋
你必須登入才能發表留言。