Archive for the '兩光生活' Category

[QA魂] 敲 tracker 的啟發

在公司,我的 mentor 是個很 nice 的人,沒有架子、待人和氣,從他的做事方式讓我學到不少東西。

今天和許多資深的 QA 前輩請教了 L10N 相關的 testing 和敲 tracker 的方式,前輩們教了我很多做法和針對不同情況的處理方式,讓我獲益良多,我也認為單純地這樣分類然後去敲就沒問題了。後來,跑去和我的 mentor 討論了一下,他的回答讓我忽然有種當頭棒喝的感覺,他說:「這樣一次大量敲下去會不會讓 RD 很頭大?或許我們可以換一種方式來敲,讓 RD 可以檢視所有的問題,同時也能夠兼具 tracker 的功用」,他的這番話讓我感受到他是真的努力在幫忙 RD 解決問題,而不是只單方面地回報問題而已。

今天讓我學到了一課,鑽研技術固然重要,但態度和做事的方法更是需要學習的。

Punish Day

接觸 FreeBSD 也算有蠻長的一段時間了,不過以前的我對 FreeBSD 沒有很深入的了解,上研究所前的暑假到 Y! 實習,也開始慢慢地熟悉 FreeBSD,那時候遇到了很多長輩,rafan 也是那時候進 Y! 的,不過第一年和 rafan 沒有太多交集,只知道他是 Ports Committer 之一,那時候就覺得:「哇!真厲害!」。

後來上了研究所,也進了 NCTU CSCC 當助教,在這裡接觸到了很多強者,還記得 liuyh 要 BSD team 多看 Porter’s Handbook,剛好另一位 Ports Committer – lwhsu 也在系計中,那時候我就覺得自己好弱,應該趕快練實力,希望自己有一天也能成為 Ports Committer,lwhsu 要我先練習 send-pr(1) 和 Tinderbox;我也常拿 csports 來練習 XD,DK 大神也幫我收了不少爛攤子。就在那時候送了第一個 PR,不只重複送,Maintainer 還寫錯 orz。

研一的暑假又回到 Y! 當實習生,這個暑假因為實習內容的關係,和 rafan 變得比較熟了,也慢慢從他那邊知道 Ports 的架構和其他有趣的事,還記得 rafan 跟我講:「想當 Ports Committer,先 send 100 個 PR 來再說!」,所以程式寫到很煩的時候就會開 portscout.org 看有沒有什麼 ports 要更新的,PR 數也是這時候不斷地增加,不過 PR 的品質也很差 XD。

研二上算是 PR 送得最勤的時候,那時候常常有事沒事就送,不清楚的就問 lwhsu,不管是更新還是有錯,反正 PR 不用錢嘛!XD 隨著數目增加,也慢慢知道要注意哪些東西,不會送出一些好笑的 PR 了 (還曾經被 pav@ reject XD)。後來,就被懲罰了。

最要感謝的是我的 mentor – lwhsu,雖然我 on board 第一天就出包 XD,不過總算是踏出第一步了,接下來還請許多前輩們多多照顧小弟了。

值得尊敬的人

工三的垃圾筒都是放在廁所旁的樓梯口角落,經過的時候偶爾會看到一個負責清理這些垃圾筒的阿姨,在我的以往的印象中,看到不少清理垃圾筒的人對待週遭的人不是很友善,不然就是有點冷淡不太想理人;但是這位阿姨對週遭的人態度都很好,我現在經過都會跟她打聲招呼。

不知道為什麼,明明垃圾筒上的紙條寫得很清楚要分類,總是有很多人看也不看就隨便亂丟,每次都看到阿姨整理得很辛苦,雖然總是有分不完的垃圾,但這位阿姨的態度還是很好,我遇過不少邊整理邊罵的人。這些努力付出勞力的人,每天都很盡責地做好自己的事,也許他們的工作不能舒舒服服地坐在冷氣房,也許他們的工作常搞得全身騷臭不堪,但我覺得多歸了他們,這個社會多了一分人情味,在我心中,他們的職業是很值得人尊敬的,這比一大堆高文憑卻連基本的垃圾分類都做不好的人來得更值得敬重。

下次丟垃圾的時候多想想,做好分類花不了你一分鐘,卻可省下他們不少時間。

(1)

Corrinne May – 難得一見的好聲音

Corrinne May - Safe in a Crazy World

Corrinne May - Safe in a Crazy World

Corrinne May (中文名:符美云) ,新加坡女歌手,發行過四張專輯,在台灣其實沒多少人認識她,畢竟她有在台灣上市的專輯僅僅只有第一張 “Fly Away” 及最近的一張 “Beautiful Seed”,也許她不像時下的流行歌手般令人印象深刻,但聽過一次她的嗓音,會讓人難以忘懷。

第一次聽到她的歌聲是在網路上,忘記是哪了,只聽背景傳來 “Beautiful Seed” 專輯中 “Love Song for #1″ – “In the twinkling starts that dance like fireflies…”,很舒服的聲音,現在唸書都會放她的歌來聽。

四張專輯:

  • Corrinne May (Fly Away)
  • Safe in a Crazy World
  • The Gift
  • Beautiful Seed

我最喜歡的是”Safe in a Crazy World” & “Beautiful Seed”這兩張專輯。:)

P.S. 某人抱怨我都只發表技術性的文章 XD

SSH Agent Forwarding on Putty & Screen

大家在登入工作站或是伺服器的時候,最常使用到的應該是 Putty (Pietty, PuttyTray, …etc) 這類提供 SSH 協定的終端機,最傳統也最麻煩的方式就是每次登入的時候都輸入密碼,比較好的方式就是使用 Key Authentication,創造一組 Public Key 和 Private Key,當登入的時候比對,如果 Match 便直接允許登入,不再需要輸入密碼。

但是,在其他的狀況下,這樣的方式也許不是相當適合。以我來說,我常常登入到一台主要的機器,然後再透過這台機器連到其他機器,而在工作當中,也可能在這些機器之間互連,這代表我必須將同一組 Public/Private Key 都放一份到這些機器中,或是建很多組 Public/Private Key 來做這件事,但對於安全性而言,這已經等同於把 Private Key 放到上面給人用了。幸好,SSH 提供了 Agent Forwarding 的功能,能夠讓我只需將 Private Key 放在自己的 Notebook 上,然後便可在這些機器之間暢行無阻了。有關 SSH Key Authentication 及 Agent Forwarding 相關的運作流程及知識,可以參考這裡,這篇只是教大家如何設定。

1. Basic SSH Key Authentication

要做到基本的 SSH Key Authentication,首先便是要產生一組獨一無二的 Key Pair (Public/Private Key),在 Windows 上我使用 puttygen。執行 puttygen 可以看到下面的畫面:
puttygen 1

按下 “Generate” 產生一組 Key Pair,在產生的過程當中,它會要求你隨意移動滑鼠遊標,然後透過移動來亂數產生這組 Key Pair:
puttygen 2

結束後便會有一組獨一無二的 Key Pair 了:
puttygen 3

我們將產生的 Public Key 複製貼到:

$HOME/.ssh/authorized_keys

然後,再按下 “Save private key” 將其對應的 Private Key 存起來供 SSH Agent 使用。在中間可以看到 “Key passphrase”,它可以用來保護你的 Private Key,在進行 Key Authentication 的時候,會要求你輸入設定的 Key Passphrase,如果不符合,即使拿到了 Private Key 也是無法成功通過認證。

接著我們要利用 SSH Agent 來幫我們管理這些 Key Pair,在 Windows 中,我使用 pageant;執行 pageant,會在右下角看到它的 icon 出現,點選右鍵可以看到它的功能:
pageant 1

“View Keys” 可以檢視現在加入的 Private Key 有哪些,”Add Key” 顧名思義就是加入一個 Private Key,我們現在就是要將剛剛產生的 Private Key 加入到 pageant,在加入的時候,如果你剛剛有設定 Key passphrase,便要要求你輸入,這樣 pageant 在幫你進行認證的時候便不需要再手動輸入 Key passphrase 了:
pageant 2

加入 Private Key 後,便可以看到我們加入的 Key 已經記錄下來了:
pageant 3

然後透過 pageant 來執行我們在 Putty 當中設定的 Session,便會自動幫你進行認證,認證成功便會看到這樣的訊息:
putty 2

要特別注意的是,很多人常常會問,雖然不必再輸入密碼了,但是為什麼還是要輸入帳號,其實只需要在 Putty 當中設定好預設登入的帳號名稱即可:
putty 1

2. SSH Agent Forwarding

要達到 SSH Agent Forwarding,我們必須在 Putty 的設定中動點手腳:
putty 3

將 “Allow agent forwarding” 選取就可以了。然後只需要將同一份 Public Key 放到其他會透過第一部機器連出的機器上,在第一部機器使用 SSH 的時候下:

ssh -A <SERVER_HOST>

便可以將第一台機器的 agent forward 出去。如此一來,只需要同一份 Public/Private Key 便可以在各台機器中暢行無阻,而且不用擔心 Private Key 需要放出去的風險了。

3. SSH Agent Forwarding on Screen

在試的過程中,如果有使用 Screen 這個好用工具的人,一定會發現,一旦進入到 Screen 當中,SSH Agent Forwading 似手就失效了,但是離開 Screen 一切又正常,為何會這樣?

主要是因為使用 SSH Agent Forwarding 會參考一個環境變數 “SSH_AUTH_SOCK”,這個在 Screen 當中並不會被帶入,因此會失效。所以如果要讓 SSH Agent Forwarding 能夠在 Screen 下正常運作,便必須要做一些手腳,在網路上其實有蠻多方法可以用,大部份是將 ssh 和 screen 都做一個 wrapper,主要的想法都是在進入 screen 後自動建立環境變數 (對 .screenrc 下手),但這樣的想法只能確保 screen 自動建立以及已存在的視窗,對於新建立的視窗可能就沒辦法做到,所以我自己寫了個 shell script “setScreenSshAgent”:

#! /bin/sh
MKDIR=`which mkdir`
LN=`which ln`
if [ -n "$SSH_AUTH_SOCK" ]; then
    if [ ! -d "$HOME/.screen" ]; then
        ${MKDIR} -p "$HOME/.screen"
    fi

    if [ -z "$WINDOW" ]; then
        ${LN} -fs "$SSH_AUTH_SOCK" "$HOME/.screen/ssh-agent-screen-$HOST"
    fi
fi

這支程式主要是將當時的 SSH_AUTH_SOCK link 到 “$HOME/.screen/ssh-agent-screen-$HOST” 下,然後在 .cshrc 下加入:

$HOME/bin/setScreenSshAgent
if ($?WINDOW) then
    setenv SSH_AUTH_SOCK "$HOME/.screen/ssh-agent-screen-$HOST"
endif

這樣子就能在登入時更新最新的 SSH_AUTH_SOCK 到 “$HOME/.screen/ssh-agent-screen-$HOST” 中,然後在 Screen 建立新的視窗也會自動將 SSH_AUTH_SOCK 設定到此 link,如此一來,SSH Agent Forwarding 便能正常運作。

Update: 把一些設定改一下,原本的 .cshrc 裡的設定會讓在非家目錄下執行 Shell 出現找不到的問題,所以改成絕對路徑。

Why?! Leopard 這麼會當?!

之前有提到我的 MacBook 自從換了 leopard 之後就當機連連,讓我一度對 Apple 失去信心!= =

不過上次到台北參加某 Y 社的活動時,閒著沒事就抓了套 memory testing 的軟體下來測,不測還好,一測就看到螢幕上滿滿的 “Failure…!@#$@^&”,不會真的是記憶體的問題吧!

活動結束就馬上跟麻大帥衝去光華優仕換記憶體,新的記憶體一裝上,開機之後一直到現在沒有再當過,連程式執行的速度也飛快,我真佩服自己能夠忍受之前的那種工作機環境。

所以,鄉親啊!下次換記憶體的時候記得先測測啊!

Blog 搬家!!

是的!沒錯!我的 blog 搬家了。搬到實驗室的機器上,用 WordPress 架的,順便也申請了自己的 domain name,以後我的 blog 網址固定為:

http://blog.yzlin.org

大家以後就用這個連吧!會慢慢把 Blogger 上的文章轉過來。

加入了 FreeBSD Documentation Project

其實自己一直以成為 Ports Committer 為目標在努力,但一直沒有好的機會,也不知道該怎麼去著手,這次在 COSCUP 聽到 chinsan 的演講,覺得自己可以先從翻譯文件做起,也可為自己打好基礎,很感謝 chinsan 不嫌棄願意讓小弟加入,先把基本入門文件 K 完吧!XD

(0)

最近忙死了!

最近一直在忙考試、報告、作業,一直沒有時間好好來 po 個文,今天總算告一個段落了。

話說換了 leopard 之後,我的 macbook 就常當機,不知道是什麼原因,而且我發現有些時候,同時開啟了很多程式,會有幾個就當在那,用 force quit 不行,進入 cmd line mode 直接 killall 也不行,一直關不掉,登出也會被這支程式中斷,雖然對其他程式沒有影響,可是放支程式當在那就很不爽,最後乾脆強制關機。 這是換了 leopard 後讓我小困擾的一點,其他都覺得很棒。

(0)

GMail 新版上線

整體速度變快很多,而且整理通訊錄的工具變得很好用了,舊版的真的不怎麼好用…不過我發現 Firefox 上,建立 Filter 的功能最後一個 Step,選取 Tag 的下拉式選單不能用,只好轉用 Safari 去設,希望 google 可以把這個 bug 早點修好!

整體而言,這次的改版不錯 – 速度的提升和好用的通訊錄工具。