本文是山姆鍋在學習實況視訊串流 (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 的設定。
閱讀全文本文介紹一個開發中的代理人 (agent) 工具程式:“EAvatar ME”,中文名稱《我。影化身》,唸作我的影化身。 這個代理人程式設計來執行一些例行的工作 (tasks),由於每個人的例行的工作可能大相逕庭,這個代理人自然也要能夠根據不同情境執行不同腳本。
閱讀全文在很多時候,我們會希望所開發的應用軟體允許其他開發者擴展它的功能。為了達到這個目的, 通常的作法是讓軟體支援某種插件框架 (Plugin framework)。 Python
其實擁有內建的機制來實現一個簡單的插件框架。本文山姆鍋藉由插件框架來介紹 pkg_resources 這個 Python 用來管理套件資源的套件 (package)。
隨著網際網路媒體串流的流行以及同時觀眾數量不斷增加,要架構出一個支援實況 (live) 媒體串流 (streaming) 的解決方案, 是一件越來越困難的技術挑戰。本文描述一個基於點對點 (peer-to-peer) 的方式進行媒體串流的行動網路架構,以減輕對媒體源 (media origin) 的負擔並減少頻寬的成本。
閱讀全文