Tuesday, November 16, 2010

NetGames 2010 Keynote



Topic: From Online Gaming to Cloud Computing
Place: ACM NetGames 2010
http://netgames2010.ntpu.edu.tw/keynotes.html

先謝謝昇瑋的邀請,才有這個機會在這樣的conference上分享我們做的東西,聽到很多很有用的意見。第一次講keynote,而且還是全程英文...我其實沒做過這種事XD,而且離開美國一陣子了,太久沒有講英文實在很卡,講起話來會不定時的跳針+腦袋轉不過來,不過總之反應都還不錯,大家對於這個概念都感到蠻新奇的,也蠻肯定的。會議中收獲比較大的就是認識了一些很有趣的researcher,像是從荷蘭來的,從德國來的,從法國來的...我覺得能碰到同個領域的人聊聊天真的是很棒的一件事。

另外檢討一下這次keynote的缺點,首先是不太流暢(畢竟完全沒有rehersal過),然後有想開頭但是忘記想ending導致ending很鳥,還有中間的transition跟example不夠多,另外video demo要加強要更能展現我們想表達的東西,最後就是要多加一些技術的東西進去...

關於PR的部份,這次因為一些原因(這次SC10實在太多新聞加上我們實在來不及準備好全部的東西)導致最後沒有真的發佈新聞稿,實在是蠻可惜的,不過我覺得等過一陣子我們把東西補上來之後,再請投資者來看請記者來寫會好一些。接下來就要全力拼進度了!!把前幾個月被拖到的進度一次補回來!!加油!!

另外,下一次發表就是明年了!! 試著衝一發DEMO Spring + GDC吧!! 要為台灣爭光啊~~

Saturday, October 30, 2010

Retrospection

回顧了一下這幾年的日子
突然有好多點點滴滴浮上心頭
有時候總覺得這一切一切來的不好真實
因為就像Steve Jobs所說的
當你往回看 一些當下不覺得很重要的決定 最後都串起來造就了現在的你
真的要追朔的話 要起碼從我大一下跑去打工開始講起

那個時候 原本只是跟阿達在系計中做做選課系統相關的開發 (看CIS版找到的)
後來不知道為什麼就跑去在清夜旁的小遊戲公司工作 (好像也是看CIS版還是怎樣找到的)
這是我第二次接觸到遊戲開發 (第一次是小學XD)
後來也就很理所當然的 大學專題就做MMOG 也就跟了袁老師的lab 也才認識了一群資科強者
也因為這樣 才會認識大河馬跟上謙 也才去參加YEF
而因為參加YEF 認識了很多人 J大點燃了心中的那一把創業的火
也因為參加了YEF第一次踏進美國 回國前默默的對自己說 「我一定會回來的」
後來沒過多久就去了IBM工作
也因為去了IBM工作 我才會在回國後這個比較正確的時間點 才真的創了業開了公司
(如果是兩年前就搞的話那就死定了...)
所以Steve Jobs送給Stanford畢業生的致辭裡 「connecting the dots」是我感觸最深的一句...

Thursday, October 21, 2010

Format Source Code Files in Shell

Simple enough, just a remainder:


$ (echo ":normal gg=G"; echo 'wq') | ex -s xxxx.cpp

Wednesday, October 06, 2010

OFED 1.5.1 on Ubuntu 10.04

There's some compatibility issue of OFED with Ubuntu 10.10 due to kernel changes, but as far as we know, Ubuntu 10.04 is compatible with OFED 1.5.1 (but not 1.5.2...)

To install OFED 1.5.1, which is a RPM-based package, you have to do the following:

- Install alien


$ sudo apt-get install alien


- Use bash instead of dash
- By default, the /bin/sh is linked to /bin/dash instead of /bin/bash, so you have to re-link /bin/sh to /bin/bash for the time being

$ sudo rm /bin/sh
$ sudo ln -s /bin/bash /bin/sh


- Install prerequisites

$ sudo apt-get install flex bison zlib1g-dev libssl-dev tcl-dev tk-dev


- Unpack the package

- Change install.pl and uninstall.pl to add --force-debian option
- replace in install.pl

my $rpminstall_flags = "";

with

my $rpminstall_flags = "--force-debian";


- replace in uninstall.pl

$RPM -e

with

$RPM --force-debian -e


- Install as root with --without-depcheck flag

$ ./install.pl --without-depcheck


- Select 2) Install OFED Software

- Select 3) All packages (all of Basic, HPC)

Done!

Friday, September 24, 2010

Git Update Master

As a git user, I used to work under feature branches, make changes and commit back to master at once. However sometime the master changes a lot and you have to pull changes from remote in master branch. Here's what I do to ease the messy branch switching...


#!/bin/sh
current_branch=`git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
git checkout master
git pull
git checkout $current_branch

Sunday, September 12, 2010

Autojump: Super-fast Directory Jump in Linux

這套小工具已經用了好久了,不得不說這實在太強大,尤其是我們source code的階層一多,一直要cd來cd去的,又跳上又跳下,有時候只是做件小事情,但光是要去那個目錄就要花好久...這個時候就要靠autojump來拯救世界了!!

Autojump: a cd command that learns
http://github.com/joelthelion/autojump/wiki


安裝方法很簡單,就像他wiki上說的,直接git clone下來之後執行install,然後記得要source他的profile就結束了。接下來他會記錄你每次cd到的地方,並偷偷的統計你常用的目錄。然後接著你就可以直接執行"j xxx"就會跳到那個目錄去...聽起來很神奇,這邊還是用個實際的例子示範一下:

假設我們目錄結構長這樣:


~/doc/pdf/
~/workspace/projects/efg/doc/
~/workspace/projects/abc/build
~/workspace/projects/cde/build


當你上面這些目錄都visit過(cd進去過)之後,autojump就會開始學習你這些常用的目錄,接著你只要打


$ j pdf


就會跳到~/doc/pdf,更神奇的是你還不用打全名,只要打開頭的字就好了,像是:


$ j p


就會跟上面的效果一樣,跳到~/doc/pdf。同樣的我們可以打這個目錄中任何一個子字串,像是我可以執行:


$ j efg


就會跳到~/workspace/projects/efg/下了。好了,雖然這樣很方便,但是如果有重覆的名字怎麼辦? 像是這邊我們有


~/workspace/projects/abc/build
~/workspace/projects/cde/build


這兩個目錄,他們都有build,如果我執行j build,那他會跳到那一個呢? 他實際上會跳到"比較常用"的那個,但是你如果想要有個選擇,只要打j build之後按tab,他就會出現數字讓你選擇...(這個很難用講的,實際上大家自己試試看就知道了)

總之,這個簡直就是Linux Shell狂人必裝!! 保證上手之後能節省你超多cd的時間啊!!

Saturday, September 11, 2010

HFS Alternative on Linux

很久以前在用Windows的時候,有一個小程式叫HFS (HTTP File Server)蠻好用的,可以馬上開一個小小的web server來share某一個檔案/目錄。後來換到Linux上之後比較少有這種需求,大部份都是開FTP Server or NFS就行了,不過總是覺得蠻麻煩的;剛剛稍微研究了一下,發現只要靠python就全搞定了XD...

在.bashrc裡加一行:

alias webshare='python -c "import SimpleHTTPServer; SimpleHTTPServer.test();"'


然後隨便在任何目錄下只要打webshare,就可以馬上把那個目錄分享出去啦!!

而另外一端要抓東西就可以透過browser或是直接wget...舉個例子來說,假設我要把整個目錄拷貝過去:

wget -r -nH --restrict-file-names=nocontrol [url]


這邊的-nH是要wget不要再建立"IP:PORT"的目錄,而--restrict-file-names=nocontrol則是為了確保兩邊filename encoding相同(如果都是Ubuntu就可以,一邊Ubuntu一邊Windows應該會出事.因為兩邊檔案系統的filename encoding應該不一樣)

那如果要像flashget那樣同時有多個session同時下載怎麼辦? 基本上wget沒辦法做到同一個檔案多個http session下載;但是如果是很多檔案在一個目錄下,倒是有人提出了一個work-around

wget -r -np -N [url] &
wget -r -np -N [url] &
wget -r -np -N [url] &
wget -r -np -N [url] &


這邊的-N是重點,簡單說就是wget會比較是否檔案已經存在在檔案系統上,如果是的話就跳過他;所以這樣一來這四個wget的instance就會某種程度上"合作"下載所有的檔案...

Sunday, August 29, 2010

N900入手一週



上上個個週末很衝動的就去敗了一支N900來取代之前快掛掉一天到晚drop call的HTC Magic,用了一個多禮拜,大概有幾點感想:

1. 一定要超頻到800MHz以上還要載入lv,要不然600MHz其實還是有點吃力,尤其是跑的東西一多(但是這要看運氣,像我這台運氣就不太好,跑到900MHz以上就不太穩,但是有人跑1GHz卻很ok...)
2. 非常Linux-friendly,用PC Suite模式連到Ubuntu就可以直接連線上網了,不像沒root的Android還要用有的沒的tethering app
3. 支援無蝦米(scim),不過我覺得scim還是有些bug,改天換我比較常用的gcin試試
4. 某些東西的整合做的沒有Android好,或者說還要自己調,像是相簿的部份,我只知道怎麼樣直接把"剛"照好的照片放到Facebook/Flickr上去,但是錯過那個時間我就不知道了,好像沒有一個比較整合的album app(雖然我覺得應該有,只是我還沒找...)
5. 螢幕還是輸AMOLED,雖然解析度高,但是在低背光的情況下我覺得鮮豔度比不上AMOLED
6. MicroB的browser蠻不錯的,速度很快,顯示也很正確
7. Easy Debian實在太肥了,裝起來的實用性欠佳
8. 內建的App Manager實在慢到爆表,用apt的系統不應該這麼慢啊,我目前是換Fast App Manager有稍微好一點
9. YouTube的整合不好,ZouTube不太能用,不知道是不是我不小心裝到了extra-devel下的版本...
10. 體積非常的肥大&笨重,不過看在他的鍵盤的份上就算了
11. 可以裝python跑pyrit,用來破解Wifi WPA,讚~
12. 可以直接skype (video) call,就算你是用3G網路也行(雖然我在捷運上試過效果不是太好...)
13. XChat, PCMan都可以跑,對於常掛在IRC上的人很方便~
14. synergy還沒有試成功,如果可以直接跑synergy就太強大了(但網路上似乎有人成功,大概要試著改改看synergy+)
15. 與Google的整合還可以加強,或是如果能支援Google Apps的email account就太好了(還是只是我不會設定?)
16. 支援Pidgin,所以理論上支援所有的IM Protocol...
17. 多工的介面非常好用,這點比Android 2.2強的多了
18. MicroUSB的介面有點麻煩,現在大家都是MiniUSB的,還得去買個轉換的(雖然據說是未來的標準...)

我還沒有開始在上面做開發,所以還稱不上"Hacking on N900",不過也許過一陣子比較閒一點的時候會考慮把整個kernel重編,把synergy移植上去,然後再加一些自己的東西試試吧 :)

Tuesday, April 27, 2010

VIM: Search Visually

參考這裡的:

http://vim.wikia.com/wiki/Search_for_visually_selected_text

如此一來就可以在Visual Mode中按"*"做search了

Friday, April 23, 2010

Toggle Window Selection Mode (Focus Mode)

之前用synergy太習慣了,滑鼠移到另外一個螢幕視窗就自動會變active的,就不用再點一下...
gnome也有這個功能,就是在System->Preference->Windows下可以選擇把"Select window when the mouse moves over them"打勾,這樣一來當滑鼠移到任何一個視窗上就會馬上變成active了,不過有的時候又不希望這樣,所以只好寫一個script來用熱鍵toggle這個選項:


#!/bin/sh
FOCUS_MODE=`gconftool --get /apps/metacity/general/focus_mode`
if [ "$FOCUS_MODE" = "click" ]; then
echo "focus mode = $FOCUS_MODE, setting to sloppy mode"
gconftool --type string --set /apps/metacity/general/focus_mode "sloppy"
else
echo "focus mode = $FOCUS_MODE, setting to click mode"
gconftool --type string --set /apps/metacity/general/focus_mode "click"
fi

Sunday, April 04, 2010

婚禮

昨天一口氣跑了兩場婚禮。

中午是資科大家長鏘鏘寧,場面一整個感人到不行,第一次看到新郎哭的比新娘還慘的婚禮(在新人對雙方家長致感謝辭的時候),連我在台下看到都快哭了...Orz...不過很開心啦!! 看到同學們一個一個嫁了/取了個好歸宿,我發覺下一個同學會的話題應該會變成開始討論一家幼稚園比較好,那一家才藝補習班比較會教之類的。

晚上是美國好朋友陳強尼的婚禮,聽說他從美國回來只花了兩個禮拜就把婚紗跟婚宴全搞定了,實在太厲害了。比較特別的是辦在高雄,整個民俗風情跟台北就一整個差很多啊!! 像是現場有二胡樂隊,台上主持人從頭到尾全都講台語,講了一堆有的沒的對子,還從到尾都給他押韻,而且還不管什麼人名給他他都有辦法講,實在是很有笑果,我佩服的五體頭地。

既然是婚禮,大家都會做影片,介紹新娘跟新郎,弄個像是編年史一樣的從出生開始交待新娘/新郎唸什麼學校、做什麼工作等等。看著一張張照片被飛快的帶過,這二十幾年的時光好像幾滴水默默的掉進時間的洪流裡,消失了。而新娘新郎原本是兩條平行的線,最後都奇妙的在某個時間點,因為一件很小的事情,最後交錯而踏入了婚姻。命運真的好奇妙。

還記得我才剛到美國的時候,陳強尼那個時候還沒跟包子在一起,一個人開著車跑來找我吃BJ's Pizza;然後過了兩個禮拜後包子就突然變成他女朋友了,而且還一直走到了今天,走進了禮堂。我每次回億起這些美國生活的點滴,都在想如果當初我沒有寄那resume給我主管,這一切都完全不一樣了。我不會認識陳強尼,學弟也不會認識包子,我們也不會因為不知道該吃什麼亂開車最後認識了櫻桃小姐,科科也不會現在跟梁妮閃到所有人都變成白內障;我也不會去法國,更不會跟S在一起;如果我沒有出國,我也許早就創業了,在那個時間點創業這一切也會完全不同;我不會找到現在這一群強者一起奮鬥,也許公司根本沒有機會活到今天...

很多很多的如果,但是就是因為有這麼多選擇,這麼多不可能的機率,讓我們所有人聚在一起。也許這一切都不是機率,而都是命中註定。人生的每一個轉彎,都要在你轉過去之後回頭看,才會發覺自己轉了好大一個彎,繞了好大一個圈。

而我是幸運的。雖然我擁有很多東西的同時,也失去了很多東西;但俗話說的好,「有捨才有得」,「施比受更有福」,這是我常常告訴自己的話。你永遠不會知道現在所失去的,將來會帶來什麼,也不會知道現在不計代價給的,將來會變成什麼助力。

寫這麼多只是突然有感而發。還記得包子對強尼的第一眼印象是:「這那來的怪叔叔...」,不知道那一天我如果真的碰到了未來的伴侶,我第她的第一眼印象會是什麼? 她對我的第一眼印象又是什麼?

Just Enjoy Your Life.

Sunday, March 07, 2010

FreeBSD Del/Backspace Problem

Though it has been discussed over and over, here's the solution I used right now to solve all delete/backspace key issues in FreeBSD csh (and in screen/vim as well)

Add to ~/.cshrc


bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[3~" delete-char
bindkey "\e[2~" quoted-insert
bindkey "\e[5C" forward-word
bindkey "\e[5D" backward-word


Add to ~/.vimrc

set nocompatible
set backspace=start "some said set bs=2 would also work, but I didn't try it