用 NFS 安裝 FreeBSD
做個小筆記
我主要是參考:http://www.freebsd.org/doc/handbook/network-nfs.html
最近在弄一臺機器,FreeBSD 一直灌不上去,後來學弟查了之後跟我說是 SATA driver 的問題(我想說怎麼可能,大概是別的問題吧。不知道,反正一直出現讀取錯誤就是了)。
所以後來就看了一下 handbook ,然後自己架了一個 NFS server ,透過 NFS 安裝,其實還蠻容易的。
先在 server 上面放入 FreeBSD 安裝光碟,然後掛載:
# mount_cd9660 /dev/acd0 /cdrom
然後設定 NFS 要分享的目錄,打開 /etc/exports ,加入:
# /cdrom1 -alldirs <host1> <host2>
<host1> 是你要准許那些機器來存取你的 NFS ,用 IP 或是 hostname 表示,可以有多個,中間就用空白隔開就好了。
-alldirs 這個參數是允許 client 個別掛載該目錄的子目錄,handbook 說透過 NFS 安裝的時候要加這個參數。
啓動 NFS 相關 daemon:
# /etc/rc.d/nfsd onestart
# /etc/rc.d/rpcbind onestart
註:啓動 nfsd 會一併啓動 mountd
接下來就依照平常安裝 FreeBSD 的方式,用光碟開機,然後做磁碟分割、選 distribution ,只是,在選 media 的時候要選 NFS ,然後在跳出的對話框輸入:<server>:/cdrom ,記得把 <server> 換成自己的 NFS server 的 IP 或 hostname 。
接下來設定網卡,記得所設定的 client 的 IP 必須符合剛剛的 <host1> 或是 <host2>
最後按下 Commit 就開始安裝了。
如果想要掛載這個 NFS (不是在安裝的時候):
# mount <server>:/cdrom /mnt/
第一個參數 <server>:/cdrom 是 NFS server ,第二個 /mnt/ 是掛載點
Nice ,搞定!
Nexus S 開箱
我等這支好久了,Nexus S 美國去年12/16就上市了。
今年初就在傳說 Nexus S 將會引進臺灣,原本傳說是中華電信,結果後來是臺灣大哥大代理。一傳出可以預購的消息我就馬上跑去臺灣大哥大預購了,我去3/6預購的時候連 DM 都還沒到,店員還不知道價錢多少(我跟他說:「不是18900嗎?」,他還嚇了一跳)。訂金1000元。
3/24 下午,我收到簡訊說可以取貨了,就興沖沖的跑去領貨了。我原本只打算買空機,後來店員跟我廣告說可以搭配學生方案每個月489 3G 吃到飽加200月租費(可以抵通話費),綁30個月,手機只要13900(如果我沒記錯的話)。如果不是我已經有另外一張 3G sim 卡,我一定會搭配他們的方案的……最後當然還是只買了空機,18900 NTD 。
臺灣版的 Nexus S 改採用 super clear LCD (SLCD) ,全世界除了美國與英國採用 AMOLED 之外,都是 SLCD 。
詳細規格嘛,就自己看吧:http://www.google.com.tw/nexus/#/tech-specs
來開箱囉!(搓手
背面(sorry 相機有點晃到了)
Nexus S 的 logo 啊(膜拜
打開囉~
配件:電池、USB線、USB 充電插頭、耳機
開機~Google logo (啊讓大家知道我的相機了)
神聖的 Nexus logo
Welcome to Nexus S!
第一次進到主畫面(不要緊張,Nexus S 當然有中文界面,只是我忘記改)
補一張背面照
光源感應、聽筒、前置鏡頭
好啦,就先寫到這裏,關於軟體的測試改天再寫
我第一次寫開箱文耶,抱歉相機品質有點差(大概是光源的問題吧)
希望這是全臺灣第一篇 Nexus S 開箱文XD
我與自由軟體
接觸自由軟體這麼久了,漸漸開始有一些感觸。
我與自由軟體的第一次接觸是在八年級的時候吧,那時候有一位對電腦非常有興趣的地理老師跟我介紹 Ubuntu ,那時候我雖然有聽過 Linux ,不過因爲沒用過,所以並沒有太大的好感,也沒有什麼開放原始碼的概念。會去試用 Ubuntu 有一大部分是因爲 Compiz 超炫的特效。嘗試 Ubuntu 之後,我愛上它的漂亮、簡單與速度。
漂亮,應該是那時候吸引我用 Ubuntu 最大的原因。相較於 Windows 千年不變的主題與新細明體,Ubuntu (或者應該說 Gnome )有太多主題可以選了,那時候 Ubuntu 的中文字型(文泉驛正黑)也是一大原因。在我改用 Ubuntu 之前,曾經花很多時間研究怎麼把 Windows 的佈景主題與字型改的更漂亮,那時候試了很多軟體,結果發現很多進階功能都要付費,而且系統被這些軟體拖得很慢。
簡單,那時候我感到很驚奇的是,管理、安裝軟體怎麼可以這麼簡單?還有與 Windows 完全不同的檔案系統,所有使用者資料都在一起,所有程式資料都在一起。給人一種統一、一致、包裝好的感覺。
速度,這個不用多提。
這麼棒的軟體,讓我想要更瞭解它。
我瞭解到自由軟體與開放原始碼的概念,我真的強烈覺得,這個世界上,怎麼會有一個這麼偉大、這麼崇高的理想,更不可思議的是,怎麼會有這樣的一群人,懷抱着如此遙遠的夢想?
而且,這個夢正快速的往現實邁進。
有人說,大部分的程式設計師都會選擇使用 Mac ,因爲 Mac 是 unix-like ,在 unix-like 的平臺上進行開發比較方便,而且 Mac 非常友善,使用容易。在 Linux 的世界裏,這些程式設計師得花一部分的心力在「建置、維護開發環境上面」,沒有辦法達到最大的生產效率。Mac 讓這些程式設計師可以專注他們的心力在真正的開發上面,不需要分心去維護系統。
Ubuntu 算是扭轉了這一切。
不過我個人覺得,對於一個十幾歲,剛接觸 Linux 不久的人(就是那時候的我啦)來說,剛開始(10.04 以前)的 Ubuntu 也並沒有非常友善,我還是跟一堆怪怪的問題奮鬥了很久(主要是 driver 的問題)。
一直到 Ubuntu 10.04 Lucid Lynx ,Ubuntu 往前跳了一大步,我裝 10.04 的時候是一路順暢,裝完 driver 馬上可以用,真的已經到達所謂的 “works out of the box" (好啦,一打開還不能用,裝完才能用),我甚至覺得,10.04 的可用性已經超過 Mac 了,反而是我在用 Mac 的時候遇到很多挫折(內建的終端機好爛,iTerm 好一點,可是 irssi 換 window 會有問題)。而且我喜歡 customizable 的東西,在 customizability 的部分,Ubuntu 絕對大勝 Mac 。
所以,目前在我心中,作業系統的喜好程度是 Ubuntu >> Mac ( windows 與 Mac 中間有太多(趨近於無限)大於了,所以看不到)
- Ubuntu :友善,開源,可自訂程度高(不用設定就很友善)
- 其他 Linux, BSD:不友善,開源,可自訂程度最高(如果設定的好的話就會很友善)
- Mac :友善,不開源,可自訂程度中(系統本身可自訂程度低,但是可以裝開源、自定程度高的軟體)
- Windows :不友善,不開源,可自訂程度低(也可以裝開源程式,可是比較麻煩)
不過,Ubuntu 有個長久以來就有的問題,每次升級一定會爆掉,至少在 10.04 之前都是如此。我不知道 10.04 到 10.10 會不會,因爲我不敢試 XD
Ubuntu 算是陪着我長大啦,我也算是陪着它長大,我開始用的時候是 7.10 ,一直用到現在。我覺得,10.04 開始就像 Ubuntu 的青春期,是進步最快的時期。11.04 又將要帶來一次大變革。
在 10.04 之前,支持我繼續使用 Ubuntu 的動機是對於自由軟體這個偉大理念的認同與熱情。
從 10.04 開始,支持我繼續使用 Ubuntu 的動機主要是它真的好用,再加上上面那個理由。
Ubuntu 現在真的是一套「給每個人的 Linux 」了,如同它的宗旨, Linux for everyone
我與自由軟體的故事幾乎可以等同於我與 Ubuntu 的故事了。
因爲社團的關係,相對於 Ubuntu ,我反而更熟悉 FreeBSD 。我只是單純「會用」Ubuntu ,不瞭解 Ubuntu 的架構(或是說 Debian 系的架構)。可是我不止會用 FreeBSD ,還「算是」瞭解 FreeBSD 。我覺得,就算不瞭解 Ubuntu ,也一定能夠用它。可是不瞭解 FreeBSD ,就不會用它了。
所有作業系統最 user-unfriendly 的地方,就是安裝界面了,就連 Windows 也一樣,有多少人不會重灌 Windows ?其實安裝 Ubuntu 的過程沒有比 Windows 困難,我相信只要會灌 Windows ,就一定會灌 Ubuntu 。灌完之後,Ubuntu 的 usability 絕對是大勝 Windows 的。
Ubuntu 各個方面都是大勝 Windows ,問題是宣傳!宣傳!
另一個阻止 Ubuntu 被使用的原因可以說是人的習慣。
大部分的人總是懼怕改變,(而且似乎在臺灣特別嚴重),這個大家一定都知道,對於人的習慣,我想,我們真的沒有什麼可以做的。我想大部分推廣新東西的人,不管是產品、政策、概念還是自由軟體,一定都會有這種感慨。唉。
不過,我想我們可以從比較願意接受新事物的年輕人開始。大學生,甚至是高中生。我想他們一定會更容易受這個偉大的理想所感召。
現在,我想我除了更努力之外,也只能無奈吧。
願原力與我們同在。
啓用 MySQL general query log
最近要在 FreeBSD 底下優化 WordPress ,於是第一步當然就是從資料庫開始囉。
general query log 會記錄所有的 query , debug 的時候非常好用
直接開設定檔 /usr/local/etc/my.cnf ,如果沒有的話,可以從 /usr/local/share/mysql/my-*.cnf 複製。
找到 [mysqld] 這段,在後面加上:
general_log=1
還有個 optional 的選項:
general_log_file=yourname.log
可以指定 log 檔案的名稱,沒有加的話會用 hostname
restart 之後去 /var/db/mysql 就可以找到 log 檔了
general query log 的量非常大(當然還是要看用戶數),所以 debug 完之後最好趕快把它關掉。
正常
其實有時候我也想像個正常高中生啊,玩活動啊、加學生會、努力讀書,補習、打綫上遊戲……不要開口閉口就是「爛蘋果」、「爛windows」、看錯誤訊息之類的。
只是,每次看到網路上那些大大們,望之彌高,就越感覺自己的渺小。於是又希望自己能夠追隨他們的腳步,前面的那些東西也就拋到九霄雲外了。
臺灣人使用拼音輸入的問題
好吧,必須承認,使用拼音輸入的臺灣人真的並不多。
那爲什麼我要用拼音輸入呢?說來話長啊……
起因在於我想要試用 Dvorak 鍵盤排列,關於 Dvorak ,請看這篇。
我剛換到 Dvorak ,就發現 ibus 新酷音(注音)輸入法(ibus-chewing )根本不支援 Dvorak 鍵盤。於是我又下定決心換到拼音輸入。
等我把拼音輸入弄熟,大概又是兩個禮拜之後的事了。
剛開始用的時候,熟悉羅馬拼音最花時間,還有一些拼音完全拼不出來(這個待會再提)。
臺灣用的拼音系統五花八門,每個人用的習慣都不一樣。像是清音與濁音的差異(/p/ 與 /b/ 、/t/ 與 /d/ 等等),臺灣幾乎是混用的像是「臺北」我們拼成 Taipei ,可是在拼音輸入法裏面要拼成 Taibei 才打得出來。以ㄓ爲例,就有好多不同的拼法:
- 漢語拼音:/zh/
- 注音二式:/j/
- 通用拼音:/jh/
- 威妥瑪拼音:/ch/
- 耶魯拼音:/j/
大陸統一使用漢語拼音,臺灣也已經「規定」使用漢語拼音,但是人名、地名若已經使用其他的拼音方法,則沿用。像是 Taipei 就是一個例子。我也發現,臺北捷運已經全面使用漢語拼音了。
這邊再列出那時候我查了一下才知道要怎麼打的字:
- 兇:xiong
- 封:feng
- 唉:ai
- 囉:luo
- 歐:ou
- 破:po
- 切:qie
- 二:er
- 帥:shuai
漢語拼音熟悉到一定程度之後,中文打字的速度應該就可以比用注音還快了,像是「這樣可以嗎」我只要打「zhykym」就好了(每一個字的聲母),而且詞庫還頗豐富的,一些少見的語句也可以這樣打出來:「孺子可教也」=「rzkjy」。
另外一個很棒的功能就是快速的中英切換,在 ibus-chewing 底下,要按 CapsLock 才能切換中文、英數模式,在 ibus-pinyin 中只要直接照打(不用切換),打完直接按 Enter ,剛剛打的就會被當作英文直接出來(如果按數字鍵就可以選中文詞語)。不過,如果不切換,英文的標點符號就打不出來,所以有時候還是要按 Shift 切換英數模式/中文模式。有了這個功能,要打中英文夾雜的句子就非常方便。
再來就要提到幾個不方便的地方了。
首先就是,有一些字的漢語拼音非常奇怪,像是「率」:lü ,「女」: nü 。這些字很難打出來。有人提出幾種解決方案:
- 用 lyu 替代,可是萬一我要打「領域」,這個詞的拼音也可以簡寫成「lyu 」啊,會有問題
- 用漢字沒有的發音的符號來代替,像是 v (好像也只有 v ),所以「率」:「 lv 」。缺點是非常不直覺
ibus-pinyin 選擇第二個方案。可是,身爲一個剛剛學拼音輸入法不久的人,誰知道要用 v ?不管我查什麼字典,它都寫 lyu 、lü 或是 lu: 。根本就想不到要用 v 。這也是我學拼音輸入兩個月之後才會的東西(也就是前幾天啦)。
還有,拼音輸入本來大概就是設計給大陸人用的,所以雖然有「繁體模式」,可是有一些字形與臺灣慣用的字形還是不一樣,以下左邊的是拼音輸入繁體模式的字形,右邊的是臺灣人慣用的字形:
- 爲:為
- 綫:線
印象中還有很多,一時想不起來,以後想到再更新。
我有把第二個問題回報給 ibus-pinyin 的開發者,不過他似乎很忙,我又不會寫 code ,真是麻煩……
Dvorak 鍵盤
聽學長說了關於 Dvorak 鍵盤的事情,我就一直躍躍欲試。Dvorak 就是另外一種鍵盤上按鍵的排列方法,與現今的 QWERTY 排列對應。
當初的 QWERTY 鍵盤爲什麼會設計成 QWERTY 這樣排列的呢?因爲那時候還是機械打字機的年代,如果輸入太快,機械結構就會卡住。而 QWERTY 的設計就是爲了減緩打字的速度,避免機械結構卡住。而後來,電子式打字機出現,已經不再需要刻意減緩打字速度了。可是,人嘛!總是不喜歡把舊習慣改掉,所以 QWERTY 就一直沿用到現在了。
Dvorak 是相反的概念,Dvorak 排列的設計就是爲了能讓打字速度加快,可以看到,它把母音、最常用的幾個字母都排在中間,越少用到的字母,就放的越遠,像是 W, V, Z 。
用 Dvorak 有什麼好處呢?
- 比較快
- 打起字來的正確率比 QWERTY 的更高
- 雙手敲擊鍵盤的次數分配比較平均
- 手指的平均移動距離比 QWERTY 還要短
所以使用 Dvorak 排列的人,打起字來比較舒服,也比較不會有手指的疾病(肌腱炎之類的)
對於一般人,要從 QWERTY 換到 Dvorak 或許不太划算。不過對於長時間使用鍵盤的人來說,就不一樣了。
我大概花了十天適應,之後用 Dvorak 打字的速度就可以與用 QWERTY 一樣了。
不過啊,之後設定輸入法的時候又出現了一些問題,請容我下篇再議。
安裝 PHPMyAdmin
PHPMyAdmin 的主要用途就是透過網頁界面來管理 MySQL 資料庫,可以不用背一堆 SQL 命令。詳細的說明去看他的官方網站就有了:http://www.phpmyadmin.net/
下載下來之後解壓縮:
# tar -xvf phpMyAdmin-3.3.8.1-all-languages.tar.gz
資料夾名字好長,改一下
# mv phpMyAdmin-3.3.8.1-all-languages/ phpmyadmin/
接下來可以選擇要用網頁界面或是直接改設定檔
網頁設定界面
http://somesite.com/phpmyadmin/setup
一進去,他就會跟你說,要你建一個 web server 可以寫入的資料夾 config
# cd phpmyadmin/
# mkdir config
# chown www:www config
如果你覺得這樣很危險,phpmyadmin 也可以讓你把網頁界面設定好產生的設定檔下載,再自己放上去。
接下來就按 「New Server 」來建立 server 的設定檔
Verbose name of this server :讓你設定這臺伺服器的詳細名稱,如果留空的話就會用 hostname
Server hostname :設定要連接到那一臺伺服器,通常用 localhost 就好了(表示連接到本機端)
還有一些 port 、socket 的設定,通常留預設就好
再來就是 「PHP extension to use 」,這是指定 phpmyadmin 要用什麼方式連接到資料庫,建議用 mysqli,因爲效能比較好。
如果沒有看到 mysqli 這個選項:
# cd /usr/ports/lang/php5-extensions
# make config
把 MYSQLI 打勾,然後
# portmaster -Bdw php5-extensions
其他設定留預設就好了,幾乎不需要改什麼設定。
按「儲存/Save」,回到設定主頁面,Default language 改一改,Default server 選剛剛設定的 localhost ,End of line 請選 UNIX/Linux (\n) ,然後按「儲存/Save」。
設定完了!接下來把設定檔複製過去
# cp config/config.inc.php ./
現在可以回到登入頁面登入了。
登入進去之後,他會叫說「Directory config, which is used by the setup script, still exists in your phpMyAdmin directory. You should remove it once phpMyAdmin has been configured. 」,所以就把 config/ 刪掉
# rm -r config/
手動改設定檔
解壓縮,然後
# cd phpmyadmin/
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
到 http://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator 產生一個 blowfish secret ,把
$cfg['blowfish_secret'] = ‘xxxx’;
改成剛剛產生的 blowfish secret,存檔。
雖然這樣就可以用了,不過還是要做一些額外的設定來增加安全性。phpmyadmin/libraries 和 phpmyadmin/setup 這兩個目錄應該要拒絕使用者存取。 setup 這個目錄的功能就是提供產生設定檔的網頁界面,所以,只要一安裝完,通常就不再需要他了,我的習慣是把它刪掉。
將以下設定加入 Apache 設定檔,路徑記得改成自己的:
<Directory "/home/www/phpmyadmin/libraries">
# This folder does not require access over HTTP
# (the following directive denies access by default)
Options None
Order deny,allow
Deny from all
</Directory>
<Directory "/home/www/phpmyadmin/setup">
Options None
Order deny,allow
Deny from all
</Directory>
好了,大功告成!
使用 iOS 一年之後的感想
一年以前,我買了一臺 ipod touch 。還沒有用過 ios 的時候,覺得 ios 真的是很了不起,要多厲害就有多厲害。那時候我買 ipod touch 有幾個原因:
- 可以上網
- 越獄很好玩
- 有 SSH
那時候覺得 android 成不了什麼大氣候,所以完全沒考慮它
那時候也有考慮到音樂同步的問題,不過那時候我的主要操作環境是 mac osx,所以也沒想那麼多
買了之後,我一直很疑惑,我買的到底是第二代還是第三代。後來去查了之後發現,2009年12月那個時候販售的 ipod touch 「外觀都是第三代」,32G 和64G 的「硬體」是第三代(比較快),8G 的「硬體」是第二代。我是買8G 的,所以我的 ipod touch 跟第二代根本一模一樣(除了多個揚聲器)。讓我有點被騙的感覺,不過這也不算是「騙」,因爲蘋果官方真的把我買的這款產品稱作「第三代」,店員跟我說的也是第三代。
剛買了之後是很新鮮,一直在 app store 和 cydia 上面逛,發現了很多很帥的功能。感覺真的買了很值得。
直到後來 Ubuntu 10.04 出來,發現它比 OS X 還好用,所以就跳槽了。跳槽之後,想當然爾,linux 上沒有 itunes 可以用。於是我找到了 libimobiledevice ,它是一些第三方開發者用 reverse engineering (逆向工程)寫出來,可以用來寫入、讀取 itunesdb 的函式庫(library)。
喔,講一下 itunesdb ,它就是 “iTunes DB" ,用來存放音樂資訊(像是作曲者、歌詞)的資料庫,還有加入一些機制,避免 reverse engineering ,據說是 sqlite 修改來的。
裝了 libimobiledevice 之後,rhythmbox 就可以播放在 ipod touch 上面的音樂了。要加入音樂的話,就要用 gtkpod ,gtkpod 非常慢(我也不知道爲什麼),點右鍵之後還要等3秒選單才會出現。而且非常 buggy ,譬如我今天加入一張專輯,別張專輯的專輯封面就會變成其他的,還有其他很多問題,但是都不會影響音樂播放。關於這些奇怪的問題,我也去問過開發者,他說有聽過類似的回報,可是這些問題卻沒有重現性(cannot be reproduced),有時候會有問題,有時候又不會。開發者有個慣例,無法重現(reproduce)的 bug 不是 bug ,當然這些問題也就無從 debug 了。
我犯的另外一個錯誤就是升到 ios 4,ios 3 的時候,我可以傳藍牙、換主題、而且大概可以多工4個程式(當然是在越獄的情況下)。升到 ios 4之後,藍牙不能傳檔案了,而且我改用 ios 4 的原生 multitasking (蘋果是不允許第二代硬體跑多工的,這當然也是破解過的),卻只能多工2隻程式。還有原本可以換主題、桌布,現在只能換桌布(我用的是 ios 4 原生的換桌布方法,蘋果當然也不允許第二代硬體換桌布,這又是破解過的)。
現在,我瞭解到,我以後絕對不能再買蘋果的產品。他們的哲學「教導、帶領使用者」跟我100%不相容。花錢的是我,應該是我去教導廠商吧?而且我這種「凡事破解」的個性,還是 android 比較適合我。
不過必須承認,蘋果的產品真的比較適合一般大衆,不是每個人都對科技產品的運作方式感興趣,一般大衆只是想輕鬆、愉快的使用科技產品,這一點要求,蘋果的產品最適合不過了。
ipod touch 賣掉之後,我打算買 Nexus S ,畢竟,要 hack 的話,nexus 最適合了。中華電信聽說已經確定會引進 nexus S ,只是要到農曆年過後。我現在在考慮是不是要直接請人從國外帶回來了……
A story of a MIS
這篇其實算是亂寫的,英文老師叫我們用第一課單字寫一篇文章。我覺得很無聊,所以打算用一堆電腦術語嚇嚇他,因爲他實在……
Buganini is a network maintainer in a company who always has a positive attitude. One day, the weather was great, so he was in a good mood. But he had totally no idea that he would soon fall victim to an ambitious cracker attack.
On the metro, Buganini was almost asleep, while suddenly his cellphone rang, it was his colleague, Zaire. “We got a situation." Zaire said nervously. Buganini immediately burst into laughter. “Are you joking me? How’s that even possible?" Zaire replied nervously, “I mean it, you better get here quickly. The server got a kernel panic." Buganini could no further laugh. After getting off the metro, he rushed towards the bus station.
On the bus, he received another call from one of his friends. “Hey, do you want to go to a seafood restaurant with us?" “I’m sorry. I’ll have to decline this great offer. I’m allergic to shrimps." He made up a reason.
On the sidewalk, Buganini was running towards his company, not noticing there was a sign just in front of him. He hit it on his forehead, leaving a scar on it. “Shoot!" he damned.
Instantly after Buganini entered the server room, Zaire told him, “We have a virus in /usr/local/bin."
Fortunately, depending on Buganini’s excellent computer skill, the security breach was quickly solved.
This story tells us, always keep your system up to date. Buganini forgot to upgrade his system to 8.1-RELEASE, which is the latest release, and caused such an incident. This is the thing we must avoid.
哈哈,真是亂寫一通。我好想看到他讀這篇文章時的表情喔。











