上工三個月了~

時光飛逝、歲月如梭、韶光荏苒啊~雖然晚了一天,不過離去年 10/13 報到也過了三個月了,原本想來應應景、寫個試用期心得!沒想到前天 HR 跟我說:

阿宅,醒醒吧,你記錯時間了,你要到 2/22 才過試用期!

不過,沒關係,這禮拜倒是發生了不少初體驗…

被扛霸子驚嚇

星期一大早寄出 Weekly Update,坐在我旁邊的老大馬上轉過頭問我一些實做上的細節,然後坐在老大後面的我們 team 的扛霸子馬上跳出來,

扛霸子:你這樣不行啦~有沒有考慮過 ooxx?
Keiko:我們沒有這樣的 ooxx 的 case?(不知道為什麼,莫名心虛感油然而生)
扛霸子:怎麼會沒有?
Keiko:真的沒有!
扛霸子:啊~叫你們老大出來說啦~(台語)
老大:那你們開一個 meeting 討論吧~

(以上對話為免泄露公司機密,所有對話經過修飾)

meeting、meeting、開一個 meeting 就是要寫 document 的意思,還要用英文,好加在,在公司寫 document 的好處是,真的會有人看,不會越寫越無力,而且帶我的學長很願意幫我先看過!

大師兄回來了

image image

星期一下午,也是我們 team 的小路學長就要歸建了,體貼的老大覺得小路東西(超)多,讓我去看看小路有沒有需要幫忙的地方,實在是揪甘心的,以後想找人討論東西、閒聊、假傳老師聖旨,就不必跑來跑去了,我還常常跑錯…

當晚帶完新人去天瓏參觀後,就跑回公司跟義崧、小路吃晚餐,天啊,這時候深深發現 lab 的好處,大家系出同門,有問題都很好照應,什麼蠢問題、玩笑話都可以講的很自然,每次看到學長們變成 team 不可或缺的戰力,就很感佩,希望以後也有能貢獻自己心力的地方,不要老是扯後腿。

PS. 什麼叫不可或缺的戰力呢?套句 DNA 學弟講的話,就像是:JM 跟時間在玩魔法風雲會,JM 只要說:這局我覆蓋小路卡或義崧卡,就可以獲得十回合的時間暫停!

Regular Meeting

我的老大很喜歡在 meeting 的時候,問大家問題,其中最常玩的把戲,大概就屬:光速思考吧!玩法是:

這一秒,老大:有個問題我希望大家能好好思考一下,這很重要,關心到我們 team 的未來!
下一秒,老大:好,那個 xxoo ,你說說看!

這禮拜的 meeting ,我馬上就被指名了 –,- 問題是你覺得 team 裡頭有什麼是你覺得欠缺的?

我啦里拉雜的回答了,約莫是討論風氣、習慣的欠缺!但其實我知道有一半的原因是:我是晚進的新人,座位跟大夥隔著比較遠,而且身旁都是 manager 級的人,安安靜靜的工作環境還蠻正常的。不過我還是想提出來,算是給自己和大家的一個刺激和想法,還有點是因為我一直希望工作環境可以跟以前禹鴻、mobo 、小明在的 lab 一樣,有著很好的討論風氣,大家有什麼想法,都可以去“吵”一下對方!討論是我很熱於接受的、給程式設計師的 interrupt 和 context switch XD

寫出好的 document

em-17

雖然沒有一句話是這樣說的:

寫出好的 document 帶你上天堂!

不過也沒有一句話是這樣講的:

Document 寫得好,要飯要到老!

所以,我一直很期待自己能寫出條理分明的文件或是投影片,為了準備跟扛霸子的 meeting ,孜孜矻矻寫了些 document ,還畫了 UML 的圖、補上自訂的圖形。沒想到換來不錯的效果, on board 以來沒主動跟我講過話的扛霸子,竟然主動叫了我的英文名字,還嚴守我堅持的發音(開口),讓我受寵若驚,走到曾經是禁區的扛霸子座位旁,看著他用樂高堆砌起的私人花園,更出乎意料之外的是,他竟然也用 Filco 鍵盤(茶軸),還用跟我一樣從 SCREAM Lab 走私出的 Grado Labs 耳機,然後討論完程式,還開始聊一下鍵盤、耳機等等初級敗家物。

C++ 神人

不過最出乎意料之外的,還是該算今天發生的一件事…

下午在改文件、灌新電腦的同時,想說也來偷偷收一下 gmail 吧,沒想到竟然有不認識的人回覆我 blog 的文章, ID 還是那麼地眼熟,不就是某某 C++ 神人嘛!天啊,他的 domain name 好像通訊錄上某個人,不過印象中,依稀記得神人去北京工作了,怎麼會…

趕緊拉了大師兄跑去認人,哇靠,還真的是同一個人,天啊!

娘子,快跟牛魔王出來看神人啊~

好像在做夢唷,自己也都忘了跟他說了些什麼,只記得當時處在很亢奮的狀態,還好沒在神人面前鬼扯 C++

2j9Wx1Sp0mWPLRTdYv2FZDv Lksg= 天啊,這實在是太酷了!回到座位上後,忍不住跟老大分享這個自以為是的、天大發現,沒想到老大只是冷冷地說:哈哈,這沒什麼,公司很多這種人,你以會還會遇到什麼什麼書的作者、bala bala

最後

雖然上班後發現,每個禮拜維持兩篇 blog 文的產出實在是遙不可及(對不起,因為我很懶),不過今天還是想趕緊紀錄一下這分心情…

開始瞭解小路學長當初在分享工作心得時,為何這麼說:

在公司,要變成強者,只要有心,是遲早的事,但是重要的是與人相處的 EQ。(原文找不到,是憑映像打的!)

前半段是小路學長的“大丈夫當如是也”的自信,不過真的讓我很感動,公司有這麼多厲害的人,而且各有擅場、樂於分享!好希望、好希望自己也能學得他們幾分功力來自我滿足一下,工作三個月了,現在對自己的目標是也逐漸清晰起來了,總歸來說,還是跟進大學、念研究所時一樣:

希望自己能作個有想法的人!

從小到大,總是會耳聞許多“強者我同學”的事蹟,雖然我不及他們,但還是希望自己能對感興趣的事物好好學習,理出自己一套想法,強者面前,即使真理多麼確立,能言之鑿鑿地和他們討論,那就是我能做的,如果還能讓他們思考或懷疑自己一下,哪怕只是一瞬,我也必定能有所得!

囧,流水帳變八股勵志文了…那只好來搞笑一下,自從 regular meeting 發言,希望能增加 team member 間的討論風氣,沒想到,馬上就有人丟文章、連結跟我分享,實在讓我不好意思,看來一定是我平常太矜持了,沒發現其實大家就在旁邊,等著我去開場!

為什麼 Boost 這麼大?

今天 kane 哥跟我說,Boost 編出來有 1 GB,想起來以前在醉資心也聽過有人這麼說…

那到底為什麼這麼大?

身為傳教士,當然不能回答說:

你問我!我擲交!

這種答案可是天理不容啊~啊~啊~啊~

套句聖主播說的話:揪竟~這個 boost 的背後,又有什麼不為人知的血淚因緣呢?文章的第一集,我們使用下面的指令來編譯:

bjam.exe --build-dir="your_dir\boost_1_35_0" --build-type=complete --toolset=msvc install

由於我們選擇 complete build type,所以 bjam 會產生出 12 個sublibrary,而 sublibrary 下又因為 vc 編譯組態可分為 single/multi-thread、dynamic/static link or debug/release mode、是否包含standard libary 四種不同,再檔名是否加上版本號碼的部份。算一算沒有七七四十九種,卻也大概一個 sublibrary 會有 18 種檔案。但檔案重複率很高就是了,像是下面以 Boost.DateTime 為例:

18 個檔案只有 10 種版本

下面則是 Boost.DateTime 各版本的名稱及檔案大小,單項下內字體顏色一樣者表示檔案內容一樣(用 vim diff 測試)。

Linking Type Mode Name Size
Dynamic Link Debug boost_date_time-vc80-mt-gd-1_35.dll
84.0 KB
(86,016 bytes)
boost_date_time-vc80-mt-gd-1_35.lib
26.6 KB
(27,278 bytes)
boost_date_time-vc80-mt-gd.lib
Release boost_date_time-vc80-mt-1_35.dll
48.0 KB
(49,152 bytes)
boost_date_time-vc80-mt-1_35.dll
26.4 KB
(27,120
bytes) 
boost_date_time-vc80-mt.dll
Static Link debug libboost_date_time-vc80-mt-gd-1_35.lib  
1.50 MB
(1,577,314
bytes)
libboost_date_time-vc80-mt-gd.lib
libboost_date_time-vc80-mt-sgd-1_35.lib 
1.66 MB
(1,747,582 bytes)

libboost_date_time-vc80-mt-sgd.lib
libboost_date_time-vc80-sgd-1_35.lib
1.66 MB
(1,747,486 bytes)

libboost_date_time-vc80-sgd.lib
Release libboost_date_time-vc80-mt-1_35.lib
523 KB
(535,964
bytes)
libboost_date_time-vc80-mt.lib
libboost_date_time-vc80-mt-s-1_35.lib
661 KB
(677,130
bytes)
libboost_date_time-vc80-mt-s.lib
libboost_date_time-vc80-s-1_35.lib
661 KB
(677,034
bytes)
libboost_date_time-vc80-s.lib

 

例外,若是想瞭解這些檔案的命名規則,可以參考
http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html

基本規則是這樣的:
[prefix]boost_sublibrary-name-toolset-version-options-[version-number]

  1. prefix
    lib 開頭代表 static link library ,沒有的則是 dll 和 import library
  2. sublibrary-name 
    顧名思義
  3. toolset-version
    顧名思義
  4. option
    1. mt -> multithread
    2. s  -> static link with C++ Standard Library & runtime library
    3. d  -> sublibrary 的 code 有 debug information
    4. g  -> C++ Standard Library & runtime library 都含 debug information
  5. version number 
    boost 的 version number

MiniFilter InstanceSetupCallback is not called?

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