如同多數使用 Docker 容器來部署應用的團隊一樣,山姆鍋也使用 Docker-compose 啟動一組相關的容器來進行整合測試。這樣的測試會在開發者工作機以及持續整合主機上執行。 但是,如果您跟山姆鍋一樣使用 Shippable 這家 CI 服務的話,您可能同樣會遇到一些小麻煩。
閱讀全文本文是山姆鍋在學習實況視訊串流 (live video streaming) 過程,用來驗證概念 (proof of concept) 的紀錄。透過 MacBook 內建的鏡頭作為視訊源,並藉由 HTTP Live Streaming (HLS) 協定作實況串流。 雖說是實況,但因為採用 HLS 協定,先天上就會有延遲的。實驗的結果不算太成功,本來只能使用桌面環境的 Safari 瀏覽器來觀看視訊,經過高手指正後,現在手機版的也可以了。
閱讀全文最近需要使用 BitTorrent 來實驗點對點資料傳輸功能,所以想說來玩玩 libtorrent 這個程式庫 (C++),為了方便實驗,也需要它的 Python 綁定。經過三天的爬文與奮戰,終於在 Windows, OSX 以及 Ubuntu 上成功編譯或安裝,本文山姆鍋就來分享在 Windows 64 位元電腦上編譯的方法之一。
閱讀全文由於專案需要在幾個桌面環境建構發行包 (distribution packages),不久也想在 Raspberry Pi 上面進行,需要一個可以在不同平台環境上自動執行建置工作的軟體。 基於過去比較與使用的經驗, 山姆鍋選擇了 Buildbot 來進行這項工作。
閱讀全文山姆鍋對 JavaScript 大多數框架都不算熟悉,但因為《我。影化身》專案需要提供 Web 介面, 不得已也要選擇符合自己需要的框架來運用一下。幸好,我的目標只是一個相對簡單的使用者介面, 讓這個過程縮短不少時間,最後決定使用 JQuery Mobile + Backbone 這樣的框架組合。
閱讀全文上篇文章說明 使用 CircleCI 作為《我。影化身》雲端持續整合方案, 其中提到 CircleCI 對於 Docker 的支援是很完整的,本文進一步來看看如何在 CircleCI 上使用 Docker 在每次代碼提交時自動建構應用程式的映像。
閱讀全文CircleCI 是山姆鍋到目前為止認為最好用的雲端持續整合方案。《我。影化身》開發自然也需要利用持續整合來自動執行軟體測試與建置工作。本文便以《我。影化身》作為應用實例,說明如何簡單完成與 CircleCI 的設定。
閱讀全文在很多時候,我們會希望所開發的應用軟體允許其他開發者擴展它的功能。為了達到這個目的, 通常的作法是讓軟體支援某種插件框架 (Plugin framework)。 Python
其實擁有內建的機制來實現一個簡單的插件框架。本文山姆鍋藉由插件框架來介紹 pkg_resources 這個 Python 用來管理套件資源的套件 (package)。