使用 Python 建立 Socket 物件並綁定 (bind) 到網卡後,該如何取得實際綁定的 IP 位址?這個問題多數人都會覺得簡單,但真的有這麼容易嗎?
閱讀全文在 高可擴展的任務執行架構需求 一文中,山姆鍋提到基於 Python 的超輕量級沙盒 (sandbox)。沙盒是一個有限制的執行環境, 用來執行不受信任的程式碼 / 腳本 (script)。本文山姆鍋基於需要,實驗一個 Python 沙盒的開源專案。
閱讀全文什麼是 UUID? 相信多數參與軟體開發的人應該都知道。知道什麼是 UUID, 暸解
TimeUUID 也是輕而易舉的事情。雖然 TimeUUID 感覺無足輕重,
但在特定的使用案例 (use case),又是這麼方便,山姆鍋覺得值得為它介紹一番。
山姆鍋平常喜歡搜尋一些有趣的開放源碼專案,尤其是有提供設計文件的。有天不知道怎麼地逛到了 Cockroach DB 這個專案,它的設計文件有許多有趣的地方,但我特別注意到其中一篇論文,關於使用邏輯與實體時鐘來實現一個分散式時間郵戳 (timestamp) 的演算法。
閱讀全文山姆鍋期望雲端存儲與備份服務,可以做到保護使用者的資料安全與隱私。針對要達到這樣目標, 已經說明了其中需要的兩個關鍵技術:「資訊擴散演算法」以及「Convergent Encryption」。 本文山姆鍋說明另外一片重要拼圖:「去中心化身份驗證 (decentralized authentication)」。
閱讀全文版本控制與檔案同步軟體其中一個重要功能:讓來源 (source) 檔案的內容跟目標 (target) 檔案內容相同。
直覺來說,最簡單的方式:將來源檔案複製 (copy) 到目標檔案。
不過這種做法,對於像是同一個檔案的不同版本的同步,會耗用太多不必要的頻寬與儲存空間之外,
時間往往也是個造成這種方式不實際的因素之一。那有沒有更有效的作法呢?
在 「Dropbox 做到資料加密又避免重複儲存的秘密」 這篇文章中,有提到使用 AES-256 對稱式加密,以及 SHA-256 雜湊演算法, 本文山姆鍋提供這兩者在 Python 的應用範例作為補充。
閱讀全文Dropbox 是一個很受歡迎的雲端資料儲存與備份服務,從使用者的角度,它真的很方便,有些很大的檔案往往也能很快就能完成上載。 但您想過它為什麼可以做到這樣快速上傳,背後的技術原理是什麼?對於您的資料安全與個人隱私又有什麼影響? 山姆鍋根據自己的了解,為您解釋 Dropbox 到底是如何運作的。
閱讀全文很早之前在寫 QR Code 解碼器的時候就接觸過「糾刪碼」(erasure code) 這種技術, 因為 QR Code 有使用到 Reed–Solomon error correction 。雖然知道是數學的運算結果,但至今還是對它的功用感到很神奇!背後的編碼理論已經超過山姆鍋的理解範圍,但撇除背後的數學理論,身為工程師要如何理解糾刪碼,以及作何應用呢?
閱讀全文