28 9月 2010

[釋出] Hama 2.5 版 (蛤仔備份小程式)

是「小程式」,其實也不算小…把所有的函式庫包一包,竟然要 9.10 MB !這個數字與現在動不動就上百 GB 甚至 TB 的硬碟容量相比,也許是「小」吧,但我的第一部電腦可也只有 8.4 GB 的硬碟容量呢…

呃?怎麼開始講古了?(老了…)

我寫的 Hama (蛤仔) 備份小程式 2.5 版釋出了![Sourceforge.net 下載連結]

這次的版本和之前最大的不同就是,多了右上角的「訊息泡泡」的設計 (見下圖):

27 9月 2010

[外皮] 魔鬼的交易

去的幾個禮拜,除了工作以外的時間,都在弄 Hama 2.5 版的圖型介面。

一開始的程式規劃是讓 Hama 成為一個「沒有圖型介面」,只是很單純地「執行」然後就「結束」的程式。但經使用者的反應,如果要備份的檔案很大,所以執行的時間比較長的時候,他們根本就不知道到底程式有沒有在動作。

Good pont! 所以雖然沒有圖型介面,但還是需要一個「通知」的介面來提醒使用者「Hama 開始執行了哦!」以及「檔案已經打包備份好了!」才行。

本來計劃還要讓 Hama 在程式執行完以後,能夠讀取每個打包起來的檔案中用兩個 "##" 包起來的部份,然後再顯示出來,這麼一來就能提醒自己進度如何了。但一方面是忙,另一方面是懶 (主因?) ,所以一直沒有加入圖型介面的函式庫。

但現在既然要做「通知視窗」,就非加入圖型函式庫不可了…

於是…這就開始了與魔鬼的交易…

09 9月 2010

[轉碼] 你我相逢在黑夜的海上

夜…也許是因為一整天喝了四杯黑咖啡,也許是些其他的什麼…托別人的福,能聽到這首直指人心 (至少是我的心?) (哦?我還有心?) 的音樂…



德文的歌詞,配上英文的字幕,聽了 20 秒以後,以前學的德文好像就回想起來了,突然有一種「唔!我聽得懂耶!」的感覺…應該是幻覺吧?!

再聽下去,就想起徐志摩的詩來了…你我相逢在黑夜的黑上,你有你的,我有我的.方.向。你記得也好,最好你忘掉…在這交會時互放的.光.芒。

我喜歡設計人工智慧,因為在設計機器人的腦袋時,我也得像個機器人一樣地思考。情緒,感覺,那都是可以放棄的東西。就像吃宵夜或是敲牙齒一類的習慣一樣。

人,是可以很簡單地,就變成行屍走肉的…這點,蜜拉喬維琪一定很清楚。

07 9月 2010

[手磨] 迷漫房子裡的咖啡香

起,半夢半醒間似有所悟,自語『宅男喜歡的東西,都是用個魔鬼氈就能固定在牆上的玩意兒。公仔如是,模型如是,即便是真人尺寸的充氣人偶亦復如是。』轉念一想…我好像只睡了幾個鐘頭…昨晚搞到半夜的 Python code 還沒寫完…

哦哦!?念頭飄開,所以喜歡籃球或是跑步機這種沒辦法黏到牆上去的,就是陽光少年(女) 囉?膝蓋骨一陣刺痛,在床上驚坐而起…雖然看不太出來,但是昨天跑步的時候隱隱約約有感覺…這個傷可能會跟我很久…很久…

先燒熱水,順便把一個巧巴達麵包丟到電鍋裡蒸軟些,半個我的早餐,半個 Naboo 的早餐。

用手指抓起幾撮咖啡豆,慢慢地磨了起來。用機器磨當然是比較快的,但是用機器磨咖啡豆的話,豆子裡的脂肪可能會在高溫運轉的齒輪間揮發出來。香則香已,但待會兒沖煮的時候,就不香了。

06 9月 2010

[眼花] 我一度以為「笨」有其極限…

大多數的程式設計師都有閱讀障礙 - 這種感覺在面對自己幾個星期前寫的程式碼時,特別深刻!

手邊的案子正好告一個段落,趁著空,花了兩天把前幾個禮拜設計出來的字串演算法做成模型,開心地做著試算…試算的結果一如預期地完美,正確!

正當我要開始讚嘆的時候…一口氣提上來,卻變成了感嘆…哎…怎麼這麼笨…

因為我又想到了另一種可以更簡單的算法。 (-_- ")

01 9月 2010

[說明] Hama 操作手冊

前言:請見[[備份] 為什麼你會需要 CVS (版本控制系統) ?]篇

於 Hama 的操作,其實我想試試一種新的使用者介面…這種介面就是…「沒有介面」!

本來就是嘛,又不是太空船的操作面板,弄得那麼複雜幹嘛!

所以 Hama 的操作很簡單,只要用滑鼠點它兩下,就結束了。我用故事來說明好了…

假設今天有個研究生小明把研究論文相關的幾個檔案都戶同一個目錄下。

早上九點:小明一如往常地打開電腦,準備開始一天的研究進度時,只要先把 Hama.exe 啟動一下。Hama.exe 就把整個目錄下的檔案全部複製了一份,然後打包成一個 .tar 的檔案,放在同樣的目錄下。接著,小明就可以開始和平常一樣,打開論文第一章的檔案…然後發呆…

九點十五分:小明決定,既然腦子好像還沒清醒,那不如上個網看看新聞好了…

[備份] 為什麼你會需要 CVS (版本控制系統) ?

"版本控制" 這個概念其實一直在腦海裡浮浮沉沉地,雖然知道它很重要,但是一直沒能真正下定決定實際照著做。偶爾,以前在做研究,寫論文或是各種投稿的研究結果時,遇到檔案毀損或是電腦當機的狀況時,頂多也只是鼻子一摸,認命地重頭來過。

追根究柢,就是一個「懶」字!

直到最近,在幫人寫一個「很特別」的程式的時候,因為一個不小心,自己把程式原始碼給刪除了,才讓我痛改前非,這下真的來好好研究一下什麼是 CVS (Current Version System,版本控制系統) 或是 Subversion (子版本系統) 吧!

就這樣玩了兩天兩夜…這玩意兒還真是複雜!基本的概念是:你得先設定一個遠端的伺服器,提供一個目錄做為 CVS 使用。接著設定好可以進入這個目錄的使用者權限,然後在本地端產生一個鏡射 (mirrow) 的目錄。再來把遠端和本地端的兩個目錄接起來,這時才能開始操作。操作的時候…要先取得遠端的檔案,然後在本地端進行編輯。編輯完畢,在上傳的時候,系統會自動比對新的版本和舊的版本有什麼不同。如果同一個檔案有很多人編寫的話,那麼還會自動做衝突比對和融合 (merge) 的動作…