發表文章

目前顯示的是 4月, 2008的文章

MAC上的執行檔格式 (Mach-O)

  為了看程式用到哪些shared library才研究的,沒想到竟然不是ELF,Apple還真的大翻修BSD哩~ 看ELF的tool: objdump、readelf、ldd readelf -d a.o,ldd不錯用 看mach-o的tool: otool、ht edtior

封鎖大陸的惡意留言

  之前也幫人處理過,但那時候好像只是幫忙把留言砍掉就沒追蹤了 今天看到這篇文章 http://www.dotblogs.com.tw/chhuang/archive/2008/03.aspx 感覺不錯哩,利用在html裡面放個大陸的禁語,讓防火長城來幫你阻擋,厲害厲害~

抓取Orkut上的資料,GET跟POST的差別

  首先,就我自己來看,我覺得高階的Server Language的地方應該不用分辨GET跟POST,因為開發者只要可以取得KeyValue配對就好,想不到有甚麼理由要分辨GET或是POST的。在ASP.Net中,雖然有分成Request.QueryString跟Request.Form,但其實用Request.QueryString就可以了,這也只是下層一個舉手之勞而已,如果是自己寫CGI,我同意,程式必須要去判斷是哪一種方式,可是在有多一層引擎的情況下,我覺得GET跟POST是沒有差異的。不知道PHP是不是也是這樣? 廢話說完了,這次應工作需求必須去抓取Orkut上的Profile,所以我們必須透過程式去google認證。流程大概就是 google的綜合認證網頁( https://www.google.com/accounts/LoginAuth ),取得cookie orkut( http://www.orkut.com/ ),會取得一個要轉址的html 到上面的html(google認證中心)去取得orkut要用的token 我覺得流程有點像Kerberos (看門犬)的認證方式,問題是,我們跑上面的三個網頁竟然要30秒左右,之前我建議我同事用GET比較好寫,所以用GET就行了,後來因為找不到問題,主管說原本是POST,就改回POST試試,沒想到竟然變快了,沒道理啊,就SERVER Side而言,怎麼可能判斷說是GET就多花十秒鐘。 原來兇手是httpclient如果是使用GET的話,會自動去parse傳回來的html,如果他發現需要redirect的話,就會再發出一個request,而經過驗證,中途會多轉到一個不必要的https網頁認證,因為TrustManager的緣故,所以多花了十秒,科科,總算還GET一個清白了~

貼心大姊服務的Bot

  話說我認識一位大姐,她有一個貼心的服務,就是氣象預報 例如今早又收到MSN上傳來的訊息 http://tw.news.yahoo.com/article/url/d/a/080422/2/xrgm.html 讓我感覺很窩心,想到小時候,家裡大人都會很注意天氣,常常跟我們說要轉冷了,要下雨了之類的~ 我開始注重天氣是在當兵的時候,放假的周末就必須先預知好下個禮拜的情況,來決定要不要帶雨傘,而且可以做好心理準備,如果下雨的話,我們就要在水泥地上爬呀爬的,痛死了~ 回到正題,上班之後不一定會天天注意天氣,希望有一個貼心大姐的服務,當出現某種緊急的新聞時,可以主動通知我們,不然在外面自己住的人很容易晚上回家就感冒了。至於要怎麼做呢?剛調查一下MsnPlus的外掛可以Call外部DLL,所以可以用.Net寫個元件再呼叫MsnPlus該秀出訊息了,至於要怎麼抓重大新聞然後送對對象呢?這就牽扯到一點location的議題了,再研究看看~ 2010年我就寫了一個程式叫做 PredictWeather,原理很簡單,只要兩天的溫度差大於五度,就提醒,或是晴變雨、雨變晴也會提醒。

密碼的強弱度分析

  剛在睡覺的時候突然想到,我們在網路上註冊新帳號的時候常會看到強弱度分析,其實我是沒甚麼去注重他。只是之前跟某人借電腦,發現他的密碼也是設的滿簡單的,就是帳號的反過來,話說我之前也用過這種密碼。 問題是現在驗證密碼的強弱度的演算法似乎很簡單,只看你用了哪些字元,我覺得可以繼續改進。google已有很龐大的個人密碼資料庫,其實可以去跑mining來分析說密碼跟個人資料(帳號……)有多大的相關性?以此來判斷新註冊帳號的密碼強弱度,我覺得這樣就很棒,例如有些人會使用密碼加個生日,這個用暴力法去跑應該會抓得到,可是在google的註冊時,假設帳號是"mtubemtube",密碼也用"mtubemtube"時是Weak,改成"mtubemtube731"就變成Strong了,可是我自己是覺得沒有很Strong啦~諸如此類的還有密碼是顛倒帳號的話也是Strong,或是我相信會有更多人使用"Strong"的注音拼法。 如果真的做出來之後,唯一的缺點是可以讓駭客知道哪些Password Rule是比較常用的。 PS:一個不知道有沒有用的方法,直接把你註冊的帳號丟去google搜尋,然後看你想用的密碼跟網路上的資料有沒有甚麼相關性。

養成計畫

  在已經裝完大部分的iPod應用程式之後,把目標轉到了模擬器上面去,沒想到iPod有早期的SEGA模擬器,但因為在iPod上玩戰略遊戲比較適合,所以去找了一下國中時期玩的第一款戰略遊戲--太平記,當初破關的興奮現在還是記得,因為國中住校,周末回家破關之後,回學校晚上就一直在哼破關的音樂炫耀^^。沒想到竟然在網路上找到了,而且還可以玩,真是太神奇了~ 在iPod上試玩了一下之後,發現操控還是沒那麼方便,而且對戰的畫面太小的話也沒甚麼快感,所以我又去找了PC的SEGA模擬器來玩了。應該是長大了,受過很多遊戲的訓練,發現沒那麼有挑戰性,靠著兩三隻武將就可以打敗一群敵人。重點不是在這個,而是我決定要把此套遊戲好好保存下來(寫模擬的人真好),以後我兒子小小的就要讓他玩我以前玩過的遊戲,訓練他運籌帷幄的能力。以前玩電動是幾近是完美主義,一場關卡全部都不能死一隻(炎龍騎士團),所以一直在找策略進攻,我相信這對小孩子是有幫助的,過不了就打他XD 現在小朋友聽說花費很大,要學有的沒的,補習費就一大堆了,但我不是上流社會,我不知道將來的人需要甚麼技能才能競爭,現在我自己的想法是至少有三個要學的,第一:要有一顆赤子之心,教會他「儘管問、不怕問」,看到甚麼都有疑問?例如:「到醫院去他會想去問溫度是幾度?」(我國小的時候好像有做過,問我媽,結果我媽就叫我去問護士,不敢問,但後來也是知道人體最適合的溫度是27度),或者是將來的總統大選候選人可以拿幾票之類的問題,雖然我們事前不知道答案,可是可以藉著推敲答案的過程去訓練邏輯。第二:早點教會他自學的能力,我們在大學學到甚麼都不重要,重點是畢業之後你有沒有辦法回答你沒學過的東西?google這麼發達,有電腦的話,大部分的問題都可以解決。第三:培養他找問題的能力,這個好像是研究所要訓練的吧?教授常說:「難的是找問題」要找到一個好問題,必須先看過那個領域的大部份文章,這部分我也還不行,在研究所反而學到比較多寫文章的方法。要成功的話就必須要看到一個不錯的問題, 然後動手做下去。 教東西之前,我想還是要他看得懂字才行,這部分比較麻煩,所以小時候我還是多跟他PK電動吧^^。

PHP對BOM的判斷

  今天同事問了我說PHP對BOM會噴出錯誤,要如何解決? 我很訝異,覺得這不是在mod_php上面加個設定(輸入改成unicode)就可以了,沒想到google之後PHP還真的沒解法,一堆人建議去掉BOM,而在2006年2月的文章已經有提到說PHP6就會支援Unicode,到時就不會有這個問題了,可是到現在還是有XD 下面是網路上的一種解法(我不確定): PHP 也有討論這個問題:可參考 http://bugs.php.net/bug.php?id=22108 , 加上 --enable-zend-multibyte  編譯後 ,聽說會解決這個問題 至於還有一些討論BOM到底合不合適啊?因為會誤判的原因,所以不建議加。 應該是windows用太久了,一直以為不是本來就應該要加的嗎?我自己是偏向要加的,因為很多軟體都是使用header去做一個判斷(zip、bmp……),至於會誤判的情況,如果開頭是"嚜蹂"這兩個字才會有問題,但問題是這兩個字很少用啊,更少放在一起XD