上一封文章中提到,COSCUP 大量的利用線上工具合作,難得透過實體會議的方式進行會議。你很難想像有多少枝微末節需要決定,這也造就了驚人的郵件數量,以及大量利用線上工具完成溝通工作。

我自己最近幾年已經習慣透過線上工具與從來沒有見過面的人合作,甚至這些合作對象常待在不同的地理區域、時區。自己對於這種工作模式相當熟悉,但是團隊中還是有人習慣利用傳統電話、會議的方式來討論事項,完成工作。

私認為,更有效的利用線上工具完成工作,會變的越來越重要與普遍。至少在開源社群中相當重要。

在籌備過程中,因為與 GNOME.Asia Summit 合作的機會,在每週一次的線上 IRC 會議中認識了 Stormy PetersGNOME Foundation 的 Executive Director,在 GNOME 基金會負責實際營運、行銷等工作。也就是每日都必須與開源社群中的夥伴共事合作,她的經驗顯然很值得參考。

從她個人的 blog 中,我看到兩篇很值得推薦給社群朋友參考的文章,可以有效提高在開源社群中進行線上合作的生產力。五月時已經分享給 COSCUP 團隊,以下快速的翻譯成中文,詳情請見原文

  • 12 tips to getting things done in open source (十二招在開源世界搞定事情的方法)
    • 準備好做很多事。只有身體力行才能說服別人,這件計畫是一件有趣且值得投入的事情。
    • 相信自己被授權做事。如果大家都對你的發想表示正面態度,請視為「同意」,動手去作。
    • 盡早招募其他人。盡早分享你的想法給其他人,讓他們參與並覺得這也是自己的主意,如此他們也會視為己出的主動貢獻。
    • 別擔心無法取得功績 (Credit)。給別人更多讚賞,多過你自己所獲得。完成你的想法,比取得名聲更重要。社群中所有的事情都會是被公開紀錄的,你會獲得你該有的信譽。
    • 加入對話。許多人透過郵件以外的工具交換意見,許多小想法或進展是在其他管道成型的,例如社交網站,加入他們的談話。
    • 高效率的管理大量資訊。學習快速分類、消化大量的郵件與資訊。
    • 回信給全部的人。對團隊保持資訊透明是非常重要的事情。
    • 為人著想。大量郵件中常常使人漏掉事情,有時候導致誤解或覺得遭到冒犯。感到煩亂時,請多體諒別人。
    • 與人見面。見面三分情。有機會見面聊天,你會更容易透過虛擬工具理解一個人。(在台灣, COSCUP 是你最好的選擇之一)
    • 做你自己。盡可能讓你參與事情的動機透明,這樣會提高別人對你的信賴度。不妨適度表達你個人的意見與立場。
    • 求助。社群中有很多人願意幫忙,只要你分享完整計畫,讓別人知道何處可以幫忙。
    • 展現你的熱情。
  • 10 skills to master to get things done online (掌握十招線上搞定事情的技巧)
    • 掌握郵件。
      • 碰每封信一次。保持空收件夾,管理好代辦、追蹤郵件。
      • 使用支援討論串的郵件軟體,讓你可以方便跟上討論前後文。
      • 使用郵件過濾工具,分開不同的郵件列表的信件。
      • 只在特定時間處理郵件。
      • 持續研究並嘗試增加效率的方法。
    • 學習使用線上工具。
    • 學習找資訊的方法。弄清楚歷史郵件的搜尋方式、文件的存放位置。
    • 觀察事情被完成的方式。不同社群有不同完成事情的方法,如果你發現自己的發言沒有人理會,很可能是你弄錯了社群的文化。
    • 保持快速回應。線上協作時,遲緩效應會成倍數成長。
    • 知會團隊。讓團隊知道非線上的協議,如果你代表團隊做出決議,務必讓大家都知曉。
    • 知道何時該離線協議。有時候,一些初步的想法,最好先探尋過幾位信任夥伴的意見,再公開討論。但是請注意,都透過離線協議是無法讓讓大家都接受且同意的。
    • 電話會議的注意事項。注意每一個人都要可以順利撥入,更要注意語言隔閡。如果你發覺電話會議中有人無法完全理解或有效溝通,請改用其他方式。
    • 看懂「緘默」。有時郵件可能不會得到任何回應,在缺乏肢體語言提示的狀況下,你要學會看懂沉默的原因。
    • 學習完成的事項。花點時間觀察、詢問並了解專案的狀態。如果你總是提出一些已經討論過的事項,別人可能會覺得你不願投入。

這只是一篇個人感想與經驗分享,提供一些幕後經驗與感想給來年工作人員參考。COSCUP 2010 會後總結文與活動數據,將另行發布於 COSCUP 官方 blog.

9/26 傍晚召開過 COSCUP 檢討會議,這應該是 COSCUP 2010 最後一次的實體會議,接下來就是推坑明年總召跟 COSCUP 2011 的籌備會議了吧。檢閱了一下今年籌備過程中的疏失,以及可以改善的地方。比照去年慣例,又是一篇長達 12,951 個字的檢討文,整理出一百條檢討事項。

回想自己花了比原訂更多的時間的籌備活動,除了原本接下的募款工作外,五月起,也兼任總舖師 (Chief Operating Officer) ,分擔總召 Jouston 的工作,擔負起籌備大食團的工作。實質包含了實際規劃、執行,以至於工作時間爆增,投入了比預期中多出許多的時間,但能夠與一群熱血的同伴一起不求報酬的籌辦大拜拜活動,能夠稍稍的將心中的熱血感染給其他人,時間上的投資也算划得來。

參與 COSCUP 事前絲毫不敢妄想投稿演講,活動第一天也戰戰兢兢保持待命狀態,但團隊志工表現傑出。到第二天就已落下手機與無線電,愉快的待在會場內聽完一兩場議程。

回頭來看一下今年的工作紀錄,從一月起個人總共投入在籌辦工作已超過 650 小時,從比例來看算是今年的主要工作。雖說最後活動順利舉辦,但其實不能說自己成功的完成任務,籌備過程中遇到許多挑戰與困難,個人更有許多值得反省與檢討的事項。

但與其說遭遇挫折,不如說體驗了一場很有趣的旅程。本文略談今年籌備時期所遭遇的幾個挑戰,以及參與過程從所有志工中所學習到的心得。

挑戰一、設定活動規模

依照往年慣例,COSCUP 到了第五年已經連年成長,繼去年短短時間內 450 人報名後,COSCUP 2010 一開始就預期會繼續成長,甚至總召也喊出要辦到七百人以上。

Jouston: 「話說回來,若是可以辦到700人以上,我就在2010慶功宴上倒立做伏地挺身。」 —2009/08/24, 3:00AM (GMT+8)

這個目標設定一開始就造成很大的經濟壓力,為了維持社群大拜拜的傳統,希望盡可能避免一切造成會眾不願出席的門檻,包含報名費、地點、交通、食物等。

又 COSCUP 幾乎不(願)仰賴公部門資源,於是便必須努力從私部門中取得贊助。年初時,概估一算總預算恰好破百萬。已經算不清活動一開始時,有多少人質疑我「嘿,COSCUP 真的募得到這麼多錢嗎?」我也只能苦笑說「盡力囉。」

募款的工作就是要將 COSCUP 賣掉,雖然已經有往年建立的信譽與人脈,依然必須端出好菜才行。為了成功煮出一桌大拜拜用的好菜色,議程組工頭 BobChao 與總召 Jouston 的協助之下,議程跟銷售組在年初就定下了整個活動的主題為 HTML5,並依照這個主題拉出幾條議題主軸。

正巧到年中時,相關技術與發展受到大量關注。幸運的是,贊助商頗能接受類似的會議主題,議程組跟銷售組又能妥善的調整商業議程與一般議程的三分之一比例,並積極與贊助單位講者協議演講內容。雖說為了銷售,略為調整了議題結構。但會後的聽眾問卷回應,仍相當正面。甚至今年獲選為最受歡迎的演講是贊助單位的演講,而不是社群演講!

為了能夠順利達成總募款目標,不得不調整了各等級額度,也因此募款期間,也受到贊助單位的壓力,質疑贊助金額上漲。

所幸各長輩最後仍給予大力支持,最後的募款成績高於原訂目標,更滿足了為來年留下籌備基金的額外目標

挑戰二、國際合作

今年比較特別的是與國際社群 GNOME.Asia Summit 主辦。起因是一月底、二月初 Lloydagauipingooo 等人到北京探訪當地社群,認識了 GNOME.Asia Summit 的主辦團隊,於是帶回了資訊與一份會議記錄。在團隊的內部進行討論 (Jouston 因工作請假, 二月期間由我代理總召),經過了一整個月的探尋與遊說,在團隊有餘力不反對的情況下,於 2/25 正式通過爭取協辦 GNOME.Asia Summit 。由 pingooo 草擬一份提案書,並在四月初提交給 GNOME.Asia Summit,到五月初收到 GNOME.Asia Summit 籌備單位回覆同意合作。

而 COSCUP 本身的募款與宣傳已經從四月啟動。顯見決策延遲造成時間不足的壓力,且國際合作這件事情對團隊的溝通成本造成很大的負擔。除了相對應的責任與義務外,雙方團隊的採取不同語系的溝通方式,也對 COSCUP 團隊內部疊起一層溝通的屏障。考量於 COSCUP 光工頭與總召 (小組負責人) 就十三位,論壇上超過百位訂閱者,加上實際參與團隊成員約五十幾位 (活動時成長到九十位),並不是每一位都能夠有效的理解英文訊息。

然而語言障礙並不是主要的瓶頸,更大的挑戰是籌備團隊間必須依據每個討論細節協議出共識或對價關係,並且讓團隊成員遵循且完成工作目標。國際合作時,除了語言門檻,更要小心因為文化價值觀的差異,使對價關係的錯誤設定或誤解。這會造成一連串的誤解、爭執,最後要花費更多倍的時間與精力收拾。

挑戰三、報名大爆滿

有鑑於去年在 4 小時 7 分 39 秒報名額滿的盛況,團隊其實已經預期今年也可能會秒殺。為了維持大拜拜的對談水準與出席人口比例,今年引入了報名保留碼策略,目的是避免報名額度被新人瞬間搶佔,於是開發一新註冊系統,目的是暫時保留歷年講者與幾位社群中意見領袖的報名額度,以免平時工作忙碌的大神們一閃神就來不及報名參加。大神們缺席的會議就不算是大拜拜了,不是嗎 ? 😉

事實證明,報名程度相當踴躍,超乎團隊預期之外。以至於新報名系統碰到預期以外的,短短八十五分鐘內,系統接受了 1282 份報名,而原本規劃首波報名名額只有 610 名。根據計算,原 610 名額度在開放報名第十六分鐘時即應宣告額滿。

為了能夠盡可能滿足報名朋友的期待,團隊在一週左右盡可能的想辦法解決場地資金線上轉播的問題。擴大規模,對於預算規劃產生相當大的衝擊,進而影響資源分配,無論是工頭群、國際籌備團隊,都因此受到相當大的壓力。

備註: 雖然是新報名系統大爆炸,但是由於報名程度過度踴躍,使用其他解決方案並不保證不會發生其他問題,據經驗每年系統報名都有或大或小的問題。 2010 報名爆炸比較是甜蜜的負擔。

啟發與收穫

尋求動機

COSCUP 是一個完全由志工所組成的團體。

有別於企業團體,志工並沒有金錢利益的動機。他們更可能是因為人際關係、熱情或純粹興趣而加入志工團體。管理志工組織與企業組織上的技能看似十分類似,但是實質上管理者若無法識別他人的驅動力,很容易就會讓其他人失去繼續參與的動機

舉例而言,不少人的管理方式,是透過將自己的焦慮強加給其他人,利用焦慮迫使別人產生壓力完成工作。這種方式很自然的會演變成負面管理法,手上只有鐵鎚,眼中只有釘子,以懲罰為激勵方式。懲罰,很容易摧毀心理性或社會性的成就動機。在企業組織中,你仍有薪資、獎金、升遷可以作為誘因,在志工軟體中並沒有這些誘因。你得學會看清楚除了金錢報酬外,人還有甚麽樣的成就動機

一旦認清識別志工的行事動機,你很快就會了解自己的角色是協調者,而不是管理者。你很難「指派」工作給你屬下志工,取而代之,你必須藉由溝通了解他們承諾與能力,你依照他們的承諾與能力設定目標,給予挑戰,把工作委任給他們,而不是把工作傾倒 (dumping) 給他人。設定「目標」、「死線」、「後果」並施予其「尊重」、「責任」、「權力」與「挑戰」,這稱為「授權」。

一旦你把事情順利委任給其他人,你就可以只管理「協議」而不是管理「人」。取得「協議」,你就能推算團隊能力。掌握團隊能力,就不會做出過度承諾。不過度承諾,就不至於產生壓力。沒有壓力,志工才能開心貢獻。

異中求同

當計畫成長到如 COSCUP 2010 的規模時,除了志工團隊外,你還得照顧贊助單位、聽眾、合作組織對於活動的期待,凝聚共識是最難的一件事情,意見整合成為協調者最主要的工作。

首先,主辦單位對於贊助單位是對價關係,團隊得交付在贊助徵求書中所承諾的事項,小從企業商標露出,大到攤位佈置,每一項都得傳達給執行的志工,讓他們遵守,且贊助單位對於活動各有不同的期待,有人希望找到員工、有人希望宣傳新產品、有人希望大量曝光,這些微小的差異也會影響團隊該交付的成果。

許多聽眾也對於活動有高度期待,從議程安排、飲食到網路配置,幾乎每一年都會收到不同的評語與建議。即便是團隊本身,也會因為每小組手上的 (人力、預算) 資源有限,對於完成目標的定義不同。或者主辦團隊間,也會抱持不同理念甚至堅持不同的基本教義。

無論對外、對內而言,異中求同都是最重要的一件事情。你能做的只是盡可能找到所有目標的折衷平衡點。

你必須了解的是,團隊是義工組成,大家是義務性來幫忙,也會因為每人的時間與精力有限,有人可以使命必達,有人則只被動做到恰恰及格邊緣,這兩種態度造成工作表現的差異,也很容易讓小組甚至整個團隊,落入負面的工作氣氛。負面氣氛是團隊合作的殺手,缺乏熱誠的協調者不會啟發其他人朝共同目標前進,或者甚至連共同目標都沒有,小組人員很容易落入瞎忙而且沒有援手的悲苦狀態。

人在不同的生命階段,心中對於工作、家庭與社會工作都有不同的優先值,在稍大組織中都難免有採取不同優先值的同事,你唯一可作的是避免負面態度擴大感染其他人,避免其長成團隊中的毒瘤。

異中求同的唯一辦法是大量溝通,事實上每一次的溝通都是一場談判與交易。但你不能保持著 “My way or the highway” 的態度,聆聽是第一要務。談判的目的是解決問題,而不是爭辯立場。團隊合作最忌諱「不合我意、一走了之」的工作態度,敞開心胸不隨意放棄談判,論事只針對事實與風險討論,不談假設性問題,就有機會達成共識。應該避免盡可能避免極端的商業談判行為,避免不求一切手段達成交易,無論是拿出拳頭或向人跪服。

練習利用文字表達你的立場與溝通技巧,會有很大的幫助。

有效溝通

由於 COSCUP 2009 相當成功,在 COSCUP 2010 年中加入了相當多新血,這麼多熱血朋友加入的狀況之下,溝通過程與去年比起來顯然更顯得熱鬧。根據統計,從 2010 年一月到八月,COSCUP list 平均每月有 922.5 封電子郵件,平均單日有 30.75 封,其中瘋狂的幾個月份時候如七月,單月就達到 1430 封信件,這還不包含工作小組間的私有 list 流量。

每封信花一分鐘,每天至少就得花上三十分鐘。顯然不是每個人都可以讀完信件,更別說理解別人所要表達的意見。你得想辦法有效率的引導出結論,並執行它。

除了主導事情發展的工頭以外,許多新加入的志工也有相當多建議,作為協調人,不能只管工頭的意見,也要回應新人的提議。另外則是對想法的執行程度與所需資源,缺乏概念,以至於偶爾會有天馬行空的「幻想」出現。但大體來說,都是為了能夠成功的舉辦好研討會。但是你必須盡快掐死無法達成的幻想,以免團隊精力內耗。

團隊中,許多朋友都是首次加入,由於缺乏默契,時常對於責任的認知不清楚,偶爾會有掉球或者不敢斷下決策。你必須給予授權,新人不見得第一次就能把事情作對,難題是得適當的預留犯錯空間,讓他們嘗試,就算失敗了也無所謂。

另外一個問題是,難免團隊中會有「戳樂」的存在。你看不出他們有甚麽貢獻,除了在忙亂的時間出來戳你,或者會議期間永遠拿信仰來酸你所做的任何決定,卻不拿出實體的建議或提案,這些人是麻煩,請參考「來亂者,去死!!」管理他們。

你需要練習管理大量的電子郵件,並寫出容易快速消化理解的商業信件格式,避免透過郵件處理一些無意義的統計、問卷事宜,提高每封信的可讀性與價值。

壓力管理

由於專案具有目標,完成目標或多或少會產生壓力,志工軟體的主要壓力來源是過度承諾,承諾了能力不可達的事情、死線。個人壓力很容易因為逾期未完成而影響團隊,進而影響團隊氣氛,久而久之整個團隊中就會瀰漫著高壓氣氛,直到有一天大爆炸為止。

重點在於一開始不要逼迫志工過度承諾,觀察他們的時間規劃與能力所及,提供他們所需的環境、人力與資源。但相對另一方面,你又得鼓勵他們往團隊目標前進,試圖平衡各種資源很能夠考驗你的智慧跟溝通能力。

但無論年紀或工作經驗多寡,人們總是會或多或少高估自己的能力,面對壓力也常有不同的反應,有些較為幼稚的人可能會以「哭鬧」、「忽視」、「卸責」、「逃走」來面對壓力。

當然,成人不像小孩子一樣,會直率的攤在地板上宣洩情緒,但你依然可以從他們的行為反應中看出。你得練習觀察壓力根源,並試著了解並化解壓力,避免爆炸發生。

有時候一個人無法達到他的承諾,會影響其他人的時間,結果造成連環爆炸。如果你真的無法解決壓力根源,最糟的狀況是你得把他們踢進防爆筒中,但這麼一做,無論如何都會對團隊造成嚴重傷害。

成功的領導者不會落入擔任救火隊的工作。

協作工具

COSCUP 是虛擬團隊,成員散佈南北,絕大部分的決議都是在網路上討論與決議,有效率的利用線上工具成為基本的技能,各小組間也建立自己的溝通方式與協作模式。以下是本次籌備過程中,最常使用的幾個線上協作工具

  • Google Groups, 提供主要的論壇,發布所有待解決事項、問題。
  • Google Sites, 提供整合性的討論串目錄。(但最後被瘋狂的資訊流給打敗了)。
  • Google Document, 具體提案文件、大量利用試算表與表格收集資訊,活動最主要的時間表 (time frame)也利用表格管理。
  • IMs (MSN, Google Talks, Skype), 小組與工頭間的即時聯絡方式。
  • EtherPad, 「真」即時線上共筆,線上會議記錄或即時文件撰寫。
  • Dropbox, 設計素材與簡報儲存。
  • Webex, 小組即時電話會議。(收費)
  • Mumble, 小組即時語音會議。
  • IRC, 小組對話室。
  • Wikidot

由於溝通郵件眾多,總召或總舖師必須手動管理主要的 issue list,造成額外的管理負擔,或許來年可以考慮整合 Request-Tracker,將郵件討論自動整合入 issue tracking system。另外,今年也曾經嘗試架設 IRC 會議記錄 Bot (Mut IRC Bot, MeetBot, MootBot),如果能夠成功導入這些工具,未來線上會議與會議記錄就會更加容易了。

參考資料

上述啟發是這趟旅程的經驗收穫,或許這次做的不夠好,相信下次會更進步。

在這趟旅程中,我認為以下這兩本用字淺白且精簡輕薄的管理書籍,很能夠隨時提醒自己一些基礎的管理技巧,特別是激勵、授權給其他人的方式,推薦給來年的工頭與總召參考。只要你能夠協調管理一個志工組織,相信管理企業團體絕對不是問題。

但就像 100 Ways to Motivate Others 一書開頭簡介所言,不要輕信書中所提的建議,你必須親自從實務中嘗試。建議你,加入 COSUCP 團隊!成為熱血的工頭或總召!並身體力行的接受挑戰吧!

這篇文章是除錯紀錄與寫給 Power User/Geek 參考服用,一般使用者請等 googleearth-package (Ubuntu) 正式版修正。

今天用 Holux M-241 紀錄了一段騎自行車的路程,本想取出 KML 來丟進 Google Earth 看一下到底繞了多遠。結果久久沒用的 Google Earth 一開即當,看了看還在 4.2 版。於是決定升級一下,發現 Google Earth for Linux 的支援相當糟糕。

在 Debian/Ubuntu 上,你可使用 googleearth-package 這個工具,來幫你把 googleearth 包裝成 deb 格式。於是你可以用 dpkg 來安裝、管理。相較於 Google Earth 原本提供的安裝方式,這樣顯然乾淨多了。不過試了幾次,發現 Google Earth 啟動後瞬間就會當掉,並存了一份 Crashlog 在 ${HOME}/.googleearth/crashlogs/。

於是開始了除錯旅程。我的環境是 Debian Sid.

Google 官方版本

決定手動下載安裝看看,很悲慘的是一執行 GoogleEarthLinux.bin 就出現以下錯誤

Verifying archive integrity... All good.
Uncompressing Google Earth for GNU/Linux 5.2.1.1588..............................................................
setup.data/setup.xml:1: parser error : Document is empty

^
setup.data/setup.xml:1: parser error : Start tag expected, '<' not found

^
Couldn't load 'setup.data/setup.xml'

你必須這樣做之後才能正確啟動安裝程式

$ sh GoogleEarthLinux.bin --target /tmp/ge
$ cd /tmp/ge
$ mv -fv setup.data/bin/Linux/x86/setup.gtk /tmp/ge/setup.data/bin/Linux/x86/setup.gtk2
$ ./setup.sh

安裝完畢之後,你會發現啟動 Google Earth 時,閃過幾個畫面,console 訊息會告訴你 Google Earth has caught signal 11.

你可以在 ${HOME}/.googleearth/crashlogs/ 找到當機的軟體日誌。你可能會看到以下訊息

Stacktrace from glibc:
./libgoogleearth_free.so(+0xd090b)[0xb773090b]
[0xb7789400]
/usr/lib/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_from_pixdata+0x13f)[0x94979daf]
/usr/lib/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_new_from_inline+0x63)[0x9497a073]
/usr/lib/flashplugin-nonfree/libflashplayer.so(+0x4d335)[0x94f7d335]
/usr/lib/flashplugin-nonfree/libflashplayer.so(+0x4bd8e)[0x94f7bd8e]
/usr/lib/flashplugin-nonfree/libflashplayer.so(NP_Initialize+0x1ae)[0x94f8028e]
./libQtWebKit.so.4(+0x747b22)[0xb62edb22]
./libQtWebKit.so.4(+0x747c0c)[0xb62edc0c]
./libQtWebKit.so.4(+0x6062ff)[0xb61ac2ff]
./libQtWebKit.so.4(+0x604516)[0xb61aa516]
./libQtWebKit.so.4(+0x60476a)[0xb61aa76a]
./libQtWebKit.so.4(+0x712beb)[0xb62b8beb]

這是 Google Earth 內建的 QtWebKit libraries 試著要載入 browser plugins,由於相容問題當掉了。有鑑於 Google Earth 內附得 Qt libraries 還造成其他的問題,像是中文選單變成方格等等。我們可以砍掉 Google 附贈的 Qt4,直接用系統內建的 Qt4 函式庫即可。

cd google-earth
for qtlib in libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4 libQtWebKit.so.4 ; do
    mv ${qtlib} ${qtlib}.moved.for.workaround
done

另外一個問題是 libIGGfx.so,它顯然用 (linked) 了 libfreeimage3,但是實際跑起來卻會造成問題。

Stacktrace from glibc:
/usr/lib/googleearth/libgoogleearth_free.so(+0xd090b)[0xb788290b]
[0xb78db400]
/usr/lib/googleearth/libIGGfx.so(+0x1296c9)[0xb3f206c9]
/usr/lib/googleearth/libIGGfx.so(FreeImage_LoadFromHandle+0xb1)[0xb3f0e2c1]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage21platformLoadFreeImageEPNS_4Core6igFileEbPNS0_19igImageMetaDataListE+0xa1)[0xb3ef84b1]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx10igOglImage12platformLoadEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x112)[0xb3ef8bb2]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage8loadFileEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x12d)[0xb3ee91ad]
/usr/lib/googleearth/libevll.so(_ZN5earth4evll7Texture9LoadBytesEPKhi+0xa6d)[0xb0ad7b8d]
/usr/lib/googleearth/libevll.so(_ZN5earth4evll7Texture12ProcessWorkQEd+0x184)[0xb0ae3594]

解決方法是自己裝 libfreeimage3,然後用 LD_PRELOAD 換掉 Google Earth 包在 libIGGfx.so 中的函式。如下

LD_PRELOAD=/usr/lib/libfreeimage.so.3 googleearth

這樣你應該可以順利的啟動 Google Earth 5.2 了。

Debian/Ubuntu 版本

在 Debian 與 Ubuntu 上,Adnan Hodzic已經包裝了 googleearth-package,Debian 跟 Ubuntu 使用者只需要下達 make-googleearth-package 指令,系統就會自動下載 Google Earth,並包裝成 deb 檔案。再用 dpkg -i googleearth_*.deb 安裝即可。

目前的版本 (0.5.7) 還是用 Google Earth 預設的 Qt4 與 libfreeimage3。我提了一版修正,希望新版中可以預設刪除 Qt4 與 libfreeimage3,修正檔可於 #596423 取得。

之前用 Microsoft ExcelOpenOffice Calc,時常會想在寫函式時使用 SQL 語法。因為你在試算表中,最常用得功能之一,就是統計並計算出原始資料工作表 (Sheet) 中的數值。

例如,你可以用 SUMIF, COUNTIF, FILTER 等公式,去統計、過濾查出某一種類別的加總或平均。可是這樣一來,你得寫好一行公式,然後把他拉開複製到每一個儲存格 (Cell) 中,有時參照 (cell reference) 沒寫好或無意中拉錯一格計算範圍,你就算錯所有資料。偏偏這種錯誤很容易在不停重複複製儲存格時發生。

所以你就想,為什麽不讓我直接 SELECT * FROM cells GROUP BY 來拉資料就好?可是這些試算表軟體,都只讓你從其他 Data Source 中拉資料時,才能用 SQL 語法。但是把手上的資料匯入 Microsoft Access 或 OpenOffice Base 又很脫褲子放屁。

最近為了方便分享資訊給其他人,常改用 Google Spreadsheets 編輯。發現 Google Spreadsheets 有一個 Query function,可以讓你在試算表中用類似 SQL 得 Google Visualization API Query Language.

Query Language 本來的設計是讓你可以從線上資料庫中撈資料,以便整合到 Google Chart Tools / Interactive Charts (aka Visualization API) 中,如此你可以把自己的資料接出來 (Google I/O 2009 – Implement Your Own Visualization Datasource) 餵給 Visualization API。

而 Google Spreadsheets 的 Query function 則是整合了 Query Language,讓你直接把試算表當作 Data Source! 所以你可以直接用 SELECT *,把另外一個表格中資料全數複製。你也可以用 GROUP 跟 aggregation functions 如 avg(), count(), sum() 把一個表格中的資料統計算好列出來!非常方便,過去要重複好幾次計算,甚至那種千行以上的工作表都可以瞬間就處理好,出錯得機率也小了許多。

Youtube 上有一則非常好的示範

我記得幾年前 (應該是 2002-2005 間),為了妥善保存自己在 Debian 上的各種工作資料,希望能夠用比較加密過的方法,將資料寫到光碟中。當時的想法是利用類似 cdbackupmcrypt 等工具,將資料以自訂的檔案格式與加密演算法存到光碟中。

這種方式有幾個好處。

  • 第一,由於格式完全自訂,並非 ISO/CDFS,因此一般電腦軟體是無法辨識解讀的。
  • 第二,即便 Image 被強取出來,還是要猜出所用得演算法與金鑰,才能解壓出原始檔案。
  • 第三,當時光碟平均儲存成本比硬碟低,可以多燒幾份異地備援。

壞處是,幾年前資料頂多幾百 Mb,備份燒錄進 CD or DVD 還沒有問題,但是現在媒體資料、程式碼等等幾乎都是動輒幾 G 以上,用光碟實在太慢、太麻煩了。而且這個方法不支援循序備份,每次都是完整備份。由於太慢、太麻煩,你可能幾天或幾周才做一次備份,偶爾備份間的空窗期就會漏掉重要資料。備份重點就是隨時有一份最新的重要工作文件的副本阿。另外一個問題是,沒有良好的備份紀錄管理工具 (archive viewer),所以你每次想查檔案就得重新解開整片光碟才能找到。

第三個問題是,光碟其實是非常不保險的儲存媒體。過個幾年,當時備份用的光碟,可能就變質而無法讀取。更糟糕的是自訂的格式,沒有考慮容錯 (Error detection and correction),所以更難從變質、損壞的 CD 中把資料取出來。若不幸,你買到一批塗料品質不佳的光碟片,或功率老化的光碟機,那幾年後才後悔都已經來不及了。

重新調查了新的備份方式,目前改用的其中一個方法是 duplicity,duplicity 有幾個特色符合我的需求

  • GnuPG 加密與簽章壓縮檔。
  • 支援循序備份,並用 rsync 來傳送備份檔案。
  • 備份檔中用標準的 tar 跟 rdiff 產生的 delta 檔。
  • 支援多種備份的網路檔案協定 – local file storage, scp/ssh, ftp, rsync, HSI, WebDAV, and Amazon S3

所以如果你願意的話,你可以花一點小錢,把已 PGP 加密過到檔案,傳到 S3 上做雲端備份。;-) 這樣就不用擔心一些線上備份服務 (Dropbox, Ubuntu One, SpiderOak),用一些曖昧不明的加密方式或根本不加密的方式儲存你的檔案。

預設使用方法很簡單,就是 duplicity /home file:///tmp/home 這樣即可使用。你若太懶,只是一般使用者不想下指令的話,也可以裝 Déjà Dup操作超簡單,只需滑鼠點點點就可以設定備份的目錄,跟要儲存的位置。還原也是利用視覺介面點選後,就可以解壓縮出來。

當然,技客如你,可能會需要複雜一點的手稿,來儲存各種不同分類的檔案,這裡僅分享一個我自己用得小 Script.

我一直對於時間管理議題相當感興趣,無論是 GTD 方法論,或各種各樣的日式時間、檔案管理大師的方法學。之前認真研究筆記本等,某種程度也是為了能得取得最佳的時間管理工具。

相關議題感興趣的主要原因之一,是我對於時間管理的能力還相當有待加強。老是覺得,如果從小時候就開始培養這些觀念,或許會相對更有成就一些。另外一方面,則是人必須不停的嘗試調適自己的管理技巧與方法,以求得最佳的方法。所謂時間管理,沒有一體適用的方法,每個人都要試著找到最適合自己的方法。

週末花了點時間看了已逝的 Randy Pausch 博士在 2007 的演講 – `Time Management‘. 相較於 Randy Pausch 的另外一場演講 Achieving Your Childhood Dream,Time Management 的演講相較比較少人注意。Achieving Your Childhood Dream 甚至出版了相當受到歡迎的書籍 《The Last Lecture》 (《最後的演講》)。

這場演講的珍貴處,不在於這是 Pausch 教授在得知自己只剩下幾個月的生命,進而提醒你生命的寶貴。

事實上這是 Pausch 教授長久以來的實務時間管理經驗,Google 上甚至可以找到他在 1998 年依照同一份主題所進行的演講。從他在電腦科學的學術領域的成就以及平衡的家庭生活看來,他的時間管理技巧顯然有其傑出之處。更厲害的是 Pausch 教授依然能夠在生命的最後幾個月,站上講台演講,並適度幽默的開玩笑,讓整場演講依然趣味盎然。

總之,從 Pausch 教授的演講中,我重複驗證一些已經使用的方法,並學到了一些平時未能注意的小技巧。以下是自己簡短備忘與感想,我建議你觀看原始演講與簡報,才能找到適合自己的方法

  • 將時間視為金錢一般的數字,管理它。我其實心中藏有一個小小地費率表,告訴自己作這件事情的時薪是多少,整件事情價值多少錢。
  • 電話的使用方式,盡可能使談話簡短,宣告議題,站著講電話都是很有效的方法。
  • 所有做的事情都有「機會成本」,你不為重要的事情「找」時間,必須透過放棄不重要的事情「製造」時間。
  • 把握創造力與最佳思考時間,把剩下的時間拿去安排會議、電話跟處理其他瑣事。
  • 降低把你拉出 flow (zone mode) 的干擾,降低外力介入的次數、時間。不要隨時檢查電子郵件信箱,電子郵件的目的是讓你可以晚點處理訊息,有空做更重要的事情。
  • 養成紀錄時間使用日誌 (Time Journal Data)的習慣。除了四五年前開始利用筆記本與試算表紀錄日誌外,近一年來我已經改用 Hamster 追蹤每分每秒的工作項目,因此可以追蹤分析每日、每週、每月的工作狀態。已經養成每月檢視工作目標與分析工時分配的習慣。我甚至裝 Sleep cycle alarm clock 來分析睡眠狀態,你知道,睡眠其實是我不在電腦前最長得活動之一,了解睡眠週期與品質當然也很重要。我甚至有點偏執希望有一套設備可以偵查我的腦波、血糖、血壓,這樣我就可以科學的分析自己在自己在何種生理狀態時,會產生最佳的思考效率與生產力。但我朋友鄙視的說我已經快變成 Borg 了。:-/
  • 避免延宕行為。延宕 – 壓力或罪惡或緊急下所造成的生產力損失或失信行為,肇因緊張、非現實時間感或不確定目標。延宕時常造成更昂貴的代價。
    • Procrastination is the thief of time by Edward Young, Night Thoughts, 1742
    • Work expands so as to fill the time available for its completion, Parkinson’s Law, Cyril Parkinson, 1957
  • 正確把工作委任給他人,而不是把工作傾倒 (dumping) 給他人。設定「目標」、「死線」、「後果」並施予其「尊重」、「責任」、「權力」與「挑戰」。
  • 會議不要超過一小時、關掉電話、鎖住門。寫下會議紀錄,重點是工作項目、負責人與死線。
  • 「碰」每封信、每張紙、每筆資訊一次!不要把他們積在桌上或收件夾。
  • 殺掉電視。(我已經這樣做許久)
  • 不要破壞陳諾,如果有必要,重新協商新的日期。(這點還要努力)
  • 演講中的推薦書 《與成功有約》 (The Seven Habits of Highly Effective People), 《一分鐘經理人》(The One Minute Manager).

影片、中文字幕與簡報可以在 MyOOPS 開放式課程 取得,可於 Youtube 線上觀看影片