2010年8月30日 星期一

[廣告]米蘭數位科技上海分公司徵才


職務名稱:      Flash actionscript 互動設計師(上海)
需求人數:     1人
職務類別:     多媒體動畫設計師、Internet程式設計師
職務說明:     如果你:
1. 對於互動技術有強烈熱情,追求技術與創意完美結合
2. 具有遠大的抱負與開疆闢土的野心
3. 有志前往上海,進入國際大舞台
請立刻加入上海米蘭(米狄兰营销策划上海有限公司)!


我們需要的是:
1. 需熟悉ActionScript3及物件導向,能熟練常見網站行銷用途的class,能獨立完成互動專案
2. 不需要會視覺設計,不需要懂Server端語言或資料庫, 但要有概念。
3. 實作過Flash任一種3D引擎,AR類別庫,VR效果者優先。
4. 喜歡與團隊合作的默契,我們喜歡打群架不要定孤支。
5. 具有克服問題,協調溝通的能力。
6. 樂天且積極的態度 - 工作中不忘記笑聲,閒下來時仍不時想要充實自己。
7. 自認對於異地工作能適應者。


應徵流程:
1. 履歷中必須能附上作品或是能展示能力的任何東西
2. 書面審核通過後需接受電話訪談
3. 待遇結構面議

應徵方式
職務聯絡人:林鴻儒先生
聯絡e-mail:rainey@mail.medialand.com.tw ; welson@mail.medialand.com.tw


也可以寄給我jason@mail.medialand.com.tw



2010年8月19日 星期四

控制Facebook FB.ui跳出的對話框大小


Facebook Graph的js api有一個很好用的東西,那就是FB.ui。
FB.ui基本上就是叫出一個對話框,裡面可以塞入很多你想塞進去的東西,最常用到的就是把stream.publish給塞進去,或者是跳一些alert訊息。
要塞到FB.ui裡的東西主要是以FBML為主,目前為止我實驗了一下,只有like button我怎麼塞都塞不進去,其他的好像大置上都ok。

FB.ui有另一個可以解決長久以來flash在wmode=transparent之下輸入中文的問題,因為FB.ui可以強迫該對話框是要以「iframe」的形式或是「popup」的形式呈現,預設是iframe。iframe的話就是一般facebook的對話框直接疊在畫面上,但是一但flash的wmode=transparent的話,該對話框會因為flash的關係而變得破碎甚至有些東西不能點,因此我們可以指定對話框改用popup的方式出現,這樣一來對話框就會變成另外的跳出視窗。

但是如果把FB.ui的對話框指定成popup的話,雖然大部份的時候都很正常,但是還是會遇到一些問題:
1. 一定要有滑鼠的點擊事件觸發才可以叫出對話框,否則會被瀏覽器擋下來。
2. 如果是stream.publish的話,在某些電腦的IE8上會被視為是cross-site script attack,沒辦法正常呈現發佈頁面。
3. Bookmark的功能被放到popup裡會出現程式錯誤(不知道facebook修好了沒)
4. 即使帶入寬高的變數,它仍然不理你。

嗯,這篇就是要解決第四個問題。

原理很簡單,有點tricky。其實就是直接去改變js api裡面FB.ui對話框的大小預設值,然後呼叫FB.ui跳出視窗,然後再馬上把預設值還原,以免影響其它FB.ui的正常大小。
以下的code我是把邀請朋友的畫面塞到popup裡:



2010年8月17日 星期二

使用ByteArray做一些基本的檔案保護


這一篇的概念很簡單,應該也已經有許多人都這樣在用了。基本上只是一種做心安的保護動作。

不知道為什麼只要遇到bytearray的東西我都覺得很有興趣,雖然這東西說穿了就是直接改binary,沒什麼太大的學問,但是我總覺得光改binary就可以玩很多東西。例如AS3Swf、LivePDF、FZip等等的東西,都是用bytearray玩出來的。

以上說的那些都需要詳讀相關的specification,才能知道哪一種檔要在binary的哪一個地方塞入什麼值,要自己去寫一個的話是很耗時跟耗工的,感謝國外的強者們。

這一篇要說的相反,要保護一個檔案,最簡單的方法就是把它binary搞亂,亂到電腦看不懂,其它人就很難直接把你的檔案拿去用。
因為把binary搞亂了,自然無法直接在電腦上跑,因此如果flash裡要使用的話,就還得先把檔案讀進來重新還原到原本的狀態才可以使用,這是比較麻煩的部份,因為寫code時就要多加一道decode的程序。一般來說會這樣搞的機率不大,swf也都有現成的軟體可以加密保護,但是像mp3這種東西就沒有了。
之前遇到的案子是客戶希望在網站上播放的音樂要保護起來,但是又沒錢買FMS,那怎麼辦?
那就只好把mp3的binary搞亂了。

點下面這裡看範例:
Demo
原始檔下載:
Source


在Encode的地方選檔案並另存後,可以試播看看,基本上會是聽不到什麼的,用其它player播放即使聽得到聲音也只會是一些怪聲音。
在Decode的地方選擇剛剛編碼過的檔案後再另存,就可以發現檔案已經回覆到原來的狀況可以直接播放。
我這個範例裡只是純粹的將mp3每100個binary互相倒置,把binary的順序搞亂而已。
如果要用更複雜的編碼也是可以,同樣的道理而已。

這種方法只是做心安的,只要被人crack到原本的編碼方式,對方又會寫程式的話,也是會被還原回來的。
但我想這樣已經可以擋掉大多數的網路使用者用現成的工具抓取mp3回去聽了。



2010年8月12日 星期四

Facebook取得某個網頁被按了多少次「讚」及有誰按「讚」


之前因為沒特別有這個需求,因此就沒去測,今天測了一下,發現有點有趣。
拿我blog裡其中一篇文章來測的話,這篇:http://blog.iamjason.com/2010/07/aniclip.html

基本上要取得讚的東西應該都是直接走FQL了,所以我先去object_url這個table取得對映到這個網址的object_url:
Select id from object_url where url='http://blog.iamjason.com/2010/07/aniclip.html'

跑出來的結果得到這個網址的object_id=410602097134。
然後再去like這個table撈一下有哪些人按過讚:
Select user_id from like where object_id=410602097134

出來的筆數有三筆,可是facebook的social plugin顯示的是四筆,查到的三個人裡面有兩個是我的朋友,另一不是,我猜最後那個「失蹤」的使用者可能隱私權設得比較高吧?
因此看樣子不能直接從這裡得到按了讚的總人數,因為可能會有誤差。

所以如果要得到按讚的總人數,就只好透過link_stat這個table了:
Select like_count from link_stat where url='http://blog.iamjason.com/2010/07/aniclip.html'

這樣出來的結果就正確了。

至於能不能不透過social plugin就可以按讚(例如在flash裡)?
目前似乎沒有開放,但是既然都是透過http在傳資料,很多東西都是有跡可循的,以下這篇(http://labs.byhook.com/2010/08/03/facebook-like-button-in-flash/)就是觀察按了讚之後送出的資料來反推,再去判斷從flash裡要送出哪些參數,但是作者也說了,他很多參數不知道是代表什麼意思,只是盡量讓它能work而已。
所以我暫時不打算去試,就看facebook到時會不會開放了。
不開放就再做打算…><。





2010年8月5日 星期四

讀取相片的Exif資訊 - Exif library for AS3



要讀取Exif資訊其實不會很難,直接用bytearray去拆解就可以,但是很費工,今天偶爾看到這個,有人已經寫好現成的類別了,那就省事多了,照片裡有經緯度的話也讀得到,所以直接標在地圖上也是很ok的。
(只不過它的授權是限非商業用途…使用時請注意~)

Demo網頁:
http://shichiseki.jp/as3/exif_info.html

Google Code:
http://code.google.com/p/exif-as3/

有興趣自己寫拆解Exif資料的朋友,下面這個是Exif的格式:
http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html