發表文章

目前顯示的是 1月, 2010的文章

Apple iPad 所帶來的省思

就在睡夢中,地球另一端的 Apple 推出了新產品『 iPad 』,傳說中的平板電腦終於亮相,乍看之下 iPhone/iPod 的放大版誕生了,似乎沒什麼特別之處。不過一旦到了這種尺寸,許多人不免會拿 iPad 和國內近來炒翻天的電子書(ebook)相比較。確實,用電腦的思維去看這產品是不太恰當的,會缺少許多電腦狂熱族群要的功能,但若單以電子書的角度來看,這次 Apple 賞了我們一個大巴掌。 國內廠商依然趕不上的 UI 設計 以前電子產品的設計,因為技術限制,只求達到目的,不注重人們的使用經驗。但是,這樣的概念已經慢慢不適用於現在,許多電腦廠商卻仍抱著做出功能即可的心態,才導致功能不斷增加,價格不斷跌落的惡性循環。科幻電影和小說的一切是人們共同忡景,缺少改善使用經驗的努力,就等於跟千千萬萬人們作對一樣。 不可否認,就算 iPhone 第一代發表至今少說也有三年之久,但仍然沒有第二家廠商能做出能與之相敵的界面。就算單單是將 iPhone 的界面直接放大製成 iPad 而不做任何變動,不論流暢度和使用觀感,依然領先群雄。 在 iPad 宣傳影片中,展示了幾幕電子書的應用,Apple 嘗試將書本的感覺和閱讀習慣做到冰冷的玻璃裡面去,翻頁操作也好、翻頁過場效果也好,讓人感到不突兀、不陌生、不多餘,令人感受到有其細膩的設計。雖然並不是全部都很完美,但某些部份確實讓人能感受到友善。 我們可以試想,同樣的硬體,若是交給國內的廠商來設計 UI ,最後產品會變得多麼可笑?我們是不是該花點心思在使用者經驗上?難到就連照抄都抄不出來? 廠商的藉口:特效不重要! 講到 UI 、使用者經驗,許多廠商往往會說特效不重要,試圖運用詭辯,一刀將 Apple 的優點通通斬殺。撇開今天的產品,回想第一代 iPod,當時也沒什麼動畫和特效,一個簡單的圓形觸控,就已滿足了許多人的使用經驗,至今回頭來看,我們依然能感受到其 UI 的友善。 那麼,特效不重要是廠商們做不到的藉口?還是因未深思熟慮 UI 設計的無知之言? 專注內容格式的綁定好無聊 有鑒於 Microsoft DOC/PPT 和 Adobe PDF/Flash 的成功,全天下的人都妄想製作自家的專利格式,甚至在電子書市場,想要透過格式通殺產業。雖然格式是最後成功和賺錢的關鍵,但尚未被使用者接受前,可

入門級 Mouse Linux Kernel Driver

每當說起 Linux Kernel Driver 入門,就不免提到如何寫個 Hello World 級的 Module,這樣的第一支程式,除了可供 Linux Kernel 動態載入和卸載,似乎是一點用處也沒有。與一般應用程式不同,開發 Linux Driver 最大的門檻不在於如何撰寫出 Module,而是如何設計系統架構與硬體兩者間的橋樑。其中懂得如何控制和結合 Kernel 內各種機制更是重點,最複雜的莫過於此。 這邊有個 Mouse Kernel Driver,會在 Kernel 上新增一個虛擬滑鼠裝置,然後使用者可從 sysfs 控制該虛擬滑鼠(virmouse.c): /*  * A Virtual Mouse Driver to send fake events from userspace.  *  * Written by Fred Chien <fred@ullab.org>  *  */ #include <linux/fs.h> #include <asm/uaccess.h> #include <linux/pci.h> #include <linux/input.h> #include <linux/platform_device.h> struct input_dev *virmouse_input_dev; static struct platform_device *virmouse_dev; /* Device structure */ /* Sysfs method to input simulated coordinates */ static ssize_t write_virmouse(struct device *dev,                               struct device_attribute *attr,                               const char *buffer, size_t count) {         int x, y, key;         /* parsing input data */         sscanf(buffer, "

親手打造 HD 多媒體播放器(上)

本月 1/23(六)、1/24(日)兩天,小弟將於台中的『靜宜大學應數系』開設嵌入式系統課程。一如課程名稱『 親手打造 HD 多媒體播放器(上) 』,將試圖發揮 TI OMAP 353x 的威力,打造多媒體播放器。近年來『 Beagleboard 』面世,其低廉的價格及強大的硬體效能,在嵌入式系統領域造成不小的影響,使許多人可輕易入手開發板,並在上面做各式各樣的應用。在網路社群中,beagleboard 也因此廣為受歡迎,相關文件齊全,各種技術支援都能輕易取得。 我們將選用 Beagleboard 的複製品『 Devkit8000 』做為硬體平台,硬體規格和設計幾乎完全與 Beagleboard 相同。之所以選用 Devkit8000,除了因為硬體設計和 Beagleboard 一樣之外,其各種接頭支援相當完整,不用再自行焊接,對於軟體開發人員來說,比 Beagleboard 來的方便許多。 此課程總共分上、下兩部份,上半部從嵌入式系統基礎和認識講起,將談及嵌入式系統現況與未來展望、開發環境架設、嵌入式 Linux 基礎架構,適合入門者參加。由於嵌入式系統以實作經驗為重,課程將以實作為主進行,如題『親手打造』一詞,藉自己動手做以增加實務經驗。 註:靜宜大學將提供學生開發板使用,只需帶著玩樂的心前來即可。 活動詳細訊息 活動名稱:嵌入式系統short courses 活動網址: http://www.excellent.pu.edu.tw/news_detail.php?sid=0&id=1366 活動目標: 嵌入式系統開發系統介紹,了解嵌入式系統的現況與未來展望 做中學--學習嵌入式系統的開發環境佈署與建置 活動日期:1/23 09:00-16:00 演講者:于昌永老師、錢逢祥工程師 地點:靜安425 對象:全校師生、育成培育廠商 人數:30人 承辦單位:應用數學系 參考資料: Devkit8000: http://elinux.org/DevKit8000 http://fred-zone.blogspot.com/2009/12/android-eclair-porting-for-devkit8000.html http://fred-zone.blogspot.com/2009/12/enable-

長大吧!台客實驗室(ULLab)

回顧數個月前『 專做有趣玩夜兒的台客實驗室 - ULLAB 』,幾個朋友因臭味相投而成立了 『 ULLab 』。這是個非營利性質的自發性組織,參與者都希望藉由致力於自由軟體開發,多多少少改變這世界,並以『宅宅發卡給正妹』為目標而努力前進。慶幸,經過數個月的努力,有一些小成果,陸陸續續也有愈來愈多人注意到我們的有趣玩夜兒。 由於 ULLab 成員似乎人人都有著不為外人而知的經濟壓力,悲慘的背景彷彿已成為必要的履歷項目。過去這些時間,大家總是私下各自尋找賺錢活命的機會,有人接案,有人上班又兼職,更有人大學研究所念不完,欲哭無淚。絕大數時候,每個人都過著自己的忙錄人生,只在空閒時才投入自由軟體的開發。 當初完全沒有料想到,在近幾個月的社群經營以及國內外活動曝光後( COSCUP 、 GNOME.Asia Summit 、 Open Source Contest 2009 ),開始有人想委託 ULLab,其中有一些零星的外包,也有進一步的合作研發,甚至是長期的顧問交流。對於我們這些負有沉重壓力的人來說,未嘗不是一件好事。許多好心的廠商藉由合作和外包,資助我們繼續走下去,替我們免去了不少負擔。也感謝一些學校單位,對我們的 Open Source Project 的贊助,無論是設備還是人力。 說來慚愧,也許是因為成員們普遍缺錢,人人趕工搶糧,所以讓合作廠商都覺得效率不算差,願意給予更多機會,讓我們貢獻微薄意見,有時甚至讓我們領導其產品發展。而有些廠商常口頭上過於抬舉,其實,我們只是因為過去挫敗的比別人多,現在比其他人更注意什麼應該避免,什麼應該著重而已。 不過這樣的經歷,使 ULLab 幾乎無所不碰,從 Linux Distribution、Performance Tunning、Application Design、Driver Porting、Customization、Embedded System 甚至是 Google Android,除了可以玩到很多『怪產品』之外,更吸收了不少來自世界各地的第一線資訊,大開了眼界,也對許多產品有了重新省思的眼光。真的很開心,因為能接觸到很多特別的新東西,是身為不起眼的宅宅敲鍵盤工人所夢寐以求。 這兩個月,因為許多的合作計劃和關係成長,其收入已經慢慢的能支持 ULLab 成員們大部份開銷。再者,十二月份天外飛來一筆比

Debian Sid nfs-kernel-server 1.2.1-1 重大問題

對於長期開發 Embedded System 的人,Debian 真的是太方便了,可以毫不費力的開發多種平台,又可隨自己高興而輕鬆升級該平台上的各種套件,不再只能死板板停留在該平台的官方 BSP 和 Toolchian(有些 Toolchain 充滿了 Bugs,常讓人求生不得求死不能),完全跳出過去 Embedded System 軟體版本總是太老舊的框框。無論缺什麼東西,輕鬆的幾行 apt-cross 指令,就可以確保 corss-compile 的順利,甚至,新版的 GCC compiler 都任君選用。 開發 Embedded System,最常用到的就是 NFS,在最近的 Debian Sid 中,套件『 nfs-kernel-server 1.2.1-1 』有重大問題(Grave Bug),會讓 NFS 無法順利啟動: $ /etc/init.d/nfs-kernel-server start Exporting directories for NFS kernel daemon.... Starting NFS kernel daemon: nfsd mountd failed! 目前已有人回報此 Bug 至官方(可參閱: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562910 ),在尚無解的情況下,可先 Downgrade 先恢復 NFS 的功能,畢竟工作可不能停: $ wget http://ftp.tw.debian.org/debian/pool/main/n/nfs-utils/nfs-kernel-server_1.2.0-4.1_i386.deb $ dpkg -i nfs-kernel-server_1.2.0-4.1_i386.deb 該版本是從 Debian Testing 抓回來的舊版套件,在替換後 NFS 就可恢復正常運作。

2010 年的愛

一年時間又匆匆而過,09年對我來說是個很特別的一年,因為心境在這年有了莫大的轉變,有特別的際遇,有患難的真情,也有人生不可缺少的挫折。找到了能一同共事的同伴,遇見了值得我在百忙之中還能抽空想念的人,有夢想、有困境、也有快樂,這一年我不缺任何東西,起起伏伏更充實了自己。曾以為世界末日要來臨,曾以為能穩穩走入人生另一個殿堂,曾以為自己正遊戲人間,曾以為誤會永遠解釋不清,但直到最後,依然只覺得在做著不是屬於自己的夢,雖夢見成為一隻蝴蝶,卻也不過是模糊不清的片斷殘影。 雖然都在年年相同的慶祝活動中渡過跨年一刻,但 2010 年卻是不一樣的意義,它代表了另一個十年的開端,也代表了一段殘章的結束,當回想起千禧年前的事,彷彿其又加上了一層厚重的灰塵,更難以翻塵觸碰。所有看似新的記憶,也隨著09的句點而被包裹起來,隔了一道看不見的煙幕,有莫名的距離感。 我對2010年有什麼自我期許呢?或許更該說我對這未來的十年有何期望?或許,十年之後,我能抱著已完成的夢回頭看今天的我,又或許我抱著的是白白胖胖的小鬼回頭嘲笑今天的自己,也或許我可能不再有機會複習我的人生,悄悄帶走別人永遠取不走的財富。 今年,我不給自己過於明確的目標,隨心所遇而隨心所欲,期望找到 2010 年的愛。Find My Way Home! On My Way Home! 行十年路,回家。