星期六, 7月 04, 2009

Thinking in Java

http://www.mindview.net/Books/TIJ/

蠻早以前就聽過 Bruce Eckel 和他 Thinking in XXXX 系列書籍。Bruce 是少數在寫稿的過程當中,願意把草稿開放出來讓人下載的無私作者,並藉此和讀者們互動,瞭解讀者們的意見。

過去一直不明白為啥這系列書籍這麼受到大家推崇,總以為有了『The C++ Programming Language』、『C++ Primer』就不需要再多花時間去看其他的 C++ 書籍。直到最近拿 Thinking in Java 來讀,光看第一章就讓我讚嘆不已,邊讀邊想,點頭如搗蒜。

有這麼神奇嗎?嗯,這樣說吧,『The C++ Programming Language』以及『C++ Primer』比較像是嚴謹的學院派大師講課,三言兩語把很多重要的觀念講得很清楚。

Thinking 系列沒啥學院風格,反而像是一個身經百戰的老兵現身說法,把軟體開發過程中常遇到的種種問題提出來討論,然後引入 OOP 的概念,說明物件導向如何幫助我們處理這些問題。

很多人學 C++ 不明究理,class 切來切去,繼承來繼承去,搞到最後自己也不知道在做什麼,最後得出一個結論:『C++ 很討厭,太複雜了,不如直接用 C 來的單純』。如果是這樣,來讀 Thinking 系列吧,作者會很巧妙的告訴你為何會有這些複雜的東西,而這些東西又怎麼來幫我們解決程式開發上的問題。


All programming languages provide abstractions. It can be argued that the complexity of the problems you’re able to solve is directly related to the kind and quality of abstraction.

The programmer must establish the association between the machine model (in the “solution space,” which is the place where you’re modeling that problem, such as a computer) and the model of the problem that is actually being solved (in the “problem space,” which is the place where the problem exists).

Thus, OOP allows you to describe the problem in terms of the problem, rather than in terms of the computer where the solution will run. There’s still a connection back to the computer: each object looks quite a bit like a little computer—it has a state, and it has operations that you can ask it to perform.


不使用 Java 的人可以直接看 Thinking in C++。

倒是 Java 系列因為會拿來跟 C++ 作比較,所以會看到很多 Java 跟 C++ 在設計上的不同處。雖然這是老掉牙的比較了,但透過 Bruce 來講這些差異,絕對跟一般我們會看到的大眾觀點,有很顯著的不同,而且是會讓人豁然開朗的那一種。

星期五, 7月 03, 2009

Code Monkey

Code Monkey 指的是『靠寫程式維生的人』,大陸翻譯成『代碼民工』(也許應該叫『編程民工』才比較對)。
光看解釋聽起來還好,大家不都是靠某些技能維生嗎?但可不要隨便用來形容別人,因為這是略帶侮辱意涵的用語。



對某些程式員來說,每天的工作就是『磨』出程式碼來,而不會去分析既有的程式,思考更深一層的程式架構與設計方面的問題。就好比把石磨跟黃豆丟給一隻猴子,再怎麼樣猴子也能磨出些什麼東西來。但猴子卻不知道牠到底在做什麼,只知道牠這樣攪和幾下就可以有香蕉吃。

如果一個程式員只是每天在鍵盤上敲敲打打,弄出些程式碼來,那找一隻猴子來也能作差不多的事。

仔細想想就覺得發明這個名詞的人還蠻毒舌的。



另外一類是屬於自我貶抑的用法。例如在某些龐大組織架構下,底層的工程師離決策層太遠,沒有說話的份量,只能完全聽從指示工作。在這樣的組織裡,有如養了一批會寫程式的猴子。所以有人會這樣說:『別問我為什麼要這樣那樣,我不過是隻 code monkey』。

Code monkey 也可以用來形容自己的才能被嚴重低估。有些程式員每天得負責『噴』出大量的程式碼來,而寫的都是些簡單、固定而且毫無趣味的程式。『我的工作連隻猴子也能作』—他們覺得作這樣的工作真是太委屈自己了。

Are you a code monkey? Don't be a code monkey.



Code Monkey get up get coffee
Code Monkey go to job
Code Monkey have boring meeting with boring manager Rob
Rob say Code Monkey very diligent
but his output stink
his code not functional or elegant
what do Code Monkey think
Code Monkey think maybe manager want to write goddamn login page himself
Code Monkey not say it out loud
Code Monkey not crazy just proud

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
with big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you

Code Monkey hang around at front desk
tell you sweater look nice
Code Monkey offer buy you soda
bring you cup bring you ice
you say no thank you for the soda cause
soda make you fat
anyway you busy with the telephone
no time for chat

Code Monkey have long walk back to cubicle
he sit down pretend to work
Code Monkey not thinking so straight
Code Monkey not feeling so great

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
with big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you a lot

Code Monkey have every reason
to get out this place
Code Monkey just keep on working
to see your soft pretty face
Much rather wake up eat a coffee cake
Take bath, take nap
This job fulfilling in creative way
such a load of crap
Code Monkey think someday he have everything even pretty girl like you
Code Monkey just waiting for now
Code Monkey say someday, somehow

Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
with big warm fuzzy secret heart
Code Monkey like you
Code Monkey like you

星期三, 7月 01, 2009

2009 再回草嶺

記得第一次走草嶺古道是 2002 年初夏,在一個心血來潮的早晨隨興前往,而後就愛上這條依山傍海的古道,並期許自己可以每年都走一次草嶺,看風景之餘順便試驗自己的體能狀況。

隔年跟大學同學再走一次,但 2004 年就開了天窗,最近一次走草嶺是 2005 年的事(參閱:再回草嶺),距今整整已經四年。


草嶺古道上的虎字碑

2005 年那次是去美國出差(參閱:[美國出差記] 老油條)之前,大概是那陣子加班加到悶的發慌,所以趁假日走了一趟。當時應該怎麼也想不到,再次舊地重遊會等上四年,更想不到是這樣的時機。
(『老油條』這篇文章總會讓我想到小華。最近 NV 有人趁著 Computex 來公司跟我們開會,無意間提到了小華,才知道他還在 NV 工作。他應該過的不錯吧?希望他能過的不錯。)

通常大家走草嶺,都是從貢寮出發,慢慢走往大里。大概是我天生反骨,總是從大里開始倒著走。大里到啞口這段路途比較陡,走起來會比較辛苦,但只要看到了虎字碑,往後就是坡度平緩的下坡路段,讓人有種漸入佳境的感覺。



過了跌死馬橋的出口,大約是在貢寮跟福隆的中點,以前我都會向北走往貢寮。這次因為中午只吃餅乾,想說往南到福隆吃個便當慰勞一下自己(貢寮站很荒涼)。結果到了福隆站,一買完票就被售票人員催促著,火車要開了,趕快上車。上了火車才想起要吃便當這回事,結果車廂裡一堆人手捧福隆便當吃的津津有味,我看的很不是滋味。

『不吃便當我來福隆幹嘛?』真是傻眼。

星期二, 6月 30, 2009

換檔時刻—迎向下階段的挑戰

今天是我在訊連科技的最後一個上班日。經過一段時日的休息,我將於下個月二十日前往趨勢科技服務。

『為什麼?』

我離職的消息讓不少人感到驚訝,接踵而來的,是大家一連串的疑問。

是的,這聽起來非常的不合理,而且也十分可惜。但這並不是一個匆促的決定,每一個大家提出的問題,我都在腦海中想過千百回。

最不太可能發生的事情,還是有發生的時候。對我而言,這個選項一直都存在著,也從沒忘過。

以前曾有個台大醫科的同學說過:『當你聯考分數超過台大醫科最低錄取標準的時候,其實你能填的志願只有一個』。

有時候人會因為選擇稀少而感到無奈。然而實際上選擇往往都在,只是人會受到一些內在、外在的主客觀因素影響,刻意或是不自覺的去忽略一些選項。在選擇少,存在風險而又無法預知未來的情況下,只能繼續維持現狀,以不變應萬變。

當然這不是說,選擇離開就一定好。職場是一個不斷累積的過程,我也曾經執著於理想而努力不懈。留與不留,都好、也都不好,重要的是想清楚自己要的是什麼。審慎思考的決策,好過不作為的維持現狀。

而我,最後選擇聆聽自己內心深處的聲音。

『一個決定既然作了,就無所謂對錯,重點是接下來該去做什麼,好讓這個決定變的值得』。

星期一, 6月 29, 2009

e-Learning 2.0 PowerKnowledge

原來我是很宅的阿宅。XD

相關文章:阿宅工程師也能懂的行銷



【e-Learning 2.0實務】-越是開放越有商機
2009-06-30 工商時報 【黃進烽】

 對於訊連科技這樣一個80%的員工都是R&D人員的公司來說,如何集合集體智慧,並將這些智慧結晶透過有效的傳播管道,傳遞給每個需要的員工,進一步開花結果,可說是企業面對競爭的基本工具之一。一向在管理上注重「變」、「新」的訊連,最近在web2.0的學習革命中,找到了新的工具,這個工具帶給他們累積知識一個新的視野,也讓他們找到了新的商品開發的機會。

 訊連於2008年申請經濟部工業局計畫的研發補助,並透過資策會數位教育研究所的研究分享,在訊連原本的數位學習平台上開發了一個名為「e-Learning 2.0 PowerKnowledge」的知識分享平台,並於2009年4月導入全公司。在這個平台上,所有員工都可以自由自在地上傳、下載他們所需要的檔案。

 簡單說,這個平台像一個大資料庫,員工可以將自己想要分享的知識內容放在上面並設定為學習書籤(bookmark),別的同事可以將這個書籤列為自己的收藏,當真的需要這個知識內容時,再開啟書籤的檔案或網站連結去閱讀,如果有意見或心得,也可以直接在上面做回應。在原有組織架構上,如果主管看到適合自己部門的文章,也可以將這個書籤寄給自己單位的同仁一起觀賞。或是,如果在組織中有特別喜歡哪位同事所分享的內容,也可以訂閱這位同事,便隨時可以看到這位聯絡人在平台上分享的一些新的作品或評論。

 負責規劃並推動這項任務的訊連eHRD處副總經理吳家寧說,Web 2.0最獨特的地方就是具有互動、討論、分類、分享及推薦等應用功能。當我們看到好的文章、課程或資料時,會想要轉寄給好朋友分享,結果大家e-mail來e-mail去,不僅造成系統的負荷,也常常造成大家浪費時間在找尋過去的資料。現在有了這個平台,可以自由自在地在上面瀏覽,也讓大家搜尋起來更方便。

 訊連這個平台上線不到2個月,累積4千個以上書籤。訊連已經有超過7成員工透過這個平台分享書籤,有超過8成以上的員工有收藏其他人所分享的書籤,這比當初推動時預期有6成以上員工能使用這個平台分享或收藏書籤多出許多。目前在這個平台上最吸引人的話題是最夯的「藍光」,被收藏最多的一篇文章是「藍光產業與成本結構」,有超過1百位同事收藏。

 吳家寧說,從目前訊連實施web2.0學習平台的經驗發現,或許是因為同儕壓力,所以員工們放在平台上的資料,不管是專業的,或行銷相關議題,或是生活情趣如旅遊飲食等,內容品質豐富,且品質在水準以上。雖然這些內容的嚴謹程度不一定像由專人規劃製作的數位學習課程,可是,web2.0平台的自由、分享、擴散快速等特性,更能激發出學習者主動學習的動機與興趣。例如有一篇名為「阿宅工程師也能懂的行銷」,由很宅的工程師自己撰寫,自我剖析阿宅一族該怎樣行銷,結果吸引不少同事訂閱,讓同事們了解公司原來藏龍臥虎,擁有不少全方位人才是推動知識分享意想不到的收穫

 這樣開放的平台帶給員工相當大的便利性,可是水可載舟亦可覆舟,一旦傳遞快速且方便,會不會造成公司機密外洩,或是其他經營管理上的困擾?

 吳家寧有信心地表示,web2.0平台的目的是分享知識,而不是管控知識,相較於現代企業廣泛使用e-mail或MSN,企業內部知識分享都是記名的,並且留有紀錄,更值得被信賴。

 訊連第一階段是推廣e-Learning2.0 PowerKnowledge平台,未來的計畫是整合現有的KM、wiki、blog等,成為主要的知識分享平台。在建立了內部成功經驗後,訊連也不會放過這個新商品開發的機會,將這個平台推廣給其他更多想創新的企業。到時候,就像他們2002年投入數位學習產業時,完全是因為當時市面上沒有適合的商品而自行開發、為自己量身訂做,結果無心插柳柳成蔭地成為國內主要的數位學習廠商一樣,可以把這個新商品當作另一個重要新商機來開發。(作者為資策會數位教育研究所組長)

星期四, 6月 18, 2009

日本專利 4267649

最近運氣不錯,這篇專利在日本的申請案率先通過。美國以及歐洲則依舊在等待中。

公告號US 2007/0242926 A1
專利名稱Video Program Processing Method and System
公告/公開日Apr 13, 2006
證書號4267649
發明人Chen-Hsiu HUANG,
Ho-Chao HUANG,
Ming-Jun CHEN
專利權人CYBERLINK CORP.
摘要
A method for video program processing includes searching for a static image in a video segment, a static image comprising an image in the video segment that does not significantly change over a predetermined time of the video segment. Upon finding a static image, an indication is given to an image processor that the video segment is a program segment.

相關文章:中華民國專利 I307606, 美國專利 7,529,464

星期五, 6月 12, 2009

美國專利 7,529,464

這篇四年多前與同事合寫的專利,終於在今年通過審核。

公告號US 2006/0078287 A1
專利名稱METHOD FOR IMPLEMENTING AN ADAPTIVE MIXING ENERGY RATIO IN A MUSIC-SELECTED VIDEO EDITING ENVIRONMENT
公告/公開日Oct 13, 2004
證書號7,529,464
發明人Yiou-Wen CHENG,
Chen-Hsiu HUANG,
Ming-Jun CHEN
專利權人CYBERLINK CORP.
摘要
A method for implementing an adaptive mixing energy ratio between at least two soundtracks of video footage in a video image-editing environment is disclosed, the process being transparent to a user beyond a single step of initiation. The method includes applying at least one video/audio analysis technique to a session of video footage, demarcating the footage into a plurality of segments, determining a mixing energy ratio for each of the segments according to the analysis, and interpolating the mixing energy ratios for the segments to produce a mixing energy ratio profile before applying the mixing energy ratio profile to the session of video footage.

相關文章:中華民國專利 I307606

星期一, 5月 18, 2009

學習生涯有如可帶走的盛宴

by 張忠謀

兩年前我動筆寫自傳時,參考過去的資料,發現30多年前寫的博士論文,很少看得懂;再看過去的大學工程教科書,也很少看得懂。我發現,一個人在學校學的東西,大學畢業後,前5年約用得到學校學的20%,以後便絕少用得到。

大文豪海明威說:「年輕時住過巴黎,它會一生跟著你,有如一場可帶走的盛宴。」這句話用來形容我前後21年的學校學習生涯,算是十分適當。

學校是培養「求知心」及「學習的習慣」;再者,是培養「思考能力」。求知心及學習習慣是兩項基本,在學校裡若沒能培養前兩項,便完全是浪費時間。至於思考的能力,是內部化及整理的能力,讓你往後可做些與他人不同的事。

中國古語常說的「活到老,學到老」,並不是我認同的終生學習。

因為,終生學習必需具備三項要素:有目標、有紀律、有計畫。

要時時跟得上行業
================

終生學習的目標可分為短、長期,舉例來說,不論是醫生、科學家、半導體業,都要跟得上行業。我一直在半導體業,因此我的目標,便是跟上半導體業的發展。一開始我在技術的領域,就是以跟上技術為目標;後來轉往業務發展,目標就定在跟上半導體業務。

30年前或40年前畢業的銀行家,只需面對存、放款,發行政府公債、賺差價,業務很簡單。當時,美國的銀行家每天下午3點鐘就可打高爾夫球。現在的銀行受世界金融的影響,再加上Internet發展的影響更大。若不能保持跟上新的發展,職業、工作不會超過10年、15年,便已脫節;而科技、工程領域則是更快失業。

我畢業時,不認識Transistor(電晶體)這個字,當時也很少人認識。過幾年後,半導體業的人全都知道電晶體。知識很快地前進,但我一輩子跟上半導體潮流。

立短期目標先充實
================

終生學習的短期目標,可以與興趣、工作職務調動結合。一個技術、或研發的人,升職為經理時,便需要涉獵財務、行銷。如果不懂,就要立個短期目標,在半年學習內相關的財務、行銷,才能在新位子上完全發揮。我發現,法王路易14及與清朝的康熙皇帝,兩人幾乎同時,都是盛世,但都不知對方的存在,因國情不同,後來發展也不同。這引起我的興趣,因此花幾個月的時間研讀兩人的歷史。聽馬勒的音樂,對有音樂底子的人,也是花幾個月就可成為專家。若是貝多芬,就至少要花2年的時間鑽研。

我在美國住了30多年,然後回來台灣14年。回來之初,喜歡看中文報,也經常接觸中國社會,但仍不熟悉。於是立了個短期目標,要在2年內充份了解台灣的政治及經濟。後來發現,這個野心太大,便延長3年。然而,到現在還是不太了解,這項短期目標就變成了我的終生目標。

專心聽比說更重要
=================

終生學習的第二個要素是「紀律」。我認為「專心聽」要比說更重要。一個人的學習,能否達到100%的效率,與是否專心聽有關。提高聽的效率之外,還得內部消化(Internalized)

我隨身都會攜帶一個小記事本,這是為了知己知彼,隨時注意客戶的財務報表。我並且會把重要的資料和資訊記在案頭的標準型筆記本上,一個月或二週溫習一次,我的經驗是可記下所有的重點。當我與客戶談話時,客戶往往驚訝為何我知道這麼多事,這是因為我終生學習是有紀律的。

好的終生學習,絕對會影響生活習慣。我年輕時每天看書4小時,現在2小時,周六、周日兩天加起來也有8、9個小時看書、聽音樂,所以不熱衷應酬。我每天在跑步機上跑步半小時,運動量相當打高爾夫好幾倍。

選擇交往接觸的人
================

終身學習的最後一個要素就是有計畫,否則就會事倍功半。要與誰說話,更是要有計畫,所接觸的人更會影響自己的生活。我對經濟、趨勢有興趣,所交朋友就鎖定是學術界、經濟界的人,不過自己要有料,選定一些有利學習的場合。

生活習慣與接觸的人也要訂定一個方向。每年要回學校充電即使很忙,一年也應抽出一、二個星期的時間,到學校聽課;或是聽5到10次的研討會,要嚴肅地做筆記,才能學到東西。學校是培養一個人的求知心、習慣及思考能力的地方。

一所好學校的定義是師資好、設施好。我反而覺得這是其次;同學才是培養一個人思考、學習的最大助力。有人4、50歲了,還喜歡說出自某某名校,我覺得奇怪,他們把學校的那幾年當成生命的巔峰,其實他出了校門便已開始走下坡路了

與你分享...

星期二, 4月 14, 2009

Corel 第二季開始實施無薪假

最近這陣子春暖花開,政府財經官員更是燕子一隻兩隻的喊話,連鴨子、老鷹都出來湊熱鬧了。竹科的無薪假聽說也漸漸取消或是縮減,景氣似乎漸有起色。

就在大環境逐漸恢復信心之際,突然聽到 Corel 實施無薪假的消息,實在讓人頗為驚訝。
軟體業沒有硬體製造業的廠房龐大負擔,理論上應該是比較不需要動用到無薪假,看來 Corel 似乎是面臨不小的挑戰。

相關文章:科立爾 台灣設研發中心



Corel 1Q Loss Widens, Rev Falls; Plans Cost-Cutting Measures
http://online.wsj.com/article/BT-CO-20090402-706067.html
DOW JONES NEWSWIRES

Feeling the effects of the global economic slowdown, Ottawa-based Corel Corp. (CREL) posted a larger first-quarter loss and lower revenue and said it will implement a number of cost-cutting measures aimed at saving about $2 million over the remainder of the fiscal year.

The software company's loss widened to $1.5 million or 6 cents a share in its first quarter of fiscal 2009 from a loss of $30,000 or nil a share a year earlier.

On a non-GAAP basis, it earned to $5.4 million or 21 cents a share, down from $6.7 million or 26 cents a year earlier.

Revenue for the quarter of $56.2 million was down from $65.5 million a year earlier.

To cut costs, Corel is implementing an immediate 10% salary reduction for all senior executives, five unpaid days off for all employees to be taken in the second quarter and accelerated timing for the mandatory use of any unused vacation time. The company said it will continue to monitor its cost structure and take additional actions as required.

When Corel released fourth-quarter results in February, it declined to give specific guidance for the first quarter in light of global economic uncertainties. For 2009 as a whole, it did say it has a slate of new products it expects will enhance its market position.

Earlier this week, Corel hired Joe Roberts to lead its global product-management, product-development and product-marketing efforts for its graphics, productivity and digital-media businesses. Roberts was president of Broderbund software, a graphics and home-publishing software company.

On Nasdaq Wednesday, Corel closed at $1.92, up 7.3%.

星期三, 4月 01, 2009

中華民國專利 I307606

幾年前剛開始工作時寫的一些專利,經過漫長的等待,最近陸續有結果出來了。雖然只是台灣的專利,也算是個紀念。

公告號I307606
專利名稱可動態調整錄影時間之方法及相關裝置
METHOD AND APPARATUS CAPABLE OF ADJUSTING RECORDING TIME AUTOMATICALLY
公告/公開日2009/03/11
證書號I307606
發明人黃振修 HUANG, CHEN-HSIU
陳品仁 CHEN, PIN-JEN
蘇俊嘉 SU, CHUN-CHIA
黃鶴超 HUANG, HO-CHAO
陳銘軍 CHEN, MING-JUN
專利權人訊連科技股份有限公司 CYBERLINK CORP.
臺北縣新店市民權路100號15樓
摘要
本發明之預約錄影之方法係依據一節目中兩相鄰影像片段之間的影音特性差異來動態調整錄影時間。首先針對一包含複數個依序交錯播放之影像片段與廣告片段之節目,接收相關於此節目之資料訊號,並於一預定起始時間開始儲存資料訊號。接著,比較複數個廣告片段中一參考廣告片段之前播放之第一影像片段與緊鄰於參考廣告片段之後播放之第二影像片段之間的影音特性差異。若第一與第二影像片段之間的影音特性差異大於一預定値,停止儲存資料訊號。

lec-1 (2022-05-12) Accelerating deep learning computation & strategies

雖然用 DNN train/predict model 也好一陣子了,但這週才是第一次搞懂 cuDNN 是作什麼的 以前好奇過 tensorflow/pytorch 是怎麼做 convolution 的,FFT 不是比較好嗎? 下面的 reference 就給了很好的解釋: Wh...