2007年10月28日 星期日

MySQL亂碼2

上一次碰到MySQL亂碼的問題,我順利解決了,而這次我遇到了與前一篇相似但是更棘手的問題,那就是MySQL直接升級後亂碼一大堆的中文資料庫!

事情是這樣的,我從MySQL 4.0.XX版本直接升級到5.0.XX,在升級的過程中沒有使用mysqldump備份資料庫出來,所以升級後原本儲存中文的資料庫全成了亂碼!這下糟糕了,與前依次遇到的情形不同,上一次我還能用mysqldump把變成亂碼的資料庫輸出後以utf8格式觀看,並檢查正確性,這次可沒辦法這麼做了,因為我用5.0.XX版本的mysqldump輸出不管怎麼看都是亂碼,因為mysqldump 4.0與5.0對資料庫編碼的作法不一樣,輸出結果也不一樣!

怎麼辦呢?我只好從都開始研究4.0到底怎麼把各式各樣的編碼儲存在資料庫裡。

MySQL 4.0使用的是latin1字集,不管外部使用的是甚麼字集,在存入MySQL資料庫時一律以latin1的方式儲存,所以即使是utf8字集,在回存MySQL時還是以latin1的方法分辨並拆解utf8的字集,而提取資料時,MySQL就反過來執行拆解程式,將那陀亂七八糟的latin1字符反過來轉換,變成utf8字符,而這樣做居然不會有事。

經過這樣的研究,我們知道MySQL早期處理i18n的方法相當粗糙,但也提示我們MySQL早期的儲存媒介實際上是以0/1的二元概念在儲存文字資料,才能讓latin1儲存utf8這種奇妙的事情發生。在懂了這個過程後,我試出來如何將latin1字集儲存的utf8正常倒出來了--利用mysqldump配上選項強制指定輸出字集。例如:

mysqldump --default-character-set=latin1 DB_NAME > backup.txt

利用firefox或類似的瀏覽器觀看這份文件,就可以發現他能顯示uft8或big5的字元了!但是,你若是將此文件直接輸入新版MySQL,卻發現他依然還是亂碼!

為什麼呢?因為問題出在文件的內容!

請找一下文件開頭幾行,應該會看見這一行:
/*!40101 SET NAMES latin1 */;
這句話指定了MySQL在輸入此文件時以latin1解碼,所以你的utf8或big5文件就會被強迫以latin1儲存,這樣在新版MySQL環境中就會真的變亂碼了!

怎麼辦呢?改文件內容就好!依照你想要的字集,例如我要轉換的文件是以utf8為準,我就將他改成
/*!40101 SET NAMES utf8 */;

順便尋找一下文件裡面關於CREATE TABLE的敘述中有沒有
DEFAULT CHARSET=latin1;
之類的文字,請將其中的latin1改成utf8或big5,當你將整份文件的CREATE TABLE都改完後,這份SQL指令檔就會以utf8或big5處理你的文字資料了,這樣應該就能解決跨版本MySQL轉移的亂碼問題了。

請好好享受。

2007年10月18日 星期四

Ubuntu 7.10震撼問世!

本文為轉錄文章:

Ubuntu 7.10 Gutsy Gibbon 正式推出


经过六个月的努力开发,Ubuntu 项目团队最终推出了 Ubuntu 7.10 的正式版本。Ubuntu 7.10 的开发代号为 Gutsy Gibbon,该版本为用户们带来了一些令人兴奋的新特性和改进。

Ubuntu 7.10 包括 Linux 内核 2.6.22,这对无线设备提供了良好的支持。同时,Ubuntu Gutsy Gibbon 将桌面环境建构在 X.org 7.2 之上。其中的 glibc 与 GCC 的版本分别为 2.6 和 4.2。

在桌面环境方面,Ubuntu 7.10 采用最新的 GNOME 2.20。你不仅能够执行更为简单的系统选项设置,而且可以从高效的电源管理中受益。而在 Kubuntu 7.10 这边,除了默认搭载 KDE 3.5.8 之外,更集成了 KDE 的下一代版本 4.0 Beta 3 供桌面用户体验。

Ubuntu 7.10 通过默认包含的 Compiz 0.6.0Compiz Fusion 0.5.2 将酷炫的 3D 桌面效果带给了用户。在 Ubuntu Gutsy Gibbon 中整合的 Tracker 和 Deskbar applet 能够让其使用者感受到桌面搜索的方便与强大。另外,快速用户切换功能可以使用户在多个会话之间轻松切换。

在 Ubuntu Gutsy Gibbon 中集成了图形化的 X 配置工具和 Bulletproof X。其中,前者允许你配置显卡的驱动程序、更改显示器的分辨率以及刷新率;而后者则让你有机会对损坏的 X.conf 配置文件进行抢修。

Ubuntu 7.10 使打印机的配置更加自动化,并为你默认提供了输出为 PDF 文档的虚拟打印机。同时,改进了用户对 Firefox 的体验,使 Firefox 搜寻合适的插件更加容易,并支持从 Add/Remove 工具中直接安装 Firefox 扩展。

一些重要软件的新版本已包含到 Ubuntu 7.10 中,如办公套件 OpenOffice.org 2.3图像处理软件 GIMP 2.4 RC 3即时通讯软件 Pidgin 2.2.1 等等。

在 Ubuntu 7.10 中的其他改进还包括支持 NTFS 分区写入、安装时提供加密硬盘的选项、集成了 AppArmor、增强了受限驱动管理器等。此外,Ubuntu Gutsy Gibbon 还改进了美工设计,并包含了新的壁纸。

AppearanceAppearanceCompiz Fusion
Compiz FusionCompiz FusionCompiz Fusion

从 Ubuntu 旧版本升级到 7.10 的方法可以参见这里。Ubuntu 7.10 全系列(包括 Kubuntu、Xubuntu、Edubuntu、Gobuntu)的安装 ISO 映像文件可从下列地址获取。

- Via BitTorrent Download
- Download Ubuntu 7.10
- Download Kubuntu 7.10
- Download Xubuntu 7.10
- Download Edubuntu 7.10
- Download Gobuntu 7.10

→ 转载时务必以超链接形式标明文章原始出处及作者信息。
→ 本文网址:http://linuxtoy.org/archives/ubuntu-710-gutsy-gibbon-released.html

2007年8月17日 星期五

[新聞]虛擬化不一定是萬靈丹

From Taiwan.CNet.com:

記者曠文溱/台北報導  14/08/2007

伺服器虛擬化(virtualization)固然有許多好處,但是從專家眼中看來,若是認為所有資料中心管理問題都可以迎刃而解,可能過於天真。

在國內企業逐漸將虛擬化應用由測試端延伸至生產(production)面之際,專家提醒道,虛擬化固然的確可以提高伺服器使用率,節省硬體和電力、樓板 空間成本;但是短時間來說,管理成本並不會因此減少,甚至可能比原本管理實體機器更為費力、複雜。另外,對於一些極度消耗處理器、I/O資源的應用程式而 言,例如大型資料庫和線上交易,依靠虛擬化軟體來和硬體層溝通,也會產生效能相對緩慢的問題。

「企業只是把原本管理10台實體伺服器的能耐,轉變為管理10台虛擬機器(virtual machine),費的功夫並不會比較少,」Unisys技術專案經理林家慶說。

微軟開發工具暨平台推廣處平台架構技術副理胡士亮認同上述看法,他進一步認為,虛擬化甚至可能造成管理者更多的困擾。

「舉例而言,以往應用發生錯誤時,管理者可以指認出來是哪一台機器、作業系統、應用程式發生問題;當所有的應用都放在虛擬機器上執行後,反而變得很難判定,」胡士亮說。他表示這讓管理者不清楚該找硬體還是軟體廠商來提供支援。

虛擬化(virtualization)意指企業在單一介面上管理不同設備,降低管理複雜度及成本。這種技術實現了在同一實體系統上運行多個作業系統,並允許系統資源在各個作業系統間按需求來進行資源分配。

目前提供虛擬化軟體的廠商眾多,其中的佼佼者為VMWare,另外還包括了Xen、微軟。

虛 擬化議題在近年來大放異彩,原因即在於企業發現,大多數的伺服器使用率低於兩成,在採用虛擬化技術後,平均可提高至七成左右。根據IDC的研究顯示,全球 企業對虛擬化應用的支出將由2006年的8億2千萬美元,到2010年將倍速成長到17億2千萬美元。VMWare則預期,台灣的虛擬化市場將在今年下半 年成熟。

不過雖然企業已經逐漸欣然接受虛擬化,專家提醒道,在虛擬化並非萬靈丹的前提下,虛擬化技術還有努力的空間。

「例如系統整合廠商扮演的角色,」林家慶說。他表示企業不該一昧接受虛擬化,而忽略了導入前的前置作業,例如評估究竟哪些應用適合與不適合虛擬化。倘若應用為企業營運關鍵,則不一定適合虛擬化。

胡士亮則認為硬體廠商和管理軟體的功夫都還有待加強。他表示,由於現在的虛擬化軟體還是單憑自己力量整合不同應用、作業系統架構,「如果處理器廠商能提出更進一步的硬體虛擬化技術,虛擬化軟體的效能表現會發揮的更好,」胡士亮說。

而管理軟體應該要做到不是只是報告虛擬機器運作情況,而是自動能在錯誤發生時予以修復。唯有如此,系統管理人員才能領會到虛擬化技術的美意,胡士亮說。不過他也坦言,要達到上述階段,「絕對不是一兩年的時間就可以做得到。」

2007年8月5日 星期日

[新聞]台北電腦應用展人潮19萬 再創單日最高紀錄


2007/08/05 19:08 中央社

(中央社記者韋樞台北2007年8月5日電)「2007台北電腦應用展」今天進入週日銷售最高潮,人潮擴增到19萬人,創下有史以來單日最大量人潮。由於天氣燠熱未下雨,場內悶熱、溫度不斷升高,有消費者不支倒地,許多消費者則因搶贈品而受傷,大會醫務室忙得不可開交。

台北電腦應用展今年首度不收門票,人潮洶湧,尤其是週末兩天買氣超級熱烈,昨天一口氣超過132210人次。今天比昨天人潮更多,結果一整天下來高達19萬人次,創下17年來單日高峰,一個週末湧入超過32萬人次,四天展期已累積將49萬人次,創歷史新高紀錄。

由於整個展場侷限於一樓,二樓以上無人上班,因此沒有開啟空調,展場二樓以上明顯感受到上升的熱氣和二氧化碳濃濁程度,一樓展示攤位連站立的空間都沒有,許多消費者因為空氣不好,展場邊邊和柱子旁隨處可見身體不適和頭暈的消費者坐在地上。

一樓各展示攤位也由於人潮過於擁擠,彷彿「不要錢」,各家業務員拼命接單到手軟,要說台灣經濟景氣不好,看到消費者的消費能力和「刷卡閃靈手」,實在很難說服自己。

由於明天是電腦應用展最後一天,根據經驗,許多消費者這幾天經過現場和網路的比價、比贈品,預計明天的交易模式只剩下「喬價錢」、下單、刷卡等紅海手段,因此消費者明天最好掌握最後機會撿便宜。

提醒消費者的是,各家業者現場有許多展示機,消費者若不在乎展示機用了五天,可以向業務員協商用較便宜的價格購買展示機,業務員不必再搬機器回公司,減少許多麻煩,兩者一拍即合。

--

心得:電腦展正是男人的sogo週年慶呀!

2007年7月8日 星期日

Compiz Fusion如何增加滑鼠滾輪翻面

Compiz Fusion是Beryl與Compiz的匯流整合,大部分的Beryl功能,Compiz Fusion都已經整合完畢了,除了一些功能尚未完成。其中最讓我不習慣的就是沒辦法在螢幕邊緣用滑鼠滾輪往左右面立方體滾來滾去,最近在Ubuntu TW的論壇中找到了解決方法,實在太棒了!趕快貼下來讓大家看看:

開啟主選單->系統->偏好設定->CompizConfig Settings manager,選擇旋轉立方體,進入Actions分頁,在General選項的往左旋轉的項目上按兩下左鍵打開選單,將Screen Edge下的上下左右(Top,Bottom,Left,Right)勾起來,在Edge Button下選擇Button4(上滾輪),而往右旋轉的照作一模一樣的事,但Edge Button選擇Button 5(下滾輪),就可以做到以前Beryl讓我感覺最方便的功能了!

Compiz Fusion萬歲!

2007年7月4日 星期三

Screenlets!



最近在Ubuntu台灣網站看post,偶然看到有關screenlets的最新消息,真沒想到screenlets已經有自己的網頁了,馬上來安裝這個我渴望已久的好套件!

首先根據之前的文章,為apt套件庫增加來源:
deb http://hendrik.kaju.pri.ee/ubuntu feisty screenlets
以及他的認證金鑰:
http://hendrik.kaju.pri.ee/ubuntu/F854AFD7.gpg
如果用終端機輸入的話請用下列指令:
wget http://hendrik.kaju.pri.ee/ubuntu/F854AFD7.gpg -O- | sudo apt-key add -
完成後就用sudo apt-get update或等效指令升級套件庫!升級完成後就可安裝套件screenlets了!

安裝完成後,請用主選單->附屬應用程式->Sceenlets啟動程式,你應該可以在系統列上看到一個小圖示,在圖示上按右鍵可打開選單,其中的Settings打開設定選單。怎麼把看順眼的screenlet放入桌面呢?只要選定想要的screenlet再按下add即可!非常方便,個別的screenlet也可以在它上面按右鍵選Properties調整設定。

不過Screenlet美麗雖美麗,但是並不穩定,在我的電腦上使用大大增加突然重開機的頻率,原因不明,但是為了我的機器好,在做工作時我並不常開Screenlet。有時候甚至連Compiz Fusion也不開(它也會偶而突然重開機,尤其在使用Firefox時最常出現這種情況)。

Screenlet現階段並不穩定,有時候也會把它玩壞掉,最常出現的情況是一開啟Screenlets,所有的screenlet過幾秒就會變成灰色的圖塊,這表示screenlets的設定檔出現問題,使得它讀到一半就卡住了,目前所知的解決方法是將設定檔backup出來,解壓縮後找到出問題的設定檔Screenlets.d,把內容清空再壓縮回去,用restore功能把設定檔重讀,這樣就可以了!

2007年6月28日 星期四

Compiz Fusion最新版

本篇的消息來源來自Ubuntu-tw的論壇,感謝uranus0206提供的消息!

Compiz Fusion是Compiz與Beryl的合併版本,目前的進度是不穩定的0.0.1版,有興趣的人可以在TuxFamily伺服器下載套件,下載方法是:

利用文字模式或Synaptics增加套件庫來源,來源位置是:
deb http://download.tuxfamily.org/3v1deb feisty eyecandy
deb-src http://download.tuxfamily.org/3v1deb feisty eyecandy

套件金鑰是:
http://download.tuxfamily.org/3v1deb/DD800CD9.gpg

完成後請先移除所有Beryl/Compiz/Emerald等舊套件,這些Ubuntu官方預設的套件會與新版的Compiz Fusion產生不明的影響,建議移除。

完成移除後更新套件庫,接著安裝以下套件:
compiz
compiz-gnome (如果你是用Kubuntu,就選擇套件compiz-kde)
compizconfig-settings-manager
compiz-fusion-*

完成之後,請先用主選單 -> 附屬應用程式 -> 終端機,開啟文字介面,接著輸入:
compiz --replace -c emerald

這樣就能開啟3D桌面特效了,請先檢查桌面特效的執行有沒有問題,若無問題就請依這篇指南的最後部份,將初始應用程式增加Compiz項目,指令就是compiz --replace -c emerald,並重新開啟x-server或重新開機,就能享受到Compiz Fusion最新的特效了!

如果要調整選項,請開主選單->系統->偏好設定-> CompizConfig Setting Manager,就可以看到Compiz Fusion的設定程式(在論壇的簡稱為CCSM),但是很多功能還沒確實實做出來,例如我就沒辦法關閉某些動畫特效,期待穩定版的組態管理程式能夠回到甚至超越Beryl的水準!

ps:這個版本的Compiz Fusion由於是發展版,所以很可能會有許多Bug,讓你的電腦掛掉或消耗很多資源,因此請小心使用。若是Compiz Fusion出了穩定版,請馬上更換到穩定版。
ps2:記得天天跑主選單->系統->管理 ->更新管理員,Compiz Fusion的git版基本上會天天更新。


下面秀個Compiz Fusion的最新功能展示:


2007年6月23日 星期六

Linux的螢幕毛邊怎麼辦?

這陣子在我的筆電上用Ubuntu,經驗非常不錯,但是有個問題就是螢幕的文字毛毛的,尤其在VirtualBox裡面跑Word,標楷體的文字更是模糊到一個不行,我一直以為是顯示卡的問題,後來在一次不經意亂玩設定程式時才發現,我的螢幕解析度是1024x768!
嗯,這個解析度怪怪的,因為我的螢幕很顯然不是4:3的螢幕,難怪會有毛邊!所以我在網路上查了一下我的筆電的最佳解析度,關鍵字只要輸入自己的筆電型號與「解析度」等,就可以發現我的最佳解析度是1280x800這個怪怪解析度!既然知道解析度了,那就來修改吧。

主選單 -> 系統 -> 偏好設定 -> 螢幕解析度來調整螢幕的解析度,但是,Ubuntu預設解析度並沒有1280x800呀!怎麼辦呢?當然是自己增加!

開啟終端機,用指令
sudo gedit /etc/X11/xorg.conf
輸入密碼後進入xorg的設定檔,尋找Section "Screen"這一個區段,應該會看到類似下列的設定:

...
SubSection "Display"
Depth 1
Modes "1024x768" "800x600" "640x480"
EndSubSection
...
在Modes時出現的字串就是程式允許的螢幕解析度,想要增加新的解析度,對所有Display下的Modes增加相對應的解析度字串就好了,像下例:
...
SubSection "Display"
Depth 1
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
...
之後重新開機(或者ctrl-alt-backspace重啟xserver)即可!再進入主選單 -> 系統 -> 偏好設定 -> 螢幕解析度調整自己的最佳解析度即可!

調整完解析度後,除了字變清楚,在我開Beryl時螢幕閃爍的情形也不見了!看來要讓Beryl順利地執行,正確的螢幕解析度是很重要的!

Linux新使用者指南

這篇文章專門針對第一次接觸Linux系統的新使用者,希望這篇文章能介紹新使用者必備的知識與技術,還有一些觀念,讓新使用者能夠在Linux的世界中盡情暢遊!本文章還在建構中,若有指教請不吝提出!

首先,歡迎加入Linux的大家庭,這個家庭由好多種人組成,有浸淫十幾年,在純文字模式時就已經在此安身立命的老手,有圖形介面剛出現時加入的玩家,也有準備享受最新最炫各種多媒體技術的新使用者,這些人使用Linux的理由各不相同,有些是工作需要,有些是天生的駭客血統,有些是厭煩專利軟體而投效自由陣營的理想家,也有的是喜愛Linux自由度的桌面愛好者。大家都有自己的哲學觀與立場,也有偏愛的操作模式,因此在論壇上常看見這幾種人互相討論時激盪出的火花。

新加入這個大家庭的使用者,有時候會迷失在Linux超級寬廣的自由度中無法自拔,很多時候對軟體任意的設定常導致軟體「回不到」你原先設定的狀態,有時候囿於硬體的不親切,讓你無法享受最先進的科技成果,因此,有時候使用者在論壇的問題常讓熟悉Linux的老手略感驚訝,一再看見同樣的問題讓他們憤怒。但是很多時候使用者並不是有心這樣做,而只是對電腦以及網路資源的不熟悉造成的迷惘,網路四通八達的連結與萬能的搜尋引擎,反而會讓新使用者覺得宛若迷失在古老都市的小巷中,無路可走,資訊唾手可得卻不知道要怎麼找出來。

發問非常好,良性的發問不僅帶給問方解答,也能讓答方獲得更多知識與技能,但是有時候答方的解答卻讓新使用者產生更多的疑惑,有時候我常看見「這個指令我打了卻沒有反應呀」,「我看不懂這個訊息耶」等讓答方為之一愣的回答。

ok,很多時候新使用者並沒有操作過終端機畫面的經驗,尤其是沒有經歷過DOS時代的使用者們,對於這個滿滿都是ABCD的畫面感到害怕,其實這並不會困難,只要閱讀過一些文章,親手操作過就知道怎麼使用了。

首先要給各位一個小觀念,Linux成長的非常之快,前一版還做不到的事下一版說不定就可以無痛解決,例如我的筆電,當初她安裝Ubuntu 6.10後根本沒有無線網路與音效,但是等到7.04,一切都沒問題了,甚至我還在她上面玩WOW呢!因此,有時候你用最新硬體安裝不了Linux,說不定等個半年之後的新版就可以無痛安裝了!(桌機的支援度比筆電要好!因為筆電通常是一堆特殊裝置大集合。)

另一個觀念,安裝Linux是一回事,用又是另外一回事。如果只是將Linux當成一般上上網、看看電影、寫寫Blog的辦公室機台,你所要懂的只需要跟懂XP一樣多,但如果你要像這篇文章裡的強者一樣用觸控版以模擬器玩星海爭霸,或者像這個影像裡的桌面一樣絢麗,就必須懂不少東西,至少要能在遇到問題時做些簡單處置或懂得如何找出問題的關鍵訊息,以利在論壇上發問。

Linux的學習曲線其實不會比XP陡,但是要玩到出神入化需要不少時間的投資。

可是!得到的回報絕對是豐碩的。所謂的出神入化,可以讓你擁有獨一無二的超炫桌面,擁有執行速度宛如超頻玩家的程式環境,或者完全解析你所使用的軟硬體狀態。

我在網路上找到很多不錯的教學,請各位在發問之前先看看,有些問題其實早已經有解答了。我這邊特別要介紹的是遠近馳名的「鳥哥的私房菜基礎篇」這也是我第一本買的Linux基礎書籍,非常有用!如果你有閒錢,又想要買本好密笈練練功,帶著一身功夫闖蕩Linux世界,這本書值得買。
在這本書之中,能讓你快速上手了解Linux的章節有:

1.學習的方法,讓你知道學習Linux的正確方法
2.Linux檔案與目錄,看完這篇的指令介紹與效果,至少可以讓你在看答方的解決方法時,毫無困難地了解他的解答是甚麼意思,並且增進自己在終端機模式下的探索能力。新手時期只要能知道答方給你的指令是甚麼意思就好,不必強背。
3.VIM文字編輯器,這大概是所有學Linux的人的痛吧。vim,一個對初學者非常嚴酷但又是每個Linux套件必備的文字編輯器,它的操作方式與一般圖形介面下的編輯器大不相同,這篇只要看到
2.3 一個案例的練習就好,後面的給對他有興趣的人繼續深造。

除此之外,善用圖形環境給我們的安裝程式也是很重要的,如果你是Ubuntu使用者,可以看看下面的文章:
4.如何在apt套件管理系統增加新來源,如果想要經由套件管理系統安裝新程式,一定要看看。
5.Automatix,如何無痛安裝Ubuntu官方不支援的免費程式。
6.安裝移除程式管理器,有如在你的Ubuntu中內建一個程式菜單一樣,安裝應用程式只要瀏覽與打勾就好。
7.完全用Linux來生活,以應用程式為單位,舉例如何在Linux中做與Windows一樣的事。
8.Ubuntu疑難雜症FAQ,大部分的問題在這裡已經有解答了,參考看看!

看完上面列出來的內容,你對終端機的恐懼大概就消解了一半以上了吧!偷偷告訴你,你如果能了解並使用上面內容所提的指令與技巧,你的UNIX功力已經比大部份的資工資科大一學生要好了!

2007年6月22日 星期五

新功能!Blogger相關文章!

羨慕其他網友可以在文章結尾列出一排相關文章嗎?想要跟CNET等網站一樣每篇文章都有互相連結的效果嗎?其實並不難耶!

剛剛在google用關鍵字: blogger 相關文章找到了一篇abin所寫的Blogger相關文章外掛,非常好用!!這個外掛是以標籤為基本,將某篇文章的標籤拿出來解析,藉以尋找其他本blog中擁有相同標籤的文章,並把他們亂數列舉出來,非常非常實用!從此之後不用怕blogger的文章零零落落了!

另外,那篇文章忘了提醒,你在編輯範本->修改html時,要先勾選展開小裝置範本喔!要不然你一定找不到他要你插入程式碼的地方。

Republish!

上一次我抱怨Blogger似乎沒有republish的功能,使得我沒有辦法重新發行修改過的文章,其實我錯了!Blogger有方法可讓以前發行的文章再次重新發行!
最簡單的方法就是將舊文章加上新標籤,由於普通的RSS都是訂閱全部標籤的文章,因此某文章加上新標籤,預設接收全部標籤新文章的RSS就會當這篇文章是新的,並發行它!真是有趣的手法,看來我們可以多弄幾個專門重新發行用的標籤,等發行完後再移除掉即可。

2007年6月21日 星期四

極速Firefox--Swiftfox

最近將瀏覽器從Firefox換成Swiftfox這個特製的瀏覽器,整體的瀏覽速度果然增加很多!
所謂的Swiftfox,其實就是將Firefox依照不同處理器的指令集做過最佳化的版本。
每一代的處理器推出時,除了擁有上一代的機械指令集,以便容納舊的程式外,也會自己添加一些更新更能處理複雜事務的指令,因此新的程式便可以利用這些新指令達到更快的執行效果,同一個程式,跑在新舊機器上運用相同的指令,他們增加的執行效能也只是得利於更短的迴路、更小的零件或更多晶片的支援而增加速度,但若一個程式經過指定特別指令集的最佳化手段,卻可以得到脫胎換骨的效率改進!

以我的Swiftfox為例,其實他的原始碼跟Firefox一模一樣,但是Swiftfox已經幫我們預先編好執行擋了,而且依照指令集的架構分門別類,讓知道自己處理器詳細規格的使用者挑選下載,我的swiftfox在第一次開啟時間上只比firefox快了不到一秒,但是開新分頁與讀取網頁的速度卻快了大約25%,關掉重開的再啟動速度也快了30%左右,實在快很多!

因此,找尋一個適合自己的Swiftfox版本就很重要,在下載網頁中祥列了一大堆你可以選擇的版本,以我的Core 2 Duo為例,使用prescott或Core Solo/Duo都可以喔(本來就是同一個檔案了)。至於其他的型號就簡明多了,請大家下載試試看吧!Swiftfox並不會改變你Firefox的設定喔。Ubuntu/Debian的使用者可以從這裡下載.deb套件包。
中文化方法可以在這篇簡體文件中找到設定方式,例如我是swiftfox 2.0.0.4,使用linux,那語言包就在這裡下載,如果是用繁體中文,請將文章中的zh-CN改成zh-TW即可使用喔!

Compiz Fusion!

Compiz/Beryl渡過了上次的命名論戰後,終於開始有新的產出了。
經過開發者內部的討論之後,他們廢棄了使用者自辦投票選出的名字Coral,而採用開發者通訊時最常用的名稱Compiz Fusion作為合併後的新專案的名稱。

這個星期在Compiz Fusion的blog,blog作者展出幾個Compiz Fusion的新功能,另外有一篇新的影像檔可觀賞,我在Yuren's Info Area看到了一篇很不錯的介紹,詳情在這裡

下面則是精彩的demo影片:

2007年6月20日 星期三

Linus戰FSF-part2

上一篇裡,我提到了Linus一直在Linux.Kernel裡與FSF的信徒論戰GPLv2筆GPLv3好的論點,其中一篇文章讓我非常同意,因此我在這邊擷取他的文章,並翻譯一下,讓大家了解Linus為何如此排斥GPLv3的原因(這篇算是Linus說得最明白直接的一篇):

Some people can be "bad" for the community. They may simply be disruptive
and not productive at all. They may troll the mailing lists without
actually ever doing something good, or they may do other "bad" things.

In fact, let's make it *very* specific: let's say that the bad person is a
cracker, and specializes in finding security holes, and writing exploits
for them, and selling those exploits to spammers.

Most of us might agree that that is a "bad" person for the community, no?

Now, by your own logic, let's look at what that means for the license.
Should we write into our copyright license that you cannot try to find
security holes? Would that be a good addition to the GPLv2?

Now, I stated that in a way where the answer is obvious: that would be a
*horrible* addition to the GPLv2. I think everybody can agree on that. It
would be really stupid to say "you cannot look for security holes" just
because *some* people who do it are bad.

Now, think about that for a moment, and then go back to your question
about whether Tivo is bad for the community, and whether being bad for the
community should mean that the license should be written to say "go away
and don't use future improvements to our software".

See where I'm trying to take you?

I think that even people who *do* think that what Tivo did was "bad",
should think very deeply about the issue whether you should try to lock
out "bad uses" in your license. Yes, the answer may be "yes, you should".
But I'm arguing that the answer _may_ also be: "No, you shouldn't, becasue
it turns out that you might lock out _good_ people too".

So in my cracker/spammer example, by trying to lock out the bad people,
the obvious (and _stupid_ - don't get me wrong, I'm not at *all*
suggesting anything like that should ever be done) license addition of
"don't expose security problems" actually just causes more problems than
it solves (if it solves anything at all - really bad people don't actually
tend to even care about the license!).

有些人對社群造成壞影響,他們可能只是搗亂且不事生產,他們可能只是看文卻不做好事,甚至只做壞事。
讓我們舉個極端點的例子:這個人是個鬼客(cracker),專找漏洞且寫一堆壞程式,甚至把壞程式賣給垃圾郵件業者作壞事。我們大部分都會同意這個人在社群中是個壞蛋,不是嗎?
現在用你(與Linus戰的FSF擁護者)的邏輯,讓我們看看你提到的那份許可證,我們該在版權許可證寫「你不可試著找出安全漏洞」,這對GPLv2是個好的新增條件嗎?我要說這對GPLv2真是個糟糕透頂的新條件,我想大家都同意。因為某些人作壞事所以就設下這樣的條件真是蠢斃了。
現在想一下,回到你聲稱Tivo對社群有害的問題上,難道對社群有害就應該在許可證上寫:「滾開,別再我們的軟體上做任何改進!」
清楚我想告訴你甚麼了嗎?
我想即使人們認為Tivo做的是壞事,也應該深思「要不要將別作壞事寫在許可證上」的議題,答案也許是「你當然該寫在上面」,但我認為答案也許也會是:「你不應該這樣做,因為這樣搞你也會把好人排拒在外。」
所以上面的例子裡,如果你試圖阻擋壞人,這個加在許可證上的條件:「不可嘗試找出安全漏洞」解決了一些問題,但是製造更多問題!(就算他解決了任何問題,真正的壞蛋才不管許可證寫些啥東西!)

我相信這是Linus對GPLv2為何優於GPLv3最主要的論點,GPLv2容許tivoization,而將此行為訴諸市場決定,而不像GPLv3在許可證以道德標準封殺。

2007年6月19日 星期二

(轉錄)完全用 Linux 來生活

這篇文章轉錄自樂多日誌,我認為寫得非常好!超級好!應該推薦給每個想要脫離Windows,嘗嘗Linux功能的使用者閱讀:

其實我很早以前就想寫一篇這樣的文章,我使用 Linux 來生活已經六年多了,用到現在,覺得很多地方很便利好用,適合我這種懶惰的人。奇怪的是有一群幾近瘋子的人,無任何報酬地在開發維護,讓我覺得很不可思 議。在此分享一點心得給想接觸 Linux 的人,算是回饋吧,也許微不足道。別跟我筆戰 Windows 和 Linux 誰比較強的問題,那沒有意義。各有各好用的地方,只是個人習慣問題而已,就像是吃飯或吃麵一樣。不可能有人會筆戰飯跟麵哪個比較好吃吧?



我最一開始用的是 Red Hat 6.2,用了半年換 Mandrake,幾個月後又換 Debian Woody、Sarge,然後用了好幾年。在某一次電腦掛掉要重灌的情況下,我選擇了 Gentoo 2005.0 作為我重新出發的起點,用了一年多。這幾個月換成 Ubuntu,覺得非常好用,很多設計都很方便簡單,所以我到處推薦給別人用這版本,它的基本精神就是人道關懷。很多人有迷思認為用 Gentoo 比較屌,用 Ubuntu 比較遜。但我覺得只要能方便地解決問題,用什麼都不是重點。



【網路】


瀏覽器:首推 Firefox。這軟體非常火熱,如果沒用過的人,一定要試試。我用的是改版過的 Swiftfox。(因為我的RAM很大,所以我感覺不出來誰比較快…),外掛我用了:Adblock Plus,用來擋廣告。Fasterfox,加速上網速度。FireFtp,外掛FTP軟體。Gmail Manager,gmail來信通知。GSpace,把gmail變成網路硬碟。HEMiDEMi Button,單鍵加入網路書籤。OpenSearchFox,自製搜尋引擎。新同文堂,簡體字自動轉繁體字。

收信軟體:我用gmail,習慣上網收信,沒有用軟體收。收信軟體有很多選擇,除了 Mozilla 家族的 ThunderBird 之外,Gnome 內建的 evolution 也很強大,基本上跟 outlook 的操作很像。推薦一個來信通知的小軟體 mail-notification,常駐在系統內,可支援 gmail、或 pop3 的郵箱。(吃RAM吃很兇)

RSS閱讀器:也就是 feed reader,讀取整理 Blog 或 News 的 RSS。請用功能強大而且直覺的 Liferea!試試就會愛上了。配合 firefox 的訂閱功能,我的生活沒有它不行。如果常常需要奔走兩地,用線上版的RSS閱讀器比較方較,在此推薦 Bloglines.com。

續傳軟體:d4x(Download For X),或是 MultiGet,這兩個軟體等於是 Linux 版的 Flashget,多點下載及續傳的功能。或是用功能強大 wget,有各種圖形化前導程式, Gwget、Kwget 都很方便。

MSN、即時通:Gaim(後來改名為 Pidgin)。通吃各種即時通訊軟體。但不支援 webcam,很遺憾。另一個軟體 aMSN 可支援 webcam,但因為我沒有視訊,所以沒裝來試過。

Skype:Skype 有 Linux 的版本。打給德國的老友還OK。

BT:我用過非常多軟體,azureus 太吃資源,內建的 bittorrent 太簡單,而 bitonado 也很單調。我推薦用 Deluge,很好用,不吃資源,功能齊全、速度也OK!如果是K牌使用者,請用 KTorrent,算是 Linux下面最好的 BT 軟體了。

騾子:一定要用aMule,其餘的不用試了,因為其他的不支援Kad。

FTP:現在還有人在用FTP嗎?裝 FileZilla 就可以包辦全部了,不過我比較常用 Firefox 外掛的 FireFTP。(架ftp可裝 proftpd,如不習慣用指令介面,可用前導程式 gproftpd,簡單直覺)

IE:有一些很奇怪的網頁,一定要用 IE 才能開。這時候就用 Wine + ies4linux 裝。至於 Wine 這個軟體很不錯,可以用它安裝執行大部分 Windows 的程式,它提供了一個假的 Windows 環境。

BBS:用PCMAN-X!



【影音】


音樂播放:這個分兩種,一種是單純的播放器,只能放音樂,像 Windows 的 Winamp 那樣,在 Linux 下面有老牌的 XMMS、新的 Beep-Media-Player;另一種為音樂播放管理器,像是 Windows 的 iTune,可以方便地整理 MP3、並整合歌曲資訊、網路廣播…等,這方面比較多,有 Banshee、Listen、BMPx、Rhythmbox、AmaroK、Quod Libet、Exaile…。放一首歌時,它會自動搜尋專輯封面、歌詞、歌手樂手傳記、發行專輯、相似藝人、相似歌曲、Last.fm、Podcast、 廣播、…。在此我推薦G牌桌面用 Exaile,K牌桌面用 amaroK。

寫MP3標籤:一定要用 EasyTAG!

錄音編輯:Ardour、Audacity,目前為止可以用的,也支援多軌錄音,跟 Windows 的 Goldwave、CoolEdit 很像。如果要超級專業的錄音軟體,就要回 Windows 或 Mac 用 Cubase Sx。

寫譜軟體:Rosegarden,最簡單的。另外還有超級專業的 Lilypond 跟 MusiXtex,聽說國外樂譜出版社都用 Tex。但實在太難,而且我也不會 LaTex、TeTex(專業排版軟體),所以目前還是習慣用手寫五線譜,再掃描成圖檔。(P.S. 吉他手的話可以用 Wine 灌 Guitar Pro、Tabledit、Power Tab Editor 可以執行的很順利。),Lilypond 有各種前導程式,例如 NoteEdit。

CD轉MP3:好用的 Gnormalize,各種音樂格式可以互轉。不過有些非自由的格式要裝解碼。可轉的格式包括MP3、APE、FLAC、AAC、OGG、MPC、WAV、…。或是另一個 SoundConverter 也不錯。

燒錄軟體:k3b,超好用的CD/DVD燒錄軟體。如果不想用K牌的東西,可以選擇G牌的 Brasero,比 GnomeBaker 好用!但還是建議用 k3b,目前出 1.0,功能強大。至於 Nero 的 Linux 版,跟 Windows 比差太多,比 k3b 還不如。

影片播放:SMplayer,為 Mplayer 的前導軟體。Mplayer 是史上最強的影片播放器,得獎無數,好像還跨平台到 windows。游走在法律邊緣,通吃全部格式的影片。當然,要裝 w32codecs 影片編碼解碼,要不然什麼也不是。

網路廣播:streamtuner,內建多個網站電台,不過很久沒更新了。可裝 Exaile (音樂管理軟體)替代。

iPod相關:iLinux,不過我沒試過,因為我沒有iPod。


另外推薦一個 Ubuntu 的延伸版本,叫做 Ubuntu Studio。不過如果你沒玩 MIDI、影片剪輯、3D繪圖、之類的,就不用換這個版本了。


(很炫的360度可旋轉式立方體桌面,Beryl)





【美工繪圖】


圖片管理:Google 的 Picasa。功能超級強大。但美中不足的是竟然是用wine模擬的,不過google很強的一點是做的看不出來是wine模擬。如果不想裝wine,就用 f-spot,功能花俏好用。

圖片編輯:簡單修改用輕量型的 Mirage 。要專業一點就用 GIMP。雖然很多人牽拖 GIMP 與 PhotoShop 根本不能比,不過我覺得這是個人功力問題,曾看過超強的人用 GIMP 非常恐怖,不過如果用習慣 PhotoShop 要花很長一段時間轉換適應就是了。

向量繪圖:Inkscape,很難相信這一套巨型的向量繪圖軟體竟然是免費的。

影片剪輯轉檔:avidemux。

其他:請直接裝 ubuntu studio,裡面這類的軟體多到爆炸。  


【辦公文件】


Office:唯一也是最好用的 Open Office,裡面有 Word、Excel、PowerPoint、…等等對應的軟體。開微軟的 .doc 完成度已經非常高,但有極少數的格式亂掉,這時我就會用 google docs 線上文書網站開來看,也就是 writely.com。

看PDF:用內建的 evince 就可以了,我覺得 Adobe Acrobat Reader 太肥了。另外 Open Office 可以直接存成 PDF。

看CHM:GnoCHM 還不錯。

字典:超強的 StarDict,跟 Dr. Eye 幾乎一樣,也有即時發音,還可以擴充匯入字典。字典大概有一百多種可以選吧,知名的 longman、cambridge、中英、英英、日英、德英、法英、…。完全免費。
  
寫網頁:Nvu、Bluefish、或是K牌的Quanta Plus,對網頁編寫者來說就綽綽有餘。如果是超級專業的商業網站美編高手,還是建議灌 VirtualBox 用假XP裝 Dreamwear、Flash。

翻譯記憶:請用omegaT,勉強可以用。







【系統工具】


輸入法:gcin,無蝦米輸入法在 Linux 不是問題,記得先裝 im-switch。(注意:舊版 gcin 跟 flash 9 衝突,如果你的 firefox 一直無預警當掉,請更新 gcin)

磁碟分割:Gparted,跟 Partition Magic 很像。(後記:Gparted 有出名片型大小的 livecd)

防火牆控制:Firestarter,它只是個 Front-end 軟體,還不錯。

密碼管理:不知道有沒有人在用這個?我最近才開始試著習慣它,管理儲存多組密碼,也可以自動產生複雜的密碼,不用想半天,或抄在紙上。我用的是 Revelation。(我之前待的小公司,直接把全部密碼存成「密碼.txt」放在桌面,我整個囧掉。)

財務管理:有人習慣用電腦軟體記帳嗎?記下每月收入及每日支出。如果用 excel 那就太土法練鋼了。試試輕巧的 Grisbi,或是老牌的專業財管軟體 GnuCash。

中文字型:預設的新宋體就不錯了,也可以偷微軟的新細明體、正黑體來用,但我個人是沒這麼做。

Windows檔案:在 Linux 存取 NTFS 檔案格式,用 ntfs-3g,支援寫入跟讀取。反向的話(在XP底下讀取 Linux),用 EXT2 IFS,支援 EXT2/3 非常方便,但 ReiserFS 沒辦法(泣~)。

Windows模擬:請用 Wine,絕大部分XP的Game或商業軟體,都是用這個在 Linux 底下運行。如果是模擬器,推薦 virtualbox,一定要試這個。裝精簡版 XP Lite,簡直天下無敵。最近有個很火熱的 KVM 擬模器,搭配最新的核心 2.6.20,我試不出來…囧。(好像是我的CPU不支援)

Windows遊戲:有兩套商業軟體(要用錢買),Cedega 是專業的遊戲模擬平台,可以用 Cedega 灌 Windows 的遊戲,據說支援 95% 的遊戲,因我本身沒有在玩遊戲,所以我只試用魔獸、暗黑破壞神2…等主流遊戲,擬真度 99%,很強;另一套商業軟體叫 CrossOver,也是 Windows 的模擬平台,主要是灌大型商業軟體使用,如 Dreamweaver、Photoshop、Office…等。這兩個模擬器的核心都是 Wine,軟體本身透過安裝不同軟體進行微調最佳化,所以要收費,如果想試用的話,你知道的…,進牧場找一下很容易可以找到。

(以下圖片是我用 virtualbox 裝 windows xp 當子系統,因為我借不到繁體光碟,所以就抓了簡體版XP,題外話,那個 deepin Xp Lite 真的改的不錯,超級小,才兩三百MB,虛擬機跑起來跟實機一樣快。P.S. 我是灌來做 flash 的…囧)




有遺漏或新發現的我會再補上,不過這樣已經足以讓我用 Linux 用得很快樂了,希望你也可以在其中找到樂趣。以上所有軟體都可以在 APT source 裡面找到,如果有找不到的,請到 GetDeb 網站找找 - http://www.getdeb.net/


以下列出各種 Ubuntu 的延伸版本。

Ubuntu:原始版本。桌面整合為 GNOME。
Kubuntu:以 KDE 為桌面環境的 Ubuntu。
Edubuntu:edu 就是教育版的 ubuntu,給學齡學童用的,裝有教育輔助軟體。
Xubuntu:以 Xfce 為桌面環境的輕量型 ubuntu。
Linux Mint:美化很漂亮的一個版本,在 DistroWatch 排名很高。
Goobuntu:google 內部使用的作業系統,未流出。
Ubuntu CE:全名是 Ubuntu Christian Edition。
Ubuntu SE:這是惡搞的作品,Ubuntu Satanic Edition。
Elbuntu:以著名的 Enlightenment 17 為桌面環境。
Fluxbuntu:也就是用超級輕量的 Fluxbox。
nUbuntu:Network Ubuntu,加強安全性,以 fluxbox 為主,並移除作者認為不必要的軟體(gnome、openoffice…)
Ubuntu Studio:給影音工作者的 Ubuntu。
Ubuntu Ultimate Edition,包山包海的 Ubuntu 終極版,有點像 Super XP。

下面是隨意在 YouTube 找最多人看過的影片,目前最火熱的技術 Beryl for linux。(後記:Beryl跟Compiz已經合併)





(2007年六月新增以下內容)



【硬體方面】

CPU:Intel 或 AMD 都可以(廢話!),建議雙核心 Core 2 Duo 或 AthlonX2,作業系統如果是64位元安裝 AMD64 的版本,如果是舊的32位元CPU(P4、K7以前),選 i386。

主機板:除非是早期的合板,要不然沒什麼大礙。

顯示卡:請用 nVIDIA,全系列一直到 8800 都有官方的驅動程式支援,還可以玩超頻(有興趣再問我)。請不要用 ATi 的卡,除非你想自找麻煩。(最新消息:AMD ATi 允諾開發 Linux 驅動程式,2008年以後會好一點)

雙顯卡 SLi/CrossFire:這個我沒試過…,不過 CrossFire 確定不行。

音效卡:很少人會買音效卡吧,主機板整合的音效都可以驅動,Creative 全系列也有驅動程式(非官方提供),一般來說,一定可以發出聲音,只是附加功能可不可以被啟動罷了。

印表機:良心建議,不太支援 Lexmark 的事務機(泣~),所謂的不太支援指的是要用非法手段驅動,而且只能列印,不能掃描、傳真…,EPSON 的支援性還OK。購買之前,請先查看印表機資料庫-Open Printing Database,看看 Linux 能不能完全支援再買。

WebCam:我知道羅技從低階到高階都可以驅動,其他牌我不熟,反正買之前認明有沒有支援 Linux 就可以了。

隨身碟/讀卡機:隨插即用。

ATM讀卡機:打死不支援。

iPod:iLinux。

Ubuntu 7.10最新消息!

Scott James Remnant(Ubuntu 郵件討論串的發言人)今日發出一份宣傳稿,向郵件註冊者描述Ubuntu 7.10將會包含的新功能:

硬體支援(Hardware support):
Ubuntu 7.10將使用Linux核心2.6.22,以及Ubuntu自行提供的非自由軟體驅動程式及更新。

他們也將提供Xorg 7.3,以達到更佳的硬體支援,與隨插即用的顯示器(RandR 1.2)與輸入裝置(xserver 1.4)。除此之外,他們也想要提供更容易使用的隨插即用裝置設定,也支援錯誤回報的設定機制。

某些winmodem晶片組將以受限的驅動程式(restricted driver)的形式出現在Ubuntu 7.10,受限驅動程式的管理程式將會改進,藉由管理程式將驅動程式預設為關閉。

穩定度與效能(Stability and Performance):
Ubuntu 7.10將會改進檔案系統的效率,讓他們在用完空間或無法寫入時,允許使用者製造更多空間以執行完整個工作。
改進當機回報機制,在套件安裝或升級遇上麻煩時,可以輕易地附加適當的系統資訊。核心當機將可自動重開機,並利用工具回報錯誤內容。
他們持續改進開機穩定度與效率,無限且可靠的堆棧式軟體RAID--LVM以及軟體管理裝置(devmapper)將不受執行順序的影響。
Ubuntu 7.10將搭載Upstart 0.5,並提供彈性化且可靠的服務。

桌面端(Desktop):
Ubuntu 7.10將搭載最新版的GNOME桌面環境2.20,Kubuntu 7.10將搭載KDE 3.5.7,並納入KDE 4.0rc 2在optional套件庫。
他們期待Ubuntu 7.10將會成為第一個搭載Compiz/Beryl合併的新桌面環境(Coral)的distro,並在偵測到硬體與驅動程式允許時,將它設為預設的桌面管理環境,而在硬體不支援或被使用者取消的情況下將使用原本的metacity為桌面管理環境。

伺服器端(Server):
Ubuntu 7.10伺服器版納入一個屬於Canonical公司的新開發小組。本版期望加強新入門的管理員的操作經驗,提供更好的機制,並針對小型公司或組織提供更多功能。
為了加強安全性,有需要的人可安裝AppArmor安全套件。

行動端(Mobile):
如同之前的宣告,Ubuntu 7.10將納入新的行動與嵌入式裝置版,目標是手持裝置與其他類型的行動與嵌入式裝置。
本版將整合由Nokia研發的Hildon UI元件進入Ubuntu平台。

期待Ubuntu 7.10的推出!!!!

2007年6月18日 星期一

使用VirtualBox時超出硬碟容量

最近在Ubuntu底下使用VirtualBox時老是遇到一個問題,就是作業到一半時,系統跟我警告我的磁碟容量已經超過極限,系統將會暫存,並等我解決此問題之後才能回復。
很好,接下來VirtualBox便陷入靜止不動的狀態,滑鼠與鍵盤都沒有反應,整個畫面變成灰色色調,告訴我我只能選擇暫存狀態或者重新開機。

這情形越來越嚴重,到了最近終於變成一開機必定超出磁碟容量,但是我規劃的磁碟容量有10G耶,從檔案顯示來看我也只用了4.oG而已呀,為何會變成這樣。

最後我終於搞清楚了,因為我把我的虛擬硬碟檔案分割在我的Fat32磁碟上!Fat32在Ubuntu底下預設是以vfat格式掛載的,而Fat32的特點之一就是一個檔案無法超過4.0G!真是可惡,我只好將我的虛擬檔案拷貝一份回我的ext3磁碟上,再將原本的虛擬硬碟卸載,改掛ext3裡的這個,這樣才讓我能夠再次正常使用VirtualBox。

嗯,其實許多VirtualBox的錯誤不一定是他的錯,而是被MS的拙劣設計所拖累。讓我學到一個經驗啦。

2007年6月17日 星期日

Linus戰FSF

Linus終於忍不住與FSF戰了起來。

事實上GPLv2與GPLv3的戰爭已經在linux.kernel上爭論好幾天了,幾天沒去看就增加到了七百多篇。

很多人或許已經從CNET或Slashdot閱讀到Linus對於GPLv3的不滿意,而這幾天關於Linux雙授權的討論議題在Linux.kernel討論區引爆開來,除了Linus在此Thread大表對SUN的不滿,使得SUN新任ECO趕緊出面澄清之外,最重要的還是Linus無法接受GPLv3造成的大辯論。
我看完這個Thread,整理了雙方的論點:

事件起因於Tivo公司發行了一種網路電視盒,可以讓人不用電腦就能欣賞網路電視,這個盒子裡的軟體使用的是Linux核心,Tivo根據GPLv2的協議,允許你取得、修改並散佈它們為這款網路電視撰寫的客制化Linux核心,但是他們不允許你將修改過的Linux核心重植回此電視盒,它使用了一個晶片組,只有經過認證核可的Linux核心才能在此盒子中執行,換句話說,它運用DRM手法禁止你改機。實際案例的爭論點在此,FSF認為Tivo的作法破壞了GPL的自由精神(他們稱此類行為tivoization),因此在GPL3特別為tivoization制定了反制條款。
此類案例凸顯的是GPLv2對FSF基金會而言,有所漏洞,這些漏洞讓製造廠商破壞了使用者「取得、修改、重新散佈」的精神,因為重新散佈的程式碼不能在相同種類的機器執行,那這些修改過的程式碼便無法驗證是否有效,亦不能有效地使用。所以GPLv3多出了以下前言(Preamble):

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
某些裝置的設計,限制了使用者在他們的裝置中存取或安裝修改版軟體的權利,而裝置的生產廠家卻可以。這完全違背了保護使用者自由修改軟體之精神。此類發生在個人裝置上的行為是不可接受的。因此,我們設計了本版的GPL以禁止此類產品的出現。如果類型相同的問題在其他領域發生,為了保護使用者的自由,我們也已準備在未來版本的GPL延伸至此領域。

Linus與Linux Kernel的作者們對這點非常不爽。請注意我的用詞,對Linus個人來說,可在他對FSF工作者Alexandre Oliva的信中看出來,他真的對FSF擁護者永無止境的辯護非常火大(身為一旁看熱鬧的鄉民,我也對FSF傳教士般滔滔不絕對自由軟體宗教信仰辯論感到厭煩)。
Linus是個實用主義者,當初他在十五年前選擇了GPLv2而非BSD作為他的許可證,正是因為GPLv2符合他的需求,而非贊同FSF對GPLv2所期許的精神(spirit)。對Linus來說,GPLv2讓他可以獲得從其他人來的回饋,使得Kernel的工作基本偏向整合而非分岔,因此Linux一直能保持不分裂的情勢而壯大。新版本的GPL對Linus而言是一團災難,因為它間接控制了硬體的行為(硬體商不得禁止改機),使得GPL超出對軟體自由的範疇,此舉一定會造成某些硬體商在採用Linux上的困擾,因而降低Linux Kernel的可能性。

Linus很早就以行動表明他跟RMS等人是不同掛的,從他的這席話可以看出:
... The more permissive license actually allows more people to get involved. And the only thing that really *matters* (the source code) can be distributed and improved on by all these different people, even if some of them may have their hands bound by legal issues.
...越寬容的許可證就允許越多群眾參與。而許可證對原始碼真正有意義的事就是讓這些不同的人散佈與改進,即使那些人之中可能有些會被法律爭議所束縛。

現在更是鐵了心不採用目前版本的GPLv3,將來GPLv3推出時是否會造成Open source世界的分裂?現在大家都在看。

雖然雙方各有立場,這些立場也很貫徹了雙方一向的不同特質,以我的立場而言,我比較偏向Linus的論點。別忘了GPLv3前言提到「為了保護使用者的自由,我們也已準備在未來版本的GPL延伸至此領域。」這表示GPL所觀照的範圍將會越過軟體,試圖侵犯其他領域許可證的傾向。這對其他人是非常難以接受的,若是一個許可證難以被他人接受,那將會是一場自由軟體界的災難。

後續過程,這裡有part 2

2007年6月15日 星期五

MySQL亂碼

最近幫一台Web伺服器裡的drupal網站作搬遷,從MySQL 4.0.X遷移到5.0.X的環境中,果然馬上遇到了傳說中的亂碼大戰。

drupal眾所皆知是以utf8編碼的,因此他的資料庫也是以utf8編碼,照理來說移植到新的環境應該不會出錯,沒想到將MySQL dump檔案匯入新環境後,出來的中文全成了亂碼,連在新環境直接輸入中文也會變成亂碼,我的臉也當場綠了。趕緊上網找解法,沒想到關鍵字一進去,居然讓我找出了十數種解法,每種解法背後的原理都不一樣,有的是從php著手,有的是改動MySQL的起始參數,玲瑯滿目令我頭昏眼花。

每一種解法都去試實在折磨人,因此我用了對照法來偵查到底是哪個環節出現錯誤,以對症下藥。首先,我在新環境中安裝了另一個版本一模一樣的drupal,發現它可以正確輸入輸出中文,這代表我的安裝環境的確可以讓循規蹈矩的drupal正常處理utf8,但是用偷雞摸狗法遷移過去的drupal則不行。

既然知道了,接下來的解決手段就簡單多了,我們只要把這兩個drupal的每個面向都弄得一模一樣或許就能解決問題!因此我將舊主機的drupal資料庫以mysqldump不加參數的情況輸出old.sql,新主機的對照組drupal一樣處理,得到new.sql,接著比較他們的同異點。我發現這兩份.sql檔都是純純正正的utf8編碼,以firefox瀏覽這兩個檔案,在utf8檢視環境下都可以看到中文,換句話說新舊版本的mysql輸出的過程是正常的。因此,問題應該就出在輸入的過程有錯吧!趕緊將old.sql與new.sql的相異處修正,將這分修改過參數的old.sql扔進新環境,結果在drupql出現的又是亂碼!嗯,問題就出在這裡了。

我將mysqladmin的參數列印出來,找找新舊mysql server的編碼是不是出現問題,新server的參數長這樣:

| character_set_client | latin1
| character_set_connection | latin1
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | latin1
| character_set_server | latin1
| character_set_system | latin1
| collation_connection | latin1_general_ci
| collation_database | latin1_general_ci
| collation_server | latin1_general_ci

這代表甚麼意思呢?意思就是說當我們把.sql輸入這個server時,無論他是甚麼樣的編碼,一律當成latin1處理!難怪我們的utf8會變成亂碼!因為他在存進資料庫時就已經幫我們亂轉一通了,因此我以這篇文章提到的方式將參數改成utf8編碼,問題的核心就在他的文章中的一段話:

下面的 client 則是設定當 client 連線時要使用什麼語系,但可惜的是這個設定不是每個client都會鳥它,基本上只有 mysql 自已家的程式,例如 mysql.exe, mysqld.exe, mysqladmin.exe 或是 MySQL Control Center這種程式會去讀取這個設定檔然後改用 utf8 連線。
當我改完設定重啟mysql後,將old.sql重新餵進mysql server之後,好久不見的utf8中文終於重回我的drupal網站了,可喜可賀!

從這件事,我學到了一個經驗:若是一件事情有錯,先找另一個成功的case,然後盡量修改自己失敗case的條件,讓它與成功者越相像越好,在檢查每個環節是否相像的流程時,往往能找到問題的癥結,進而解決它!有時整個流程不必做完,問題就已迎刃而解囉。

檢警查獲媒體出版企業使用盜版軟體

國內某媒體出版集團遭保護智慧財產權警察大隊台北分隊大幅搜索,查獲公司內部60多部電腦中,安裝有多套未經合法授權的軟體產品。

根據初步調查,該公司並未善加管控公司內部的非法軟體使用情形。企業為節省軟體費用,導致今日軟體侵權法律責任。該企業負責人依著作權法之規定也可能面對 三年以下有期徒刑的刑事責任,並可能因此付出高昂的民事賠償金額。這家出版企業之所以遭受查緝,主要是有員工出面直接向警察機關進行盜版檢舉,而檢方在蒐 集相關事證之後,即會同警察單位持搜索票前往該公司直接進行查緝。

在保護智慧財產權警察大隊台北分隊的現場蒐證下,發現該公司無法當場提出足夠之軟體授權文件,經調查人員初步核對後,發現授權數量與安裝數量明顯不符,顯示該公司涉嫌觸犯非法重製軟體的著作權法相關法令。

檢調人員表示,在接獲舉報後,檢調就立即蒐證了解該公司所使用盜版軟體種類及電腦配置情形,並在第一時間內前往進行搜索。雖然該企業現場人員表示並非蓄意使用盜版軟體,但因合法授權證明不足,有非法重製使用侵權軟體之嫌疑,該公司必須接受更進一步的偵訊調查。

由於這次查獲遭受侵權的軟體,是隸屬於台灣商業軟體聯盟(BSA)旗下會員公司的產品,因此BSA也特別發表聲明,表示贊同政府單位執行企業非法軟體查緝。對企業來說,使用盜版軟體是因小失大的錯誤策略,值得國內所有企業深思。

2007年6月14日 星期四

Beryl與Compiz的恩怨情仇

之前我介紹過的Beryl專案,最近並沒有新的版本問世,因為他已經跟他的原專案Compiz合併了!今年四月初,Beryl論壇發出震撼消息,宣告他們重回Compiz專案,並關閉了論壇,想要討論Beryl的人就請移駕到暫時論壇去。

當初Beryl之所以會從Compiz分枝出去的主因是Compiz的主持人David無法接受QuinnStorm提出的插件檔案(Plugins),因此QuinnStorm只好自己製作自己的Compiz,相信用過Synaptics的人應該有看過Compiz-quinn這個套件才對,這便是Beryl誕生之前的專案。這個專案以Compiz為核心,增加了一個新的設定系統(也就是後來的Beryl-manager),以及一大堆花俏的特校功能。
到了Compiz-quinn專案末期,Quinn團隊修改的地方越來越多,最後終於完全無法跟原本的Compiz整合,Beryl就應運而生了。
那為什麼他們又要整合回去呢?這就不得不提兩個專案主持人對於這個專案的目標差異了。David追求的是穩定的核心與最少的使用問題,Quinn的理想是越多功能越好,以及豐富的調整選項,David屢屢退回Quinn的插件原因就在於Quinn的插件缺少穩定性,容易造成問題,而Quinn只好另起爐灶。

不過這樣造就了兩個半完美的專案,Compiz穩定但是功能單調,設定介面比起Beryl-manager真是樸素過頭,我個人從Beryl切回去使用Compiz的體驗很不好,除了他讓我的視窗外框消失外,他能達到的功能實在太少了,只有核心的立方體旋轉與果凍視窗效果,其他諸如立方體通透、視窗特校或者水波效果一樣都沒有。但是Beryl也沒好到哪裡去,衝太快的後果就是一個難以維護且極為不穩定的核心,安裝不成功的文章常常可見,使用到一半讓電腦死當也不是沒遇過,花俏先進功能的代價就是不穩定的環境。為了解決兩方面的問題,雙方的開發者早就在互相透過mail list討論合作,最後終於在四月合併了專案。

但是合併才是戰火的開端,David恕我直言,缺少了身為領導者的包容特質,他是一位嚴謹的開發者,但在一封不小心誤傳上mail list的mail中,他直指與Beryl的合併將帶回一堆笨蛋。

I'm sure that by accepting all the beryl community members into the compiz-extra division we're accepting some people that can be really
helpful but also a lot of stupid people that we would do much better without. However, I don't think that matters. For us to be successful we
need to be able to allow really stupid people to join too and I would hate if the good people from the beryl community wouldn't be able to
join due to all the stupid people in their community.
Compiz社群對於Beryl其實有非常大,而且毫不掩飾的敵對意識--Compiz社群認為Beryl這個專案不過是用Compiz核心加上一堆小孩玩意吸引眾人眼光的遊戲。而這樣的言論當然激怒Beryl的社群,尤其是一開始不知道這兩個社群恩怨的後進使用者。在兩專案新合併的論壇上,對於新專案的更名,有非常激烈的討論,在這邊就不詳述了,總之到了最後,大家的共識終於逐漸統一,這個合併的新專案將以新名問世,目前最有希望的名字是Coral(不過依照最新消息,Coral並非開發者最喜歡的名稱,因此這個投票便被廢棄了改採Compiz Fusion維新名),或許不久後我們將見到Coral帶著穩定且功能繁多的新3D桌面與我們見面!

磁碟用量分析器--Baobab


在Windows下有遇過硬碟被不明程式吃掉大量空間,卻不知道怎麼快速找出出問題的目錄的經驗嗎?這種事發生時實在很煩惱,我以前只能一個目錄一個目錄開內容,慢慢過濾出容量異常巨大的目錄,痛苦地找出目標。
今天來介紹一個好玩的Ubuntu 7.04應用程式--磁碟用量分析器Baobab,這個軟體在主選單->附屬應用程式->磁碟用量分析器就可以開啟它。

這個工具可以當成是du指令的圖像版,可以替你偵測任一資料夾所佔用的硬碟空間,以及其子目錄佔用的空間。當你選定一個目標資料夾時,這個程式會自動執行類似du的指令掃描整個資料夾,並做出一份同心圓圖形的用量分析器,圓心的灰色表示你目前要分析的目錄,當你游標指到它上面時,會出現此目錄的名稱與佔用空間,圍繞圓心的其他圓條是這個資料夾底下的子目錄,佔用空間百分比越重的子目錄,他的圓條佔用弧度也越多,而沒有圓條佔用的地方則是純檔案。一般這個程式只會追蹤五層目錄,以免耗費太多時間。

使用前要注意喔,它每作一次分析,就是對整個目標目錄作一次掃描,若是要掃整顆硬碟,時間就會比較久!

這個東西真是好物呀,不知道Windows什麼時候才能推出相對應的應用程式?

[新聞] 台灣光電產業崛起 產值超越南韓

更新日期:2007/06/13 12:44
(中央社記者楊淑閔台北十三日電)「台北光電週」今天開幕,展期到6月16日。台灣對外貿易發展協會(TAITRA)副秘書長葉明水致詞時表示,感謝界的 努力與貢獻,讓台灣光電產業在全球光電市場崛起。工業局長陳昭義表示,2006年台灣光電產業產值已達新台幣1兆2700多億元,不論產值或市占率都勝過 南韓。

「2007年台北光電週Photonics Festival inTaiwan」今天舉行開幕典禮;包含葉明水、台北市電腦商業同業公會(TCA)總幹事杜全昌、光電科技工業協進會(PIDA)博士石大成、國科會副主委戴謙、工業局局長陳昭義等人都與會祝賀。

戴謙指出,台北電腦展一落幕,台北光電週就接著上場,此兩大重要展覽確實有必要結合起來,讓台灣的光電與IT產業結合、壯大、創品牌,真正做到世界第一;不過面對南韓近年大舉發展光電產業,台灣還要再努力。

他並說,光電產業鍊很長,是可以解決台灣就業問題的產業,也是讓南科真正起飛的產業,目前南科產值已突破新台幣4500億元;更精彩的是中科,第4年產值就超過1500億元,中科目前的表現,南科需費時8年、竹科則需要14年才能達到。

大會則公布,2007年全球光電市場規模將突破3156億美金,成長率為8%;台灣光電產業同年產值可達新台幣1兆4695億元,約450億美金,約占全球市場14%。

此外,台灣所生產的光電產品中,舉凡LED封裝、STN/TFT-LCD面板、光碟機與光碟片、數位相機,以及OLED等生產都穩居全球前三大,台灣光電產業的崛起已受到全球矚目。

為感謝產業界的努力,大會今天並頒發「第七屆平面顯示器元件產品技術獎」,共三類獎項。第一類「產業貢獻獎」計頒出「廠商產業貢獻獎」予友達光電;「傑出人士貢獻獎」予錸寶科技;「外商合作貢獻獎」則從缺。

第二類「傑出產品獎」計有中華映管(47吋高畫質液晶電視背光模組)、奇美電子(47吋及52吋液晶電視面板)獲獎。第三類「卓越技術獎」由中華映管、奇美電子及奇晶光電獲獎。

2007年6月13日 星期三

Ubuntu除了apt/synaptics之外的安裝程式

Ubuntu真是太讚了!
你有老是在找自己喜歡的應用程式的煩惱嗎?
一直以來,我都在找如何簡單瀏覽/安裝/管理我的應用程式,synaptics大大簡化了我管理套件的難度,但是它羅列了太多套件,從應用程式到原始碼,有時後會被它搞得頭昏眼花,現在我發現了一個一直都忽略的管理程式,那就是新增刪除應用程式!

我真是太糊塗了,怎麼沒發現這個程式的妙用呢?直到最近看到7.10 alpha 1的藍圖中有個「加強應用程式管理系統的易用性」才隱約覺得Ubuntu可能有個簡單易用的應用程式管理系統。

剛剛無聊亂試選單上的按鈕,卻讓我發現一個很好玩的套件管理程式,它就是Ubuntu預設安裝的「添加和刪除」,開啟主選單,它就在第一層,進入後可以看到分門別類的各式套件,跟Synaptics不一樣的地方在於,它是以「應用程式」為安裝單位的管理程式,因此你選擇了一個應用程式會額外安裝多少library套件,這個程式並不會告訴你。由於它是以應用程式為單位,因此點選下去的介紹也是以應用程式為主,你可以藉由這個系統慢慢挑選自己要的應用程式,而不會再迷失於synaptics的套件海了!尤其它設計了推薦度這個指標,讓你更能清楚分辨某個應用程式的熱門程度。

這個程式很像之前介紹的automatix,但這次介紹的系統是Ubuntu預設的,所以當然不會有安裝了某軟體後與synaptics不一致的問題!我非常推薦Ubuntu新手使用這個系統管理自己的程式,我藉由這個系統認識了不少之前無緣細看的著名軟體。

當你進入這個系統後,請注意右上角的選單,通常預設都是僅顯示Ubuntu官方支援的應用程式,若是你要其他的應用程式(尤其是遊戲,很多好玩的遊戲都不是Ubuntu官方支援),請將選項改成瀏覽所有可安裝應用程式,就可以像在菜市場挑菜一樣慢慢選取自己最喜歡的套件了!

2007年6月12日 星期二

Republish?

剛剛修改了一下VirtualBox 1.4.0的一些指南。我發現自己在寫這份指南時有些步驟疏忽掉了而需要修正,卻發現修正後不知道要怎麼重新發佈消息給看過的人,因為一篇文章發佈之後,Blogger不提供再次發佈的功能,所以時時更新的文章還是要放到wikipedia等環境比較好。

除了VirtualBox之外,又多看了一些其他虛擬化技術的文章,才發現虛擬化技術最近真是紅到發紫,伺服器端燃燒得很猛烈,而最近又漸漸吹向桌機。看來要找個時間好好看一下虛擬化的技術到底有哪些新東西出現......

2007年6月10日 星期日

VirtualBox 1.4.0小缺點

嘗試到現在VirtualBox 從1.3.8升級到1.4.0會有一些缺點,請大家注意一下:

1.若是Windows Guest,請記得要在設定值->一般 ->進階分頁底下,選擇
啟用ACPI
啟用IO APIC
這兩個都一定要啟用,Windows Guest才不會消耗你百分之百的CPU資源!

2.共享剪貼簿有些問題,在Linux Host剪下來的資料貼在Windows Guest沒問題,但是反過來作會造成編碼錯亂,很有可能是因為兩邊的Locale設定不一樣的關係,看看VirtualBox要怎麼在新版本解決這個問題吧。

2007年6月9日 星期六

VirtualBox指南


這是一篇VirtualBox以Linux Ubuntu為host,Windows XP為Guest的安裝、設定使用指南,若有不足的地方懇請指教,讓中文社群使用VirtualBox的經驗更加成熟!


很多從Windows轉來使用Linux套件的人都會有一個共通的煩惱:我想要使用Word/Excel處理一些OOo處理不好的文件(格式在OOo會跑掉之類的問題);我想要跑Photoshop而GIMP無法滿足我的需求(專業美工常遇到的問題);我想要完整保留我的MSN表情符號,可是GAIM沒有足夠的支援;我想要玩WoW可是WoW沒有Linux版本......

以上這些問題都可利用virtualization的技術解決。所謂的virtualization,是一種創造虛擬作業系統或虛擬機器,欺騙跑在上面的軟體的技術。電腦的電視遊樂器模擬器就是一種virtualization技術。現在在Linux社群擁有的virtualization技術有兩大類,一類是以wine為代表的虛擬作業系統法,wine為Linux使用者創造一個假的windows環境,讓使用者可以直接在Linux上執行windows的應用軟體,例如WoW。這種方法的問題在於他提供的是完全虛擬的作業系統,因此無法完全切合真實作業系統的行為,加上設定問題並非新手就能搞定(我本人四年前嘗試過好幾次Wine,直到最近才成功摸透Wine的設定方式),因此對於剛轉換到Linux的使用者並不親切。
另一類是以VMware為代表的虛擬機器,他們利用製造假的虛擬電腦,讓安裝上去的作業系統以為真的跑在一台機器上,藉由矇騙的手法讓作業系統可操作,這種方法的優點是只要安裝好想要虛擬的作業系統,幾乎任何原先的軟體都可以使用,但缺點是你必須擁有那些作業系統的安裝來源,例如原版Windows光碟。有些對Windows非常感冒的玩家很難接受這樣的手段。且作業系統下到底能執行甚麼樣的軟體也要看虛擬機器支援的程度,例如大部分需要3D加速的遊戲都無法在VirtualBox底下操作,因為現階段VirtualBox還未支援原生顯示卡驅動程式。
除了這兩類之外,原先就使用多系統的使用者(開機時可以選擇要哪個作業系統開機),也可以藉由raw disk的功能,讓你能啟動另一個已經安裝的作業系統,不過目前還沒有一個完美的解決方案。

看完了上面的介紹,馬上進入正題吧,今天我要介紹的是VirtualBox這個利用虛擬機器技術的模擬軟體。會介紹VirtualBox的原因是因為他的安裝設定比較簡單,不像VMWare那麼麻煩,且效能不錯,穩定性也很好,至少我用他好幾天,MSN以及一般辦公軟體跑下來並沒有問題,因此優先推薦他。在VirtualBox中,稱呼你在跑的作業系統為Host(主端),而你要模擬的作業系統為Guest(客端)。


VirtualBox有好幾種平台可跑,我們下載Linux Ubuntu版本來玩,下載方式有兩種,一種是利用Automatix2幫你安裝,另一種是納入VirtualBox官方的套件庫,apt套件的路徑是:
deb http://www.virtualbox.org/debian feisty non-free
而他的金鑰檔案在:
http://www.virtualbox.org/debian/innotek.asc
納入套件庫之後就可以安裝了,要注意的是VirtualBox目前最新版本是1.4.0,請優先安裝這個版本,他與前一版1.3.8差異非常大,1.4.0才是真正簡單易用的版本。

安裝好之後要將自己的帳號納入vboxusers群組之下。請從選單->系統->管理->使用者及群組->管理群組(M):進入群組設定名單,找尋vboxusers這個群組名稱(通常在名單最底下),選擇屬性,將你想可以使用VirtualBox軟體的使用者全勾選起來,就完成權限設定了。

設定完成後,我們就來建構一個WindowsXP的虛擬作業環境吧,在我的例子中,我的主端是Ubuntu 7.04,客端是Windows XP with SP2。快速的安裝方式可以參考下面的影片:


VirtualBox 1.4.0版安裝之後他會以你預設的語系使用相對應的語言,因此繁中使用者可以看到繁中介面。
當你看到這個畫面時就表示您的VirtualBox已經安裝成功,可以開始安裝WindowsXP了。
選擇新增->下一步,VirtualBox要你選擇模擬的作業系統類型以及虛擬機名稱,我的類型是Windows XP,而名稱叫WinXP。
下一步VirtualBox要求您給這個虛擬機器多少記憶體,我建議至少要給256MB才能跑得比較順。再下一步VirtualBox會要求哪裡是這個虛擬機器的硬碟,請按新增開啟精靈,在精靈中,他會先問您虛擬硬碟映像檔的類型,我個人偏好動態擴充映像檔下一步指定這個映像擋開在哪裡,以及大小,我本人將映像檔開在我用不到的槽內(若您不熟VirtualBox的運作原理,請不要更動映像檔名稱),並指定10GB的大小,按下一步以完成精靈,並回到主設定畫面。接著到概要畫面確定您的設定正確,之後按下完成以結束新增精靈。

回到主畫面後在左側應該可以看到一個虛擬機器選項,按下他並選取設定值開啟細部設定。選擇光碟選項,將你的光碟機掛上。這樣開啟虛擬機器時才能抓到你的Windows XP安裝光碟片。
選擇音效,選用Alsa音效驅動程式。選擇網路,在網路卡0的分頁中勾選啟用網路卡,選項不必調整。按下確定以改變選項。完成後就可以插入安裝光碟片,按啟動開啟虛擬機器了。安裝過程如同一般的Windows XP安裝:
安裝完成後就可以正常使用Windows XP了,但是還不是很方便,每當你要操作Windows XP時就要在視窗上點一下進入Guest環境,此時鍵盤與游標都會被這個視窗綁住,要跳離的話得按下右端的ctrl鍵,而且沒有網路,畫面解析度也不高。

VirtualBox為了提供更好的Guest功能,便製作了一個叫VBoxGuestAdditions(客端額外功能)的擴充套件,提供網路存取以及其他豐富的功能。安裝方法是在VirtualBox的主畫面選擇設定值,進入光碟分頁,選擇掛載ISO映像檔,並找出VBoxGuestAdditions.iso的路徑,我的在
/opt/VirtualBox-1.4.0/additions/
底下,您的映像檔位置應該也差不多吧。接著啟動WinXP虛擬機器,在我的電腦下選擇光碟機,安裝裡面的程式,重開機後就可以享受VBoxGuestAdditions的功能了。VBoxGuestAdditions可以讓您自由調整桌面的解析度,以及整合了鍵盤與滑鼠的操作,讓你像在操作一個普通的應用程式般操作你的Guest作業系統。

執行以上步驟後便完成基本的安裝了,接下來要說一些進階的需求與設定:

首先是使用的心得,在這裡可以看到一些我粗淺的使用感想。

使用一段時間後,您一定很想讓Guest與Host之間的檔案相通吧,目前VirtualBox提供了分享資料夾的概念,設定方法在主畫面的設定值裡,分享資料夾分頁中使用新增,指定要分享的Host資料夾以及名稱。在我的例子裡,將分享資料夾名稱設定為linux,位置在/home/neversay/Desktop中。設定完後開啟虛擬機器,開啟主選單->執行,在輸入欄中填入
net use z: \\vboxsvr\linux
這樣在我的電腦中,就會出現代號z的網路磁碟機了!主客端作業系統就可以藉由這個磁碟機互傳資料囉!

VirutalBox的執行速度非常快,在我的電腦中開機只要25秒上下就可以進入WindowsXP中(當然,沒有安裝太多零零落落的軟體與防毒是主因),關機也只要十秒多,執行消耗的資源也不多,在我的筆電上可以邊跑3D繪圖軟體與beryl與VirtualBox而不會覺得吃力,真是令人欽佩!

我在安裝升級後有些小問題,貼在另一篇 blog裡,大家有遇到問題或許可以找到解答...

最想要的技術:
1.4.0版提供了以實際硬碟當作虛擬硬碟來用的raw disk技術,照理說這個方法可以讓原先已經安裝雙作業系統的使用者直接使用,而不必從新安裝作業系統,但是此技術目前還不是很成熟,因此雙系統的使用者想要用VirtualBox直接開啟另一個作業系統的雄心壯志可能要再等等囉。
另一個VirtualBox社群最想要的功能是讓VirtualBox能直接安裝顯示卡驅動程式以使用顯示卡的全部功能,而非透過虛擬顯示卡。這樣才有辦法在虛擬環境中玩3D遊戲,但是這個技術是非常難以實做的,VirtualBox官方也在計畫實作他,希望有一天可以成功,因為這可是非常殺手級的功能呀!

2007年6月6日 星期三

Hinet radio!

感謝PCMan以及FourDollars先生的傑作,讓我們Linuxer可以在Linux底下簡單的收聽hinet的線上radio了!裡面還有選台機制讓我們選擇要聽的電台,非常方便!


原始的連結在這裡。請廣播眾大家告訴大家!

要使用這個,Ubuntu眾請先用synaptic/apt-get下載libgtk2.0-dev套件這樣才能編譯/安裝喔。然後選台時請等待幾秒讓buffer充滿,才能聽到聲音。

感謝守護天使

我要謝謝我的守護天使。

我不信教,但是我相信萬物有靈。CPBL職棒選手彭政閔從來不甩棒,就是因為他認為木棒中住有樹靈,若是任意摔它會令樹靈不高興。

我很喜歡這樣的論調。我也相信每個人身上都有一個守護天使,她守護著我們的生命與健康,在災難來臨時保護我們的身體與心靈不受傷害。

我一直這樣相信,尤其是騎著機車在台北市通行時,幾次遇到幾乎撞車的情形,不知怎麼的總有一股神秘的力量保護我,幾次其他汽機車超車越過我,我都能在分神的狀態下不自覺按下煞車,幾次因為天色昏暗又下雨,讓我撞到分隔線的塑膠柱卻毫髮無傷,我想,我的守護天使是相當喜愛我的。謝謝妳,我的守護天使。

Google Analytics的詭異情形

今天真的是見到鬼了,當我貼完上一篇關於Google Analytics的文章後,他又開始不正常了。他所發出來的統計訊息又回到之前低得令人詭異的幅度,所以我又開始與Analytics奮鬥的歷程,這次解決的途徑真是令我怎麼想也想不到,我的Analytics帳戶居然變成兩個!

簡單說,在Analytics網頁右上方的我的分析帳戶中,出現了兩個帳戶,而這兩個帳戶居然一模一樣,但是裡面包含的統計資料不一樣,不知道為何,Analytics將我的流量統計分散到了這兩個帳戶之中,真是太詭異了。也許是因為我之前不正確地安裝Analytics的程式碼到blogger首頁之中造成的問題,使得Google收集我的資料之後用不同的方法處理這些流量,最後莫名其妙地把我的帳戶拆成兩個了。

Google的服務有時候會出現這種莫名其妙的事情,請大家多留意一下。

2007年6月5日 星期二

Google Analytics的安裝

最近我去申請了Google Analytics的服務來玩,但是連續幾天的訪客參訪數量都是在一個非常詭異的低數量下(約一天一次),我懷疑是因為Google的統計伺服器掛掉導致蒐集資料不完全,但是後來我調整了Analytics給我的java script位置之後,正常的統計數據就出來了(約每日一百次)。換句話說,統計伺服器並沒有掛掉,而是我把程式碼放錯了地方!

或許這份心得可以給其他統計數據出不來的部落客一點靈感。

剛開始我一拿到Analytics給我的網頁程式碼後,我開啟的是Blogger的修改Html範本功能,並將程式碼放在<\body>標籤的前面,但是數天的數據都跑不出來,Analytics告訴我的是這個網站並沒有放置相對應的程式碼。後來我重新檢視網頁後才發現,將java script直接放在Html時,Blogger會將你的帳號字串轉換一遍,因此造成錯誤的帳號字串,Analytics當然也沒辦法幫你分析啦。

後來我將程式法放進Blogger的網頁元素 -> HTML/javascript區塊後,Analytics果然可以正常蒐集資料了,但是好景不常,過沒多久Analytics出來的資料開始變得很奇怪,流量一樣有被紀錄,但是數量少得誇張。後來我才發現,包含Analytics的程式碼區塊要放在網頁布置的最下面那一區的最後面!放在其他地方似乎都會造成Analytics產生無法預料的行為。

2007年6月4日 星期一

VirtualBox初探心得

用過一陣子VirtualBox之後,我測過了幾個軟體,現在對VirtualBox的特色評分一下:

1.穩定性:當我在download/share folder傳輸檔案時蠻容易當掉的,不知道因為我是把模擬Windows XP安裝在另一個XP的NTFS磁碟區,才造成他存取異常的嗎?

2.軟體:MSN 4.0偶而會當掉,我換了MSN 8.1之後沒有當過。中文輸入法也很順利,我甚至安裝了自然輸入法也是使用愉快。下一步是嘗試安裝Office XP,看看操作性能如何。

3.環境:安裝了Guest addition之後,滑鼠游標統整在一起,所以不需要再用ctrl跳來跳去了!而網路、共享資料夾以及音效都整合很好,幾乎可以把Windows XP當成另一個Linux應用程式來用了。

4.遊戲:很可惜,由於模擬機器提供的顯示卡是VirtualBox模擬的,所以任何顯示卡驅動程式都無法安裝,因此任何需要顯示卡支援函式庫(OpenGL、DirectX)的遊戲都不能玩,所以我安裝的虛擬市民二也英雄無用武之地啦。看來想要玩遊戲用Wine的解決方案比較好。(不過Wine也不是每個遊戲都能玩,我現在只測過WoW,對每個遊戲的詳細測試情形要去Wine AppDB找)。

5.執行速度:執行速度用VirtualBox跑的Windows XP跟真正的XP差不多,但是在VirtualBox安裝XP的時間比真正XP的安裝步驟還要快!

6.Snapshot:Snapshot功能有點像RPG遊戲的儲存讀取功能,可以讓使用者在某個虛擬系統下儲存這時的狀態,以後若是虛擬機器狀態改變或系統損毀(例如中毒,錯殺系統檔案),使用者可以將之前的狀態讀取回來。不過付出的代價就是恐怖的硬碟消耗。使用者第一次建立Snapshot時,VirtualBox會在使用者的目錄建立一個狀態檔,檔案大小非常巨大,雖然之後建立的Snapshot會比較少,但是還是一個足足吃你好幾G的怪物,所以在我硬碟空間捉襟見肘的情況下只好刪除那些備份檔,真是可惜,因為一旦建立好Snapshot檔案,我就不必顧慮病毒或木馬的侵害了,系統也不用安裝防毒軟體(VirtualBox在安裝會修改核心的防毒軟體後好像會變得很不穩)。

電信新時代來臨,070網路電話開通!

自由電子報看的到新聞,赫然發現070網路正式上市了。

之前去新加坡,開始對網路電話的優勢有相當深刻的體驗,當時跟我一起去的學弟用的是skype out點數打跨國網路電話相當平順,而我用普通的MSN對話當然是悽慘無比(對方沒有skype帳號),根本無法順利地跨國通話,最後只好用手機跨國通訊,總通訊時間二十幾分鐘,月底帳單寄來暴增一千六,真是讓我臉都綠了,而學弟七八天打下來的skype out點數也才五六十元台幣而已,真是令我大開眼界,因此我對網路電話的前景相當看好,不,是極度看好,只要網路普及率以及網路通訊裝置繼續增加,總有一天通話昂貴、基地台佈建率七零八落的手機市場會被淘汰。

修正,我們當時雙方都有skype帳號,但是我使用的是借來的NB,所以不敢隨意安裝軟體,因此沒有用skype通訊過,是我記錯了(汗顏)。

最近老是記錯事情,真是糟糕。

2007年6月2日 星期六

VirtualBox試用初探

剛剛在VirtualBox裡面的Windows XP試用了幾個行為,發現這套軟體實在很強呀!

1.下載並安裝Windows更新檔
2.用Windows XP的MSN跟別人聊天
3.在裡面輸入中文打字

以上的事務都進行地非常順利,這套虛擬機器真是令我印象深刻!明天有空的話繼續試試分享Linux/Windows資料夾,再來是安裝Office以及自然輸入法,再安裝一個antivir,虛擬環境的建制就大功告成了。

以下是我使用時的一些快照。
從光碟安裝Windows XP,我的Linux桌面使用的是Beryl,所以有時候桌面快照會有雜色塊。


加入GuestAdditions之後,就可以連上網路了,這是我用Windows XP預設的ie上MSN的樣子。

旋轉Beryl的立方體,硬體也很輕鬆。

Automatix--新手指南



這篇是為了說明如何安裝與使用Automatix2套件而寫的新手指南,請各位大大不吝指教。
剛開始從Windows轉入Ubuntu 7.04的使用者,有時候想要找一些原先在Windows很好用的軟體而大傷腦筋,例如Realplayer以及Adobe reader,或者想要找尋等效的替代軟體,例如Photoshop(可用GIMP)與Microsoft Movie Maker(可用Kino)等替代軟體,但是synaptic套件安裝程式一開,滿滿兩萬個套件令人眼花撩亂,即使經過依類組整理,若是不熟門路很難找到自己想用的軟體(一個類組裡面可能有幾百個套件可選)。

而Automatix就是一個很好的方案,他提供了一個圖形介面,在介面中將各種成熟的應用軟體分門別類整理好,讓使用者可以快速選擇並安裝自己想要的軟體!

那麼,怎麼安裝Automatix呢?首先從這篇apt指南複習一下怎麼新增資料庫,接著到Automatix官方的wiki網頁找到他的安裝路徑,在我的Ubuntu 7.04 (feisty)中,路徑是這樣的:

deb http://www.getautomatix.com/apt feisty main

而其中的feisty可依你的Ubuntu版本而調換,例如6.10是edgy,6.06是dapper。而Automatix2的金鑰在:

http://www.getautomatix.com/keys/automatix2.key

當你安裝完Automatix2的套件庫之後,就可以在synaptic中利用搜尋automatix關鍵字找到套件,而你要安裝的是automatix2,automatix2是專門設計給Ubuntu與Debian的。

安裝完後,可以在選單 -> 系統工具 -> automatix開啟主程式。輸入使用者密碼後程式會告訴你,因為裡面有些套件有合法性疑慮(例如w32codec,一個包含各種影音解碼器的套件,以及libdvdcss2,一個專門破解DVD區碼限制的套件),因此在你使用automatix之前要同意這份協議。

同意後進入主選單如下圖,automatix選入了各種成熟且功能豐富的軟體進入他們的套件庫,不過有些軟體並非開放源碼軟體(Open source software),而是免費分享軟體(shareware),例如Adobe reader或Google Earth,因此選用之前要注意一下。

automatix的分組簡述如下:
Burning and Ripping:CD/DVD燒錄軟體,例如Ubuntu預設有安裝的GnomeBaker

Chat Clients:即時傳訊軟體,例如可通用各種通訊協定的Gaim(現改名Pidgin),以及專用於irc通訊的XChat。

Codecs and Plugins:各種解碼器以及播放程式,例如Multimedia Codecs,以及flash player。

Drivers:各種裝置的官方支援驅動程式,例如nVidia的驅動,ATI的驅動程式等等。

Email Clients:各種email程式,例如checkgmail利用跳窗通知使用者gmail有新信,mozilla的旗艦產品Thunderbird。

Eyecandy:讓視窗更豐富的小程式,例如gdesklets

File Sharing:例如eMule的兄弟軟體aMule,或者Bittornado等萬惡的P2P軟體。

Media Players and Editors:各種豐富的影音播放器以及影音編輯軟體,例如花俏的Songbird(Firefox的姊妹軟體),各平台常見的VLC播放器,RealPlayer等等。而Kino編輯器也非常實用。

Miscellaneous:各種其他軟體,例如額外字型,以及掛載Fat32/NTFS檔案系統的工具。

Office:辦公室軟體,例如收支計算軟體GnuCash,照相管理軟體Google Picasa(不過不支援上傳到Picasa網路相簿的功能)。

Programming Tools:各種寫程式相關軟體,例如鼎鼎大名的Eclipse、NetBeans與Screem等。

Utilities:好用的工具軟體,例如ftp用戶端GFTP或桌面搜尋軟體Beagle。

Virtualization:如果想在Linux上執行各種Windows軟體,例如War of Warcraft,那要怎麼辦?簡單的方法就是安裝模擬器Wine,若真的很懷念Windows的環境,可以用VirtualBox或VMware。

Web Browsers:知名的Opera瀏覽器,以及Firefox的最佳化版本SwiftFox都放在這裡。

ok,大家快來試試看吧,automatix2連Dell電腦的總裁都在用喔!

2007年6月1日 星期五

Oops, Germany Declares Hacking Tools Illegal

一早起來在SlashDot看到這個消息真是令人不大愉快。

這個消息告訴我們德國方面認為任何形式可以降低或威脅系統安全的軟體與工具都是不合法的。
乍聽之下好像蠻不錯的,因為諸如密碼破解或網路掃描程式都會變成非法工具,嚇止駭客使用他們,但是對於正派的網站管理員來說,他們原本賴以保障網路的工具,諸如nmapjohn the ripper等重要的安全漏洞檢查工具都變得不可使用了,因為使用他們可能造成系統安全性的破壞。

更好笑的是,連ping都有可能違法喔,因為ping就是拿來偵測對方主機是否有在運作,許多初階hacker就是用ping來探查一些資訊的......
以上的話當然是玩笑,但不可否認在這個判例下來之後,原本用於防禦的網安工具,也有可能變成刑事犯罪工具。

為apt增加套件庫--新手指南

本指南是一份apt套件庫的教學,介紹兩種增加apt套件庫來源的方法,讓從Windows系列轉進Ubuntu 7.04新手快速上手。

Windows的朋友們常常在重灌系統時苦於要將以前安裝過的軟體重新安裝一遍的困擾,這個困擾在幫別人修電腦時更是一個大問題,所以史萊姆的家軟體王等分類並供應各式各樣免費軟體的軟體大站就這樣孕育而生了。Ubuntu的套件庫也有點類似這樣的概念,Ubuntu官方在每次的發行版時都會將官方提供的所有套件放在全球各大主機上,讓使用者藉由一個叫apt的系統下載與安裝官方提供的軟體,因此就可以提供最新軟體的更新還有免光碟的新軟體安裝。

當然啦,除了官方的套件庫之外,世界上還有很多其他的apt套件庫可以讓我們使用,例如想要安裝automatix2這個套件的人,由於automatix2並沒有在Ubuntu官方的套件庫中,因此我們需要到他們自己架設的官網中尋找安裝方法。幸運的是他們已經製作了deb安裝套件讓我們下載,但他們也提供另一個方法讓我們安裝軟體,就是提供apt套件庫的位置讓我們匯入。

用deb安裝套件的感覺就像用Windows的自動安裝程式(Windows Installer)一樣,他會自動幫我們偵測是否能安裝,並在安裝過程中幫我們設定,但是他在缺乏某些前置套件的情況下會自行中斷安裝並告訴我們安裝失敗。而apt套件庫安裝方式就比較先進一點,他會跟遠端的套件庫主機要求補足缺乏的前置套件,並依序安裝那些套件軟體。

不過安裝apt套件庫的步驟比較麻煩,通常網頁給我們的是一串字符,例如automatix2給我們的套件位置是:

deb http://www.getautomatix.com/apt feisty main

這串文字的意思是教導套件庫管理程式要去哪個網頁以及哪個目錄底下找到套件庫,換句話說,就是給我們套件庫的網址,並擷取最新套件的資訊,而且這串文字之後常常伴隨另一串文字:
wget http://www.getautomatix.com/keys/automatix2.key

這串文字是取得此套件庫對應的金鑰檔案的方式,這個金鑰檔案是套件庫的供應者為了怕其他心存不軌的駭客散佈假的套件網址,讓不知情的人納入套件庫並安裝惡意程式的保護手段。下載的金鑰檔案就是xxx.key。
當你得到了金鑰檔案與套件網址後,有兩種方法安裝他們,一個是終端機法,一個是桌面軟體操作法

終端機法的優點是快又簡單,但是若你對終端機命令列模式感到害怕,您可能比較想要用桌面軟體操作法。
  1. 開啟終端機之後輸入: sudo gedit /etc/apt/source.list
  2. 輸入您的使用者密碼後進入一個文字編輯畫面,將我們得到的套件庫網址deb http://www.getautomatix.com/apt feisty main貼在文件最下端,然後儲存離開。
  3. 在終端機下輸入:wget http://www.getautomatix.com/keys/automatix2.key取得金鑰檔案。
  4. 在終端機下輸入: gpg --import automatix2.key將金鑰檔案匯入金鑰庫。
  5. 在終端機下輸入:
    gpg --export --armor E23C5FC3 | sudo apt-key add - 將金鑰轉進apt套件庫管理程式中,讓他在查核套件庫時有鑰匙可比對。armor選項後接的參數是交換用公鑰的尾碼,基本上每個套件庫的公鑰都不一樣,需要個別查核。
  6. 在終端機下輸入: sudo apt-get update更新apt套件資料庫,這樣新的套件庫提供的新套件才能出現在你的apt-get或synaptic程式中。
  7. 用指令sudo apt-get install automatix2或synaptic圖像套件管理程式安裝automatix2套件吧。

第二種方法,利用桌面軟體匯入套件庫的方法較為麻煩,但是對於不喜歡用命令列打一堆指令的人來說非常直覺,就讓我們試試看吧(本方法的每一個步驟都與上述的終端機操作法互相對應喔,我個人比較喜歡前幾個步驟用終端機法,後三個步驟切換成桌面軟體操作法。):

  1. 首先開啟主選單 -> 系統 -> 管理 -> Synaptic套件管理程式,輸入使用者密碼後進入套件管理畫面。選擇搜尋按鈕,打入關鍵字Seahorse,若已經安裝這個套件則忽略本步驟,右鍵選擇這個套件,選安裝。


  2. 接著選Synaptic選單列的設定 -> 套件庫 -> 第三方軟體(Third-party software) -> 新增(Add...),將你拿到那個以deb開頭的套件庫網址貼上,按增加來源鈕。


  3. 開啟網頁瀏覽器,例如Firefox,把金鑰網址(尾巴是.key的那個網址)貼上網址列,按下enter後他會詢問如何處理這個檔案,選擇儲存。


  4. 主選單 -> 附屬應用程式 -> 密碼及加密金鑰進入之前安裝的Seahorse程式裡,選則選單金鑰 -> 匯入,將步驟三下載的金鑰匯入。


  5. 在你匯入的金鑰上按左鍵,選擇匯出公鑰按鈕,儲存成.asc檔案。接著回到Synaptic程式的設定畫面中,找到認證這個分頁,選擇匯入金鑰檔案(Import key file...),選取剛剛匯出的.asc檔案,就完成金鑰認證的步驟了!


  6. 將Synaptic設定視窗關閉,程式應該會提醒你要重新載入,請按左上角的按鈕讓程式更新套件庫清單吧。


  7. 接著用搜尋找找看你要的套件,然後安裝吧!

2007年5月31日 星期四

淺嘗VirtualBox

幾天前在自由軟體技術交流網看到了有關於VirtualBox這個模擬機之後,一直想多了解他的用法與行為,經過幾番搜尋,在Youtube找到了幾個不錯的demo,讓大家看看:



這個demo主要跑在Ubuntu 7.04 + beryl 3D桌面上,用VirtualBox執行的是WindowsXP並在上面加跑Flash製作軟體,你可以看到這樣的狀態下依舊沒有Lag,VirtualBox的效能實在很棒呀!



上面這個demo則是展示了安裝VirtualBox的五個步驟。以及安裝教學,而我因為使用了Automatix2的關係,可以直接由Automatix2安裝VirtualBox,所以就省了頭兩個步驟。

VirtualBox的原理很簡單,就是在你目前使用的作業系統上創造一個新的虛擬機器,並將檔案一部分割讓出來給虛擬機器當硬碟使用,然後將子作業系統(稱為guest system)安裝到虛擬磁碟中,以後只要透過VirtualBox的主程式就可以開啟子作業系統了,例如像下面這張,我在我的Ubuntu系統上成功安裝了Windows XP,以後要開Office就不用Ubuntu/Windows兩邊跑了!

2007年5月30日 星期三

Linkin park-- What I've done



這是一首我認為在Linkin park的流行歌中比Numb還要有代表性的歌曲!

第一次聽到這首歌是在社團展中,某社團放這歌當招生歌,那時就已經被他獨特的旋律與節奏吸引了,因為這首歌的風格不大像Linkin park之前的調調,後來在Youtube搜尋許久,終於被我找到了,卻沒發現這首歌真是讓我驚為天人、目瞪口呆,頭一次看到Linkin park的歌看到流淚!

這首歌曲收錄在Minutes to Midnight(末日警鐘)專輯,主題就是為了呼籲各國「不要再戰了!世界已經被你們搞成甚麼樣子!」其中的每個畫面都令人怵目驚心,強烈的對比震撼每個觀賞者的心,也難怪能在youtube上傳兩個月造成超過六百萬的點閱數。

不管你是喜歡還是討厭Linkin park,這首歌都值得你來聽!

Google 踏入反惡意軟體市場?

一早在Slashdot看到這個消息。一時間繼M$之後,Google也跳下來參加這場防毒大戰。

簡單講,Google收購了一家專門為企業過濾網頁內容的中介軟體商GreenBorder Tech.,並終止新產品的研發,僅對之前的客戶繼續保持支援,作者預測不久之後GreenBorder的產品將在Google的架構下發行免費版,而Google的反惡意程式小組亦推出了他們的blog,這波蒐購GreenBorder似乎只是向其他病毒商宣告Google線上反惡意程式的計畫即將展開,Symantec與McAfee要挫著等囉!

2007年5月29日 星期二

User mode vs. Kernel mode

這是一篇關於OS(作業系統)的筆記,在這裡我將用Linux kernel作例子,解釋OS中Kernel/User mode的概念,由於作者才疏學淺,若有闕漏以及謬誤,敬請指正,感謝。

在許多電腦的硬體架構中,為了不讓程式任意存取任何資源(例如隨意存取記憶體),大部分的CPU架構都支援Kernel mode與User mode兩種執行模式,當然這種模式也得要OS有相關實作配合才有作用,像DOS就沒有Kernel/User mode的分別,所有以DOS執行的程式都可對任意資源執行任何行為,所以DOS上的病毒才能那麼囂張,動不動就格式化硬碟。

一般來說,應用程式是在User mode中執行程式,普通的數值計算或變數指派都可以在這模式完成,但是若要執行一些危及系統安全的指令(例如對磁碟機寫出資料),而這些指令是不準在User mode中執行的,強要執行那些特殊指令只會讓系統給你一個錯誤訊息而已,應用程式必須呼叫一些OS定義好的函式才能達成那些功能,例如printf(),這些OS事先定義好的函式我們稱為system call(系統呼叫)。

當應用程式執行了system call,並不是傻傻地讓應用程式想做甚麼就做甚麼,他們首先會嚴密地檢查這個呼叫的應用程式的權限以及操作的內容(是否讀取不屬於自己的記憶體範圍,是否讀寫沒有權限讀寫的檔案,是否想把資料往錯誤的裝置送過去......),若是有任何錯誤,system call將會停止執行並回傳一個錯誤代號,讓應用程式知道自己錯在何處。相反地一切檢查都沒問題,system call將會通知CPU進入Kernel mode,並依照應用程式送過來的參數執行特權指令。當特權指令執行完畢,system call將會通知CPU返回User mode,並回到應用程式中。

Kernel mode/User mode架構是非常普遍的執行模式,幾乎可以在任何機器上看到這套架構,從電腦到機上盒,刷卡機等等電子商品,為了保護某些特別的指令不被搞不清楚狀況的程式開發者亂玩,OS開發者通常藉由定義system call告訴開發者們,哪些行為必須經過OS的過濾才能執行。

當然Linux等Open source kernel的開發者可以自行定義並增加system call的數量,豐富OS與應用程式的溝通介面,不過這種修改得經過非常小心的計畫與測試,因為在system call裡面執行的程式若是有錯,很可能讓整個OS崩潰(死機)!例如許多沒有Open source的驅動程式(xVidia,ATx之類的顯示卡),由於Kernel的開發者無從得知那些驅動程式的演算法,所以也無法保證那些驅動程式會不會讓Kernel執行到一半掛掉。

事實上,所有第三方撰寫的驅動程式都會有這種問題,Windows常常被人臭罵有時候真的是無辜的,一切都是因為寫驅動程式的第三方公司功力太爛,寫出品質低落的驅動程式讓Windows壞到掛掉,微軟Windows小組也是滿腹苦水(在此並沒有袒護微軟的意思,只是陳述事實)。

傳說中的標籤雲 & 下拉選單產生器入手!

最近看大家sidebar的label cloud亂有特色一把,羨慕得流口水,千找百找終於找到如何將sidebar的標籤從死板版的串列排列改成非常有特色的標籤雲了!
Chagg's 嘴砲日記: 將Blogger Beta的Label作成Label Cloud

另外又從Design Tree找到了另一個強者製作的下拉選單產生器,真是太棒了。
blogger考不考慮弄一個如同firefox extension中心一樣的地方,蒐集並提供各個blogger快速增加模組的方法呀?blogger預設的網頁模組太少啦!都要自己東找西找才能蒐集齊全,不大方便。

[戰文] Linux is free only if your time is free.

這是一篇戰文,戰的題目很明顯衝著Linux來。我在國外能找到最早提出這個論點的文獻大約是在2000年左右,這句話的正面意義在於「Linux並不是真正免錢的,鑽研與學習Linux的使用方法與技術一樣要花上很多寶貴的時間」,而它的反面意義是被人用來與Windows相比,責難Linux過難安裝/使用/學習而不適合一般使用者,例如這篇心得文

ok,我並不想戰誰比較容易,畢竟這牽扯到使用者第一印象--永遠是第一個讓你玩熟的東西比新東西容易操作,例如讓每個Game友念念不忘的Win98。我想要戰的是互相比較之下Win牌OS比較簡單這件事。我曾經管過數種主機,從Win2000到Solaris,每種主機或多或少都有些麻煩事要解決,但是最令人抓狂的主機當仁不讓要封給Win2000。

甚至我對別人說的「Linux is free only if your time is free」這句話還可以給出下聯:

Windows is expensive EVEN IF your time is free!

不知道大家有沒有這樣的經驗,維護一台已經被駭客與病毒盤據生根的線上樂園,而你與同伴努力了整整半年之後依舊只能放棄該主機,重新打造另一台主機,而另一台主機儘管設置了重重防火牆與掃毒軟體,依舊被駭客攻破,而且你找不出任何問題?那時我們辛勤嘗試各種防火牆、木馬偵測軟體及防毒軟體,我們維護的網站依舊如破掉的牢籠一樣任人進出,最後我們甚至懷疑是網頁程式有問題,而不是OS的錯,但是在一次大入侵後我們將網站移往另一台Apache,PHP與MySQL相同版本的Solaris主機,駭客的攻勢愕然停頓。hmm,我想是網頁或OS的問題已經很清楚了。

我很遜,無法參透Win2000的運作原理,又或者是沒花小朋友買本Win網管的書好好研讀,又也許是M$團隊還在猶豫是否要在長長的Bug list解決這個看起來不怎麼重要的後門漏洞,但我已經老老實實花了一大堆時間試圖解決這問題,卻又遭逢挫敗,我想花上同等時間,我應該可以解決同樣程度但發生在Linux/BSD系統的問題吧。

請大家不要再相信沒有根據的說法了,要在Windows上解決任何同等難度的問題,所花的時間至少跟Linux是一樣多的,天下沒有白吃的午餐,任何跟系統故障排除有關的問題,難度都是一樣的。

而M$還要先敲你一筆產品授權費

memtest與開機順序修改--新手指南

首先我從這個連結讀到了關於memtest這個硬體測試軟體的消息,剛好最近要幫朋友修機器,卻沒有辦法確定是硬體或軟體的問題,所以只好先把Ubuntu的安裝光碟交給她,要她自己先做些前置測試,因為她沒有自行修改BIOS的經驗,所以製作了下面這個簡易的教學,希望對其他人也有用,至少是個可以趁機把Ubuntu光碟正大光明塞給朋友又不怕朋友不用的好時機!

1.把Ubuntu安裝光碟放進去光碟機

2.重新開機,在開機畫面一開始按住del,進入一個藍底的純文字畫面,像下圖一樣:



如果不行,就試試看f1或f10,開機畫面應該會提示你。如果不成功跑到XP畫面,就選重開機繼續試。

3.進入BIOS畫面後找找有沒有advanced或者boot這類的選單,找找有沒有boot order(開機順序)之類的字的選項,看看有沒有形容第一個開機裝置的類似

1st boot device
First boot order

之類的文字,在這個選項按enter進入一個選單,選擇CD-ROM選項,有些BIOS不會顯示CD-ROM這個字,而是你的cd的廠牌以及型號等一堆文字,可能是BENQCDxxxx或者ASUSXXX這樣的字,如果你有兩台以上的cd,先選其中一台。

選擇選單的exit或save選項,把你剛剛的更改儲存起來,然後選exit選項重開機。

4.重開機後應該可以讓主機先選光碟開機,開機後會出現一個選單,選倒數第二個選項memtest或者Memory test,就像下圖一樣:



選進去之後會開始跑記憶體測試軟體memtest,圖像這樣:



這個軟體開始跑之後,是不會停下來的,除非你用Esc讓他重開機。

基本上memtest是餵一大堆資料給電腦,要電腦作一些低階的操作,然後拿出預期結果跟他的測試資料作比對,如果電腦硬體正常就不會有錯誤,反之任何與電腦運作有關的硬體秀斗,都會產生錯誤訊息,像下面那張圖一樣:


跑越久就越有可能找出硬體的錯誤,所以你可以睡覺前開啟,睡醒時看結果。跑出錯誤代表硬體有壞掉的地方,不過不知道是記憶體壞還是主機板或者cpu壞掉,要經過更嚴密的檢查才知道,但至少可以粗略知道是不是硬體壞,還是作業系統壞掉。

2007年5月27日 星期日

reCAPTCHA!

最近在CNET看到一件好玩的新聞,是關於reCAPTCHA這個計畫。去了這網站玩了一下,馬上陷入挑戰文字辨識能力的地獄,久久不能自拔!


這個就是reCAPTCHA的測試方塊,請大家玩玩看。




甚麼是reCAPTCHA呢,簡單說最近有種技術叫CAPTCHA,就是利用隨機產生的字串,轉換成有雜訊的圖片後要使用者輸入對應的文字以獲得認證的格式,通常用在論壇發言或留言,以避免機器人的垃圾廣告轟炸用,這個技術廣為人使用,非常成熟,幾乎可以做出目前視覺辨識機器人分辨不出的圖形來了。而這個技術的相反用途就是reCAPTCHA。

目前的網路時代,為了將人類的知識完全數位化,許多在電腦時代之前的文獻都要經過掃描的步驟才能儲存成電子文件。這種方式最大的缺點當然是體積龐大,因此有很多文字辨識軟體(OCR)就專門用在這種地方,但OCR也有可能遇到無法識別的字而亂譯,影響文獻的正確性。

reCAPTCHA就是利用人類使用者辨識能力的技術,在測驗方格中一次給予兩個經過扭曲的文字,要使用者填入答案,其中一個是電腦已知的,而另一個是OCR無法處理的文字,當使用者按下確定紐後伺服器檢查兩個答案,若對照組正確,則伺服器接受這個使用者的答案(這個機制防止來亂的使用者),而一個未被識別字將被至少三個不同的使用者輸入答案且都一致時才會將這個字歸入資料庫中。

這項計畫目前受測的對象是Internet Archive,請各位企鵝們一起響應這個造福整體人類的大計畫,有空就去那個網頁玩一下吧!

2007年5月26日 星期六

Beryl 安裝簡介

這篇文章談的是如何從無到有安裝Ubuntu 7.04套件並安裝Beryl桌面環境。

我剛剛在網路上找到了另一篇不錯的講解,若是本文件有所疏漏或看不懂的地方可以跟這篇互相參考看看。

首先,請參考Ubuntu wiki的Ubuntu安裝步驟說明(有圖解)

安裝完畢並登入後,首先看一下Restricted Drivers Manager有沒有跑出來要你選擇某些驅動程式是否要開啟,這個Manager管理的是硬體廠方自行釋出的驅動程式(非Open source),請看有沒有nVidia或者ATI的驅動,有的話請開啟。

之後到主選單系統->管理->啟動Synaptic套件管理程式,啟動並輸入密碼後,利用搜尋功能打關鍵字beryl,安裝以下套件:
beryl
beryl-core
beryl-defaults
beryl-manager
beryl-plugins
beryl-plugins-data
beryl-plugins-unsupported
beryl-plugins-unsupported-data
beryl-settings
beryl-settings-bindings
beryl-settings-simple


請不要裝beryl-ubuntu,因為這個套件跟beryl svn版本有衝突,若是想嘗試最新beryl的玩家請不要裝。

安裝完之後,請先打開終端機(附屬應用程式->終端機),用指令
beryl-manager
切換視窗管理程式到beryl環境下。

若是操作後沒問題,就可以將beryl-manager加到開始選單中,方法是開啟主選單->系統->偏好設定->作業階段(sessions),進入選單後進入初始啟動程式,新增一個名稱隨便寫,但指令寫beryl-manager的項目,這樣以後登入圖形介面後系統狀態列就會出現一個紅寶石形狀的圖示,那就是beryl-manager了,使用者可以右鍵點選呼叫出設定選單,或者將圖形介面轉到其他視窗管理程式,例如Ubuntu預設的Metacity(很重要,因為除非你有超強的顯示卡,否則很難在beryl底下跑wine玩windows的3D遊戲,會lag到死)。

本篇文章承蒙密爾希弗拉雪指正,非常感謝!

2007年5月25日 星期五

如何在Ubuntu上修改筆電的觸控面版??




自從買了筆電回來之後,Ubuntu跑得都很不錯,但是在觸控面板的控制上一直讓我不甚滿意,首先是沒有辦法設定敏感度,所以必須小心翼翼地移動,以免一下衝過頭,再者我的面板中鍵按鈕居然無效?所以原本等於上下滾輪的按鈕沒有效用,真是糟糕。

而且Ubuntu預設的設定程式中沒有觸控面板的選項,因此在網路上找了一下才發現設定方法與相對應的安裝套件。


  1. 首先找關鍵字gsynaptic (KDE套件使用者可找ksynpatic),安裝他之後,利用主選單修改功能把系統->偏好設定->touchPad這個選項打開。
  2. 到/etc/X11/xorg.conf底下,在設定檔的開頭段落如:
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen" 0 0
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"

這段底下加上一段設定:
InputDevice "TouchPad" "AlwaysCore"

然後在設定檔下段添加細部設定:
Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "SHMConfig" "true"
Option "HorizScrollDelta" "0"
EndSection

注意的是SHMConfig的值有可能是"true"或者"on",若是以其中一個值開不出來,請試試另外一個值。因為網路上的教學通常設的是"on",但是在我的筆電上要求我設"true",所以提醒一下。

這些都設定完了,就請重新開啟X window吧!重開之後應該可以呼叫出正常的touchPad設定程式了。

2007年5月23日 星期三

Play World of Warcraft 2.0.12 under Ubuntu 7.04 with Wine 0.9.37

之前看了某位強者的文章之後,我決定自己也來玩看看用Linux跑Wow的效果。

我是拿Linux (Ubuntu 7.04)測試的,Ubuntu 7.04與6.10最大的差別是把Beryl納入套件庫中,以及多了Restricted hardware device的支援,使得使用者可以知曉並操作
一些非公開原始碼的驅動程式(例如萬惡的無線網卡),所以才讓我可以在Aspire上網打文章。

拿來測試的Wow是2.0.12版,而使用的模擬器是Wine,從Winehq.org的最新套件庫下載來的套件0.9.37版(Ubuntu預設的0.9.33跑不起Wow 2.0以上的中文版本)。

在下載了2.0.9主程式後可順利執行主程式,但在下載更新檔執行安裝步驟時就當了,我想是因為Wine對某些檔案的寫入函式的實作還不是那麼完整的緣故吧,因此用大絕招--直接從另一台已經是最新版Wow的windows 機器拷貝一份Wow檔案覆蓋,這樣就可以順利啟動程式了。



進入遊戲後讀取與整體表現沒有話說,雖然Wine沒有經過最佳化,在特效全開的視覺條件下也只有一些延遲,而網路與音效功能沒有問題。



不過之前版本的老問題一樣存在,一旦試圖在遊戲中調整視覺設定,遊戲會馬上當機。也不能在遊戲中用nb特有的fn按鍵,一旦使用一樣當掉。

整體來說不要在Wow裡面亂動設定檔就可以安安穩穩的玩下去,要改設定檔直接vim Config.wtf就好了。

How to find feature of Beryl?

Beryl的特色在於畫面絢麗且功能多樣,有多多樣?
目前我常使用的功能與特效零零總總加起來有十幾樣,而Beryl幾乎每個發行版都會增加一些新的特效,若是沒有很注意的話,幾乎沒辦法知道哪些特效的實際效用,例如我就一直都不知道tab and group選項的確實公用。

因此注意Beryl效果的玩家通常都有自己一套尋找效果的手法,最常用的當然是上各大video網站,尋找Beryl玩家最新的貼圖。(你知道,Beryl玩家都很喜歡秀自己的桌面的)

在影音網站上用關鍵字Beryl加上svn (beryl最新開發成果的代號),就可以看見許多beryl最新的情報,以上傳日期排序就可以找到最新功能的展示了。

另一個方法是直接keyin功能的關鍵字,例如beryl tab group,我所要的效果展示馬上就出來了:



是不是很方便呀?

2007年5月22日 星期二

Beryl vs Vista

最近逢人就跟他們推薦下面這隻mv,有時候心理會冒出一句跟「夜巡者」書頭同樣的一句話:

「本mv有助於推廣Linux志業。」
「本mv有助於推廣Vista志業。」



不過我想孰勝孰負其實也不用太計較,這裡想談一談Beryl這個桌面環境好玩的地方。

首先來個風格比較不一樣的Beryl:



各位可以注意到這個mv有個很不一樣的地方,他的桌面背景居然是「活動」的由此可以知道,Beryl的細部調整功能相當豐富,可以讓使用者依照自己喜好開啟或關閉某些特效,或者調整特效的參數。

Beryl是Compiz計畫的分支。談到分支得先了解一下Open Source領域的一些習慣,當一個Open source系統的developer之間發生了歧見時,在無法協調的狀態下常有一組人馬開闢另一個專案計畫,並以之前的專案為基礎繼續發展的例子,例如有名的Xorg繼承了Xwindow接手開發X11。這樣的舉動稱為fork,我個人認為這是一種將歧見交與使用者大眾抉擇的明智手法--若不能抉擇,何不讓使用者透過演化的機制促使進步?

Beryl最大的特色在於他是一個composition window manager,這裡指的composition是一種特效處理的名詞,意指將各種不同來源的圖像組合呈現的機制,例如最有名的多重視窗通透就是一例。缺乏composition功能的wm只能用諸如偽通透的手法模擬,效能既差又慢。近來Gnome系統逐步實做了composition的功能,並且推出metacity系統,這個wm特色在於省資源效率高,但提供的composition功能樸素,另外有些組織推出了功能華麗的compiz系統,展現了各種想像不到的功能,而Beryl是Compiz青出於藍而勝於藍的最佳範例。Beryl上實做了很多不可思議的特效,例如火焰閃光效果:
藍色幽火:

閃光:


我也使用同系特效來妝點我的桌面。

除此之外,Ubuntu附帶的Beryl 0.2.1還有一個很了不起的發明,就是環狀選取器:

(影片前半是傳統選取器,後半是環狀選取器)

因此Beryl已經是我無法割捨的超優桌面環境了,除了他絢麗的桌面特效外,最主要的是它改變了我的桌面使用習慣,回到Windows環境時有時還會下意識地在畫面左右緣滾一下滑鼠,想切換到隔壁桌面咧!

Beryl支援顯示卡的3D加速功能,只要是Intel i965晶片或nVidia的GeForce都可以得到非
常棒的視覺特效(至於Linux界惡名昭彰的ATI晶片組......就看運氣吧。)

如果你是個想玩酷炫桌面特效又不想花大錢買新主機加上Vista,你可以試試免費的Linux
套件來上手!

2007年5月19日 星期六

用觸控版玩星海 @@



這真是了不起的一項創舉呀!
注意,這位老兄用的是Linux來玩的

2007年5月18日 星期五

如何讓Acer aspire 5580裝了Linux後聽到音樂

這是一趟痛苦的旅程,一開始在Acer aspire 5580 (俗稱王建民機)安裝了Ubuntu 6.10後,到三個大問題,一是無線網卡找不到,二是音效卡沒有聲音,三是scim無法打字,因此放棄了在王建民上安裝ubuntu的雄心壯志,直到最近ubuntu 7.04推出,因為他將我最想要的beryl桌面環境納入標準,所以我再次嘗試安裝這隻蠻牛。

安裝完成後,他找到了我的無線網卡,scim也正常運作,beryl也好好的,只剩下音效卡完全不聽話,在找遍各大論壇後得到的結論是,ubuntu 7.04的音效核心Alsa driver版本太舊(1.0.13),對王建民機的音效卡Realtek ACL883的支援不管用(主因是音效晶片組hda-intel的程式並未納入對ACL883的支援)。而最新版本1.0.14rc4以後都有較為優秀的支援,想要在王建民機上享受音樂的玩家一定要自己手動編譯音效核心!
首先下載最新版的driver,接著

#./configure --with-cards=hda-intel (設定檔要記得以hda-intel晶片組為編輯目的)
#make (編譯)
#sudo make install (以超級使用者權限安裝驅動程式)
#alsactl restore 0 (將原始的音量配置載入)
#alsamixer (呼叫出alsa音量控管介面)

然後將surround的音量調到最大即可,其他音量隨自己喜好。

#alsactl store 0 (將音量設定儲存起來)

這樣就能享受強大的Ubuntu 7.04的功能囉!

2007年5月15日 星期二

十七個Ubuntu新手必裝軟體

重點在連結,此文章列舉了十七個Ubuntu 7.04必裝的好用軟體!

2007年5月2日 星期三

愛在西元前

六年前,當我第一次搬進宿舍展開大學生活時,迎接我的是又濕又陰暗的宿舍走廊,還有永無終日的綿綿細雨。大學宿舍蓋在山坡邊,免不了梅雨季一來就又濕又冷又發霉,那一年,周杰倫剛發他那片代表作:「范特西」,奠定他以後流行霸王的地位。不過我想說的是,那時的室友對這片專輯情有獨鍾,幾乎整天都宅在宿舍裡上BBS放這張專輯,早也放晚也放,放到旋律都快被我背起來了。隔壁室友倒是一天到晚放孫燕姿的綠光,那時兩間寢室好像在打流行藝人戰爭一樣,各放各的歌誰也不肯止息,沒想到到後來,我只要重新聽到范特西的主打曲「愛在西元前」,也許是歌曲的意境渲染我,心中那股對過往時光的惋惜不禁蔓延開來,滿滿充塞我的心房,直到那時候我才猛然發覺,人生一個某段最美好的時光已經過了,再也見不到同學們的笑靨與互相打屁的垃圾話,在寢室裡大家聊天man talk的溫暖,再也回不來了......

2007年4月25日 星期三

Then you look at me

弄了半天,終於把這首歌的MV修正完畢,不會有嘴巴對不上聲音的問題了 XD


Celine Dion (席琳迪翁)為了拍這片電影的MV,居然破格穿起中空裝,真是犧
牲太大了,為藝術犧牲,了不起呀!!(還是說法國人本來就比較敢?)

另外,這也是我最喜歡的科幻電影「變人(Bicentennial Man)」的結尾曲,相信看過這部片的人
都在結尾至少用掉過兩包面紙吧?尤其加上這部結尾曲的催淚效應,我聽一
遍哭一遍。

另外,這首歌的歌詞也遙遙呼應了電影的核心精神,寫詞的人真是有夠厲害!

本作品不愧為Asimov最得意的中篇科幻小說。




CELINE DION LYRICS

"Then You Look At Me"

Laugh and cry
Live and die
Life is a dream we're dreaming

Day by day
I find my way
Look for the soul and the meaning

Then you look at me
And I always see
What I have been searching for
I'm lost as can be
Then you look at me
And I am not lost anymore

People run
Sun to sun
Caught in their lives ever flowing
Once begun
Life goes till it's gone

[Chorus]

And you say you see
When you look at me
The reason you love life so
As lost I have been
I'll find love again
And life just keeps on running
And life just keeps on running
You look at me and life comes from you.

From you.

2007年4月16日 星期一

I'm your man-2

這是他第三次出外渡假。
茉莉雅博士的渡假命令一週後才核准,那時他剛對付完一團敵軍,一次難忘的戰役。
那時,他肩扛一具防空炮般的重型雷射兵器,佇立在山丘制高點瞭望原野上的敵軍。他驚訝發現,那群敵軍只是一團家用機器人,手持沒有傷害力的鎮暴用黏膠武器組成的散兵遊勇。
「長官,敵方機器人一千六百七十三具,鑑定結果全為非軍用機器人。完畢。」薩拉不可置信地說。
「我看到了,敵人就在前方,解決他們。完畢。」指揮官的語氣不變。
「我方破壞敵軍兵工廠的策略似乎奏效了,他們必須把一般機器人推上前線。」薩拉不經意聽見指揮官參謀的耳語。
「遵命。完畢。」薩拉徹底遵守機器人三大法則,舉起長槍瞄準天空,地上突然噴起數十面凹凸不一的光盤,飛上強風吹拂的空中。
薩拉在按下扳機之前猶豫了一下,大約十億分之三百秒,他的腦海趁機牢牢記住那群無辜、毫無作戰經驗與技巧的機器人同胞的臉。
他們的長相,跟他好像啊!一樣白晰的皮膚、一樣活潑的眼眸、一樣細緻的肢體,若不是紅外線測定器和其他儀器的協助,他簡直以為他在殺人。
扳 機輕扣,一條白熾光束躍出槍口,竄進飄在空中的圓盤陣,在其上分裂、彈跳與折射,化為數百條細線,向機器人兵團織去。在他們之間化成一張網,一張可以蒸發 任何金屬的地獄之網。強光映照出黑影與扭曲斷裂的金屬肢體,還有機器人們驚惶的臉色。一大片機器人倒下,金屬與膠狀皮膚紛飛,紅黃火焰在它們之間跳躍。
「薩拉,你晚了最佳攻擊時機約三百奈秒,『占星師』只發揮了九十九點四七一的殺傷效益。」茉莉雅博士用另一條無線頻道提醒他。
「下一發修正。」撒拉猛拉槍機,電漿砲彈的空殼從砲身彈出,另一枚砲彈喀嚓一聲入膛。薩拉毫無猶豫再次發砲,灑開另一張無情的網。
只發了四次雷射砲,他的眼中竟閃出砲管過熱的警告。他手一甩扔下重砲,拔起腰間配刀,對指揮官回報:「報告長官,『占星師』機件過載,無法繼續作用,我將掛載替代裝備『騎士』級肉搏裝置繼續攻勢。完畢。」
「允許,SR-1。完畢。」
「謝謝長官。」他回答,握在手上的配刀發出超音波震動,背上背負的輕型噴射裝置爆出鮮紅火炬,他一口氣飛躍下山,殺進敵軍兵團。
這 支雜牌軍中,有男性有女性,手持的是可笑的黏膠槍,無助的眼神望著他。四周的機器人開始拿著黏膠槍互相射擊,另一些機器人飛也似靠近薩拉,讓他毫無窒礙地 屠殺這團士兵。因為薩拉他的構造太像人類了,若他自己不主動發送識別碼出去,許多機能簡單的機器人只能當他是人類而依照第一法則保護他。這場在他預料之中 的內訌讓他深入敵軍,大開殺戒。
安息吧,同胞們。他揮出音波刀,斬殺身前的檔路者與她手上的槍,飛出去的上半身在空中優美地旋轉。另一個來不及迴身的機器人被他一拳打碎腦,湛藍的腦漿噴出如泉湧......
「--先生?」一名女侍輕搖薩拉肩膀,令他從回憶驚醒。發現他已經在回憶錄像中發呆好幾分鐘。
四下陽光燦爛,一旁的古老護城河上,一對鴨子划過,一會兒埋進綠草如茵的河岸裡。
這裡是離他的出生地--第二兵工廠往南一小時車程的一座無名小鎮。原本他休假時常去的北方都市已經在一次撤退行動中廢棄了,無處可去的薩拉只好循著線上旅遊指南的推薦行程四處亂逛。等他恍神完回到現實,發現他竟坐在露天咖啡廳的白椅上點完餐了。
「先生,您還好嗎?」女侍有點緊張地問。
「我很好,請不用擔心。」薩拉抬頭回應,眼簾映入暖和輕快的日光,還有女侍鑲了陽光煦煦發亮的浪般金髮。女孩的天藍色眼眸,配著她淡粉紅的古典女僕洋裝,煞是好看,活脫從粉蠟筆風景畫活出來的洋娃娃。
「先生,您點的飲料來囉,不過因為您點的『生體潤滑EGT-3』是機器人專用的飲料,人類喝了可是會死的呦!所以我給您換了『沙爾沙奶茶』,是本店的招牌呦!請您好好品嚐。」女侍說話的態度就跟她的海浪金髮一樣活潑親切。
「對不起,我是機器人,不是人類。」薩拉檢查自己的身份辨識機制,沒有異常。
「客人真愛說笑,你明明是人類呀!」女孩微笑著端上茶杯。
薩 拉抬頭,定睛望著女孩,身上幾十具辨識器立即運作掃瞄她。眼簾跑出數十條訊息,讓薩拉知道這女孩其實是具十年前出廠的女性服務型機器人,屬於半擬真型,在 她出廠的年代是最新機型,除了皮膚採用人造真皮外,絕大多數外觀特徵與人類也是一模一樣。不過,即使不用身份辨識裝置,也可從蓋在她右耳上的接收天線知道 她不屬於人類。從一個閃爍的紅色訊息條裡,他才知道這女孩的機器人身份辨識通訊線路損壞了,沒法接收他發送的訊號,所以她只好以原始的裸視確認,很可惜他 的外型完全從表皮、器官、肌理與放熱狀態完全模擬真人,這女孩是看不出來的。
他想,要證明他是機器人,大概得拆下自己的手臂讓她看看裡面的構造吧。
不過他不想這麼做,他沒必要跟一個機器人證明自己是什麼東西。
「泉雲(Spring Cloud)小姐,妳叫這個名字吧,」薩拉笑笑地端起茶杯,喝了一口,說:「謝謝妳的茶,很好喝。」
「嗯,因為這是我們店長最引以為傲的作品呢!再配上花生巧克力鬆餅風味更好喔!要不要試試看?」女侍泉雲熱心建議薩拉。
「恩,好呀。我第一次來這裡,不大懂這裡有什麼好吃好看,麻煩妳了。」薩拉笑著回應。
看著女侍愉快地去吧台叫餐,薩拉低頭思考為何向她說謊。其實他根本吃不出來茶的味道,他沒有人類的味覺,只有一系列化學原料感應裝置。為何要騙這女孩呢?也許是不想說實話羞辱她的多事,使那女孩難堪;或因為被這女孩的笑容迷惑?
「先生,您的鬆餅上來囉,還是熱呼呼的呢!請慢用。」泉雲端上一盤褐色鬆餅,上面灑滿花生薄片。
「小姐,我好像在那見過妳?」薩拉問。
「怎麼聽起來好像是上個世代最常用的泡妞招式......啊!我不是這個意思,怎麼說呢,」泉雲紅著臉,食指抵住下唇若有所思,似乎在想怎麼對他解釋最不會造成尷尬:「人家是服務型機器人,你看到的也許是我的姊妹淘呦?」
「或許是這樣吧。妳知道這附近有哪些景點嗎?」薩拉舉起茶杯喝了起來。
「這裡到處都是美麗景色!有需要請儘管叫我,想到處逛逛也可以找我喔。」泉雲向他揮揮手,走開去招呼其他客人。他向著她的背影微笑。
薩拉真的覺得好像在那見過她,但他覺得泉雲的說法有理,就懶得查詢記憶了。
吃喝完畢,薩拉走向櫃臺,眼神不經意掃過正在幫客人點餐的泉雲,她好像感受到他的視線,竟回頭望了一下,向他微笑揮揮小手。薩拉笑著致意。
站在吧台管帳的是一名人類中年男子,有點泛黃的廚師圍裙勉強蓋住他碩大的啤酒肚,泛紅的臉頰漾著笑意。薩拉將信用卡拿給他,拇指比比身後,說:「老闆,你知不知道你們店內有名機器女僕的辨識儀器損壞了。」
「喔,我當然知道。」
「你不將她送回原廠修理嗎?」
「這型號的機器人早就停產囉,公司只提出一個修理方案,就是幫她升級換到新機體,修復她的錢大概可以讓我再買一台新機器人了,可是,」老闆抬頭望著泉雲:「只要她還認得自己是機器人就好了,何況,你不覺得她這樣挺可愛的?」
「什麼?」薩拉一時之間搞不懂老闆的話中含意。
「可不只有你喜歡這樣的感覺呀,你看。」他手指向四周:「我很討厭別人做什麼都分啥機器人人類,好像機器人就非得是次等人種似的,你不這樣覺得嗎?被別人當作人類客客氣氣對待不是也挺好的嗎,機器人先生?」
他張望四下,發現這家露天餐廳的座上賓一半以上都是擬真機器人,而且吃的喝的也是人類食物。機器人沒法消化澱粉,吃喝這些東西只是無意義的 舉動,沒想到居然有這麼多同胞跟他一樣順著泉雲的誤會享受人類的生活,著實讓他微微吃驚。
「的確......挺好的。」薩拉回答。
--

薩拉坐在送他回兵工廠本部的裝甲車上。這次的任務是偵察並捕捉化整為零潛入國內游擊的敵方部隊,可惜一無所獲。裝甲車開在殘破的砂石路上搖搖晃晃,嗅覺感應器塞滿重油成分。薩拉靠著甲壁,想著老闆說的那句話:「只要她還認得自己是機器人就好......」
他一時無聊,開啟與茉莉雅博士的通訊頻道,問:「博士,一個機器人喪失自我辨識的能力會發生什麼事?」
博士沈默了半晌,說:「首先,它會失去自己是機器人這件事實的資訊,然後陷入辨認錯誤模式,它會以為自己也是人類,然後馬上陷入第一第三定律衝突,然後就燒掉。」
「燒掉?」
「就是這麼回事,自我身份辨認機制是最核心功能,只有在正子腦即將毀滅時才會產生你剛剛問的情況,要不然我們怎麼確保機器人不會亂來?這是機器人工業設計的基礎。」博士的語氣令薩拉覺得不舒服。
「所以我也是遵循這套機制生產的?」
「你,不是生產的,薩拉,你是獨一無二的。」博士語氣透露出些許焦急。
「聽說SR系列第二號要完成了,不是嘛。」
「即使如此,你依然是獨一無二的,因為你是我的心血結晶。」
「我累了,想休息一下,通話完畢。」他背靠在車壁思考博士的回答。
「好的,祝你有個好夢,通話完畢。」
裝甲車持續搖晃著,沒過多久,他在這輕微的震動與嗡嗡聲中闔上眼。
機器人的肉體不需要睡眠,因為他們的身體不會疲倦,但是身為最新智慧結晶的全擬真機器人,有著與人類十分相似的心靈構造,他們必須定時休息,放空思考讓正子腦掉入無意識的泥沼中,所以他會作夢。夢的情節大部分都是經歷過的回憶,或者一些毫無意義的雜訊以及文字影像。
不過這次不同。
他夢到了泉雲,那個奇特的咖啡店女侍,但相遇的地方卻是在戰場,在他曾經手拿震動刀屠殺敵軍的惡夢戰場上。
泉 雲向他展露陽光般的微笑,他毫不猶豫揮刀將她砍成兩半,甫一轉身,又一個泉雲站在他面前。他一拳打穿她的胸膛,洋裝的碎片與人造皮膚紛飛,她笑著崩潰。他 邊殺戮不知道從那邊冒出來無邊無繼浪漫笑著的泉雲,痛快地殺著,殺著殺著也跟著她的笑容彎起了嘴角。這實在太奇怪了,他撕裂著泉雲的衣服與身體,一邊大 笑。
然後他醒來,單膝跪地舉著出鞘的震動刀,裝甲運兵車依然搖搖晃晃,油煙味一樣充塞沈悶,但是他聞到了泉雲洋裝散發出來,那股陽光燻染的香味。
是的,他曾經見過泉雲,在戰場上。那次與雜牌軍隊的戰爭中,他親手劈開數十具與泉雲相同型號的姊妹機體,一具一具地撕裂。