透過Facebook Android SDK去sign in Facebook其實很單純, 只需要這樣幾行code:

if (!facebook.isSessionValid()) {

    facebook.authorize(this, new String[] { “publish_stream” }, new AuthDialogListener());

}

其中AuthDialogListener是繼承自Facebook.DialogListener, 因為Authentication dialog是由Facebook SDK處理的, 應用程式只要負責處理onComplete, onError等等callback

但單純這樣的code會在手機內有安裝Facebook for Android時發生問題

因為後來Facebook導入所謂Single sign on的機制, 讓Application跟Facebook for Android是可以用同一使用者的

Single sign on的原理很簡單, 只是透過Facebook for Android去做proxy login的動作而已, Application只消去Facebook註冊一個自己的package signature就可以了

但由於原本舊的Login視窗是包在SDK內一起被build進applciation package, 但在SSO機制內, Dialog是由Facebook for Android出的, 因此如果沒有加下面的code, AuthDialogListener的callback都不會被call到

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco} span.s1 {color: #9a1867} span.s2 {color: #0023c7} span.Apple-tab-span {white-space:pre}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

facebook.authorizeCallback(requestCode, resultCode, data);

}

這是由於Facebook SDK是用startActivityForResult去call Facebook for Android, 因此application必須加上這行自己接它的callback再轉送給原本的listener

買GF-1之前本來是用Sony Alpha-100, 本來是Minolta 50mm F1.7, Sigma 17-70mm, Sony 105mm三鏡, 為了買GF-1, 賣掉105mm的, 而50mm F1.7懶的賣, 而且Sigma 17-70mm在之前變焦環壞了, 這兩顆就留了下來了

後來買了M42的老鏡加轉接環後發現手動拍攝也蠻好玩的, 所以就去買了Alpha to M4/3轉接環(有光圈播桿, 可調手動光圈), 接了50mm F1.7後, 覺得還蠻不錯的, 就想說壞掉的西格馬也拿去送修拿來用好了

送到恆伸修的經驗還蠻好的, 不得不說服務不錯, 星期一我用黑貓寄到台中的維修部, 星期二他們一收到就打來問我壞掉原因, 下午就跟我報價問我要不要修, 然後請我匯維修費, 費用匯完隔天馬上就說修好要寄回給我了, 今天(12/23)回到家, 包裹已經在等著我了

當然不用說, 馬上合體, 雖然不能自動對焦, 所有都得手動來, 但這還是一顆不折不扣到Marco, 對焦距離短, 以後有多一顆鏡頭可以應用了

這顆算是我第一顆單眼鏡頭, 當初買A-100沒買Kit, 買這隻當Kit, 雖然不是我最喜歡那顆(最喜歡的賣掉了), 不過也算蠻常用的(被我轉到對焦環壞了)

– 前言 –

Safari2Phone做兩天就膩了(天呀, 我無可救藥), 昨天想到玩點別的

第一階段目標, 用"<canvas>“ tag + JQMobile (其實非必要) 做了一個Tocuh Draw, 就是手指在Canvas上畫圖, 像這樣(這是測試結果):

—-

測試平台: Nexus One (Android) + WebView

碰到的問題:

Canvas可以很正常的在Android上跑沒問題, 但主要是event的問題, 本來用addEventListener(‘mousemove’, draw)的方式, 沒想到在mobile環境全部怪怪的

手機上的event應該是touchstart, touchend, touchmove, 其中touchmove跟mousemove有點不同, mousemove不用mousedown就會被觸發, 但touchmove卻是在有touch的狀況下才會發生

touch event的點也不一定只有一點, 所以有event.touches, 而這是一個array, 裡面放每一點座標, 像是clientX, clientY之類的

Canvas的部份, 用moveTo->lineTo來畫這些經過點就可以達成了(筆記: 下一步做一個queue來儲存)

好久沒po個幾篇胡言亂語了

這陣子聽了不少觀念, 也想了不少東西, 也開始抽時間做一些自己想study的, 很久沒去做這類的事了

昨天去了Trend Micro, 也趁機跟老弟聊了一下, 交換經驗

又開始想, 自己到底想要做些什麼? 又是想以什麼樣的態度來處事?

一天過去, 其實也還沒啥結論, 不過有幾個字一直在腦海繞來繞去…. Simple, Creative, Fun

或許, 如果做事可以just for fun應該可以快樂很多, 如果做事情可以用更creative的方式來做, 也應該會快樂很多, 至於生活, 簡單, 或許才可以多活幾年吧….

其實這是我自己無聊寫的啦, 這是我第一隻Safari Extension, 不過我不打算publish到Safari extension網站, 放這邊就好, 請點此下載

這是從Chrome2Phone porting來的, 如果不知道Chrome2Phone是啥東西, 可以先看一下這段影片:

要玩這個東西, 首先你必須要有隻Android手機….

然後Android手機上必須裝Chrome2Phone:

裝完後, 你會發現有個烏七媽黑的button 在你的tool bar上(抱歉, 沒做美工… orz)

當你想把正在看的網頁送到手機上, 就按下這個button, 如果沒有登入, 會有一條新的bar上面有顯示訊息叫你登入, 點選連結即可登入

Chrome extension跟Safari extension本質上蠻像的, 所以要po蠻容易的, 基本上花了我一晚上的時間, 從開始看Safari extension的文件開始, 到這個可以正常工作, 今晚回來後又稍微小修點bug再release

Chrome2Phone本身原理也蠻簡單的, 加上也open source, server端跟Chrome extension端都有source可看, extension端其實只是透過XMLHttpRequest把資料傳送過去, 這部份甚至可以原封不動reuse

讓我花比較多時間才發現的是, redirect url居然hard code在server端, 導致我的extension最後登入完只能被導到醜醜的圖, 本來想透過injected script讓他碰到那張圖的url就導到我的page, 但似乎好像沒辦法在tab內開啟extension package裡的一個HTML

總之, 先這樣, 有空再修好了, 繼續找看看有沒其他好玩的來玩..