Quake 3 GPLed

終於來了!在 QuakeCon 的時候 John Carmack 已宣佈會將 Quake 3 引擎開源 (GPL 協議),而今天便正式讓大家下載源程式碼。

Quake 3 是近來最多遊戲使用上的 3D 引擎,例如 MOH,Q3TA,SOF2……(有錯請指正),今次開源也是頗震撼的。在斜點相關的留言有不少有趣的資訊:Quake 3 以全 C 編寫(誰說 C 是垃圾?),所以也較受軟件公司歡迎。此外整套源碼的的編排也較整齊,相信不少人會開始始 Quake 3 寫開源遊戲啦(大家想找根據 Doom/Q1/Q2 所製作的遊戲可試試到 sf.net 找找看)

但是,跟以往(Doom,Quake 1/2)一樣,美工圖案例如版圖,武器及角色的 3D 模型不在開源的範圍之內。(換句話說,Quake 3 沒有提供整套遊戲下載)

OpenTTD 0.4 出爐!

哇哈,OpenTTD 這套令人一玩會玩上癮的遊戲終於在近日推出新版本,加入版圖可變大小,新的路線搜尋器,擴建巴士站等超實用的功能… 真的很爽!

openttd對了,OpenTTD 其實是以往 486 年代 (發現我有使用這個字表現自己經驗多的傾向… 真糟糕) 由 Chris Sawyer (大家應記得他的 RollerCoaster Tycoon 吧) 編寫的 Transport Tycoon Deluxe 的開源碼版本。遊戲的玩法便是搞自己的運輸公司,不斷開發新路線運載乘客和貨物,並與對手競爭。聽聞是 OpenTTD 核心的開發人員以逆向工程的方式,把反編譯出來的組合語言逐句逐句翻成 C… 小弟實在不得不佩服其智慧!現在,OpenTTD 比原的 TTD 有更多有趣的功能,如更成熟的列車訊號系統 (pre-signal 和 waypoint),多人 Internet/LAN 對戰 (一起在網上搞運輸物流呢),自行加入不同型號的列車等等。重要的是,這套軟件是跨平台呢,以往開會和上課的時候老是在小白上玩這個…

對了,這套遊戲對硬件的需求很低,反而難題在軟件上。由於 OpenTTD 沒有圖像的版權,所以要找一套原 TTD 的 圖像檔案。可是,TTD… 現在哪裏還可以買到?(要另謀他法了,呵呵)

Adium 0.8 推出!

adiumx終於出來了。在 Mac OS 上支援多種通訊協定 (ICQ,MSN,AIM,YIM,Bonjour) ,檔案傳送,open source and free,擁有非常漂亮介面的 Adium 終於在昨晚(香港時間)推出新版本,編號為 0.8。新版本除了於介面上作出大覆度的改動,包括加入檔案傳送進度的 progress bar,events setup 的設定介面。此外還終於支援更多的 status,包括小弟期待已久的 invisible!而status setup 也可以自由設定,讓用家關掉 auto reply。不過問題也有,就是如果使用 group bubble (如圖所示),中間的畫面好像亂了……

後記:原來那個問題是 contact list 影子的殘留,關掉影子便會回復正常。

PostgreSQL

因為以往 PostgreSQL 必須在 *NIX平台上安裝(好,cygwin另計,搞這個太煩人了),所以也沒有太大理會這套資料庫軟件。

最近這套資料庫推出的新版本叫人眼前一亮,因為終於有 Win32 Native 版本了。 這當然是個好消息,因為在 Windows 平台上走可以有更高的效能和穩定性。
至於這套資料庫有何特別呢?最大的特點當然是:開源及連 commerical license 也免費吧?此外,PostgreSQL 在 programming 上也有頗特別的地方。例如,它支援資料表繼承,可以讓相似但不盡相同的資料整合處理。例子如下:

CREATE TABLE person (name text, sex char(1));
CREATE TABLE staff (salary int) INHERITS person;

SELECT * FROM person* WHERE sex = ‘F’;

以上的 select statement 便會找上包括 staff 在內 sex 為 f 的資料項。
而它也支援交易(transaction),觸發(trigger,指 db 資料到指定狀態時自動執行自行撰寫的程序),內儲程序(stored procedure)等。所以做系統開發的朋友不得不注意這套資料庫呢。

(別注:再度留意這個資料庫的主要原因是:今天去面試的公司用上 PostgreSQL… :p)

瞬間看地球衛星版 – World Wind

呢之前幾日0係某討論區見到有人介紹一套美國太空總署寫既 software World Wind,可以一次過睇晒全球既衛星圖片,仲可以由成個地球開始係咁 zoom 落去睇,好似好正咁。結果就 download 左,只不過呢幾日忙緊 group project,冇時間玩0者。今日終於做好左 demo,可以裝黎試下喇。

首先一開始就會睇到成個地球(呢幅係我揀既夜間圖片,睇下日本,台灣同香港幾光…),用家可以用滑鼠郁黎郁去調教角度,而如果隻 mouse 有轆的話,仲可以用黎 zoom in/out 添。然後不段 zoom in zoom in zoom in 落去呢,就會轉左用另一枚衛星睇較為精細既圖片。首先呢,去香港先。

香 港。呢幅就係我老家喇。大家可以清楚咁睇到舊啟德機場跑道,九龍半島,大帽山,維多利亞港等等香港既標誌。如果 zoom 近 D 仲望到我屋企隔離個馬場添。另外,有別於一般衛星圖片,呢個程式結合左兩個 program 既資料,除左基本既顏色之外(PS: 呢幅圖用左電腦加工顏色,所以 D 綠色係咁),仲會以 3D 既方法表示地型,即係話你可以0係九龍東望過去獅子山(座山真係突左出黎架),又或者掉番轉試下0係屯門望唔望到獅子山…

此外仲有粒美國既衛星專影美國大城市既相。呢個就勁好多喇,因為解析度高(1 pixel = 0.5 metres),所以 zoom 到盡的話連車都睇到(人睇唔睇到就睇你對眼喇)。呢幅係彩圖,仲有地名提供添 (不過多到堆埋一舊…)。

結果呢,今日番到黎之後就0係度用呢套 software 不斷搵地標,好似富士山呀,巴黎鐵塔呀,金字塔呀,千禧巨蛋呀…… 咁樣就可以安坐家中免費環遊世界,真係幾正。

不 過最衰既係我仲未用到佢0個套天災預警系統(可以用黎睇天災,好似大火,沙塵暴咁),話說有 bug…. 希望下一個 version 快 D fix 好就好喇。呢個 version 除左免費,仲係 open source,如果你精於 C# 同 Direct X 呢,不妨 download 落黎研究下… 至於好似我呢類唔識既,download 落黎玩下啦。

Comp. Group Project 必備之物: Subversion

當 你又在問:「你的 xxy.php 改完了沒有?我要加兩句 code 進去啊!」或者驚呼:「甚麼?你剛才 upload 了 kkk.c?那麼我用了三小時寫的 function 呢?給化為烏有了?Oh my…!」的時候,有沒有想過這種情況可以避免呢?要是用傳統的 FTP,我看大家要規限著自己能修改甚麼檔案,非常的沒有彈性。那麼對檔案進行鎖定呢?要是有組員在修改完檔案後忘記釋放修改權,那大家還是不用做了。況 且,以上兩個方法也沒保障萬一開發組員對 server 版本錯手做成的錯誤:那就是,改動是永遠的了,沒辦法回頭,除非每人在更改一次前也進行備份吧…

針 對以上種種的問題,SCM(Software Configuration Managment,源程式碼管理) 軟件便應運而生。SCM 是怎麼運作的?首先軟件會要求使用者在用戶端儲存整份專案(Project)的最新版本,當用戶對本端進行改動後而要儲放,便會向伺服器要求作出存放。伺 服器比對本身存放source code 和客戶端的分別,再進行合併。此外每一次存放紀錄也會自動記進資料庫,很方便吧?就連目錄結構的變更,檔名變更,刪除,也會一一給紀錄在案,所以現在多數 大型專案開發也一定要用到 SCM。

SCM 軟件?老大哥可算是 CVS(Concurrent Versioning System),現在是大部份開源軟件所應用的一套 SCM。它開源,而且免費,還支援 SSH 等。此外不可不介紹的是 MS 內附在 Visual Studio 的 Sourcesafe。我想不少軟件開法企業也會用上它吧,因為SS 跟整套 VS 的整合性很高,用 VS 的 IDE 一同開發便更得心應手。只不過,CVS 設定難,使用更難;SS 很貴,不是大公司個人是買不下的。所以小弟今次想介紹的是 SVN(Subversion),一套多平台,設定簡單得很的 SCM 軟件。當然它還是免費,開源才吸引了小弟。

SVN 的使用方法簡單得很,先鍵入” svn co [地址] “(checkout)拿一份最新的 source code working copy 到本機去,好讓能慢慢修改。當修改完成後,只要打上 “svn ci” (commit) ,軟件便會把你本機修改過的版本和伺服器的 working copy 比對,然後合併。很方便吧?不過要是你修改的地方和別人修改的地方相同,做成衝突,該怎麼辦?當然,SVN會讓你人手選擇變動的地方,讓兩位開發者(或以 上)作出妥協,再上傳一個新的 working copy。此外,不小心做錯了,可以鍵入”svn revert” 來還原,鍵入”svn status” 可查看用戶端的版本和伺服器端的版本有甚麼分別,”svn diff” 還可查看究竟多了哪一句,少了哪一句呢。 或許CLI 對你來說是太複雜了,那麼 Subversion 還有很多漂亮的 GUI 版本。例如和 Explorer 整合的 TortoiseSVN,跨平台的 RapidSVN,VS.NET 的 addin ankhSVN,Eclipse 的 plugin subclipse 等等。Apple 更先行一步,Xcode 已內置支援 Subversion 。

伺服器的設定也簡單得很。只要你安裝了 Apache,SVN 便可以和它整合,Apache 的用戶管理也可套用在 SVN 系統上。不想安裝 Apache?不要緊,SVN 另有獨立伺服器版本,是功能少了點罷。詳細我不在這裏說了,留待大家裝一套才去發現發現吧。