Thursday, November 12, 2009

很想寫但是沒時間寫的東西

其實這類東西還蠻多的,只好把他列出來等我有空或是有熱血有抱負的有為青年來寫了!

1. Viewport in Eclipse editor
這個簡單說就是像Office Word中可以把同一份文件開兩個區域(viewport)同時編輯的功能,
當程式碼很長的時候這個其實非常有用啊啊啊~~
印象中我曾經找到類似的plugin, 但是似乎是只有Java才能用(忘了)...
如果這個功能可以apply在任何的Eclipse editor就太強了~~

2. NFS on Windows 7
目前現有的Windows NFS Client實在都很鳥...
有Microsoft Windows Services for UNIX,
也就是Windows 7內建的NFS Client,可是不支援中文檔名(而且速度很慢);
而Labtam的ProNFS、LabF的nfsAxe、DiskAccess都不能在Windows 7上用...
我又不想在NFS上裝什麼samba這種Microsoft的東西,
所以一個有效率的NFS Client實在是很必需啊~~
而且這些軟體裝完看起來完全就是Windows 98時代的東西...fu很差XD

3. Advanced Software KVM
有一套open source的軟體叫synergy,
可以讓你用一組鍵盤滑鼠操控多台電腦,跨平台,甚至共用剪貼簿...
(不過要有多台螢幕,他只是共用鍵盤跟滑鼠)

不過他也是有缺點的,那就是介面太難用,
還有不支援檔案傳輸跟音效mixing跟redirection...
所以如果有一套像synergy的東西然後又可以直接在不同電腦之間copy&paste,
音效也會自動切換,那就實在太方便啦~~

4. Google Chrome Tree-Style Tab
我個人認為Tree-Style Tab一直是個殺手級的功能,
從最早我用Sleinpir到後來終於有人把這個功能移植到Firefox,
我才跳到Firefox去;可是Firefox真的愈來愈肥、愈來愈慢,
相較之下Google Chrome真的很快啊~

如果可以把這個功能也移植到Chrome上去我就會認真的考慮換Chrome了 XD
當然現在還沒有人做一定是有原因的,
像是Chrome的plugin framework似乎還不能加toolbar...
不過我覺得應該還是有辦法做,第一種可能大概就是用Chrome Frame,
然後就像Sleipnir一樣外面的tab control還是用自己的...
第二種做法就是在每一頁載入前把該頁面放到另外一個html frame裡,
然後左邊自己拼一個tree tab,雖然這效果不見得很好,
但是應該是做的出來就是了...所以...有沒有人要寫啊~~(揮手)

5. ...還有很多...懶的寫了...

Monday, November 02, 2009

冬天

我喜歡冬天

冬天可以滑雪 冬天可以窩在棉被裡賴床
冬天可以出國玩 更不用說小時候冬天可以拿紅包

而且好的事情總是發生在冬天 冷冷的天氣似乎總是有種把人帶進另一個時空的幻覺
你會看到楓葉飄落 會看到枯黃的山頭瞬間變的雪白
沒事做的早晨 可以兩個人一直賴床 躲在棉被裡什麼事也不要做 學熊冬眠
下午的時候 就算一陣陣冷冷的風一直吹啊吹 一道太陽打下來仍能溫暖微笑的臉頰

所以我很喜歡冬天

很多美好的回憶也都發生這個美好的季節
例如大一半夜冷的要死還是硬是要跑去寶山吊橋
例如以前半夜不睡覺因為很冷就把棉被包在身上只為了把某日劇一次全部看完
例如從新竹很拼命的騎了四五個小時到南投下大雨又冷的要死
例如從騎車下去台中把球球帶回來(想當初她剛來還嚇到尿在寵子裡)
例如因為某人的一句話花了13個小時從San Jose開到Seattle(到的時候都半夜了超冷的)
例如在在暴風月中來回不知道開了多久的snowboard初體驗(開著開著還會飄移)
例如...還有好多好多...

所以我很喜歡冬天 冬天是個會發生很多好事的季節
而這幾天感覺到冬天來了 好事也會跟著來了吧!

五月天 - 如煙

Saturday, October 17, 2009

一轉眼又快三個月過去了

愈忙愈會覺得時間過的很快
每天都在拼命似的 不知道在拼什麼
生活內容真的蠻乏善可陳的
簡單說就加班->睡覺->加班->睡覺
自己都覺得是一種很恐怖的循環
有的時候真的會有種心有餘而力不足的fu

最近健康檢查BMI居然是紅字了 Orz
要好好減肥了!!!! 可惡~~~
好懷念從前56公斤的時候啊!!!
而且剛還回去翻照片..有沒有差這麼多...

加油吧!!! 我想終點線就在不遠處...:)

Saturday, June 13, 2009

球球的病情分析: Evan's syndrome (IMHA + ITP) (possibly) triggered by lymphoma

背景:從上禮拜給了pred (2mi/kg)之後,HCT很快的爬回32,但是就再也沒上去了,之後給了CellCept其實也沒什麼幫助,而且中間白血球還莫名其妙飆到4萬9,不知道是CellCept的關係還是pred用久了的副作用;現在HCT又掉回24.5,而且球球出門會喘,再加上肝指數(ALT)已經飆到291了...不過剛剛冷靜下來,仔細的分析了一下現在的情況,其實該不該繼續用CellCept呢,畢竟光光壓制IMHA並沒有什麼效果,雖然據說他對號稱lymphoma有療效,但是在NCBI上完全找不到相關的文獻,更何況CellCept因為會壓抑bone marrow所以有機會造成貧血(4%~7%)...

分析:
1. 不只是RBC下降,PLT也遠低於正常值,既使現在脾臟已經移除了,PLT還是很低,尤其是這幾天我們以為是IMHA發作起來,PLT又從5百多又掉到1百多,也就是說其實他是ITP合併IMHA,也就是Evan's syndrome(這個term不是只有用在人身上,貓跟狗也有使用[1]);簡單說,抗體不只是在攻擊紅血球,也在攻擊血小板。

2. 在[2]對於貓的IMHA的survey也提到6/18隻IMHA的貓咪有thrombocytopenia,可能是因為DIC或是spleen enlargement,不過球球已經做了splenectomy,所以應該是有platelet-bound antibody,造成DIC(或IMHA造成了DIC?)。然後在[2]中有提到Coomb's test,球球好像沒做這個測試...這個是什麼啊?? 然後他提到pIMHA,也就是Primary IMHA,有比較好的預後,而其它大都由FeLV或是lymphoma所引起。照PCR的結果,球球應該是沒有FeLV,所以還是回到一開始懷疑的原因lymphoma了。

3. 其實不論是用CellCept或是用Mycophenolate Mofetil (MMF)去查其對IMHA的療效,幾乎都完全找不到文獻,唯一有找到的是在[3]這裡,提到Evan's syndrome有可能用ciclosporin, "mycophenolate mofetil", vincristine, danazol或是這幾種的結合,但是這些我相信這裡應該都是指用在人身上的;當然vincristine,也就就是oncovin,是李老師提到的,也是有免疫壓制的療效[4],也有用於leukemia。

4. IMHA發生在狗身上的研究就比較多了,而且在[5]提到使用azathioprine + low-does aspirin有非常好的壓制效果,而在[6]中提到,單單使用pred + cyclophosphamide並無法延長病畜的壽命,但是如果再加上azathioprine,則可以把median survival time從9天提升到370天! 所以我覺得azathioprine對於IMHA的是很有幫助的。在[7]中也提到了azathioprine是有幫助的,只是需要一個禮拜才能看到效果(!?)。

5. Heparin可以避免blood clotting,最主要是避免DIC所造成的pulmonary thromboembolism/embolism,因為她現在出門會喘,明明HCT其實跟之前比還算高的,然後今天又忘了做這個檢查,加上她的血小板這麼低...我覺得要防範一下打打看。

結論:我覺得是lymphoma的可能性還是在,所以李老師那個時候說的其實沒錯,如果給oncovin它本身就有壓制免疫的效果,所以理論上對IMHA也會有療效,也能壓制lymphoma,理論上真的會照他說的,藥下去HCT就會上來了。我覺得現在比較可能的策略,第一個是把CellCept停掉,換pred + azathioprine + cyclophosphamide + aspirin,這種方法的好處是cyclophosphamide也是對付lymphoma的chemotherpy,副作用也比較小,而且這也是[6]研究結果中認為對狗最有效的protocol;第二種還是把CellCept停掉,換pred + oncovin,這種做法的好處是,這是李老師推薦的,還有這藥比較強,對於lymphoma的壓制應該會比cyclophosphamide來的好(猜的),只是它對於免疫系統的壓制就不知道了。

另外吃這麼多藥對肝的毒性應該是很恐怖的,也難怪現在ALT來到291;現在已經有給她吃SAMe(S-Adenosylmethionine),應該多少有點幫助,明天看情況可能會再試著加上肝保(Milk Thistle),然後看能不能搭配上Hill's l/d減輕肝的負擔。至於之前買的Q10 coenzyme現在不太敢吃,查了一下它對免疫系統其實有強化的效果,現在可能不太適合。目前還在考慮的有Selenium的補給品,據說對癌細胞蠻有殺傷力的。

UPDATE:
azathioprine好像有點太強了,而且對有骨髓壓抑的副作用...還在想其它的替代方案(有嗎XD)。後來查到其實CellCept(Mycophenolate Mofetil)其實就是因為azathioprine其對於骨髓的壓抑太強大的替代方案[8]。另外,據說有比cyclophosphamide更沒有bone marrow suppression的chemo...還是要回頭打比較高劑量的pred勒? 但是太高劑量的pred打太久,會造成內分泌失調,唉...對付lymphoma + IMHA真的是很兩難...

UPDATE:
找到另外一個藥叫Rituximab http://en.wikipedia.org/wiki/Rituximab,是針對lymphoma的藥物,沒有bone marrow suppression的問題。但是沒看過在貓咪上使用,狗倒是有,而且沒效...Orz



[1] Immune-Mediated Thrombocytopenia-Current Approach. http://www.vin.com/proceedings/Proceedings.plx?CID=WSAVA2003&PID=6504&O=Generic

[2] Primary immune-mediated hemolytic anemia in 19 cats: diagnosis,
therapy, and outcome (1998-2004). http://www.ncbi.nlm.nih.gov/pubmed/16496936?ordinalpos=3&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum

[3] Wikipedia, Evan's Syndrome. http://en.wikipedia.org/wiki/Evans%27_syndrome

[4] Wikipedia, Vincristine. http://en.wikipedia.org/wiki/Vincristine

[5] Evaluation of prognostic factors, survival rates, and treatment protocols for immune-mediated hemolytic anemia in dogs: 151 cases (1993-2002). http://www.ncbi.nlm.nih.gov/pubmed/15934255?ordinalpos=3&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum

[6] Treatment of immune-mediated hemolytic anemia in dogs with cyclophosphamide. http://www.ncbi.nlm.nih.gov/pubmed/10935898?ordinalpos=4&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum

[7] Immune Mediated Hemolytic Anemia in Cats (IMHA), Autoimmune Hemolytic Anemia. http://www.petplace.com/cats/immune-mediated-hemolytic-anemia-in-cats-imha/page4.aspx

[8] Wikipedia, Bone marrow suppression. http://en.wikipedia.org/wiki/Myelosuppression

[9] Wikipedia, Mycophenolic acid. http://en.wikipedia.org/wiki/Mycophenolic_acid

Thursday, June 11, 2009

雜記: Variadic Template, Boost FunctionTypes, Boost MPL, AMQP

最近滿腦子除了球球的事之外,就是一堆C++ template,還有各式各樣的messaging system,整個快爆炸了。來筆記一下這幾天在看的東西好了;首先是為了要做比較直覺的RPC framework,不想要讓使用者自己encode parameter list,所以看了各式各樣的template的技巧,像是Variadic Template,之前完全沒用過,用了才發現其實這很強大...


template< typename T >
void print_comma_separated_list(T value)
{
std::cout << value << std::endl;
}

template< typename First, typename ... Rest >
void print_comma_separated_list(First first,Rest ... rest)
{
std::cout << first << ",";
print_comma_separated_list(rest...);
}

// 然後就可以這樣寫...
print_comma_separated_list(42,"hello",2.3,'a');


參考自: http://www.devx.com/cplus/Article/41533/1954
不過在g++裡要再多加個-std=c++0x或是-std=gnu++0x才能編譯就是了。

然後看到某個神人在GameDev發的文章,在講把C/C++的function bind進Lua的方式,用到了我之前沒看過的Boost.FunctionTypes
http://www.gamedev.net/reference/articles/article2629.asp
作者有附上原始碼,雖然在Ubuntu上因為libluabind-dev要用boost,而內建boost版本又太舊不能編譯之外,應該還蠻容易看懂的。我覺得比較神奇的是Executor的部份,原來可以用這樣的方式依據不同數量的parameter來選擇template specialization啊...每次看別人寫的template都有種:「原來可以這樣啊!!」的感覺 Orz

截取一小段程式碼:

// 這是Executor的部份...
template< class Arity, class ParamTypes, typename ResultType >
struct Executor;

// 0 parameters
template< class ParamTypes, typename ResultType >
struct Executor< Int2Type< 0 >, ParamTypes, ResultType > {
template< class Fn > ResultType operator()(Fn& fn, const AnyParams& /*params*/) {
return fn();
}
};

// 1 parameter
template< class ParamTypes, typename ResultType >
struct Executor< Int2Type< 1 >, ParamTypes, ResultType > {
template< class Fn > ResultType operator()(Fn& fn, const AnyParams& params) {
return fn(
boost::any_cast< boost::mpl::at< ParamTypes, boost::mpl::int_< 0 > >::type >(params[0]));
}
};

// 這是Command的部份
template< class Fn >

struct CommandT : public Command {

CommandT(const std::string& name, const Fn& fn)

: Command(name)

, fn_(fn)

{}


// ...略...

// Executer for void return type

int Execute(lua_State* lua_state, Int2Type) const {

AnyParams params;

try {

boost::mpl::for_each< ParamTypes >(Extractor(lua_state, params));

} catch( std::exception& /*ex*/) {

//LOG_ERROR_LN("Error in extract");

throw;

}

Executor f;

f(fn_, params);

return 0;

}

// ...略...


Boost.FunctionTypes搭配Boost.MPL ==> 整個非常強大,這樣就可以很容易的bind RPC callback而不用自己去decode network buffer;不過麻煩的在於呼叫的時候,現在的想法大概是類似Boost.Function + Boost.Bind,用類似的宣告方式,但是內部真的在呼叫的時候是會自動去encode network buffer,不過這樣寫起來實在太麻煩了,不知道有沒有比較簡單的方法....還在想要怎麼辦才好...


然後本來要自己寫的broker最後放棄了,實在太花時間了,看那些TRAM、TOTEM、各式各樣的reliable broadcast,還有各式各樣的reliable membership dissemination,頭都昏了;其實用現成的MQ就夠了,反正這個不太要求效能,重點是要reliable跟fault-tolerant啊! 所以再次重新研究了一下現在能用的messaging system,大概有幾套:
1. Spread Toolkit (但是已經不maintain非常久了..不太敢用...囧)
2. OpenAIS (作者的進度一直delay)
3. JMS
3.1 ActiveMQ (歷史悠久啊...也有ActiveMQ-CPP支援C++ client,CMS的介面定的還不錯)
3.2 FioranoMQ (最近有出了個報告說它是市面上最快的MQ...只是要錢 XD)
4. AMQP
4.1 OpenAMQ (應該是AMQP的第一個實作吧,感覺好像蠻有那麼一回事的,應該要來試用看看)
4.2 ZeroMQ (又一個號稱地表上最快的AMQP實作,雖然他有圖有真相,還號稱支援Infiniband...不過怎麼沒什麼提到fault-tolerance的部份勒...)
3.3 Qpid (這個是Apache的C++ AMQP實作,我研究過他的原始碼,其實寫的還可以,只是居然depend on OpenAIS,然後似乎有打算支援Infiniband,但是雖然程式碼有寫,可是根本沒有使用...囧)

其實AMQP裡還有很多有名的實作,像是之前twitter使用的RabbitMQ,只可惜他沒有C++ client,要不然真的可以考慮一下。目前最看好的大概就是ActiveMQ,接著是FioranoMQ,然後是OpenAMQ,Spread Toolkit,最後才是ZeroMQ (沒辦法,ZeroMQ似乎reliability的部份不清不楚)。其實照理論上,我覺得如果OpenAIS有好好的、認真的把它寫完,而且還有人繼續maintain的話,應該會是最強大的,畢竟它和Spread Toolkit一樣是唯二實作totem ring protocol的;當然用totem跟TRAM或是其它的方式都有好有壞啦,只是我個人比較偏好totem的reliability跟recoverability。

反正不管用什麼MQ,上面應該都會用類似JMS/CMS的介面包起來吧,畢竟AMQP是JMS的generalization,應該不成問題才是;但是麻煩的是reliability跟system administration,這個還是留到之後再考慮吧!

Sunday, May 31, 2009

這一個禮拜來的奮戰

大家好,球球是隻三色波斯,今年9歲,
本來都很健健康康的,一直到了上禮拜日(5/24),變的非常的虛弱。
帶去新竹安欣才發現她的脾臟腫好大一個,而且紅血球指數非常低,
需要輸血並動手術...但是很不幸的她血型是非常少見的B型(1000隻才5隻)

這就是一切的開始。

這一個禮拜來我們好不容易找到一隻可以輸血的貓咪,
又好不容易緊急動完手術...
但既使到現在,我們也還是搞不清楚問題出在那,紅血球還是持續的往下掉,
所以這一個禮拜以來,球球就跟一堆藥物還有氧氣機為伍,
看她這樣真的很心疼...

而這幾天的數據突然開始拼命的往下掉..這真的很緊急,
我們希望能再次拜託各位意願幫忙的版友們,
如果你手邊有符合以下條件的貓咪,也意願幫我這個忙的,在新竹或台北都可以,請麻煩聯絡我。
如果沒有也沒關係,希望你能幫忙轉錄或問看看...真的非常非常非常的感謝你!!!!

1-7歲、4-5公斤以上、B型的貓咪
但99%的主人都不知道自己貓咪的血型
但如果是波斯貓、金吉拉、英國短毛貓、短尾貓、虎斑或是純黑色的米克斯,
都有比較高的機率是B型的;而阿比西尼亞貓更有高達1/4的機會是B型。

所有的費用我都會負擔,只要可以把球球救回來....託託你了!!

聯絡方式: 0988328852 宋先生

球球這一個禮拜的日記:
http://www.wretch.cc/blog/philer/15528578

Sunday, May 24, 2009

[求救] 貓咪急需B型血


大家好,我家球球(三色波斯)脾臟血管肉瘤需緊急動手術,
但是血紅素跟血小板數值都太低,需要輸血,
偏偏她是B型的,很難找到相配的貓咪,
希望台北版友能幫幫我這個忙,
只要您的貓咪1-7歲超過5公斤是B型的,若不知道血型,
但如果是波斯貓、英國短毛貓、短尾貓、虎斑或是純黑色
就有機會是B型的血型。

拜託大家救救我家球球....
相關的費用我都會出,要花多少錢救她回來我都願意...
只要各位好心的貓把拔跟貓馬麻願意救救我家球球..

Email: nctusdk@gmail.com
聯絡方式: 0922105302/0988328852 宋同學

謝謝大家!!!!!!


-----更新2009/05/26 1:36AM-----

謝謝各位版友的幫忙,球球昨天已經找到可以配的B型血貓了!!!
真的很感謝大家的幫忙,讓不可能變成一個奇蹟...
因為指數掉的太快,在剛剛晚上十點的時候已經完成手術...
雖然手術算是成功,但是在打開來後才發現她其它器官的狀況...
簡單說...情況蠻槽的...就算開完刀...球球可能也只有幾天或一個禮拜的日子了...
我想我日後再跟大家報告好了...
最後要再一次謝謝大家無私的幫忙!!!!! 謝謝你們!!!!!

Saturday, May 02, 2009

韓國吉它小神童 Sungha

之前就寫過啦,最近有一段時間沒有一直follow他的video,昨天打開來看一聽,挖賽! 一陣子沒有更新他又進步了,有沒有這麼強啊!! 聽了會有種感動的fu....
而且一段時間不見,總是沒表情的他居然會對鏡頭笑了!!!! 太神奇了!!!

(Masa Sumide) Romance: 彈的超完美


(Alex Kabasser) Sadepisara: 這首超有活力的,中間泛音的技巧真是太厲害了


他另外還自己寫了一首新的曲子,還不錯!

Compiz Refreshing Problem

解法是參考這裡的:
http://fedorasolved.org/Members/mock/fix_refresh_nvidia_compiz_f10/?searchterm=None

很簡單,只要先裝compiz-manager,然後修改/usr/bin/compiz-manager裡的build_args()變成這樣:

build_args()
{
    if [ $INDIRECT = "yes" ]; then
        COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering "
    fi
    if check_nvidia; then
        #COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding"
        COMPIZ_OPTIONS="$COMPIZ_OPTIONS"
    fi
}


然後重開GDM就好了!

喔耶!! 一次搞定!!
不用裝xfce-terminal了,PCManX也不會爛掉了!!
不過我已經習慣xfce-terminal了..他的字型rendering比較清楚XD

雖然沒有仔細研究為什麼這樣就行了..反正現在用的很開心很順XD

Friday, April 24, 2009

Ubuntu大改造 - Part 2

上一篇寫了一堆基本的設定,這一篇就來寫一些terminal下的設定啦! (身為一個CS的學生,沒事改改terminal也是很正常的!!)

首先是我的vimrc,裡頭基本上都是來自於vim tips的,我覺得像是F12是蠻好用的,由其是當你要從browser或是其它source裡貼一些東西到vim裡時,他的自動排版會讓整個亂掉,這個時候按F12就會進入paste mode,貼上去之後再按一次F12換回來。然後當要在不同的vim之間互相copy/paste的時候,我把Ctrl+C map到把目前visual selection cp到~/.vbuf,然後Ctrl+V map到把~/.vbuf放回buffer,也是蠻不錯用的。


接著是screenrc,如果你不知道什麼是screen...快去學!!! 超好用!! 以下的設定也是參考網路上的,反正就會讓你的screen下面多一條tab bar來顯示目前狀態。


然後我的bashrc..其實沒什麼特別的,只是覺得自己常把ls打成l、s、sl、lsl、sls(打太急),為了避免重打一次,就加了下面幾行:


然後最後推薦大家一個網站,叫commandlinefu,看上面的command會學到很多東西!! 像是"!!"代表上個command,像是[enter] + "~" + "."可以把frozen的ssh關掉,像是"cd -"可以回到上次的目錄,還有在vim裡如果編輯完才發現忘記sudo,可以用":w !sudo tee %"來救...這個網站真的很讚!! 強烈推薦!!

(這篇還真短...騙更新吧!!)

Ubuntu大改造 - Part 1

記一下免得之後忘記

以下是針對Ubuntu 8.10的設定,雖然9.04出了,但是我怕一更新我的LDAP就爛了XD。另外,一定會有人愛用Lazybuntu,但是我不太喜歡裡面裝的東西跟一些設定,所以還是自己來了,而且自己來自由度比較大,能改的東西比較多,也會學到比較多東西~

以下寫的很雜,沒有一定的順序,反正就是流水帳記一下我裝了&改了那些東西罷了~

從安裝開始,先全部選英文(因為我不喜歡用中文介面..),等到裝完之後再去System->Administration->Language Support加入中文的支援(記得把"enable support to enter complex characters"打勾喔~)。

接著是美化中文字型。雖然說內建的中文字型在8.04之後就沒看過漏字的問題了,但是內建字型就是一整個不好看啊!!(個人偏好) 所以蘋果的儷黑體是一定要裝的啦!!所以要找台mac把字型cp出來,要不然就是在網路上找一下就有了。

把字型cp到/usr/share/fonts/truetype或是HOME目錄下的~/.fonts/都可以,然後sudo fc-cache -fv就安裝完成囉!
除了儷黑體之外,網路上也有人試過微軟的正黑體啦,不過據說效果不是太好(原因就要請教對font rendering有研究的大神了)

另外一個可以裝裝看的是"WenQuanYi Zen Hei"這個字型,SF上有提供deb檔,抓下來點一下就OK了。

在裝完字型之後,接著就是要調整字型。Ubuntu內預設最常使用的是serif、sans-serif、monospace這三個字型。通常網路上都是說去System->Preference->Appearance裡就可以改Application/Document/Desktop/Windows Title Font,但是似乎firefox不吃這個設定,要另外再去firefox裡面改...而且我怎麼改都覺得怪怪的,所以還是從最根本的X11 font config手才是王道啊!!

解法是參考自這裡的,步驟如下:

cd /etc/fonts/conf.d
sudo ln -s ../conf.avail/69-language-selector-zh-tw.conf

然後編輯69-language-selector-zh-tw.conf,修改成下面的樣子(取自OSSF的連結)


接著重開機或是重開Xwindow就行啦!!所有使用serif、sans-serif都會自動被map到儷黑體了! (monospace就不要改了,儷黑不是等寬字,改了terminal會變很醜XD)

接著,就是中文輸入法的部份了。中文輸入法的部份我推薦gcin,原因很簡單,因為scim很爛...XD。但是要把gcin裝好也不是那麼容易,因為Ubuntu內建的gcin太舊了,我是抓別人編好的gcin 1.4.3 deb下來裝的,原來的網址我一時找不到,但是我有把deb留著,需要的人再跟我要吧! Ubuntu內建是使用scim,當你選了"enable support to enter complex characters"時他就會把scim裝進去了;我建議是不要把scim砍掉,因為我試著移除過,看到連language-support-zh都會一起移掉我就放棄了,反正有im-switch,在裝完gcin之後執行:

im-switch -s gcin

再logout/login之後gcin就應該會自動啟動了! 另外一點是新版的gcin(好像是1.4.0之後),會內建gcb,也就是你會看到一個三個按鈕的浮動視窗一直停留在畫面的右上角,我個人是蠻討厭有個東西在那邊的,gcb是用來做剪貼簿管理,對我來說沒什麼用,所以關掉的方式就是在gcin的icon上按右鍵選"Configuration",然後選"Default input method and toggle key",然後最下面有個gcb winwow position,可以選成"Close",這樣就看不到那個視窗啦!!

另外,因為本人愛用嘸蝦米,所以裝嘸蝦米也是必要的啦!! 這個網路上有太多文章在講怎麼裝了,我就跳過了,不過我是有現成做好的gtab啦,直接cp到/usr/share/gcin/table/就可以用了,需要的人再跟我拿唄。另外如果想要改造一下gcin的圖示,在這裡可以下載,有各式各樣的style喔!

到目前為止中文的支援差不多搞定啦。接著多媒體的支援我其實也沒有搞的很好,反正記得加入mediabuntu的repository,然後把該裝的裝一裝應該就OK了。要看rmvb推薦使用mplayer,然後如果有PS3的話可以裝PS3 Media Server,就可以直接從你的PC上streaming資料到PS3播放!! 不過目前這個版本有些mp3不能播,有些影片不能播,這個部份的設定我也還沒有搞清楚...不論如何,這套是一定要推的!

接著是firefox的部份。大家都說linux上的firefox簡直就是慢到吐血,事實上的確是如此XD。而原因是什麼勒,其實我也不清楚,有人說是NVIDIA顯卡driver的問題,有人說是filesystem的問題...反正我的目標是只要能tune到能開到30~40個tab以上還反應蠻快的我就可以接受了!! 所以首先就是要把firefox丟掉...啊? 沒錯! 把firefox丟了,改用swiftweasel或是swiftfox這些最佳化過的firefox! 網路上比較多人用swiftfox,但是我在amd64上面完全沒辦法搞定gcin的輸入問題(但i386是ok的),所以我才改用swiftweasel的,解開來執行就一次搞定! (當然還要在about:config裡設一堆有的沒的,這個google一下就很多,我就不在這裡寫了)

設定flash player請見這裡: http://ubuntuforums.org/showthread.php?t=954100

雖然swiftweasel的icon醜了點,但是至少能用而且效能還不錯。最新版的swiftweasel更新到firefox 3.0.8版本,修正了bilinear filtering的問題,所以之前在linux上image scaling會變成一塊一塊的很醜的問題就解決了! 如果你的swiftfox or swiftweasel有這個問題的話,強烈建議更新啊!! 另外這個問題有的人的說法是NVIDIA顯卡driver的問題,我是沒有用Ubuntu內建的nvidia driver,而是用CUDA的display driver(其實應該是差不多的,只是CUDA的通常比較新),如果沒有開發CUDA的需求的人,裝內建的proprietary driver也是可以的,至少開啟compiz比較不容易出現問題。

Compiz的部份,這個就見人見智了,有的人不喜歡開一堆有的沒的特效,堅持活在文字模式才是hacker的做法;有些人喜歡什麼都開,硬要把桌面搞的很好萊屋。我的話則是會把Wobbly Windows關掉,因為在那邊彈來彈去的很煩,然後開Desktop Cube跟Rotate Cube讓它可以轉轉轉,還有把Annotation打開,把Fading Windows關掉...反正記得裝compizconfig-settings-manager就對了,裡面有一堆東西可以調。在裝了Compiz之後,你會發現gnome內建的terminal會出現莫名其妙的refresh問題,有的時候你打個ls,但是他卻沒有refresh,游標還停在同一行之類的;這個問題也跟NVIDIA的顯卡driver有關係,不過比較快的解決方法就是不要用gnome-terminal,改用xfce-terminal,它跟gnome-terminal幾乎完全一樣喔,只是預設的顏色比較不習慣罷了,所以我就直接裝xfce-terminal,然後把xfce-terminal的顏色mapping全部改成gnome-terminal的顏色,而且個人覺得同樣的字型,但是xfce-terminal的rendering比gnome-terminal來的清楚...不知道為什麼。

然後還有一些快速鍵的部份,像是display desktop在Ubuntu裡預設是Ctrl+Alt+D,我習慣用windows的binding,改成Windows-D (或者說SuperL-D),還有加上Windows-E打開nautilus,這些google一下就有啦~印象中是去改gnome裡的register設定...

音效的部份因為後來Gnome都改用PulseAudio了,這裡的設定我覺得還蠻混亂的,為了要讓Skype跟一些有的沒的軟體能跟PulseAudio和平相處,請參考這裡: http://ubuntuforums.org/showthread.php?t=776739

最後的最後,就是要修改桌布跟登入畫面啦!!...好像有點太快就到最後了,好啦,我其實跳過了很多東西,像是裝Acrobat Reader,screenrc, vimrc, bashrc,....這就留到下一次吧!! 而桌布跟login畫面(gdm theme)網路上有很多,不過我就簡單show一下我現在的桌面還有login的畫面吧! (至於最近出的Ubuntu 9.04,我還在觀望中,等比較多人用的時候再來換吧!! 希望裡面一些舊到不行的repository能早日更新~~)






Tuesday, March 17, 2009

Must-read RSS feeds

As an entrepreneur in HPC field, I read all of the following RSS feeds everyday:

- Venture Capital Related
http://news.ycombinator.com/rss
http://feeds.feedburner.com/Techcrunch
http://feeds2.feedburner.com/TheFunded
http://feeds.venturehacks.com/venturehacks
http://feeds2.feedburner.com/vv
http://feeds2.feedburner.com/Venturebeat

- High Performance Computing Related
http://www.hpcwire.com/blogs/index.rss2
http://www.hpcwire.com/topic/systems/index.rss2
http://www.hpcwire.com/topic/developertools/index.rss2
http://www.hpcwire.com/whitepapers/index.rss2
http://www.hpcwire.com/news/index.rss2
http://www.hpcwire.com/topic/networks/index.rss2
http://www.hpcwire.com/features/index.rss2
http://insidehpc.com/feed/
http://blogs.intel.com/research/atom.xml
http://scalability.org/?feed=rss2

It's about 50 new posts per day. I believe you can find more if you're a faster reader and have more spare time on reading.

Sunday, March 15, 2009

近況: 很忙 + Game Developer Conference 09

最近真的是忙的沒日沒夜
今天問飛比 你都上班到幾點
他回答的很妙說 「睡覺前!」
真的是很真實的反映出我們的生活啊Orz

這禮拜五要飛去舊金山參加GDC09
感覺會蠻刺激的啊!!!
五天總共八百多個session
絕對不可能聽完的 只好選有興趣&有用的來聽了
晚上還有networking event到半夜一點
我看應該會累到爆炸
週未還要跟老朋友聚餐
看來是沒時間到處晃晃了

另外 最近NVIDIA大動作搞了個GPU Venture Program
隨便跟資工的學弟聊一下就知道CUDA
GPU真的是愈來愈紅了!! (which is a very good sign)
要加緊腳步快點把該寫的東西寫一寫了!!!!

(雖然這麼久沒文章了 可惜還是生不出幾個字Orz)
繼續忙!!!