如何張貼加密文章

blogger 的好處就是彈性大,彈性大意味什麼功能都要自己來 -__- 相當符合我這愛自幹的人生,可是我討厭寫網頁…

  1. 先下載一個必備的 javascript 檔 ,並找一個網頁空間上傳,或是人客妳/你覺得跟我很熟,願意跟我一起用同一個檔案 XD 那就請複製這個連結 http://Keiko.Zhou.googlepages.com/blogjscrypt.js
  2. 登入妳/你的 blog,編輯 blogger 的 template ,如下圖:
    ScreenHunter_02 Aug. 18 02.23
  3. 為了怕搞壞現有的 blog 樣式,可以先備份一下,俗話說:小心駛得萬年船。備份是種 common sense -__- 點一下下圖的下載完整模板就可以備份資料了。
    ScreenHunter_03 Aug. 18 02.25
  4. 將以下程式碼貼到 template 去(src 描述的位置,就是在步驟 1 上傳的位置):
    <script language="JavaScript" src="http://Keiko.Zhou.googlepages.com/blogjscrypt.js">
    貼的位置可以參考下圖,放到紅色框框處。
    ScreenHunter_04 Aug. 18 02.30
  5.   儲存範本。
    ScreenHunter_05 Aug. 18 02.39
  6. 以後呢,只要想發表加密文章時,只需要按照步驟 6 即可。請先到這個網站輸入密碼與要加密的文章。Key 的地方輸入密碼、Plain Text 的地方輸入要加密的文字,然後按下圖紅框的 Encrypt 加密。 
    ScreenHunter_09 Aug. 18 02.58   
    然後在更下方的 Cipher Text 就會出現已經加密好的密文,請複製這些密文。快速複製可暗 Cipher Text 下的 Select 按鈕。
    ScreenHunter_08 Aug. 18 02.58
  7. 加上一個步驟複製下的密文,貼到文章裡頭,貼法有兩種,但都需要進入 html 編輯模式。下圖分別是 blogger 線上編輯以及 Windows Live Writer 的 HTML 模式進入方式。
     ScreenHunter_10 Aug. 18 03.04 
    ScreenHunter_11 Aug. 18 03.05
    進入後,請貼上以下程式碼:
    <a href="javascript:Decrypt_text('請輸入一個 unique_id ');">Click to Decrypt text</a>
    
    <div id="unique_name">這邊貼上內容在步驟 6 複製來的密文(例如:wRxSwskrWsmohc1...之類的文字)</div>

    或是貼上
    <a href="javascript:Decrypt_text('unique_name', '這邊貼上內容在步驟 6 複製來的密文(例如:wRxSwskrWsmohc1...之類的文字)');">Show encrypted text</a>
    
    <div id="請輸入一個 unique_id "></div>

    請注意請輸入一個 unique_id 要輸入一個跟其他 html tag 不衝突的 id ,通常隨便取是不會衝突的,同篇文章有兩個以上的加密區塊時,記得也要取不同的名字唷!
  8. 大功告成。下圖分別是上述兩種貼法的結果,一個會顯示加密後的密文、一個不會。
    ScreenHunter_12 Aug. 18 03.17

參考資料

  1. [Javascript] Encrypt your private blog post

  2. 【Blogger】火星文加密大法!!

  3. Blogger Hack 密碼保護文產生器(2/7)
    這個參考資料還提供一個小工具簡化一下步驟。

加密文測試

demo 1

Click to Decrypt text (點擊此處解開火星文)
+tp4HMDQoTOneUP3c0M28x6ffO09dcN96RJ1MI/yJ+zm0BjN\nx0J+jhpdrl/12brGfkm9TTBYh/goAKbiE/LSSA==

demo 2

Show encrypted text

15:48 PM

走進系館,開了一下黃崇明辦公室外的燈,沒亮,看來電還沒來,關掉,突然門禁系統嗶一聲啟動,飲水機開始汲水,儀表板的燈開始閃爍,再往系館後面走去也是一樣,走近實驗室隱約可聽到低沉的馬達聲,原來是冰箱,走下去開伺服器,低沉的抽風聲卻已經開始了…

蠻特別的感覺,剛好走進系館,電就來了,拿起手機一看:15:48 PM。

聽說月底還會停一次電,不知道哪一次才是最後一次在成大體驗停電…

七月掰掰~

七月的最後一天,我竟然是做著惡夢醒來…沒關係,反正從踩到芒果的那一刻開始,注定要衰很久…

夢中我最好的朋友,竟然不再跟我講話了!!!

各位,你/妳說這有多恐怖啊!我是這麼重感情的人,怎麼禁得起這種打擊呢…

惡夢初醒,以為才六、七點,沒想到竟然已經十一點半了,最近實在是睡太爽,每天睡飽吃、吃飽再吃、然後再睡,莫名其妙就又胖了一公斤,現在已經是 53 公斤了, Oh, my godness!二十四年來最重的一次耶。看我爸暗爽的表情比聽到我可以畢業還誇張,我想這一刻他已經等很久了,加油,朝向一個月一公斤前進。

希望我不是用歡樂秤 XD

黑暗騎士 (Batman The Dark Knight)

TDK poster

看 ptt Movie 鄉民好評如潮、有看有推,又把希斯萊傑捧上天,這麼一部眾口鑠金,ㄜ,眾多好評的電影,怎麼能錯過呢?

Gotham_skyline Merry_christmas,_from_gotham_city

有別於以往的蝙蝠俠電影,這次的高譚市(Gotham City)可是長得很現實,不像以往有著高聳尖銳的天際線,看似文明開化的建築、雕刻,卻帶著腐敗墮落的味道,燈光背景也不在灰暗朦朧,更多時候,故事是在白天發生的。

而且這次還首度(?)讓蝙蝠俠出差到國外——香港,聽說有陳冠希出現,不過完全沒注意到,奇怪,我應該對他印象很深刻啊…

正義的代價是什麼?你又願意為它做出怎樣的犧牲?如果願意,你願意犧牲自己的生命、甚至你的朋友、家人嗎?面對正義與愛情,你會選擇何者?當生活中僅存唯一的支柱被剝奪時,你會發瘋嗎?善意的謊言其實是有存在的必要?

為什麼蝙蝠俠是黑暗騎士?有沒有白騎士(還是你更愛聖光騎士 XD)?當然不能雷你。

引用一下【蝙蝠俠:開戰時刻】一片的編導克里斯多福諾蘭(Christopher Nolan)說過的話:

「蝙蝠俠是一個被復仇慾望驅使的超級英雄,他是個凡人,也有很多缺點,但是他卻將這些毀滅性的情緒轉換成正面的力量。我個人認為蝙蝠俠在當今的社會更是一個意義非凡的人物。」

TDK Joker

如果你看過蝙蝠俠:開戰時刻(Batman Begins),記得來看蝙蝠俠:黑暗騎士(Batman The Dark Knight)。雖然很多人說女主角變醜了(胡說八道),雖然小丑殺人很變態(帶女生前去時,請三思,本人有切身之痛),雖然我覺得希斯萊傑(Heath Ledger)沒有像鄉民講的那麼神奇(死者為大,但平心而論),雖然哈維丹特突然變身會嚇死人(我真的被嚇到了),雖然高登局長竟然讓人催淚(Q_Q 我最喜歡的角色),但,它的劇情、特效、音樂還是值得去電影院欣賞的(當然不好看,我也是不會負責的,哈哈!)

Gordon

PS. 人老了,不吃維骨力就沒辦法上重樓,當然也就沒辦法為賦新詞強說愁了。寫文章還是要憑一股感動(or 衝動?),事過境遷、心情平靜後,就寫不出東西了,就像這篇一樣,過了兩個多禮拜,已經忘了當時的感覺了 <囧> 只記得走出電影院,旁邊女生花容失色的樣子,對不起啦,我不是故意帶妳來看恐怖片,只是想說我們這麼熟了,應該可以肆無忌憚地挑我喜歡的電影請妳看,沒想到…人不能鐵齒…

PS 2. 人真的不能鐵齒,我把機車停在沒有遮雨棚的廣場上,看著明亮的氣色,怎麼可能下雨,安全帽就掛在外頭,哭哭咧,我在為高登局長落淚時,老天也落淚了,是怎樣?我又不是許茹芸"我一哭,全世界為我落淚"咧,女生還有提醒我,果然國曆七月半也不能嘴硬…

掰掰,蠻牛~

由於美麗的錯誤與莫名的自信,過去兩個禮拜實在很充實,生活的密度相當高啊,大概是種 4-4.5-10.5-2-3 的生活:

00:00 ~ 04:00 寫程式、趕論文
04:00 ~ 08:30 睡覺
08:30 ~ 19:00 寫程式、趕論文
19:00 ~ 21:00 睡覺
21:00 ~ 24:00 寫程式、趕論文

這次碩士論文讓我學到很多。
如果又問我:什麼是世界上最遙遠的距離?
我一定毫不猶豫的說:
論文只差半章,你卻再也寫不下去了;
程式就快可以 demo ,卻卡了一隻 bug;
Streaming 的 progress bar 只差 n% 就跑完了,卻再長不出來;
一首已經知道下個旋律的歌,卻戛然而止;
網路線明明不到 50 cm 長,封包卻也跑不動了…

我還知道怎麼快速地討厭一首歌…
從前我總是挑喜歡的歌來做 demo 曲,大學專題是 Louis Armstrong 唱的 What a Wonderful World,碩士論文是理查克萊德門的夢中的婚禮(一定會有人問:為什麼前者是用英文,後者用中文?因為我碩士論文寫的程式才能處理 Unicode ,也才有中文 XD),原本拿自己喜歡的歌來 demo ,是件美好的事,我還曾經幻想過:看我 demo 的教授們會問我:為什麼挑這首歌?答案我都準備好了,不過想當然爾,沒有教授跟我一樣幼稚…

聽著自己喜歡的曲子戛然而止或發出怪聲,可能是答答聲或是跳著播放,實在令人難過,聽歌的好心情已經被膽顫心驚給取代了,無時無刻都在想:會不會下一秒就沒聲音了還是會有怪聲呢?還記得去年在某咖啡廳,聽到廣播放著 What a Wonderful World,內心的那種矛盾與驚奇,實在難以言喻…

還記得我跟代號小老鼠的同學說:我想學鋼琴,因為感覺瘋狂得彈著鋼琴,抒發自己的情緒,實在好爽唷~(我絕對不會承認是看到周杰倫的不能說的秘密 MV 才這樣想的唷!!!)

小老鼠同學:那也要你會彈啊,不然一直彈錯,好心情也變壞心情!
大貓太貴:天啊,你說得太有道理了!

還記得電影劍魚裡頭休傑克曼飾演一個世界頂級駭客,有一幕他瘋狂地敲鍵盤,然後就入侵了系統。駭客任務也是,總機先生快速地切換於螢幕、鍵盤間,然後完成一道道指示、命令。但是,門的另一貒,現實的世界,卻是如此殘忍,寫程式一點都不是電影上那樣 man …

…打一打就離題了,原本程式可以 demo 的感傷心情都沒了…唉唉…因為一些意外,星期天還得再口試一次,生日快樂好嗎?

老師啊,補課都是看錄影帶的,為什麼口試不能補錄影帶呢!!

PS. 整理電腦的桌面也是準備 demo 時另一件痛苦的事,有印象以來,我的桌面很少小於 7 排…

痛~痛~痛~我的左腳大拇指~

DSC05314small

實驗室的地板,鐵釘莫名突出 1 ~ 2 公分…下午準備去借口試預演教室時,左腳大拇指硬生生撞上去…

em-15

痛到哭爹喊娘,襪子一脫,都噴血了…

口試完,把襪子脫下來看傷口,結果裂開了,好痛…

可不可以不要再衰了

最近很衰,已經不知道該說什麼了…

一進實驗室就聞到一股塑膠燒焦的味道,不過淡淡的,想說是實驗室電器加上這幾天下雨的霉氣,沒想到一個小時後,味道越來越重!開始像條狗一樣到處聞來聞去,告非不皿,我的電腦好燙唷,機殼已經到燙到的程度,伸手一摸電源,嚇死人,裡面是住了小太陽嗎…

還好上個月無聊去買了一個電源放著,跟著文森學長把電腦拖出來,開始拔零件、清積塵,想想這台電腦也跟了我六年了,大一的時候買的,已經老態龍鍾了,伸手拔了兩個電源插頭,卡榫都應聲斷裂…

好不容易換上電源線,記憶體卻一直抓錯,825 MB 是什麼鬼數字,也修過不少電腦,怎麼會有這麼奇怪的數字,512 + 512 / 2 = 768 難道不是唯一解?橡皮擦、去漬油都用上了,好不容易才把記憶體抓到,進入 Windows ,然後網路卡就抓不到了…真想說:老天,你不要折磨我的電腦了,乾脆讓它整組壞壞去吧…

Keiko:加油好嗎?電腦:我都燒起來了,加什麼油啊~
Keiko:有沒有這麼衰啊…電腦電源比我的論文先燒起來了…

停水

下午去剪頭髮,聽阿婆說台南停水,讓我不禁緊張了一下。但我緊張的不是等下要去哪洗澡,而是今晚台南的正妹們該如何在 msn 上拒絕跟阿宅講話呢?

「嗯嗯、哈哈、去洗澡」一向都是運作很好的三部曲、三連擊,今天又該何去何從呢?

事實證明,我的擔心是多餘的,因為現在水來了 XD

不過不久前又發生衰事,我將洗碗精倒入手心中,準備洗眼鏡,轉開水龍頭,然後水沒了…總不能叫我把手心的洗碗精喝掉吧…

實驗室、廁所、飲水機旁都沒水了,好慘,在這古色古香的系館,不會要我蹲在草地上,用水窪洗手吧…

不要再跳了

昨天下午起,右眼下方的眼皮就一直跳,跳跳跳,不要再跳了,我知道妳累了,但是…

加油,好嗎?

聽說眼皮跳,可以用喜怒哀樂去算,可是到底是從左邊還是右邊開始呢?我從來沒搞清楚過,我只記得每次都從對我有利的方向開始數,您說這樣,好嗎?

7/18 今天比較衰

今天是小七小姐的生日,小七小姐,生日快樂啊!cake

不過畢竟主角不是我,所以我今天很衰,大概創了兩年來最衰的紀錄,是怎樣?老天把台股跌的點數都拿來加我衰運的點數嗎…

AM 10:00

驚醒,怎麼會睡過頭,論文還剩結論要補耶,今天就要印了,手機背叛我了…

AM 11:00

首頁不算頁碼怎麼用啊?目錄怎麼排版都會跑掉?手滑按了更新功能變數,文章參照都不見了…

PM 12:12

em-10

論文終於寫完了,可以印了!卡嗒、卡嗒,印表機一聲聲的捲紙就像廣告飲料 DaKaRa 一樣,是令人輕鬆的節奏!

印 42 頁:
EPSON NPL-N3000:豋,嗶~嗶~嗶~
Keiko:嗶什麼嗶,bbb 都不嗶嗶嗶了!
EPSON NPL-N3000:阿宅,是 JAM A 卡住啦!

印 61 頁:
EPSON NPL-N3000:豋,嗶~嗶~嗶~
EPSON NPL-N3000:阿宅,我又卡住啦,JAM C1 A 卡住啦!
Keiko:JAM C1 A 是哪啊? Strawberry Jam 我還聽過,C1 是哪啊…(摸了十分鐘)

em-2

印 67 頁:
EPSON NPL-N3000:豋,嗶~嗶~嗶~
EPSON NPL-N3000:我又卡住啦,JAM C1 A 啦!
Keiko:老兵八字輕…

em-5

印 69 頁:
EPSON NPL-N3000:豋,嗶~嗶~嗶~
EPSON NPL-N3000:卡住了,JAM C1 A …
Keiko:x,我同學只不過早我幾秒印,他就沒問題,你是在惡搞我嗎?愛普森先生…

em-17

印 71 頁:
EPSON NPL-N3000:豋,嗶~嗶~嗶~
EPSON NPL-N3000:啦啦啦,我又卡住啦,打我啊…
Keiko:我真的打下去,手超痛…

PM 15:07

em-8

哈哈,印出來啦,老天你沒辦法惡搞我了吧!
(翻閱)
……
怎麼圖一、圖九、圖十三、圖二十二都不見了,上下的字都在耶,就單單圖不見!我又不是哈利波特,現在是怎樣,消失的架構圖嗎?(參考消失的密室一集)EPSON NPL-N3000 吃的是碳粉耶,碳粉有檸檬口味嗎?我要用蠟燭加熱,圖才會浮出來嗎…


快步回實驗室,趕快再印一次,明明圖就印的出來,早上是怎麼了,我雖然不是強者我同學,印表機也不要討厭我啊…

PM 16:12

em-19

實驗室的乖巧學弟們都去 meeting 了,只好自己來把印出來的圖剪下貼上,打開口紅膠,然後它已經被用完了…用完了…用完了…看著那短短的口紅膠,被擠到最底部,我的人生好像也走到了盡頭…殘餘成塊的渣渣,掙扎努力地依附在蓋口,像極了現在的我在為這該死的口試苟延殘喘…

結語

em-1

沒關係,一切都會過去;沒關係,我會撐過去的…冬天到了,春天還會遠嗎?沒關係,我很期待口試結束,我多印了一本碩士論文,到時候,我一定要把它燒了,我要在四草大橋上大喊:燃燒吧,我的論文!燒吧,連同我的青春,燃燒吧!

Au Coin du Monde 在世界的角落 - Keren Ann

在忙碌的論文寫作中,總是需要幾首好歌來提振一下精神、渡過漫漫長夜啊~無意間發現一首法語歌:Au Coin du Monde。是法國女歌手 Keren Ann 唱的,收錄在絲慕巴黎合輯裡,這裡可以買到!

試聽一下吧!

想看 MV 的,youtube 上也有唷!來看看法國人的 MV 吧,蠻有 fu 的~

 

歌詞是在這裡找到得,還有貼心的中文翻譯 : )

因為版權問題,就不轉貼了!

我不要寫論文了啦~

好煩唷,我不想再寫論文了,明明就只剩不到一章,怎麼一點都不想動了…

你問我這世界上最遙遠的距離是什麼?
我會跟你說:是論文只剩不到一章,但我完全不想寫!

口試委員來電我吧!說好不提老木,其它隨便你了…

要不是為了台北還有對趨勢的承諾,我真想立刻躺下,一個禮拜都不動,論什麼文啊!我一定是倦勤了,三、四月那個該死的 driver ,浪費了我這麼多時間,而且還沒完成,拜託,廠商大哥,我給你錢,你不要叫我做了。

口試完後,好想消失一陣子,去柬埔寨還是哥倫比亞好了,當個毒梟應該挺不錯的,可惜我人太好不適合;去安地斯山脈縱走算了,不過我這麼瘦,搞不好上山沒多久就高山症了,我還有老爸老媽老弟要養…

生亦何哀,死亦何苦?大家不要怕,我很怕痛,當然不會去死,我只是說說而已…畢竟我是個專業說說鬼!

每次要趕東西,腦海都會浮現一些奇怪的話,我記得年初寫 proposal ,跑馬燈寫的是:造橋鋪路無屍骸,殺人放火金腰帶。我絕對沒有影射審計畫或是叫我寫計畫的人…

我已經搞不懂老天爺為什麼要在此時此刻雷聲大作了,是為我可憐還是生氣我裹足不前…

Keiko:外星人、外星人,快來綁架我吧!
外星人:快上來,你的口試委員我都找來了,等你很久了!
Keiko:…

Keiko:這種人!那種人!吶,你是哪種人?
Keiko:我是趕論文的人…

7/16 論文第一次修改

tired drink

這大概是這個月最振奮人心的消息吧~重大進度耶!論文從預計的四十頁長成五十六頁,而且還不含結論與附錄…看來我扯淡能力還不差…

在老師不眠不休的批閱下,論文大概要長到七十頁 -_- 好想哭唷,為什麼我的畢業要謀殺這麼多大樹呢?!我不想改了,保安,可以讓人這樣改了又改、改了又改嗎?

幫論文畫圖的時候,大概是我這個月最真實的存在吧…

老師的電腦有不少叫維中、惟中、為中的資料夾耶,不過沒一個寫對的…那些說我是老師愛將的傢伙,看清楚啦,老闆怎麼可能會寫錯自己愛將的名字呢!故得證 => 我不是愛將唷  kuso.vnoo.com.3.13

最近太操勞,補充維它命 B 群,但聽說另一個學長說蠻牛更有效,就跑去買了一罐喝喝看,真的是…你累了嗎?精力充沛,X力達蠻牛

記恨一下

可惡,用 PowerPoint 做的,文字方塊不見了,算了,懶得補字了~

image

今天還沒衰完…

用個牙線,也把嘴唇割破…我看,這是鋼琴線吧…

今天還沒衰完嘛,衰神止步、福神請進啊!

修電腦好好玩

7/4 (五)

這次回家幫弟弟重灌了電腦,原本想趁 Windows 更新時,去趕(桿?e04?)個論文,沒想到接連的 popup 小視窗、重開機,讓老第三不五時來叫我。此外,還不斷地被媽媽叫去幫忙看她的電腦,老媽真的很寶, Norton 掃描後說沒毒,她卻不相信,硬要我看,難道老媽妳覺得妳生的兒子不是人,是個人腦 AntiVirus 嗎? -_- 想起大學時,有位寶貝同學把一段程式碼默背給我聽,問我為什麼 compie 不過,囧,那天我升級成了人腦 compiler …

7/5 (六)

今天跑去桃園機場當同學的行李小弟,出門前因為怕遲到就沒到老媽公司幫忙修電腦,結果同學的飛機誤點四十分鐘。老媽打了三通電話來關切:

  1. 你在哪啊?還這麼早,就說不用那麼早出門,花個五分鐘來幫媽媽看個電腦不是很好嗎?
    • NK:很好啊!我只是怕遲到而已,我回去一定幫妳看!
  2. 都不來幫媽看個電腦,公司的 MIS 沒用,兒子又不來…唔
    • NK:開始裝可憐? -_-|
  3. 你看,就說不用這麼早出門啊,這麼急得去,還不是在等,啊,算了,下次回來再幫我看,再見…
    • NK:…

認識二十多年了,竟然為了部電腦在這酸我…

7/7 (日)

早上去 mobo 學長家看狗,看見 mobo 被堂姊叫去修電腦。下午去同學家,順道看了一下電腦!

 

父評:以後去上班要低調,凡是看清楚了再去做,不要讓自己的付出沒有得到回報!(NK:天啊,不過修個電腦,我爸都可以講出一番道理,我真是太佩服了!I 服了 you!)

母評:你是我生的啊~

弟評:誰叫你是我哥!

盛語:揪竟~在修與不修之間,又是該如何抉擇呢?

鄉評:你是個好人!

回家回家~

兩個月沒回家了,大概創了六年來的紀錄了…終於在上星期五,讓我抓到藉口說服自己回台北了!

台北跟台南一樣熱,可是很悶,讓人很難受,而且天色灰濛濛的,不像台南的天空是蔚藍的,讓人很舒服、很開朗,曾經一度,我懷疑自己是命中註定來這當個開朗南國少年。

這次回台北除了簽了三張把自己賣掉的約外,最大的收穫就是:終於把 W7 拿回了,這是我三年前的生日禮物,可是卻在我弟手上渡過三年的光陰,科科咧,我真是好哥哥,想必我弟下輩子一定還想找我當哥哥!

下面來看圖說故事吧~

 DSC05132

我家陽台往右邊照的,原本可以看到一座座小山,施工地原本是座公園,某年某月某天,我回台北,赫然發現已經是鋼筋水泥工地了,這算物換星移、滄海桑田嗎? -_-

DSC05146

臺北盆地恐怖的天氣,灰濛濛地、令人看了有股壓力上來,照片右邊沒有阿飄,那是我弟,大家晚上看到時不要害怕啊!

DSC05151 DSC05152

在等朋友時,順手拍的,是傳說中的台北一炷香,據目擊者指稱:過去三年的一月一日零時零分,該香會從下往上點燃,隨後朝四面八方噴出火炷,猶如龍鳳飛舞,其色或紅或黃、時而綠時而藍,光彩奪目、斑斕絢麗啊!這種現象約維持著 120 ~ 180 秒左右,每年都讓信徒們先是看的瞠目結舌、而後拍手叫好啊!對了,據說有幾年,上面還會浮字,可惜浮的不是數字好像都太大了,不然大概可以吸引到一票樂透迷吧~

p2B p7B

看到沒,兩張圖都有浮字唷!(竊自 http://www.taipei-101.com.tw/fireworks/index.htm

最近要低調…

最近開始走霉運,先是昨晚走在芒果樹下,踩到隱身的芒果滑倒、再是今天實驗室主機 181 硬碟莫名壞掉,最後是小黑輸入法掛掉,讓應用程式都會當掉!不知道接下來會是什麼?這不是七月嗎?怎麼會這樣 Orz

NK:老師,那你的 blog 圖片都有備份嗎?

Alvin:沒有耶,那些都是我修過、改過的圖,都沒有備份,我原本想要搬到我的主機上頭…

NK:大驚!

Alvin:而且我的那些文字都沒有存檔…

NK:大驚大驚!

Alvin:我以為實驗室的伺服器都會備份,我也以為這對你來說是 common sense …

NK:…

聽說進趨勢會變胖,我不貪心,一年給我十公斤就好,給三年唷!

星期二被老師關切後,讓我意識到論文得趕快生出來,天啊!這種自我繁衍的東西,我最不拿手了,想起八年前的某個生日,我發願要從 48 kg up 到 50 kg,結果呢~結果呢~我體檢單上還寫著 48 kg ,天啊!十年守成,大概就是這種心情吧!我的論文跟我的體重一樣,沒辦法一眠大一吋,也沒辦法澆水長大,我好難過唷~

直到剛剛,我聽到了一個令人振奮又感動的消息,跟我的論文和體重都有關…

聽說進趨勢可以變胖…

媽,我出運了,我找到新的論文動力了:寫論文 -> 畢業 -> 趨勢 -> 變胖!媽,妳看三個願望一次達成耶!如果上天可以再給我一次機會重來,口試長官問我:你為什麼想來趨勢?我一定會說:因為我想變胖,而且我不貪心,一年十公斤,給我三年就好!

gaygay 小中

我有一個學長,我都稱呼他:大大。每當我這麼叫他時,他都會回我:gaygay…有時候也叫我小小…他跟我有些興趣很相似:我們都看 NBA、都喜歡打籃球、也喜歡奇幻文學,不過他總是比我專業多了,他看 NBA 雜誌、他身高可以打萬能中鋒、他已經看完所有的龍槍傳奇!當我興高采烈想跟他討論魔戒時,他說那不過是佛羅多登山記,一點都不好看,哈哈,真的蠻好笑的…

我有一個學長,我都稱呼他:大大。每當我這麼叫他時,他都會叫我:gaygay 小中…他畢業後有一陣子,我不知道他去哪了,後來聽人家說他去了大陸。當他回來時,找我們一群人去南師附近吃牛奶鍋,我已經忘記店名了,但我記得當晚大家都很快樂,他跟我們分享了很多大陸有趣的事情,原本我還擔心會有點陌生感,因為我不善於跟人維繫情感。今年他又準備動身去大陸時,找了小明學長、玉琳學姐和我去吃臭臭鍋,他說:去大陸前,要把所有想吃得東西吃完才走!當天,我們還討論了很久 Lab 旅遊的事,他還一直耍賴地說要等他回來在一起去,哈哈!對了,他還請我糾眾去打一場籃球,不過我當時在忙,一點都不想弄…

最後一次跟他吃飯,是吃小虎牛排旁的不知名牛排,當天他說很想去誠品走走,我很懶,但也順了他的意,那天誠品有大鬍子澎澎頭羅素的攤位,裡頭有兩個女生在教一大群小朋友畫畫,大大跟我說他想畫一幅送他媽,他覺得這超酷的,可惜上課的時間跟他要去大陸的時間衝突了!當天還有恐龍展,看著身旁都是小孩子,就我們兩個二十來歲的大哥哥,其實蠻有趣的…

我有一個學長,但我都不叫他學長,他也不叫我學弟!印象中,他喜歡找我去做些我覺得奇怪的事,已經忘記是哪些事了,但我記得我總是答應得很勉強,不過結局似乎都蠻快樂的…

有一天,大大突然走了,學弟問我:是不是跟他很要好?我不知道該怎麼說,我只是覺得好難過,我覺得我不夠珍惜這個朋友…

周肥羊生日快樂

生日快樂!肥羊弟弟!kuso.vnoo.com.1.03

我特定把我 blog 的這一天留給你,希望你未來一年專題順利、拿著你 D80 到處趴趴走、拍出漂亮的照片給我放在 blog XD。至於不高興的事,就忘了它們吧,老爸還是很愛我們的,只是他有男人的矜持,呵呵!不像我,可是拋開男性尊嚴在跟你道賀啊,我們已經認識二十多年了,希望以後、以後的以後都還是能相互扶持啊,不管發生什麼事,至少還有你老哥在!kuso.vnoo.com.1.02

D80 就交給我啦,你老哥可是科技新"貴"啊! kuso.vnoo.com.3.03  D80 是小 case 啦~鏡頭小喀啦~防潮櫃 ok 啦~腳架用零頭買就好啦~哈哈!聽說攝影師拍照的時候,超帥的,很多 model 都會愛上咧,你要幫我找個 model 當弟妹嗎~哈kuso.vnoo.com.1.05

要快樂,好嗎?kuso.vnoo.com.1.18

Leo is the Daywalker!!

走在回實驗室的路上,想起小路學長常說起的一句話:聽起來好像幹了件大事!

哈,是啊,我好像真的幹了一件大事?!有些人面對可能改變的事,總是顯得猶豫、甚至躊躇不前。如果事情只關係到自己,我倒也無所謂,畢竟生而為人的幸福,就是不知道這個世界確切面貌,不知道即將會發生什麼事。但若是事情牽扯到第二人,我就常常“龜縮裝孬”了,我不喜歡突然地出現在人家的生活裡,即使是一下下也好,或許這也是害怕我改變人家的生活後也影響到自己。要是一切都能順其自然那有多好啊!

妳問我:怎麼一天喝這麼多飲料?

我也只能笑笑回答:嗯…

因為這是我唯一能接受、最自然地出現在妳的生活中的方法,慢慢地、輕輕地就好,我不是個熱情洋溢、喜歡跟各種人當朋友;我也不喜歡聽到:You have nothing to lost 的理論;我也不喜歡騙自己說我只是想找個朋友,因為即時表現如此,但人們內心真的是這麼單純嗎?不過我是真心地感謝跟我闡述各種理論的人,每當你們口沫橫飛之際,我都知道你們很急切地想幫助我。

最後,其實我是個開朗的獅子座,希望大家不要看完文章,覺得我很陰沉,我只是遵守著“多想一秒鐘,或許會更好”的理論啊! kuso.vnoo.com.3.03

文章寫到這裡,突然想到艾蜜莉的異想世界,漂亮的奧黛莉朵杜因為發現了一個小玩具盒,開始了她一連串“改造別人生活”的旅程:

老公外遇、整天以淚洗面的公寓管理員,獨居作畫、足不出戶的玻璃先生,細心待客、卻被老闆鴨覇欺負的雜貨店小弟,身體虛弱、神經兮兮的香煙攤太太,慘遭拋棄、繼續死纏爛打的怪叔叔,以及母親過世後、自閉沉溺哀傷的艾蜜莉老爸

哈,高中時看完這部片,覺得人生好陽光啊!哈,不過也發現自己其實不是當艾蜜莉小姐的料。我們能做的,大概只有盡量讓身邊的人快樂吧?!不過我做的不好就是了,你讓自己快樂了嗎?

PS. 希望 MSN 不要耍我,話說我把研發替代役網頁放上我 blog 的【論文寫不下去怎麼辦?!】之後,它就開始維修了…

『真誠篇』:為什麼要買相機給我弟?

我要跟大家講一個笑話,是我今天想到的!沒辦法,寫論文壓力超大的 XD

很多人:為什麼要買 Nikon D80 給你弟啊?

NK:因為這樣他就會把  Sony W7 還我啦~

哈哈,我覺得很好笑耶!

大娘大爺們,有笑賞個推吧! xD

論文寫不下去怎麼辦?!

怎麼辦?怎麼辦?工程師的敵人除了業務的嘴巴,Office 的 word 應該也算在內…kuso.vnoo.com.1.15

你累了嗎? 來看一下這個網站吧  kuso.vnoo.com.1.14

http://tinyurl.com/3mmezt               >////<

登入一下,申請會員不用錢唷!人客,看完包准你精神百倍唷! hanaDi

給看得懂的人 Orz ...

哎,不管好壞,還是紀錄一下好了,想必大家這幾天都很快樂 -_-| 只有我覺得很煩…

ScreenHunter_01 Jun. 19 17.22

ScreenHunter_02 Jun. 19 17.22

研發替代役梯次

抽完籤啦!是第二梯,9/16 ~ 10/13,希望一切順利!

哈,發現自己又耍蠢了,電話裡小姐問我:戶籍地在哪?

NK:啊,戶籍地?!

心中快速掃過:我是台北市出生的,可是我小學籍貫都寫台灣省,但我現在住台北縣耶!到底是哪一個啊?!台灣這麼小,我到底戶籍地是哪啊?!

小姐:呵呵,那你住哪裡?(小姐不會以為我是歪國人吧!)

NK:台北縣?

心中快速掃過:要加個新店市嗎?!

小姐大概很無言吧,我快變成生活白痴了 XD

不會忘記的小七遊記…

大約一千年前(-_-||),范仲淹在岳陽樓記寫下了一句“不以物喜,不以己悲”這句千古名句,對照我現在的心情實在太諷刺了…

我大概一輩子不會忘記 2008/06/18 這一天吧!故事的開始得回到台南某家 7-11 說起…

那天天氣晴朗,吃過晚餐後,天色微亮漸昏,陳忠和在與我去 7-11 的巷子路上一直對我笑,笑得我心裡發寒。

我問學長:你幹麼一直對我笑?

學長直說:沒有啊!沒有啊!你想太多了!

我一向敬重實驗室硬體組的學長個個是條漢子,我就當作是自己想太多了,沒想到,在等微波咖啡的時候,陳忠和竟然當著我的面,對小七店員說出:“小姐,可以給妳的 msn 嗎?”

什麼鬼啊!真的是什麼鬼啊!看著小七妹尷尬地傻笑,臉還紅了,我好想去隔壁老邱買把菜刀,砍了隔壁這隻我尊稱學長三年的生物…就算我要 msn ,我也會自己來,你竟然比我早開口,而且還叫對方小姐,聽起來就像台客在虧妹 -_-| 我好後悔讓你跟我來唷,我真的好後悔唷!如果老天給我一次機會重來,我一定會先把你打昏在店門口的。

眼見小七妹尷尬的把咖啡從微波爐拿出來,又快速地切換到隔壁櫃台時,陳忠和竟然又開口說了:我學弟對你有意思啊~

天啊!我除了下意識在心理咒罵:“陳忠和,你竟然還有臉開口講話!”之外,我還忍不住踢了他一腳(對不起,我真的忍不住)希望他可以住嘴!

哎,當下腦袋空白,踢完人後,抓著咖啡就往外走了(其實對店員很不好意思)…

天啊!我好恨陳忠和啊,我一想到“小姐,可以給妳的 msn 嗎?“、“我學弟對你有意思啊~“就睡不著了…

[1] 原本應該打陳忠和學長,但這樣就無法表達我的憤怒,不過至少我沒打出什麼沉終盒、沉鐘河之類的字眼…
[2] 這是題外話,我跟 DNA 學弟提到臉紅時,他竟然說出:那小七妹一定喜歡你,所以才會臉紅。天啊,我上一次會講出這種話時,是我相信牽手就會懷孕的年紀…學弟真的很純情,科科!

我有個心願

雖然二十五歲生日還沒到,但我有個心願,希望老天可以成全:

希望未來的三十天內,白天寫論文,下午寫程式,晚上喝熱牛奶!然後我順利畢業了!

謝謝台南這塊土地陪伴了我六年,也謝謝她在最後給了我一個驚喜,這世界真的是太神奇了!

PS. 我有個心願的英文是:I have a dream 嗎?

編譯 Boost 1.35.0 (Visual Studio 2005 (VC 8.0) + Windows XP)

簡介

  1. Boost 的原始碼可以在官網 http://www.boost.org 找到,或是直接到 sourceforge 下載,網址是:http://tinyurl.com/m7jqo
  2. Boost 有著自己一套的建置系統,叫做 Boost.Build [1],可用在編譯、 安裝、測試等功能上。Boost.Build 則是架構於 Boost.Jam, Boost.Jam 又是 Perforce Jam[2] 的衍生,更詳細的介紹可以在 [3] 看到。
  3. 通常在 Windows 上安裝 Boost ,最快速、簡易的方法是去 Boost Consulting 下載 installer [4],不過到今天為止, Boost 1.35.0 的 installer 都還沒 release。所以大家來學學自己編譯吧 : )
  4. Boost Getting Started on Windows [5] 是一篇官方的教學文件,有簡易的 bjam 使用方法,但無註明完整安裝的步驟,另外它也簡介了Boost Project 的 layout, simple usage 等等。
  5. Boost 身為最先進、標準的 C++ library ,它大量使用了 generic programming, metaprogramming 等技巧,使得實際上需要編譯成函式庫(.lib, .dll)的部份反而少了,根據 Boost Getting Started on Windows [5] 的說明,只有以下幾個 library 使用時,一定需要先編譯成函式庫(.lib, .dll):
    1. Boost.Filesystem
    2. Boost.IOStreams
    3. Boost.ProgramOptions
    4. Boost.Python
    5. Boost.Regex
    6. Boost.Serialization
    7. Boost.Signals
    8. Boost.Thread
    9. Boost.Wave

    還有幾個則是 optional:

    1. Boost.DateTime
    2. Boost.Graph
    3. Boost.Test

安裝步驟

  1. 下載 source code 並解壓縮。
  2. 使用 Open Visual Studio 2005 Command Prompt 進入 cmd。利用 Open Visual Studio 2005 Command Prompt 的原因有兩點:
    1. 方便呼叫 namke, cl 等 vc toolchain。
    2. 若是電腦上安裝多個編譯器,使用 Open Visual Studio 2005 Command Prompt 通常可透過環境變數,讓 bjam 使用正確的 toolchain。
  3. 取得 bjam.exe。
    1. 可以選擇到 Boost 提供的預先編譯好的 binary,可在http://tinyurl.com/2q36f 下載。
    2. 或是自行編譯,以下是編譯步驟:
      1. $> cd your_dir\boost_1_35_0\tools\jam\src
      2. $> build.bat
      3. 執行完後,boost_1_35_0\tools\jam\src\bin.ntx86 下就放著編譯完後的 bjam.exe 了!
  4. 將上一個步驟的 bjam.exe 放入 PATH 環境變數或是使用絕對路徑呼叫 bjam,並搭配以下的 options 就可開始編譯並安裝 boost:
    • $> bjam.exe --build-dir="your_dir\boost_1_35_0" --build-type=complete --toolset=msvc install
    • --build-dir: boost 解壓縮的檔案,記得 = 前後不可有空白!
    • --build-type: complete 會產生 release, debug ,以及各種設定的對應:如 multithread, debug, 等等。
    • install: 編譯完後,將 header, lib 安裝到指定目錄,預設目錄是:C:\Boost,大小約 2 G。
  5. 更多的客製化安裝,可以使用 bjam --help 查看 options。
    • bjam 是個有趣的東西,當我在 your_idr\boost_1_35_0\tools\jam\src\bin.ntx86 下執行 bjam --help 時,它跑出的訊息並不多,而切換到 your_idr\boost_1_35_0 時卻又是另一回事,它跑出豐富的 Boost 的編譯資訊,後來發現它會去讀取 Jamroot 這個檔案,這是格外要注意的一點。

Reference

  1. Boost.Build: http://www.boost.org/doc/libs/1_35_0/tools/build/v2/index.html
  2. Perforce Jam: http://www.perforce.com/jam/jam.html
  3. Install Boost: http://www.boost.org/doc/libs/1_35_0/doc/html/bbv2/installation.html
  4. Free Download on Boost Consulting: http://www.boost-consulting.com/products/free
  5. Boost Getting Started on Windows: http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html
  6. Boost 提供的 bjam binary 下載點(包含許多種平台): http://tinyurl.com/2q36f
  7. Boost Source on Sourceforge: http://tinyurl.com/m7jqo

Pipl: People Search

簡介

http://pipl.com/

      蠻有趣的一個網站,它專門用來找人的資料!可以使用:First/Last Name, City, State, Country 當關鍵字。並產生以下的結果(以 Bjarne Stroustrup 為例):

  • Quick Facts:  被查詢者快速資料。如 B.S. 是 C++ 的設計者。
  • Contact Details: 一些詳細的個人資料,如地址、電話等…
  • Profiles & Directories: 對方的個人資料,例如 B.S. 是學術中人,所以會有一些 indexing 或資料庫的個人自傳,演員的話還會幫你連結到 imdb 。
  • Publications: 著作嘛!查 paper 時,也可以來用一下?!可以對應到 cholar.google.com 不知道 IEEE, ACM 等專業期刊之後會不會列入?!
  • Web Pages: 相關的個人網頁,如果對方有上 wiki 之類的百科,也會列出來。
  • More: 上述的每一個項目都可以透過 more 連結到 google ,將結果以 google search
    呈現。

技術

     這個網站跟一般搜尋引擎有什麼不同呢?根據它網頁的說法是,一般抓網頁機器 人都只能抓到 surface web (主要是靠超連結串起的網頁)[3]。而另外有些網頁是以 online database 等非超連結方式儲存內容,稱作 deep web ,想抓這類的資料,你的機器人要能跟 online database 互動,也就是這些 online database 可能會有 search engine,你的機器人要能跟它們 talk talk ,不過望頁倒是沒有提到:它們所謂的互動是暴力互動(如:使用人名搜尋後,在進行資料萃取、整理)呢?還是有使用到一 些人名特徵的問法(如:Bjarne Stroustrup, telepone)。而這網頁的搜尋有點慢, 猜測是因為它只是個 mashup 的服務,背後都是 yahoo people、google scholar、 ZabaSearch。

用途?

     有時候看 mailing list 時,都會看到一些不錯的回答,若想知道對方更詳細的資料就可以透過這個網站,或許以後大家當老闆了,面試別人前,也可以來 pipl 一下唷!

學術?

     The Deep Web: Surfacing Hidden Value [1] 這篇文章提到 deep web 的資料量是 surface web 的 500 倍多(而且可能更具價值?!還沒看完文章,所以不知道), wiki [2] 列出了一些有趣的研究,有興趣的人,可以朝這發展?!

Reference

  1. The Deep Web: Surfacing Hidden Value: http://www.press.umich.edu/jep/07-01/bergman.html
  2. Deep Web - Widipedia: http://en.wikipedia.org/wiki/Deep_web
  3. Surface Web -Wikipedia: http://en.wikipedia.org/wiki/Surface_Web

Single/Double/Multiple Dispatch - Part 1

Design PatternGenerative ProgrammingModern C   Design Cover

     GoF 的 Design Patterns [1] 一書在 Visitor pattern 的實做描述中提到了 single/double dispatch,並針對 single dispatch 給了這樣的說明:

In single-dispatch languages, two criteria determine which operation will fulfill a request: the name of the request and the type of receiver

     若要快速地瞭解這句話,我們不妨白話點:函式的喚起是倚賴 function overriding (dynamic polymorphism) 與 overloading (static polymorphism) 的合作而完成的。以 C++ 為例,假設我們有以下的繼承架構:

hierarchy

當我們寫下這段程式碼時:

Base* ptr = new Derived1;
ptr->foo( 1 );
會被喚起的函式是 Derived1::foo( int ),而非 Base::foo( int ) ,當然更不可能是 Derived2::foo( int ),這是 function overriding (dynamic polymorphism),以 C++ 說,因為當下物件 ptr 的 vtbl 指向的型別是 Derived1 而非 Base ,這也就是 GoF 書中提到的 type of receiver 的部份。至於為何是 Derived1::foo( int ) 而不是 Derived1::foo( string ),就是倚賴 function overloading ,相當於GoF 書中提到的 name of the request

     那什麼是 double dispatch 呢?耶,有 double ,那有沒有 triple 呢?quadruple 呢?…?答案是有,而且我們還習慣把它們合在一稱為 multiple dispatch ,在另一本 OO 聖經書籍 Generative Programming [2] 中提到:多型機制可分為兩大類:single dispatch 和 multiple dispatch (又稱 multimethods):

Single dispatch corresponds to the Smalltalk idea of sending a message to an object, where the appropriate method (i.e., message implementation) is selected based on the type of the reciever.

Single dispatch introduces asymmetry with respect to the arguments because the first argument is treated specially.

A dispatch mechanism that uniformly uses all argument types for selecting the method is referred to as multiple dispatch, or mutlimethods.

     從上面的解釋中我們不難體會:常見語言(如:C++, Java, C# )的動態多型呼叫是可轉換成對等的 C 語言,轉換的虛擬碼如:

// C++
Base* ptr = new Derived1;
ptr->foo( 1 );

// C
foo_in_c( ptr, 1 );
foo_in_c( Base* ptr, int i )
{
	if ( "Base" == ptr->type_info() )
		Base::foo_in_c( i );
	else if ( "Derived1" == ptr->type_info() )
		Derived1::foo_in_c( i );
	else
		Derived2::foo_in_c( i );
}

我們可以透過 this 得到 ptr 的記憶體位置,並傳給轉換後的 foo_in_c 去決定該喚起的是哪個 method ,這種將第一個參數特別挑出來檢驗的機制就稱作 single dispatch ,反之,若是今天 foo 有 N 個參數,函式的喚起得考慮 run-time 時,每個參數的實際型別,那就是 multiple dispatch 。

     Multiple dispatch 比起 single dispatch 更具有表達與描述威力,因為同一個時間點,它同時考慮了多個 物件的 run-time 型別。而目前只有少數語言有支援這個特色:如 CLOS 。其他語言則需要透過 extension 。[7] 羅列了一些這類的整理資料,

     針對 C++ ,除了找 extension 外,還可以在經典書籍 Modern C++ Design 的第十一章,看到 Andrei 的一些討論。另外,[9] 這篇 C++ Report 的文章也提出了一個解法,[10] 則針對上面兩個方法有所簡單討論, [9] 也是從這找到的。

Reference

  1. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, 1998
  2. Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki and Ulrich W. Eisenecker, Addison Wesley, 2000
  3. Generative Programming: http://www.generative-programming.org/
  4. Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu, Addison Wesley, 2001
  5. Dynamic Dispatch - wikipedia: http://en.wikipedia.org/wiki/Single_dispatch
  6. Double Dispatch - wikipedia: http://en.wikipedia.org/wiki/Double_dispatch
  7. Multiple Dispatch - wikipedia: http://en.wikipedia.org/wiki/Multiple_dispatch
  8. Single, Double and Multiple Dispatch: http://ifacethoughts.net/2006/07/29/single-double-and-multiple-dispatch/
  9. Multiple Dispatch A New Approach using templates and RTTI: http://www.eptacom.net/pubblicazioni/pub_eng/mdisp.html
  10. Re: 備份 : Multiple Dispatch: http://phpbb.godfat.org/viewtopic.php?t=204&highlight=&sid=0ffb75220260fea3aa497c8a17fe710b

Visual Studio + Version Control

前言

    Visual Studio 是 Windows 上大家常用的 IDE ,它以專案的方式管理你的程式,因此儲存時會有一些額外的檔案出現,並以 Microsoft 自訂的格式儲存著,如果這些檔案都是檔案都是純文字也就還好,要是以 binary 存在,除了會吃掉較多 repository 空間外,也容易造成 version control 上的麻煩…


一些 Version Control 的限制

    以 CVS 為例,它對 binary 的支援較不完善 [1],例如說: cvs diff、conflct 呈現是以 plain text 為原則而設計的,它會以 new line 的方式去逐行比對、進行呈現,因此,我們往往需要使用額外的指令 [2] 去操控 CVS,而有些指令則無法用於 binary 檔上。Essential CVS [3] 一書整理了一些 CVS 無法處理的檔案: 裝置檔、符號連結、無法開啟或修改的檔案;要想處理這類檔案,我們可以用間接的方式:改將用來建立或連接它們的命令檔存入 CVS。
    而 SVN 呢?根據 SVN 的 features [4] ,雖然它號稱處理 binary 的相當有效率,不過它有著和 CVS 類似的不便:

例如 [5] 所說:

  1. Not attempt to automatically merge received changes with local changes during svn update or svn merge
  2. Not show the differences as part of svn diff
  3. Not show line-by-line attribution for svn blame

結論與 Visual Studio

    因此,我們使用 Version Control System 時,通常會盡量不讓 binary 檔存入 repository 以避免一些麻煩和不便。而為了讓 Visual Studio 能讓 Version Control System 合作無間,我們當然也希望過濾一些 binary file,常見的檔案類型與副檔名可以在 MSDN 上找到,如 VS 2005 可參考 [7]。而 VC 常見的 binary file  有: *.ncb (Intellisense Database),用在自動完成、查詢上, VC 會自動更新產生可不必加入 repository 以及 *.suo (Solution User ptions),根據 [6][8] 也可不必加入監控行列。

Reference

  1. CVS and binary files
    http://ximbiot.com/cvs/cvshome/cyclic/cvs/dev-binary.html
  2. CVS and binary files
    http://durak.org/sean/pubs/software/cvsbook/CVS-And-Binary-Files.html
  3. Essential CVS
    http://www.oreilly.com/catalog/cvs/
  4. Subversion's Features
    http://subversion.tigris.org/
  5. Subversion FAQ - How does Subversion handle binary files?
    http://subversion.tigris.org/faq.html#binary-files
  6. 請勿將某些檔案類型的檔案簽入到 Subversion 版本庫
    http://blog.miniasp.com/category/e5b088e6a188e7aea1e79086.aspx
  7. File Types and File Extensions in Visual Studio
    http://msdn2.microsoft.com/en-us/library/xhkhh4zs.aspx
  8. Introducing Source Control
    http://msdn2.microsoft.com/en-us/library/ms171339(VS.80).aspx

混亂的一週

自從買了眼罩後,晚上睡覺就輕鬆多了,不必顧慮向右側睡時,走廊光線會透入;也不必想到向左側睡,早上會被陽光亮醒!後來又買了耳塞,從此睡覺彷彿與世隔絕,但一個禮拜前,我發現只要戴著眼罩睡,那晚就會作惡夢 -_-|| 而且是那種緊張刺激的夢,夢中的我,幾乎每次都在逃難,逃離戰爭、逃離仇家追殺…此外,還有歷經身離死別的劇情,害我睡醒後,都覺得肩膀、背部酸疼,還有一種腦袋動了一晚沒休息到的感覺…

兩個禮拜前的感冒使我拉了兩天的肚子,洗澡時發現自己瘦了,而四、五個月後,又將舉行畢業口試,口試完就要當兵了。頓時間,有種內憂外患的感覺,似乎告訴我該規律運動了,想起老爸每年都會對我說,我對你只有三個期望:多吃、多睡、多運動。

希望自己這學期能每天吃三餐、睡八個小時、慢跑半小時!

什麼是 Arity

記得以前在研究 Boost.function 的實做時,遇到一個有趣的 static class member ,名叫 arity 。由於沒看過這個單字,譯典通也找不到這個字,只好先猜猜它的意思!後來透過 Google 才知道這個字的意思是:一個函式的參數個數;wiki 的解釋更加清楚:

The arity of a function or operations is the number of arguments or operands that the function takes.

後記

  1. 記得當初上 wiki 查,沒找到這個單字,沒想到今天就出現了!出現的原因是:上 wiki 看 Tcl 的資料,找到 variadic ;看 variadic ,理所當然就會看到 arity 啦!網路的更新真的是快速又有趣,熱心的人們加上搜尋引擎內部會進行長期的資料分析,讓網路彷彿就像個有機體一樣,會成長、進化!
  2. 附帶一提,Tcl 在 wiki 的資料也更新了,更完整囉!

參考

  1. Arity - wikipedia: http://en.wikipedia.org/wiki/Arity
  2. Variadic - wikipedia: http://en.wikipedia.org/wiki/Variadic
  3. Tcl - wikipedia: http://en.wikipedia.org/wiki/Tcl

感冒三天…

三天前的夜晚,因著某種不知名的因素,我感冒了…

第一天:

    症狀是喉嚨微痛、鼻涕些許,腰酸背痛甚鉅。但因為 2/26 有個進度要趕,只好硬著頭皮上工。走去實驗室的路上,一直想不到為什麼著涼了,唯一有可能的原因是:洗完澡,沒吹乾頭髮,坐在書桌前看書。難道我看個書會招來人神共憤、以致有感冒報應?!

第二天:

    前晚特地早睡加上有去看醫生,沒想到起床時腰酸背痛就好了,讓我一度懷疑醫生開的是肌肉鬆弛劑而不是感冒藥,沒想到喝了幾口水後,肚子開始叫,這一叫,讓我心揪了一下,可能感冒引起腸胃炎了,X,果然沒錯!開始拉肚子了… 但因為 2/26 有個進度要趕,只好硬著頭皮上工。不幸的事還不只在我身上發生,這天為了測試一個 Windows AVstream driver 的安裝,我的小黑系統被弄亂了,雖然可以正常工作,但很多關於 driver 的呼叫、安裝都會直接跳出藍色畫面。天啊,屋漏偏逢連夜雨、船遲又遇打頭風!重灌不是難事,備份卻很討厭;重灌虛擲光陰,進度需要時間。還好學弟提醒我有系統還原可用,也好在我極少因為貪小便宜(?!),把系統還原關掉,最後小黑回來了,Welcome back ...

    由於乖巧學弟有重大進度突破,讓我可以準時睡覺,沒想到惡夢開始:差不多每個小時要跑一次廁所,大概持續到凌晨兩點多。加上有點發燒,蓋棉被嫌熱、不蓋又會冷,又因為是假日,交誼廳一直傳來電視聲、喧鬧聲,真是內憂外患…

第三天:

肚子比較安分點了,睡了一整天…

重點:

  1. 原本是要紀錄一段難過的過去,但看完一點都不難過…
  2. 謝謝冠廷學弟體諒我感冒,情誼相挺跟我一起把 2/26 的進度弄出來。
  3. 由於我台南沒有機車,是浩鈞學弟載我去的,回程還下起大雨,學弟竟然把車上唯一一件雨衣給我穿。起初我不肯,他還一直說我是病人,讓你是應該…等的話,到最後直接撇過頭去直到我拿起雨衣…真的是很感謝學弟,我真是個只會讓學弟照顧的學長 T_T
最後,真要說什麼,希望這是最後一次在成大生病了,要畢業了,好像有點感傷…

 

網頁(有時)無法正常顯示

第一次在 Ubuntu 64 上使用 Apache 就遇到了奇怪的問題,不知道是不是自己沒搞清楚?!

症狀:

    上傳的網頁無法正常顯示,但也不會出現錯誤頁面等資訊,僅是空白頁而已。

解決方法:

  1. 檢查編碼:有時檔案的編碼會讓 apache 無法正常解析網頁,這種情形尤其會發生在,使用者使用在 Windows 上使用 frontpage 設定了跟主機端不同的編碼格式。
  2. 若有 PHP ,請檢查 php.ini 的 memory_limit 是不是太小了?! 若是太小,則可能有些 php 頁面可顯示,如僅執行 phpinfo();但有些需要大量記憶體的 php 服務就會失敗,如 blog, wiki ...

參考:

  1. 強者我學弟
  2. 強者我學長

MySQL: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)

OS: Ubuntu 6.06.1 Dapper Drake (2.6.15-51-amd64-server)
MySQL: 5.0.22

第一次安裝 MySQL 就遇到了奇怪的問題,不知道是不是自己沒搞清楚?!

症狀:

       使用 synaptic 安裝 mysql 後,呼叫 mysql_install_db 初始化後,想透過 SHELL> mysql -u root 登入,建立密碼,卻出現 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),即使想透過 mysql -u root -p ,強制輸入密碼,仍一樣出錯,只是錯誤變成 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解決方法[3]:

  1. 先關閉 mysql daemon
  2. 以 --skip-grant-tables 喚起 mysql daemon ,如:mysqld --skip-grant-tables
  3. 這時應當可透過以下指令登入:mysql -u root mysql
  4. 利用 mysql 指令修改使用者密碼。
  5. mysql> UPDATE user SET Password=PASSWORD('your_new_password') where USER='root';
    mysql> FLUSH PRIVILEGES;
  6. 關閉 mysql daemon 後,再正常啟動。
  7. 似乎之後新增 database user 也需透過這個方法。

參考資料:

  1. MySQL Manual 2.10.3. Securing the Initial MySQL Accounts http://dev.mysql.com/doc/refman/4.1/en/default-privileges.html
  2. 鳥哥的 Linux 私房菜 http://linux.vbird.org/
  3. MySQL Forum http://forums.mysql.com/read.php?11,34014,46593#msg-46593

Qt4.3.3

Qt4.3.3 已經在 2007/12/05 釋出了!似乎從 4.3.2 之後也就修改了對 Visual Studio 2005 compiler 的支援了,不需要再進行 patch 就可以編譯!連編譯都更人性化了,只需要 configure, nmake 就行了。除此之外,Trolltech 也提供了 Qt Eclipse Integration for C++ and Java plugin ,真是越來越大方了!

而 Qt4.4 也已經在開放 preview 了,據說會是 Qt4 發佈以來最引人注目的版本之一,將提供 webkit、multimedia、enhanced xml support、concurrency、IPC、new help system。其中 webkit 將提供更多開發 web 需要的元件,想必以後用 Qt 可以快速地開發小型瀏覽器、應用程式整合網頁服務了! Qt4.4 preview 可以在 http://trolltech.com/products/qt/whatsnew/qt44-preview 看到 : )

表格測試

Pin Routines

(Prefix: AVStrMiniPin)

IRQL Filter control mutex Mode Pending [1]
AVStrMiniPinCreate PASSIVE_LEVEL
AVStrMiniPinClose
AVStrMiniPinProcess PASSIVE_LEVEL, DISPATCH_LEVEL Pin-Centric Processing
AVStrMiniPinReset Pin-Centric Processing
AVStrMiniPinSetDataFormat
AVStrMiniPinSetDeviceState
AVStrMiniPinConnect
AVStrMiniPinDisconnect

使用 Blogger 的 TicTac Blue Template 時,Ordered List

問題

    使用 TicTac Blue 這個 template 會讓 li 的前置符號都變成 tictac_blue.gif 這個 icon,因此原本期望 ol + li 會出現的編號列舉階層就失去作用了!

解決方法

    若希望保留該功能的話,可以去修改範本。將 L.109 ~ L.115(見下方程式碼片段)註解掉!若只註解掉這部份,會發現右方 side bar 的 li 就出問題了,像是 tictac blue icon 會蓋到文字(標籤、Links 等都會遭殃),因此我們還得去修改範本的 L.340 的 .sidebar li,幫它加上被我們註解掉的屬性,但不要加上 margin-bottom: 3px;,否則 tictac blue icon 會跑出範圍。

/*
li {
  list-style: none;
  padding-left: 14px;
  margin-bottom: 3px;
  background: url(http://www.blogblog.com/tictac_blue/tictac_blue.gif) no-repeat 0 6px;
}
*/
.sidebar li {
  list-style: none;
  padding-left: 14px;
  background: url(http://www.blogblog.com/tictac_blue/tictac_blue.gif) no-repeat 0 5px;
}

     另外還受影響的有: ul + li 。因為原本的 li 被註解掉了, ul 下會出現的 style 圖案也就消失了,因此我們可以新增像是下面的 css selector:

ul li {
  list-style: none;
  padding-left: 23px;
  margin-bottom: 3px;
  background: url(http://www.blogblog.com/tictac_blue/tictac_blue.gif) no-repeat 0 6px;
  }

不要嘗試著直接修改 ul selector,因為那樣會連 sidebar 的部份一起更動到,這會讓 archive 部份變醜 :)

更新

  1. 2008/01/24,修改 ol + li 失去數字階層。
  2. 2008/04/05,修改 ul + li 失去 style 圖案。

推薦使用 Windows Live Writer 撰寫 Blogger (Blogspot) 文章

由於 Blogger 內建的 WYSIWYG/HTML 編輯器實在是不好用,尤其對於程式討論,有兩項缺點存在:

  1. 不支援 tab。我們無法按出 tab 的功能,即使已經先在其他工具(記事本、Word 等)編輯好內容,透過貼上複製,可以出現 tab 的縮排,但編輯器最後仍會將 tab 轉換成一個空白。
  2. 編輯既有文件時,會去重排 HTML 版面。這點對於使用 SyntaxHighlighter 這類排版模組的使用非常不便,因為重排會讓已經在 <pre></pre> 被破壞,因此每次修改文章,就得重新排一次程式碼…

在尋尋覓覓之後,發現 Windows Live Writer (WLW) 還蠻符合需求的,不過它是一個桌面軟體,無法在瀏覽器上使用(但有差嗎?),而且使用上也相當直覺,就像在使用 Wordpad 一樣,目前遇到要注意的問題是:標籤。Blogger 有提供標籤(label)的功能,可以讓你為文章做分類,也可依標籤(label)找文章,是個相當方便的功能,要使用它,只需要在文章邊即時設定就好(見下圖紅框)。

BloggerEditor

當然,WLW 也有提供標籤的功能,只不過 WLW 的標籤(tag)與你在 Blogger 上使用的標籤(label)稍有不同,若要達到 Blogger 上標籤的功能則要改用 WLW 的類別。下圖紅色框處是 WLW 讓你選擇類別的地方,點選後會跳出一個小視窗,羅列著 Blogger 現有的標籤(label),你也可以在 WLW 新增你要的標籤(label),相當方便,如此一來,就不需要重回 Blogger Editor 先設定標籤再利用 WLW 編輯,也不至於發生修改文章標籤時,HTML 排版會亂掉 : )

WLW1

Boost 安裝(Windows XP + Visual C++ 2003 + Boost 1.33.1)

Boost 官方網站:http://www.boost.org
  1. Boost 的建置系統叫做 Boost.Build,它裡頭使用了 Boost.jam(簡稱 bjam)程式作為編譯程式的工具。取得 bjam 的方法有幾種: 1) 下載完、解壓縮後,在 boost\boost_1_33_1\tools\build\jam_src\bin.ntx86 下頭就有個 bjam.exe 了。 2) 在 boost\boost_1_33_1\tools\build\jam_src 下有個 build.bat,透過這個批次檔,我們可以建立出 bjam.exe。 3) 在 sourceforge.net 中搜尋 boost,在專案下載列表中就有附上已經編譯好的 bjam.exe。
  2. 為了待會的安裝方便,可以將 bjam.exe 設定到環境變數 PATH 去或是將 bjam.exe 複製到 boostboost_1_33_1 去。
  3. 開始 --> 執行 --> 打入"cmd"。進入命令模式後,切換到 boostboost_1_33_1。
  4. 4. Boost 支援多種平台與編譯工具,因此編譯 Boost 時,我們必須告訴 bjam 該使用何種工具組(toolset),指定的方式如下:
    "-sTOOLS=your_toolset"
    這邊要注意的是, bjam 對於各種 toolset 有它的命名方式,在 "-sTOOLS=your_toolset" 指定時,要符合這個規範,例如: TOOLS Name -> Abbreviation
    vc7 -> vc vc7-stlport ->vc vc-7_1 -> vc (Visual V++ 2003) vc7_1-stlport ->vc vc-8.0 -> vc gcc -> gcc
    (完整對照可在 http://www.boost.org/more/getting_started.html 或是在 boost\boost_1_33_1\tools\build\v1\build_system.htm 看到)
  5. 為了讓 bjam 在執行時,可以正確地呼叫指定的 toolset,有兩種方式來達成: 1) 事前設定好環境變數。 2) 呼叫 bjam 時,透過參數指定:
    "-stoolset_ROOT=your_toolset_path"。
    "-stoolset_ROOT=your_toolset_path"的命名規範跟 "-sTOOLS=your_toolset"不同。各種 toolset 的 toolset_ROOT 命名可以在 boost\boost_1_33_1\tools\build\v1 下找到,方法是找檔名與 toolset 相同的 html 檔。 VC7_1 是 "-sVC71_ROOT=your_vc7_1_path"
  6. 使用 bjam 安裝 boost,預設會將 hpp 檔、lib 檔、dll 檔安裝到 C:Boost 下去,並佔去約 1.18GB 的硬碟空間。要改變安裝的目錄,可以透過 bjam 參數去設定:
    "-sPrefix=your_install_path"
  7. 行文至此,已介紹了 bjam 三個重要的參數。安裝時,就是
bjam "-sTOOLS=vc-7_1" "-sVC71_ROOT= "--prefix=your_vc7_1_path"your_install_path" ins

2006最後一天

今天是 2006 年的最後一天!寢室、實驗室都只剩我一個人,想起去年的今天,正為著專題展在做最後測試與準備,那時,無論寢室、實驗室都還有很多人在。不過也了自己個機會,想想過去一整年到底做了什麼?仔細想想,只覺庸庸碌碌罷了。時間過得很快,總是推著人們向前走,在我們身上留下痕跡,卻未在心中留下充實!呼~寄望明年能朝夢想更邁進,至少不要再做個沒良心的白吃<囧>

MiniFilter InstanceSetupCallback is not called?

一般來說,MiniFilter 的 InstanceSetupCallback 會在 filter manager 把 minifilter attache 到 volume 後呼叫。如果沒有的話,可以檢查一下 minifilter 的 INF 是否把 instance fla...