May 30, 2010

用Mail.app收GMail

電腦剛setup好之後頭幾個動作之一就是設定email帳號。比起公司的mail來說,gmail反倒是我更常使用的mail account。使用mac的mail.app,要設定gmail就跟從web登入一樣簡單,什麼都不必設定就自動把IMAP設定好了。

不過,不知道為什麼非常囉嗦的是,它會把gmail上的所有郵件全部拉下來顯示在mail裡面給你看,造成左邊的bar動輒數千封mail等著我,著實令人不耐。讓我一度放棄使用mail.app來收gmail信箱。反正現在我有小N幫我check mail也不會造成什麼困擾。

找了一兩天,剛剛終於找到一個小tip寫到這件事。
底下記錄一下設定方式。

1.在Gmail端增加兩個label。(mail.app把label當做folder)
IMAP/Sent
IMAP/Trash

2.在Mail帳號加入之後,設定信箱動作如下。


然後是"進階"。

如此一來,就可以還我一個乾淨的左邊的bar了。

原文請參考這裡

May 25, 2010

MacVim之於輸入法

其實本來想下標題為"Mac的十大不可思議事件"。不過因為其實也沒有十件,所以也不能這樣下標。XD

在mac上工作非得用上vim不可。這兩天非常令人不解的是,為什麼每次打開vim都好好的,只要一切到insert mode就會自動跳輸入法。= = 同事還說應該是我按到什麼去切到了吧。結果剛剛一再反覆驗證,確定只要一切insert mode就會自己跳。人家明明工作在用的東西,比較需要的是英打,結果老是不預期給我跳到中打去,實在很令人抓狂。

還好驗明原因之後,確定是vim的鬼問題。搜尋之後發現,只需要在vimrc中加入設定"set imdisable"即可。

這樣設完之後,按原本的切換快速鍵還是可以正確切換的。只是就不再會因為進insert mode就跳輸入法了。

May 24, 2010

first week on Mac

為了未來工作上的需要,以及禁不住大家勸敗,終於買下人生第一台MAC。託朋友遠從米國帶回來的新改版的MBP 13" 最低階的版本。要從米國帶是為了自己莫名的潔癖,大概是自從用過TaClick,發現原來自己已經可以盲打注音,於是就開始就不喜歡鍵盤上有注音符號了。

第一週。其實很多地方都很不習慣。而且又急著要上工作環境,還沒什麼時間適應就要開工了。匆匆灌了android的開發環境,還有XCode,然後symban跟MS都得灌到VM上。這一周只能用非常忙碌來形容。

Mac很漂亮。所以第一步不需要像win7一樣,先上個GDI++才能開始工作。不過很快就會發現,沒有新酷音的mac輸入法還真是不太好用。試過眾人推薦的香草,也試過內建的注音輸入法。為了選字的關係還是頗不順手。最後同事推薦用yahoo注音。終於可以改到跟新酷音接近一點了。但少了tab去切字詞的功能,還是稍弱一點。不過起碼堪用便是。

之外。還改了terminal的shell設定。預設的bash不知道為什麼不會自己去source home底下的.bashrc。需要在terminal的偏好設定裡面,更改過預設的配色之後,在shell的地方設定執行指令"source ~/.bashrc"即可。就可以在這邊把ls的顏色打開,還可以把promote的字串設成自己想要的樣子。這就是使用UNIX like system的好處呀~大概差不多什麼都可以自訂了。

需要的朋友可以參考這兩篇。ls command 的顏色自訂Bash terminal promote

May 19, 2010

Plurk Smileys on Chrome

改用chrome之後,陸續裝了幾個extensions。現在的chrome比起當年真是好用許多。其實中間一度為了噗浪的表情小圖又換回firefox,還好後來找到這個。然後終於可以全部轉換過來了。

不過這個RPlurkSmileys版本似乎有些小問題。新掛上去的圖是又大又好看沒錯,不過怎麼預設的圖示按下去卻跑了一大串網址出來呢?有點精神潔癖如我,實在無法接受。本想直接解開chrome ext的安裝檔試著改看看,結果看來似乎是不可行的。

後來東翻西找,直接在chrome的ext.的folder裡面找到,原來這些extensions其實也都是一個一個的java script,也就是說應該跟firefox用的addons差不多才對。點開一看,果不其然也是稍稍看得懂啦。程式的部份看不懂無所謂,只要看得懂哪些是表情符號,哪些是圖案連結就改的動了。

如果有興趣自己動手的朋友可以到這邊找c:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\Extensions\[一大串亂碼]\2.3\
裡面的RPlurkSmiley.js檔案點開來修改即可。

這邊我做的修改只有
1.拿掉一部分我自己用不到的表情符號
2.把預設表情按下去之後會出現在輸入框的東西改回原本的縮寫。ex:(dance) 安裝版本有些表情按下去會跑一大串網址出來。然後稍稍修正了某些符號的縮寫。
3.新增Karma 100的幾個表情符號。
4.移除了某些用不到的東西

具體怎麼修改的要寫起來太麻煩了就改天再說吧。有興趣使用的朋友可以到這邊下載。但因為我不知道怎麼把他包成chrome的extension,所以直接放js出來。需要的話應該直接找上面的路徑,找到同一個檔案覆蓋過去即可。

注意:覆蓋之前請先將原本的版本備份起來,以免有什麼意外。
好吧,真的有意外的話應該移除該extension再重新安裝原始版本可以恢復原狀。
之外,這樣的修改應該也不會造成系統損毀才對,但這一切還是屬於個人行為,有什麼意外本人概不負責唷。


5/20附註
若使用MAC可以在底下路徑找到
/Users/[username]/Library/Application Support/Google/Chrome/Default/Extensions/[亂碼]/2.3

May 18, 2010

5/17 女巫店。陳綺貞



批踢踢抄來的歌單

1.靈感
2.越洋電話
3.微涼的你
4.小步舞曲
5.小塵埃
6.黑眼圈
7.孩子
8.After 17
9.下個星期去英國
10.每天都是一種練習
11.失敗者的飛翔
12.太陽
13.魚
14.讓我想一想
15.我親愛的偏執狂
16.吉他手
17.1234567 (偷偷摸摸版)
18.和妳在一起
encore
19.旅行的意義
20.80%完美的日子
21.九份的咖啡店
22.夜遊

May 14, 2010

關於android app的向下相容

今天要做一個multi-touch的功能。事實上android的multi-touch在2.0版本以後系統才有支援。所以說,在我的小N1上使用這些API當然是沒有問題的。然而,應該不會有人想做了一隻程式卻要限定2.0以上才可以使用吧,畢竟1.5/1.6的市占率還是不低呢(版本分佈參考這邊)。尤其又有某些廠商遲遲不願替手機升級... 殘念...

言歸正傳。程式寫好之後,若沒有限定minSDK版本的話,是可以安裝的。安裝的時候或者upload到market的時候並不會檢查裡面是不是有用到哪些不支援的API。像這樣的API錯誤,會在run time才出現。

幸運的是,很快就找到相關文章有寫到解法了。

所以說,如果希望寫出來的程式能夠向下相容,ex.在2.0以上可以具有multi-touch的功能,但在舊版的android也至少不要當掉。該如何做呢?

android的Dalvik VM使用delayed class loading的作法。也就是說,class會在要被使用到的時候才會load起來。如果class沒有被用到,那就不會load,也就不會讓VM complain有VerificationError了。

所以我們查查API,發現可以使用android.os.Build.VERSION.SDK_INT來作為OS版本的判別,於是很開心的用下去的結果,卻發現怎麼在1.5 Cupcake上還是照樣掛點...囧...。原來,這個SDK_INT從1.6 Dount之後才開始出現,還真是搞笑了... XD

再檢查一下,原來我們應該要用Build.VERSION.SDK去做check。這是跟SDK_INT完全一樣的數字,只不過是String的版本。所以說,我們的code可以這樣寫
public boolean onTouchEvent(MotionEvent event) {
boolean hasMultiTouch = Integer.parseInt(Build.VERSION.SDK) >= 5;
int nPointer = hasMultiTouch ? WrapNew.getPointerCount(event) : 1;
// ...
}

至於裡面的WrapNew的class則是我們自己implement的一個static class,用來把那些舊版SDK不存在的method包起來的一個class。類似底下這樣
class WrapNew {
static int getPointerCount(MotionEvent event) {
return event.getPointerCount();
}
}

這樣一來,就可以避免VM發生VerificationError了。

詳細請參閱引用來源。這篇文章真的寫的超棒的,淺顯易懂,英文又不難。雖然我有把主要重點的地方翻譯/寫出來了,還是相當值得一看。

May 6, 2010

好快的Chrome!

其實是因為看了這個影片。


超快的於是我就去裝來玩玩看了。

因為慣用firefox幾個好用的add-ons,但原生的chrome並沒有那些功能。所幸新的chrome也支援extensions了。幾個常用的add-ons都找的到對應的extension for chrome。照樣加上chrome為關鍵字做搜尋即可。

剛裝到現在試用了ad-block,flash block,以及chrome gesture。基本上常用到的大概也就這幾個吧。

adblock方面,可以從firefox的adblock把filter匯出,然後貼到"C:\Users\water\AppData\Local\Google\Chrome\User Data\Default\Extensions\gighmmpiobklfepjocnamgkkbiglidom\1.4.26\filters\adblock_custom.txt"這個檔案裡面是可以work的,看來語法並無差異。

之外,若要在chrome直接block某些頁面的ad,安裝"Browser Button for AdBlock",右上角會出現adblock的按鈕,按下按鈕選擇"block an ad on this page",之後點擊頁面上ad的區塊,再拉動那個bar,選擇想要block的範圍大小就可以了。操作上比ff的adblock還要更直觀一點。

之外,開啟facebook跟plurk的速度都蠻快的。不過一開就發現我的噗浪幾個圓角都不見了。chrome是webkit base的瀏覽器。需要的朋友可以參考這篇去對plurk的CSS做修改即可。

目前這樣短短的用了一會兒,各方面的使用都頗正常。也許也可以考慮拿來取代firefox了咧。真的是好快呀!

5/7。從ff版貼上去的adblock filter不曉得有沒有作用,發現原本的filter就已經可以慮掉很多東西了。這點還有待觀察。