CocoaHeads Podcast And Call for Presenter

April 29th, 2008

今天把之前幾次有影片檔的 CocoaHeads meeting 資料整理成 podcast,讓有興趣的人可以訂閱

另外根據三月份 meeting 的經驗,在台灣對 Cocoa 有興趣的人其實不少,但是其中仍有很多人完全沒接觸過程式。他們參加聚會所得有限。關於這個問題,我們沒辦法 dedicate 找人每個月設計一套連續的 lecture 來開補習班,因為完全沒有那種資源,就算有,我也不希望變成開補習班的。對我來說希望經營的社群是有機的,是自給自足,能夠激發一些新的想法,而不是單向的施與受。從另外一方面來說,我們也不可能直接宣告「來參加 CocoaHeads 必須要有一定程度」,我還來個大學聯考咧。反正,這是一個自由的聚會,又不用錢,想參加就來,就算聽不懂,光是看優仕二樓漂亮妹妹就值回票價了。不爽想閃人,隨時可以呀~綜合以上兩個極端的考量,我取個平衡點,那就是寫一份 指南,讓新手知道該如何才能提昇自己的程度(至少先裝個 Xcode 嘛。之前聽 EvenWu 說,他來聚會開始抓 Xcode,結束以後差不多抓完了。這…),只有自己才能幫自己忙的。

對我來說,主持這個聚會是很大的挑戰。不知道從何時開始,發現自己不是個口才便給之人,一句話往往沒有辦法表達清楚,而是會加入許多語助詞和停頓,有時口吃,甚至 interrupt 進另外的句子,或者不知道接下來該用哪個詞來描述事物。這已經不是純粹英文爛的問題了,我的中文也退化到很可怕的程度。現在我想到一個概念,浮現的不是 sequential 的句子,而是許多片段以任意順序浮現,有點像 tag cloud 那樣,我又沒辦法很快找出他們正確的排列順序,所以一句話會說得顛三倒四。可能當下講話時不太會發現,但是錄音起來一聽,我自己都快昏倒了。於是我回家往往要把自己的 presentation 重新錄製好幾遍才稍微改善。這是一個很痛苦的過程。像我這樣子的人呢,居然要常常負責簡報,或者是在台下支持 presenter(例如適時加入幾個笑話,提昇現場的互動),真的是一件很艱難的事情呢。縱使如此,逼自己練習仍然是必要的。我相信和去年比起來,我已經稍微進步了。

最後,我們永遠都在徵求下個月的講者。如果您有什麼想要和大家討論分享的,歡迎和我聯絡或者直接 post 在 Google Group 上。這對你自己是一個可以累積經驗的好機會,同時也可以減輕我和 Lukhnos 的負擔。(每次講完回去我都會喉嚨痛,這個月回去就感冒了)

Apply WWDC 2008 student scholarship now!

March 29th, 2008

開始接受申請,到 4/10 為止。今年我不會去。
(嗚嗚,雖然很想去……)

(好想申請啊,但是一定要忍耐)

Kyle Purdy you fucking lucky bastard!

March 28th, 2008

可惜我會的髒話不夠多,沒辦法表達心中嫉妒之情。 XD

警告!OSX 內含嚴重漏洞!完全不適合當伺服器!請千萬小心!

March 28th, 2008

在各大媒體與部落格「薰陶」下,用聳動的標題殺人法或者寫一些偏頗的戰文吸引眼球好像是很稀鬆平常的事情。我現在正在做這件事。Blame the media.

最近 Hypo 的伺服器(當然是 Mac)一到半夜十二點,就很準時地死當。當到什麼程度呢?彩球猛轉,只能按電源重開機,啥強制結束、sudo shutdown -r now 等任何你想得到的指令都完全沒反應,根本連 ssh 都進不去了!

固定的時間當機,第一直覺就是檢查 cron jobs 和 /etc/periodic/daily 底下的東西吧。嗯,完全看不出什麼問題。如果是軟體問題的話,調整系統時間呢?又很正常。我們的 server 一定要等到實際上的台北時間半夜十二點才會死當。十二點房間有什麼異狀?跳電?鬼魂?是不是房東到了半夜來偷玩我們電腦?留守觀察以後,什麼奇怪的事情都沒有。硬體出問題?這是我們一開始的假設,不過沒多久就被推翻了。這個問題很難 debug,因為每天就固定一次,不知道要如何重製,也不知如何阻止。今天嘗試一些解決方法,也沒有辦法立刻驗證方法有沒有效,要等到半夜十二點。如果沒效,就要半夜從家裡跑去辦公室重開機!

馬的,那些 Apple Fans 不是常常吹牛說有多穩有多穩,說什麼「哇,好想看到四國畫面喔!我都沒看過耶」、「Mac 連當機都美美的」,這下子連 Windows XP 都不如,糗了吧。

根據當機天數來算,這症頭可能是從總統大選那天開始的。混帳,不是說什麼「馬上就會好」嗎?我看變成「馬上就爛」了吧!

到此為止應該已經讓很多鄉民累積很多戰意了吧!要戰請便,這樣可以幫我吸引更多人氣。以下是正經的東西:

在第二天發作時,我們掌握了大概的可能。在 OSX 內有一隻重要的程式,叫做 lookupd。這隻程式有萬年老 bug,在處理 cache 時,某些特定的操作會讓 lookupd crash!更加不妙的是,lookupd crash 後因為 bug 的關係沒辦法重生。而幾乎所有大小事都需要用到 lookupd(包括 sudo)。因此 lookupd 掛掉以後,幾乎所有的程式都沒辦法執行了,只能重開機。

這問題在 10.0 就有了,居然到 10.4 都還沒修正!而且網路上也有不少人遇到和我們一樣的事情,你可以去 Apple 的 mailing list 搜尋 lookupd 看看出了多少問題。為什麼我之前都沒聽過這種事情?Mac OS X 有可能因為瀏覽幾個特定的網站,就會當機當到需要按電源鈕重開的地步!

而我們的狀況更奇怪。如果只是純軟體因素的話,那調整系統時間應該可以再次觸發問題才對,現在是非得等到半夜才會當機,因此我推測有可能是外面有機器定時會連過來,造成 lookupd 當掉。每天嘗試一種網路上的解法,並且思考到底該怎麼辦。昨天我推測可能是 DNS 的關係,因為 DNS server 的 cache 預設是一天過期,搞不好就是因為外面的 DNS server 定時連過來,造成我們當機呢?所以我清了清 cache,又在半夜把 named 關掉。照樣當機。

Leopard 把 lookupd 拿掉,換成 dscacheutil。本來想說最後一招就是升級成 Leopard,應該可以解決問題,雖然重灌要搬移很多設定,至少不會當機。沒想到 #opendarwin 當天就有人說他的 leotard 被我傳染了,有同樣的症頭。

而最辛苦的還是半夜跑去重開機器了,我在這邊打打指令實在不算什麼。話雖如此,今天感到強烈的挫敗感。我再也耐不住性子每天試一種解法,想把問題和解決方法找出來。我只想要快點把這個該死的問題給解決。

於是洩氣的我花整天把 mailing list 的每篇討論都看完,只要沾得上一點關係,就嘗試看看他們的方法。我已經記不得我做了什麼了,因為實在太多了(連在機器上放奶油椰子乖乖的迷信都試過了)!我把這種胡搞一通,稱為「雞尾酒療法」。

結果雞尾酒療法真的生效了。就在剛剛,半夜十二點,今天沒有當機。靠北。

本篇的重點是:

  1. OSX 當機當到必須按開機鍵重開,有可能只是因為一個小小的 lookupd crash。而台灣廠商多半不知道這點,可能會建議你換 ram。
  2. Apple 從 10.0 到 10.4 似乎都沒有修正這個 bug。10.5 也可能有類似的症頭。要當伺服器?你最好禱告不要遇到這種鳥問題。
  3. 我還是很喜歡用 OSX 當 server 啦,畢竟 linux 和 FreeBSD 都很難用……

Without life…

March 19th, 2008

某個禮拜六開會完,我和 yoho 聊到快十二點(結果當然是被 sffish 唸了。 orz 對於我們這種非台灣時區的公司來說,對時間欠缺自覺好像很普遍。yoho 好像蠻常到三四點才離開工作室的……我們又不是台G電,何必這樣呢~~),其中有個話題讓我們都覺得很辛酸:

我們公司做 iPhoto 照片書的,我做 iPhoto 的程式分析,而我的 iPhoto 圖庫到前幾個禮拜為止卻只有六七張自己的照片。

我的 iTunes 裡有數十 GB 的 WWDC 07 session video,Cocoa/BBC podcasts,卻只有三首 MP3。兩首還是 sffish 帶來我家聽的。

我們公司做 flickr 照片書的,我有買 flickr PRO 帳號,卻好久都沒有上傳新照片了。

(當然和有些資料在舊電腦上懶得搬也有關係,但舊電腦也好久沒用了)

不聽歌,沒照相,好慚愧啊!我們真的是用蘋果電腦的人嗎?數位生活跑哪去了???

街貓受傷

March 19th, 2008

紙包不住火。事情是這樣。禮拜天中午 sffish 來找我的時候,發現有一隻平時很親人的街貓(我的 flickr 帳號在事發前幾天還有上傳牠的照片)樣子變得很嚇人,於是就找我過去看。當時他因為之前被貓抓傷的懼病心理嚇得要死,無法判斷事情,我就要他先把貓的樣子照起來,回家上網路把照片貼上貓的討論區問人。網友普遍的建議都是要儘快帶去看醫生,所以我們在問了價格、如何抓貓等基本問題後,就全副武裝(安全帽、手套、外套、厚長褲、布鞋、紙箱)抓貓去給醫生看。抓貓並不順利,倒不是因為他會亂跑,而是我們帶的紙箱太小,他進去了也不肯趴下,蓋子蓋不起來。折騰了可能有 40 分鐘,之間我們跑去買貓籠(一樣太小)、快遞紙箱,總算搞定,搭計程車送往忠誠路劍橋獸醫院。

做了 X 光和血液檢查,創傷侷限在頭頸部以上,雙眼均失去視力。身體部份都還完好,肝腎功能正常,無骨折,醫師研判可能是摔下來或是被撞到。住院三天觀察。安頓好以後,已經是晚上了。那條街上平時就有人在餵貓,我想應該也會有人關心他的病情,就做了一個網站讓大家交換訊息,並且把牠受傷的消息和網址做成傳單,貼在那個巷子附近。

石牌受傷街貓現況

一天以內就有人提供情報,說可能是在禮拜五晚上被機車撞到:

我是事發後的目擊者之一
(這個訊息是我堂妹跟我說的)

3/14星期五晚上大約11點半左右,
我下班要去親戚家,
遠遠的看到貓咪在地上爬,一開始我以為貓咪窩在地上看小老鼠,
稍微靠近時發現地上都是一攤一攤的血…貓咪受了滿重的傷…

靠近貓的附近停著一台機車有一對情侶(女生瘦瘦的,直髮過肩,男生黑黑短髮壯壯的),
女生哭著說:怎麼辦?
我不確定是不是他們撞到貓,
但是我當下覺得如果是他們撞到的話,
因為人都已經回頭,所以他們一定會送醫院…
於是我就離開了…

但是看來…………

他們並沒有……….

對不起…我似乎應該留下來的….

而我們從來沒處理過這種事情,於是開始搜尋遇到這種事情該怎麼處理。這幾天都忙得睡不好。三天後醫師說可以出院了,而我們在各討論區張貼的徵求中途照護卻還是沒有回應。此時和家裡溝通未果,於是繼續自費讓牠住院。溝通時聽到家人說類似「不要做那種超出自己能力的事」之類的話時,我有點怒。我並不是因為喜歡或想要養貓,所以沒事找事送牠去醫院。之前 sffish 問我幫街貓取名字時,我說我不喜歡幫牠們取名字,那是因為我本來就想和牠們保持距離,過我自己的生活。而那時的狀況是,你看到前幾天還活蹦亂跳和你撒嬌的貓咪,今天卻病奄奄倒在路旁,眼睛混濁不清還流著血———那就好像鄰居有個每天都會看到、打招呼的小女孩,昨天才在聊天時不經意提到她很可愛,今天卻發現她被揍得破相,渾身是血倒在路邊一樣。要不要救?很簡單的是非題,不過如此而已。

我的答案是「要」,這是我個人的價值觀判斷。雖然我已經 24 歲,早已過了駕駛剛彈拯救地球的年紀,但我仍然很幼稚。而如果「成熟」就是能夠預見負擔所以見死不救,那我寧願一直長不大。直到現在我還是認為我是對的,事實上在我們送牠去醫院之前,牠已經在那邊受傷快要兩天了。心理學曾教過責任分攤,1964年Kitty Genovese被瘋子以刀子攻擊死亡,38人聽到他的哭泣求援,卻沒有人報警或試圖救他;日本1998年曾發生幾個17歲少年隨機將路上的17歲少女監禁虐待至死的案件,期間知情者高達百人,卻沒有人嘗試阻止慘案發生。我甚至比一般人還要懦弱怕事,但是就像家人照顧有精神疾病的姑姑一樣,總是有些麻煩事需要有人去做的。

目前,已經有願意當中途照護的人和我們聯絡了,但是他住北縣有點遠。如果沒有更適合的人選,就差不多定案了。在那之前還有一些檢查要做,之後則是資源與人力的募集,以及兩個月後若找不到認養人該怎麼處理。看到很多人對這隻貓表達關心,希望牠能不負眾望早點康復。

打爆死澳客吧!

March 12th, 2008

標題當然是指明天奧運資格賽中華對澳洲啊。

之前交涉那個澳洲的案真是讓我歸覽啪火,開價被砍本來就在預期之內,但是砍到只剩原價 1/17 是怎樣?比對兩地物價指數,這個價格實在無言耶。一番交涉後老子不爽賣了,就讓那些澳客弄半年還弄不出來的技術繼續爛在那邊吧。浪費我時間,呿。

中華隊加油啊~打爆澳客幫我出一口氣吧!

Hypothesis

March 6th, 2008

(警告:這是一篇沒頭沒腦、想到什麼就打什麼的日記文,毫無邏輯)

當初取 Hypo 這個名字真是一語成讖,Hypo 放前面,thesis 放後面啊…… orz

為了停止我媽的嘮叨,我決定先暫時將其他事務暫停,開始全力準備畢業相關的事務(可惡,當學生明明很好,可以用優惠價格買 icc 或申請 WWDC,只是當米蟲實在太久了,心理也有點愧疚,否則還蠻快樂的)。因此,Hypo 方面我會降低投入時間,幸好現在大部分的功能已經穩定運作,也找到了可以開發新功能的人(只是 WebObjects 這邊的商務邏輯還是找不到人來維護讓我有點擔心)。

至於 CocoaHeads 台北區聚會,我仍然會負責舉辦。只是大概就真的只當主辦人協調場地、主講人等幕後問題,不能像以前一樣找不到主講人就自己下海準備議程,和尚兼撞鐘畢竟太累了(我一直很想做訪談,不過還沒有好的機會)。

至於各種正在進行中的 Project,我只能忍痛暫停了。說到這就對 jjgod 等人感到很不好意思,最近常收到他們的 patch 希望我能 merge 進去,關於這件事我找不到時間來好好做完。像 ssh anti-idle 的 bug 當然沒問題,可是有些 feature 我認為還需要經過一番思考,這些是花時間決定的。而這幾個月我大概不會有時間,所以真的很抱歉,我有收到你的信,不如你們就自己把 sparkle 的設定改掉,自己先發 branch 版本了吧?而呂學一老師大概不會在我當完兵以前看到我寫出 Keynote latex or even more general plugin,這是肯定的。其他正在做的網站和程式,我對不起你們,沒能將你們做完。

談談兩岸的差異吧。在 Nally 這個還算受華人歡迎的項目上,台灣人總是只有 feature request,我想要這個想要那個,我都開放程式碼了,還沒聽過有人自己修改程式回報給我的。相反地,我收到許多中國朋友的 patch(最近我忙不過來,很抱歉),真是我始料未及的。這現象真的很令人憂心,從 Apple Asia 近年來在中國地區不斷的推廣,包括舉辦開發者夏令營,贊助學生參加 WWDC ,以及開發社群的活躍程度來看,台灣被邊緣化已經是個事實。我們有的是連 Cocoa 是啥都搞不太清楚,只會賣機器的台灣蘋果。在如此惡劣的環境下,要如何走出一條路,將是未來台灣相關從業人員的一個重要課題。我沒有想到什麼妙法,但是最近的觀察讓我想呼籲台灣有能力的 Mac 開發者:別再整天做中文化了!不是說中文化不重要,我國中也做過,而且有些人翻譯的品質也很棒,但是台灣沒什麼自己的 Mac 軟體,在論壇看到的總是「xxx 軟體中文化嘍!要的留信箱」、「感激大大」,實在令人唏噓不已。感覺有點沽名釣譽啊(我沒說是搶別人女友的那個啊,咳)。事實上中文化根本用不到什麼技術,與其浪費時間在中文化上,不如自己寫一個好用的軟體出來,把翻譯交給專業的來,這樣才能提昇台灣產業的水平啊。(今天下午聽到一些不能說的秘密,讓我對台灣的開放原始碼運動感到很痛心啊……雖然我並不是開放原始碼那派的人,但對他們也抱持正面的觀感。如今只能祝福他們了)

突然沒頭沒腦寫了那麼多又寫到晚上了。最近剛把一個澳洲公司的案子給弄好,是該好好調整作息了。本來希望能一點就睡,結果又失敗了。上禮拜六 Hypo 開會的時候剛好和 yoho 聊到我們的作息都不太正常,我有次好不容易撐了一天,很早就累了,睡醒以為是凌晨四五點,想說實在太清爽了,好久沒有那麼早起,結果一看錶,靠,才睡兩三個小時。整個晚上又完蛋了。沒想到 yoho 很激動地說他也會這樣耶。唉。

不過我一直覺得很好奇,如果能夠控制環境(例如白天睡覺時環境黑暗),睡眠時間一樣長,只有睡眠時段不一樣,這樣還是會對身體不好嗎?為什麼晚睡會對身體不好,有沒有科學的說法呢?

再胡思亂想下去明天又爬不起來了,還是就此打住吧。

7 things I hate about WebObjects

February 28th, 2008

1. Ugly URL

就算用了 direct action 還是很醜。例如:
http://www.example.com/cgi-bin/WebObjects/YourApp.woa/-port/wa/action

2. 會讓 compiler 抱怨 generics type checking 不通過

要手動加一堆 @SupressWarning(”all”) 在 ERXGenericRecord Class 上。有人直接在 EOGenerator 的 template 上加這個,不過 EOGenerator 在 10.5 上不能用……

3. 預設對 Unicode 支援不佳(?)

沒有設定過的話,吐出來的資料全都是亂碼。
每個 Component 都要設定

public void takeValuesFromRequest(WORequest r, WOContext c) {
	r.setDefaultFormValueEncoding("UTF8");
	super.takeValuesFromRequest(r,c);	
}
 
public void appendToResponse (WOResponse aResponse, WOContext aContext) {
	aResponse.setContentEncoding("UTF8");
	super.appendToResponse (aResponse, aContext);
	aResponse.setHeader("text/html;charset=utf-8", "Content-Type");
}

不僅如此,我用 Template Component,出來一定變亂碼,到現在我還是不會設定 template 用 UTF-8,要是有中文的地方我只好一直 copy/paste 而不是用 template……

4. 設定複雜

我是不知道其他的 framework 怎麼樣啦,但是四散在各處的設定檔簡直是整人。

5. 工具不夠強

是的,Eclipse 很強,但是我怎麼也用不慣,要搜尋或取代時我還是開 TextMate 來用。WOLips 的 Component Editor 有點笨,如果能自動補完 WOComponet 的 attribute 或 class 該有多好。而且這邊的編輯行為和 code editor 不同。按 Option + 左右或 delete 都和一般刪掉或移動一個 word 不一樣,很差勁。如果不用工具的話更是累到吐血,之前我都直接用 SubEthaEdit 來做 Component,要手動建立 .wo 檔案夾,再從別處 copy 來 .html, .wod, .wo, .api 檔來修改。光是弄完一個空白的 component 都要花個五分鐘。另外 EOGenerator 在 10.5 不能用,PostgreSQL plugin bundle 也不能在 10.5 底下用……

6. 預設介面有點醜

過時了啦~

7. 文件過期,社群兩極化

老鳥懂很多,菜鳥很難入門。這兩年我一直很納悶,為何 ERXLogger 換了新版 Project WONDER 以後會出問題,直到寫信給作者他說他早就拿掉了。可是文件上明明還有記載啊!從 2.0 以後拿掉,一直到 Project WONDER 4.0 都沒有人發覺?連 objectstyle wiki 上都還有空的 ERXLogger 的項目。老鳥一直跟著這些 3rd party 或社群訊息更新,自然不用看文件。但是菜鳥沒有跟上社群,只能看錯誤的文件。

生平第一場雪

February 19th, 2008



rails in snow

Originally uploaded by yllan

結果回到台北反而更怕冷… 囧

CFStringTokenizer - Leopard 內建斷詞工具

February 18th, 2008

支援中日文。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#import<Cocoa/Cocoa.h>
#import<Corefoundation/CoreFoundation.h>
 
#define BUFFER_LENGTH 10000
 
int main() {
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
    char buffer[BUFFER_LENGTH];
    fgets(buffer, BUFFER_LENGTH, stdin);
    NSString *s = [NSString stringWithUTF8String: buffer];
    CFRange range = CFRangeMake(0, [s length]);
    CFStringTokenizerRef tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault, 
            (CFStringRef)s, range, kCFStringTokenizerUnitWord, CFLocaleCopyCurrent());
 
    CFStringTokenizerAdvanceToNextToken(tokenizer);
 
    while (1) {
        CFRange r = CFStringTokenizerGetCurrentTokenRange(tokenizer);
        if (r.location == kCFNotFound && r.length == 0) break;
        fprintf(stdout, "(%s) ", [[s substringWithRange: NSMakeRange(r.location, r.length)] UTF8String]);
        CFStringTokenizerAdvanceToNextToken(tokenizer);
    }
    puts("");
 
    CFRelease(tokenizer);
    [pool release];
    return 0;
}

輸入:
中華民國國民大會受全體國民之付託,依據孫中山先生創立中華民國之遺教,為鞏固國權、 保障民權、奠定社會安寧、增進人民福利,制定本憲法,頒行全國,永矢咸遵。

輸出:
(中華民國) (國民大會) (受) (全體) (國民) (之) (付託) (,) (依據) (孫中山) (先生) (創立) (中華民國) (之) (遺教) (,) (為) (鞏固) (國) (權) (、) (保障) (民權) (、) (奠定) (社會) (安寧) (、) (增進) (人民) (福利) (,) (制定) (本) (憲法) (,) (頒行) (全) (國) (,) (永) (矢) (咸) (遵) (。)

Dealing with NSTextInput Protocol

January 31st, 2008

Since MacHeist 2 was finished, over 40,000 mac users are happy with their new software and I’m one of them. However, I found some apps in the bundle, say Pixelmator, VectorDesigner and Cha-Ching, didn’t support multi-language very well. Why is that happening? Isn’t Mac OS X a unicode-savvy environment such that Cocoa apps are born with multi-language capability? The answer is yes, but only to some degree.
Read the rest of this entry »

Hypo 2008

January 16th, 2008

原本應該在去年秋天就出刊的雜誌介紹,一直拖到今年才出來。

DigiPhoto Magazine
介紹頁 Hypo 介紹

(到底為什麼拖過年呢~我這個人大概是 X 檔案看太多了,總是會想到陰謀論啊。不過猜測也只是猜測,只在心裡想沒有公開就不構成誹謗吧?也許我只是想太多啦,所以就不說了)

雜誌裡面把 Hypo 和 Kodak, IngTouch, moo, 郵局並列為五大輸出平台,提供 step by step 的範例,可惜報導的文字略嫌生硬:「hypoDot 目前所提供的印製款式相當簡單,只是一種可以選擇,也就是所謂的『12平方』款式」。至於排版什麼的在這種相機雜誌上就不用太苛求了,畢竟現在要做實體雜誌也不簡單。

今年年初能在平面媒體上亮相,也是個好彩頭啊。總之,感謝 DigiPhoto 的報導。Hypo 在 2008 年有一些新的計畫,see you soon!

Unbreakable Serial Number Scheme

January 11th, 2008

前幾天蕭易玄提及,他寫的共享軟體 Ram Disk Utility ,已經被 Mac 上一個很有名的序號大全(骷髏頭)給蒐羅進去。雖然發生這種事有點遺憾,但我想這也沒那麼糟,畢竟這代表 RDU 已經被國際注意到,而且大家真的會想要去用,也算是一種肯定。

是不是有某些奧客把他買來的序號流傳出去呢?如果是這樣那就還好。你可以比對出這奧客當初購買的基本資料或信用卡等,看是列入黑名單或者和找他算帳。但根據蕭易玄表示,骷髏頭出現的並非是他曾經發過的任何序號,因此我們可以推論,這是那些 cracker 自行產生的序號。在這種狀況下,我們沒辦法找出是誰散佈的序號,因為我們客戶資料庫裡壓根沒有這組序號的主人資料。因此,一個好的序號機制必須防止 cracker 破解出運算規律並且自行產生任意的序號。

難道那些 cracker 有通靈之術,能猜到序號的運算規律?當然並非如此。我花了點時間來看看 RDU 的序號機制。因為這是一個 REALbasic Application,增加了反組譯的難度,不過大概也只花兩個小時,就找出了問題所在。問題在於 RDU 的序號機制和許多軟體一樣,採用的是傳統的檢驗手法:
Read the rest of this entry »

感謝大家

December 19th, 2007

一些朋友看到我的 twitter status 立刻來問我身體怎麼了,很感動。謝謝你們。不過也讓你們操心了,我沒事,是我的姊姊和阿公生病了。

想到前幾天阿公說 sffish 在和茶舖幫他買的飯糰好好吃,飯很軟,昨天中午吃完飯以後就出門幫爺爺買一個飯糰,想給阿公當點心,也沒注意為何中午吃飯時間阿公還沒起床。買回來以後,我姊問我早上有喝牛奶或蛋糕嗎?他上吐下瀉很難過;阿公則是好一會兒才從床上爬起來,拿飯糰給他吃,他也說今天肚子不舒服吃不下。

兩個人同時發病,直覺是吃壞肚子或食物中毒,但是去看醫生以後才發現居然是不同的病。姊姊感染了輪狀病毒,爺爺膽結石發炎。

今早他們倆都恢復了一些精神,已經可以下床走動,現在都在睡覺。希望他們趕快康復。