CreateProcess()

今天下午在寫程式的時候被一個奇怪的問題給卡住,我寫的程式去呼叫 CreateProcess() 但一直跳出下面的錯誤訊息:

ScreenHunter_02 Dec. 24 19.07

原來問題出在我使用 Windows 的 CreateProcess() 這個 api 的方法錯誤,先來偷看一下 MSDN 的函式原型

BOOL WINAPI CreateProcess(
  __in_opt     LPCTSTR lpApplicationName,
  __inout_opt  LPTSTR lpCommandLine,
  __in_opt     LPSECURITY_ATTRIBUTES lpProcessAttributes,
  __in_opt     LPSECURITY_ATTRIBUTES lpThreadAttributes,
  __in         BOOL bInheritHandles,
  __in         DWORD dwCreationFlags,
  __in_opt     LPVOID lpEnvironment,
  __in_opt     LPCTSTR lpCurrentDirectory,
  __in         LPSTARTUPINFO lpStartupInfo,
  __out        LPPROCESS_INFORMATION lpProcessInformation
);

其實問題的癥結很簡單,就出在第二個參數身上,為什麼 lpCommandLine 的型別是 LPTSTR 而不是 LPCTSTR 呢?理由很簡單,因為系統會去更改這個參數,所以 MSDN 也用了 __inout_opt 來修飾這個參數,因此我們不能傳一個 read only 的記憶體區塊到這個參數來。引用一下 MSDN 的說明:

The Unicode version of this function, CreateProcessW, can modify the contents of this string. Therefore, this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). If this parameter is a constant string, the function may cause an access violation.

有趣吧?!只有 Unicode 版本的 CreateProcess 會修改這個參數,所以下面的程式碼可以 work:

wchar_t cmd[ 100 ] = L"notepad D:\\mt.txt"; 
CreateProcessW( NULL, cmd, NULL, NULL, false, 0, NULL, NULL, &si, &pi ); 
CreateProcessA( NULL, "notepad D:\\mt.txt", NULL, NULL, false, 0, NULL, NULL, &si, &pi );

但下面的程式碼是不能 work

CreateProcessW( NULL, L"notepad D:\\mt.txt", NULL, NULL, false, 0, NULL, NULL, &si, &pi );

是不是有點不 consistent 呢?

此外,眼尖的人可能會發現為什麼一個 LPTSTR (即TCHAR*) 型別可以接受一個型別為 const TCHAR array 呢?C++ standard 2.13.4 不是這樣說的嗎?

A string literal is a sequence of characters (as defined in 2.13.2) surrounded by double quotes, optionally beginning with the letter L, as in "..."or L"...".  A string literal that does not begin with L is an ordinary string literal, also referred to as a narrow string literal.  An ordinary string literal has type “array of n const char” and static storage duration (3.7), where n is the size of the string as defined below, and is initialized with the given characters. A string literal that begins with L, such as L"asdf", is a wide string literal.  A wide string literal has type “array of n const wchar_t” and has static storage duration, where n is the size of the string as defined below, and is initialized with the given characters.

怎麼 VC++ 連個 warning 都不給呢?這是因為 C++ 為了相容於 C 所做出的讓步,來看一下 4.2  Array-to-pointer conversion 的描述:

A string literal (2.13.4) that is not a wide string literal can be converted to an rvalue of type “pointer to char”; a wide string literal can be converted to an rvalue of type “pointer to wchar_t”.  In either case, the result is a pointer to the first element of the array.  This conversion is considered only when there is an explicit appropriate pointer target type, and not when there is a general need to convert from an lvalue to an rvalue.

因此,比較好的習慣是:總是用 const char/wchar_t* 去指向一塊 literal string。Scott Meyer 不就說了嗎?

Use const whenever possible

: )

#include <iostream>
#include <typeinfo>
using namespace std;

void foo( char* msg )
{
    cout << "[foo( char* msg )] " << msg << endl;
}
void foo( const char* msg )
{
    cout << "[foo( const char* msg )] " << msg << endl;
}

template<typename T>
void printType( T* x )
{
    cout << "type of T: " << typeid( T ).name() << endl;
}

void badCall()
{
    throw "Exception";
}

int main()
{
    foo( "Hello World" );
    printType( "Hello World" );

    try {
        badCall();
    }
    catch ( const char* msg ) {
        cerr << "[const char* msg] " << msg << endl;
    }
    catch ( char* msg ) {
        cerr << "[char* msg] " << msg << endl;
    }

    return 0;
}

我可沒說上面的 code 可以順利 compile 唷~

Boost.Test 的新文件

Boost 1.37.0 也出了好一陣子了,不過公司不比實驗室,總是不能隨意看有興趣的東西,指派的工作或 reading 還是得擺在第一位,更何況直屬老闆跟大頭都做我後頭和旁邊,有時還是會有點壓力!

不過最近被指派一個工作,跟 unit test 有關,趁著機會有時間可以看看新的 Boost.Test ,不過好像有點囧,怎麼 document 好像越寫越爛了…是我英文太爛嗎?還好舊電腦上還有舊版的 Boost.Test Doc !

哎呀,這個…程式設計師果然很討厭寫 document…果然古今中外都是…

下部隊了~

在 11/21 (五) 也就是上個星期五,經過三天一連串的面試轟炸後,HR 大姐終於公佈了 TrendSchool 十二個人的未來落腳處了,我很幸運地來到了小路學長所在的 team ,當然上禮拜就感受到小路學長不離不棄的照顧,包括很多瑣事和我的白痴問題,只能說 SCREAM Lab 揪甘心,在家靠父母、出外靠 lab !

面試的過程,從面試官口中拋出的問題,除了用來刺激腎上腺素外,其實也是蠻好的學習發想,雖然面試前,總是會意思意思,給自己預演一下,想想可能會被問哪些問題,但大概除了自我介紹外,大概都很難命中吧,哈哈!

身為一個研發替代役、偽軍人身份者,由於有三年役期關係,就被問了這樣的問題:

你希望三年後,你能在工作上扮演怎樣的角色呢?

老實說,當這個問題丟出來後,我心頭先是一揪,然後就很想棄械投降了,因為我一直沒有好好想過這個問題,此外腦海中還一直浮現錢多、事少、位高權重、責任輕的玩笑話 -,- 的確進公司前只想先把技術好好扎實的學習,並未思考以後想扮演的角色,只好將以往在實驗室做計畫、研究、帶專題學弟等經驗拿出來講,分析一下以自己目前的能力可能對哪些職務工作可以勝任、哪些部份需要加強等。

另外一個有趣的問題是:

如果今天你的主管指派了一個重要工作給你?你覺得為什麼主管會找上你呢?若是今天一個你覺得可以勝任的工作,卻指派給一個你覺得無法勝任的人,而不是挑選你,你覺得是為什麼?

我想這種問題是有點人格特質的考驗嗎?面試官還一直叫我不要客氣,直說自己的想法,媽啊,面試官看出我在壓抑自己的思考,太恐怖了…

另外,還有兩個問題也是很值得思考,有點想是詢問你對工作責任的反應,但對我們這種剛畢業又被成功嶺摧殘大腦的新鮮人來講,還挺難的!

今天你突然接到一個緊急電話,說你寫的程式有問題,你當下會做怎樣的反應?另外,你覺得什麼是不能做的?

最後,這個問題也很恐怖,像是在幫你作生活態度檢討!

你覺得什麼時候應該跟你的主管報告進度?而哪時候不應該報告進度呢?

哈,上面講的都是讓我難以回答或覺得值得思考的問題,其實還有很多問題沒有列出來,面試三天,還有一個心得,就是面試官都相當厲害,除了要靈機應變化,還得去掌控面試的氣氛,尤其面對新鮮人,要能引導作答、替面試引進良好的談話氛圍,如此可以得到更多想要的答案!

2008 H2 Hi-Comm

身為有很多活動的公司的一員,今天又再度參加公司辦的活動了,這次活動叫 Hi-Comm ,你知道、我知道、獨眼龍也知道,Hi-Comm 是某兩個英文單字的縮寫,不過似乎沒有人知道是哪兩個字…我以為應該是 High-level Communication 的縮寫吧,因為會議上會看到很多好高高層,包括 CEO、 CCO、RD head 以及各個事業部的 director,還好這不是成功嶺,不用背誦長官名稱…

Hi-Comm 是每季或每半年都會舉辦一次的定期會議,由公司高層們主持,在台下聽的當然就是員工啦,主要是 RD、Sales、Marketing 三個部門, CEO 會說明過去一季的營運狀況以及新的一季的目標,同時也會跟大家講些生意上的好消息,像是誰誰誰變成我的客戶等等,這次還看到了坐鎮日本的 CFO 錄了一段影片給大家,還蠻搞笑的,這裡果然是間歡樂的公司,我也第一次領略了印度式英文,真是 so funny、so confused …

公司的大型會議通常會有一個特色——很喜歡叫底下員工分組討論,然後由組長發表意見!這現象在公司三位 co-founders(Steve Chang, Jenny Chang, Eva Chen) 身上尤其常見,Steve 也就是張明正,通常會低著頭聆聽,然後發表自己的意見,意見多屬於 sales 方面的,並且會輔以一些過去的故事、Eva(陳怡樺)是個身材比例高挑的女生,RD 背景出身,哈,所以有時候講話格外親切(?!),而且也會適時得將 customer 放入談話內容中,很有自己的想法與意見,有趣的是,她講話時左腳會腳尖頂地,左手不時還會揮舞幾下,另外,她跟 Steve 一樣,是個很 high 的人…

Jenny(陳怡蓁)是公司的文化長(CCO,Chief Culture Officer),文化長做什麼呢?有人說就是辦活動的 XD 這解釋好像還蠻貼切,而且據說 Jenny 出現的場合,有獎金禮物可拿的機會就變多了 囧rz 其實從 Jenny 的談吐,感覺是個能過平凡生活就好、不喜歡行政管理的人,哈,不過誰叫她老公、妹妹這麼強咧!Jenny 的談話和 Steve、Eva 相比,顯得柔性親切,她會記得發言人的名字,並且試著以自己的話重複發言者的建議!

哈,或許是身為新人吧,私心覺得這種活動似乎還不賴,不單是因為跑出來摸魚還有薪水拿 Orz… 而是公司願意在決策時聆聽下面人的意見,雖然提出反對意見的效果會如何是不知道,但下場絕不會是壞的!從進公司的第一天開始,漂亮的人資小姐就幫我們上了半天的企業文化與願景,而後的會議中,也常聽到講者在強調願景。哈,羅蘭夫人說:

自由,自由,多少的罪惡假汝之名而行﹗(O Liberty, Liberty, how many crimes are committed in thy name! )

不知道可不可以改成:

願景,願景,多少的洗腦假汝之名而行!

哈,這當然是開玩笑的!但從上個禮拜的 Engineering Camp 後,我就常在想,公司舉辦這些活動、高層們總是喜歡提願景,這些究竟可以對台下的人造成什麼影響呢?會不會把時間讓我們這些人去寫程式還比較有生產力呢?我沒有待過其它公司,不知道是不是每間公司都會找屬下來開這種會,而我確實相信願景可以帶給人們改變、確實是會讓所作所為帶來不同。幾次的討論中,不難發現真的有些人會對於問題提出自己的意見與看法,那都是他們幾經思考反芻的,而不是臨場的伶牙俐齒,原來公司裡頭真的有人在思考,而目前看來,公司也歡迎各種意見。

再過三天就要填志願準備分發到 team 去了,一個多月的 TrendSchool 生活或許不夠真實感受一間公司的氣氛,但到了 team 就能比較真實嗎?還是只是反應了 team member 間的氣息呢?但至少應該會比在 TrendSchool 好,其實研發代替役的合約上,我們也是有試用期的,公司試用我們,我們也得試用一下公司啊~可惜的是,公司少了我,還有千千萬萬的阿宅工程師,但我卻只有成功嶺大饅頭…

一直想寫些介紹公司的文章,不過身為一個月新人,寫太好好像過度吹捧,又還沒真實經歷過,寫太糟,我就變成草莓族了…

想起兩個月前,Career 雜誌的專訪問說:選擇趨勢會不會後悔?…兩個月前我連大頭兵都不是,實在無從悔恨起啊!不過現在不同了,希望下一個月後,沒有後悔來這研發替代役…

看待公司的政策措施其實是蠻有趣的,到底我們是勞資同舟共濟呢?還是壁壘分明呢?或許有時候,應該放下一個憤青的矜持,不要以拒絕表示自己的清高和與眾不同,有點矛盾、有點複雜,在這個世事無絕對,買安泰也不會比較好的時代,或許我們應該相信人性本善,先從認同做起,才能瞭解一件事物,進而將它放入心裡,想起大四去聽亞洲微軟研究院院長沈向洋的演講,他說:他最驕傲的一件事是,他的老師在他唸博士班的時候拿到 Turing Award,而不是他找了一個得了Turing Award 的人當指導老師!認同一個地方在幫助他成長永遠是一件美好的事!耶,不過我好像沒幫 SCREAM Lab. 寫出什麼驚天地、泣鬼神的論文或作品,囧rz…

 

PS. 其實這篇文章原本是要說明年(2009),趨勢又要開始舉辦程式競賽了!!這次不是百萬程式競賽,而是騰雲駕霧程式競賽(-,- 很有趣的名字),不過顧名思義就是針對 in-the-cloud computing 命題,賽前會有訓練課程,應該下個月就會有海報文宣了,希望有興趣的學弟妹們可以抽空參加!(不負責任說法:聽說組隊都是女生的話入闈機率會增加唷!)

一個月了

哇,一個月了,當然不是交女朋友一個月了,更不是什麼分手失戀一個月…是上班一個月了!這一個月過的很快,認識了很多朋友、前輩,也學到了很多東西(雖然大部分都是討人厭的網頁 -,-),原本打算寫點東西紀念一下,無奈在這麼有意義的一天,肚子在鬧脾氣,唉啊啊,轉眼看看blog 的 pending list 也積了很多文章,真不想說,沒列上去的還更多…想講古虎爛的東西很多,時間卻很少,真是佩服那些技術底子深又能文章多產的大師們,今天的流水帳就到這,我要去床上躺平,台北的冷天氣,可是很適合睡覺的 : )

請假拔牙

沒想到上班不到一個月,就請了近半天假去看牙醫,真是始料未及,終究,又回到了要請假的年齡了!!不過擺脫惱人的智齒還真是令人愉悅啊!

去的診所是從小看到大的,一家三代都給這醫生看過,醫生的手藝很好也很親切(醫生娘沒看過,所以就不附圖了),看著這診所從小變到大,簡陋到有裝潢(雖稱不上富麗堂皇),一路看來,只能說牙醫真好賺,我要做多久才能買自己的房子啊~老爸已經再問我的規劃了 -,- 你兒子才工作三個禮拜,又不是三年…

話說回來,這兩次看診的經驗還蠻特別的,醫生跟以前不太一樣,有點給人一種趕下班的感覺,雖然手還是很巧,但拔牙前後的叮嚀與搞笑橋段已經沒了,哈,看來是我已經變成大人了,醫生懶得跟我玩小時候那一套了 Orz

想想,這醫生至少也在這開了二十年的診所,什麼樣的工作可以讓一個人做二十年?偉哉二十載,我才工作二十多天,就有幾天曾因為上班塞車而意興闌珊以致舉步維艱,竟然有人可以工作二十年、三十年、四十年,除了養家糊口之外,或許有些人一開始都有著自己的想法在,但能勿忘初衷而沒把自己賣給公司的能有多少呢?

勿忘初衷!就像我對 web programming 的初衷就是黑特(hate),即使這幾天寫作業我假裝喜歡它,但現在想想:我還真是會騙自己…

我的初衷:

I hate web programming…
I hate script languages…
I hate markup languages…
Making humans edit XML is sadistic…

勿忘初衷,讓我想起以前在實驗室寫惱人的報告文件時,寫到恨意無法宣洩時,總會拿起幾本 C++ 的書來看,讚嘆一下、膜拜一下,讓我放下心中的恨…

勿忘初衷,讓我想到某屆學長們口耳相傳的、老師的一度口頭禪:

Every thing has a purpose.

有時候 purpose 就是你的初衷,要能不忘本意設計你的軟體總是很難,因為軟體的世界,總是佈滿有趣的叉路啊~

勿忘初衷耶,幾乎每年的生日卡片上,我都會看到這句話,朋友總是在身旁提醒著我,揪甘心!雖然有時候會看成勿忘在莒 XD 但我相信,理想、堅持這類事,決不是一個人咬牙切齒就好的,就像電影霍元甲裡頭說著:

活著,從來都不是一個人的事一樣!

靠著家人、朋友的支持與幫助,我們才能走下去,理想與堅持也才有意義…我們總是在從事服務業,服務自己、家人和朋友的人生!

PS. 初衷也可以是賺錢 by 老爸 Orz...
PS2. 人老了,拔個牙都可以寫一堆有得沒得 Orz...

牙齒痛啊…

原來牙齒痛是這種感覺,天啊,痛到睡不著了,喝了點溫水似乎可以舒緩一下,但馬上又痛起來了,一直含著溫水也不是辦法!明天還要上班、還有作業的 deadline,這一定是某種程度的報應吧!

這個時間點真是尷尬又有趣,前兩天才拔掉另一顆蛀掉的智齒,早知道應該相信直覺,先拔現在在痛的這顆!

抱著死馬當活馬醫的心態,上網 google 牙痛,竟然有人說用 10% 的漱口水漱口可以得到馬上舒緩,這真是太神奇了,可是我沒有漱口水,難道要衝下去小七買嗎?現在買兩罐還打五折 -__- 更神奇的是,有人說叩齒一千次,可以治好牙痛!!好吧,我要來開始叩齒數數了,效果怎樣?白天再跟大家分享…

智齒啊智齒,你的生長,我來不及參與;你的凋零我深刻感受到了…

破相了…

開工兩個禮拜以來,差不多都是八點出頭就到公司,可以說是同梯裡頭最早到的,這當然不是因為勤勞,完全是因為怕塞車而已…

人家都說君子慎其獨,身為一個小人,閒居為不善,無所不至是我的天職。因此,我往往是人到了,放下早餐、放下書本,跑到遊樂室去玩投籃機或坐坐按摩椅,當然這種玩物喪志的生活,很快就帶來報應了…

今天投著投著,不知道怎麼回事,覺得渾身是勁,左手就出了過大的力,因此球出去的軌跡太高,打到了投籃機的鐵架,然後彈回來,好死不死正中右臉,眼鏡的鼻架就在右眼下留了一到傷痕,當然,小人也有小人的志氣,含著淚也得把一百球投完…

結果還不到五十球,隔壁部門的大姊姊來上班了,進來遊樂室倒水,害我很不好意思得趕緊跑去廁所整理一下狼狽樣,這大概就是小人見君子而後厭然吧…

我討厭搭公車上班

開始上班了,上班就要通勤… 公司的一切,在目前看來都很好,惟有工作的開始與結束,都讓我覺得很痛苦,因為要搭公車,滿滿的人,有時候在想公車會不會因此爆胎了…

身為偽台北國的一份子,每天認命早起搭公車進城是我的天職,第一天當然也不例外,等公車時,想起九年前的九月一日,那年我高一,九月一日是開學的日子,心理對於能搭公車上下學可是很高興的,因為從小對於重慶南路的書店就有股憧憬,暑假常吵著小阿姨帶弟弟和我去那打發時間,有時候,一個禮拜會去上三、四次,長大了,終於可以一個人坐車到那麼遠的地方了。

不過現在不一樣了,從成功嶺回來後,我已經是個頂天立地、成熟穩重(?)的大人了,怎麼還會對能獨自出遠門上班高興,而且如今面對我的是恐怖的安康路,安康路是安坑對外的惟二聯外道路(分別到景美、中永和),雙向只有四線道,然後還要扣掉路邊停車、地下污水施工,已經跟兩線道相去不遠,可是、可是,光是安坑住了至少十萬人,到了新店市區還有十萬人,Orz,每天上班時刻,公車的乘車品質真的是很糟,沒有座位不說、有些人喜歡擠到你身旁搶扶桿、別人背的大包包會頂著你、背背包會變得很麻煩,容易頂到人、也容易擋路、有時候東西太多就會很麻煩,此外,上下班時間,公車一定是走走停停的,人家離人的歌詞是寫著:銀色小船搖搖晃晃彎彎懸在絨絨的天上,多美啊,我卻是:沙丁魚公車搖搖晃晃彎彎塞在坑坑洞洞的路上。況且,無論哪個時間點,總是很多人,早起有國中生、晚點有上班族,要想有個座位,大概要搭 6:20 ~ 6:50 左右的公車…光是等公車,我就開始懷念過去六年住學校宿舍的從容悠閒了…

相信嗎?上班的兩個禮拜以來,我每天都在作紀錄,紀錄我每天上下車的時間:看是否可以得到某線公車在特定時段的的乘客數量;加上到公司的線有三個(根據行走路線,個別假設為短、中、遠三線),因此還得觀察三線公車前後七分鐘的互動,運氣好,先行的遠路線公車可以 cover 到慢行的短路線公車,至於怎麼預測遠程公車走後幾分鐘,會有短程公車呢?除了燒香拜佛,只能靠直覺了,總之,最後,我終於得到一個了上下班的好時間了…

所以我現在每天:
7:10 ~ 7:20 到公車站,搭乘無座位公車,約 8:10 買完早餐抵達公司座位
19:10 ~ 20:00 到公車站,搭乘有座位公車,約 20:10 到家

寫完這篇文章,我發現我瘋了,竟然做起這麼無聊的事,唉,我想起小時候跟朋友說我喜歡坐公車的感覺,他們都說我瘋了,如今,事過境遷、物換星移,我終於討厭起公車了…

但寫完這篇文章,我也發現我當初沒有投內湖、汐止的公司是對的 Orz 那邊離我家更遠,而且還要換車,有一次去 water 學姐公司報告,我竟然花了兩個小時才到那…

寫著寫著,就想訐譙一下,我記得我國中還是高中時就看過政府在實驗公車到站時間的系統,幾年過去了…連個影都沒看到,污水下水道系統也是,從我念碩士就開始挖馬路,挖到我都畢業了…更扯的是,環快的中安大橋,從我要去台南念大學就開始建了,學士、碩士我都念到了,還沒建好,是不是要等我念個博士回來,才能看到它完工啊…

回家的 fu

換穿長褲、戴上帽子、出門買牛奶,才踏出大門,一種回家的感覺油然而生,買牛奶不用再等微波、牛奶買的是家庭號,所以不會在路上就喝完了、看到影音店還可以進去租片、出門前老爸不忘提醒幫買下酒花生和統一肉燥麵,原來這就是回家的感覺,平平凡凡的!

然後,明天就要上班了!

小朋友真可愛

中午吃小火鍋時,隔壁桌坐著一對年輕夫妻外加他們的小女兒,妹妹長得很可愛,大約三、四歲吧,嘴裡吃著東西,還不忘東張西望。

媽媽:妹妹啊,要不要吃豆皮啊?吃了可以變聰明唷,而且還可以變漂亮唷!
妹妹:漂亮,馬馬要讓我變漂亮啊~
媽媽:那要不要吃啊?
妹妹:不要!
媽媽:可以變漂亮,為什麼不吃啊?
妹妹:那妳要放在我這邊(指妹妹面前的鍋),這樣~這樣我才能吃啊,不然馬馬還要弄過來~
媽媽:那我把它放到巴巴鍋子裡,巴巴再夾給妳,好不好啊?(爸爸坐在女兒旁邊,共用一鍋)
妹妹:好啊~那我就要吃
Keiko:XD

哈哈,養小孩真是一件辛苦又好玩的事,要他吃飯、做事要麼三催四請,要麼就連哄帶騙,不時還會聽到一堆搞笑、無回厘(音:ㄌㄧˊ)頭、令人噴飯的回答!而且,怎麼女生小小的就都已經知道什麼是漂亮不漂亮、美麗不美麗了?囧,我好像是到小二才開始能分辨男生、女生啊!至於怎麼分呢?找他/她玩變形金剛遊戲就知道了,肯跟我玩的就是男生,回答“神經病”、“好無聊”、“我不要的”就是女生啦 XD (我是奧托巴金剛,你是惡魔黨,進攻~ Orz ...)

PS. 不知道以後,我會掰出什麼樣的理由騙我的小孩,我到底要不要讓我女兒知道男生其實是很邪惡的呢?

PS. PS. 坊間書局不知道有沒有那種“第一次,哄小孩就上手!”、“一百個讓小孩吃飯的連哄帶騙對話輯”的書放在育兒區!小朋友區倒是可以放“一百個不可不知爸媽讓小朋友吃飯的謊言”…

PS. PS. PS. 噗哧學姐:你會不會想太多 -__-|| (學姐讓我有陰影了…)

噗哧學姐

感傷完了,來講個有趣/機車的事好了…

由於周家有個離家六年的游子要歸來,周家老爺和夫人很高興地開始裝潢要給大少爺住的房間,還打了電話要這大少爺,想想看,心目中的房間,要生做怎樣?

這大少爺不加思索地就說:我想要有 L 型的書桌,其他隨便!

老爺、夫人:遵命!

電話ㄧ掛掉,少爺馬上想到,房間已經有國二就做好的書桌了,要擺 L 型書桌進去,得打掉原本的東西,相當麻煩!而少爺冰雪聰明、乖巧懂事、善解人意,馬上又打了電話回去跟爹娘說:還是一切照舊就好,不用改了!

為何呢?其實道理很簡單,因為少爺正值青春二十四,搞不好五年後就結婚了?搞不好就搬出去住了?搞不好要改成雙人房?搞不好是二少爺奉子成婚,大少爺得騰出房間…太多的搞不好,但總之就是現在砍掉重練是不划算的…

這一切的一切,都由大少爺跟實驗室朋友在聊著,然後走在後頭的學姐,突然噗哧ㄧ生,大笑出來…

學姐:五年?會不會也太快了?還有你會不會想太多了啊,學弟?

大少爺心中的 OS:女馬白勺,我就是行情差啦…我杞人憂天…我都說了是最快,妳想怎樣…我馬上上 O2 徵一個給妳看…不然烏克蘭也是有好女孩的…

故事說到這裡,大少爺已經惱羞成怒了…

還有我不會承認我就是大少爺…

該來的總是要來…

ByeBye ...

終於,引頸企盼、千呼萬喚的畢業證書在今天(據說今天好像是辦離校的最後一天)到手了,經過了這麼多人的簽名,過程就像集點一般,奔走於校園內,好像把這兩年來逛校園該走的路都走完了,太陽公公也很機車地一直好奇地跟在我身後 -__-||

看,畢業證書 Got!!!
 test
(V 怪客是我最近的英雄!Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. Creedy, and ideas are bulletproof.)

拿了這張畢業證書後,我想再也沒有理由是讓我強迫性地留下了,以後的出現都是發自內心地想回來看看…

這個待了六年的大學、三年半的實驗室,我還記得當初想進 SCREAM Lab 的原因,老師記得要稱讚我初衷不忘啊~我也曾經迷惘過,專題是不是隨便就好?研究所是不是應該找個涼一點的老師?這樣我有很多時間可以做自己想做的事,直到我在趨勢競賽頒獎典禮上看到了小路和禹鴻。另外則是  mobo 學長,他是我高中社團的學長,雖然當時不太熟,但他也拿過趨勢競賽的名次,同時也是 Alvin 老師的研究生,所以我還一度以為進這實驗室,是不是都要先通過 trendmicro 的 QA 檢測 XD,而且還聽說 SCREAM Lab 裡頭有個叫義崧大魔頭。哈哈,那也就沒什麼好選的了,我從不期盼自己能做出偉大的研究,只希望自己能在程式撰寫中得到樂趣,這麼多高手前輩認可的實驗室,我不進來,難道我是笨蛋嗎?

在詢問老師意見前,我對老師的印象只有大一電子電路課,老師是個跳 tone 大王,投影片跳來跳去,好不混亂 -_- 但有一天,老師帶了本天下雜誌(?!)進來,然後搬了一張學生的課桌椅坐下,整堂課就是在講台灣與韓國,談到產業、留學生等問題,哈,我這人最愛不務正業,看來這老師也很愛不務正業,喜歡聊天、感召學生。其實我ㄧ直都在想,我都唸大學了,知識都寫在課本上了,不是自己念舊好了嗎?為什麼得乖乖來上課呢…所以我一向喜歡愛聊天的老師,因為那些講出口的經歷,才是課本沒有的…

專題前,為了更瞭解 SCREAM Lab ,我跑去修了老師的資料壓縮,還旁聽了一下 NN 。很快地,ㄧ學期的時間就快沒了,身旁的同學都已經找到專題指導教授,我這樣再龜下去也不是辦法,硬著頭皮跑去找老師。第一次果真是震撼教育,老師問我想做什麼?我講了很多,但都一一被婉轉化解,要嘛說這已經有了,要嘛說其他老師也有做之類的,總之一個整不想收我,囧rz 看來我是敗絮其外…最後,老師請我回去想想,一個禮拜後再去找他…

一個禮拜過後,依稀記得是星期四下午五點十五分吧!我在老師門口觀望(老師也剛好不在),湊巧小路學長經過,閒聊中知道我想請 Alvin 老師做專題指導,便很熱心地說等會要幫我推薦,還陪我等了一下老師,哈哈,那時,我才跟小路學長碰不到五次面、講不到十句話過,學長是個好人,老師則是個好騙的人,因為那次之後,我就有了新身份: SCREAM Lab. 專題生!

今天畢業了,老師給了我最後一個論文題目,那就是以後要健康快樂!健康快樂啊,SCREAM Lab 的大家,健康快樂啊,老師,謝謝你三年半來的放縱與教誨,學生很高興能成為 SCREAM Lab 的一員!

明天就要回台北了,今晚是最後一次在 Lab 熬夜啦~

今晚之後,我就不是南國少年,周 NK 啦~

宅宅要運動

taiwan army

為了迎接即將到來的四個禮拜軍旅生活,上禮拜開始了跑步的夜生活,當然一個人跑步很無趣,兩個人跑步則會喘不過氣。所以有時候也會去打打籃球,希望能找回從前黑夜籃球手的美名。

當然,事情從來沒有憨人想得那麼簡單,第一天打球時,ㄧ開始覺得背緊緊的、肩膀酸酸的,果不其然,沒過多久,下背就拉傷了…當下只想到從前看到的老人保險廣告,廣告裡,老人放下了話筒,說了:人老了,不中用了,連買個保險,都不行!天啊,我竟然感同身受,當然不是頓悟了什麼民胞物與、人飢己飢、人溺己溺、老吾老以及人之老之類的偉大哲理,而是覺得整天坐在電腦前,好像讓自己的身體虛弱了,有種“人老了,不中用了,連打個球,都不行”的感慨!這裡拉傷、那裡拐到…難道我這二十四歲的青春靈魂其實寄居在四十二歲的中年肉體上嗎…

走在回宿舍的路上,想著改善之道,然後想到我的研究所老師 Alvin(為什麼要用研究所老師而不用 Alvin 老師呢?因為講研究所老師聽起來好像已經畢業很久了,有種滄傷感 XD),好像去年吧,也曾經為了背傷肩酸所苦,嚴重到要打類固醇,更慘的是,還要趕 proposal 、改論文。天啊,殷鑑不遠矣… 做人不能鐵齒,運動當及時,宅宅啊,走出戶外,世界是美好的,程式不會因為多寫ㄧ、兩個小時就可以動了…

友藏 

:我聽你在馬後炮!

 

三個月前一直有跑步的習慣,記得當時已經能一口氣跑六圈(約 2400 m),雖然一點都不傲人,不過我還是很得意,科科。後來因為開始喝牛奶、趕論文、灌蠻牛後就停跑了,就這樣到了口試結束,回台北量了體重,發現自己發胖了,胖了有五公斤左右!雖然很爽,不過還是很困惑到底是因為喝牛奶胖了呢?還是因為跑步,我已經擁有運動員般的體質,所以ㄧ停止運動就胖了?科科,有胖就好,目標六十六,衝~

Bat-Buddy 

:知道嗎?不運動,連 Batman 也會變 Fatman 喔!

簡單利用 Visual Studio 2005 產生 C/C++ 的 asm

  1. 開啟專案屬性(Project Properities)
    step 1
  2. 選擇 C/C++ -> Output Files -> Assembler Output
    step 2
  3. Output 的類型有四種:  step 3
    • Assembly-Only Listing。產生一個 *.asm 檔。檔案中只有組語,並有 ; Line 2 這類註解告訴我們,下列組語是從那一行轉換出來的。Assembly-Only Listing (FA)
    • Asssembly, Machine Code and Source (/FAcs) 。產生一個 *.cod (C/C++ code listing) 檔案,並有 ; 3 : int c = a + b; 這類註解,標示了原始碼,所以比較適合用在與原始碼的比較。另外也輸出 machine code ,就是那些四個十六進位一組的數字。Assembly, Machine Code and Source (FAcs)
    • Assembly with Machine Code。一樣是 *.cod 的輸出,註解沒有原始碼的嵌入,但有 machine code 。Assembly With Machine Code (FAc)
    • Aseembly with Source Code。因為沒有 machine code 的輸出需求,可以產生 *.asm 檔,版面更精簡了,也蠻適合用在與逐行研究 C/C++ -> assembly code 的比較。Assembly With Source Code (FAs)

P.S. 明眼人也知道這篇是騙文章數的…

利用 WLW plugin: Syntax Highlighter 貼程式碼

前言

Syntax Hightlighter 是個 Windows Live Writer (WLW) 外掛程式,可以幫助我們在 blog 上貼上程式碼,這是個相當感人的。為什麼呢?因為打從網際網路普及後,個人首頁(烘培基時代)-> 留言板時代 -> 論壇時代 -> Web 2.0 ,管他什麼時代,想在網頁上呈現好看的程式碼一直都是件麻煩的事,以 C/C++ 為例,有討厭的 <, >, 要處理、縮排也是麻煩、更別說要有五顏六色的 syntax highlight。

古來,正房會對二奶說:女人何苦為難女人!我剛開始寫 blog 時,也很想說:程式設計師何苦為難程式設計師!難道寫出 WYSIWYG 的程式設計師都沒有自己的網頁嗎?難道他們都不在自己網頁貼程式碼嗎?怎麼一直沒有一個好一點的編輯工具呢…

不過從來訐譙的人也不會是解決問題的人…所以好多年過去了,終於有好心人做了一些外掛程式來解決我們的需求。Syntax Highlighter 就是一套這樣的軟體,而且還與 WLW 整合在一起,提供了便利的編輯介面。

安裝

  1. Syntax Highlighter for Windows Live Writer 可在 http://www.codeplex.com/Highlight4Writer 下載。
  2. 下載後,是個壓縮檔,但解壓縮後竟然也沒有安裝檔,竟然是一堆 .dll, .xml 的檔案。
    unzip 
    不要慌,根據程式設計師的第八覺,這種程式的安裝方法:通常是把所有檔案、資料夾複製到主程式所在的資料夾下的某某資料夾下。
  3. 沒錯,請找出您 Windows Live Writer 安裝的目錄,並將步驟 2 的檔案、資料夾複製到 plugin 下。
    例如:我的 WLW 主目錄是 C:\Program Files\Windows Live\Writer。
    那就請將檔案都複製到 C:\Program Files\Windows Live\Writer\Plugins 下吧。
  4. 重開 WLW,會在右方的 toolbar 發現出現了插入 Syntax highlighted t... 的功能(如下圖紅框處)。
    syntax highter for WLW 
  5. 點下後,會出現一個編輯視窗,就可以貼上複製/打入程式碼了。下面是一個 C++ Hello World 的範例。syntax highter for WLW Test editor
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	cout << "Hello World\n" << endl;
    	return 0;
    }

More

如果我切換到 HTML 模式去看一下,可以發現程式碼片段變成了:
<pre>#include &lt;iostream&gt;
<span style="color: #0000ff">using</span> <span style="color: #0000ff">namespace</span> std;

<span style="color: #0000ff">int</span> main()
{
	cout &lt;&lt; &quot;<span style="color: #8b0000">Hello World\n</span>&quot; &lt;&lt; endl;
	<span style="color: #0000ff">return</span> 0;
}</pre>

這個外掛程式是透過 inlined css 去標色、排版,跟以往見過的幾個外掛不太一樣,之前見過的外掛程式通常是透過修改 blog template 去 include 別人寫好的 css ,而且會有一些便利的小工具,例如:我目前用的 SyntaxHighlighter ,他是用 JavaScript, CSS, flash 做的,同樣的 hello world 程式碼的版面會豐富點,有複製按鈕可按、相鄰行會變色等:
#include <iostream>
using namespace std;

int main()
{
	cout << "Hello World\n" << endl;
	return 0;
}

不過這套軟體似乎還沒有好心人幫忙與 WLW 進行整合,因此得手動切換到 HTML 模式,與 tag 進行肉搏戰、還要注意 <, > 這類 tag 的轉換 >< 而且由於是 run time 的去 link 外部 css 等程式,因此在 WLW 是無法預覽 syntax highligh 後的效果。

8/22(五) 回台北

ticket2

又回台北了,哈,不過這次跟以往一樣不會待太久,下星期二就回台南了,要準備送 181 上路,順便砍砍大樹、印印論文、悲情準備離校,不知道會花個幾天…還好英明神武的系主任今天出差,一時拿不到論文合格的系所主管簽章,不然或許就要 29 號才回台南,現在待在台南總是要有個好藉口給爸媽。

為了體驗這最後一次異鄉遊子外出唸書,隻身回家的複雜情緒,老天爺還很幫忙地在昨晚安排我失眠,深夜裡,好像下了兩、三場大雨,一個人住了一年的日子終於要結束了,坐在床上、趴在桌上就是無法入眠、去 lab 的路又被大雨阻隔…這時候做什麼都不對…有點慘…

咕嚕咕嚕是魚缸一聲聲的水聲,平時聽不太見,或許是這麼靜的夜晚,一切都聽得很清楚,突然想到 Alvin 老師說過:做人要常常對自己的心說話。此時此刻此景,突然想跟自己的心講講話,卻發現他不願意跟我裝熟…我想也是,自從高中畢業後,心中總是被一些過去的事盤據的,忘了生活的喜悅與美好,逐漸讓自己遲鈍起來了,大三那年突然發現自己寫不太出東西了,已經分不清楚是因為生活太過平淡、缺乏激情呢?還是已經失去對生活的敏感…有點像是行屍走肉…這麼安靜的夜晚、這麼美麗的夜晚、我卻不到自己的聲音…有點悲哀…

想起大前天老師找我去聊天,老師劈頭就問:怎樣?這些日子有什麼感想?有沒有話對我說?還快樂嗎?
這麼突如其來的問題著實讓我嚇了一跳,話術有云:講話如丟球。我不擅於丟球,也不善於接球,哪怕這只是顆軟弱直球(?!)。
但我要說,老師,我真的很真誠的要說:這三年半,我過得很快樂。您給了我很多時間讓我去嘗試、摸索我感興趣的東西、讓我在 Software Meeting 上報告這些這麼不學術的東西、而這些東西,我知道別的老師往往是不重視、甚至嗤之以鼻的。一入侯門深似海,其實選老師、進實驗室何嘗不是呢?但我很慶幸,過去三年半,我從沒有抱著“頭已經洗一半了,怎麼可以不洗下去”的心態去渡過在 SCREAM Lab 的每一天。

SLIM 草創初期的 Meeting 現在回想起來,還是讓人莞爾而笑。因為我們總是有很多東西可以 argue 、發想一些有的沒的、提出各自的看法,然後互相“攻訐”一下,那段時間是美好的,不過老師說得對,實驗室人總是來來去去的,送走禹鴻、mobo,今年就要送走我了,我的 Software Meeting 已經結束了 >< It's over…

老師啊,我不會把你從 msn 刪除的,還有,我想我會常回台南的,我是真的喜歡天氣好的地方。

渭城朝雨浥清塵,客舍青青柳色新,
勸君更盡一杯酒,西出陽關無故人。

謝謝老師用王維的詩送我啊~

一路上,統聯下了許多交流道,令人出乎意料地看見了許多間 7-11,連車上播放的日本電影都有,從來沒注意過,原來身邊有這麼多 7-11 ,我都忘了,也應該找個時間去跟小七的朋友說再見…

好文分享~研究生症候群

轉錄的,三年前當專題生看過一次,現在要畢業了當然還要再看一次,而且還要看一下自己有過哪些症狀!切身之痛、嗚呼哀哉~

藍字是感覺自己曾經有過的症狀…原來還不少…

研究生發病期

潛伏期:不定。
傳染性:無。
感染人數:全台每年約十至十二萬人。並無性別年紀的區分,只要身份為研究生,通常都會罹病,極少倖免。

關於本症候群,約莫能粗分為三大時期。

初期:

通常發生於準備開始寫論文時,有以下幾種指標型症狀。恭喜!你已經進入本症候群的初期狀況!

症狀:
(1) 覺得自己挑的論文題目簡直棒呆了,這麼棒的題目,怎麼沒人發現!?天助我也!
(2) 覺得自己天縱英才,就算沒能寫出絕世論文,也將撇出矚目佳作。
(3) 作研究回顧時,覺得他人的研究成果不過爾爾,狠狠地痛批別人一頓,快意快意。
(4) 能夠草擬出自認為天衣無縫的研究計畫以及進度表,並能與他人侃侃而談,意氣風發。

中期:

這一期通常發生於論文開始動筆之後,發病時間很長,還能細分為三個階段,各有不同,茲說明如下:

第一階段:通常發生在寫大綱後動筆前。

症狀:
(1) 開始瞭解,連寫大綱都不是件容易的事情。
(2) 發現資料居然出奇的難找,開始懷疑有寫出絕世論文的可能,而且懂得為何別人 都沒挑這個題目的原因。
(3) 發現懂的東西實在太少,終於瞭解「書到用時方恨少」的道理,但是已經徹底來不及了。
(4) 根本不敢動筆,「準備不週」的恐懼隨時縈繞心頭,怎麼寫都覺得不對勁,怎麼看都覺得不爽快。
(5) 容易累,容易疲憊,容易想睡。開始害怕老闆的電話與 mail,覺得圖書館是個麻煩的地方。

第二階段:通常發生在實際動筆之後。

症狀:
(1) 對任何跟論文相關的東西絲毫沒有興趣,但是對於論文以外的東西非常感興趣,通常會附帶學會第二專長,像是:室內布置、煮咖啡、打毛線、美容、占星、打PSII、唱KTV、學會怎麼使用Lovema。
(2) 開始思考一些從來不會思考的問題,像是:「我活著是要幹嘛的?」、「這篇論文的價值在哪裡?」、「我這樣寫會不會被告?」
(3) 開始制訂玩耍計畫,小至下午茶,大至海外旅遊,通通有興趣。
(4) 對於「計畫跟不上變化」這句話,不僅認同,簡直是實地體驗。
(5) 弄不清晝夜晨昏,醒來通常已經是午後,甚至天黑,作息混亂到根本不知道該吃早餐還是午餐。
(6) 學會快速轉台,甚至能清楚的講出每天電視的節目單。
(7) 體態有嚴重的改變,可能狂肥,可能狂瘦。
(8) 逃避所有Meeting,能躲老闆躲多久,就躲多久。

第三階段:通常發生在論文繳交期限前一個月。

症狀:
(1) 完全沒退路的狀況下,只好硬著頭皮上,對於能寫出啥子東西,完全沒信心,瞭解「不忍卒睹」的真意。
(2) 面對胡言亂語的內容,開始努力說服自己抄襲。
(3) 挑戰身體極限的活動逐步出現,像是:「連續30小時不睡覺!」、「挑戰一天打一萬五千字」。
(4) 發現跟老闆Meeting是天下最恐怖的事情,老闆不用作啥,看著初稿不說話就夠嚇人了。
(5) 開始使用Word裡,「邊界」、「行距」跟「字型大小」的功能,努力擴大篇幅。
(6) 抗壓性極低,任何風吹草動都令人抓狂。
(7) 覺得「能寫完論文」就是一件很了不起的事情了,別想說要寫得多好, 寫完就好。
(8) 根本不知道外頭天氣為何,伴著你的就是鍵盤跟螢幕。
(9) 覺得看這本論文的人,全世界加一加大概不會超過五個。
(10) 避所有Meeting,能躲老闆躲多久,就躲多久。
(11) 站在鏡子前,會驚訝的發現:有個邋遢的野人在鏡子裡頭瞪著妳看。
(12) 非常希望一覺醒來,發現自己還沒念研究所。
(13) 本來想感謝一堆人的,但是已經沒氣力寫謝辭了。

末期:

這一期會發生在口試本交出後,等待口試前。
症狀:
(1) 對於交出的東西害怕不已,用便利貼貼住自己覺得有問題的地方,竟然幾乎佈滿整面。
(2) 根本不知道口試會發生啥子事情,驚愕不已,鎮日睡不好。
(3) 忽然間意識到房間竟然亂到不行,非常懷疑自己怎麼能在這樣的地方活。
(4) 拜拜的時間變多,希望口試時遇到好人。
(5) 開始思考未來該怎麼辦?懷疑自己根本不適合學術圈,並嘗試詢問雞排店以及飲料吧的加盟辦法。
(6) 開始煩惱該花多少錢印論文。
(7) 對於自己曾經堅持把一部無聊的連續劇從頭看到完,驚訝不已。
(8) 忽然間想起另一半的存在,不過,另一半可能已經不見了。
(9) 覺得很對不起「樹木」。

病癒:

口試通過,拿到畢業證書後的後遺症,延續期間不定。
症狀:
(1) 有一大段時間無法閱讀「文字」。
(2) 嚴重退化到無法想像的地步,可能是國中,可能是小學,可能是奶娃。
(3) 開始動手整理房間,可能還會找到寫論文時一直找不到的資料,但是通通來不及了。
(4) 一段時間的狂玩,狂吃,狂睡,除了當豬之外,沒別的志願。
(5) 煩惱畢業即失業的問題。

圖片加密測試

加密圖片的方式跟加密文字一樣,只不過進了加密網頁後是將貼圖片的 html tag 進行加密。

例如我有一張圖,它位於http://Keiko.Zhou.googlepages.com/calado.gif,那麼它的 HTML tag 是<img src="http://Keiko.Zhou.googlepages.com/calado.gif" />,那我就將這串 tag 拿去加密。

下面是個 demo ,密碼是:Test

Show encrypted text

如何張貼加密文章

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)
    這個參考資料還提供一個小工具簡化一下步驟。

MiniFilter InstanceSetupCallback is not called?

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