2010/09/25

COSCUP 2010 札記

COSCUP 2010 + GNOME.Asia 2010

這是我第一次參加 COSCUP,今年還與 GNOME.Asia 合辦,實在是非常豐富。
而且 COSCUP 團隊竟然還搞到中央研究院這種場地,it's freaking COOL!

*2010/08/14

開場演講是 HTML5 – More Web for More people,
講者是 Opera 的 CSO(Chief Standards Officer,首席網路標準長)Charles McCathieNevile。
其實我聽不是很懂,坐後排聲音很小,加上我英文也不是那麼好。
他曾在 W3C 制定網路標準,如 HTML、CSS 等,我想正是他在 Opera 擔任 CSO 的原因。
對於網頁設計師、網路程式師來說,他簡直就是衆神之一,因爲都得照他們訂的規則來玩。
當他談到 HTML5 在無障礙方面的設計時,我死命地用力聽。
我吃了不少無障礙的苦頭。
但對於他能從身障者的角度出發,設計能照顧到所有人的網頁規則,我真的很佩服。
這是真正的大愛。
無障礙設計對網頁設計師來說可能有點綁手綁腳,
可是如果有天我手腳或眼不便,而又需要上網時,我將會非常感謝製作無障礙網頁的人。
(延伸閱讀:http://www.ifanr.com/18070)

下一個 session 我其實很猶豫,我在想要不要去 Sahana Taiwan Development 那場,
因爲它可能會和我以後在氣象局的服役工作有關。
不過最後還是在國際會議廳坐滿了 HTML5 for Programmers 與 HTML5: Building the Next Generation Web Applications 這兩場。
當然,也因此錯過了 CSS3 新功能大補帖那場。

這兩場的講者分別是 Mike Smith 與 Eric Bidelman,
前者在 W3C 與 WHATWG(http://www.whatwg.org)負責 HTML5,
後者是 Google 工程師,Google Docs 是他幹的。
當然,我還是有聽沒有懂,不過他們介紹了兩個自己爲 HTML5 做的 demo 網站,都非常酷!
Slide 那個我之前有看過,另一個很適合做 HTML5 入門教程。
http://slides.html5rocks.com/
http://www.html5rocks.com/

中午免費的魚翅(魚排雞翅)便當後,是此次贊助商之一的 Nokia 來講 Meego。
其實 Qt 做出來的介面我還蠻喜歡的,有質感,場外也有 Nokia N900 給大家試用。
只是主講的 Nokia 技術經理張弛先生,有點貴氣逼人的味道。
他這個人讓我覺得很有距離感,而且商業氣息很濃厚。
我在猜,中國大陸現階段企業內管理階級的人是不是都這個態勢?

下午我選的場次是 Doxygen 程式說明文件產生器與 Gettext 網站多國語系製作。
講者分別是 Thinker(http://www.codemud.net/~thinker)與 Tsung(http://plog.longwin.com.tw)。

Thinker 使用他的一個專案 MadButterfly 當作例子,示範 Doxygen 怎麼運作。
附帶一提,MadButterfly 是一個非常酷的 SVG 專案(http://www.assembla.com/wiki/show/MadButterfly)。
簡單說,Doxygen 是一個輔助產生程式說明文件的工具。
使用前,先將 Doxygen 配置好,設定文字編碼(例如:utf-8)等參數。
在程式碼中進行註解時,只要引入 Doxygen 看得懂的區隔符號(例如:/*! 註解 */),
執行 doxygen 指令時,Doxygen 就會抓取這些內容產生有條不紊的 html 檔或 pdf 檔。
這種東西需要親手做過一次,就會馬上懂了。
詳細操作需要翻一下手冊(http://www.stack.nl/~dimitri/doxygen/manual.html)。

Gettext(http://zh.wikipedia.org/wiki/Gettext)是 GNU 一套常用的多語系製作工具。
會產生 .po 與 .mo 檔,前者是人類看得懂要翻譯內容的檔案,後者是編譯後的二進位檔。
其實我是今天聽講才知道 .po .mo 檔,因爲從沒參與過 Open Source 的翻譯工作 ...
簡單說,就是把需要翻譯的字詞抽取出來放到 .po ,人們編輯 .po 檔,把翻譯寫進去。
.po 檔完成後,再編譯成二進位的 .mo 檔,程式執行時照 Gettext 的規矩就可以取用了。
最後,Tsung 提了一個三分鐘就可以完成全網站多語系製作的方法:Google Translator。
我當下真是嚇一跳,是真的嚇一跳!一語驚醒夢中人!
雖然講者可能是半開玩笑,可是我真的覺得取用 Google 的輪子就好了!
The Big Picture 就把它用得很好。

之後我前往了 Processing – 專為設計師、建築師、藝術家設計的簡易又強大的數位藝術工具,以及自由軟體於互動技術。講者分別是沈聖博(http://arrowkey.net)與甘泰瑋(http://www.twkan.com)。

Processing 是一套底層爲 Java 的設計工具,它強調是數位藝術工具,
它使用起來有點像在寫 OpenGL,又像是寫 SVG,可是並不會那麼複雜,
且使用對像包括藝術家,不會有程式門檻,只要會英文,基本上就可以寫了。
它很明顯是一套玩弄數位影像的工具,一張很普通的圖片丟進去,可以有很藝術的變化。
聽起來有點像 photoshop 的濾鏡,只是它可以是動畫的。
另外講者自己設計的 slide 也很有趣,tag 在上面漂啊漂的,也是用 Processing 做的,
他有提供 code 出來(http://arrowkey.net/openCode/tagSlides/)。

互動技術談到擴增實境(Augmented Reality, AR),那是我研究所其他幾位同學的題目,
講者在做的是用 QR Codes 當作 AR 的辨識標記,自己寫了掃描讀取的工具。
他的作品還上過 SIGGRAPH,非常屌!
講者有許多筆記在他的部落格(http://jwill.pixnet.net/blog)。

接下來我跳了兩個 session,分別是以中文的名义融入开源世界與 Jetpack SDK。
講者是黃鵬(https://launchpad.net/~shawn-p-huang)與尤孝庭(http://blog.littleb.tc)。

黃鵬是個很了不起的傢伙!
Linux 底下許多許多許多許多許多的中文化都是他幹的。
我現在正在用來打字產生這篇文章的 ibus 輸入法平臺也是他寫。
(雖然在 KDE 與 Chrome 底下還有點毛病啦,哈。)
他在這場演講談了許多開源中文字型的故事,不過我聽過就忘啦!
現在中文字型我都是選用文泉微正黑體,Google Droid 在簡體中文的方面並不是很好。
我注意到他講話很溫吞、優雅,感覺像是老北京衚衕裡,住在三合院內的生活大師。
不知道他是不是北京人?

尤孝庭是臺灣的 Mozilla 親善大師,他做了些很有趣的 Firefox 套件(https://addons.mozilla.org/en-US/firefox/user/2627913)。
爲了玩 Voyage 那個套件,我還特地打開許久沒用的 Firefox,瀏覽一堆網站製作記錄。
他介紹的 Jetpack 是一套開發 Firefox 套件的 SDK,雖然我不大懂,不過這東西很酷!
你只要使用 HTML、CSS、Javascript 就可以瞬間爲自己寫一個 Firefox 外掛。
未來 Firefox 4 的外掛應該是以這個爲平臺,安裝或卸載外掛也不需重啓 Firefox。

晚餐大會提供了一大堆半徑爲 z,高爲 a 的圓柱體食物(pi*z*z*a),還有可樂。
當然,全部都是免費的。爽!free software,free food。

吃飽後在 Ubuntu 的 BOF(Birds Of a Feather)玩。
下午的我是 Programmer 我也想當 Musician 那場的講師張正一,他是 Ubuntu Studio 玩家。
他介紹了一套 drum machine 軟體:Hydrogen(http://www.hydrogen-music.org)。
他還現場表演打擊了一段,實在是非常的 rock!
Ubuntu Studio 真的很「工作室」,玩起來跟在做 3D 動畫沒兩樣(它也真的可以做 3D)。
會後我跑去問他些問題,因爲我也曾夢想有一套自己的爵士鼓,沒錢買鼓,敲電腦總行吧?
他拉我到場外從樂理開始聊起,哈哈!oh,my!
我說有一把吉他,可是不會彈。
他隨身竟然拿出一把烏克麗麗!開始從最基本的和弦爲我講起。
我真的很不好意思,他講得很認真,我這音痴只好努力地聽。

晚上回去的路上,同車除了我的音樂老師張正一,(笑)
還有 CrBoy(http://blog.crboy.net)與一位 COSCUP 工作人員。
我記得火車上,張魔法設計師正一還拿出烏克麗麗來彈小曲,真是太愜意了!
我一定得學好吉他。

我幾乎每次參加自由社群的活動都是扮演吃白食的角色。
沒啥貢獻,沒有能力,沒有東西可以分享 :-(
所以在 Ubuntu BOF 上,我只能掏錢買些貼紙,
小小些錢,希望社群能有些小小補,這是我目前力所能及了 ...

不過最近對宇宙、黑洞、大爆炸倒有些心得,不知道這種能不能分享,哈。

*2010/08/15

第二天的開場演講是 Road to GNOME 3,講者是 Brian Cameron。

Brian 是 GNOME 基金會的指導董事,現任職於 Oracle。
他 demo 了新一代 GNOME 的樣子(http://www.youtube.com/watch?v=oYOe9INyy88)。
好吧,我得老實說:我嚇到了。where is my application menu !? where is task bar !?
GNOME 3 應該算是 UI 上的大革命,真的很眩目。
但是我想,很多人應該跟我一樣,對於習慣新的革命性的東西,多少都會有點恐懼。
畢竟革命是需要破壞的,破壞原有的習慣、原有的流程。
其實看到 demo 畫面的當下,我馬上決定回家後要裝 KDE 起來用看看了。
我想先習慣一下,以後 GNOME 3 真的變這樣的時候,至少我還多一個選擇。
我後來發現,GNOME 3 的多個桌面其實就是 KDE 裡面 Activities 的概念。
說不定之後會很快習慣 GNOME 3,說不定習慣後會很有效率?who know.

Tea Break 後,我還是去了 GNOME 的 session。

Building and Using a Memory Profiler,講者 Holger Hans Peter Freyther。
完。全。聽。不。懂!
感覺是記憶體效能調校的事情,好像在教一些技巧,還是在做一些 hacks?
好像是講解怎麼去優化 GNOME 底下程式對記憶體的存取(?)

接着是 xPad – Building Simple Tablet OS with Gtk/WebKit,講者 Penk,陳品勳。
Penk 來頭可不小,他是 xPUD 的老爹(http://www.xpud.org)。
這場人突然爆多的,像是熱門院線片。
Penk 也沒有讓大家失望,除了預告新東西外,他整場真是活力滿滿。
雖然技術細節我還是聽不懂,可是這場真的很 party,damn happy!

The Culture of Sharing,講者 Sascha Pallenberg。
在談 Open Source 文化、心態、思想的事情。

App Engine 大爆料,講者葉平,是位物理學家,待過 NASA,目前在 Google 服務。
主要在分享這次 COSCUP 報名系統使用 Google App Engine 處理的小故事。
提醒大家,程式務必要記得做 exception 處理。

之後我聽了 The NoSQL Movement 與 Implementation of websocket server program。
講者分別是周立瑋與彭兆蔚。

NoSQL 那場講者講話也很優雅、緩慢,所以我差點睡着了。
他本來要介紹 Couch Database,可是前面鋪陳太久了,剛要開始提就結束了。
NoSQL 有點像在談雲計算時代的資料庫應該是怎麼樣的。
有篇文章可以參考一下:http://oss-tw.blogspot.com/2010/04/nosql.html
NoSQL 現在被解釋爲 Not Only SQL。

websocket 這場的彭兆蔚他很酷,他本來是臺大心理系的,自修考上了臺大資工所。
他擅長 Java,目前在資策會服務,開講前他好像酸了一下當前的瀏覽器大戰,哈。
我對這場的印象就是,websocket 像是 AJAX 的正式化了,就是文件中有它了。
從舊有的 Client 跟 Server 要哪些東西,Server 才給 Client 哪些東西;
變成只要 Client 告訴 Server 哪些是需要的, Server 主動推這些資訊給 Client。
但 websocket 的內容還是草案,講者也強調他現在都是根據 draft 在寫 websocket 程式。
我覺得它非常麻煩,head 裡面個很怪的密碼規則,而且還得 coder 自行處理加解密!
因爲一定有安全性問題,總不能隨便接收一個不知道是不是真的 Server 推來的檔案吧?
coder 得根據 websocket 的草案自行寫程式在 Server 端處理加解密問題。
我在想,這之後一定會 API 或人家弄好的標準工具,Apache 可能也會有大改版支援。
但講者直接點出,國外有草案就馬上在做新的東西了,我們不能總是等工具出來才創新!
真是有骨氣、有志氣、有才幹 ...
真羨慕。

之後回到國際會議廳,是一連串的 Cloud 相關技術與工具。
說起來我應該覺得熟悉才是,可我知道的跟議題相比,真是小巫見大巫了。
Building a Cloud Computing Platform by Using Open Source Software - Michael Pan
快速佈署叢集式的搜尋引擎(CrawlZilla) - 郭文傑
Yahoo Traffic Server, a Powerful Cloud Gatekeeper - Shih-Yong Wang
Solr on Cassandra - Gasol
這些都得多聽幾次才會有概念。

當然,我還有一些遺珠之憾:
Sahana Taiwan Development - 胡崇偉 Marr (中研院, 研究助理)
網頁設計師必備: CSS3 新功能大補帖 - 謝子斌 (Web Evangelist, Opera)
由馬鈴薯小子看軟體在地化 - 黃佑仁 Rock (台大資工)
Cloud Experience — from Google to Delta - 翟本喬 (台達電子, 資深處長)
Javascript in Linux Desktop - yurenju

好在每次 COSCUP 都有錄影和投影片備份:
http://plog.longwin.com.tw/my_note/2010/09/23/coscup-note-ppt-2010



這種活動真的是好康到極點!
但好康的東西背後總是會有一堆不求好康的人在默默付出。
每次 COSCUP 的籌備到舉辦是由一羣志工拚出來的,
這羣人到頭來可能還沒辦法好好聽完一場演講。
他們給我的感覺,很像學校社團在出服務隊的那種樣子。
我懂那種團隊間創造革命情感的過程。
敬你們一杯!

2010/09/24

Ubuntu LAMP 環境架設

#Ubuntu 架設 Apache、MySQL、PHP
#LAMP:Linux + Apache + MySQL + PHP

sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo service apache2 restart
sudo apt-get install mysql-server
sudo apt-get install libapache2-mod-auth-mysql php5-mysql 

Apache 設定檔:
/etc/apache2/apache2.conf
/etc/apache2/ports.conf
/etc/apache2/*

PHP 設定檔:
/etc/php5/apache2/php.ini

MySQL 設定檔:
/etc/mysql/my.cnf

MySQL shell login:
mysql -h 127.0.0.1 -u root -p

mysql>?
mysql>SHOW DATABASES;
mysql>CREATE DATABASE 資料庫名稱;
mysql>DROP DATABASE 資料庫名稱;
mysql>SHOW VARIABLES LIKE 'char%' ;
mysql>SHOW COLLATION LIKE 'utf8%';
mysql>SHOW CHARACTER SET;

utf-8 is utf8 in MySQL.

Reference:
01. http://www.phpwact.org/php/i18n/utf-8/mysql
02. http://islandlinux.org/howto/migrating-mysql-utf-8-encoding

2010/09/05

Ubuntu 美化與調校

僅適用於 Ubuntu 10.10 以下的系列!

註:「Super 鍵」即「Windows 鍵」。



【Macbuntu】

到 http://sourceforge.net/projects/macbuntu/ 下載原始檔,解壓縮。
切換到該資料夾,以一般使用者身份執行 ./install.sh。

安裝過程中會有許多調教、配置的問項,都是很簡單的英文,可以看一下再選擇。
如果一路 enter 到底使用預設的選項,也沒有差。

最後會跳出推薦的 Chrome 跟 Firefox 佈景套件,可以不用裝。

登出 Gnome 桌面,再登入,就完成了。

登入後,畫面底下那條工具列是 Docky。
不喜歡的 Docklet(程式圖示)可以直接拖拉出來,讓它消失。
如果不習慣它一直固定在那裡,點一下最左邊那個 Docklet 進行設定。
把 Hiding 選項選到 Autohide 就可以了。

畫面最上方 Panel 的左端是 Macbuntu 預設的 Main Menu,可以通通按右鍵刪掉。
再右鍵 > Add to Panel,選擇新增 Menu Bar。右鍵 > Move 可以調整位置。



【My Fonts Setting】

系統的字型調整,可以到桌面上點右鍵 > Change Desktop Background > Fonts
推薦使用 WenQuanYi Zen Hei(文泉驛正黑體),或 WenQuanYi Micro Hei。
字體大小依個人喜好調整。

修改 ~/.fonts.conf 變成以下內容:



    
        
            true
        
    
    
        
            none
        
    
    
        
            false
        
    
    
        
            hintnone
        
    
    
        
            true
        
    

    
        
            serif
        
        
            WenQuanYi Zen Hei
            LiHei Pro
            Bitstream Vera Serif
            DejaVu Serif
            AR PL UMing TW
            AR PL UMing TW MBE
            AR PL UMing HK
            AR PL UMing CN
        
    
    
        
            sans-serif
        
        
            WenQuanYi Zen Hei
            LiHei Pro
            Bitstream Vera Sans
            DejaVu Sans
            AR PL UMing TW
            AR PL ShanHeiSun Uni
            AR PL UKai TW
            AR PL ZenKai Uni
        
    
    
        
            monospace
        
        
            WenQuanYi Zen Hei
            LiHei Pro
            AR PL UMing TW
            AR PL UMing TW MBE
            AR PL UMing HK
            AR PL UMing CN
        
    




【The Chrome Style Firefox】

我一直很喜歡這款簡潔美觀的 Firefox theme:
https://addons.mozilla.org/en-US/firefox/addon/chromifox-basic/

打開 Firefox,連過去,安裝,重新啓動 Firefox,that's it!
披着 Chrom 大衣的 Firefox。



【Faenza】

方正又圓融的圖示集:
http://gnome-look.org/content/show.php/Faenza?content=128143

安裝:
sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install faenza-icon-theme

啓用:
桌面右鍵 > Change Desktop Background > Theme > Customize > Icons > Faenza



【Gnome Do】

快捷鍵啓動的新體驗:
http://do.davebsd.com

安裝:
sudo add-apt-repository ppa:do-core/ppa
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install gnome-do

預設啓動鍵:
Super + Space(Windows 鍵 + 空白鍵)

叫出 Gnome Do 的視窗後,直接輸入要啓動的程式名稱或關鍵字,
Gnome Do 會找出相對應的程式,壓 enter 之後就會啓動,不用動到滑鼠。

Gnome Do 視窗右上角的箭頭 > Preferences > Appearance
在 Selected Theme 選擇喜歡的佈景樣式,把 Always show result window 打勾。

Gnome Do 視窗右上角的箭頭 > Preferences > General
可以把 Start Gnome Do at Login 取消掉。



【Gnome Startup】

隨着 Gnome 桌面一起啓動的還有使用者安裝的常駐程式。
這些常駐程式有時會拖慢 Gnome 桌面的登入速度,可以到這查看有哪些:
System > Preferences > Startup Applications

逐一檢查,並把不需要的勾掉,例如:Bluetooth Manager、Update Notifier
Gnome Do 或 Dropdox 的自動啓動也可以取消掉,記得程式本身的自動啓動也要設成取消!
可以自己寫一個啓動的腳本替代。

以 Gnome Do 爲例:
1」System > Preferences > Startup Applications > Gnome Do
2」取消它,然後點一下 Edit,複製 Command 欄位的內容
3」編輯一個腳本檔:~/my_startup.sh
4」內容:
#!/bin/bash
sleep 10 ; gnome-do &
sleep 15 ; 其他程式的啓動命令 &
5」System > Preferences > Startup Applications > Add
6」新增一個啓動名稱,Command 欄位填上:~/my_starup.sh
7」登出再登入,測試腳本



【Gnome Shortcuts】

Gnomo 預設的快捷鍵很好用,可以到這裡查看或修改:
System > Preferences > Keyboard Shortcuts

Alt + F1:應用程式選單
Alt + F2:快速執行指令
Alt + F3:啓動 Terminal(我個人的手動設定)
Alt + F8:調整視窗大小
Alt + F9:最小化視窗
Alt + F10:最大化視窗
Ctrl + Alt + s:隱藏視窗
Ctrl + Alt + d:顯示桌面
Ctrl + Alt + 右箭頭:旋轉到右邊的 Workspace
Ctrl + Alt + 左箭頭:旋轉到右邊的 Workspace
Shift + Ctrl + Alt + 右箭頭:將當前視窗移到右邊的 Workspace
Shift + Ctrl + Alt + 左箭頭:將當前視窗移到左邊的 Workspace



【Compiz】

Ubuntu 預設就有安裝了 Compiz,不過需要手動啓用:
桌面右鍵 > Change Desktop Background > Visual Effects > Extra

Ubuntu 會自動連上 Internet 安裝對應的顯示卡驅動,弄好後,檢查視窗是否有果凍效果。
(如果已經安裝了 Macbuntu,它應該幫忙處理好了。)

Compiz 非常強大,而且難以駕馭。
以致於有了一套 CompizConfig Settings Manager 輔助設定軟體還不夠,
還需要另一套簡單版的 Simple CompizConfig Settings Manager 輔助設定軟體。

安裝:
sudo apt-get install compizconfig-settings-manager
sudo apt-get install simple-ccsm

啓動:
System > Preferences > CompizConfig Settings Manager
System > Preferences > Simple CompizConfig Settings Manager

設定:
[ Simple CompizConfig Settings Manager ]
Effects > Switcher > Shift Switcher (Cover)
[ CompizConfig Settings Manager ]
Accessibility > Show mouse:[ Super + k]
Desktop > Expo > Expo Key:[ Super + e]
Desktop > Desktop Cube > Unfold:[ Control + Alt + Down]
Effects > Paint fire on the screen > Initiate (button):[ Shift + Super + 左鍵 ]
Effects > Paint fire on the screen > Clear (key):[ Shift + Super + c ]
Extra > Window Preview
Utility > Crash handle
Utility > Resize info
Window Management >  Shift Switcher > Next Window:[ Alt + Tab ]
Window Management >  Shift Switcher > Next Window (All Workspace):[ Super + Tab ]
Window Management > Resize Window > Initiate Rectangle Window Resize:[ Alt + F8 ]

Reference:
01. http://zx-1986.blogspot.com/2010/08/my-ubuntu-setup.html
02. http://playubuntu.blogspot.com/2010/09/ubuntugdm.html