關於本報

自由軟體鑄造場電子報
報主:中央研究院資創中心
創刊日期:2004-06-03
發報頻率:雙週刊
訂閱人數:3,349
官網:

近期電子報


訂閱便利貼


將貼紙語法置入您的網站或部落格當中, 訪客可以輸入mail取得認證信,並按下確認連結後, 快速訂閱您的報紙。
預覽圖
訂閱自由軟體鑄造場電子報報
自由軟體鑄造場電子報
-----------------------------------------------------------------------------------------------------
Plurk FaceBook Twitter 收進你的MyShare個人書籤 MyShare
  顯示內嵌語法

自由軟體鑄造場電子報
發報時間: 2011-04-15 05:00:00 / 報主:OSSF
[公益聯播]化妝品真相大公開社群
本期目錄
[技術專欄] 不做 NoSQL 的 CouchDB
[源碼快訊] Debian 資深開發者來台分享 Debian Community 的參與方式
[源碼新聞] 專訪 OSDC.TW 2011 推手簡信昌
[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
[源碼密技] 你的老遊戲總管 D-Fend Reloaded
[源碼快訊] 用自由軟體 Plone 來架設網站(2)— 內容管理
[企業應用] 淺談將開放源碼軟體改名並違法販售:Butterfly Media on Amazon
報主的話
[技術專欄] 不做 NoSQL 的 CouchDB
Rex/文

CouchDB 作為 NoSQL 潮流中的一份子,很容易被拿來與被貼上一樣標籤 (buzzwords) 的資料庫作為比較。各個專案分別被貼上 key-value stores、tuple storesBigTable ClonesDocument storeGraph database 等等標籤

這些標籤分類有時很容易幫助程式設計者概略瞭解後段實做的技術屬性,但很多時候,程式設計者的預設看法也可能是錯誤且偏頗的。我們可以說這些新技術都是想解決 CAP theorem 問題,但其實這些不同的資料庫計劃各有其想要解決的問題與開發哲學,如果以概括性的功能特徵來作為選擇技術的方式,很多時候會發現專案發展方向不一定適合自己需求。程式設計者應該先定義自己的問題後,再選擇屬性最適合的技術。

CouchOne 的開發者 Mikeal Rogers 曾說過,近期的產業浪潮掩蓋了各專案實際要解決的問題,取而代之是對於 Big Data 的想像與期待。Mikeal 那麼就讓其他人(與舊資料庫業者)去追尋 NoSQL 的浪潮吧,CouchDB 可以專注於處理 Mobile Database

CouchDB
特色

試用了 CouchDB 一陣子,幾個特別欣賞的特色功能,簡介如下:

* Implemention for ACID Properties
** Multi-Version Concurrency Control (MVCC)
** B-Tree indexes
* Schema-Free document-oriented database
* RESTful JSON API
* View model / JavaScript View Functions
* Replication (Peer-based distributed databases), Distributed, featuring robust, incremental replication with bi-directional conflict detection and management.

CouchDB 使用 MVCC model,所有的資料庫寫入 (add, update, delete) 都不需要先 lock 資料庫,因此能保證可以即時讀出資料。索引則是靠 B-Tree 大量存於硬碟,Document 會建立一份索引,利用 MapReduce pattern 設計的每一份 View,也會存取一份索引,因此你的資料庫會佔用大量硬碟空間來換取速度。

CouchApp 配合瀏覽器使用起來很方便且支援權限功能,因為資料可以是隨意的 Json document,所以愛存什麼就存什麼。此外 API 界面是 RESTful,加上內建 Javascript 的 View Server,你可以用內建的 Show 功能來 Render Document。

最重要的特色是 Replication 功能。CouchDB 支援雙向衝突偵測,很方便長期離線的 Client 上線後快速同步資料庫內容,在離線狀態也可以存取已經拉回的資料。

CouchDB
目前限制

雖說 CouchDB 使用 MVCC Model,但 CouchDB 的讀寫速度遠遠慢於 in-memory key-value,與 MySQL 評測也未能夠勝出。加上 CouchDB 只支援 Replication,要作 Horizontal partitioning 要靠 CouchDB Lounge,等同於手動作 Sharding,在效能跟彈性上都未能夠勝過其他資料庫系統。

此外,作為存取 unstructured data 的代價,若想要查詢特別資料,必須依賴 View Model,每組 View 會建出獨立的 b-tree index,這種索引的代價頗高,特別是你想做 ad hoc query 時,使用 _temp_view 會浪費你大量的磁碟與 CPU 的運算資源。因此程式設計者在設計軟體與鍵入資料前,都必須先建好 View。

雖然 View functions 用了 MapReduce pattern,但礙於 CouchDB View API 的限制,目前很難做多次的資料處理。基本上一次 View 倒出來的資料僅限制一次查詢,你無法方便快速的做第二次 MapReduce 處理,如此缺乏彈性讓 MapReduce 反而像是一種限制,而非特色。

除了
Big Data 以外相關應用

捨去上述限制不談,CouchDB 的特色仍然可以作很多應用,特別是 JSON API 與 Peer-based distributed 這兩個功能。這使 CouchDB 在 Laptop 或 Mobile devices 上可以很方便地提供一些應用,特別是你經常需要在離線裝置上處理伺服器與本地端資料時。

除了像是 CouchOne 推出相容 CouchDB 的 CouchOne Mobile for Android。在 Linux 上則有 Desktop Couch,目前整合了 TomboyEvolutionBindwood for Firefox 等,可以用來管理 PIM, Bookmarks 等等。理論上可以整合 UbuntuOneMidgard

筆者讀過兩本談論 CouchDB 的書籍,第一版的《CouchDB: The Definitive Guide》《Beginning CouchDB》。個人比較推薦《Beginning CouchDB》,但再版的《CouchDB: The Definitive Guide》內容已經有改善。

作者簡介 蔡志展 (Rex Tsai) 或網名 chihchun,現為自由工作者,從事開源軟體顧問或開發服務。倡議並推廣自由軟體與開放源碼,早期 KaLUG 成員,現常出席 Tossug, HackingThursday 聚會,亦是開源人年會 (COSCUP) 籌備志工。長期 Debian、OpenWrt 使用者。關注議題甚廣,進一步資訊請參考 http://people.debian.org.tw/~chihchun/
[源碼快訊] Debian 資深開發者來台分享 Debian Community 的參與方式
OSSF/編述

Debian 是一個自由的作業系統 (Operating System, OS),提供一般人能自由地下載、安裝在電腦上使用,其由致力於創建自由作業系統的組織-Debian Project 所維護。Debian Project 完全由志願者所組成,背後沒有任何公司或機構直接支援。本月 4 月 22 日傍晚,中華民國軟體自由協會 (Software Liberty Association of Taiwan, SLAT) 與台北科技大學,將共同邀請 Debian 資深開發者之一 Joerg Jaspert 來台,為國內自由軟體的使用者介紹 Debian 開發社群的參與方式,歡迎有興趣的朋友踴躍參加此次活動。

◎ 演講主題:How to get involved in Debian and Open Source - everyone counts!
◎ 活動時間:2011 年 4 月 22 日(週五)下午 6:30 ~ 9:00
◎ 活動地點:國立臺北科技大學 綜合科館 B1 第二演講廳(台北市忠孝東路 3 段 1 號)
◎ 主辦單位:中華民國軟體自由協會、國立台北科技大學。
◎ 活動網頁:http://registrano.com/events/debian2
◎ 講者簡介:Joerg Jaspert 自 2001 年開始投入 Debian Project。2004 年時,成為 FTPMaster Team 成員之一。 2005 年時,擔任 Debian Account Manager,負責處理新進 Debian 開發者的申請工作。此外,他也是 1997 年在美國註冊的 SPI (Software in the Pulic Interest, lnc.) 副總裁。SPI 是一個非政府組織,提供 Debian 或其他 Open Source 計畫的法律服務,如:PostgreSQL,OpenOffice.org,Libreoffice,Drupal…等。更多的講者資訊,請參照 Joerg Jaspert 的個人網頁:http://people.debian.org/~joerg/
[源碼新聞] 專訪 OSDC.TW 2011 推手簡信昌
李婉婷/採訪

每年到了三、四月最令本地開源人期待的社群活動非 OSDC.TW (Open Source Developers' Conference, Taiwan) 莫屬,本年度的 OSDC.TW 2011 也已於上個月在中央研究院人社館國際會議廳圓滿落幕。今年的 OSDC 2011 吸引了四百人次的參與者,隨著參加人數逐年增加的狀況,可以看出 OSDC.TW 已經成為國內開源人每年必定參加的大型社群活動之一。

OSDC.TW 的前身是以探討 Perl 程式語言為主的開發者聚會,原本僅是台北 Perl 推廣組的社群活動,2006 年時轉變為眾多社群共同參與的盛會,從單一的社群活動轉型為年度開放源碼的大型社群聚會活動;這樣的成果除了靠社群朋友們熱情協助外,最主要的幕後推手便是在會場中拿著筆電全場來回奔走的簡信昌 (hcchien)。可以說 OSDC.TW 2010 年以前的歷屆活動,所有的事前籌劃均出自 hcchien 一人之手,而今年是第一次有其他的社群夥伴一同加入活動的事前討論與籌劃工作。

往年 hcchien 獨自一人籌劃歷屆的 OSDC.TW,當本次 OSDC.TW 2011 活動會後被問到累不累時,他笑著說:「當然會累啊!每次活動結束後,別人問說明年會不會繼續辦下去,我都說不知道。」不過他也表示,辦 OSDC.TW 就像舉辦小學同學會一樣,雖然每次都說明年不知道會不會辦,但一旦辦了就會有朋友來參與,因此每當到了籌備的時間,hcchien 腦袋裡的生理時鐘就會自動運轉起來,並催促自己開始籌劃相關的活動事宜;對 hcchien 來說,舉辦 OSDC.TW 這個大型社群同學會,讓老朋友有機會見見面聊聊天、交流新技術是很開心的事。

一直以來 OSDC.TW 外國講者的比例佔了很大一部分,網站活動議程的呈現方式也是以英文資訊為主,不難看出主辦者希望台灣軟體技術能與國際接軌的用心。hcchien 表示,畢竟在技術資訊取得來講國外還是比較快,因此邀請許多國外講者來台分享國外最新的開發技術與經驗談,是每年 OSDC.TW 籌劃工作裡的重要項目。

其實辦 OSDC.TW 不只是讓大家見面寒暄並交流新技術而已,hcchien 說明其背後的用意,是希望藉由舉辦大型活動讓大家更能關注開放源碼這塊領域,提高 Open Source 在台灣的能見度,透過 OSDC.TW 在 Open Source 知識方面自由分享的作法,進一步改善台灣軟體專案的開發環境。從事軟體開發工作多年的 hcchien 提到,台灣科技產業有很大的問題是人才都到硬體公司工作,在軟體開發方面則一直都是相對弱勢,因此希望藉由這樣的大型開源活動能帶起些許改變的漣漪,從而能夠鼓勵有志者一同來改善台灣軟體的開發環境,讓台灣在軟體發展方面有更大的突破。

hcchien 也提到在籌辦過程中觀察到的有趣現象,很多有在參與開源專案的國外講者其實都會自費到各國演講,而國內許多社群朋友自己去外面開公司賺錢後也會回來贊助 OSDC.TW 的活動舉辦,這些現象都再次說明了開源人共通的特質,熱情、積極與不吝於分享的精神。其實,OSDC.TW 最吸引人的地方並非真是設計了哪些別出心裁的活動、安排哪些引人奇想的議題,在這些背後更重要的,應該是促進國內開源人的固定相聚與交流,這樣的精神,是勝於一切演講內容的珍貴價值!
[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
線人/文

不知道各位讀者是不是已經到過台北花博?當你身處色彩絢麗的花海時,你可知道眼前這一片花海究竟有幾種顏色?紅、橙、黃、綠、藍、靛、紫?當然,能夠形容色彩的名詞絕對不止「彩虹七色」那麼少。不過,對於從事創作行業的人(包括插畫師、攝影師、設計師甚至作家)來說,如何以最精確的名詞將眼前的色彩向第三者形容,是很重要的!透過 Android Market 就可以找到一個名為 Coloureyes 的軟體,這個軟體能夠利用 Android 手機的鏡頭,擷取鏡頭前影像當中某一點色彩,並且顯示最符合這一點色彩的名詞。留意這個軟體的名稱是「Coloureyes」,採用英式拼法。此外,這個軟體所提供的都是色彩的英文名,同時也提供色彩的 RGB 值或 CMYK 值,對於從事創作行業的華文使用者來說,能夠很方便的與輸出廠商溝通自己所希望採用的顏色。

軟體名稱:Coloureyes
最新版本:0.1
軟體授權:GNU General Public License (GPLv3)
系統支援:Android
官方網站:http://coloureyes.sourceforge.net/

使用者可以透過 Android Market 或 Coloureyes 的官方網站免費下載這個軟體。若透過 Coloureyes 的官方網站下載的軟體是 APK 檔案,以「.apk」為副檔名,利用 Android 手機中的檔案總管開啟 APK 檔案,便可選擇將軟體安裝至 Android 手機中。不過要注意的是,下載此檔案前,使用者要確定 Android 手機位於【設定】裡的【應用程式】介面,其中「未知的來源」的核取方塊已勾選。首次執行 Coloureyes 軟體時,使用者會先看到軟體的使用說明,然後便會見到如下圖的主畫面。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖1

Live View 模式


軟體主要提供兩種操作方式:〔Live View〕及〔Image View〕。使用者若點選〔Live View〕,軟體便會即時啟動手機的鏡頭,使用者可透過以下畫面看到來自手機鏡頭的即時影像。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖2

影像畫面中央有一個紅色的小框框,軟體會讀取小框框中的色彩,並且在畫面下方顯示這個色彩的英文名稱。軟體亦會顯示這個色彩的 RGB 或 CMYK 值,依使用者所選擇的設定而異。另外,留意軟體中色彩名稱的末端的數字,這個數字顯示即時影像的實際色彩與英文名稱所形容的色彩之間的差異程度。數值愈小,代表即時影像中的實際色彩愈符合英文名稱所形容的色彩。

使用者可利用 Coloureyes 軟體的〔Live View〕模式,即時讀取眼前物件的色彩,這樣便可得知較適合形容這種色彩的名字。當然,這種模式有一個弱點,那就是手機的鏡頭很容易受到環境色溫的影響,導致手機鏡頭錯誤感應物件的色彩。因此,這個軟體也提供另一種操作模式,那就是〔Image View〕。

Image View 模式


使用者若透過軟體的主畫面點選〔Image View〕,軟體便會讓使用者選擇讀取已儲存於手機裡的相片檔案,然後使用者便可透過選擇相片中的某一部分,以得知該部分的色彩名稱。

選擇載入相片後,使用者便會看到如下圖的操作介面,已載入相片的中央也會出現一個紅色小框框。軟體會讀取小框框中的色彩,並且在畫面下方顯示這個色彩的英文名稱,做法跟〔Live View〕模式頗相似。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖3

不過,透過〔Live View〕模式,使用者可用手指在手機屏幕上點著不放,直至畫面出現「Zoom Mode」字樣,使用者便可將手指向屏幕上方或下方移動,來將相片畫面「放大」或「縮小」。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖4

然後,使用者放開原本點著屏幕的手指,手指只要在屏幕上移動,畫面便會出現「Pan Mode」字樣,使用者便可將相片畫面移動,至所希望讀取相片中的色彩進入紅色小框框內。

使用者亦可選擇直接移動紅色小框框。方法是先用手指在小框框上方點一下,再用手指按著小框框,便可將它拖曳到影像中的其他位置。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖5


軟體設定


這個軟體也提供不少設定選項以方便使用者依照個人不同的使用習慣做適度的調整。透過軟體的主畫面點選〔Settings〕便可進入以下的設定介面。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖6

其中【Colour Lookup】設定區當中有一個名為〔Colour Dictionary〕的選項,可讓使用者選擇 Coloureyes 軟體用來顯示色彩名稱的字典來源。若將〔Colour Dictionary〕設定為〔Rainbow〕,在讀取色彩時,軟體會拋出彩虹七色的名字。不過,在一般的情況下,還是保留這個設定為〔X11〕比較好,因為〔X11〕的色彩詞彙明顯較為豐富。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖7

〔Colour Display Format〕則可讓使用者設定軟體讀取色彩時,所顯示的是色彩的 RGB 值或 CMYK 值。對於從事出版業的設計及美術人員來說,色彩的 CMYK 值比較有參考的價值。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖8

此外,Coloureyes 軟體亦提供一些進階的設定選項,位於軟體設定介面的下方,包括 Colour Selection、Size of Image Selection、Avg Recent Samples。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖9

其中,〔Colour Selection〕選項能讓使用者設定軟體讀取色彩的紅色小框框的大小範圍。若選擇〔Single Pixel〕,軟體便會傳回紅色小框框中單一像素的色彩名稱。可是,倘若使用者想讀取的物件,其色彩並非太平均的話(例如油畫),建議選擇〔Average of Surrounding Pixels〕,軟體便會將紅色小框框周邊的像素一起計算在內,從而得出較符合的色彩名字。

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖10

[源碼密技] 讓 Android 手機告訴你眼前顏色的名字
▲ 圖11 使用者亦可因應自身需要,透過〔Size of Image Selection〕,直接更改紅色小框框的大小。
[源碼密技] 你的老遊戲總管 D-Fend Reloaded
Jedi /文

在過去幾年間,筆者介紹過若干開放源碼的遊戲相關專案,顯示出開放源碼在促進軟硬體進步的娛樂產業中沒有缺席。本文要介紹的是開發已超過三年的開放源碼專案 - D-Fend Reloaded。這個軟體成功地將不同的遊戲解決方案結合在一起,不僅僅能在 Windows 運行,還能透過 Wine 環境執行,因此非 Windows 的遊戲玩家也可以享受 D-Fend Reloaded 帶來的便利。

D-Fend Reloaded 一如其名,在許多方面都是延續 D-Fend 而來的。D-Fend 是 2006 年以前最著名的 DOSBox 圖形介面前端 (GUI frontend)。2006 年後原作者因故宣告停止開發及維護,但此時 D-Fend 已經大大影響了許多不同的 DOSBox 圖形介面前端軟體的設計方向。

DOSBox 是另一個開放源碼專案,目的是要在不同的平台上,模擬出當年的 DOS 環境。這個專案的主要目標是為了要讓使用者能夠玩 DOS 時代的遊戲。但是隨著模擬越來越完整,就算要執行倚天中文或者 Windows 3.1 版也沒問題。更好的是 DOSBox 讓 DOS 環境的記憶體管理、音效卡配置都大幅簡化,如今使用 DOSBox 已經不用像當年使用 DOS 那樣,痛苦地從 config.sys 及 autoexec.bat 裡面壓榨記憶體了。

可惜 DOSBox 對現今新一代電腦使用者來說,仍然充斥著挑戰:許多使用者早已習慣圖形介面,看到文字介面時不知從何下手。專門販賣老遊戲的網站 Good Old Games 也運用了 DOSBox 專案的成果,預先設置好許多老遊戲的 DOSBox 配置,讓玩家可以在現代作業系統上,輕鬆地安裝老遊戲。除此之外,各種平台上也陸續出現各式各樣的圖形介面前端,例如前述 Windows 平台上的 D-Fend,另外還有 Mac OS X 平台上的 boxer、Tcl/Tk 的 DOSBoxGui、KDE3/Qt3 的 DboxFE、Qt4 的 GR-lida 等,都是很著名的專案註一)。

在 D-Fend 結束維護後的一年左右,一個以繼承 D-Fend 為出發點的開放源碼專案,D-Fend Reloaded,釋出了第一個公開測試版。D-Fend Reloaded 能夠完全與 D-Fend 相容,文件上寫著「你可以把 D-Fend 的執行檔直接換成 D-Fend Reloaded 的執行檔,其他東西都不用動」。隨著 D-Fend Reloaded 繼續開發,不只是修正瑕疵,還持續添加更多的功能,並與各種開放源碼計畫整合。

也許因為「D-Fend Reloaded」這個名字,讓許多人以為這不過就是另一個「DOS 時代老遊戲的東西」。對於沒怎麼接觸那個年代遊戲的朋友,自然對 D-Fend Reloaded 也就不認識。然而現在的 D-Fend Reloaded 已成為相當完整的遊戲管理解決方案,不但可以(透過 Wine)跨平台,支援「可攜式安裝」,提供 PortableApps.com 格式的可攜式套件,更可以整合各種遊戲主機模擬器及 Windows 平台的遊戲。以下就讓我們來看看這些有趣的功能。

為了避免在奇怪的地方遇到預料外的瑕疵,例如某些 Windows 的鍵盤驅動程式會使得 DOSBox 內的鍵盤配置發生異常。D-Fend Reloaded 雖然有繁體中文介面,筆者建議選擇用英文介面。本文中的描述仍然會以中文為主,但是都採用筆者自己的慣用譯法,跟實際的正體中文介面可能有所不同,這邊要請讀者們留意翻譯上的差異。另外筆者其實都是設定成全螢幕執行遊戲,但是為了抓圖說明,所以暫時會切換成視窗模式。

遊戲管理


DboxFE Windows 7 新增了一個「遊戲總管」(遊樂場)的功能,會陳列使用者所安裝的遊戲,以便玩遊戲或更新等。但是這個功能需要遊戲開發者/發行者的配合,不是所有安裝的遊戲都會列進去(老遊戲就不要想了),而且有時候會出現一些不大對勁的現象,例如同一個遊戲列出好幾個等等。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖1 Windows 7 遊樂場

這樣的功能想法很好,至少讓筆者可以清掉一些桌面上的捷徑,要是能夠方便自己管理這些遊戲,那就更好了。用過 D-Fend Reloaded 後,「遊樂場」就沒有機會出場了,因為 D-Fend Reloaded 更好用!

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖2 D-Fend Reloaded 的遊戲清單(圖示)檢視

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖3 D-Fend Reloaded 的遊戲清單(報表)檢視

D-Fend Reloaded 除了一樣可以直接用搜尋框來尋找遊戲外,還多了一個「我的最愛」,另外也能用遊戲類型、開發人員、發行人、發行年份、遊戲語言、遊戲授權方式、遊戲平台等條件來分別檢索。如果你覺得這樣還不夠,D-Fend Reloaded 甚至可以讓你自訂分類的依據。

為了要能夠分類,D-Fend Reloaded 必須要知道各個遊戲的資料。這些資料可以手動維護,但是 D-Fend Reloaded 內建直接從 MobyGames 下載資料的功能,你只要給個名稱片段,就能夠輕鬆下載相關的資訊,就連遊戲的相關圖片也能一起抓下來。要是很不巧地,你的遊戲在 MobyGames 上面沒有資料,也別擔心,因為 D-Fend Reloaded 還可以讓你很方便地用 SquakeNet.ComTheLegacyKultpower 、Google、Wikipedia 等網站來搜尋遊戲資訊。如果你覺得預設的這些資訊欄位還不夠(例如你想要註明遊戲的明確版本編號),D-Fend Reloaded 還提供自訂欄位的功能,相當貼心。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖4 D-Fend Reloaded 的程式(遊戲)資訊編輯畫面

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖5 D-Fend Reloaded 的讀取(下載)遊戲資訊畫面

抓下來的資料中,可能會有遊戲發行的「日期」,但是其實管理時只需要用到「年份」,所以這邊需要自己修改一下。遊戲類型、遊戲語言、遊戲授權方式等三項資訊可以用中文來描述。但是你一定不會想要每次下載資料後就手動修改,所以請善用程式設定中的「遊戲清單的非英語翻譯」功能(這個選項要在進階模式中才會出現),這樣 D-Fend Reloaded 就會自動幫你翻譯。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖6 D-Fend Reloaded 設定非英文資訊的自動翻譯功能

Windows 遊戲


D-Fend Reloaded 可以用來管理 Windows 平台的遊戲:新增設定檔的時候,模擬類型選擇 Windows 遊戲(沒錯,雖然此時不是要「模擬」),然後一樣選擇遊戲的執行檔即可。執行檔路徑不用以引號「"……"」夾住,如果執行檔需要加上參數,則要另外填在程式參數的欄位,這跟 Windows 捷徑的寫法不大一樣,請注意。另外也可以在程式設定中,設定執行 Windows 遊戲時,自動把 D-Fend Reloaded 最小化(這個選項要在進階模式中才會出現)。

DOS 遊戲


DOS 遊戲就不用說了,D-Fend Reloaded 當然是支援的,特別之處在於 D-Fend Reloaded 內建上千個預先定義好的「模版」,當你要加入遊戲的時候,它會自動判斷你加入的是什麼遊戲,看看有沒有可以直接套用的模版。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖7 D-Fend Reloaded 內建的自動設定模版

除了根據執行檔檔名來判斷外,D-Fend Reloaded 也可以直接「匯入」壓縮檔,並且從中根據指定的檔名,判斷其中是否含有設定或安裝資訊,並據此完成自動操作。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖8 D-Fend Reloaded 的自動遊戲組態配置畫面

如果你手上的 DOS 遊戲是原始磁片或光碟(或者是它們的映像檔/壓縮檔),也可以用 D-Fend Reloaded 選擇要從來源安裝,這時 D-Fend Reloaded 會先以預設環境來執行安裝程式,待安裝完成後再建立遊戲設定檔。

如果你安裝 D-Fend Reloaded 的時候選擇「設定檔存放在使用者目錄」(這是 Windows 7 的建議選項),D-Fend Reloaded 預設會把 %UserProfile%D-Fend ReloadedVirtualHD 掛載成 C 磁碟機,所以你應該把遊戲解成此路徑中的子目錄。

除了模版外,D-Fend Reloaded 還內建「遊戲存檔修改」資料庫,可以用來作弊,是修改軟體外的另一個選擇。這個資料庫跟自動設定模版一樣,可以線上檢查更新及下載。(當然你也可以使用開放源碼的 Cheat Engine 來「修改」這些遊戲。)

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖9 D-Fend Reloaded 內建的遊戲存檔修改(作弊)資料庫

把遊戲檔案放到 %UserProfile%D-Fend ReloadedVirtualHD 目錄下還有許多管理上的好處,例如可以一次把很多遊戲放進去,然後用「掃描新遊戲」的功能迅速建立一堆遊戲設定檔,也可以把這些遊戲「匯出」成套件 ─ 如此在其他電腦上也可以輕易匯入 D-Fend Reloaded,免去重新安裝、設定的步驟。事實上 D-Fend Reloaded 的網站上就有提供一大堆預先準備好的「套件」,多是免費版、試玩版、展示版、共享版的遊戲,也可以從 D-Fend Reloaded 當中直接選擇下載,還怕沒有遊戲玩嗎?

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖10 用 D-Fend Reloaded 建立遊戲套件

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖11 從 D-Fend Reloaded 下載遊戲套件

QuickBASIC 遊戲


說到 DOS 遊戲,還記得當年 DOS 裡面附了一套 QuickBASIC 嗎?就算你不記得,總知道「大猩猩」(Gorilla) 跟「貪食蛇」(Nibbles) 這兩個歷久彌新的經典遊戲吧?這兩個遊戲當年都是隨著 QuickBASIC 一起附在 DOS 中的遊戲,遊戲本身是 .BAS 的源碼,要用 QuickBASIC 載入後執行。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖12 在 DOSBox 中執行的「大猩猩」(Gorilla)

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖13 在 DOSBox 中執行的「貪食蛇」(Nibbles)

按照 DOSBox 的標準用法,你必須在 DOSBox 內手動執行 QuickBASIC 的整合開發環境,載入對應的 .BAS 源碼再執行。D-Fend Reloaded 將這樣的程序予以簡化,只要事先指定 QBasic 的程式路徑,建立遊戲設定檔時就可以直接指定 .BAS 源碼檔案為遊戲執行檔,之後 D-Fend Reloaded 就會自動執行 QuickBASIC、載入 .BAS 源碼、執行,一氣呵成。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖14 D-Fend Reloaded 可整合 QuickBASIC

QuickBASIC 可以從微軟的技術支援網站「CD-ROM Extras for Microsoft Windows 95 Upgrade」下載 Olddos.exe,這是個自我解壓檔,建議解壓縮到 %UserProfile%D-Fend ReloadedVirtualHDOlddos 內,如此在 D-Fend Reloaded 設定時可以直接按「搜尋按鈕」(像望遠鏡那個)瞬間設定完成。

如果除了 QuickBASIC 外,你還有其他類似用直譯器執行源碼的遊戲或程式呢?D-Fend Reloaded 有個「使用者自訂直譯器」的設定選項(這個選項要在進階模式中才會出現),看你想要定義什麼,都沒問題!

ScummVM 遊戲


如果你是冒險遊戲愛好者,一定會知道 ScummVM 這個模擬器。先前筆者也曾經介紹過這個專案,除了 LucasArts 的 SCUMM 引擎外,ScummVM 還支援一大堆不同的冒險遊戲,包括 Activison、Horrorsoft、Coktel Vision、Revolution Software、SIERRA、Humongous Entertainment 等公司的冒險遊戲。由於 ScummVM 對音樂設備的支援更好,其內建 Roland MT-32 音源模擬、內建 FluidSynth 支援使用 SoundFont2 MIDI 音色庫,執行上也沒有因模擬器 CPU 時脈不匹配而造成遊戲體驗不佳的問題,所以更適合用來玩這些冒險遊戲。

以往的玩家必須要分別使用 DOSBox 及 ScummVM,但是 D-Fend Reloaded 具有將兩者整合的功能,只要事先安裝 ScummVM(就算是 64 位元的 Windows 也建議安裝 32 位元的 ScummVM,如此就可以使用 FluidSynth),並且在 D-Fend Reloaded 的 ScummVM 整合設定中按下望遠鏡圖像的「搜尋按鈕」,就可以完成相關設定。日後新增遊戲設定檔時,可以在模擬類型選擇 ScummVM,然後選擇遊戲資料檔所在的目錄,D-Fend Reloaded 即可使用 ScummVM 來執行該遊戲。同樣地,也可以設定啟動 ScummVM 遊戲時,將 D-Fend Reloaded 最小化。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖15 D-Fend Reloaded 可整合 ScummVM

超任模擬器遊戲


如果你還會玩超級任天堂的遊戲呢?最有名的超級任天堂模擬器大概是開放源碼的 Snes9x ,一樣可以整合到 D-Fend Reloaded 裡面,方法是在「其他模擬器」(這個選項要在進階模式中才會出現)裡面設定 Snes9x 的執行檔,別忘了在「資料檔案副檔名」填上 SMC,之後新增遊戲設定檔時,就可以在模擬類型選擇 Snes9x,並且直接選擇 .SMC 格式的 ROM 檔案當做遊戲資料檔案。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖16 在 D-Fend Reloaded 當中設定 Snes9x

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖17 在 D-Fend Reloaded 當中新增 Snes9x 遊戲的設定檔

如果想要用其他模擬器,也是按照這樣的方法來設定(當然資料檔案的副檔名會有所不同),以便統一由 D-Fend Reloaded 來啟動各種遊戲。

壓縮格式支援


D-Fend Reloaded 可以直接「匯入」遊戲目錄的壓縮檔,這個功能實際上是在要執行遊戲時替你解壓縮,遊戲結束時再將遊戲目錄的變動更新至壓縮檔。將 D-Fend Reloaded 以「可攜帶」模式安裝至隨身碟的使用者,可望藉此提昇讀取效能。D-Fend Reloaded 內建開放源碼的 7-Zip 以及開放源碼的 DelphiZip ,因此可以處理 7z 及 ZIP 格式的壓縮檔。如果你習慣用其他的壓縮格式,或者是你手邊的遊戲檔案是以其他格式保存(DOS 年代最流行的壓縮格式應該是 ARJ 及 RAR),可以在 D-Ferd Reloaded 內任意設定不同格式的壓縮程式(這個選項要在進階模式中才會出現),如此 D-Fend Reloaded 也能延伸其支援。

D-Fend Reloaded 1.1.0 版內的 7-Zip 為 4.42 版,DelphiZip 為 1.79.10.05 版。目前 7-Zip 最新版為 9.20 版,DelphiZip 最新版為 1.9.0.0100 版。你可以自己手動更新這些元件的版本,也可以使用其他能處理 7z 及 ZIP 格式的程式,取代 D-Fend Reloaded 內建的 7-Zip 及 DelphiZip。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖18 在 D-Fend Reloaded 內設置以 WinRAR 處理 RAR 格式的壓縮檔

由於 D-Fend Reloaded 對壓縮檔的處理,除了解壓縮遊戲外,也會壓縮及更新,所以設置外部壓縮程式時必須逐一設定不同用途的指令。好在 D-Fend Reloaded 已經內建了 WinRARARJ32UHArc 等壓縮程式的預設指令,選擇對應的執行檔後,就會自動幫你把這些指令填上。

FreeDOS、4DOS、Doszip Commander


D-Fend Reloaded 在安裝過程中可以讓你選擇安裝 FreeDOS ,這個開放源碼專案提供與 DOS 相容的作業環境,增添許多原本 DOS 所不支援的功能,例如 FAT32 檔案系統以及其他可以取代 MS-DOS 工具程式的套件。更棒的是 FreeDOS 裡面也包含了 4DOS 命令直譯器,可以大幅改善 DOS 環境中的種種使用體驗。

4DOS 最早是由 JP Software 的 Rex Conn 所開發與發行的私有軟體,後來隨著 JP Software 將業務重心轉向 Take Command,遂將 4DOS 源碼釋出及開放。附在 FreeDOS 1.0 內的 4DOS 版本為甫開放源碼時的 7.50.130 版,而 4DOS 目前的最新版本為 8.00.200 版,所以你可能會想要自己下載,覆蓋到 %UserProfile%D-Fend ReloadedVirtualHDFREEDOS 裡面。D-Fend Reloaded 也可以直接設定要使用 4DOS 來當成預設的 DOSBox 命令直譯器,如此在 DOSBox 當中可以更有效率地操作,有更豐富的指令及環境變數。筆者手上還保留著十多年前精心調校過的 4DOS 設定檔,不但寫滿了中文註解,甚至還有當時保留下來的 4DOS 功能變數中文說明檔,歡迎有興趣的讀者朋友直接下載使用

此檔案解壓縮後會得到一些檔案,茲說明如下:

4ALIASES.INI:自訂指令縮寫(別名)用的設定檔,在 DOSBox 中若更動此檔案設定,只要執行「aaa」即可重新載入生效。
4DOS.INI:4DOS 的主要設定,各選項均提供中文註解。
4LICENSE.TXT:4DOS 的授權說明。
4README.TXT:4DOS 的「讀我」文件。
4START.BTM:4DOS 的自動執行檔,由 4START.SRC 編譯而來。
4START.SRC:4START.BTM 的源檔,每次更動後在 DOSBox 當中執行「BATCOMP 4START.SRC」即可編譯出對應的 4START.BTM。
4VAR.TXT:4DOS 功能變數中文說明文件。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖19 在 DOSBox 當中使用 4DOS 的彩色 DIR 指令

除了善用 FreeDOS 與 4DOS 外,D-Fend Reloaded 亦內建一套叫 Doszip Commander 的開放源碼軟體,這是類似 Norton Commander 的雙欄式檔案管理工具,能夠進行各種檔案管理及操作。D-Fend Reloaded 1.1.0 版內建的 Doszip Commander 為 2.08 版,而 Doszip Commander 目前最新的版本為 2.09 版,所以你可能會想要自己下載,覆蓋到 %UserProfile%D-Fend ReloadedVirtualHDDOSZIP 裡面。

[源碼密技] 你的老遊戲總管 D-Fend Reloaded
▲ 圖20 在 DOSBox 當中使用 Doszip Commander 管理檔案

D-Fend Reloaded 整合各種開放源碼專案的產物,包裝成完整而簡單易上手的介面,讓不同世代的遊戲玩家都可以從中獲得樂趣,同時又可以免除當年的種種苦痛,不但在一系列遊戲相關開放源碼計畫中顯得重要,也是筆者常說「好的預設介面,是成功的一半」的最佳例證。

除了筆者所介紹的這些,D-Fend Reloaded 還包含許多更進階的功能,例如可以在執行遊戲前將指定的光碟映像檔掛載成虛擬光碟、遊戲結束後解除掛載,或者可錄製遊戲中的畫面或聲音(並壓制成 Ogg Vorbis 格式)等,讀者朋友們不妨把玩一番,也必能從中挖掘到更多相關的開放源碼專案資訊唷!

回顧:開放源碼


本文中提及的開放源碼軟體專案及相關網站,依其出現先後順序列舉如下:

開放源碼軟體專案 相關網址
D-Fend Reloaded http://dfendreloaded.sourceforge.net/
Wine http://www.winehq.org/
DOSBox http://www.dosbox.com/
DOSBoxGui http://sites.google.com/site/losfinkos/dosboxgui
DboxFE http://chmaster.freeforge.net/dboxfe-project.htm
GR-lida http://www.gr-lida.org/
PortableApps.com http://portableapps.com/development/portableapps.com_format
Cheat Engine http://www.cheatengine.org/
ScummVM http://scummvm.org/
FluidSynth http://sourceforge.net/apps/trac/fluidsynth/
Snes9x http://www.snes9x.com/phpBB2/viewtopic.php?t=4542
7-Zip http://www.7-zip.org/
DelphiZip http://www.delphizip.org/
FreeDOS http://www.freedos.org/
4DOS http://4dos.isgreat.org/
Doszip Commander http://sourceforge.net/projects/doszip/

註一:以上除了 boxer 以外,都是開放源碼專案並以公眾授權的方式向外釋出,DboxFE 原頁面因站長重新調整架構,截至本文發佈之前仍有暫時失聯的狀況(回本文)。
[源碼快訊] 用自由軟體 Plone 來架設網站(2)— 內容管理
marr /文

在前篇文章裡,我們提到安裝 Plone 系統的方法,並練
轉寄『第 170 期 不做 NoSQL 的 CouchDB』這期電子報

寄信人暱稱  寄信人email
收信人暱稱  收信人email

  • 社群留言
  • 留言報主