替照片上的每個人都加上標籤(tag)是一個蠻好用的功能, 這可以方便你找到有某人的照片, 或是一群人在某時的合照, 如果善加利用是相當好用的功能, 目前主流的幾個相片服務像是Flickr, Facebook, Picasa等等, 都有這樣的功能

其中以Picasa的功能最為先進, 它可以自動幫你把你所有照片裡的朋友都挑出來標示, 不像Flickr跟Facebook就只能手動

如果每張照片都只能手動標示的話, 標示完所有的照片是很累人的, 更何況可能還有很多未標示的舊照片, 就這點來說, Picasa就強勁很多, 至於Facebook和Flickr呢? 所幸有Face.com

Face.com是一個做自動標示的服務, 其實這樣講有點狹隘, 自動標示照片的服務只是它其中一個產品 - PhotoTagger, PhotoTagger的用處就有點像Picasa做的一樣, 自動幫你把照片的人物找出來做標示:

_2011-05-01_8
當然準確度不會到100%那麼高啦, 不過加上手動輔助的話, 已經可以節省不少功夫了

此外還有PhotoFinder和CelebrityFindr….不過這些並不是重點, 它真正比較強大的是, 它乾脆把它的Face detection和Face recogintion 的API開放出來, 讓你可以利用它們的雲端運算做出自己的應用

它的API是以REST的形態提供的, 支援的後端服務有Facebook, Flickr, Twitter, 基本的API也大致相當完整, train, detect, recongnize, tag等等, 如果是做Facebook相關的應用, 甚至可以省略過train的部份, 就可以達到辨識的效果

當然, 剛剛的應用像是PhotoTagger都是以拍完後的照片為目標而做的, 如果拍照完後馬上就可以找出有哪些人可以tag的話, 那就更棒了

為了實驗這個我寫了一個簡單的Android app - Face.me , 只要拿著Android手機對著你朋友拍一張(按螢幕畫面), 它就會利用Face.com去找出你這朋友的名字 (可以從連結下載APK安裝, 因為Camera部分不熟, 寫的不太好, 可能會有bug, 就不open source了 :P) 

這App利用了一個open source的Face.com的Java lib叫face4j, 基本上這lib移植到Android上並不困難, 它用到一些apache commons, http的library, 只要把這些含入就可以

要開發這個, 首先你必須要有Facebook API key和Face.com的API key, Face.com的API key可以到這裡註冊個新的, 另外還得把Facebook的API key和secret註冊到Face.com上(看你信不信任它囉)

Facebook API的部份, 我是用Facebook Android SDK去開發的, 其實也沒用到幾個API, 大致上只有login和取得自己的UID而已

另外由於face4j在reconigize這個method只支援檔案跟url兩種方式, 我另外修改了一個支援input stream的:

https://gist.github.com/950492.js?file=gistfile1

剩下的部份就簡單了, 在Camera.takePicture的第三個參數的PictureCallback.onPictureTaken裡加上:

很久之前就有這篇的構思, 兩天前又想到, 又忘了寫下來了, 趁這時候記憶還新鮮時, 再來寫一次

Social network和隱私權的問題已經是被探討到爛了, 很多聽到大多是負面的, 我倒也不想從"好"或"壞"出發啦…只是每次這個主題都讓我想到一部Jim Carrey的一部電影"The Truman" Show

The Truman Show

這是一部已經十幾年的電影了, 是Jim Carrey所有電影內我最喜歡的其中一部(另一部是"23"), 電影內, Truman是一個生活在一個虛假的人生的可憐蟲, 所有的人生是假的, 朋友也是假的, 所有的一切只是為了一個受歡迎的節目 - “The Truman Show”

倒也不是說這種事情可能發生在現實面, 或是說有可能發生在網路的世界, 只是覺得, Truman之所有會有這樣悲慘的人生, 主要出自於, 人類"窺探"的慾望, 這也就是狗仔一直會存在這世界的原因

人對自己以外的人, 或者關心, 或者好奇, 總會多多少少有著想知道, 別人"怎麼了?“, "在想什麼?”, “去了哪裡了?”, 有時候就算是事不關己也會有好奇想窺探的心態(這也就是八卦雜誌為啥那麼好賣的原因了)

那這又跟Social network, Facebook 有什麼關係呢?

記得在電影"The Social network"裡面有一段說到, 當你在課堂上看到一個正妹, 你可能就會迫不急待的想回宿舍開啟Facebook查看她的資料, 甚至"Poke"她, 如果Facebook是一個相當封閉的朋友網路, 那你就不可能做到這樣的事情

以往, 你可能要碰到朋友才可能跟他聊起彼此最近碰到的事情, 或許你平常很想知道他怎麼了, 但電話, 信件卻不一定即時聯絡的到, 就算聯絡的到, 也不見得可以一定聊到你感興趣的雞毛蒜皮的小事, 但現在的人, 大概就是三不五時的不管在電腦前面, 或是走在路上, 都想連上Facebook看看朋友(甚至不是很熟的)的最新狀態

人是群體動物, 不一定能夠很容易克服獨自存在的孤獨, 渴望的知道同類的事, 渴望隨時與同類做溝通, 總是希望可以知道的越多越好

但從另一方面來說, 人是很矛盾的, 在渴望對同類的"知"外, 也期待的擁有自己完全的隱私

Facebook並不是第一, 也不是唯一的Social network, 但它是非常成功的, 雖然, 就算是網路巨人Google也擁有Orkut, 但現在卻也端不出可以來迎擊的菜, 反而備受威脅, 為什麼? 就隱私權保護, 就社交功能上來說, Facebook都不是很好, 很多基本功能也只能說是普普而已, 但我覺得Facebook之所以會吸引到這麼多人, 原因就是在於做這些東西的人, 一開始的思考方式本來就不是在提供大家一個實用好用的工具, 而是只是為了"好玩"

“好玩"這件事很重要呀, 為了好玩, 才有可能無所顧忌的想盡辦法去做一些好玩的事, 如果只是死板板的為了功能而做, Facebook只會是另一個Orkut而已, 不會是Facebook

很不幸的, 工作上總碰到人把Facebook當做實用性的工具在做, 如果它不好玩, 就不會吸引人家來了…

自從Facebook可以讓user指定name後, page和profile的url就變成這形式了:

http://www.facebook.com/YoYoMa

雖然說Graph API可以用name, 但對REST API和FQL就大多需要ID, 傷腦筋

還好, 這些還在html source裡面, 打開查:

fbpage_id=80753646336

這邊80753646336就是YoYoMa的page id, 至於uid, 就用"uid=“當keyword去查

講到問答網站, 可能會想到的是Yahoo奇摩知識家, 如果是developer可能會想到StackOverflow

不過今年有另一個新型態的問答網站崛起, 就是以社群(Social network)為基礎的

這之中有一個由前Facebook CTO所創辦的Quora最近還蠻受注目的(至少是吸引到我的目光 :P)

最近看起來TechCrunch就很喜歡上Quora挖資料挖訊息:

詳見: Q: What Does Quora Mean For The Future Of Blogging? A: Business As Usual

Quora跟傳統問答網站不同的是, 它會依據你的興趣來列出關於你感興趣的主題的問題, 這樣一個好處是, 你會感興趣的東西通常會是你也會想知道答案, 或是你會知道答案, 這樣一來, 問出問題被有效回答的機率也會比較高

而他靠什麼來判斷呢?當你把你的Facebook帳號跟Quora帳號連結一起時, 它就會去Facebook找出所有你喜歡的, 建議相關的主題給你Follow, 還會自動Follow你Facebook上你也follow的朋友, 並且會根據朋友follow的主題來建議你, 這樣一來, 對於你喜好的精準度的掌握還算蠻高的, 你問的問題也有更大的機會讓真正對這主題專精的人回答

此外, 我最喜歡的功能是, 不但人, 主題可以follow, 你也可以去追蹤某個問題, 隨時可以得知有沒人對這個問題給一個不同的或是新的答案

有時候令人驚奇是, 出來回答你問題的人可能會跟這問題直接相關的人, 比如說你可能問一家公司的狀況或是相關問題, 搞不好這家公司的相關人士(甚至CXO)都跑出來回答你….

本來想寫一篇這主題的, 後來想想, 跟自己工作太過接近, 寫了也不好, 所以這篇單純來推薦一篇好文:

Social Networking: The Future

其中的"Social Graph will become portable", 其實我想的稍微多了點, 不過還是先推薦這篇就好