2007年3月29日星期四

保哥代言 TVBullShit 海報!

網路上抓來的 ... XD

TVBS 台不會被停播頂多罰100萬 ?!

NCC統計一年來無前科 T台不會被停播頂多罰100萬

NCC 這個違憲違法的組織,只會抓抓 WII、限制職業運動的廣告贊助,真的碰到了涉及恐嚇公眾罪的重大新聞事件,竟然如此的無能。以 TVBS 過去的紀錄來看,隨口說說就有一大串:張志輝姦殺女友案、瀝青鴨事件,加上這次助紂為虐的幫拍亮槍恐嚇岸,NCC 竟然能睜眼說瞎話只罰 100 萬,連停播一天都不用。所以套用 NCC 的邏輯,「TVBS 過去一年沒有任何不良紀錄,所以只需處台幣十萬到一百萬的罰緩」,TVBS 今年之內還有一次不會被停播的機會,可以再跟黑道、中國,或者經濟犯合作一次,自導自演播出偽造的獨家新聞,反正只會被罰一百萬,廣告效益還遠大於罰款。甚至,一年過後又是一條好漢,記錄歸零,還可以再來一輪。碼的,真是可笑,記得看看是哪一些 NCC 委員 做出這樣的決定。

日本電視台造假 受嚴厲處分

日本關西電視台製播假節目,包括納豆減肥、萵苣催眠、紅豆助腦、味噌湯減肥等,在我看來只是在綜藝節目炒作話題,嚴重性比瀝青鴨事件造成的破壞鴨農商譽、影響鴨農生計等後果還輕微。但是,民營廣播電視聯盟因此對關西電視台做出除名的決定,使其無法享受信號傳輸線路的優惠價格,並且喪失奧運轉播權和節目音樂的知識產權等等。關西電視台的總經理千草宗一郎後來嚴肅地播出道歉節目,並引咎辭職。

引用前華視副總經理 朱立熙 的話:「對於TVBS這個骯髒的電視台以及它骯髒的主管們,已經不值得再寫什麼來批判了,請看去年八月我寫的這篇舊稿(媒體人骯髒的心)。」

2007年3月27日星期二

TVBS - 槍擊要犯的傳聲筒

醜聞!TVBS承認拍攝周政保的嗆聲錄影帶

TVBS 記者竟然幫忙槍擊要犯拍攝恐嚇錄影帶,製造獨家新聞,淪為槍擊要犯的傳聲筒。

不過換個方向想想,既然是 TVBS,反正「傳聲筒」當習慣了,只是換當另一個對象的傳聲筒罷了,也就沒那麼意外了。

踩到 WWW::Mechanize 的地雷

WWW::Mechanize 是我最常用的 module 之一,用它來寫機器人,除了 JavaScript 不行以外,大部分網站都能快速上手。前一陣子 (www/p5-WWW-Mechanize/MakefilePR ports/109847),升級到 1.22 以後,程式陸陸續續出現問題,一些網站用 LWP::Simple 抓就沒問題,改用 WWW::Mechanize 抓就變亂碼。這問題一開始也不嚴重,不是每個網站都會發生,所以我也沒注意,直到今天寫一支新的工具,每次執行都是亂碼,才下定決心除錯。

一路往上找 WWW::Mechanize 的上一層是 LWP::UserAgent,而 WWW::Mechanize 的 get 會呼叫上一層的 get,所以我先在 LWP::UserAgent 埋了一堆暗樁,看看是不是 request 或者 response 有什麼不同。反覆執行了好幾次,發現 LWP::UserAgent 抓到的都是正常的,那問題應該出在 WWW::Mechanize。接下來我繼續追 WWW::Mechanize,發現 get 回來的資料還是正常的,一步一步查,最後終於發現問題出在 _update_page。有問題的在這一段:

sub _update_page {
my ($self, $request, $res) = @_;
....
my $content = $res->decoded_content;
$content = $res->content if (not defined $content);

if ($self->is_html) {
$self->update_html($content);
}
else {
$self->{content} = $content;
}

return $res;
} # _update_page

$self->{content} 的內容在 _update_page 被更動過,檢查一下,果然就是它。原來這一段程式碼在 1.21_01 被加入 WWW::Mechanize,但因為 1.21_0[1-4] 都是測試版,所以直到 1.22 才被公布出來。很不巧的是也許作者認為改這個沒什麼,在 Change 中對於這項改變隻字未提,所以我就這樣踩進了這個地雷。

WWW:Mechanize 1.20 以前,WWW::Mechanize 抓到什麼就吐什麼;在 WWW::Mechanize 1.21_01 以後,WWW::Mechanize 優先採用 decoded_content,失敗才採用 content。而 decoded_content 和 content 的差別,是 decoded_content 經過一次 Encode::decode($charset, $content)。因此,若新版 WWW::Mechanize 讀取的頁面是 ISO-8859-1、ASCII 或者 UTF-8 的,應該不會有什麼問題;如果不是,那 decoded_content 就變成一陀亂碼。

解法呢?

請像下面這樣抓到頁面之後,指定轉換為 $charset 編碼,就可以避免輸出亂碼了。這樣好像有點麻煩,也許在之後的版本會多加上一些參數來改變挑選 decoded_content 或者 content 的行為吧。

$mech->get($url);
$mech->update_html(Encode::encode($charset, $mech->content));

2007年3月26日星期一

超簡單 Google Summer of Code in FreeBSD

今天在 FreeBSD Summer Projects 上看到 BSD-licensed Text-Processing Tools,這大概是我看到過最容易的 SoC 了。基本上,要有堪用的 grep、diff 和 sort ,只要從 OpenBSD 抓來改一改就行了。

# cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs get src/usr.bin/sort
# cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs get src/usr.bin/diff
# cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs get src/usr.bin/grep


然後加上幾行的修改:

  • 拿掉 diff/diff.c 裡的 __dead

  • 把 diff/diffreg.c 裡的 SIZE_MAX 換成 SIZE_T_MAX

  • 在 grep/file.c 前面補上 #include <unistd.h>


這樣就能編譯執行 diff、sort 和 grep 了。至於其他參數和功能整合的問題,難度也不高。可惜一來我不是學生,二來報名也截止了,不然我應該會去申請這個專案吧。

晚餐:老皮嫩肉

老婆的手藝越來越好了。今天我補習完回家,就有熱騰騰的老皮嫩肉等著我唷。

附上老皮嫩肉的食譜和照片:

重拾 GRE 課本

2002 年暑假前,我報名了 GRE 補習和考試,三個月之後,跟上台灣的末代 GRE CBT,拿到了還不錯的成績。隔年的申請結果出爐,我拿到了 cmpe.sjsumism.cmu 的入學許可。不過,後來因為個人因素,放棄了這次出國的機會,而留在原來的崗位上繼續奮鬥。

今年,2007 年,算一算也三十而立了,要是再不做點什麼,大概就太晚了,所以我又報名了 GRE,準備報考全球的末代 GRE CBT。就這樣,我又回到了南陽街,重回學生時代的生活:擠公車、背單字、寫考卷、對答案。雖然繁瑣而沈悶,卻也有一步一步走向未來的踏實。

目前戰績:第一週 V:290,第二週 V:360 Q:740。

2007年3月23日星期五

邱毅入監服刑,大家怎麼看?

隨便列舉一些新聞或者民調的結果:

邱毅

小貓天使

三月初去了日本,車子放在地下室兩個禮拜。回來後又休息了一天,第二天晚上才開車出門去接老婆回家。算一算,車子有半個月沒去發動了。

那天是禮拜六,三更半夜,開車回到地下室停車場以後,老婆發現我們的車位上有一隻貓。愛貓成性如我,馬上開門下車看看那隻貓。果然,一隻貓躺在我家的車位上。我慢慢的接近,直到我距離牠剩下一步的距離,這隻貓都沒有反應。怪怪的。我仔細一看,這才發現…

牠脫糞、抽筋、口吐白沫、四肢僵硬。牠應該是誤食了老鼠藥,死了。

這下子我嚇了一大跳,心想到底要怎麼辦。心裡想著:怎麼那麼不幸,有一隻貓死在我家的車位;不過還好還算幸運,牠躺在正中央,沒被輪胎碾過。我把車子停在外面,祈禱清掃大樓的阿伯明天會來把牠清掉。不幸的是,隔天是禮拜天。早上出門直奔球場,打完了文山區慢壘春季聯賽的頭兩場,我懷著忐忑不安的開車回家。車子一進地下室,我就探頭仔細張望。唉,牠還在。看來我得自己清理了。

我先把車子停在隔壁鄰居的車位,上樓拿了一個紙箱子,畚斗掃把,還抽了幾個塑膠袋當手套以備不時之需。回到車位,我戰戰兢兢的把箱子口反折,把紙箱子的開口靠在牠身邊。然後拿了兩個畚斗,一個扣住頭和上肢,一個扣住尾巴和下肢,然後兩個畚斗勾起來把牠裝進紙箱子裡,再搬到巷子口清潔隊的活動子車旁邊。

小貓呀小貓,我平常偶爾會追著你們,逗你們玩,但是我從來沒想過要傷害你們。今天你躺在這兒,我就送你最後一程。希望下輩子你能投胎做人,不然至少當一隻備受寵愛的家貓,別再當流浪街頭的街貓了。

Port libumem to FreeBSD

話說去年十月在 FreeBSD list of projects and ideas for volunteers 看到 libumem 以後,花了一點時間把 umem 移植到 FreeBSD上,並且丟了一封信給 FreeBSD developers,看看有誰有興趣的就跟我說吧。

然後就過了半年,沒人鳥我。一個人都沒有。

就在我快要忘了這件事的時候,突然有人看到,並且寫了一封信跟我要程式來測試,順便通知我說 umem 搬家了,新家的位置在 portableumem 。我先把我舊的程式寄給他,然後花了一點時間測試新的 umem-1.0 。看來作者花了一些功夫在移植性上面,一些原本有問題的東西在 umem-1.0 裡面都不用修改就可以在 FreeBSD 上編譯執行。所以我就把 umem 給 commit 進 FreeBSD ports 裡面囉,放在 devel/umem

有興趣的自己測吧,有問題再通知我。

2007年3月21日星期三

花錢消災

花了兩個晚上還是沒辦法搞定 utopia 的問題,決定今天請假一天把它搞定。從 error log 查不出任何跡象,沒有錯誤訊息,沒有 core dump,沒有前兆,機器就是突然失去任何反應。用家裡的幾台電腦反覆測試:

  • 把硬碟拔到其他主機裝上,能正常運作,所以不是硬碟的問題

  • 從另一台電腦拔來記憶體裝上,仍然持續死當,所以不是記憶體的問題


剩下的我就無能為力了。我沒辦法對主機板或者 CPU 偵錯,所以只好再買一台。下午送老婆去上班以後,直奔光華商場,見面就把我的問題跟老闆敘述一次。於是老闆拿了一份套裝電腦的傳單,叫我挑一份最接近的來改。我挑了最陽春的機種,不要硬碟,不要光碟,不要鍵盤滑鼠,記憶體加大到 1GB。

兩個小時後,機器回來了,但是還有一些問題等待解決。首先是硬碟的問題。我按照 ASUS P5PE-VM的使用手冊安裝上原先的硬碟,開機後竟然顯示抓不到 kernel,嚇得我下巴都快掉下來。還好仔細看一下開機過程的訊息,發現我的開機硬碟竟然從原先的 ad0 變成了 ad2,想必是 Primary IDE 和 Secondary IDE 裝反了。我把排線對調以後,又翻了一次說明書,確定真的是說明書寫錯了。網路上傳言這一款主機板是 Made in China 的廉價品,我本來不以為意,只是沒想到連說明書寫反都沒人發現,真誇張。(補充說明:說明書 第 7 頁和第25 頁都說站著的是 Primary IDE,躺著的是 Secondary IDE,實際上應該顛倒過來才對。)

再來是 P5PE-VM 內建的網路卡是 Marvell 88E8001,第一次開機的時候 GENERIC kernel 抓不到,害我緊張了一下,還好上網查了一下資料發現要用 sk 去抓,所以改改 kernel 加入 device miibus 和 device sk,然後重開機就抓到了。當然其他原本針對網路卡設定的一些有的沒的,例如流量統計或者防火牆的設定也要跟著改,改完以後就可以動了。

看了一下舊的 utopia,是 2003 年底的機器,算一算到現在也三年半了。就當是花錢消災吧,為了能恢復暢通的區域網路,個人伺服器和程式開發測試平台,代價是八千兩百元,兩個晚上,再加上一整個白天的時間。

utopia 又快爛掉了

我的 utopia 這幾天拼命死當,整台工作站突然就 hang 住,只能按 reset 重開機。看來又得換一台新的電腦了。
leeym            ttyp0    192.168.0.3      Thu Mar 22 11:45   still logged in
reboot ~ Thu Mar 22 11:41
leeym ttyp0 192.168.0.3 Thu Mar 22 11:26 - crash (00:15)
reboot ~ Thu Mar 22 11:24
leeym ttyv7 Thu Mar 22 10:51 - crash (00:32)
reboot ~ Thu Mar 22 10:51
shutdown ~ Thu Mar 22 18:42
leeym ttyv7 Thu Mar 22 10:00 - shutdown (08:41)
reboot ~ Thu Mar 22 09:57
leeym ttyp0 192.168.0.3 Thu Mar 22 09:50 - crash (00:07)
reboot ~ Thu Mar 22 09:50
leeym ttyp0 192.168.0.3 Thu Mar 22 09:42 - crash (00:07)
reboot ~ Thu Mar 22 09:42
leeym ttyp0 192.168.0.3 Thu Mar 22 08:14 - crash (01:28)
reboot ~ Thu Mar 22 08:13
reboot ~ Thu Mar 22 00:16
leeym ttyp1 192.168.0.3 Wed Mar 21 23:59 - crash (00:17)
leeym ttyv7 Wed Mar 21 23:56 - crash (00:20)
reboot ~ Wed Mar 21 23:54
shutdown ~ Thu Mar 22 06:26
leeym ttyp0 192.168.0.3 Wed Mar 21 22:06 - shutdown (08:20)
reboot ~ Wed Mar 21 22:05
reboot ~ Wed Mar 21 19:28
reboot ~ Wed Mar 21 19:14
leeym ttyp0 203.188.207.1 Wed Mar 21 11:49 - crash (07:25)
reboot ~ Wed Mar 21 11:49
leeym ttyp0 203.188.207.1 Wed Mar 21 11:35 - crash (00:13)
reboot ~ Wed Mar 21 11:33
leeym ttyp0 192.168.0.3 Wed Mar 21 09:35 - crash (01:57)
reboot ~ Wed Mar 21 09:35
leeym ttyp0 192.168.0.3 Wed Mar 21 09:01 - crash (00:33)
reboot ~ Wed Mar 21 09:01
leeym ttyp0 192.168.0.3 Wed Mar 21 08:50 - crash (00:11)
reboot ~ Wed Mar 21 08:48
leeym ttyp0 192.168.0.3 Wed Mar 21 01:15 - crash (07:33)
reboot ~ Wed Mar 21 01:15
leeym ttyp0 192.168.0.3 Wed Mar 21 00:59 - crash (00:16)
reboot ~ Wed Mar 21 00:58
leeym ttyp0 192.168.0.3 Wed Mar 21 00:48 - crash (00:10)
reboot ~ Wed Mar 21 00:47
shutdown ~ Wed Mar 21 08:41
reboot ~ Wed Mar 21 00:28
leeym ttyp0 192.168.0.3 Wed Mar 21 00:18 - crash (00:10)
reboot ~ Wed Mar 21 00:18

2007年3月15日星期四

從日本回來了

去了一趟日本,玩了兩個星期,昨天終於回台灣了。

這趟去了北海道、關西、東京,跑了不少地方,有些第一次去,是全新的經驗;有些則是舊地重遊,又有一番風味。

不過因為室內室外溫差頗大,有點感冒,所以休息幾天再把照片整理上來吧。

2007年3月4日星期日

Something wrong with my blog

I'm now in Japan, and will be here for about 2 weeks.

I'll fix my blog after I am back to Taiwan. Sorry for the inconvenience.