第 180 期 一百年度自由軟體鑄造場作業暨智財權說明會─自由軟體鑄造場電子報─智邦公益電子報
enews.url.com.tw · February 07,2012[源碼快訊] 一百年度自由軟體鑄造場作業暨智財權說明會
OSSF/編述
自由軟體鑄造場 (OSSF) 每年都會針對申請自由軟體國科會專案補助計畫的主持人及學生開設說明會,內容包含示範專案進駐的操作方式、介紹版本控制系統、分享程式開發經驗、剖析自由軟體授權條款等,讓更多人對自由軟體的本質與實際的運用有更深入的了解。今年分別在台南與台北開設兩場說明會,其時間、議題如下:
100/09/19 (一) 9:00 - 12:00 台南 - 國立成功大學圖書館 B1 會議廳
講題(a) OSSF 服務介紹-講師:洪華超
講題(b) OpenFoundry 介紹(版本控制、待辦事項、規畫釋出)-講師:邱健雄
講題(c) 自由軟體授權分析-講師:林珈宏
100/09/23 (五) 13:30 - 16:30 台北 - 國立台灣科技大學國際大樓 1 樓 IB101
講題(a) OSSF 服務介紹-講師:陳瑞霖
講題(b) OpenFoundry 介紹(版本控制、待辦事項、規畫釋出)-講師:王家薰
講題(c) 自由軟體授權分析-講師:林誠夏
[源碼快訊] ICOS 2011 開放源碼國際研討會開放報名
OSSF/編述
ICOS (International Conference on Open Source) 為開放源碼國際研討會之縮寫,是由軟體自由協會所承辦,一年一度的開放原始碼軟體以及自由軟體研討會。ICOS 2011 預定在 9/9~9/11 一連三天,假國立台灣大學-共同教學館 1 F 舉辦,歡迎關心開放源碼議題的各界人士前來參加。今年的 ICOS 為了鼓勵大家的參與,免收報名費,並提供活動期間三天的午餐。
ICOS2011 研討會重要資訊:
1. 時間:2011 年 9 月 9 日 ~ 11 日
2. 地點:國立台灣大學共同教學館 1 F (台北市大安區羅斯福路四段 1 號),地圖
3. 報名網頁:http://icos.org.tw/icos2011/signup/signup.php
4. 活動網址:http://icos.org.tw/icos2011/
5. 活動議程:http://icos.org.tw/icos2011/about/about0.php
[源碼快訊] 分享,讓知識有溫度:維基百科臺北假日寫作月聚啟動
台北維基社群/提供
2011 年 9 月 10 日星期六,師大慕哲咖啡有一場溫馨的聚會即將開跑!每月第二個週六,都將由目前在台北活躍的維基人帶領有意分享知識的新手,一步步了解怎麼樣加入維基百科編寫的行列!
就是要寫作!三階段活動激發你的熱情
維基百科台灣社群近年來極力振興,希望藉由聚會的舉辦擴大社群的參與。因此今年二月起臺北的定期聚會重新啟動。然而由於聚會經常需要討論社群事務,使得抱著好奇心前來參加活動的新手,沒有辦法在聚會中得到足夠的教學指引。基於維基聚會的能量應該要反應在條目寫作上,臺北定聚的成員除了在 7 月全國性夏聚中,舉辦寫作教學營外,更亟思要發起長期的教學活動,讓更多熱心的朋友不再被複雜的規則與代碼擋在門外,因此有了假日寫作聚會的構想。
臺北假日寫作月聚的活動內容完全以「寫作」為核心,分為三階段進行。第一階段會由主持人報告上個月聚會參與者的貢獻,接著第二階段邀請一位朋友上台分享創作的心路歷程並開放自由討論。透過成果的展示,激起創作者的成就感;同時也藉由經驗的分享,來增進大家對維基的認識。
第三個階段就是重頭戲:寫作時間。也許平日繁忙的事業、課業讓人無法靜心下來寫條目,也許沒有人併肩作戰讓人碰到困難只能放棄。但是在這個一小時的時間裡,不管寫多還是寫少,都一定要在維基百科上做出些許貢獻。有維基老手當場解答難題,有志同道合的朋友在旁相互加油打氣,一定讓你拿出熱情,為了傳播全人類的知識而努力。
寫百科不宅 分享讓世界更寬廣
日前才有報導,英文維基百科的社群因為參與的「宅男」紛紛結婚成家,寫作人數衰退。中文維基百科這幾年的編輯雖未衰退,但也呈現成長停滯的現象。或許因為維基百科必須花時間找資料、分析整理,還得搞清楚好多複雜的程式碼,所以以往只有肯長時間待在電腦前的宅男宅女才能參與。現在,改變的時間到了。
寫作月聚的舉辦,讓寫條目不再是一個人關在房間裡的無聊工作。來參與聚會的朋友專長各不相同,上至天文、下至地理,在知識上各有專精,在性格上更有大方分享的熱情和講求證據與中立的理性。在面對面的相處、討論、思辯之間,一方面讓你看見不同領域的世界,二方面也讓你感受到無私的溫暖。
「分享,讓知識有溫度」是臺北寫作月聚頁面上的第一句話。其實寫維基百科一點都不宅,快準備好你的筆記型電腦、上線點下報名。每個月第二個星期六,一起走出大門,來加入維基人的行列吧!
維基百科臺北假日寫作月聚聚會資訊
[源碼新聞] 韋諾之戰 (Battle for Wesnoth) 繁體中文化參與心得
陳瑞霖/採訪
開放源碼軟體透過眾人協作的方式開發,而使用者介面也是經由各地的社群努力才有當地語言的在地化版本。今天很高興請到臺北維基社群的章 · 安德魯,來談談他當初參與一款開源遊戲的繁體中文化經驗-韋諾之戰 (The Battle for Wesnoth)。
Q1. 當初是怎麼接觸「韋諾之戰」的?
A1. 我在中文維基百科的新條目推薦(http://zh.wikipedia.org/wiki/Talk:韦诺之战 2008 年 10 月 3 日 (五) 04:42 (UTC))看到韋諾的介紹,看完之後就去投票支持,並下載來玩。
Q2. 看來你從維基認識不少東西。韋諾是屬於什麼性質的遊戲?怎麼玩?
A2. 韋諾之戰是開放源碼遊戲,與 The Mana World 或是 0 A.D. 一樣,在原作者保留部份權利下,可供他人進行自由修改。韋諾之戰採用「回合制策略」,意味著我方單位進行動作後,就會輪到敵方(或友方)進行。這款遊戲的設計,相對其他遊戲而言,規則簡單、易上手。遊戲介紹請參考中文維基條目:「韋諾之戰」http://zh.wikipedia.org/zh-tw/韦诺之战,以及官方的遊戲操作手冊 http://svn.gna.org/viewcvs/*checkout*/wesnoth/branches/1.8/doc/manual/manual.zh_TW.html。
▲ 圖2
Q3.「韋諾之戰」與一般回合制遊戲相比,有何異同之處?例如和老字號的「文明帝國」比較呢?
A3.好難回答啊。一個很少玩遊戲的人很難做「遊戲比較」這樣的事。雖然這幾個遊戲都很有名,但我只有在同學玩的時候在旁圍觀而已。
▲ 圖3
突然想到裡面有場戰役,外國作者其實參考了一個很有意思的來源。最早期的戰役 Heir to the Throne(王位繼承者)敘述韋諾王國太后「艾斯威勒」在兒子死後殺盡王族,進行篡位,但是有個「康拉德」王子據說被大法師「迪法多」營救,之後展開漫長的躲避追殺旅程。這與《舊約聖經》列王紀下第十一章的情節相似:猶大國太后「亞他利雅」篡位、剿滅王室,但是有位王子「約阿施」被藏匿,後來經由大祭司「耶何耶大」的幫助成功復位。也許提到現在以色列祖先的故事,會先想到摩西出埃及,然而摩西並不一樣,當時的埃及法老本來就是繼承人,也沒有屠殺王室。
▲ 圖4
Q4. 開放源碼遊戲與一般商業遊戲有何不同?
A4. 開放源碼遊戲的最大優點在於:遊戲正式版本的開發與維護都是由玩家們自由參與,一般玩家也可以直接使用正式網站提供的各式遊戲配件,例如地圖、戰役、圖檔等元素,來進行新的戰役設計,甚至有可能成為正式戰役,例如戰役 Delfador's Memoirs(迪法多回憶錄)在 1.6 版時仍是測試版,回合不完全,功能也有殘缺,需要另外點選「模組下載」到正式伺服器 add-ons.wesnoth.org 自行下載,而在 1.8 版完成開發後遂成為正式戰役。而商業遊戲則是由遊戲公司的開發團隊進行維護,享有智慧財產權的保護,一般人無權對遊戲進行重製、複製,因此商業遊戲的玩家只能是遊戲的「接受者」而非「主導者」。
▲ 圖5
Q5. 我不會寫程式,可以來參與專案嗎?
A5. 可以的,中文化的翻譯流程真的很簡便。韋諾之戰 (The Battle For Wesnoth) 這款遊戲的翻譯檔使用 po 檔,我是在 Ubuntu Linux 系統下用 Poedit 進行繁體中文化。而且對岸也有另一組翻譯團隊,因此後者的翻譯檔也可以供作參考,只是由於每位譯者的翻譯品質與風格優劣不一,並且涉及地區用語的差異,在使用上需要多加留意。台灣繁體中文化團隊的翻譯進度可以在以下連結取得:http://www.wesnoth.org/gettext/index.lang.php?lang=zh_TW&version=branch。
▲ 圖6
Q6. 以韋諾為例,是怎麼分工的?
A6. 目前台灣這邊我沒有聽說過有玩家自行製作戰役,而正式開發團隊那邊的分工,我並沒有特別關心。本地化的部份,繁體中文化團隊在 2008 年有開過幾次團隊會議,當時除了團隊會議,平日也保持 Gtalk 或 Email 聯絡以進行意見交換與協調。字體顯示的問題長久以來一直令人困擾,恰巧團隊成員各自擁有不同的作業系統,所以便成為很重要的測試平台。而新單位的名稱翻譯,也藉由開會讓團隊成員共同決定。單位一覽表:http://www.wesnoth.org/units/1.8/zh_TW/mainline.html。
▲ 圖7
Q7. 接下來想問的問題是針對繁體化。在台灣推廣軟體,介面繁體化很重要。你提到 Wesnoth 的開發者對於中文有兩種字體感到困惑,其他的專案開發者應該也會有類似疑問:同樣是中文怎麼有兩種不同書寫方式?你如何向官方解釋繁體中文與簡體中文的議題?
A7. 我覺得很不好意思,後面這個提問,我想我幫不上忙,因為當時是由團長楊綮銘去申請團隊的,當年碰到的問題確如提問所說,但是楊兄並未向我透露這件事的細節,因此這一部份的經驗可能要向楊兄請教才得以知曉,我也好久沒跟他聯絡了。其實我也很好奇當初為什麼他會想去申請中文化(繁體中文化)。
▲ 圖8
Q8. po 檔是什麼?軟體在地化常常用這種檔案嗎?
A8. po 檔是可以進行多國語系翻譯的檔案格式,用來進行比對工作。而另外生成的 mo 檔則是讓系統進行讀取。在翻譯時需要注意,中文化遇到參數的部份不能隨便修改,不然會顯示不正常。有做過 Windows 系統下的一些軟體中文化,就會知道沒有 po 檔這種獨立的翻譯檔,就需要「十八般武藝」才能搞定(有時還是不可能搞定,這是後話)。遇到 ASCII 這類就要抽取字串,這很累的。還有很多是加密加殼的,還是變形殼,那更慘,手動脫殼很不好操作。po 檔在自由軟體很常使用,非自由軟體則到近年才開始採用。
▲ 圖9
Q9. 如何鼓勵台灣人參與?
A9. 韋諾之戰目前仍有許多戰役尚未繁體中文化,或是只有零星翻譯,而且礙於團隊人數不多,趨向於一個戰役只由一個人進行負責,因此少部份專有名詞在整體上很難完全協調。這些都是可以鼓勵台灣玩家多加參與的地方。台灣的繁體中文化團隊成員名單:http://wesnoth-tw.blogspot.com/2009/04/blog-post.html。
▲ 圖10
Q10. 來講講你參與的感想好了。與玩遊戲不同,實際參與中文化給你什麼感覺?
A10. 參與中文化的收穫就是帶給我成就感,也更了解戰役的故事內容,以及主線與分支劇情的發展(因為全都要翻譯),所以在斟酌用字遣詞之間,也能欣賞其戰役的故事創作。另外還可以注意到很多小細節,例如 The Rise of Wesnoth(韋諾的崛起)的樹人 NPC,名字很長,使用魔戒出現的詞彙,這一度造成我中譯的困擾。
▲ 圖11
Q11. 樹人 NPC 的名字還記得嗎?
A11. 我去挖了一下 po 檔,裡面有寫。那時候我看到就覺得快要哭了,好長一串。像是 Elilmaldur-Rithrandil,Muldondindal,Landunwonbam,Bolwuldelman,Laffalialomdium 等等。由於找不出恰當的翻譯,最後採用音譯。NPC 中譯有個好處,就是能與隨機招出的一般單位區隔,因為一般單位的名字是隨機配給的,目前繁中化團隊沒有對檔案庫進行翻譯。還有,我從國中開始就嘗試中文化,私下做了幾個中文化程式包(沒有發布出去,怕會惹麻煩),到現在還是不會寫程式,唉!以前很喜歡逛中文化軟體聯盟 (CPATCH),也常去對岸的一些知名大站,例如「漢化新世紀」等去看教學帖,的確有長點知識。某種程度上來講,其實對後來參與中文維基的條目翻譯很有幫助。
Q12. 軟體中文化與參與維基百科翻譯條目有什麼異同?
A12. 軟體中文化通常是翻譯比較生硬的操作介面,只有像是遊戲會翻譯比較生動的敘述。我覺得「軟體中文化」與「翻譯條目」兩者真正的差異,在於軟體中文化的語氣通常是第一人稱,只要能向使用者表達功能的使用即可,而百科條目的翻譯則是比較客觀的敘述,篇幅長,需有通盤的介紹。而且長期進行兩者的翻譯,收穫面向是不一樣的,軟體中文化偏向操作或譯詞技巧,而百科條目則是寫作與知識的增長。
關於韋諾之戰的訊息:
英文維基百科的介紹: http://en.wikipedia.org/wiki/The_Battle_for_Wesnoth
中文維基百科的介紹:http://zh.wikipedia.org/wiki/Talk:韦诺之战
臺灣繁體化成員部落格:http://wesnoth-tw.blogspot.com/2009/04/blog-post.html
關於 Poedit 的訊息:
Poedit 的 po 檔:http://jedi.org/blog/archives/004297.html
http://www.poedit.net/translations.php
http://azo-freeware.blogspot.com/2009/08/poedit-142.html
訪談者簡介
章 · 安德魯,台灣維基社群成員。自然科學與歷史人文的愛好者,對開源軟體的魅力無法抗拒,「因為你的財寶在哪裡,你的心也在那裡。」有關我的二三事:http://about.me/Ch.Andrew。
[源碼新聞] 台灣最具規模的 Ruby 程式語言大會-RubyConf Taiwan
李婉婷/採訪
Ruby 是一套開放源碼的、物件導向的直譯式程式語言,Ruby 程式語言誕生於 1995 年,是由日本工程師松本行弘 (Matz) 所開發。由於看中 Ruby 的高生產力和自然簡潔的語法,不少開發者紛紛投入 Ruby 的懷抱,2004 年時,大衛.海納梅爾.韓森開發出 Ruby on Rails 框架,使得 Ruby 更廣為人知。到了 2006 年,Ruby 語言也順利被 TIOBE 獲選為年度程式語言。
如同國外的成長趨勢,台灣 Ruby 的使用者也日益增加。2008 年 10 月 Ruby Taiwan 社群正式成立,不定期舉辦 Ruby Tuesday,力邀有在玩 Ruby 的社群朋友分享其專精的技術主題。平時每個星期二也有固定的 Rails Tuesday 聚會,讓開發者分享使用心得與遇到的技術難題,此聚會也同時是業界與開發者的媒合場所。2010 年,Ruby 程式語言大會首次在台灣舉辦,引起不小的迴響。現今台灣有許多資料庫形式的網站是使用 Ruby 的殺手級應用 Ruby on Rails 來開發,除了 Ruby 官網外,T 客邦的網頁、活動報名系統 Registrano、OSSF 的 OpenFoundry 專案管理平台 也都是使用 Ruby on Rails 來架設。
RubyConf Taiwan 是目前台灣最具規模的 Ruby 程式語言年會,今年已經在 8/26、8/27 於中央研究院人文社會科學館舉辦。之所以會舉辦 RubyConf Taiwan,其實跟 OSDC.TW (Open Source Developers' Conference, Taiwan) 主辦人簡信昌 (hcchien) 與日本知名 Ruby 講者高橋征義有很大的關係。Ruby Taiwan 社群的主持人、RubyConf Taiwan 的創辦人張文鈿 (ihower) 表示,當初想在台灣舉辦 Ruby 程式語言大會就是因為受到這兩個人的鼓勵。hcchien 一直想要邀請 Ruby 語言的開發者 Matz 來台演講,但由於 Matz 只參加 Ruby 的研討會,因此 hcchien 便鼓勵 ihower 在台灣舉辦大型的 Ruby 年會,並且在背後扮演支持與協助的角色。
而另一個給 ihower 的動力的人正是高橋征義。ihower 說,在 OSDC.TW 2009 的 lightning talk 中,高橋征義就鼓勵他說,「既然都辦了 Ruby Tuesday,那為什麼不來辦一場 RubyConf 呢?」在 hcchien 以及高橋征義的鼓勵下,2010 年就舉辦了第一次的 RubyConf Taiwan。
如同台灣年度開發者聚會 OSDC.TW 一樣,RubyConf Taiwan 活動也是由一人獨挑大樑,主要的規劃協調是由 ihower 一人來負責。去年、同時也是第一次舉辦的 RubyConf Taiwan 是跟 OSDC.TW 一起合辦,OSDC 第二天的議程主題是安排 Ruby 相關議題,在 hcchien 的幫助下,參與第二天 Ruby 相關議題的人數比預期中的多,因此原本依附於 OSDC 的 RubyConf 也在今年分離出來形成獨立的一個研討會。
今年 RubyConf Taiwan 也已經圓滿落幕,總共吸引 125 個喜愛 Ruby 的朋友共襄盛舉。對於一個年輕的程式語言社群來說,能有這樣的成果十分令人佩服。與其說是 Ruby 吸引到的人特別活潑、特別願意前來交流,倒不如說是因為 Ruby 語言獨特的開源精神加上讓開發者易於開發的特性,因而受到大家的熱愛,才會使得社群朋友願意到場分享他們的成果與心得。Matz 曾說過,開發 Ruby 的核心價值是希望能讓開發者能夠快快樂樂的寫程式。或許就是簡單的理念吸引了大家,Ruby 社群才會這麼活絡吧!
[技術專欄] 利用 FreeNAS 打造儲存設備(3)──安裝篇(由光碟升級)
Weithenn ( http://www.weithenn.org/ )/文
前言
FreeNAS 的版本升級方式有二種。第一種是由 FreeNAS 官網下載最新版本的 ISO 檔燒錄至光碟片,再設定主機由光碟機開機,當系統偵測到光碟片中的安裝映像檔,其版本較現存版本為新,系統會自動進入版本升級模式,使用者僅需依照互動對話視窗的指示步驟,重新啟動主機即可完成升級。第二種升級方式為下載 GUI_upgrade.xz 韌體檔案(不需解壓縮),再登入 FreeNAS 圖形管理介面進行版本升級即可。本文將詳細說明使用光碟片升級 FreeNAS 版本的步驟。
請注意!上述二種升級方式目前並不支援由 FreeNAS 0.7 直接升級至 FreeNAS 8.x,因為其運作架構完全不同。此外系統分割區亦產生變動,前一篇文章提到的版本 8.0 Release 至 8.0.1 BETA2 為二個 512MB 分割區,而從版本 8.0.1 BETA3 開始則為二個 1GB 分割區,所以在升級前您必須要確定您的 USB 儲存裝置或硬碟至少具備 2GB 的空間,否則即便可以順利升級至 8.0.1 BETA3 或之後的版本,升級後 FreeNAS 亦無法成功開機。
最後筆者強烈建議,在升級前除了應備份 FreeNAS 上的重要資料,也應備份您的設定檔內容,以便版本升級後可以快速恢復套用先前的設定。
實作環境
* 目前 FreeNAS 版本(i386):FreeNAS-8.0-RELEASE,僅支援英文語系操作介面。
* 升級後 FreeNAS 版本(i386):FreeNAS-8.0.1-BETA3,修正前版臭蟲並支援多國語系操作介面。
透過光碟機升級至 FreeNAS 8.0.1 BETA3 的步驟
設定由光碟機開機
前往 FreeNAS 官網下載 FreeNAS-8.0.1-BETA3-i386.iso,將映像檔燒錄成光碟片。
修改欲升級主機的 BIOS 設定,設為光碟機開機。
放入 FreeNAS-8.0.1-BETA3 光碟片並開機。此次實作的虛擬主機設定抓取 FreeNAS-8.0.1-BETA3-i386.iso 映像檔即可。
▲圖1 主機設定由光碟機開機
進入 FreeNAS 版本升級選單
當欲升級主機成功使用光碟片開機後,會先進入初始化程序,待開機選單畫面讀秒倒數完畢,會進入 FreeNAS 硬體偵測程序,通過硬體檢查後,光碟片內的 FreeNAS-8.0.1-BETA3 映像檔偵測到目前主機的版本較光碟片內的版本為舊,會出現詢問是否升級 FreeNAS 版本的選單,請選擇「1. Install/Upgrade to hard drive/flash device, etc.」項目按下〔OK〕,準備進入 FreeNAS 升級程序。
▲圖2 FreeNAS 升級選單,選擇項目 1
選擇升級 FreeNAS 版本的硬碟
接著畫面顯示 FreeNAS 於檢查硬體相容性時偵測到的主機硬碟。我們為該虛擬主機配置二顆硬碟。圖3 顯示請您選擇目的地硬碟,則選擇「da0 VMware Virtual disk 1.0 --2.0 GiB」並按下〔OK〕。
再次提醒:務必事先確定 USB 儲存裝置或硬碟至少具備 2GB 的空間,以免升級後無法開機。
▲圖3 選擇目的地硬碟 2.0GB(da0)
進行 FreeNAS 升級程序
選擇目的地硬碟後,畫面會詢問您是否要升級剛才選擇的硬碟 2.0GB(da0),按下〔Yes〕。
FreeNAS 再次警告目的地硬碟的資料將被清空(警告訊息 1.),且該硬碟其它未使用的空間將無法進行分享設定(警告訊息 2.)。了解警告訊息後按下〔Yes〕。
系統開始進行升級程序,將光碟片內的 FreeNAS-8.0.1-BETA3 資料寫入剛才選擇的 2GB 目的地硬碟,如圖5 您可以看到升級進度百分比、寫入資料的速度、已花費的升級時間、預估剩餘升級時間等資訊。一般來說 FreeNAS 版本升級作業全程不到 1 分鐘。
▲圖4 是否對目的地硬碟 da0 進行版本升級
▲圖5 FreeNAS 警告訊息及開始升級的進度資訊
FreeNAS 升級完畢
由於 FreeNAS 是嵌入式 (Embedded) 的設計概念,因此所有設定項目其實是回存至相關的資料庫檔案 (Database File),而非單純寫入設定檔 (Config Files),所以讀者應儘量使用圖形管理介面操作後續步驟,才能將相關設定值正確寫入相關資料庫檔案;儘量避免使用指令模式直接修改設定檔內容,以免 FreeNAS 重新啟動後設定值消失。
當 FreeNAS 升級程序完成資料寫入後,會顯示已將相關資料庫檔案更新至目的地硬碟 2GB (da0),並提示您取出光碟片後重啟主機,按下〔OK〕後會回到一開始的初始安裝畫面,接著選擇「3. Reboot System」,按下〔OK〕重新啟動系統,此時記得退出光碟片。
雖然使用光碟片升級會保留之前的設定值,但仍建議您在升級前備份好相關資料及設定檔以防萬一。
▲圖6 升級程序提示已保存資料庫檔案並會進行遷移(因為分割區大小由 512MB 改為 1GB)
▲圖7 升級程序完畢,系統提示應重新啟動主機
▲圖8 選擇重新啟動項目後確定重新啟動 FreeNAS 主機
新版本 FreeNAS 控制台畫面 (Console)
此時 FreeNAS 主機將會重新啟動 2 到 3 次,因為整個系統分割區的架構已經由原來的 512MB 變更為 1GB 的空間,FreeNAS 還要保留並遷移之前所設定的資料庫檔案,最後是修正相關臭蟲問題等作業。
此次升級實作中我們仍然將 FreeNAS 主機置於具有 DHCP 伺服器的網路,所以主機開機完成後仍能藉由發出 DHCPDISCOVER 廣播封包,順利取得區域網路的 IP 資訊。系統亦提示您可將 http://10.10.25.78 網址 (URLs) 貼至您的瀏覽器,以登入圖形化操作介面。至此 FreeNAS 版本升級作業全部完成。
眼尖的讀者應該已經發現 FreeNAS 控制台畫面中的選項較前版多了 2 個項目,舊的 FreeNAS 8.0 RELEASE 版本其控制台畫面僅有 9 個選項,而升級後的 FreeNAS 8.0.1 BETA3 版本控制台畫面增加了 Reset WebGUI login credentials、Reset to factory defaults 2 個項目。美中不足的是此版本若安裝於虛擬主機,在 vSphere Client 中,VMware Tools 項目狀態仍是部份功能運作正常的「Unmanaged」。
已有人在 FreeNAS 臭蟲回報系統中提及此問題 FreeNAS 8 Freezing On VMware ESXi 4.1,開發團隊承諾會在下一個正式發行版本進行修正(筆者猜測應為 FreeNAS 8.1 Release 版本)。
▲圖9 升級後的 FreeNAS 控制台畫面 (Console)
查看升級後 FreeNAS 分割區狀態
進入圖形操作介面以前,請先查看升級後的 FreeNAS 分割區是否真的由原本的 512MB 擴大至 1GB 。請於 FreeNAS 控制台畫面 (Console) 輸入數字【9】進入 Shell 模式,接著輸入「df -h」指令查看目前 FreeNAS 主機的檔案系統掛載狀況。如圖10 所示,目前檔案系統為 1GB 分割區運作(另一個 1GB 分割區在預設情況下是看不到的),表示我們已經順利將 FreeNAS 版本及其分割區空間升級。輸入「exit」指令即可回到 FreeNAS 控制台畫面。
▲圖10 查看升級後 FreeNAS 檔案系統掛載情況
登入 FreeNAS 圖形操作介面
順利登入圖形管理介面後,可以在【System Information】項目內看到 FreeNAS 主機的相關資訊,作業系統版本(OS Version)由先前採用的 FreeBSD 8.2 Release Patch 1 更新為 FreeBSD 8.2 Release Patch 2,並可再次確定 FreeNAS 版本(FreeNAS Build)為升級後的 FreeNAS-8.0.1-BETA3-i386 版本。
▲圖11 FreeNAS 系統資訊
管理介面正式支援多國語系
在升級前的 FreeNAS 8.0版本中,圖形操作介面僅支援英文 (English) 語系,FreeNAS 8.0.1 BETA1 之後的版本才加入圖形操作介面的多國語系支援,目前我們已經升級至 FreeNAS 8.0.1 BETA3,當然能順利切換圖形管理介面的操作語系。
先切換至項目【System】,點選【Settings】,在【General】頁籤內【Language】下拉選單中選擇所需的語系。若要將操作畫面切換至正體中文語系,請切換至該下拉選單的最後一筆【Traditional Chinese】,按下〔OK〕,再使用組合鍵「Ctrl + F5」重新整理頁面,或者登出後重新登入,圖形操作介面便會變成熟悉的正體中文。
▲圖12 FreeNAS 圖形操作介面,正式支援多國語系
不過在此建議讀者先別急著把圖形操作介面改成正體中文,因為在下一篇文章中要實作的升級方式是採用 GUI 圖形介面進行升級,筆者測試後發現,若操作介面語系改為正體中文,將找不到上傳韌體檔案所需的暫存空間,相信 FreeNAS 開發團隊會在之後的版本修正此錯誤。
▲圖13 正體中文語系操作介面無法進行韌體檔案更新
協助本地化語系翻譯
FreeNAS 在圖形操作介面上已經正式支援多國語系了,若您覺得圖形操作介面的正體中文翻譯不盡理想,或者您也想為本地化翻譯工作盡一份心力,可以至 FreeNAS 翻譯系統網站註冊一個帳號協助翻譯。目前正體中文翻譯工作在相關熱心人士的努力下已經完成 99%。
▲圖14 FreeNAS 本地化翻譯系統
▲圖15 正體中文翻譯進度
待續
本文至此已經詳細說明如何透過燒錄 FreeNAS-8.0.1-BETA3-i386.iso 映像檔升級 FreeNAS 版本、驗證此版本確實將檔案系統的分割區大小由 512MB 提升至 1GB、說明如何切換圖形操作介面的語系,最後介紹如何參與 FreeNAS 本地化翻譯。
下一篇文章將透過下載 FreeNAS 官網上的 FreeNAS-8.0.1-BETA4-i386-GUI_Upgrade.xz 韌體檔案,由瀏覽器登入 FreeNAS-8.0.1-BETA3 版本的 FreeNAS 主機,以圖形介面升級版本至最新發行的 FreeNAS-8.0.1-BETA4。
[技術專欄] Ruby on Rails 特快車-Scaffold 篇
麥克阿忠/文
前言
快速網站開發是 Ruby on Rails 的最大特色。雖為網站開發的後起之秀,但在短時間內已被國內外許多知名網站所採用,例如台灣的 T客邦及 Registrano 等。
於前篇文章,筆者介紹 Ruby on Rails 初步環境建置後,本篇將說明如何快速建立擁有新增/刪除/修改基礎功能的範例網站。
快速建立網站基礎模板
讀者可以使用 Ruby on Rails 提供的 "rails" 指令快速建立網站基礎模板。下列指令將建立名為 "demo" 的模板。
$ rails new demo
create
create README
create app/models
create app/views/layouts/application.html.erb
create config
create config/routes.rb
......
......
成功後,切換至上一步驟所產生的 demo 目錄下。
$ cd demo
接下來我們可以使用 Ruby on Rails 提供的 "bundle" 指令,檢查 Rails 的 Gemfile 是否已具備運作基礎環境所需的條件。
$ bundle
如果有發現缺少的套件," bundle" 會提醒讀者安裝。如下列情形,
Could not find gem 'sqlite3 (>= 0)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.
然後輸入 "bundle install" 開始自動安裝這些缺少的相依性套件。
$bundle install
Fetching source index for http://rubygems.org/
Using rake (0.9.2)
Using abstract (1.0.0)
Using activesupport (3.0.9)
Using builder (2.1.2)
Using i18n (0.5.0)
Installing rack-test (0.5.3) from .gem files at /Users/mikel/Code/app/vendor/cache
Installing rails (3.0.0.beta) from .gem files at /Users/mikel/Code/app/vendor/cache
Using activemodel (3.0.9)
Using erubis (2.6.6)
...
...
...
Using rack (1.2.3)
Using rack-mount (0.6.14)
Your bundle is complete!
使用 "scaffold" 快速建立 CRUD 模板
本篇操作將以「訪客留言板」為範例,利用 "scoffold" 指令快速建構名為 "guestbook" 的模板,且該模板具有兩個資料庫欄位的設計,一為 string 型態的 "name",另一為 string 型態的 "content"。
$ rails generate scaffold guestbook name:string content:string
invoke active_record
create db/migrate/20110830102544_create_guestbooks.rb
create app/models/guestbook.rb
invoke test_unit
create test/unit/guestbook_test.rb
create test/fixtures/guestbooks.yml
route resources :guestbooks
invoke scaffold_controller
create app/controllers/guestbooks_controller.rb
invoke erb
create app/views/guestbooks
create app/views/guestbooks/index.html.erb
create app/views/guestbooks/edit.html.erb
create app/views/guestbooks/show.html.erb
create app/views/guestbooks/new.html.erb
create app/views/guestbooks/_form.html.erb
invoke test_unit
create test/functional/guestbooks_controller_test.rb
invoke helper
create app/helpers/guestbooks_helper.rb
invoke test_unit
create test/unit/helpers/guestbooks_helper_test.rb
invoke stylesheets
create public/stylesheets/scaffold.css
接著可以使用 "rake" 指令來建立對應的資料庫設計。下列步驟會自動在資料庫中建立名為 "guestbooks" 的資料表,並且包含名為 "name" 的 string 型態欄位,以及名為 "content" 的 string 型態欄位。
$ rake db:migrate
(in /home/myhome/project/demo)
== CreateGuestbooks: migrating ===============================================
-- create_table(:guestbooks)
-> 0.0009s
== CreateGuestbooks: migrated (0.0010s) ======================================
最後,啟動 Rails 網頁應用伺服器。
$ rails server
成功之後,即可開啟瀏覽器,並瀏覽 "http://localhost:3000/guestbooks"。類似的結果如下圖。
▲ 圖1 guestbooks 的網頁呈現
至此已快速完成訪客留言板的基礎功能,並可以嘗試點選網頁中的 "New Guestbook" 來新增資料。
▲ 圖2 在 guestbooks 中新增資料
此外,讀者也可以試著操作 "Show" / "Edit" / "Destroy" 等功能。
"Scaffold" 使得 Rails 能夠快速完成基礎的新增/修改/刪除功能,所以接下來讀者只需要專注於呈現樣式的修改即可。
延伸補充
Scaffold 使用的時機
Scaffold 提供自動產生 Model、Views 和 Controller 程式碼的功能,得以快速完成簡易的 CRUD 功能的模板。雖然如此,但是建立後的程式碼不一定符合各種專案的需求,這也是有經驗的 Rails 程式設計師盡量少用 "scaffold" 的原因。所以並不是任何功能都需要藉助 "scaffold",讀者仍需視專案需求來活用 "scaffold"。
CRUD
CRUD 指的是 Create、Read、Update、Destroy 四項資料庫基本操作。這些操作分別為:
* Create - 新增資料。
* Read - 讀取資料。
* Update - 更新資料。
* Destroy - 刪除資料。
Rails 的 MCV 架構
Rails MCV 架構如下圖:
▲ 圖3 Rails MVC 架構(圖片來源:http://www.ils.unc.edu/~uskala/MVC.htm;作者為 uskala)
MVC 設計模式是現今網站開發常見的基礎架構。此架構分成三個部分:
* Model:資料與程式功能邏輯層。例如資料庫操作。
* View :網站頁面呈現層。
* Controller:負責 Model 與 View 的協調與溝通。例如接收到瀏覽器的要求後,可先向 Model 取得資料,再由 View 來整合輸出樣式。
當然,除了 Rails 外,也有許多網站開發框架 (Web Framework) 採用,例如 PHP 的 CakePHP,Python 的 Django。
Rails 的目錄結構
Rails 的目錄結構如下圖:
▲ 圖4 Rails 目錄結構
Rails 會遵循 MCV 的架構來分別管理程式碼與資料的存放位置,並搭配 URL Routing 的概念處理網頁請求。這樣的目錄要求,使得不同功能的程式碼可以依功能分別置於不同的目錄下,而不同的網站元素,如 CSS 及 Javascript,也得以分別管理。如此,整個網站的專案結構將更清晰、更容易掌控。
檔案目錄與用途如下表:
檔案/目錄 | 用途 |
---|---|
app/ | 放置 Rails 一些 MCV 架構的目錄,底下會有 Controllers、models 和 views 目錄,未來所編寫的程式都會在這個目錄下編輯。 |
config/ | 整個專案的運作設定檔、網址列的路由規則、資料庫帳號密碼的設定等等。 |
db/ | 資料庫的結構概要,未來在多人開發的資料庫編修方面,在這裡就會變得很重要。 |
doc/ | 說明文件放置處。 |
lib/ | 若有自定的 Module 和類別檔案,放在這裡可以讓每個 controller 都用得到,不必再另外指定路徑 include file。 |
log/ | 應用程式記錄檔。 |
public/ | 圖檔、JavaScript、CSS 和其他靜態檔案擺放的地方。 |
script/ | 執行 Rails 的指令。 |
test/ | 用來執行臨時測試一些邏輯資料並不影響專案運行。 |
tmp/ | 放置暫時性的檔案。 |
vendor/ | 存放第三方外掛的目錄。 |
Gemfile | 設定 Rails 運作時會使用哪些 Gems 套件,用 bundle install 會依照裡頭的設置來安裝套件。 |
README | 讀我檔,一般簡要的說明安裝方法。 |
Rakefile | 載入一些 Rake 自動化處理的任務。 |
config.ru | 啟動伺服器設定。 |
結語
本篇文章希望讀者對於 Rails 能有初步的認識,而下一篇專文也將為讀者介紹更多 Ruby on Rails 提供的功能。
作者簡介
麥克阿忠,資深網站程式開發者,興趣是攝影。目前擔任 Ruby on Rails 網站開發員,主要使用 Ubuntu Server 進行 Web 應用程式開發。
作者部落格 http://about.me/MichaelChen520
歡迎對 Ruby 有興趣的同好前來交流指教。
[自由文化] 「Unconference」係蝦米碗糕?原來是活潑好玩的新型會議
COSCUP 部落格 ( http://blog.coscup.org/ )/文
COSCUP 2011 第二天 (8/21) 的議程有「 Unconference」這個詞彙,不曉得大家有沒有注意到呢?其實 Unconference 的意思是指「非正式會議」,許多人並不喜歡傳統研討會那樣拘謹嚴肅、行禮如儀似的「大拜拜」流程,呆板且過於形式化,因此有了 Unconference 這類新型會議。活潑有趣的 Unconference 通常是在一個寬敞的空間舉行,沒有既定的議程,在會眾踴躍的投遞完想要分享的要點之後,由會眾自行決定想聽的講題,因此每個人都有可能是講師,而且你事前完全無法得知 Unconference 會出現什麼樣千奇百怪的新鮮議題!簡單來說,Unconference 的活動內容全都是由一群熱情的會眾主動去共同規劃完成的。
Unconference 的雛型是從技客 (Geek) 圈內開始使用。而 Unconference 名詞則在 1998 年的 XML 開發者年會 (XML Developers' Conference) 上,首次出現。O'Reilly Media 從 2003 年開始舉辦採用「 開放空間會議技巧」 (Open Space Technology, OST) 形式的 Foo Camp,由於 Foo Camp 是採用封閉的邀請制,因此在 2005 年刺激了第一個對外開放的 BarCamp 產生,BarCamp 被形容為「對於 Geek 而言是一場開放、歡迎、一年一度的盛事,帶著 Wifi 與絞盡他們的腦汁一起去野外露營個幾天」。而著名的軟體開發者 Dave Winer 在 2004 年 BloggerCon 上成為 Unconference 的有力推手,促使 Unconference 的流行與日漸普及。
台灣近年來也開始漸漸有一些活動形式以 Unconference 方式進行。例如「2007 為維基狂」(Wikimania 2007) 的「公民新聞學研討會」就是採用 Unconference。而 2011 台灣駭客年會 (HIT2011) 的「My ShowTime!」也是 Unconference 的形式。
Unconference 基本上是採用 OST 方式進行,其中扼要的「四大原則」分別是:
1.「適客參會」(Whoever comes are the right people)
2.「適事發生」(Whatever happens is the only thing that could have)
3.「適時而啟」(Whenever it starts is the right time)
4.「適機而止」(When it's over, it's over))
那麼 COSCUP 2011 要怎麼跟大家玩 Unconference 呢?請參閱 COSCUP Blog Unconference 進行方式
參考資料
Greenhill, K. and Wiebrands, C. (2008) The unconference: a new model for better professional communication. In: LIANZA Conference 2008: Poropitia Outside the Box, 2-5 Nov. 2008, Auckland, N.Z..
http://researchrepository.murdoch.edu.au/624/
Dave Winer (2006, 25 May), BloggerCon Unconference Format. BloggerCon.
http://www.bloggercon.org/iv/format
許逸臻, CPF / Laura Hsu, CPF,〈顛覆會議─UNCONFERENCING風潮〉,台北:開放智慧,2006年6月29日。
http://www.open-quest.com/article/detail.asp?ArticleId=9
張左之,〈Unconference:顛覆傳統會議模式〉,上海:上海科學技術情報研究所,2006年8月18日
http://www.libnet.sh.cn:82/gate/big5/www.istis.sh.cn/list/list.aspx?id=3213
報主的話
報主的話: 更多自由軟體相關新聞及文章,請按此閱讀或訂閱。 |