身為網管,你時常需要觀察伺服器狀態,以便發生異常時,可以儘速判斷問題來源,至少若硬體負擔不了時,也可以依照時間序,查出負載高峰,並算出所需額外資源。

大部分 Unix 上的伺服觀察工具都是利用 RRDTool 畫圖,個人曾經用過 SmokePing, NagiosCollectd 等伺服器檢測軟體。各有各的用處跟優缺點。

SmokePing 拿來從外部檢測線上服務的延遲狀態相當好用,用 Perl 可以快速自製檢測工具,並自動存成 RRDTool DB 與圖檔,內建的 Alert 支援 Real-Time Traffic Pattern Detection,可以非常有彈性的用以自定警報通知。

如想從伺服器內部確認軟體運作狀態,則可以改用 Nagios。Nagios 支援大量外掛,且支援遠端外掛執行模式,方便同時檢測一羣跑不同服務的伺服器羣組,嫌棄 Nagios 的網頁界面不夠便利的話,後起之秀 Icinga 大幅改善了瀏覽界面。

你若需要效能方面的資訊,像是繪出 Apache 有多少 Requests,則可以用 collectd,同樣也支援大量外掛。但 collectd 僅支援輸出 RRDTool db,本身不提供繪圖功能。你可以另外裝前端界面,以便繪出漂亮的圖檔或查詢界面。

雖然裝了 collectd 幾年,卻一直懶得裝一套好用的前端界面,這兩日改用了 Collectd Graph Panel,發現它還沒有支援 Vserver,於是順手加了一個

I just received yet another comment from a bug reported at 2001 asking for `support deletion of attachments‘ in evolution. It’s kind of interesting to see the demand to be fulfilled for all most one decade.

Good news is you no longer need to ask for the feature. Thanks for Milan Crha, developer of RedHat, who help to get the my small plugin into Evolution code base.

So you don’t need to build the plugin by yourself or looking for a package. The feature should be available at Evolution 2.91.2+. 🙂

News updated at 2010/10/31.

Even though I don’t use evolution daily basis, I still spent a few hours to work with the old plugin for the upcoming Evolution 2.30. In the latest version, Evolution plugin framework is now having a new EPluginUI for GtkUIManager. The plugin version below to 0.0.3 does not work with Evolution 2.30, please use 0.0.4 if you upgraded your evolution to 2.30.

You can download source code tarball at github (http://github.com/chihchun/evolution-remove-attachments). I have also built debian packages for these platform, if you want to test with binaries

  • For Ubuntu User
    • You can download and install package form my PPA for Maverick (10.10).
  • For Debian User
    • You can download the tarball and deb file for Debian sid from here.

Since I no longer use Evolution, if you feel the piece of software is useful for you, please consider making a donation to support me maintaining the software.

前一陣子曾經介紹過「雲端備份」,由於 duplicity 支援相當多種不同的網路儲存協定,像是  ftp, ssh/scp, rsync, Web‐DAV, WebDAVs, HSi (Hierarchical Storage Interface), Amazon S3 backends 等等。因此除了本機之外,你也很適合把它用在伺服器上,一樣可以用 GnuPG Public key安全的加密備份檔案。

為了能夠使用 GnuPG,你必須把公鑰傳輸到伺服器上。千萬別把個人的 PGP Private keys 傳到伺服器上,萬一機器被黑了,你的 Key 也就不安全而失效了。

假設你的伺服器是 remote.server, 你的 key id 是 DC76FEB9

gpg  --export DC76FEB9 | ssh [email protected] gpg --import
這樣就可以把公鑰匯入遠端的伺服器帳號中,但要用 GnuPG 加密,你還需要把信任清單 (ownertrust) 傳過去,讓 GnuPG 了解這把金鑰是受到信賴的。否則你可能會看到以下錯誤訊息
===== Begin GnuPG log =====
gpg: 2983CE0C: There is no assurance this key belongs to the named user
gpg: [stdin]: encryption failed: unusable public key
===== End GnuPG log =====
作法是
gpg  --export-ownertrust |env grep DC76FEB9|ssh [email protected] gpg --import-ownertrust
這樣就可以用 duplicity 時,直接指定 –encrypt-key DC76FEB9 這樣來將備份檔案直接用該金鑰簽署。

上一封文章中提到,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 團隊!成為熱血的工頭或總召!並身體力行的接受挑戰吧!