版本控制與檔案同步軟體其中一個重要功能:讓來源 (source) 檔案的內容跟目標 (target) 檔案內容相同。
直覺來說,最簡單的方式:將來源檔案複製 (copy) 到目標檔案。
不過這種做法,對於像是同一個檔案的不同版本的同步,會耗用太多不必要的頻寬與儲存空間之外,
時間往往也是個造成這種方式不實際的因素之一。那有沒有更有效的作法呢?
在 「Dropbox 做到資料加密又避免重複儲存的秘密」 這篇文章中,有提到使用 AES-256 對稱式加密,以及 SHA-256 雜湊演算法, 本文山姆鍋提供這兩者在 Python 的應用範例作為補充。
閱讀全文Dropbox 是一個很受歡迎的雲端資料儲存與備份服務,從使用者的角度,它真的很方便,有些很大的檔案往往也能很快就能完成上載。 但您想過它為什麼可以做到這樣快速上傳,背後的技術原理是什麼?對於您的資料安全與個人隱私又有什麼影響? 山姆鍋根據自己的了解,為您解釋 Dropbox 到底是如何運作的。
閱讀全文很早之前在寫 QR Code 解碼器的時候就接觸過「糾刪碼」(erasure code) 這種技術, 因為 QR Code 有使用到 Reed–Solomon error correction 。雖然知道是數學的運算結果,但至今還是對它的功用感到很神奇!背後的編碼理論已經超過山姆鍋的理解範圍,但撇除背後的數學理論,身為工程師要如何理解糾刪碼,以及作何應用呢?
閱讀全文使用 PySide 開發桌面應用,雖然開發方便,但總不能直接將程式碼給使用者,要他們裝這個套件,裝那個程式庫的。 本文山姆鍋介紹如何使用 PyInstaller 這個工具來打包 PySide 開發的桌面應用程式。
閱讀全文在使用 Google Search Console 時,發現 Google 無法找出文章的結構化資料,原來是所使用的 Pelican-bootstrap3 主題樣板沒有設定正確的標記,為了讓部落格文章可以被搜尋引擎正確地分析,看來需要修改樣板主題來處理這個問題。
閱讀全文圍繞著 Docker 容器(container)技術所引發的風潮,一個越來越成熟的生態系正在形成。相信許多人都在關注它的發展,也可能有諸多的疑問。對於真正想把 Docker 應用在生產環境的人而言,其中一個疑問可能是:Docker 的映像(image) 非得動則幾十,上百甚至上千 MB 嗎?的確,頻寬跟儲存空間不再像過去那樣高不可攀,但太大的檔案或多或少還是會影響部署時間。本文山姆鍋示範其中一種製作小型 Docker 映像的方法。
閱讀全文系統托盤圖示 (system tray icon) 通常用來在桌面應用程式最小化後,不希望在任務列 (task
bar) 出現時,提供一個簡單跟使用者互動的介面。 透過這樣的用戶介面,應用程式可以在有重要事件發生時,即時通知用戶。因此,系統托盤圖示常被諸如「郵件檢查」、「股票報價」等不需要複雜介面的桌面應用所使用。本文山姆鍋說明 Python 如何使用 PySide 來實現一個跨平台 (cross-platform) 的系統托盤圖示應用程式。
不久前,山姆鍋開始學習 Django 這套 Web 應用框架,在不跳脫它既有有框架的情況下,運用它可以快速建構應用程式原型。差不多同一時間,也找到 Test-driven Development with Python 這本好書,書名雖然好像跟 Django 無關,但書中的範例程式是以 Django 為基礎。 可惜,本文不是要示範如何使用 Django 做功能測試,這個主題網路有許多文章可以參考。山姆鍋在使用 Django 的 LiveServerTestCase 時 發現資料庫的資料在第一個測試案例 (test case) 之後就會被清除,導致後續的測試無法正常運作。
閱讀全文