將 IMDb Top 250 排行榜轉為 CSV

IMDb Top 250 是許多喜愛電影人士的觀影參考。這份排行榜不知道多久更新一次,今天心血來潮,想要記錄一下目前的排行,然後隔一陣子再來比較。但是如果只是把網頁存下來,或是貼到 Evernote 去,到時候想要比較資料免不了又是一陣人力活,於是想到將排行榜的內容抓下來存為 CSV 檔,以後看是要做進一步的處理或分析都好辦。 ...

December 14, 2012 · 2 min · Tzeng Yuxio

Python 與 Ruby 的模組安裝

其實這兩個語言的模組安裝都很簡單。不過我不是個成天都在安裝新玩意兒的人,偶爾因為業務需求或是心血來潮想要裝個模組,卻又忘了指令怎下,免不了得又得上網搜尋。 雖說資料不難找,但每次都問 google 也是折騰,索性自己記個筆記,將來若有需要時,翻自己筆記總比上網搜尋來得快速。 更重要的是,才不會因為上網問 google 然後開一堆網頁邊看又繼續邊開連結搞到最後開了一大堆自己好像有興趣但其實跟原本問題一點也不相干的文章。我真是太容易分心了。 ...

March 29, 2012 · 2 min · Tzeng Yuxio

Python 遞迴處理路徑下檔案與資料夾

取得某個路徑下的所有檔案與資料夾是經常會使用到的功能,尤其是在寫一些小工具來處理硬碟上的檔案時。早先我都是用傳統寫 C++ 的方式來思考,所以在 Python 的文件中找到了 listdir() 這個函式,然後寫了類似以下的代碼: import os def doInDir(somedir): print somedir fileList = os.listdir(somedir) for f in fileList: fullpath = os.path.join(somedir, f) if os.path.isdir(fullpath): doInDir(fullpath) elif os.path.isfile(fullpath): print fullpath doInDir("/tmp/") 不過最近發現在 Python 下做事其實可以更簡單,內建的 os.walk() 就提供了非常強大的功能,使用的方式如下: ...

January 30, 2012 · 1 min · Tzeng Yuxio

Python 計算檔案的 CRC32 驗證碼

用 Python 計算 CRC32 很簡單,只要使用內建的 binascii 模組即可。 import binascii print binascii.crc32("hello world") 要反覆計算的話,可以用: crc = binascii.crc32("hello") crc = binascii.crc32(" world", crc) 其中的第二行,將前一步驟所計算的 CRC 結果作為參數再次傳入函式中。 如果要計算檔案的 CRC32,可以透過以下函式來計算: import binascii def computeFileCRC(filename): try: blocksize = 1024 * 64 f = open(filename, "rb") str = f.read(blocksize) crc = 0 while len(str) != 0: crc = binascii.crc32(str,crc) & 0xffffffff str = f.read(blocksize) f.close() except: print "compute file crc failed!" return 0 return crc 上面比較特別要注意的是這行: crc = binascii.crc32(str,crc) & 0xffffffff 根據官方文件,在 Python 2.x 的版本中,binascii.crc32 所計算出來的 CRC 值域為 [-2^31, 2^31-1] 之間的有號整數,為了要與一般 C 所實作的 CRC 結果作比對,需要將其轉為無號整數,所以加上 & 0xffffffff 這段來做轉換。如果是 Python 3.x 的版本,其計算結果為 [0, 2^32-1] 間的無號整數,因此不需額外加上修正。 ...

January 24, 2012 · 1 min · Tzeng Yuxio

在 Eclipse 開發 Python

這篇文章是〈Eclipse 安裝筆記〉系列之一,算是個人的安裝過程紀錄。以下是安裝時的環境參考: 作業系統:Mac OS X 10.7.2 程式版本:Eclipse Indigo 3.7.1,IDE for Java Developers 步驟流程如下 Step 1. 準備 Python 的編譯環境 同樣的,這步驟在 Mac 上可以略過。在 Windows 上要做的也很簡單,就上 Python 官網抓個 Python Binary 來安裝就好了。相對於 C++ 的準備工作來得簡單些。 Step 2. 安裝 PyDev 在 Eclipse Indigo 之後,套件的安裝變得簡單許多,只要透過滑鼠就可以搞定。首先,先上 Eclipse Marketplace, 一個類似 firefox Extensions 或 Android Market 的地方。搜尋「pydev」,找到後點進去套件頁面,在套件 Logo 下可以看到一個「Install」按鈕,只要將該按鈕拖曳到 Eclipse 視窗中,就可以開始安裝了。 ...

December 26, 2011 · 2 min · Tzeng Yuxio

Eclipse 安裝筆記 - 前言與目錄

用了 Eclipse 也好一陣子了,不過每次需要重新安裝 Eclipse 的時候,或多或少總還是會遇到一些問題。雖然說現在網路很方便,google 一下都可以找到這些問題的解決方式,但為了這些問題免不了又是花上一些時間在搜尋與嘗試上,許多甚至還是以前遇過又重新碰到的問題。因此,不如乾脆自己寫點筆記,既加深印象,就算下次忘了,至少也不用再到茫茫網海中搜尋解決方案。 ...

December 26, 2011 · 3 min · Tzeng Yuxio

輕量級標記語言 - AsciiDoc, Markdown, reStructuredText

因為最近使用 GitHub 的關係,注意到了 Markdown 這個輕量級標記語言 (Lightweight markup language),跟著查了一下資料才發現原來輕量級標記語言的選項百百款,其中比較常見的有 Markdown, reStructuredText 以及 textile,這三種語法也同時被 BitBucket 和 GitHub 所支援。 稍微看過三者的語法比較後,覺得 textile 的語法太過接近 HTML, 使得文字檔本身無法呈現容易理解的架構。而除了前述三者之外,也另外注意到 AsciiDoc 這一款輕量級標記語言,GitHub 有支援 AsciiDoc。下面就是我對 Markdown, reStructuredText 與 AsciiDoc 的一些比較筆記: ...

October 18, 2011 · 2 min · Tzeng Yuxio

我的程式語言之路

從大學以來,這十幾年的工作與生活總與程式設計脫不了關係。前前後後寫了不少的 Code, 也接觸過許許多多不同的 Programming Language。這邊就來記錄一下自己現在還有印象的程式語言,也許十年之後再來回顧,又是另一種不同的想法吧。 QBasic 高中時候獲得人生的第一台電腦,當時還是 DOS 的年代,每個裝了 MS-DOS 的電腦都會內附 QBasic。還記得用 QBasic 寫過一些簡單的遊戲,像是 1A2B、迷宮產生之類的,但是真要說自己寫的其實也不是,很多都是照著當時雜誌(例如「第三波」)上的代碼 key 進電腦中而已。 ...

July 26, 2011 · 7 min · Tzeng Yuxio

[Ruby]書單

Programming Ruby: The Pragmatic Programmers’ Guide, Second Edition 蠻有名的一本,有名到跟作業系統的「恐龍書」一樣,這本被叫做「鋤頭書」(Pickaxe book)。許多人推薦,看來似乎是學 ruby 必讀的教科書。可是好貴、貴… Ruby in a Nutshell 基於對《C++ in a Nutshell》與對「歐萊禮」的好感,想必這本應該也不錯。大概是拿來擺在桌上的案頭參考書吧。 ...

January 22, 2006 · 1 min · Tzeng Yuxio