顯示具有 開源軟體 標籤的文章。 顯示所有文章
顯示具有 開源軟體 標籤的文章。 顯示所有文章

2017年4月7日 星期五

開源版本控制系統 GitLab 9.0 釋出



版本更新


近期 GitLab 正式釋出 9.0 版本,我也將手上的舊系統更新上來,介面改動不小。


GitLab 8.x 管理介面


GitLab 9.x 管理介面



版本改進


這個版本做了很多改進,極有誠意。以下僅列出我較關注社群版 (CE) 有支援的部份:

  1. 除了原本的群組功能,現在還可以再開子群組。
     
  2. 伺服器環境監控,方便管理者在 GitLab 後台就掌握主機情況。
     
  3. 效能優化提升,我從 8.x 更新至 9.x,使用起來速度確實明顯變快。
     
  4. 採用全新彈出式導航列,取代原本固定在左方的功能表。(老實說這個改變我到現在還沒習慣)
     
  5. 問題看版!問題看版!問題看版!
     
  6. 強化群組的搜尋功能。
     
  7. 可以在程式版本差異處增加標註。(我相信這是 Code Review 狂人主管的最愛)



更新方式


GitLab 有多種更新版本的方法,我個人偏好使用「Omnibus packages」最為簡單方便,一行「sudo apt-get update gitlab-ce」搞定。

官方版本更新說明頁



完整介紹


GitLab 官方完整 9.0 Release 介紹頁
https://about.gitlab.com/2017/03/22/gitlab-9-0-released/


本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月31日 星期五

開源程式碼品質檢測系統 SonarQube



SonarQube 開源程式碼品質檢測系統,它有提供雲端版本,不過雲端版本只提供用來檢測開源專案,若您要檢測自己的專案且不公開,可以採用自建版,於公司內做更多的分析與應用。

支援超過 20 種程式語言,例如 C/C++、C#、Objective-C、JavaScript、VBNET、PHP、Swift、HTML、PL/SQL、Python、COBOL(驚!)、... 等。

透過 SonarQube 自動找出潛在問題並提供建議的解決方式,協助大量節省許多人工檢測時間。



本文轉自「節省工具箱 / Jason Tools」部落格。

開源弱點掃描系統 OpenVAS 推出最新版本 9



開源弱點掃描系統「OpenVAS」,24 個月後最新的 9 版終於來了。

其中一個亮點是改進了網頁介面的呈現,看看上圖這個 Dashboard,順眼多啊。

OpenVAS 9 Release 說明頁:
http://www.openvas.org/news.html#openvas9 

OpenVAS 9 的 VM 檔也已經準備好,下載頁:
http://www.openvas.org/vm.html



本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月29日 星期三

企業資料備份的開源方案推薦




現代企業正處於「十倍速時代」,所有知識與資料的數量以非常驚人的爆炸性成長往上攀升,也因為所有的營運都與數位資料息息相關,如何儲存與備份就是一個令企業資訊單位非常頭痛的問題。



頭痛的問題點在那裡?


「儲存系統運作」

需要考量效能與管理難易,此議題可參考另一篇拙作 企業應用經驗:開源儲存系統「FreeNAS」 。


「容量無限需求」

海量數據需要依賴龐大的儲存容量,如果已經有了良好的儲存運作中心,剩下要擴充容量就只有一個因素:「錢」。 
經費是所有資訊單位的痛,關於此議題同樣可參考拙作 企業應用經驗:開源儲存系統「FreeNAS」 。



「做好備份機制」

即便解決了上述兩項問題,仍然有最後一道關卡「備份」。 
別忘了,資料不是存在良好的伺服器與硬碟上就永遠不會出問題,在電子的世界裡,沒有人能保證所有系統維持 100% 的妥善率。 
而這個備份問題,就是本篇要討論的主要題目。



資料備份又有什麼問題?


備份的問題非常複雜,除了備份軟體的功能與支援度,還有備份目的地這件事需要考量。

早期高容量儲存技術,主要以磁帶機、磁帶櫃為存放標的,隨著硬碟技術逐漸進步與成本降低,備份方式已經轉移到硬碟來做存放,例如搭配 NAS 網路儲存系統作為備份伺服器。



然而再怎麼建置備份系統,只擺一份還是危險,若整座機房發生災難,則全部毀於一旦。

因此,衍生出「異地存放」的需求,但是中小企業那裡來的錢可以找到適合的場地與線路擺放第二個異地備份裝置?

幸好,這幾年雲端服務非常火熱,相關的服務供應商雨後春筍般陸續成立,Amazon、Google、Microsotf 等紛紛投入市場,一夕之間,異地備份的問題迎刃而解。

也就是說,備份趨勢的改變,由 磁帶 ("T"ape) -> 磁碟 ("D"isk) - > 雲端 ("C"loud) 方向進行蛻變。


在備份策略上,可以進行多種應用,例如,從運作的系統先備份到另一台同樣機房裡的備份伺服器,再由此備份伺服器轉存到磁帶上,再把磁帶運送到其它地點,完成兩個備份目的端,這就是「D2D2T」的模式。


同樣道理,最後一端也可以是 NAS 伺服器,並且擺在異地,這是「D2D2D」。

最新的模式,則是將最後一端直接上傳到雲端儲存,完成真正的異地備份,這就是「D2D2C」。


有什麼好方案介紹?


當然有,市面上已經有許多發展成熟的備份軟體,在不少企業中都已應用的非常廣泛,尤其是前者,我也曾經非常喜歡。






在雲端上傳部份,我也曾經使用過 NAS 系統提供的應用來做 Google Drive 上傳,例如 Synology 群暉科技 NAS 設備所提供的功能。




那麼,我的開源選擇呢?


當然,還是要找找究竟有沒有開源軟體可以符合我的需求?

對我來說,最重要的評估項目有幾點:

  1. 具有靈活設定排程備份。
     
  2. 支援壓縮,用以節省備份容量與流量。
     
  3. 提供檔案加密,來避免備份檔被竊取或外流造成機密曝光。
     
  4. 容易操作的還原介面,以時間點為主要選擇項目。
     
  5. 多種備份目的地支援,包含 Local Driver / Folder、FTP、SFTP、CIFS、Google Drive / Cloud Storage、Amazon Cloud Drive / S3、Azure BLOB。
     
  6. 可以設定要切割上傳的容量大小,這個非常重要,因為許多雲端空間都有單檔容量的上限。
     
  7. 跨平台支援,包含 Windows、Linux、MacOS。
     
  8. 支援 VSS (Volume Shadow Copy Service,陰影複製),才能備份 Windows 中被鎖定或佔用的檔案。


在這麼多的要求條件之下,有些商業軟體甚至都已經被刷掉了。

不過,我們運氣非常好,剛好就有這麼一套開源軟體可以符合上述條件。


Duplicati

Duplicati 是一款跨平台的備份軟體,但是很多人沒意會到一個重點,Duplicati 是用標準微軟 .NET 平台以 C# 開發的程式,在 Linux、MacOS 上透過 Mono Framework 進行運作。


Duplicati 從 2.0 起,操作介面改為清爽的 Web 模式,並支援 RWD,所以只要有瀏覽器即可進行該伺服器的備份設定與管理,非常方便也提升顯示相容性。


如上述所提,Duplicati 支援的雲端儲存相當豐富,而且隨著持續改版也會不斷加入各種雲端儲存空間的支援。



還有沒有其它適合企業應用的開源方案呢?


有的,如果您有企業集中備份的管理需求,可以採用另一套企業級開源備份軟體,提供中央管理伺服器,只需在要備份的主機上安裝好 Agent,剩下的事都交給伺服器處理。

Bacula



Bacula,本圖取自官網」


特別說明:
Bacula Windows 版的 Agent 在使用上要注意授權,僅限「personal use only」,若您要商業使用請記得購買授權。 
[官方說明頁面]


結論


資料備份,刻不容緩。
及早預防,及早治療。



本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月27日 星期一

線上問卷與投票系統的選擇



近期公司有投票及問卷系統的需求,上網找了一下有那些開源的方案可以自行建置,不找還好,一找就發現一套驚為天人的好系統,經過試用後決定推薦一番。



免費線上服務從不缺少


此類型的系統,在網路上可以找到滿坑滿谷的線上服務,只要簡單註冊後即可開始使用,對於臨時或小情境可以善加利用。





如果要更進階專業的功能,還有專精於這類服務的供應商,幾乎是比問卷系統當成一門專業事業在經營。



Typeform



雲端系統 vs 自建系統


雖然上述服務都能提供豐富且完整的功能,但是對於企業應用來說,總是有些擔心把資料放
別人家會不會有問題,例如服務倒閉、收費提高、本地管理... 等各種疑慮,從而想要自己架設一套在自己的公司裡。





自己開發當然是一條很棒的路,然而現實上不見得划算。在這樣情況下,尋找既有的方案是條可行的道路。




良好的開源方案已經存在


在多方比較與試用過後,我特別推薦使用「LimeSurvey」這個開源方案,它是一款強大且彈性的開源線上問卷系統,以 PHP 及 MySQL 開發。


LimeSurvey



我試用過後的心得如下,提供各位參考。


  1. 類型豐富,單選、多選、陣列表格、數字、文字、日期、檔案上傳...等。
     
  2. 介面支援多國語系,題目也可以提供語系選擇,重點是介面有中文、中文、中文!
     
  3. 可以匿名投票,或用 CSV 或 LDAP 吃人員名單,還內建邀請碼機制與發送郵件邀請與提醒,邀請碼可以一次對名單所有人個別產生。
     
  4. 題目之間可以設定條件與流程,適用於不同答題顯示不同後續題目的場合,甚至支援正規表示式來做判斷。
     
  5. 題目與答案可以用 HTML 視覺化編輯器,想要放圖片放影片放表格都可以。
     
  6. 支援亂數題目,還可以將同一張問卷的題目分群組,針對群組各自亂數取提。
     
  7. 可以一題一頁、一題組一頁、全部一頁,三種顯示方式。
     
  8. 採 AJAX 設計並支援 RWD,手機瀏覽器無痛使用。
     
  9. 可以選擇問卷是否記錄答題者IP位址、來源網址、可以記錄答題時間。
     
  10. 可以在交卷前先儲存目前答題狀況,之後再回來續做。
     
  11. 問卷支援模版系統,可以自行定義想要的問卷長相。
     
  12. 提供統計數據,有圖表,也可以匯出為 pdf、excel 等。
     
  13. 它是開源 Open Source 的!



多種題目與答案形式可選用


甚至提供陣列(表格)形式的題目與答案


問卷的外觀形式可任意自行定義





結論


目前來看,LimeSurvey 適合對外使用,若要在企業內部使用,欠缺 AD/LDAP 的認證整合,只能用邀請碼替代較為不便,希望未來能予以整合或是找到適當的外掛搭配。


本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月10日 星期五

開放源始碼和安全性有什麼關係?

Security,圖採 CC-by 2.0 授權,作者 GotCredit (http://www.gotcredit.com/)

誠如密碼學專家 Bruce Schneier(布魯斯・施奈爾)所著《秘密與謊言:如何建構網路安全防衛系統》一書第二十二章【產品測試及驗證】中的描述,他認為公眾開放的密碼學加密方法其安全上的好處優於私人專有的方法,因為唯一可以確認密碼方法之安全性的作法,即是由許多專家投注一段很長的時間評估,而將該方法公諸於世是經濟效益最佳的方法;所以基於相同理由,他認為任何與安全防衛相關的事務都應有公眾的解決方案,這包括採用開放源碼方式發佈軟體,就讓世上所有專家評估、讓時間考驗。

他認為一個優良的安全防衛設計,其設計細節不會有什麼必須隱瞞之處;換句話說,這套安全防衛設計之所以安全,純粹來自於產品本身,以及產品自身可以改變的祕密:如密鑰、密碼、信符…等等。但如果是透過隱匿的方式獲得安全性(security by obscurity):即系統的細節是安全防衛的一環,那麼一旦設計細節公諸於世,它們可能會在極短的時間內被破解。若一個軟體的安全設計相當拙劣,就只能期待設計細節不曝光來得到安全;若系統設計相當優良,即便將相關細節公諸於世,也依然安全無虞。

而軟體也是一樣,要在源始程式碼中找到安全防衛上的漏洞,唯一的方法是評估檢驗,但你不可以隨便找人評估,你需要的是安全防衛軟體專家來評估,你需要它們從各種不同角度、經年累月的一再檢驗。雖然聘請這類專家是可行的,但是讓大眾一同動手會更省錢、也更有效率,所以最簡單的方式就是公佈軟體的源始碼

說到這,最常見的反對論點是:公布軟體的源始程式碼只會給怪客們找尋弱點所需之資訊,並且利用這些資訊來作惡。這些人認為,保護源始碼秘而不宣,能夠阻斷攻擊者得到相關資訊。Bruce Schneier 講到這裡說:「除了驚嘆他們的天真之外,我還真不知道該說些什麼」。

畢竟將軟體源始碼公諸於世,並沒有因此增加該軟體的臭蟲與缺陷數目,唯一增加的是一般大眾對它們認識的可能性而已。他提到:「那些把程式碼隱匿不為人知的廠商多半很懶散;而願意將產品源始碼公諸於世的廠商,往往可以因此找到漏洞,所以,他們也就能修補它們。」「秘密的軟體是脆弱的:它就像密碼學一樣。若將源始碼公諸於世,會比隱匿源始碼的措施提供更紮實的安全防衛」。

然而,開放源始碼軟體並不能保證安全,他認為大眾應該把兩件警告銘記在心

首先,僅僅將源始碼公開並不自動等於人們會檢驗它的安全漏洞,並且,當然這也不代表專家們會檢驗它的安全漏洞。
他舉例說:「研究員在 MIT 麻省理工開發的 Kerberos 程式碼發表後十年,才在其中找到緩衝器超限的問題」、「另一個開放源始碼的軟體 Mailman,用來管理郵遞清單,有顯著的安全問題存在長達三年之久⋯⋯直至原作者檢查源始碼,才找到問題所在」。畢竟安全防衛專家是一群常為雜事分神、極其忙碌的一群人。他們沒有什麼時間,也沒有意向想檢閱世上所有公布的源始碼。所以,雖然公布源始碼是件好事,但是它無法帶給你安全的保證。

其次,僅僅將源始碼公諸於世,並不自動等於安全問題只要一發現就可以被迅速解決。
我們沒有任何理由推論:一個兩年的開放源始碼軟體之安全性,會比一個兩年的專有源碼軟體的漏洞少。如果開放源始碼的軟體已經被專家詳細檢驗過,那麼以上的論調有可能是真的。但若只是因為一段程式碼已經公諸於世多年,並不具任何特別的意義。

Bruce Schneier 總結道:「我相信軟體開放源始碼有潛力可以增進安全防衛能力。但是,軟體並不會因為源始碼公開而自動變得很安全,就像不能因為程式碼不公開,就下斷語認為它不安全一樣」。

最後,Bruce Scheier 提及軟體開發模式也是影響軟體安全性的因素之一,而上述探討只針對源始碼開放與否作分析,沒有涉及到「哪一種開發程序可能在設計上產生安全的軟體」。他認為若採用傳統的專有軟體方式(教堂式開發)或許較能產出高品質、大規模的軟體;所以對於安全防衛而言,最好的作法也許是先以教堂式開發製作出專有授權的軟體;然後,再將它轉為開放源始碼公開讓所有人檢驗、讓時間考驗。

參考資料

祕密與謊言書封,合理引用

書名:《秘密與謊言:如何建構網路安全防衛系統》

作者:Bruce Schneier
譯者:吳蔓玲

出版社:商周出版
出版日期:2011/09/18

註,本書已絕版,可於各大圖書館查詢借閱。



關於 Bruce Schneier

Bruce Schneier 個人網頁
Wikipedia 上的 Bruce Shneier 介紹
Bruce Schneier 於 TED 上的分享內容《安全的錯覺》

進階閱讀

開放原始碼比較不安全?看看微軟的中標率吧(冷笑)》,作者洪朝貴

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年8月3日 星期三

GIMP 的現在和未來


2016年7月30日上午 8:07(EDT) 來自 Michael Larabel 對於 GNOME 專題的報導。

GIMP 核心開發者 Jehan Pagès 寫了一篇有關近期 GIMP 2.9.4 工作項目、以及未來展望的網誌文章。

GIMP 2.9.4 是邁向 GIMP 2.10 的重大開發里程碑,該影像處理程式自由軟體的未來看來著實令人興奮。

說到 GIMP 的未來,GEGL 及其可能性讓人振奮不已。Jehan 解釋道:「我看到 GIMP 上有許多美好事情正在發生。不單只是我這邊的消息而已,還有來自其他全體 GIMP 團隊和相關專案中的超棒朋友們的消息。GEGL 對大家來說或許是奇異的超酷專案,但我認為它將成為自由暨開源影像處理應用的未來。我試圖想像一個大多數圖形軟體都整合 GEGL 後的未來,例如說 Blender 可以拿 GEGL 來打造新的節點實作,而影像處理過的圖形可以在程式之間交換,像是 darktable 可以和 GIMP 共享緩衝,這樣影像就能在其中一個程式下編輯,卻能同時在其他程式中即時更新成果… 等等。」

其他 GIMP 的未來工作項目包括使用介面改善、繪製功能改善、更好的匯出功能、圖層功能改善… 等。

如果你是 GIMP 的愛好者,還想知道更深入的細節的話請閱讀 Jehan 的網誌文章。唯一不幸的是何時才會發佈具備完整 GTK+ 3.x 工具組支援的 2.10 或後繼發行版本的時間表截至目前為止都還沒確定。

相關閱讀連結:
GIMP 2.9.4 and our vision for GIMP future,撰文者 Jehan Pagès

2016年6月15日 星期三

Visual Studio Community 與 Express 商業免費使用之謎




Visual Studio 是一款非常好用的開發工具,而 .NET Framework 也是極其成熟好用的開發框架,對於開發者來說可以快速完成所需要的軟體。



版本採用選擇?


.NET Framework 既然是 Microsoft 家的產品,理所當然應該要採用 Visual Studio 進行開發最為理想,對於沒有經費的團隊來說,採用免費版本肯定是優先選擇。

目前 Visual Studio 在「免費」領域有兩個版本:Community 與 Express。







真的免費使用嗎? 


目前有幾種觀點:「Community 是用來取代 Express 做為免費版本」、「Community 在企業也是完全免費使用」。

事實上真的是這樣嗎?我們來看一下微軟網站的說法:

Community 版 (連結)


Express 版 (連結)



並不是 Community 可以任意於組織內免費商業使用,有兩個但書,任一條件達成都算超過範圍:

  1. 電腦數多於 250 台
  2. 年營收高於 100 萬美金


至此,答案明朗。


回到問題,如何選擇?


若您的組織未來擴充可期,可先採用 Community 版本,待成長後進而採購 Professional 或更高級的版本;若成長也不考慮轉用更高級版本,那麼一開始就採用 Express 版可以降低未來轉換之困擾。


可是 Express 版少了許多功能怎麼辦呢?例如 Code Coverage、Profiling ...


開源的另一種選擇。


幸好,這世界永遠不缺熱血,有團隊開發了一款「SharpDevelop」。



SharpDevelop 已經是開發多年的專案,知名的跨平台 .NET 開發工具「MonoDevelop」就是從 SharpDevelop 分支出來(有趣的是,MonoDevelop 現在變成 Xamarin Studio,而且經過併購又重回微軟懷抱了)。

SharpDevelop 是完全開源 Open Source 的專案,對於 .NET 的支援性相當良好,我甚至可以同一個專案檔在 Visual Studio Express 與 SharpDevelop 之間互相開啟與存檔完全正常,同時也增加了許多功能與外掛套件支援,可用以補足 Visual Studio Express 缺少的功能,例如 Code Coverage、Profiling ... 等。

如果對採用 SharpDevelop 完全取代 Visual Studio 做開發有疑慮,在此我提供另一種參考作法:大部份開發等情況採用 Visual Studio Express 進行,需要其它進階的功能時,使用 SharpDevelop 做為輔助。


結論。


有些朋友提出,既然公司已經發展到一定程度,購買高階如 Professional 版本是應該的吧?

估且不論對錯,「軟體自由」是一種選擇,選擇所用的軟體,是一種自由,所以上述觀點正確,想繼續採用 Express 的想法也沒錯,想改用 SharpDevelop 的念頭更不是壞事。

最後,選擇適合自己的版本才是最重要的,若購買商業版本可以發揮具體效益,創造價值,肯定值得投資;但是,若採用了 Professional 甚至 Ultimate 版本卻沒發揮到應有的效益,甚至都是冗餘功能,實為可惜,則可選用 Express,或者選擇另一種思維使用開源軟體,不但節省,也不會讓自己因此而被綁住。

以上個人淺見提供。


原文轉自「節省工具箱 / Jason Tools」部落格。


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. 協助其他使用者,像是在論壇上幫助發問的網友解決問題、幫助朋友取得軟體或使用軟體