September 2005 Archives

"To Google" List

| No Comments | No TrackBacks
最近從 布長輩 那裡借了 David Allen 的《搞定》來看。裡面提到了,工作事項很多的時候,所謂的 Todo List 要怎麼善用。其中一個重點是,要把事情快速的分成「下一步」跟「以後可能會要做的」兩項。因為大部份的時間就會在忙於完成「下一步」列表裡面的事項。

最近我在我的 Todo List Widget 上加了一頁 "To Google",因為發現,逛網站逛到後來,有好多的時間都是花在看 Google 的結果。所以我覺得加上這樣一頁,多多少少可以有助於專心工作。如果在工作的時候,突然看到或是想到什麼有趣的關鍵字,而 google 了一時三刻,造成本來的事項被中斷,那可就得不償失了,但如果完全不管,就讓有趣的東西溜了,以後又怎麼也想不起來,想必也會很後悔吧?於是我的 "To Google" List 上面就記了許多我會去 Google 的關鍵字:


因為我知道自已原先對這些字的知識並不了解,所以這些字查到的結果,不花個幾十分鐘恐怕還吸收不了,所以就先記著,日後再來查。

這或許也可以做成一個類似 del.icio.us 的 aggregation,讓別人知道自已在查什麼關鍵字(或許也直接就是一種 tag),也算是一件有趣的事情。

恢復不正常

| No Comments | No TrackBacks
果然就跟連長說的一樣:「當完兵後,會有一陣子,時間到了就自動上床睡覺。時間到了,又自動起床。不過,只有一陣子而已。」而一陣子就這樣過去了。

最近常常聽各路英雄來的 Podcast ,訂了一堆有的沒的,還自覺「啊,可以來練習聽力」地,訂了好多廣東話的香港人的 Podcast,跟日文 Podcast(還是徹頭徹尾的聽不懂啊。)

一大堆 Podcast 中有個特別引我注意的,便是 黑米公主 。她常常在節目中講到維也納生活,以及跟台灣生活的一些比較。而且講起話來咬字清楚,又帶有一些很努力的誠意的感覺。大家有空也可以裝裝 iTunes ,不一定要買 iPod 就可以訂她的 Podcast 來聽了。反正硬碟很大也不知道拿來裝什麼,就裝裝別人的 podcast 吧。

另外一個比較有趣的 Podcast 是 delicious 的 media list。用 "system:media:audio" 這個 tag(最近我把它叫做「標籤字」),就可以拿到一堆 mp3 的連結,而且還有 RSS ,自然也可以當做 Podcast 的來源。"system:media:video" 這個 tag 自然就是許多影片的連結,也就成了 vlog 了。"system:media:document" 與 "system:media:image" 就不用我再講了。不過,會出現些什麼東西也就不得而知了,但這也是 del.icio.us 最有趣的地方。

散亂而不好的一天

| No Comments | No TrackBacks
九月二十五,星期日。

畢業兩個月了,事情逐漸多了起來,今天決定先來解決翻譯的一章,然後再做下一步的打算。於是,來到了新的咖啡店 Burano,點了午飯(讚)跟冰摩卡,吃完之後拿出電腦開始工作。雖然說是翻譯,其實編輯的部份佔了多數,因為有舊版的中文可以使用。但無論如何,還是一段捱著一捱,一方面改舊稿,一方面補新譯,還是就這麼地把一章給了點了。

咖啡店 Burano 來了許多客人,有來吃飯的,有來找老闆聊天的,也有六、七個竹女小姐是來做訪問的。老闆非常樂意的從裝潢到煮咖啡的器具一一的說明,小姐們一面聽一面到處照相。最後連我也一起被訪問了。大致上的情況是:

「我是第二次來,上次來是前天吧」
「地方不錯啊,而且老闆很親切,會跟人聊天」
「網路也很方便啊,非常快(笑)」
「妳們是在做什麼?」
「竹女的嗎?」
「好啊」

然後就這樣也被拍了張照片。可惜在簡短得要命的對話中沒有要到號碼,畢竟一對七實在是太困難了(喂)

但是冰摩卡馬上就在肚子裡做怪,而且我忘記我昨天只睡了五個小時,跟本就不夠。所以還是決定回家休息一下好了,反正,預定想做完的事情的確做完了。

一覺睡到六點,回到父母家,吃個飯後後回新埔去看曾祖,最近曾祖父身體變得很差。

很久沒回去了,一回去當然就是見機行事,看到什麼長輩打什麼招呼:

「姨婆」「舅公」「叔叔」「舅婆」「阿太... 阿太.... 」「阿太」

阿太(客家話叫曾祖的叫法)眼睛耳朵也開始不行了,得多叫幾次才聽得見,人也得走近點才看得見。我是她最大的曾孫。

「恁大囉...」(客家話)

於是大概都是繞這個話題在聊天。包括說我可以結婚,然後就有五代同堂這樣的主題都出現了。

曾祖母的情況還是很好,還是可以跟人聊天,吃水果,看電視。不過曾祖父就不一樣了,只能躺著,吃流體食物,變得非常的瘦小,也沒有什麼力氣。畢竟人老了,身體機能已經不是自已可以控制的事了。

但他還是可以知道我來了,沒什麼力氣講話,但聽到別人講話時還是可以有一些簡單的回應:

「喔.... 喔喔喔喔喔喔喔喔...」
「喔喔喔喔喔喔喔喔」

總之探望老人家還是要親切一點,這樣子大家都高興,老人家沒什麼願望,小孩子也自動就會長得很大。

九點半回到家,總算又有了一些自已的時間,可是還是拿來看電視電影浪費掉了。我還是很累,睡眠不足顯然很有影響。跟人聊天聊一聊,也沒有什麼提神醒腦的幫助,只是心情會變好變差,不知道而已。

雖然不是在丟銅板,不過這回是反面。

又混到一點半,打算來亂彈琴,彈了半個小時之後,幾乎是用搥琴鍵的方式結束了這曲子。

跟本是愈來愈糟了嘛。

於是出門,去吃包子。

回來的時候,故意走了新路,新路就是不一樣,燈火通明(半夜三點)又大又好走。

我也才注意到,晚上天氣很好,是個十足的月亮夜,而且沒有雲,可以看見很多星星。當下決定,去找地方看星星。

然後在六家國中旁,一處路燈突然禁止進入的十字路口,看見了 Orion 中間的星雲,不是很明顯,但是我想我還是看見了。這算是今天唯一的好事吧(讓心情變好的事)。

說了這麼一大串,也才一件好事。但是如果沒有前面這一長串非好事,我也不會去看星星,我也不會知道我家附近就有這麼好的看星星的地方,那麼,也可以說是,統統都是好事吧。

不錯的說法

| No Comments | No TrackBacks
「空白字符就是印出來時不會浪費你印表機墨水的字符」

(從 Learning Perl 上看來的)

P2P 的 DVD Service

| No Comments | No TrackBacks
十分亮眼的標題:Peerflix Launches Peer-To-Peer DVD Service

馬上就聯想到。像 BT / Donkey 這種 protocol ,應該做在硬體,用另外的機器來執行才對嘛。「抱台 3K ntd 的機器回家,接上網路就開始下載電影」豈不是很愉快?

或者直接整合進數位電視也是一著。

(總之你看,沒有著作權問題的話,有多少好玩的東西啊。)

36 行的 Perl Code

| No Comments | No TrackBacks
從昨天半夜開始,我就在寫 Kwiki::DB::ClassDBI 這個模組。想法是,因為我已經有一些 Kwiki plugin 有去使用 DBD::SQLite 了,不如就把架構搞好一點,弄個 Kwiki::DB 當做中介,而 Kwiki::DB::* 底下的東西,則是包裝大家已經可以在 CPAN 上見的到 DBI 引擎(這類的模組絕對是 CPAN 上最大宗的一種,幾乎是每個人都自已寫一套 DBI 引擎的程度。)

Kwiki::DB::DBI 因為是沒做太多事情的極簡介面,所以 30 分鐘就生出來了。寫完之後就是想到,可以來包裝 Class::DBI。

Class::DBI 這個模組很有意思,它包裝 DBI 的方式,幾乎可以讓你不用再手刻任何一行 SQL。在使用時,每個資料庫的表格都會有一個對應的類別,而這個類別本身亦是一個存取器(Accessor, getter-setter,我倒底要怎麼叫這個玩意兒?)。只要在類別裡面先定義好欄位,就會自動生出跟欄位同名的方法,像是:

package Music::CD;
use base 'Music::DB';

Music::CD->table("cd");
Music::CD->columns(All => qw/title artist year/);

這樣子定義了 Music::CD 這個類別之後,就對應到 "cd" 這個表格,以及裡面的三個欄位。要取得欄位值,大致上的方法就是這樣:

my $cd = Music::CD->retrieve("Easy Time");
print $cd->artist; # "Love Psychedelico"

果真是什麼 SQL 都沒看見。

但這模組最大的問題在於,它完全是使用「類別」來運做,所以我老是得打些很長的名字,像是 "Kwiki::UserName::Auth::DB::UserData" 這樣,才有辨法使用。所以我想替它包一下,可以用物件來使用,這樣子我愛用多短的名字就可以用多短的名字。

my $artist = $self->db->cd->retreive("Easy Time")->artist; # Love Physcdelico

而且,這樣寫起來也很 Spiffy!

不過這樣的事情比想像中難做,因為 "package" 後面只能接 bareword, 而包在 eval 裡面的話,scope 又只有在 eval 裡面,不會跑出來。所以比較難在 runtime 偷雞生出新的 package namespace。

目前想到的辦法是,運用 AUTOLOAD 機制,在建立物件時多給一些參數,讓 AUTOLOAD 去 eval "$class->$method(\@_)",這才算是解決了。雖然 AUTOLOAD 其實不很理想,不過還算是個辨法。或是 Source Filtering 也是一個辨法。最後生出來的程式碼只有 36 行,但是花了我 20 個小時。

這次在寫 Kwiki::DB::ClassDBI 時,雖然還是在用 print 偵錯,不過用上了 Devel::Symdump 這個模組。相當好用地,可以看到 symbol table 上的所有資訊。如果沒用它的話,大概是不會知道什麼地方錯了。在要偷玩一些把戲,或是多重繼承時,Devel::Symdump 的確會相當好用。

[歌] There

| No Comments | No TrackBacks
Please click There.

讀書:DWWS

| No Comments | No TrackBacks
最近正在讀的書是 Jeffrey Zeldman 的 "Designing With Web Standards"。

DWWS Banner

沒錯,我已經寫了兩年的 CSS ,而這是我頭一次看這本書。事實上,這是我同一次看跟 XHTML 與 CSS 有關的紙本書。在2000年之後,我買的紙本書,除了教科書之外,就是閒書。教科書當然都是沒在看,所以看最多的還是電腦螢幕上的電子書。

這本紙本書也不是我買的,是在 OSSF 書櫃上借來的。

而看紙本書的最大收獲就是,我終於看懂

voice-family: "\"}\"";

這行是在做什麼了。

很奇怪吧!