ownCloud Contributor Conference Berlin 2015

grouppic2015

今年8月,我再度參加在柏林舉辦的 ownCloud Contributor Conference ,雖然名為 Conference ,但是活動大部分的時間是黑客松。

ownCloud 是一個線上檔案儲存分享的軟體,用一句話講就是 open source 的 Dropbox , 不過最近除了檔案儲存和分享,也很著重在檔案周圍的應用,像是音樂播放器、圖片管理。

我開始參與 ownCloud 是2年前,我想在學校自己架 ownCloud 開始的,當時大概還是 ownCloud 6 吧,問題很多,所以我就自己修掉問題,發了人生中第一個 issue report 和 pull request ,有了第一個,後來就有了第二、三、四個。

活動前一天,我去幫忙主辦人搬活動期間的飲料和各種物資,有各種飲料、餅乾、起司、火腿、麵包,還借了一個冰箱!

我們的活動場地是柏林工業大學(以下簡稱 TUB)數學館,是個熟悉的地方,活動在這邊辦好幾年了。聽主辦說 TUB 每一年都讓我們免費用場地,有好幾間教室、2間大階梯教室,而且每間教室還幫我們架好有線網路、電源,原因是 TUB 自己有一個非常大的 ownCloud 安裝,全校的學生和教授都在用。

活動第一天是早上是 Angela Richter 的 Keynote ,主題是 “How artists can help create awareness of technological dangers” ,講者是一位舞臺劇編劇。她在製作《伊底帕斯國王》的期間發現 Scientology ,並為此很感興趣,閱讀了很多資料,而其中很多資料都是 WikiLeaks 洩漏出來的。後來她又進而對 WikiLeaks 產生興趣,想製作一齣以 WikiLeaks 為主題的舞臺劇,她很幸運地在 Ebay 買到跟 Julian Assange (WikiLeaks 創辦人)共進午餐的機會,Assange 對這個舞臺劇也很感興趣,跟她對談了好幾次。她開始參加各種聚會,像是 HOPE (Hackers On Planet Earth) 和 CCC (Chaos Communication Congress) ,認識了很多駭客。

接觸 WikiLeaks 之後,她發現更多關於吹哨者 (whistleblower) 的事情,史諾登事件爆發之後,她決定製作另一齣以吹哨者為主題的舞臺劇,希望藉此提倡資訊安全、政府監控、言論自由等議題。這一齣舞臺劇就是這次演講的重點。

她的演講引起臺下很多人的共鳴,因為,這正是德國資訊圈(駭客圈)最重視的事情——隱私權與言論自由。

從一般人的觀點來看,可能會覺得很奇怪,Google Drive 那麼好用,又不用錢,幹嘛還要自己花時間架一台雲端檔案儲存?甚至是台灣的資訊圈,對於隱私權和言論自由的重視程度也不及歐美。

我曾經被一個台灣人問過:「如果每個人都有高度隱私,那警察要怎麼抓罪犯?」

在台灣,「我沒犯法,沒什麼好藏的,要看就給他看,沒什麼好怕的」的想法也很常見,這是對於網路監控最常見的反應,還有一個維基百科頁面專門介紹。眾多資安界人士對此作出反駁,Bruce Schneier, Moxie Marlinspike, Glenn Greenwald

註:我還在 Schneier 的部落格找到一個論文的連結 “’I’ve Got Nothing to Hide’ and Other Misunderstandings of Privacy”

我整理節錄 Schneier 和 Marlinspike 的論點如下:

Marlinspike 說,想像一個法律百分之百會被執行的世界,所有的罪犯都會被找到,所以也就沒有人會進行違法的舉動,可是我們的社會其實就是不斷地打破規則,如果沒有那些違反規則的人,我們也就不會發現規則本身的問題。在這個想像的世界裡面,沒有人會進行同性戀行為或是使用大麻,可是如果沒有人會進行同性戀行為或是使用大麻,我們怎麼知道為什麼要禁止同性戀、使用大麻?沒有這些人,我們就不會發現法律的不合理處,社會就不會進步。

過去,執法比較困難,要調查一個人必須實際派一個探員去跟蹤他,因此大規模監控不可能。現今,每個人手上的智慧型手機就是追蹤器,而大規模監控也早就是進行式了,在加上各種自動化程式,找到每個人的把柄變得輕而易舉,而且幾乎每個人都有,如此複雜的法條讓你根本就不知道什麼是罪,什麼不是,舉例來說,你知道在美國持有一定大小以下的龍蝦是聯邦罪行嗎?到這個地步,要處罰誰已經變成完全選擇性的問題,看誰不爽就翻他的底細找個理由定罪。

Schneier 則是從另一個層次來說:隱私是人類基本的尊嚴。很多人以為隱私的重要性是在於隱藏「錯誤」的事情,可能是違法的、或是不被社會所喜歡的,但不是,隱私是基本人權。隱私可以防止當權者濫用權利,俗話說得好,「誰來監控監控者?」、「絕對的權利帶來絕對的腐敗」。很多人誤以為隱私議題是「治安對抗隱私」,但其實應該是「自由對抗獨裁」。

拉回來說,台灣受於中華文化的影響,似乎比起歐美人更相信政府,相信政府會維持治安、照顧經濟(父母官的概念),而不是限制他們的自由。而我覺得事實上台灣政府的作為也比一些歐美國家溫和收斂許多,至少不會像美國發生警察濫權,或是政府千方百計想要竊聽人民的事情,所以台灣人大多數不會覺得政府在控制他們,也就對隱私不那麼重視。(直接講就是,我不保護也不會有人來侵犯,所以保護的意識就沒有那麼強烈了吧)

而在這個強烈的 “Own your data” 的意識下,ownCloud 這類的軟體會如此熱門也就可以理解了。

——

ownCloud Contributor Conference 活動主要分成2個部分,週六和週日有演講及 workshop ,而週一到週四則是黑客松。

演講的部分,除了 Angela Richter ,週日早上的講者是 Holger Angenent ,介紹 sciebo ,是一個基於 ownCloud 的大型雲端儲存服務,提供給德國的大學及研究機構。不過我其實沒有聽到這場,當時我在演講廳外的報到區幫忙顧攤位,一邊跟另一位希臘貢獻者聊天。

我參加的幾個 workshop 主要是在介紹如何貢獻 ownCloud 、ownCloud 的架構,還有幾個資訊安全、UI/UX 設計的 workshop 。

我在 ownCloud 的貢獻一開始是以修核心的 bug 為主,後來我原本想幫他們加使用者註冊功能,我做完之後送 PR ,他們才說希望實作成一個 app (在 ownCloud 術語裡面,app 其實比較接近 plugin 的意思),所以我才慢慢開始研究怎麼寫 ownCloud app ,今年 5 月的時候,才釋出我的 Registration app

去年寒假,我拉了一個熟悉 Angularjs 的朋友,跟我一起來改 Music app ,當時的 Music app 使用 SoundManager2 ,使用 Flash player 來播放 MP3 ,但是因為我的音樂大部分都是 FLAC 格式,沒辦法用 Music app 播放,因此決定想要利用 Aurora.js ,來達成可以在瀏覽器裡面直接播放 FLAC 及其他格式的音樂。最後因為 chunking 問題卡住,Music app 從 ownCloud 抓檔案的 URL 不支援 chunking ,所以 Aurora.js 必須把檔案完整下載完才能開始解碼播放,我們覺得這樣實用度大大降低,因此放棄了完成的 code 。

直到去年我參加 ownCloud conference ,跟 Music app 的主開發者 Morris 聊過之後,得到他的幫助將檔案的 URL endpoint 改成 ownCloud 提供的 WebDAV endpoint ,這是支援 chunking 的 endpoint ,並且在他的幫助下把寒假完成的 code 正式 merge 進 Music app 。

5天的黑客松,在 ownCloud 的 Security Officer (?) Lukas 的 workshop 上,我問了他一些 ownCloud public API (給 app 使用的 API )安全性方面的問題,譬如說怎麼啟用內建的 CSRF 保護,他也稍微幫我 review 過我的 app 。

還有像是修正 app 的 routes 設定正確地使用 ownCloud app framework 等等,中間也聽到很多 ownCloud 開發的內幕,譬如說為什麼會有某些骯髒的低效能設計、未來打算怎麼改之類的。

Music app 的部分,去年把 SoundManager2 換成 Aurora.js 之後,OGG 格式的播放就一直是壞的,因為 ogg.js (Aurora.js 後端的 Javascript decoder )是壞的,我很久之前就回報給作者但是他沒打算修的樣子。今年我為了要重新支援 OGG ,決定再把 SoundManager2 拉進來,可是又要維持 FLAC 可以播,所以我做了一個 wrapper ,把 SoundManager2 和 Aurora.js 包起來,依照檔案格式決定要用哪一個。其實之前從來就沒有認真學過 Javascript ,基本上是用對高階語言的基本認知在寫的,還好 ownCloud 團隊裡面也有 Javascript 大師 Vincent ,回答了我很多問題。

Morris 也跟我講了 Music app 未來的計劃,要從 Angularjs 轉移到 Backbone.js ,原因是太少人會用 Angular (我自己就不會用), 太難學,太難 debug ,提高了貢獻者的門檻。我有點訝異對於他們來說,貢獻者門檻是如此重要的考量,願意為了降低門檻而重構。

說到這個,藉由這次的活動,我也得以一窺大型 FOSS 專案的運作,和他們的態度。除了上面那件事之外,有次聊天時,Vincent 也提到,ownCloud 的開發者們都很分散,München, Stuttgart, Berlin, Nürnberg 都有一些人,但他們除了一年一度的 contributor conference,就沒有其他聚會了(線上會議也沒有),他們很重視這個社群的透明性,所有的討論都應該公開進行並且被記錄,寧願犧牲溝通的方便性也要保持公開透明,好讓任何人都可以參與。

——

在黑客松期間非常的快樂,讓我想起高中暑假那段每天從早到晚都跟夥伴一起寫 code 的日子。上大學之後,技術能力提升了,人脈廣了,見識也多了,經常遇到有趣的 project 、各種活動、各種靈感,事情越接越多。事情都很有趣,但事情一多,就必須不斷的 context switch ,那種單純地寫 code 學習,專注在同一個計劃的日子卻少了。在國外參加黑客松,正好給自己一個理由拋下手邊所有的計劃,只專注在 ownCloud ,一旁的夥伴大家一起致力於同一個計劃,互相幫忙的那種感覺,好久不曾有過了。

這正也提醒了自己,回去之後,每隔一段時間要出去獨自旅行,或是閉關幾天專注在同一個計劃上,才能不忘接觸程式最初的感覺吧。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s