分類:Software Development
運用Amazon S3作為Maven套件倉儲 - Gradle篇
Published: 約 7 分鐘在Gradle專案中,使用Amazon S3作為相依套件的來源與目的地。
在 Windows 64 位元電腦上編譯 Libtorrent-python
Published: 約 8 分鐘最近需要使用 BitTorrent 來實驗點對點資料傳輸功能,所以想說來玩玩 libtorrent 這個程式庫(C++),為了方便實驗,也需要它的 Python 綁定。經過三天的爬文與奮戰,終於在 Windows, OSX 以及 Ubuntu 上成功編譯或安裝,本文山姆鍋就來分享在 Windows 64 位元電腦上編譯的方法之一。
建構自己的雲端持續整合系統(中)
Published: 約 7 分鐘山姆鍋分享如何使用Jenkins快速建構一個雲端持續整合系統。
建構自己的雲端持續整合系統(下)
Published: 約 3 分鐘山姆鍋分享如何使用 Jenkins 快速建構一個雲端持續整合系統。
建構自己的雲端持續整合系統(上)
Published: 約 2 分鐘原則上,山姆鍋會盡可能運用現有的雲端服務在像是持續整合這種系統上。由於評估的雲端服務不符合需要,山姆鍋使用 Jenkins 著手建構了符合自己需要的雲端持續整合系統,並且將這些流程自動化,讓您也可以快速建立一個類似的系統。
使用 Buildbot 進行持續整合與軟體打包工作
Published: 約 10 分鐘由於專案需要在幾個桌面環境建構發行包(distribution packages),不久也想在 Raspberry Pi 上面進行,需要一個可以在不同平台環境上自動執行建置工作的軟體。 基於過去比較與使用的經驗, 山姆鍋選擇了 Buildbot 來進行這項工作。
微型企業之雲端專案管理系統
Published: 約 2 分鐘微型企業如何選擇雲端專案管理系統。
微型企業之雲端版本控制系統
Published: 約 3 分鐘就一家軟體公司,版本控制系統幾乎是必備的工具。事實上,就算不是軟體公司,一般也建議採用這樣的工具來協調團隊合作。
山姆鍋對持續整合、持續部署、持續交付的定義
Published: 約 4 分鐘在Devops的發展趨勢中,將新功能儘快自動交付給使用者是其中重要的一環。但到底持續整合、部署、與交付到底有什麼差異?
去中心化身份驗證與訊息傳遞
Published: 約 11 分鐘山姆鍋期望雲端存儲與備份服務,可以做到保護使用者的資料安全與隱私。針對要達到這樣目標, 已經說明了其中需要的兩個關鍵技術:「資訊擴散演算法」以及「Convergent Encryption」。 本文山姆鍋說明另外一片重要拼圖:「去中心化身份驗證(decentralized authentication)」
使用 Python 設計一個參與者模式框架
Published: 約 11 分鐘山姆鍋在過去的文章中,數次提到「參與者模式 (Actor Model)」這個名詞,也使用 [比喻的方式](/post/2015/10/what-if-i-have-shadow-clones/) 解釋它的概念。在多種分散式編程模式中,對山姆鍋來說,這是最不會讓頭腦打結的方法
DevOps 實驗室: Jenkins 持續整合軟體安裝
Published: 約 8 分鐘山姆鍋最近需要安裝 Jenkins 這個持續整合軟體,但不打算採用過去手動的安裝模式,而是嘗試運用 Vagrant, Puppet 跟 Virtualbox 來做自動部署。持續整合軟體一般建議不要在 Master 上執行建構工作, 所以,本次的實驗就以安裝一台 Master 與一台 Slave 主機為目標。
解決 Django 功能測試中資料會被清除的問題
Published: 約 4 分鐘山姆鍋在使用 Django 的 LiveServerTestCase 時 發現資料庫的資料在第一個測試案例(test case)之後就會被清除,導致後續的測試無法正常運作。
使用 CircleCI 作為《我.影化身》雲端持續整合方案
Published: 約 6 分鐘CircleCI 是山姆鍋到目前為止認為最好用的雲端持續整合方案。《我.影化身》開發自然也需要利用持續整合來自動執行軟體測試與建置工作。本文便以《我.影化身》作為應用實例,說明如何簡單完成與 CircleCI 的設定。
Python 的沙盒實驗
Published: 約 4 分鐘沙盒是一個有限制的執行環境, 用來執行不受信任的程式碼/腳本(script)。本文山姆鍋基於需要,實驗一個 Python 沙盒的開源專案。
為何要用Flask Web應用框架
Published: 約 2 分鐘介紹採用Flask這個Python web應用框架的原因。
如何在 PySide 顯示 QR Code
Published: 約 7 分鐘從現在來看,QR Code 的使用算是很普遍,例如用來產生網頁文章的超連結、Bitcoin 的位址等等。不管目的是什麼,產生 QR Code 已經是常有的需求。 本文山姆鍋分享如何使用 Python 的 qrcode 套件來產生 PySide 可以顯示的 QR Code 圖檔。
微型企業之雲端文件管理系統
Published: 約 2 分鐘Google Docs作為影化身科技的文件管理系統
Dropbox 做到資料加密又避免重複儲存的秘密
Published: 約 8 分鐘Dropbox 是一個很受歡迎的雲端資料儲存與備份服務,從使用者的角度,它真的很方便,有些很大的檔案往往也能很快就能完成上載。 但您想過它為什麼可以做到這樣快速上傳,背後的技術原理是什麼?對於您的資料安全與個人隱私又有什麼影響? 山姆鍋根據自己的了解,為您解釋 Dropbox 到底是如何運作的。
Python 如何找到綁定的 IP 位址?
Published: 約 2 分鐘使用 Python 建立 Socket 物件並綁定(bind)到網卡後,該如何取得實際綁定的 IP 位址?這個問題多數人都會覺得簡單,但真的有這麼容易嗎?
在 MacBook 上使用 Python 作實況視訊串流
Published: 約 8 分鐘本文是山姆鍋在學習實況視訊串流(live video streaming)過程,用來驗證概念(proof of concept) 的紀錄。透過 MacBook 內建的鏡頭作為視訊源,並藉由 HTTP Live Streaming (HLS) 協定作實況串流。 雖說是實況,但因為採用 HLS 協定,先天上就會有延遲的。實驗的結果不算太成功,本來只能使用桌面環境的 Safari 瀏覽器來觀看視訊,經過高手指正後,現在手機版的也可以了。
用 Python 實作混合式邏輯時鐘
Published: 約 3 分鐘山姆鍋平常喜歡搜尋一些有趣的開放源碼專案,尤其是有提供設計文件的。有天不知道怎麼地逛到了 Cockroach DB 這個專案,它的設計文件有許多有趣的地方,但我特別注意到其中一篇論文,關於使用邏輯與實體時鐘來實現一個分散式時間郵戳(timestamp)的演算法。
選擇 Java 軟體建構工具
Published: 約 3 分鐘幾個常見用在開發 Java 軟體的建構工具(build tools)。
微型企業之雲端持續整合系統
Published: 約 3 分鐘利用雲端服務建構企業基礎設施系列:持續整合系統。
使用 Amazon S3 作為Maven 套件倉儲
Published: 約 8 分鐘探討使用Amazon S3服務來作為 Maven 套件倉儲服務器的可行性。
利用 Vert.x 作為模組化應用框架
Published: 約 3 分鐘說明「影化身平台」如何利用 Vert.x 的模組支援。
線上 IDE Cloud9 初體驗
Published: 約 2 分鐘介紹 Cloud9 這個線上的整合開發環境。
如何實作簡單的持久性訊息佇列?
Published: 約 5 分鐘使用 LMDB 內嵌式資料庫實現訊息祝列。
簡單的插件框架 - 使用 pkg_resources
Published: 約 7 分鐘Python 其實擁有內建的機制來實現一個簡單的插件框架。本文山姆鍋藉由插件框架來介紹 pkg_resources 這個 Python 用來管理套件資源的套件(package)。
持續交付的 8 條原則
Published: 約 5 分鐘分享「持續交付」重要的 8 個理念,奠定基礎觀念。
Python 的 SHA-256 以及 AES-256 CBC 程式範例
Published: 約 7 分鐘在 「Dropbox 做到資料加密又避免重複儲存的秘密」 這篇文章中,有提到使用 AES-256 對稱式加密,以及 SHA-256 雜湊演算法, 本文山姆鍋提供這兩者在 Python 的應用範例作為補充。
一個有創意的檔案切割演算法
Published: 約 11 分鐘版本控制與檔案同步軟體其中一個重要功能:讓來源(source)檔案的內容跟目標(target)檔案內容相同。直覺來說,最簡單的方式:將來源檔案複製(copy)到目標檔案。不過這種做法,對於像是同一個檔案的不同版本的同步,會耗用太多不必要的頻寬與儲存空間之外,時間往往也是個造成這種方式不實際的因素之一。那有沒有更有效的作法呢?
使用 PySide 實現 Python 系統托盤圖示
Published: 約 4 分鐘本文山姆鍋說明 Python 如何使用 PySide 來實現一個跨平台(cross-platform)的系統托盤圖示應用程式。
很酷的糾刪碼(erasure code)技術
Published: 約 8 分鐘很早之前在寫 QR Code 解碼器的時候就接觸過「糾刪碼」(erasure code)這種技術, 因為 QR Code 有使用到 Reed--Solomon error correction。雖然知道是數學的運算結果,但至今還是對它的功用感到很神奇!背後的編碼理論已經超過山姆鍋的理解範圍,但撇除背後的數學理論,身為工程師要如何理解糾刪碼,以及作何應用呢?
使用Vert.x作為即時網頁應用平台
Published: 約 4 分鐘介紹Vert.x的基本特點,以及採用它作為網路應用平台的理由。
運用 Vagrant 準備一致的開發與測試環境
Published: 約 3 分鐘山姆鍋介紹 Vagrant 這個可以確保開發與測試人員有一致測試環境的工具。
Shippable CI 上 Docker-compose 的難題
Published: 約 4 分鐘如同多數使用 Docker 容器來部署應用的團隊一樣,山姆鍋也使用 Docker-compose 啟動一組相關的容器來進行整合測試。這樣的測試會在開發者工作機以及持續整合主機上執行。 但是,如果您跟山姆鍋一樣使用 Shippable 這家 CI 服務的話,您可能同樣會遇到一些小麻煩。
運用AsciiDoc作為文件撰寫格式
Published: 約 4 分鐘使用AsciiDoc作為技術文件、文章或其他網頁內容的格式。
使用 PyInstaller 打包 PySide 應用程式
Published: 約 7 分鐘使用 PySide 開發桌面應用,雖然開發方便,但總不能直接將程式碼給使用者,要他們裝這個套件,裝那個程式庫的。 本文山姆鍋介紹如何使用 PyInstaller 這個工具來打包 PySide 開發的桌面應用程式。
在 CircleCI 上使用 Docker
Published: 約 8 分鐘本文進一步來看看如何在 CircleCI 上使用 Docker 在每次代碼提交時自動建構應用程式的映像。
想要學習 MCollective? 試試 vagrant-mcollective
Published: 約 1 分鐘利用 vagrant-mcollective 在本地試驗 mcollective。
台灣期貨指數即時報價 - 使用 BeautifulSoup4
Published: 約 2 分鐘原本只是為了作為 [《我.影化身》](https://github.com/eavatar/eavatar-me) 的範例, 嚐試使用 BeautifulSoup 來擷取「台灣期貨交易所」提供的報價網頁內容, 在過程中,覺得 Python 使用在網頁擷取(web scraping)真的是一大亮點!
什麼時候適合用 TimeUUID?
Published: 約 4 分鐘有時候就算是一些微不足道的程式小技巧,用到時仍舊會心存感激。