三月 6, 2010
» 更改Debian預設安裝桌面的方法

Debian netinstall光碟安裝KDE LXDE XFCE為預設桌面的方法:在開機時,按tab在開機選項後面加上 desktop={kde|lxde|xfce}之後安裝時就自動會安裝 KDE|LXDE|XFce 為預設桌面囉!

二月 6, 2010
» 好文一篇:Re: [問卦] 有沒有念資訊一定要討厭windows的八卦

這篇文章看了覺得寫的不錯,因此經過原作者同意後,就轉過來了。文章代碼(AID): #1BR7wzrt (Gossiping) 作者 Freak1033 (金が信念! XD) 看板 Gossiping 標題 Re: [問卦] 有沒有念資訊一定要討厭windows的八卦 時間 Sat Feb 6 04:25:29 2010───────────────────────────────────────※ 引述《HollisterCo (海鷗)》之銘言:: 身邊有些朋友念資訊的: 但是莫名其妙的就會說你怎麼還在用微軟的東西: 媽的爛死了之類的 你看linux都不會當機 也不會中毒: 用linux才屌!! 用甚麼GUI 弱者才再用: 強者都用CLI!!!!: 是不是真的打打指令就比較厲害??????? Q_Q唉呀,

一月 27, 2010
» Upcoming Django 1.2 & PostgreSQL 9.0

http://docs.djangoproject.com/en/dev/topics/db/multi-db/#topics-db-multi-db
Django 1.2 新功能: Multiple databases

PostgreSQL 9.0 新功能 Hot Standby跟Streaming Replication

http://wiki.postgresql.org/wiki/Streaming_Replication

http://developer.postgresql.org/pgdocs/postgres/hot-standby.html

還沒空試, 不過結合這幾個新功能的話似乎可以有效的分散django資料庫端的read/write, 將write-only database server上的WAL(write-ahead log) 即時streaming到read-only database server上的hot standby database, 感覺好像不錯~~

十二月 29, 2009
» [tips] 續: 設定 Logitech G5 in Linux 補強版

話說兩年前買了一支羅技的G5滑鼠
在工作的linux環境上用到目前仍然非常滿意
之所以會說很滿意 是因為G5其實有一個很好按的大姆指鍵
大家都知道xwindow裡只要選取了文字
就會自動"複製"選到的文字
然後按下中鍵就可以"貼上"
但是目前的滑鼠都有滾輪的設計,
所以這個複製貼上的功能變成了按下滾輪
在linux裡我就用xmodmap這個程式
將這個大姆指鍵取代xwindow中鍵貼上的功能,
因為按下滾輪其實我覺得要用力按,
而複製貼上其實是還滿常用的功能
其實感覺還挺傷手的
另外我也用xbindkey將滾輪向左向右的功能做來切換視窗
而滾輪按下變成剪貼簿裡的貼上,
(即Ctrl+V, 跟xwindow的複製貼上不同)
設定的詳情可以看我2年前的文章
http://timchen119.blogspot.com/2007/12/logitech-g5-in-linuxxwindow.html

前幾天升級系統的時候不小心把滑鼠滾輪向左向右切換視窗的功能給砍了~ 因為兩年沒設定 連自己都得再找一下原本的設定方法
就在找方法的同時
剛好看到一個lomoco的hack可以將g5的硬體dpi按鈕關掉,
改用軟體控制
但是lomoco這個加強羅技滑鼠在linux上支援的程式本身並沒有支援G5, 於是就順手弄了一支python程式g5mouse.py,
可以改用軟體操縱DPI的設定,
這樣我們在G5上還可以多出了兩個按鍵可以自行設定!

廢話不多說,
首先先easy_install g5mouse

localhost tim # easy_install g5mouse
Searching for g5mouse
Reading http://pypi.python.org/simple/g5mouse/
Reading http://code.google.com/p/g5mouse/
Best match: g5mouse 0.1
Downloading http://pypi.python.org/packages/source/g/g5mouse/g5mouse-0.1.tar.gz#md5=d3347dbf261135049cb6e5a6be133355
Processing g5mouse-0.1.tar.gz
Running g5mouse-0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-oHyJGh/g5mouse-0.1/egg-dist-tmp-6Vn5h_
warning: install_lib: 'build/lib' does not exist -- no Python modules to install
zip_safe flag not set; analyzing archive contents...
Adding g5mouse 0.1 to easy-install.pth file
Installing g5mouse.py script to /usr/bin

Installed /usr/lib/python2.6/site-packages/g5mouse-0.1-py2.6.egg
Processing dependencies for g5mouse
Finished processing dependencies for g5mouse

localhost tim # g5mouse.py  
Usage: g5mouse.py [options] /dev/usb/hiddev0

g5mouse.py control logitech G3,G5,G7 and G9's hardware dpi buttons on linux

Example: g5mouse.py -d 1600 -l 1 /dev/usb/hiddev0

Author: timchen119.at.gmail.com

Options:
-h, --help show this help message and exit
-d DPI, --dpi=DPI set dpi: 400,800,1600,2000
-l LED, --led=LED set led: NONE,1,2,3,ALL
-n, --nodpibuttons disable + and - DPI speed buttons



然後就可以透過g5mouse.py這隻程式軟體設定DPI,
(可以切換到400,800,1600,2000四種DPI 比原先的還多一種
而且也可以自行設定LED燈號)
比如

你要切到DPI 2000並將所有指示DPI的LED設成第一個
就可以下
g5mouse.py -d 2000 -l 1

預設是DPI 1600跟LED全關掉 預設device是/dev/usb/hiddev0
所以你也可以只下g5mouse.py -d 800 就可以將LED全關掉 並將DPI設到800
如果加上-n這個選項 還可以把硬體控制DPI button的功能關掉
這樣我們就會多出兩個button可以自行設定
將這個程式放在你的.xprofile (XDM)或是.xinitrc/rc.local裡
讓他開機自動執行
再來我們就多出了兩個按鈕可以操控囉~

我就用xbindkeys將+號設定成Ctrl+C 而-號設成Ctrl+V
並把原先的滾輪按下的功能給取消以免誤按~

我目前的.xbindkeysrc.scm

(xbindkey '("b:6") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Up]'")
(xbindkey '("b:7") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Down]'")
(xbindkey '("b:9") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[V]'")
(xbindkey '("b:10") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[C]'")
(xbindkey '("b:11") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Up]'")
(xbindkey '("b:12") "/usr/bin/xvkbd -xsendevent -text '\\[Control_L]\\[Page_Down]'")


另外這隻程式不止支援G5, G3/G5二代/G7/G9 都可以操縱~

十二月 16, 2009
» E-Sun WebATM at Ubuntu 8.04+(32 / 64bits皆宜)

= 後記 =
我現在也可以在 Ubuntu 9.10 amb64 上使用了
= 後記結束 =

曾經上過一堂英聽課,老師在課堂上問我:「未來在台灣,可不可能是男女平權的」? 我說:「不可能,因為有很多事男人可以作,但女人不能作!」 她接著問:「以前女人沒有投票權,現在有了; 以前女人的工作單一,多半是在家照顧小孩,現在卻可以選擇非常多樣的職業。目前的確是男女不平等,但一天一天進步,總有一天是男女平權的。」

是的,很多事物的狀態不是靜止,而是動態的。

過去,我回到 Windows 下,不外乎是 WebATM 轉帳、報稅及列印某些特定格式的文件。但現在,「 WebATM 轉帳」功能可以在我的 Ubuntu 9.04 i386 上成功使用了,我相信未來「報稅」一定也可以,而這「特定格式文件」總有一天會不存在或是沒必要使用。

感謝玉山銀行的技術團隊讓我們可以使用這麼方便的軟體,我決定下一次轉帳一定要用玉山銀行 WebATM ,給它收取 17 元的手續費(註1 請見文末附圖)。有機會,我也要辦玉山銀行的戶頭,因為我住埔里,最近的分行在草屯,所以不能想辦就辦。而且,我還要買 2884 玉山金的股票。

有趣的是,之前我就聽過華南銀行也想脫離 IE 的魔掌,不過反到是玉山銀行先作到了,先講可沒有先贏呀!

我在 Ubuntu 9.04 中,是使用 Firefox 3 及虹堡科技 EZ-100PU 讀卡機來作 WebATM 操作的。安裝方法如下:

# sudo apt-get install pcscd libpcsc-perl pcsc-tools libccid

因為虹堡 EZ-100PU 讀卡機目前提供的驅動程式並不支援 Ubuntu 8.10/9.04 預設的 pcsclite(pcscd) 套件,如果您使用的讀卡機是這個型號,在安裝 pcscd 套件後,下載這個以 libUSB 編譯的 pcscd ,覆蓋原來的 pcscd 。

# tar -zxf pcscd_for_LibUSB.tar.gz
# cd pcscd
# ./install.sh

再到虹堡科技的網站下載 EZ-100PU 的Linux(Ubuntu)驅動程式

# tar -zxf 200962419545046871.gz
# cd EZUSB_Linux_x86_v1.4.7_For_Ubuntu
# ./check_env
# sudo ./install
# sudo reboot

重新進入系統後,請插上你的讀卡機,並檢查所有程式是否正確安裝:

# pcsc_scan
PC/SC device scanner
V 1.4.14 (c) 2001-2008, Ludovic Rousseau
Compiled with PC/SC lite version: 1.4.99
Scanning present readers
0: CASTLES EZ100PU 00 00

Fri Jun 19 15:49:51 2009
Reader 0: CASTLES EZ100PU 00 00
Card state: Card removed,

有看到 EZ100PU 及 Card removed 字樣,表示讀卡機正確安裝,且未插晶片卡。這時候再插入晶片卡,可以看到 Card inserted 字樣,即表示硬體安裝已完成。

Fri Jun 19 15:50:22 2009
Reader 0: CASTLES EZ100PU 00 00
Card state: Card inserted,
...

最後打開 Firefox ,並到 https://addons.mozilla.org/zh-TW/firefox/addon/12324 下載玉山銀提供的 firefox plugins 安裝後,即可在玉山銀的 WebATM(https://netbank.esunbank.com.tw/webatm/) 中使用。

* 註1: 男子漢不空口說白話。

十二月 11, 2009
» 要賣 9 本 Perl 的書(再補一本,共 10 本)


請上露天拍賣網址(結標時間:2010-01-0213:56)

書籍近照:

底價定 300 元,只要是郵資費夠,我就賣掉。

為什麼要賣掉呢? 因為我想我不會再研究 Perl 了吧! 過去,我剛入門 Linux 的時候,那時系統管理員最好用的工具語言是 Perl ,所以為了把 Linux 管好,我花了不少心力學它, Perl 幫助我找到人生中的第一份工作。但是後來,約五年前,我開始常寫網頁系統時,卻無法拿它來用,那時還沒流行 Web Framework ,所以我當然不知道有 Catalyst 的存在,於是我學了 PHP ,用它來寫網頁。

那時的我是 PHP/Perl 兩頭玩,直到兩、三年前, Ruby on RailsDjangoTurboGears 的出現,我才開始認真地想把「系統管理」、「網頁設計」及「學術研究」的工作用同一種語言來解決,最後選的是 Python + Django ,因為 Python 當時的數學函式庫比 Ruby 豐富,所以我們老大就說用 Python 好了,雖然那時我是比較想用 Ruby on Rails 的,當時 Rails 的氣焰比較高。

不過,現在看來,選擇 Python 應是比較符合我的個性,因為我個人是比較龜毛,喜歡 SOP (標準作業程序),所以過去用 Perl 時,有太多種表現的手法後,在我個人寫的程式上,風格十分隨便,反正看不懂了,就再寫一個,而這點, Ruby 的特性就有點類似 Perl 了。

也是用了 Python 後,我才發現過去喜愛 Perl 的程度,不如我以為的那樣高。這讓我想到重慶森林裡的廚師莎拉與漢堡薯條的故事:「沒有嘗試過,你如何知道真正喜歡的是什麼」。所以,我想把這些 Perl 相關的書籍留給其他適合的讀者。願意作它們的新主人嗎?

十一月 22, 2009
» Mercurial 的 Windows 使用者應該要注意 \r 的問題

目前常見的作業系統有 Solaris, Ubuntu Linux, Fedora Linux, FreeBSD, XXX Linux, YYY BSD, Mac OS X 及 Windows ,而這些系統中,除了 Windows 的換行符號是用 \r\n 外,其他的都是用 \n 。

所以當 Windows 使用者將他們的程式碼上傳至版本控制器時,換行符號會以 \r\n 為主,然後我們其他使用 Mac OS X 及 Ubuntu Linux 的人,在上傳程式碼時,又可能會將換行符號換成 \n ,那麼在作版本比對的時候,只差 \r 的資料行也秀出來了,這實在不利於比對效率。不過這一點, NetBeans 倒是聰明地將只差 \r 及空白的資料行作忽略。

但話說回來,有時候,我們是在遠端 ssh 連線下,作設定檔或是程式碼的比對,這時候,如果出現一堆 ^M 符號也是挻困惱的。

所以這時候,就要請 Windows 使用者多作一個設定,讓他們在 push 檔案時,能自動將 \r 移除。

如果你安裝的是 TortoiseHg ,那麼請到你的安裝目錄下找一個 Mercurial.ini 的檔案,把它打開,加入下列內容:

[extensions]

hgext.win32text=

[encode]
** = cleverencode:

[decode]
** = cleverdecode:

[patch]
eol = crlf

[hooks]
pretxncommit.crlf = python:hgext.win32text.forbidcrlf


一般而言, extensions, encode, decode 區塊是預設就有的,只是需要移除註解,而 patch, hooks 則是自行增加。

這樣以後在作 push 時, hg 會事先把 \r 移除才送出去。

十一月 21, 2009
» 莫明奇妙的 _ 網域名稱錯誤: 只發生在 IE 上

嚴格地說,這也不是 IE 的錯, IE 只是遵守規範而已。但是因為 Firefox 的容錯能力,讓我們一時以為是 IE 太爛了。

問題是這樣的:

我學弟使用 Windows 加 apache 配置一個測試網站給業主使用時,一直面臨 IE 不能登入,但 Firefox 卻正常的問題,而該網站在 django development server 運作時,卻又沒有問題。他搞了非常久,大概有一個月吧!

我幫他 debug 時,一開始,我就把問題縮小在 IE 瀏覽這 apache 上的測試網站時,它不會紀錄 Cookies,沒用 Cookies ,那怎麼保持認證連線呢! 只是那時候,我也是找不出為什麼那該死的 IE 就是沒法使用 Cookies ,而優秀的 Firefox 就可以呢! 然後,我使用了 Ubuntu Linux 配置這個測試網站結果發現它可以讓 IE 正常運作,所以我們當時只能歸納這問題,一定是他的 XP 出了狀況。

結果前兩天,他要把測試網站放到業主的機器上去 run 時,還是出了相同的問題,然而這次不一樣的是那個機器有兩個 django-based site ,但一個正常,一個不正常。這就有點說不過去了。

於是,這次我請教了 Google 大神,問它: django cookie session problem ie ,而它回我: http://code.djangoproject.com/ticket/7264#comment:3

這原來是 _ 的錯,因為學弟習慣將測試網址設成 test_XXX.YYY.ZZZ ,而我習慣設成 XXXtest.YYY.ZZZ ,因為我知道在買網址時只可以買英數字加連字詞(-)的,所以我不會在網域名稱中放入 _ ,也就是這個習慣讓我在 Ubuntu Linux 中架的測試網站是可以讓 IE 正常使用,但學弟架在 Windows 上的測試網址卻包含了 _ ,讓 IE 勇於拒絕他的要求了。

這同時也解釋了為什麼在 django development server 運作時, IE 可以正常的現象,因為它會使用 http://127.0.0.1:8000/ 作瀏覽網址。

哈哈,真不曉得該怪 IE ,還是得怪 Firefox 呢! 不過,話說回來,要是早點問 Google 大神,這問題就不會拖一個月了。

十月 15, 2009
» List all of installed packages (easy_install eggs)

List all of installed packages (easy_install eggs)
example::

>>>import pkg_resources
>>>pkg = pkg_resources.AvailableDistributions()
>>>for i in pkg:
>>>    for j in pkg[i]:
>>>        print j

see also::
Package Discovery and Resource Access using pkg_resources

十月 3, 2009
» Optimize the battery usage in Ubuntu 9.04 on Asus eeepc 1000HE

P6180097
Annecy.France

Yesterday, I brought my eeepc to office. I wanna try link it to my big screen LCD and see how it works. If possible, I want to control my office notebook under ubuntu remotely. In this way, I can control the computer in the way I want it, and still, being able to access all the necessary apps in windows.

However, out of no reasons, when changing the xorg settings to adapt the LCD resolution, my compiz 3D effects are all gone. A bit panicked, I gave up this idea and back to my original work style.

In addition, I also found that the battery strength is much less than what I observed in windows xp. Even turning CPU to powersave mode, the indicator shows 4 hour usage at most. This is a big shock for me. The long battery usage of this model is the very reason I bought it. If this is broken in ubuntu, then I may need to consider going back to windows xp platform.

Fortunately, the problem is much easier to solve than I think. Thanks for the enormous eeepc users, the power usage under ubuntu is being improved continuously. And the patch/tool on the internet is already very stable. This problem can be solved by simply installing several packages. One thing to notice though, the battery monitor in ubuntu is not quite accurate. Don't trust it. Install powertop to get a better measurement and some hints are also available to tell you how to improve the battery usage.

Two packages I used for this problem:
eeepc-acpi-utilities
eeepc-tray
http://sourceforge.net/projects/eeepc-acpi-util/
Introduction


I also found another package that can help you to quickly toggle H/W modules (wifi, bluetoo, webcam, etc).
eee-control

Now, it's time surfing~~

十月 1, 2009
» customize Opera to be vimperator-like

R8075681.JPG
Seattle.US

It's hard to connect to plurk.com under ubuntu. So I tried to install Opera and set up the proper proxy for hinet network. And the result is: wonderful!

So, I started to browse some websites by using Opera. In this way, I don't have to keep going back and forth between firefox and Opera. However, I am  too addicted to vimperator under firefox that sometimes I accidentally press the wrong commands in Opera.

After searching some materials on the internet, I found that the keyboard shortcut management on Opera is flexible enough to do most of the tricks in Vimperator!! And all I have to do is to install a ini file that is already customized by other opera users. What a great news for me. :)

Here's the link, have fun!!
http://my.opera.com/Blazeix/blog/vimperator-for-opera

» _NET_WM_ICON 資料在64bit OS上之輸出

日前由於手上有一個64bit的Linux,便幫忙PCMan前輩測試了一段程式碼,茲將心得貼於下方。此bug由來是因為Lxpanel中的工作列上,工作圖示無法正確顯示。先來看看來自xmisc.c的原始碼:data=alloca((pib.width*pib.height+2)*sizeof(long));data[0]=pib.width;data[1]=pib.height;for(j=0;j a=&(pib.pixelPtr[j*pib.pitch]); r=&(a[pib.offset[0]]); g=&(a[pib.offset[1]]); b=&(a[pib.offset[2]]); a=&(a[pib.offset[3]]); p=&(data[2+j*pib.width]); for(i=0;

» 讓OpenSUSE 11.0 每個虛擬主控台都有背景

日前使用openSUSE 11.0,驚訝於他的tty1有背景。但其他tty就沒有相對應的背景,因此上網找資料想達成這個目的。以下即為我找到的方法openSUSE的文字背景,是bootsplash這個程式提供的功能。這個程式主要提供開機畫面(silent),以及tty背景畫面。該程式主要設定檔在/etc/splashy/config.xml主題放在/etc/bootsplash/themes/資料夾中預設主題為openSUSE,在其中的config資料夾中,存有不同解析度的config檔案。但這些config檔案載入以後會秀出silent的畫面,也就是會出現開機畫面。因此我們要對他作修改,讓他只含有background的設定。可以先看/proc/splash檔案中的內容,了解splash運作的模式# cat /proc/splash以bootsplash-1024x768.cfg

» Gnome設定工具:GConf 簡介

昨晚修改一些bash shell script的時候,發現這個工具可以用命令列的方式修改gnome裡面的一些設定,蠻方便的。因此就來稍微寫個簡介。gconf的運作方式類似Windows上面的登錄檔,使用一個具有目錄結構的視窗來編輯一些桌面環境的偏好配置。底下以ubuntu為例,簡單介紹一下gconf的一些功能以及配置方式。gconf的運作包含以下幾項:gconf各項設定值所儲存的文件gconfd-2:背景執行的deamongconftool-2:命令列中的設定程式gconf-editor:圖形化的gconf設定程式gconf的文件路徑保存於/usr/share/gconf/default.path此一檔案中,可概略分為force settings, user performances, 以及system defaults 。force settings表示這些設定使用者不能變動,user

» SELinux初探心得

星期六聽了小州大哥講的SELinux後,發現SELinux真是個不錯的東西。不過只要去Google一下SELinux,卻會出現這些東西:selinux關閉、turn off selinux 、stop selinux ...因此小弟就在這邊將小州老師上課提到的重點,加上cdchen老師所寫的RHEL5系統管理寶典中的重點整合在底下。之前Linux中關於檔案存取的權限處理,有幾種方法:基礎的權限:[billy3321@localhost practice]$ ls -ltotal 32drwxrwxr-x  2 billy3321 billy3321 4096 Oct 13 15:33 directory-rw-rw-r--  1 billy3321 billy3321   16 Oct 13 15:32 file-rw-rw-r--+ 1 billy3321 billy3321   25

九月 28, 2009
» Setting Up an MPICH2 Cluster in Ubuntu 8.04 LTS Server (Quick-Note)

MpichCluster

Setting Up an MPICH2 Cluster in Ubuntu 8.04 LTS Server (Quick-Note)
(https://wiki.ubuntu.com/MpichCluster)

===========================
1. 更改 /etc/hosts,方便遠端直接快速連結。
===========================

假設有兩個 mpi node,所有 node 的 /etc/hosts 都需修改

master@mpi-1:~$ sudo vi /etc/hosts
master@mpi-2:~$ sudo vi /etc/hosts

10.211.55.5 mpi-1
10.211.55.6 mpi-2

=================================
2. 安裝及設定 NFS,讓各 node 有共享的 master folder。
=================================

master@mpi-1:~$ sudo apt-get install nfs-kernel-server

(在此以 mpi-1 主機作為 master)

設定 NFS 目錄與掛載權限

master@mpi-1:~$ sudo mkdir /mpi
master@mpi-1:~$ sudo vi /etc/exports

/mpi *(rw,sync)

master@mpi-1:~$ sudo chown master:master /mpi
master@mpi-1:~$ sudo /etc/init.d/nfs-kernel-server restart

在其他 node 掛載 mpi-1 master folder

master@mpi-2:~$ sudo mkdir /mpi
master@mpi-2:~$ sudo chown master:master /mpi
master@mpi-2:~$ sudo apt-get install nfs-common
master@mpi-2:~$ sudo mount -t nfs mpi-1:/mpi /mpi

==========================================
3. 安裝 ssh,設定金鑰讓各 node 之間以 master 帳號連結不用輸入密碼。
==========================================

(主要是為了方便往後可在 scripts 裡設定各 node 自動串連)

master@mpi-1:~$ sudo apt-get install ssh
master@mpi-2:~$ sudo apt-get install ssh

master@mpi-1:~$ ssh­-keygen ­-t dsa
master@mpi-1:~$ scp .ssh/id_dsa.pub master@mpi-2:~/mpi-1.pub
master@mpi-2:~$ cat mpi-1.pub >> .ssh/authorized_keys

master@mpi-2:~$ ssh­-keygen ­-t dsa
master@mpi-2:~$ scp .ssh/id_dsa.pub master@mpi-1:~/mpi-2.pub
master@mpi-1:~$ cat mpi-2.pub >> .ssh/authorized_keys

測試登入 (不用輸入密碼)

master@mpi-1:~$ ssh mpi-2
master@mpi-2:~$ ssh mpi-1

============
4. 安裝 MPICH2
============

http://www.mcs.anl.gov/research/projects/mpich2

只要在 mpi-1 master folder 安裝一次即可

master@mpi-1:~$ cd /mpi
master@mpi-1:/mpi $ wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.1.1p1/mpich2-1.1.1p1.tar.gz

master@mpi-1:/mpi $ sudo apt-get install build-essential
master@mpi-1:/mpi $ mkidr mpich2
master@mpi-1:/mpi $ tar xzvf mpich2-­1.1.1p1.tar.gz
master@mpi-1:/mpi $ cd mpich2­-1.1.1p1
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ ./configure --­prefix=/mpi/mpich2
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ make
master@mpi-1:/mpi/mpich2­-1.1.1p1 $ sudo make install

設定 PATH 環境變數 (每個 node 都要設定)

master@mpi-1:~$ vi .bashrc
master@mpi-2:~$ vi .bashrc

export PATH="/mpi/mpich2/bin:$PATH"
export LD_LIBRARY_PATH="/mpi/mpich2/lib:$LD_LIBRARY_PATH"

在各個 node 上測試程式路徑是否正確

master@mpi-1:~$ which mpd
master@mpi-1:~$ which mpiexec
master@mpi-1:~$ which mpirun

master@mpi-2:~$ which mpd
master@mpi-2:~$ which mpiexec
master@mpi-2:~$ which mpirun

============
5. 設定 MPICH2
============

在各個 node 上建立 .mpd.conf 及 mpd.hosts

master@mpi-1:~$ vi mpd.hosts
master@mpi-2:~$ vi mpd.hosts

mpi-1
mpi-2

master@mpi-1:~$ echo MPD_SECRETWORD=xxx-xx > .mpd.conf
master@mpi-1:~$ chmod 600 .mpd.conf
master@mpi-2:~$ echo MPD_SECRETWORD=xxx-xx > .mpd.conf
master@mpi-2:~$ chmod 600 .mpd.conf

啟動各個 node 的 mpi service

master@mpi-1:~$ mpd &
master@mpi-1:~$ mpdboot -n 2
master@mpi-2:~$ mpd &
master@mpi-2:~$ mpdboot -n 2

在各 node 上檢查是否運行成功

master@mpi-1:~$ mpdtrace
mpi-1
mpi-2

master@mpi-2:~$ mpdtrace
mpi-1
mpi-2

完工

=====================
6. 另外可搭配安裝設定 mpiBLAST
=====================
master@mpi-1:~$ sudo apt-get install libncbi6 libncbi6-dev ncbi-data ncbi-tools-bin ncbi-tools-x11 libncbi6-dbg csh

Installation Guide:
http://www.mpiblast.org/Docs/Install

.

九月 26, 2009
» How to launch media players with mms protocol in Firefox in Ubuntu

R8075953
Taipei.Taiwan

J'ai fait le bar-bee-cue avec mes colleagues ce matin.
Cet endroit se situe pres de ma compagnie; 
donc on s'est joint devant la compagnie.

= = =

In order to select a proper media player for the mss protocol in firefox, you have to add some new properties in about:config. Here's what I set for suit my own purpose.

network.protocol-handler.app.mms user set string /usr/bin/X11/smplayer
network.protocol-handler.external.mms user set boolean true

九月 23, 2009
» 如何在ubuntu9.04中透過windows mobile的internet sharing上網

R8075831.JPG
Taipei.Taiwan

城市中盛開的花。

****

在asus epc 1000HE上使用ubuntu9.04的感覺,真是愉快得不得了。明明windows xp已經夠輕量了,應該run起來要很smooth才對,但總覺得1000HE跑起來比我三年前的notebook還要不順。最近不知道是中毒了還是怎樣,常常會發生系統快要死當的情形:一會兒檔案總管沒動作,一會兒firefox罷工,連微軟自家的IE也常常沒有回應。原本打算要灌windows 7來玩玩看的,無奈免費下載的期間早就過了,我也懶得再去找現成的iso檔回來試。

ubuntu9.04出來時,聽說它的開機速度有下過一番苦功,一直沒有機會好好試一下。所以,我變節了,直接把系統換成ubuntu9.04。六百多MB的光碟映像檔,不用半個小時就抓完了。安裝的時候很順,除了那個硬碟分割的軟體很鳥,每新增或刪除一個磁區,它都要重新在那兒轉上半天,有點惱人。

灌完系統後,有線網路直接可以運作(這從很早期的ubuntu開始,就已經支援得很好了),第一件事便是把我常用的中文輸入法--無蝦米--灌起來。由於之前都是在用linux系統,我早就在我的gmail裡準備了一套字庫檔和輸入法圖案。下載下來後,先裝了scim-tables-zh,讓我可以在scim setup中載入我自己的字庫檔。就這樣,無蝦米回來了。

最近還申請了3G上網吃到飽的方案。週末有時會把電腦和手機一起帶出去,在坐捷運時使用。這下問題來了。在Windows下,只要直接把手機接上電腦,然後選擇internet sharing就可以開始用網路。在ubuntu下,就沒這麼直覺了。一開始我看到在NetworkManager下有Mobile BroadBand的選項還以為在這邊做些設定就可以一切搞定,但是後來發現事情並沒有想像中那麼簡單(雖然也沒有多難啦)。

1.首先請把subversion裝起來,因為要利用它來抓一個package
$ sudo apt-get install subversion
2.利用svn抓usb-rndis-lite的原始碼
$ svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite
cd usb-rndis-lite/
3.更改原始碼
$ vi rndis_host.c

在第524行,可以找到下面這段程式碼
if (tmp <>hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
goto fail;
}
請把它改成下面這樣:

if (tmp <>hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
retval = -EINVAL;
/* goto fail;*/
}



4.編譯程式並安裝之
$ make
$ sudo ./clean.sh
$ sudo make install

5.把手機連上電腦,並且在手機上選擇Internet sharing的選項

6.讓它可以抓到dhcp傳來的ip address
$ sudo dhclient

Okay啦!

***

在epc 1000HE上,要讓它支援3D的超炫畫面也很簡單,只要到system->preferences->appearence下,Visual effects選擇Extra就行了。更多詳細的設定可以透過安裝某些package來達成。網路上有很多文件了,我就不再這兒多說了。

九月 16, 2009
» 自動更新 hg 儲存庫的 shell script

因為 hg 不同與 svn 可以資料夾結構來看待專案,在 hg 中,一個專案就是一個資料夾,其下不會有子專案,所以像我手頭有二十幾個 hg 專案時,如果要同時更新( pull -u )這些專案,我必須一個專案一個專案進去打 hg pull -u ,這實在太花時間了。但還好我用的是 Linux ,所以就把這些煩人且重複的指令寫成一個 shell script ,執行一次就更新全部。以下是我的程式碼:

#!/bin/bash
today=`date +%Y%m%d`
me=`whoami`
echo ${today}
original_dir=${PWD}
touch '/tmp/.'${today}

if [ "$1" != "" ];then
dest=`find $1 -regex ".*\/\.hg$"`
else
dest=`locate -r "\/home\/${me}\/.*\/\.hg$"`
fi

for dir in $dest;do
if [ ! ${dir/*mercurial_appengine*/} ];then
continue
fi
cd ${dir}/..
echo -ne "\t*** ${PWD} ***\n"
hg pull -u || exit
cd $original_dir
done

九月 14, 2009
» screenrc 再進化

改進來源:設定 screen我也screenrc

我新的 screenrc 如下:

shelltitle '$ | '
hardstatus alwayslastline "%?%{yk}%-Lw%?%{wb}%n*%f %t%?(%u)%?%?%{yk}%+Lw%? %{-} %= %{= KR} %l %{-}%{= KG} @%H %y-%m-%d %{-}%0c:%s"
bindkey "^[[1;5A" screen
bindkey "^[[1;5B" other
bindkey "^[[1;5C" next
bindkey "^[[1;5D" prev
startup_message off
maxwin 10
另外在 .bascrc 中,須加入:
case "$TERM" in
screen)
PS1='\033k\033\\\\\u@\h: \W\\$ ';
;;
*)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
;;
esac
為了讓我清楚了解那個 Window 在幹什麼事,我另外在 .bashrc 中定義 alias sh_django="./manage shell" 及 alias core2duo="ssh -A 123.345.456.456" ,這樣在 window title 上就會顯示它現在在執行的是那一個指令。整體效果如下:


A Feedjack powered Planet
A Django site.