發表文章

目前顯示的是 六月, 2009的文章

自問,自己「值」每個月兩萬二嗎?

每天對自己的領域鑽研又鑽研,每日睡夢中總想著明天還有什麼創意可以做,生怕自己一不小心就在這時代中落後。隱約還記得 [jserv] 在 IRC 上曾說過:「我們都是被熊追趕的人,只是當下跑在前面還是在後面的差別。」,是的,一旦不小心被其他人所超越了,就只能等著讓熊給抓走,被主流社會給丟棄。

先不論是否被社會所丟棄,近年來就連進入這場比賽的門票,都並不好拿,景氣不佳導致許多社會新鮮人被職場拒於門外。有鑑於此,教育部為協助畢業生進入職場,提出「培育優質人力促進就業計畫」,簡單來說,政府花每個月兩萬二千元請學生去公司體制上班實習以體驗職場,其詳細內容在此就不多說,不瞭解的人可以透過關鍵字「兩萬二」找到更多討論和說明。雖然,該計劃制度細節和保障一直有所爭議,但就題目來看,出發點良好,所以若有朋友問我是否該參加,我總是鼓勵他們可以去嘗試看看,原因有幾點:
吸取工作和實務經驗,以增加自身實力和履歷可藉由實戰瞭解自己不足之處未來仍有機會繼續留任甚至直接進入正式公司體系當然,也有許多朋友對我的建議嗤之以鼻,並提出他們的論調,我也在此稍做回應:

每個月兩萬二千元太低,大學生畢業少說 2xxxx ~ 3xxxx

雖然我和大家一樣是個學生,但我一直以來就不懂「大學畢業生 2xxxx 元起跳」這價是誰定的?為何人人都可以說的如此「理直氣壯」?照理說,這些定價就像是青菜的價格一樣,是供需法則下的產物,颱風過後市場行情特好,平時就價碼普通甚至免費。同理,當市場不缺人力,各公司職缺不補,你又怎能期望自己一定有好的價碼。

更者,在這景氣不佳的時代,沒經驗的新鮮人,又能夠帶給公司多少幫助?也可能不幸地,反而增加了公司風險。考量種種,自然人力行情低落,甚至不易有職缺。我們可以想想,在這到處放無薪假又減薪的時機,能力不足的新鮮人,憑什麼要求更高的價碼?更或許該自問,自己「值」每個月兩萬二嗎?若是你是公司老闆,是否需要聘用自己?也許,這反而是莫大恩惠,有工作給你,又給你機會學經驗,何樂而不為?

只是進去公司做不重要雜務,當沒保障的非正式員工且只有一年

這點我承認,許多公司私底下暗地裡難聽的說著,要請這種「免錢勞工」賺一筆,反正政府買單又零成本。但是想想,一上了戰場,是不是只做雜務就很難說,難道會脖子上掛牌以區分非正式員工?碰到急事還挑人做?商場上就是戰場,既然在同公司屋簷下,總是會有各種機會接觸到實務。

此外,雖然表面上…

善用檔案系統的 Extended Attributes

檔案系統(Filesystem)的技術對資訊科技產業貢獻極大,只要是提到檔案儲存,就不能沒有檔案系統的存在,廣義來說,只要是能夠提供格式使一筆筆檔案資料正確存入和取出,都可以稱做為一種檔案系統。而就一般人而言,對檔案系統(Filesystem)的認知,主要在於處理檔案名稱、權限、資料存取方法以及排列架構,其中偶爾也會討論到效能的問題。先不論效能優劣的問題,事實上,現今大多數檔案系統,都有著良好且先進的設計,不少的擴充性和功能都已經被支援,我們可以來細細探討其帶來的益處和便利性。

檔案系統範疇甚廣,有許多領域的技術可討論,在短短的篇幅中也無法交代完整,有興趣者可以自行在網路上搜尋到大批文獻和論文。本文重點將在於討論檔案系統的 Extended Attributes(延伸屬性),該屬性又稱 xattrs,這是一個可供 User-Space 應用程式存取的屬性,其提供『鍵/值(key/Value)』機制,且鍵值資料可被關聯到指定的檔案上。換言之,我們可以為檔案添加一些附屬的資料和性質,而不需要更動到檔案內部資料,或是另外設計一個資料庫以記錄這些檔案的關聯資料。

由於 Extended Attributes 被實作於檔案系統演算法的層面,當然並不是所有的檔案系統都有支援,像是有悠久歷史的 FAT 就缺少這類實作。而 Linux 上使用的 ext3,實作方式是將 Extended Attributes 記錄在目標檔案 inode 裡的可用空間之中,使讀取 Extended Attributes 的資料相當快速,我們不用擔心要許多的 I/O 操作才能達到存取的目的。

以下是幾個操作 Extended Attributes 的函式:
/* 取得目標檔案之『鍵/值』 */
ssize_t getxattr(const char *path, const char *name, void *value, size_t size)
/* 設定目標檔案之『鍵/值』 */
int setxattr(const char *path, const char *name, const void *value, size_t size, int flags)
/* 列出目標檔案之所有延伸屬性 */
ssize_t listxattr(const char *path, char *list, size_t si…

LXNM current status and the plan in the future

Next generation of LXNM(Lightweight Network Manager) is still under development right now, You guys can see the prototype which was implemented in SVN already. In the future, LXNM will provide some programs includes lxnm daemon, utility which is a command line program to make control of all kind of networking devices be unified into only one utility, a LXPanel plugin and a standalone applet for running without LXPanel.

So the project will has three parts to be maintained:
1. lxnm (LXNM Daemon and command line utility - lxnetctl)
2. lxpanel-netstat (LXPanel plugin)
3. lxnm-applet (standalone applet)

For the current version in SVN, lxnm can be working now, we can using lxnetctl utility to connect to lxnm daemon to control our networking devices and get informations include ethernet and wireless interface.

BTW, I am now working on lxnm-applet to implement a graphical LXNM client to display and control network devices.

回答一個很多人在問的問題

朋友們總是會關心我的近況,問我最近過得好不好?我所接的案子如何?或我的顧主、客戶近況又如何?但有時這些關心,卻是尷尬的問題。周遭朋友們都知道,自 gOS 剛踏上台灣開始發展起,我便有參與並協助,從人少到逐漸成形。就因為我都有參與其過程,所以許多朋友或各種場合認識的人會不時問我 gOS 近況,尤其是這一兩個月,許多人又頻頻問我,最近 gOS 如何?有什麼新方向?令我必須要不斷面對這一個重覆的問題,卻又無法回答。

『是的,我已經不再為 gOS 做事,也沒有再接他們的案子』

原因一言難盡,也有許多部份是理念不合,但我確實不再與 gOS 有任何合作的案子和開發。所以,若是有人對 gOS 的公司或產品上有任何的問題,我無法再詳細回答或提供任何訊息和協助。

至於我現在在做什麼?暫時一樣接案過日,期望能堅持些理念和技術,儘快能不總是依附他人,創造理想的明天以證明自己的堅持。

最後無論如何,仍然感謝一路上的貴人,曾給我許多機會渡過難關。

FreedomHEC Taipei 2009 - Fastboot 簡報上線

今年的『FreedomHEC Taipei 2009』如期於 6 月 10 日開始,請來許多重量級的外國講者,傳授很多 Kernel Driver 以及硬體相關的寶貴實作開發經驗,有人還拿著『 Linux Device Driver』一書,去找講者簽名。 :-)

小弟很榮幸受『資策會』邀請,並於該活動給了一場主題為『Fastboot』的 talk。現在簡報檔上線有興趣的人可以參考:
FreedomHEC Taipei 2009 - Fastboot [PDF]Fastboot 議題自從 Netbook 效應開始,就被廣泛提出討論,也不斷有不同的實作被發展出來,『快速開機』彷彿已經是個新一代消費性電子產品的必備標準。因此,就算該議題已經被討論和研究有許多時日,許多人仍對其非常有興趣。有更多的快訴開機方法,仍未被完善的發展出來,這也是值得我們探討的一部份。

值得玩味的程式作業

昨日,有人在 MSN 敲我,請我幫助她解一題程式作業,她說班上沒人會寫,只好向外求助。該作業是從某間大學(忘記是哪一所了)資工系的某堂課所出的,個人覺得題目出的很好且很有趣,值得細細品味。 :-)

題目大致如下:
寫出一個多項式相乘的程式使用串列的方法可自定任意多項式舉例:(2X+3Y+4Z)(XY2+X2Y+Z2) = 2XY3+2X2Y2+2Z2X+3XY3+3X2Y2+3Z2Y+4XY2Z+4X2YZ+4Z3
<註>未知數後的數值代表『指數』,如:X2 代表 X 的平方
對一般學生來說,這作業的困難點是會用到多種技巧,該程式將運用到串列的基本結構、字串解析的技巧以及指標的應用,最重要的需要充分的邏輯思考,以細心慢慢刻出這支小程式。不但如此,該程式寫出來後,還有很多最佳化的改進空間和擴充性,能讓人想改了又改,欲罷不能呀!

筆者在這邊提供一份自己的解答,供有興趣的人參考:
http://people.linux.org.tw/~fred/homework/mathor.c

後記
比起機械,資工系的作業好有趣!早知道當初填志願就填它了!(摔杯子)