顯示具有 捐款 標籤的文章。 顯示所有文章
顯示具有 捐款 標籤的文章。 顯示所有文章

2016年8月16日 星期二

世上沒有白得的軟體,自由軟體亦如是(下)

那麼對於沒有公司或基金會支撐的小型自由軟體專案,如果以免費方式發佈又會遇到什麼狀況呢? (續)
 

貢獻者時間競逐問題

要讓一個自由軟體專案能更多人參與,就必須解決貢獻者的生活問題,他們才有時間投入貢獻。因此要讓一個自由軟體專案能在臺灣在地生根發展,也一樣必須解決貢獻者的生活問題。

常見的自由軟體專案「投入時間」惡性循環就是:作者用閒暇時間開發,以自由軟體授權發佈 => 但只用閒暇時間開發,因此程式的臭蟲問題無法迅速處理,而且自由軟體的特性讓作者幾乎無法獲得額外收入 => 一些使用者因為程式問題久久未修而失去興趣甚至口出惡言,也因為忿恨心起當然無意樂捐給作者 => 作者只能用正職養活自己再說,有閑暇時間再把自由軟體開發當副業。

圍繞在這循環中的關鍵,就在於是否能解決投入者生活上的金錢問題,一旦生活無虞,就能全心投入,臭蟲也就逐漸少了,功能也越加豐富了。這就是為何許多專業的自由軟體專案,都需要有公司、有基金會、不斷籌募資金才能長遠持續下去的主因。

隱藏在免費自由軟體背後的代價

話說,各位知道你免費取用自由軟體時換取了什麼背後的代價嗎?

就小型的專案來看,通常沒有職業員工,只有業餘志工,因此需要業餘志工貢獻者的犧牲才能成就這樣一個專案。以臺灣常見的業餘志工參與模式為例,他們可能犧牲 了假期、睡眠時間或是健康(例如腕隧道症候群)、犧牲了和家人或小孩相處的時間、犧牲了交女友或陪女友的可能性等等,只為了能讓大家可以閱讀到中文介面、 能輸入中文字、甚至去貼合臺灣人的使用習慣。

有位朋友剛好是某自由軟體專案的主要翻譯者,他的職業是老師,他曾跟我提及:「老師是個做業餘自由軟體翻譯的好職業,因為寒暑假放假剛好適逢主要桌面環境或 Linux 散布版 string freeze 階段之後,正好可以處理翻譯。」(註:string freeze 是指這項軟體開發到一個程度,打算發表新版本,於是就不再改動軟體介面上看得到的文字,讓翻譯者有時間去處理的階段,最後再統合收錄翻譯整合到軟體中。)

永續經營自由軟體專案需要資金投入

所以大家能瞭解 LibreOffice、Blender、GNOME、Fedora、Ubuntu…等大型自由軟體專案何以免費提供了嗎?正是募集資金去支應貢獻者做事情,方法主要就是透過基金會或是商業公司來得到資金挹注,用錢去獲取貢獻者的投入時間。

基金會
  • LibreOffice by The Document Foundation
  • Blender by Blender Foundation
  • GNOME by GNOME Foundation

商業公司
  • Fedora by Red Hat
  • Ubuntu by Canonical

 

改變從現在開始

若想改變臺灣普遍對自由軟體的誤解,以為自由軟體就是免費,改變的開始就是「請不要再說自由軟體免費,因為自由軟體並非免費,免費只是提供者剛好佛心來的而已」。如果希望臺灣的自由軟體貢獻環境能有實質上的長期改善,就必須有資金的出現才行。期待臺灣有越來越多的基金會或公司願意投入這一塊,來帶領臺灣的自由軟體貢獻走到全新的層面。

期許未來臺灣能有一個更好、更健全的自由軟體貢獻環境。

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

世上沒有白得的軟體,自由軟體亦如是(中)

這樣一來,通常自由軟體專案都怎樣收費呢?(續)

常見自由軟體收費方式

目前主流常見的自由軟體廠商或發行單位,有以下的軟體收費方式:
  • 宣佈永遠免費提供,例如 Canonical 公司發行的 Ubuntu 作業系統、The Document Foundation(文件基金會)發行的 LibreOffice 辦公套裝軟體都是如此。
  • 必須付費的訂購版(月費制、年費制、或一次買斷),例如 Red Hat 公司發行的 Red Hat Enterprise Linux (RHEL,Red Hat 企業用 Linux) 作業系統等。
  • 自由讓用家決定費用,例如 elementaryOS 組織發表的 elementaryOS 作業系統等。
  • 主要軟體免費,但模組或額外功能需要付費,例如 XMind 公司推出 XMind Free、XMind Plus、XMind Pro 三套心智圖軟體,僅 Free 免費提供,而有更多附加功能的 Plus 和 Pro 則必須付費。
  • 僅發佈軟體不提及費用,但免費放在網路上供大衆取用,目前絕大多數自由軟體專案都是採取這樣的發佈方式。

問題來了,前面有提到即使是原作者或發佈者都無法限制後續第二手、第三手的收費模式,那麼他們是如何賺錢的?畢竟第二 手以後都有可能另外以免費模式提供,或是以更低價跟他們競爭?例如 CentOS 作業系統,就是先取得 Red Hat Enterprise Linux 的源始碼,然後重新編譯出來,免費在網路上發佈供大眾使用的成品。看到這裡,你可能認為這是兩個互相排擠的兩種產品,CentOS 應該會搶走許多 RHEL 的潛在客源。

Red Hat 公司和 CentOS 結盟

或許會令你意外,在2014年的時候,Red Hat 甚至宣佈跟 CentOS 組織結盟,也協助 CentOS 建立正式的管理委員會架構來帶領 CentOS 社群。他們並非是要透過這種滲透來打擊 CentOS 社群,而是透過支薪的員工來協助 CentOS 專案處理目前該專案運作上遇到的問題,並透過合作以擴大 Red Hat 相關產品的整體生態系統。為什麼呢?Red Hat 發表的問答集中就提到,CentOS 和 RHEL 的產品定位實際上並不相同,前者為使用者和貢獻者開發、維護支援的社群專案,後者為 Red Hat 公司為其訂購者開發、維護、支援的付費產品。CentOS 的支援來自社群,所有修正都直接取自 RHEL;但 Red Hat Enterprise Linux 更可以提供教育訓練、有完整的支援架構可以修正客戶問題、也能開發新功能導入新版本中。

白話來講,對 Red Hat 而言,CentOS 吸引的是還無法付費、或本身有能力不付費的可能客戶,而非搶走有能力付費的潛在客戶。既然 CentOS 源於 RHEL,若客戶需要商業服務,勢必要尋求 Red Hat 的協助。以企業而言,為了採用的產品有商業支援可以處理產品問題,多半會付費購買商業支援;若要採用免費的社群產品,就必須自主處理可能發生的問題,那也是另一種成本。畢竟凡事都有代價,天下沒有白吃的午餐。免費就必須付出非產品標示上的代價。

免費的代價

你以為你免費獲得了某項好處,但你可能已經花費許多時間、金錢等潛在成本而不自知。免費的自由軟體只是表像,它的花費就在你可能不知道的地方。

所有專業的東西都需要專業參與,自由軟體也是。如果希望軟體的貢獻者能參與軟體的相關工作,例如開發、翻譯、修正問題等,那麼這些貢獻者就必須先不擔心生活,而人生活需要金錢,因此公司會僱用員工來開發專業軟體。以 Linux kernel 這個系統內部核心為例,2010年 Linux Foundation 統計就指出,Linux kernel 有 75% code 源始碼來自支薪僱員開發;來到 Linux 誕生二十五週年後的2016年,這個比率更上升到 92.3%。例如免費提供到你手上的自由軟體產品,不管是 Ubuntu 這套 Linux 也好、LibreOffice 這套辦公軟體也好,事實上它的背後成本是許多公司、基金會、和志願貢獻者等無數人幫你承擔的。

那麼對於沒有公司或基金會支撐的小型自由軟體專案,如果以免費方式發佈又會遇到什麼狀況呢? (待續…)

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

世上沒有白得的軟體,自由軟體亦如是(上)

 天下沒有白吃的午餐

有句俗諺這樣說:「天下沒有白吃的午餐」,說明白點就是凡事都有代價的,東西不會憑空出現。即使你真的哪天得到一頓免費的午餐,事實上你或其他人可能已經為這頓午餐付出你所不知道或忽略掉的代價。

自由軟體目前流行的其中一個原因是因為「可以免費取得」,但最常被拿來反駁自由軟體背後成本高的論點亦是「免費的最貴」。

四大自由

首先,我們必須先澄清一下。「自由軟體」一詞並非指價格免費,而是強調使用者有四大自由,
  • 自由之零:自由使用、
  • 自由之一:自由研究與改寫、
  • 自由之二:自由散佈、
  • 自由之三:自由改善並釋出成果。
在實務上,即使是把軟體轉手給其他人的動作都需要成本,因此在軟體散佈出去的過程中,散佈人都可以向受用人收取費用。

自由軟體可以販賣

回到最早先 Richard Matthew Stallman (RMS) 開始提倡自由軟體概念的洪荒時代,他就是以販售 Emacs 這套編輯器賺錢生活的。此外,如 GPLv3 這項自由軟體基金會(FSF)所定的授權條款中的〈Preamble〉(前言)一節就明講到, 

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

概略翻譯供參考:「當我們提及自由軟體時,我們講的是自由,而不是價格。我們的 GPL 通用公眾授權主要目的是希望您可以自由地將自由軟體散佈出去(而且如果你想要的話可以收費);自由軟體是提供你源始碼,或是說你想要源始碼就提供給你;自由軟體也是你可以修改這個軟體,或是把其中一部分放到新的自由軟體之中;而且你知道你有權做上述這些事情。」

不管是以免費或收費方式散佈該軟體給收受者,散佈者都必須給予收受者授權條款中明訂的所有自由。所以自由軟體講的是軟體的授權模式賦予使用者自由,無關免費與否,並不阻止任何人透過自由軟體賺錢。若你遇到免費提供的自由軟體,那只是剛好提供者佛心來的而已。

正是因為自由軟體可以給任何人自由散佈出去再給其他人使用,沒有限定軟體散佈的方式或費用,即使是軟體原作者或原發佈者也無法限制第二手、第三手…等,他們在散佈這項軟體時是不是也收取同樣費用。他們可能收取更高、更低的費用,或甚至願意無償免費提供都有可能。

這樣一來,通常自由軟體專案都怎樣收費呢?(待續…)

作者 zerng07,目前是 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member

2016年4月17日 星期日

臺灣自由軟體在地化現況

自由軟體在地化向來是一個必須有人做,但又卻僅寥寥數人願意動手的工作,很多剛入門的自由軟體使用者可能都會有類似的疑惑:「為什麼這個軟體只有英文版?」或是「這個軟體的介面好像翻譯得不太完整/用語不對?」是的,這長期以來一直都是臺灣在推動自由軟體的其中一個相當大的阻礙,雖然我進入自由軟體界也僅約不到三年的時間,但這問題一直都存在著。

因為是社群,所以人力通常會相當地分散,甚或有些軟體的在地化可能是沒有人願意做的,即便人力許可,卻又因為翻譯平臺(包含但不限於 Transifex、Crowdin、Weblate、Pootle)太過分散而無力回天,幸而先前 Tryneeds 的專案搬移至 Crowdin 上,並且(似乎?)加入了更多的軟體讓社群翻譯,改善了少部份自由軟體不易進入上游貢獻翻譯的問題,但仍有許多好用的軟體的翻譯孤單地被丟在角落,或是變成一人維護的專案。

而且,自由軟體在地化在臺灣經常是一件吃力不討好的工作,有時自己耗費了許多心力與時間,卻又沒有實質上的回饋,我們是志願者,但並不是機器人,也需要休息,也需要人們的回饋,就算是一句「謝謝你」也好,只要是發自心底的,我們就很高興了。

再來,或許有人會說:「我能力不足,不會操作這些東西」,那就去學吧,就算是協助看看翻譯有沒有錯誤,只要是我們會的,都會很樂意教出去的!

這篇文章不長,但希望看到的人能夠支持臺灣的自由軟體在地化,不論是出錢出力都好。

本文作者為 Jeff Huang,目前為 l10n-tw 成員之一,正努力申請成為 The Document Foundation 的成員。

2016年4月5日 星期二

自由軟體常見問答集 FAQ

問:什麼是自由軟體?
答:自由軟體與一般市面常見的封閉軟體(或稱專有軟體)不同,它的授權條款保證使用者四項基本自由
  1. 不論任何目的,皆可自由使用
  2. 自由研究程式如何運作,並且自由改寫 (能夠取得源碼是這項自由的前提)
  3. 可以自由地將它再散布出去,所以你可以幫助你的親朋好友
  4. 自由改善並釋出成果,讓他人可自由取用,這樣整個社群就能受益於你所作的修改
參見:《充滿烏托邦理想的四大自由自由》,作者葛冬梅

問:什麼是源碼(或稱源始碼、源代碼、程式碼)?
答:程式的原始狀態其實是源碼,一種用程式語言撰寫的檔案,透過編譯器或直譯器等工具可以將它轉為機器可以執行的二進位檔。一般我們常用的軟體都屬於後者,也就是二進位檔。這兩者的關係,就像是文書處理軟體的電子檔與印刷出來的文件;前者我們 可以透過電腦編輯,後者我們無法編輯,但是可以在生活中使用。

問:自由軟體與免費軟體哪裡不同?
答: 自由軟體主要指具備四大自由的軟體授權方式,免費只是其中一項「可以自由地將它再散布出去」的附帶效果,不一定會發生,端視散佈給你的人而定。免費軟體強調使用免費,但它一般採用只准許你個人使用,而且也不准許你研究程式如何運作,也不能改寫,更不用提將它散布出去給別人了 (註:有的授權方式可能會例外准許),有的甚至屏除商業使用的專有授權。

自由軟體和開源軟體哪裡不同?
答:自由軟體強調四項自由的保障,開放源碼是必要手段;而開源軟體則強調源碼的開放性。開源軟體需要符合下列十點:
  1. 自由再散布
  2. 軟體應附有源碼
  3. 允許修改軟體和衍生軟體
  4. 源碼的完整性
  5. 不得歧視任何人或團體
  6. 不得歧視任何專業工作領域
  7. 授權條款的散布
  8. 授權條款不得具體針對一項軟體產品
  9. 授權條款的規定不得影響其他軟體
  10. 授權條款非基於特定之技術或平台
參見:《開放原始碼的十項定義》,作者葛冬梅

為什麼大多數可見的自由軟體都是免費的?
答:因為自由軟體其中一個自由保障大家可以自由地將它再散布出去,就算軟體最開始的開發者要收費(通常是收取合理的散布費用與成本費用),付費取得軟體的人還是可以將它放在網路上供大家下載且仍然符合授權規範,這樣可以讓軟體更自由流通。

當然,也有一些基於自由軟體的產品是需要收費的,舉例來說 Red Hat Enterprise Linux 這套企業用 Linux 作業系統就是,雖然該公司沒有發布二進位檔給大家直接使用,但該公司仍要依照自由軟體的第二項自由規範釋出源碼,讓其他人能研究程式如何運作。因此有一些社群朋友將這套 Linux 釋出的源碼,再編譯而成 CentOS 作業系統,大家可以自由下載。

問:哪些授權方式算是自由軟體?
答:最常見的授權方式為 GPL、LGPL、AGPL,和 Apache、BSD,以及 CPL、MPL、EPL、CCDL 等。若軟體沒有標明授權方式,通常不屬於自由軟體。

問:有什麼推薦的自由軟體?
答:很多,無法一一列舉。但有許多常見的專業自由軟體羅列如下:
辦公套裝軟體 LibreOffice:http://zh-tw.libreoffice.org
影像編輯軟體 Gimp:http://www.gimp.org
手繪軟體 Krita:https://krita.org/ 
手繪軟體 MyPaint:http://mypaint.org/
向量繪圖軟體 Inkscape:http://inkscape.org
3D  內容製作軟體 Blender:http://www.blender.org/

問:有自由的作業系統嗎?
答:有的,例如 Musix、gNewSense、Trisquel... 等,它們完全以自由軟體構成。
但礙於現實層面,不是所有一般生活中的軟體都有自由的版本,為了讓作業系統正常運作,或是提供更多實用軟體給使用者,大部分可自由下載的作業系統中,仍包含 一些可以自由再散布但不能研究或修改的軟體,通常會放在非主要的軟體庫讓大家使用,但作業系統本身主要還是以自由軟體為基礎構成,例如 UbuntuFedoraopenSUSEChakraPCBSDezgo 等。

問:網路上哪裡有自由軟體的教學或分享?
答:目前軟體教學或分享散見於各個作者的網站、部落格,或是各大論壇的討論中,較無系統性,建議可以透過 Google 搜尋引擎輸入您想了解問題的關鍵字查詢。
近來也有一些計畫或專案想統一個地方擺放教學與分享,但仍在起步中,例如:LibreOffice 正體中文文件

問:我對自由軟體的使用上有疑問,該去哪裡發問?
答:你應該找到與該自由軟體相對應的論壇,或是請益對該軟體有專精的部落客。
舉例來說,有關 Ubuntu 作業系統使用上的問題,可以前往 Ubuntu 正體中文站;對於 Fedora 作業系統有不解,可以前往 Fedora 中文論壇;對於 LibreOffice 有疑問,可以前往 OOo 補給站;對於 Blender 有疑惑,可以前往 臺灣 Blender 使用者小聚

問:有些商業公司說採用自由軟體的成本比較高,是真的嗎?
答: 不見得,依情況而異,但絕大多數的情況下不是真的。如果說你或你的公司已經採用某些商業公司的產品很久,當然在轉換至自由軟體環境時仍需要付出一些代價,代價就是需要人員重新適應新軟體,舊的資料要轉移到新環境上。尤其是你的技術、資料與人力已有相當程度依賴這些商業公司的產品時,這樣的轉換就如同重新來過。

市場上有不少公司提供自由軟體的支援服務,以及環境轉換的服務。然而這樣的代價僅只需要一次,一旦成功轉移後, 自由軟體可以讓你永續使用下去。商業公司的封閉軟體就不行了,每當支援年限一過,需要轉移到新版時,你的技術、資料與人力也都需要部份調整或全部重新來過,每次升級都是陣痛;而且除了轉移的成本外,還需要產品升級的成本。

如果你還不是很熟悉相關軟體,採取自由軟體或封閉軟體都無所謂,都是全新開始的過程。封閉軟體的好處是市面上有許多書籍可以參考,還有訓練廠商可以上課;而自由軟體的書籍因為使用風氣還沒帶開,所以參考書目較少,但是你仍可以透過網路查詢,此外你也可以參與許多論壇發問,通常會有熱心網友的志願答覆。

問:有人說自由軟體比封閉軟體安全,是真的嗎?
答:沒有絕對。

雖然自由軟體的源碼是提供給大家公開檢視的,所以開發者發布之前通常會比較謹慎撰寫,但也有開發者沒測試過就先發布的。此外,其他參與的開發者,以及有興趣的資安專家也會檢閱源碼,一發現有問題可以即刻回報開發者;然而,通常這些人都很忙碌,不見得有時間仔細檢視。當然,惡意的怪客也會檢閱源碼,找尋可以攻擊的漏洞, 所以也有可能怪客先發現問題,展開攻擊後才有其他人發現。但只要該問題被發現後,任何志願修補問題的人都能將改善問題的源碼公布出來,可以迅速對攻擊展開回應;不過反應速度還是取決於問題何時被發現,以及有沒有人有能力修補並釋出。

封閉軟體授權明文規定不准任何人反組譯軟體,所以除了開發者與合作夥伴之外都不能研究源碼,因此惡意的怪客就會利用反組譯技術取得源碼,找到漏洞並攻擊,此後的修補動作完全仰賴廠商與合作夥伴的反應速度,這途中如果有人擅自研究,並將改善的源碼公佈,這樣的動作就違反了當初軟體的授權,根據授權條款之規定可能遭受廠商提告。也有可能他們內部對於軟體品質要求相當高,因此軟體很安全也說不定,但實際情況為何猶如黑箱,因為封閉的授權條款使得外界完全無法得知真實情況。

此外,密碼學、電腦安全專家 Bruce Schneier 所著作的「祕密與謊言 (Secrets and Lies: Digital Security in a Networked World )」一書中,也揭露出封閉軟體背後的不安全性或許大於開源軟體,但實際情況卻會因為人為因素而產生變異。這本書的中文版由商周出版社出版,目前已經絕版,可以透過各大圖書館查閱(若你是嘉義高中的學生,圖書館剛好就有一本),或是購買二手書。

問:自由軟體專案背後的運作機制是怎樣的呢?
答: 一般自由軟體專案都是由自願者發起,等到軟體有一定成熟度後再將公開發行,讓大家使用。

開發時,通常需要有一些人來參與翻譯與測試,直到預定發布日期達到時,再看看軟體目前狀態是否達到釋出的標準,像是軟體的重大問題是否修正了,如果可以了就會釋出,不行的話就將時程往後推,等到那個日期再檢視一次。

釋出後,如果有什麼地方有問題,或是使用者有什麼改善方法與建議,都可以直接透過官方溝通平台表達,或甚至透過源碼的修改再將改善成果提交回官方。如果發現翻譯不完整,通常也都能透過官方提供的平台或公開檔案改善後再提交回官方。是一種需要使用者相當程度參與其中的軟體開發方式。

較大型的自由軟體專案通常有商業公司贊助或是由其發起,這些商業公司可能提供人力、財力幫忙開發軟體,並且將軟體用於自己的產品上。舉例來說,Linux  內部核心(原文 kernel,簡稱內核)的源碼有 75% 來自商業公司僱用的員工,因為 Linux 內核可以用於這些公司的產品上。這種開發方式使用者的參與程度通常比較低,因為商業公司會僱用自己的翻譯者、測試者來確保軟體的可用性,但這不代表使用者就被屏除在軟體專案之外,實際上仍然可參與其中。

問:自由軟體大多可以免費取得,那麼它們的開發成本從哪裡補足?
答:如果說這個軟體在商業上的價值較低,或是比較冷門一般人不大會使用到,那麼這些自由軟體的開發成本通常完全仰賴開發者自己,大多數是興趣與熱情讓他們犧牲自己的業餘時間來開發。

至於一般使用者常用的大型軟體,有些商業公司基於商業利益會提供資金贊助,此外這些軟體專案會希望使用者能捐款,盡量提供資金讓開發者可以不擔憂生活壓力來開發軟體。有的規模較大的甚至會成立基金會來協助軟體開發,像是 GNOME 基金會與文件基金會(The Document Foundation)分別協助 GNOME 桌面環境與 LibeOffice 的開發。

問:我可以透過什麼方式回饋自由軟體專案呢?
答:如果你喜歡這個自由軟體,希望它變得更好,你可以透過以下方式來幫助它
  1. 協助專案開發,像是幫忙測試軟體並回報遇到的使用問題、幫忙翻譯軟體、幫忙改善有問題的源碼
  2. 捐款贊助軟體專案,或是購買週邊商品。舉例來說,GNOME 專案就有「GNOME 之友」認養活動,你可以透過這個活動來幫助 GNOME 基金會。還有 Ubuntu 作業系統背後的主導開發公司 Canonical 有「線上商店」讓你可以訂購 Ubuntu 週邊商品。
  3. 捐款贊助在地社群,或加入自由軟體之相關組織機構。例如,Fedora 臺灣社群就有捐款計劃,你可以給予他們贊助來幫忙舉辦活動或支應主機代管的開銷;或者是考慮成為軟體自由協會的會員,一起和這群關愛自由軟體的人們為臺灣自由軟體的未來奮鬥。
  4. 推廣這個軟體,像是在網路上宣傳、推薦給親朋好友、或是撰寫部落格來介紹它
  5. 協助其他使用者,像是在論壇上幫助發問的網友解決問題、幫助朋友取得軟體或使用軟體