顯示包含「Ubuntu」標籤的文章。顯示所有文章
顯示包含「Ubuntu」標籤的文章。顯示所有文章

2013年10月25日星期五

Microsoft Windows 8 - 卑斯默式的夢魘(一)


不經不覺已經使用了Microsoft Windows 8 三個多月, 從一開始的不習慣到現在終於稍為順手一點. 然而這一次適應期之長堪比那次從 Windows 3.1 / 3.11 升級到 Windows 95. 由於工作的原因, 從 Windows 3.1 開始的每個 Windows 版本我都有接觸過. 和大多數人一樣, Windows XP 是我使用時間最長的一個版本. 

眾所周知, Windows 8 是 Microsoft 用來對抗 Google Android 及 Apple OS X 陣營的絕地反撃之作. 回顧電腦的 Graphic User Interface (GUI) 及 Operating System 發展史, Windows 其實一直都不乏對手, Apple OS 當然是其中最有代表性的, 但卻非 Microsoft 的主要打擊對象, 因為兩者的市場及技術定位非常不同. 在個人電腦的黃金時期, 即從 Windows 95 (1995) 到 Apple iPhone (2007), Microsoft 主要的火力是集中在 Unix 或 Unix-like 系統 (如 Linux) 身上. 雖然 Apple 在 1999年推出 Unix-like 的 Mac OS X (Darwin 核心), 但由於 Apple 軟硬一體的政策, 這個 "包著糖衣的 Unix" 並沒有足夠的市場力量去撼動 Microsoft 的江山. 可是, 從 2007 年開始, 包括個人電腦的電子消費品市場發生了翻天覆地的變化, 現在我們稱這個時期為 "後個人電腦時代" (Post-PC Era).

Apple 的 iPhone 和 Google 的 Android Phone 兩者的 OS 都有一個共同點, 他們都是採 Unix-like 核心. iPhone 的 iOS 是採用與 OS X 一樣的 Darwin 核心, 而 Android 則是發展自 Linux. 這個情況反轉了 Linux 與 Windows 在個人電腦/電子裝置市場上的比例. 回想整段個人電腦黃金時期, 雖然 Linux 打著開源 (免費) 的旗號, 卻依然不能取代 Windows 的原因就是: 對使用者不友善及軟體開發者找不到利基. 在 Linux 世界, 並不存在單一開發商, 而是有很多的組織與個人去發佈不同的 Linux 套件. 在商業化上較成功的有 Red Hat, 而在個人使用者市場方面則有 Ubuntu 及 Fedora.

對使用者不友善
Linux, 相信很多電腦使用者都對其望而卻步. 在早年, 把 Linux 灌進一台電腦並成功運行 X Window System (前稱 X11) 對用家來說不只是一項挑戰, 而且可以說是一種折磨. 無窮無盡的硬體相容問題, 指令式界面, 全面但複雜的使用者權限設定... 想當年第一次成功架起一台 Linux 及設定好 X11 環境, 前後花了我十多天的時間! 當然, 今天最新版本的 Ubuntu, Fedora 及其他 Linux 套件的使用者友善度及易用度比當年的有著飛躍的提昇, 可是在很多方面上仍然不及 Windows. 想像你終於成功安裝了Linux 在電腦上, 下一步你應該是去安裝應用程式吧. 這就帶出了我們第二個問題.

開源軟體開發者找不到利基
在開源社區中, 一般開發者都存在 Copyleft 的意識, 簡單點說就是反版權. 那沒有版權的東西如何賣錢呢? Red Hat 及主流的開源軟件廠商的商業模型就是提供開源閉源混合方案及專業的收費顧客服務, 而其他的大多是靠捐款. 但是在沒有組織的個人層面中, 多數開發者的動力並不是來自於金錢, 而是一種尋求認同的動力, 或是想改變世界的傲氣. 但是捐款及認同感有一個最大的缺點: 不穩定. 在現代的軟件業, 單人匹馬基本上是沒有可能開發出如 Microsoft Office Suite 的應用程式, 或 Maxis SimCity 等大形遊戲. 鬆散的團隊或許比較有可能開發出, 差不多或次一級的代替品, 例如早年的 StarOffice. 在某程度上, StarOffice 可以解釋了開源應用程式的困境.

StarOffice 是一套由德國公司 StarDivision 開發出來的辦公室軟體. 她在 1999 年被 Sun Microsystems 收購並於 2000 年以 OpenOffice 為名釋出其開源版本. 而在 2010 年, Oracle 收購了 Sun Microsystems. 在同年年末, OpenOffice.org 的幾名開發者有感新東家有可能放棄這開源項目, 因此成立了 The Document Foundation 希望接手開發工作, 但是 Oracle 拒絕提供品牌的使用權. 幾經轉折, 最後小組以 LiberOffice 的名稱繼續開發, 並得到 OpenOffice.org 其他開發成員的加入. 這事件最終促成 Oracle 在 2011 年 4 月停止了 OpenOffice.org 及 StarOffice (Oracle Open Office) 的後續開發工作及商業支援的決定.

假設你是公司負責人或 IT 部門的頭頭, 看到這開源軟體的發展脈絡, 你放心使用嗎? 從另一方面, 如果你所開發出來的軟體比 Microsoft 的商品更出息, 你會捨得不收費嗎? 個人開發的小工具或許可以是一時之興的傑作, 不用考慮吃飯的問題, 但是團體合作就沒有那麼簡單了. 

好了, 想像你現在回到你安裝好的 Linux 機器上, 當你充滿好奇地在 X Window System 中四處看看後, 想做一些平時你在 Windows 上可以做的事情, 可是你發現只有有限的選擇. 當然, 你可以用 Wine 來跑原本運行於 Windows 的應用程式, 但是你又會發現可以成功運行的東西不多. 這時你看一看呆在旁邊被你所冷落的 Windows 電腦, 再看看這個好像什麼也幹不了的 Linux 機器, 我相信大部份如我的普通使用者, 最後都會回到 Windows 的懷抱內. 我將會在 <<Microsoft Windows 8 - 卑斯默式的夢魘(二) >> 中進一步論及這個使用者情感扭帶效應. (其實 Linux 是很有用的. 我本人不論公私共使用六台電腦, 只有兩台是 Windows 系統, 其餘的都是 Linux 系統. 不過這四台電腦扮演的是像 "鍾無艷" 的伺服器, 平時根本不用理會它們)

上述的是個人電腦黃金時期的情況, 而後個人電腦時代卻是另一番光景. 




2013年9月2日星期一

自製記帳軟件 - 工具


唐吉訶德的馬盾與
決定了要自製記帳軟件之後, 就要面對用什麼樣的工具來完成這個"唐吉訶德"式的壯舉. 畢竟唐吉訶德再荒唐也有一匹瘦馬, 一面皮盾, 和一支長予

"En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor." - Don Quijote de la Mancha

在 "自製記帳軟件 - 原因" 中已經簡單地說了罐頭式軟件的幾種主要限制: 彈性, 分工及版權. 為了要避免這幾種限制, 在決定工具前我花了不少時間去研究十多個廠商的開發軟件及資料庫伺服器的功能, 特性及版權. 在兼顧了自己的開發能力, 輔助工具, 價格及普及性後, 我決定了以Microsoft Access 及 MySQL Community Server 作前店後居式的配搭來開發自家製的記帳軟件.

前店
我知道很多IT人對 Microsoft Access 都是不屑一顧, 但是我選擇的原因是它可以大幅度減輕我開發的負擔, 尤其不用跟DLL打交道, 就已經功德無量, 更不用提它簡單的報表(Report)設計系統了. 另方面 Microsoft 一直很負責任地提供 Microsoft Access Runtime 給用戶免費下載, 令到在分發及佈署在客戶端時更方便容易. 當然 Microsoft Access 都有它的不足之處; 第一, 它是一個檔案式的資料庫管理系統; 第二, 資料檔容易損壞. 雖然有如此重大的缺點, 但是用作使用者介面(不儲存資料), 它的內建功能是可以讓我相對而言輕鬆地完成任務.

後居
選擇 MySQL Community Server 是一個折衷的方案. 自Oracle 於2009年收購並將 MySQL 納入為旗下產品線後, 開源社區便一直擔心 MySQL Community Server 會逐漸被 Oracle 遺棄. 有見於此, Michael Widenius 於2009年推出了MariaDB, 一個完全與MySQL相容的開源資料庫管理系統 (海豚對上海獅). 那為何我還是選擇以MySQL來開發呢? 因為 Oracle 提供了豐富的免費工具如MySQL Workbench等, 讓我可以更直覺地設計 Schema. 換句話說, 因為我懶...

後居的居所
MySQL Community Server 雖然叫伺服器, 但是它並不是一個完整的作業系統, 所以要找一個作業系統如 Microsoft Windows 來讓它住進去並提供服務. 但是為了省錢又要穩定, 我最後選擇了CentOS, 一個 Red Hat Enterprise Linux 的開源版, 來作這個"後居的居所". 等等! Linux 不是很複雜的嗎? 呵呵,  十年前 Linux 可能是很複雜很難上手, 但是現在各個 Linux Distributions 已經非常之 Down to the Earth 了. 如果有興趣的可以從 Ubuntu, Fedora, 及 CentOS 等 Distributors 下載他們的 Live CD ISO, 然後燒成開機光碟, 再插入電腦內後享受一下非視窗系的另類風格. 但小心不要按了 Install to Hard disk 的選項, 除非你知道自己在幹什麼...

聲明: 文中所提及的商標及產品名稱均屬其版權及商標持有人.