#導覽列 #文章列表 #許洛豪
在光之翼的守護下訴說著一段段的英雄傳說。 [ 首頁 | 網誌 | 相簿 | 留言 | 訂閱 ]

[雷很大] Android 手機應用程式設計入門

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...
Android 手機應用程式設計入門Android 手機應用程式設計入門
Android 手機應用程式設計入門(View at PicasaWeb)

這篇是上週放假回來時寫的,本來只有貼在 SayYa 的個版和水站的日記版,而沒有放上自己的部落格。原因很簡單,總覺得寫這種東西,似乎有點『文人相輕』的味道,畢竟,現在關於 Android 的中文資源真的很少,作者也是很努力熱心地提供了想學 Android 平台的人一個管道。

可是這幾天我又想了想,我想,總還是有人得說些實話的,就像童話國王的新衣裡的那個小孩子一樣。這篇不知道算不算是書評的文章或許感覺有點怒氣,口氣也不是很好,不過卻是我看這本書時最真實的心情和感想。

至於這本書是不是真的這麼爛,就留給讀者們自行評斷吧。反正台灣的書局都可以大大方方地在店裡給他試閱,只要你不要像我買了之後這麼後悔就好。

說真的,這本雷很大……

當然很高興看到有中文的 Android 書籍和資源,畢竟英文書真的貴到買不下手,可是這次還真的想起了老俞的那句『中文的電腦書能看嗎?』的老話。

我能夠理解作者沒有 Java 程式設計的背景,可是如果連 override 的行為都能解釋成是因為 @Override  裝釋語句才有做用,會不會太不負責任了一些?

明明 @Override 就只是錯誤檢查用的,確保你真的 override  了父類別的函式,不論有沒有加這句,override 的行為都不會改變。

好,作者沒有 Java 背景,有這樣的誤解,好像也沒有什麼大不了的……

可是,連 android.intent.action  裡的 MAIN 和 LAUNCHER 都能解釋錯誤,會不會太超過了點?什麼叫 MAIN 是代表一般類型的 Activity ?什麼叫 LAUNCHER 代表是程式的進入點?

完完全全錯得一塌胡塗耶!API 文件裡說得很清楚,LAUNCHER 代表這個Activity  要顯示在 Launcher 裡面,MAIN 才是指這是進入點啦!

沒錯,或許作者會寫 Android  程式沒錯,他寫的程式也榮登下載排行榜沒錯。

可是現在你不是在寫程式,是在寫書耶!是在寫傳達知識的東西耶!程式只要會動,不出錯,就是對使用者負責了。

但書是這樣的東西嗎?把一堆錯誤的知識傳達給閱讀者好像不太好吧?

還有,那些寫推薦序的人真的有認真看過這本書嗎?還 Google Android 開發團隊的一員咧!竟然連這樣錯誤百出的東西都可以推薦,技術書刊最重要的就是要傳達正確的訊息耶……*faint*

虧我還是看到有 Google Android 團隊的人背書,覺得內容和觀念應該會比較正確才買下這本的,看來我真的是太傻太天真了……

這本書真的是看不下去了,我看我還是慢慢翻 Dev Guide 算了,雖然真的很雜亂無章,但至少比全部都是嚴重的錯誤觀念好多了。

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2009-04-25 (週六) 16:01:08

怪夢。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

一個奇怪的,看起來像電影院的建築。

裡面很嚴重的鬧鬼,原因不明,似乎是因為一場由兩個不知道身份的道士法師之類鬥法之後產生的大火,無故波及其他人的緣故而產生的冤魂。

過了很久以後,有人莫名其妙地跑到了這個電影院裡,遇到了各層樓的可怕鬼怪(但忘記哪裡可怕了,因為到後面變得超好笑,一點都不恐怖。)。

而要逃過這些鬼怪,並順利從電影院裡脫身的方法,就是要在每一層樓裡達成某一些條件,才能順利安撫鬼怪……

而第一層樓的破關方式,就是在申請會員的時候找各式各樣表單還有留言和布條上的錯字!找到了就可以打敗鬼怪。

哇哩咧!找錯字和降妖伏魔有什麼關係啦?而且為什麼去電影院要申請會員?為什麼電影院會有布條……=_=

而地下一樓的關卡更絕了,要想辦法送東西給某個女生,讓她接受你的禮物。哇,這是什麼和什麼啊?XD

本來前半段的時候我夢到在夢裡被那些可怕的鬼怪給嚇醒(好像在夢裡也是在做夢),可是繼續睡做了後半段的夢,並且一早醒來後,我只覺得想笑啊!

唯一比較正常的關卡是某一樓鬼打牆,然後被一隻像狗的鬼怪追殺(而且好像是不怎麼可怕的狗),只要找到正確的下樓梯的順序就好……

從超恐佈的夢變成超搞笑的夢啦!

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-10-17 (週五) 07:53:10

[舊文新貼] 基本教義派。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

此篇寫於 2006 年 6 月 12,我忘了是在看哪一季,不過反正每一季的恐佈份子幾乎都是伊斯蘭教極端份子……=_=


剛看完 24 小時反恐,又是拿回教極端份子來當做美國國土的安全威脅。不知道為什麼,總是不太喜歡這樣的題材。

其實我對於回教的好感,一向高過於基督教,別的不說,其實我喜歡可蘭經勝過聖經。同時,我也很討厭某些基督教徒那種只有自己的信仰才是信仰的嘴臉,和拼命要拉不信教的人去信教的作法,還傳福音咧!我的福音可不等於你的福音。

同時,我不喜歡把『基本教義派』這個詞放在那些極端份子的身上。如果所謂的基本教義派真的是回歸到回教教義的經典--可蘭經上的話,我真不曉得做出那些事的人,怎麼有資格說是基本教義派呢?

別的不提,可蘭經裡頭第一零九章,不信道的人們裡頭清清楚楚地這樣寫著:

我不崇拜你們所崇拜的 你們也不崇拜我所崇拜的
我不會崇拜你們所崇拜的 你們也不會崇拜我所崇拜的
你們有你們的報應 我也有我的報應

換成中國人的說法,就是道不同不相為謀。即使在可蘭經中,也未曾將信仰其他宗教的人們當成敵人。我實在不懂,能夠幹出那種事的人,怎麼還有資格稱為基本教義派。

同時,我也覺得西方強權思想很好笑。也不想想,當出十字軍東征,你們不也害得多少人家破人亡?所以你們去征服別人可以,別人來征服你們就不行?

看到劇集裡的美國國防部長,真的覺得有夠好笑。美國國防部長是有多偉大嗎?連美國公民都要聽命於你?徹徹底底顯示出西方強權主義那種自以為是的觀點。

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-09-18 (週四) 08:00:54

[舊文新貼] 那個我曾暗戀過的女孩(二)。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

這篇文章也是在 SayYa 個人版上翻出來的,寫於 2006 年 5 月 2 號,看標題,應該是有第一集才對。但我翻遍了我的個人版和日記版的精華區,卻沒找到第一集,只有另一篇寫於 2003 年,標題是『我第一個喜歡上的女孩』的文章。

然而那篇 2003 年的文章,描述的卻是和這一篇同一個時間點的故事,所以我想應該不是那篇,而且我看了一下,發現其實把這篇文章當成第一集也沒差,因為第一集應該只是說我第一次喜歡上她是在什麼時候,真正精采並讓我訝異的故事,是在小學搬家後發生的事……

其實對我來說,我一直到現在都還記得這個女孩。而且有的時候,我會覺得這個世界上真的是有緣份存在的,至少,我從來沒想過,這種機率應該是微乎其微的事,竟然會在我的身上發生。


最近都在搞別的東西,完全忘記這篇還沒有寫完,反正不想寫決策理論的作業,就來寫這一篇吧。

我本來以為,故事就這樣結束了,暗戀嘛,好像總是這樣,在一天又一天的時間流逝中,也漸漸的被沖淡了。

在三四年級這兩年中,倒底有沒有在意過她,我實在是記不清楚了。或許該這麼說吧,國小三四年級的記憶似乎從我的腦海中消失了,不曉得為什麼,就是想不起來這兩年有什麼重要的事。

好像就是日復一日的走路到學校,再從學校走回家。至於有什麼重要的事件,或是那時的死黨,卻是一丁點也想不起來了。

可能是由於教室安排的關係吧,雖然同樣一個年級,而且也只有九個班級,但卻分散ㄇ字型建築物的兩端,而在那段日子中,似乎也沒有再見過那個女孩。

所以,容我就這樣跳過這兩年,直接升上五六年級吧!

到了五六年級,在一次偶然中,發現了那個曾經暗戀過的女孩,原來就在隔壁班中。

而在這個時期,也終於有了自己的死黨,放學時總是一起回家。雖然路隊名義上還是存在的,但其實根本沒人去理他。

為了遠離吵鬧的馬路,我們總是習慣穿過郵局,偷吹一下免費的冷氣,再進到中研院中,一邊天南地北的閒聊著最近發生的事,一邊走回家。

那個時候,也沒想那麼多,直到前一陣子我很無聊的又照著當年的路線走一遍,才發其實是繞了一大圈。不過因為那時中研院裡的建築物還不多,又和朋友再一起,倒是滿快樂的。

至於這和那個我曾經暗戀過的女孩又有什麼關係呢?

因為學校小,放學的時間又是照年級的和班級的順序出去的,因此常常就會見到隔壁班的同學,當然,也就包括了那個曾經暗戀過的女孩。

而更巧的,是由於那個女孩的媽媽,是中研院內的研究人員,而那個時候,中研院的宿舍有一些是在中研院內的。

這也就是說,我和她回家的路線有一小段是重疊的,而從此以後,幾乎是天天都會看到她。畢竟,我們那個學校還真的挺少人的。

發現了這件事情以後,回家時總是會偶爾刻意慢下自己的腳步,等著她的出現,然後和朋友似乎是漫不經意的走在她後面一段距離的地方。

還是和朋友打打鬧鬧的,但這時的我,卻又多了一份心在她的身上。很無聊是吧,但那個時候,一切就是那麼的自然。

也許這也是為什麼我會喜歡小紅豆這部卡通的原因吧!在裡頭,可以發現那些過往的純真……

於是,兩年就這樣過去了,到了畢業的時節,沒有過什麼對話。唯一有的,是一張曾經在運動會上,意外拍到她的身影的一張照片。

而如今,那張照片也隨著數次的遷徙而不知所蹤了。

從國小畢業了,而家裡也因為一些因素,賣掉了房子,我搬到了父親的公司打地鋪,遠離了我所原有的學區,遠離了我原先應該要唸的那所國中。

於是,我到了一個新的環境,像是重新開始一般,斬斷了過去的一切。而因為匆匆忙忙搬離的緣故,我甚至沒辦法聯絡到國小的死黨。

故事,就這樣結束了?才怪……接下來,才是我意想不到的結局。

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-09-16 (週二) 07:00:24

[舊文新貼] 暗戀桃花源:舞台上的古今悲喜。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...
白色的山茶花。白色的山茶花。
白色的山茶花。

這篇文章是在二零零五年六月二十二寫的,寫的是關於引導我進入舞台劇世界的一部電影--暗戀桃花源,想當初,我花了好大的工夫,才在網拍上找到港版的電影DVD吶!一直到現在,這部片仍然是我最喜愛的電影之一。

以下,舊文開始:


這是一部很奇妙的改編電影,一開始是沒有文本的舞台劇即性創作,而後一再地重演,成為了有既定劇本的舞台劇,同時,也被改編成電影上映。

我一直很清楚地記得我接觸這部片的過程,就像我在『扮狗臉的日子:童話中的現實』中所說的,這部片是僅僅三部讓我魂縈夢繫的電影之一。

比『飛俠阿達』與『扮狗臉的日子』幸運的,是我從一開始就對這部片的名字印象深刻,也許是因為這個名字實在太美的緣故吧!

還記得我那時候不過是個國小的學生,國片電影台上這放著這部電影,我看到了一種我不了解的藝術(那個時候我連舞台劇是什麼都還不曉得),但其中的美,卻讓我念念不忘。

雖然我看著螢幕上不斷進進出出,有著古裝又有著時裝的人們在搞些什麼,根本不了解這部片到底在演些什麼東西。甚至,我曾懷疑:這是電影嗎?還是什麼電影的幕後製作特輯?

一直到了大學,無意間在校內的視聽室發現了這部片,在一種我也說不出的衝動下,我抽出時間看了這部片,從此之後,我被拉入了舞台的世界中。我迷上了舞台。

對我而言,這部戲給我的感覺就是『美』,雖然整部片都是在室內的景,可是看了這麼多的電影,卻仍然沒有任何一部,讓我覺得在美感上能夠超越『暗戀桃花源』這部片的。

每每看到桃花源的主景、時空錯置的上海醫院,以及那落英繽紛與圓型的冥紙在空中交錯著時,都會讓我有一股陌名的對美的感動。

後來長大了,重新看過後,才發現故事的大剛事實上很簡單,兩三句話就可帶過:一個演時裝悲劇『暗戀』的劇團,與一個演古裝喜劇的『桃花源』的劇團,排演撞期,搶著用同一個舞台。

很簡單的故事主軸,但卻有著相當複雜的情感存在著。在戲中戲之外,確實有江濱柳這個人存在著,雲之凡也曾活活生地站在江濱柳的眼前,在導演的心中。甚至,在現實生活中,江濱柳的這個角色,也曾存在著。

在這部戲裡頭的舞台上,暗戀是悲劇,桃花源則是喜劇,人們是這麼說的。可是對我來說,桃花源非但不是喜劇,它根本就是一場悲劇,只不過那悲,是用誇大的喜感包裝著。

曾經看過電影版和舞台劇版,各有所好,在電影中唯一我比較不喜歡的,是年輕雲之凡幻影出現在台北病房的那場戲,那一陣罵,完完全全地破壞了林青霞所扮演的雲之凡給我的想象。

我還是比較喜歡舞台劇版裡,雲之凡只是一直走,不理會在後追趕的江濱柳的設計,那讓我的心裡頭更難過。

看著老陶自桃花源回到武陵後那破敗的景象,心裡是難過的,只有最苦的藥,才要用甜的糖衣包裹著。對我而言,裡頭『桃花源』這齣戲,就是包著糖衣的苦藥。

另外,有一件值得記下來的趣事,其實前幾次看的時候,我不太明白神秘女子的對白,在南陽街吃酸辣麵的經過,以及她所找的人(沒有字幕,所以我一直沒想到他找的是『劉子驥』)與這整部片到底什麼關聯。

一直到有一天我又重新看了這部片,才驚覺:『南陽劉子驥,高尚士也,欣然規往。未果,尋病終。』

原來南陽街和神女子找的人,是代表這一小段啊!

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-09-14 (週日) 07:00:59

減稅廣告沒有告訴你的真相。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

最近真的很懶得寫評論類的東西,就連看到朱學恒這篇『試論李家同』的題目,也提不起什麼勁,或許是該說的都已經說過了,再多說什麼也沒用,已經感到無力了……

話說這一陣子來,電視上常常播放一則鼓吹『減稅』的廣告,說實在裡頭的邏輯推論簡直減化到一個極致(低稅率就會有高經濟發展?),實在讓人很受不了。

我不否認,我本來就是左派的,支持的是社會自由主義,期待的國家走向是如同北歐高稅收高福利的福利國家(在老子的小國寡民與無政府主義已經不可能實行的現在)。在我看來,稅收是讓國家走向公平正義的一項很重要的政策,不過我實在很懶得去論述稅收與這些東西之間的關聯,幸好『公平稅改聯盟』已經幫我們做了,有興趣的就自己去看看吧!

要減稅?OK,請給我一個小國寡民,無為而治的政府,這樣我就支持減稅……最好是根本就沒有政府和稅收!

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-09-02 (週二) 08:54:56

隨身版 Gentoo(二)。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

之前的那篇雖然可以成功開機,但是有一些問題沒有解決,這篇是解決那些問題的。

一、啟用 LABEL

UUID 雖然可以正常使用,但是實在很難記,又不人性化,因此最後還是決定用磁碟標籤來做。

首先,要先知道你的根目錄磁區的磁碟路徑及檔案系統,這裡假設路徑是 /dev/sda1。

# reiserfstune -l USBLinux /dev/sda1 # 如果你的系統是 ReiserFS
# e2label USBLinux /dev/sda1 # 如果是 Ext2/Ext3

接著,更改 /etc/fstab 以及 /boot/grub/menu.lst 的設定,把本來 UUID=XXXX-XXXX 的地方,全部改成 LABEL=USBLinux

Note:這件事請使用 LiveCD 之類的來做,總之在做這件事時你的根目錄磁碟最好不要是被掛載的狀態。

二、關機時清除 UUID/LABEL 的快取

由於系統在尋找 UUID 及 LABEL 時,會先從快取檔裡找,所以當你把這個隨身作業系統插到別的電腦上用時,在 Mount local filesystem 的時候,常常會和你抱怨 /dev/XXX 不存在。

這個我們可以利用關機時刪除快取檔的方式來解決,我們直接使用開關機時都會跑的 local init script 來做這件事。

# vi /etc/conf.d/local

打開這個檔案後,移到 local stop,並在 return 0 那一行之前,加入 rm -f /etc/blkid* 這個指令。

這樣子,每次關機的時候,就會進行快取檔的刪除。

三、更改 linuxrc

如果你發現系統每次開機,都會在 Determining root device 那一行停下來,要按 Enter 才會繼續,那麼請照著這一節做。

這是由於系統偵測載入模組後,就會直接掛載根目錄磁區,可是這時其實硬碟還沒就續,所以會出現這個狀況。

這個要改開機時使用的程式,比較麻煩,但還是可以解決。

# mkdir tmp # 建立一個暫存資料夾
# cd tmp
# zcat /boot/initramfs-genkernel-xxxx | cpio -vi # 解壓縮開機用的程式
# cp init ~/
# vi ~/init

開啟這個檔案後,找到 good_msg ‘Determining root device’ 這一行程式碼,然後在其下加入下面的程式碼。那個 10 請自行試驗適當的數值,可以縮短開機時間。

sleep 10

改完後,要重新建立 initrd 檔。

# genkernel –disklabel –linuxrc=/root/init initrd

這樣子,理論上就真的有一個可以到處跑的 Gentoo 囉。:D

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-06-13 (週五) 11:48:27

隨身版 Gnetoo(一)。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

呃,這篇是舊的,不過先放上來湊數,新版的在 Gentoo Portage Wiki,不過還沒寫完。

一、簡介

寫這個文章的想法,來自於洪朝貴老師的『百毒不侵救命碟』和比利潘把完整的 Ubuntu 放到隨身碟上的想法

因為這個定位是『個人的隨身作業系統』,所以製作完成後,比較像是比利潘的 Ubuntu 隨身作業系統,也就是你所有的設定都會在,不像 LiveCD 一樣重開機就還原。

如果你需要的是把 Gentoo LiveCD 放到隨身碟上,目前網路上已經有相當多的討論和文件,照著作應該沒什麼大問題,所以這裡就不提這一段了。

會選擇 Gentoo 沒有其他的理由,只是因為個人習慣,畢竟如果是自己的隨身作業系統,那用自己熟悉的版本當然是最好的。

二、注意事項

  1. 這篇文件假設你曾經照著 Gentoo Handbook 手動安裝過,而且真的知道每一步每一個指令到底在做什麼。
  2. 因為 Gentoo Portage 的特性,不建議使用隨身碟,速度可能會讓你受不了,還是建議使用 2.5 吋的隨身硬碟。
  3. 這篇文章只討論到開機進到文字模式,要怎麼像 LiveCD 一樣會自動偵測顯示卡和設定 Xorg ,請自行研究,因為我自己也還沒研究。XD
  4. 這篇文章選用 i686 的架構,如果你要讓很舊的電腦也可以跑,請使用 i386/i586 之類的。
  5. 由於是在隨身硬碟上用,我們只切出一個根目錄的磁區,其他像是 SWAP 或 BOOT 都是放在這個磁區裡。

三、背景知識

要讓 Gentoo 放在隨身碟上面,到每一台電腦上都可以開機使用,有幾個要克服的地方,基本上只要這幾件事克服後,你的 Gentoo 就可以帶著跑了。

  1. 每一台電腦都能跑的核心。
  2. 與 SWAP 相關的設定。
  3. 與根目錄相關的設定。
  4. GRUB 的設定檔。

四、SWAP 的設定

由於我們是使用隨身硬碟,磁區能不要切就不要切,因此在第四章分割硬碟的時候,可以只把 ROOT 磁區切出來就好。

接著請繼續依著安裝手冊做到第六章結束,在進入第七章之前,我們先來設定 SWAP 。

請依照下列指令建立 SWAP。

# dd if=/dev/zero of=/mnt/SWAP bs=1024 count=1048576
# mkswap /mnt/SWAP
# swapon /mnt/SWAP

以上三行指令,第一行建立一個 1 GB 的 SWAP 檔,第二行初格式化這個檔案,第三行把 SWAP 啟動。

這時請用 free -m 這個指令檢查一下,SWAP 是不是有被啟動。

五、核心的設定

隨身作業系統第一個要解決的問題,就是要能夠隨著硬體的不同,自動載入需要的核心模組和設定,幸好這件事 Gentoo 本身就能夠作到了。

首先,請先依照 Gentoo 安裝手冊,做到第七章開始,這時,請選擇用 genkernel 的方式,這樣一來,你的核心就會像 LiveCD 一樣,在開機的時候自己偵測硬體,並做適當的設定。

六、與根目錄相關的設定

接著要解決的問題,是在 Gentoo 原本的安裝手冊中,硬碟磁區是以傳統的 /dev/XXX 的方式來表示,可是這個路徑隨著你電腦上碟碟的增減而改變,所以不適合用在隨身作業系統上。

解決的方法有兩個:LABEL 與 UUID ,LABEL 比較簡單,不過很可惜我的實驗失敗,因此這裡介紹 UUID 的作法,目前試過,不管硬碟怎麼接,都可以正常使用。

安裝好核心後,請在編輯 /etc/fstab 前等一等,我們要來找出你根目錄磁區的 UUID 。

首先,請先依照下列指令,列出所有磁區的 UUID 。

# cd /dev/disk/by-uuid/
# ls -l

你應該會看到如下的訊息:

10c212ae-9545-49a4-b2ca-2f19e8025266 -> ../../hda2
9cd4ad95-4df5-4a5a-a049-96e743f38535 -> ../../hda3
c3504704-cc70-45eb-95bc-f0055ba889de -> ../../hda1

請在黃色部份找出你的根磁區路徑(你在第二章時做格式化的那個路徑),並把它之前那一串藍色的編碼記下來。

在第八章設定 /etc/fstab 的時後,請注意三件事:

  1. 不需要有 /boot 磁區的設定。
  2. 根目錄磁區原本的 /dev/xxx 改成 UUID=你剛剛抄下的編碼
  3. SWAP 磁區原本的 /dev/xxx 改成 /mnt/SWAP

到這邊為止,fstab 的設定就沒什麼問題的。

七、GRUB 設定

接著請繼續依照安裝手冊的說明,進行到第十章,準備安裝 GRUB 開機程式。

這裡要注意的是,在 GRUB 設定檔中有一個參數長得像是 real_root=/dev/sda3 這個樣子。

請把 /dev/sda3 換成 UUID=你剛剛抄下的 ROOT 磁區編碼。

基本上這裡請自求多福,最好可以了解 GRUB 怎麼安裝,(hd0,0) 是怎麼回事,安裝起來才會比較沒問題。

不然,安裝這個隨身碟 Gentoo 版之前,把所有硬碟全部拔掉,比較不會出問題。

這件事做完之後,就請依照安裝手冊繼續到手冊結束吧!

八、完工

到這裡,基本上你的 Gentoo 已經可以隨身攜帶了,要注意開機的時候,initrd … 那一行可能會跑一陣子,不要以為他當掉了,耐心的等一陣子看看。

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-06-13 (週五) 11:33:32

以高橋流報告學術論文的試驗。

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

這個是我在前幾天由系上舉辦的國際資訊管理研討會 ICIM 2008 上所做的一個試驗,嘗試著用高橋流的投影片來報告我所做的論文。

一開始會有這樣的想法,是因為在我的那場議程中,全部五篇論文只有我是技術領域,其他的都是社會科學的領域,因此我想要用一個不會讓大家打瞌睡的方式來進行簡報。當然,第一個出現在我腦海中的就是『高橋流』(高橋征義先生示範影片)啦!

當然,經過許多人的試驗,大部份的人對於高橋流都有這樣的體認:相當適合應用在行銷、洗腦以及精神污染的場合。

但是相對的,PipperL 提出了關於高橋流是否試合應用在學術領域的簡報的疑問,而乃特對於高橋流是否適合應用在較為深入的技術討論,也提出了質疑

此外,雖然目前已經有許多關於高橋流簡報的投影片或影片在網路上流傳,但我看了那麼多之後,發現由於大部份是現場錄音,有的時候真的很不清楚,反而看得一頭霧水,搞不懂這些家伙到底在幹什麼。

因此這份影片也是給希望能夠了解高橋流簡報法的朋友做一個參考。

但請注意,高橋流簡報法的精神雖然簡單,但實際上每一個人的表現形式都不一樣,可以說有多少人就有多少種高橋流,因此請不要認為我的正份就是高橋流簡報的基準。

基本上,這份簡報與高橋征義先生的高橋流有以下幾個主要的差異:

  1. 我的投影片不是純文字,在需要的時候會有圖。
  2. 我的投影片風格是比較偏向 EVA 的(黑底白字、中英對照、紅白對比顏色的字)。
  3. 我的投影片切換速度沒有高橋先生的快,精神污染度沒那麼高。

另外,這份影片不是現場錄音,而是事後我照講稿和回憶再重新錄製一次,在錄製的時候我要加了一些說明,因此時間比原先的十分鐘多了一倍。

最後,雖然這是一個高橋流是否能夠應用在學術領域上的實驗,但實際上我的論文沒有高深的技術和複雜的算術,因此可能不是很準。

以下是這次的影片,僅供大家參考。

將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2008-05-19 (週一) 17:26:53

[D 語言] SimpleXMLD 0.0.1 Released.

此文評價一顆星二顆星三顆星四顆星五顆星
Loading ... Loading ...

這是第一次嚐試用 D 語言寫真正有用的東西,一個很簡單的 DOM-like XML Parser,概念上是參考 PHP SimpleXML 的做法,直接把 XML 檔案的結構 map 成記憶體裡的一個樹狀結構。

花的時間很短,不包含 SAX XML 的 Parser(我用現成的),總共只花了兩天就完成所有的工作和文件,扣除註解,所有程式碼不到五百行,另外寫 Embeded API Document 的時間比 coding 還久,本來五百行不到的程式碼也變成一千多行。XD

在寫這個函式庫的過程中,可以發現 D 強大的地方,比 C++ 簡潔又比 Java 功能強大,還內建單元測試和合約設計,所以這次我試著嚐試單元測試導向和合約程式設計的方法來建立這個函式庫,結果真的讓介面一開始就切得很清楚,除錯時間也少很多。

而 D 自己的 Embedded Document 格式,和 Doxygen 比起來,和程式碼擺在一起比較沒那麼突兀,而利用 candydoc 產生的網站,我覺得比 Doxygen 還要來得漂亮。

廢話不多說,文件在 http://bone.twbbs.org.tw/SimpleXMLD,下載也放在裡面,還在等 dsource 看能不能讓我 hosting 在上面。

簡單來說就是抄 PHP SimpleXML 的做法,直接把 XML 檔案在記憶體建成一個完整的 tree 而已。

XML 檔(test.xml):

  1. <root isRoot="true">
  2.     <hello>text</hello>
  3.     <node key1="1">node 1</node>
  4.     <node key2="2">node 2</node>
  5. </root>

可以在 D 語裡寫的程式裡用這隻 SimpleXMLD Library 輕易地存取上面的 XML 檔。

  1. import SimpleXMLD.all;
  2. void main ()
  3. {
  4.     // Just load XML from disk file an build an tree structure
  5.     SimpleXML root = SimpleXML.loadFile ("test.xml");
  6.  
  7.     // Get node attribute
  8.     char [] isRoot = root.attributes["isRoot"]; // Now isRoot="true"
  9.  
  10.     // Get node data of hello
  11.     SimpleXML [] hello = root["hello"];
  12.  
  13.     // This will output "text"
  14.     Stdout (hello[0].data);
  15.  
  16.     // Iterate over all child
  17.     foreach (SimpleXML node; root) {
  18.         char [] tagname = node.tag;
  19.         char [] textdata  = node.data;
  20.     }
  21.  
  22.     // Iterate over all olny child named "node"
  23.     foreach (SimpleXML node; root["node"]) {
  24.         char [] tagname = node.tag;
  25.         char [] textdata  = node.data;
  26.     }
  27. }
將本文加入 Hemidemi 書籤
Brian Hsu (墳墓)
2007-10-01 (週一) 22:46:10