最近需要使用 BitTorrent 來實驗點對點資料傳輸功能,所以想說來玩玩 libtorrent 這個程式庫(C++),為了方便實驗,也需要它的 Python 綁定。經過三天的爬文與奮戰,終於在 Windows, OSX 以及 Ubuntu 上成功編譯或安裝,本文山姆鍋就來分享在 Windows 64 位元電腦上編譯的方法之一。

繼續閱讀

在很多時候,我們會希望所開發的應用軟體允許其他開發者擴展它的功能。為了達到這個目的, 通常的作法是讓軟體支援某種插件框架(Plugin framework)。 Python 其實擁有內建的機制來實現一個簡單的插件框架。本文山姆鍋藉由插件框架來介紹 pkg_resources 這個 Python 用來管理套件資源的套件(package)。

繼續閱讀

有時候在需要訊息傳遞的應用場景,因為需求簡單不想使用到像 RabbitMQ 這種企業級的訊息中介軟體(middleware), 使用 Redis 雖然夠簡單但畢竟還是需要執行另一個進程(process),總還是有殺雞用牛刀的感覺。 但是另一方面又有訊息不能遺失的需求,自己處理訊息持久性(persistence)實在麻煩, 畢竟訊息儲存還是要支援 ACID 特性才能號稱做到不遺失。

繼續閱讀

什麼是 UUID? 相信多數參與軟體開發的人應該都知道。知道什麼是 UUID, 暸解 TimeUUID 也是輕而易舉的事情。雖然 TimeUUID 感覺無足輕重, 但在特定的使用案例(use case),又是這麼方便,山姆鍋覺得值得為它介紹一番。

繼續閱讀

山姆鍋平常喜歡搜尋一些有趣的開放源碼專案,尤其是有提供設計文件的。有天不知道怎麼地逛到了 Cockroach DB 這個專案,它的設計文件有許多有趣的地方,但我特別注意到其中一篇論文,關於使用邏輯與實體時鐘來實現一個分散式時間郵戳(timestamp)的演算法。

繼續閱讀
作者的圖片

Sampot (山姆鍋)

個人部落格, 記錄與分享一些軟體開發與運營相關資訊, 偶爾也會碎念一下


伊凡達科技 - 技術長


台灣/台北