2010-06-26

Flartoolkit-Flash的3D模擬

日本高手把ARtoolkit改寫為Flash的source

有興趣的人可以去看看

官網:http://www.libspark.org/wiki/saqoosha/FLARToolKit/en

1.x的版本是FlashPlayer 10以前可以用的版本

2.x的版本是FP10以上才能編譯或測試的

這二個版本都是as3的code,只是,2.x多了vector,這只有FP10才有include…

所以,如果你想用2.x版本來做,且你又只想用Flash professional的話,那你要使用Flash CS4以上的編寫工具才行

不然就建議改用免費的Flash Developer

至於sample程式嘛,你抓下來後,在src底下會有一個Main.fla跟Main.as

這就是FLARtoolkit的sample…在此就不多說

Flash Media Server(FMS)的第一步-架設

Flash Media Server(FMS)是啥東東,英文好的人可以看http://www.adobe.com/products/flashmediaserver/
以我解釋嘛,就是一個專門做Flash多媒體播放、錄製的服務台;
你想線上錄製影像或聲音,可以。
你想線上播放影像或聲音,可以。
你想線上自拍視訊、聊天,可以。
反正你想做一個你自己的Youtube,這一個也是可以的。

當然,那麼多功能的東西,以Adobe來說它是不會讓你用的開心,玩的快樂的。
你要不受限制的使用,請付錢。
FMS的免錢版本,是有連線數的限制的,但如果你只是想在確定要不要付錢買之前試玩,倒是可以用用。

哪裡下載
https://www.adobe.com/cfusion/tdrc/index.cfm?loc=en_us&product=flashmediaserver


你要先有Adobe account,然後就可以下載了
我目前使用的是FMS 3.5的版本,在Adobe下載頁中雖然有Linux跟windows的版本可以選,但事實上他的下載包是包在一起的…所以載那個都沒關係。

怎麼安裝
如果你是用Linux的,那請你詳細看Linux package中的INSTALL或README,我就是覺得麻煩才改灌Windows的版本
如果你是用Windows的,那很簡單,除了安裝路徑你可以調整和後台管理帳號新增之外,其他的都下一步(Next)就行了。

注意
因為FMS他會自帶安裝Apache,所以如果你安裝的電腦另有其他web-service的話,最好先停掉他,因為FMS的apache會用80 port
至於你安裝完後要不要再改port,那就隨便吧

站台位址:http://your-fms-ipaddress/
進入站台後,你應該會看到黑色底的首頁畫面,畫面中間會有一個火車的影片正在run,這是FMS預設的RTMP串流播放
現在要進入後台,你可以點選紅色那一塊上的二個按鈕中左邊的那一個,叫做「Launch the Flash Media Administration Center」或直接連結

http://your-fms-ipaddress/fms_adminConsole.htm,然後輸入你在安裝過程中新增的管理帳號與密碼就可以登入了
而後台能幹嘛
主要是看你application的連接數跟量
不過基本上,後台應該不會太常進入,因為也沒什麼好看的…建議是把FMS的apache服務給停用,想用的時候再啟動就好。

ok,架設篇結束

2010-06-21

MS-KMS---哇咧機有夠車

最近學校註冊windows 7 kms都出現0xC004F074

雖然不知道,但我懷疑會不會跟我windows 2003還在用KB948003 kms v1.1有關

不過不是很確定,所以,裝新的一定沒錯

結果,一裝就發現,kms on win 2003的更新真麻煩

本來以為,參考蘇老碎碎念-在Server 2003升級KMS 1.2服務版本下載KB968915直接安裝就行了,裝完執行slmgr -dlv還是在Kms1 edition…怪了…

後來從文章中反覆思考,我才發現,當初要裝KMS 1.1的方式中,要先裝KMS 1.0 service,再裝KB948003 KMS 1.1才從1.0升級到1.1,所以我本來的升級想法是,要從1.1升級到1.2,所以直接安裝KB968915 kms 1.2就對了;結果根本就不是,要升級1.2的方式也是用1.0升級1.2才行…

看不懂?
簡單,就是把原先的kms服務都移除,然後重開機,再重新安裝kms 1.0 for windows 2003,再安KB968915

===
迷之聲:
其實,我後來上微軟看KB968915的說明,其實,要升到kms 1.2,只要你先有kms的服務就行了,不管你是只有1.0還是1.1,裝了KB968915都會變成1.2版…

再迷之聲:
狐狸我升級1.2之後,再測試認證的程式,還是出現0xC004F074的錯誤,這是為什麼?
上網查,GOOGLE的資料告訴你只有三種可能
1)可能server端kms不是1.2的版本
2)可能client端連不到kms server
3)(忘了…)
1)的可能性絕對不可能,因為這一篇我都說我更新到1.2了,3)我都寫忘了也就代表了不可能發生…所以,一定只剩下2)

試著在client做telnet 1688,結果,連不到…
然後在server做netstat -ano,1688是有Listen的…所以,一定是firewall

然後,在server的windows 內建firewall中發現,我某一天自己把1688的放行給取消掉了…靠…再核取就連線ok了…
原來是我白目…啃!!!

2010-06-03

amfphp-HelloWorld

開始進入Flash remoting的第一個程式…helloworld
首先,我們先寫好一個叫HelloWorld.php的php程式…原始碼如下


class HelloWorld { //注:class的HelloWorld要跟你存檔的檔名一樣

    function Say ($message) {

        return '回:' . $message;

    }

}

?>
存檔後要切記,這個HelloWorld.php要放在amfphp/service底下才算活在amfphp中…要不然,你會無法使用它
放好後,可以先做測試,你可以連上你amfphp的browser,你會看到在左手邊的那一個框中會出現你這個叫HelloWorld的東西,如果沒出現,那就是你的程式沒放在amfphp/service底下
如果有看到,就點它一下,你就會在右手邊看到這支程式的狀況,你可以點到test的頁籤,會看到一個叫Say的東東,沒錯,這個就是上面HelloWorld.php的function Say()
而在底下會看到一個叫message接著一個輸入框的,也沒錯,這東西就是function Say()中要傳的$message…接著你就可以在文字框中輸入值,再按下Call的按鈕,你就會看到底下的result會出現回應值
如圖
===

amfphp---介紹

架好server端之後,當然就要開始從初入門玩起
在寫程式之前,先介紹一下為什麼要用amfphp而不用像FMS(Flash Media Server)或RED5
因為呀,我手邊拿php的環境比較快,FMS雖然有試用版,但整體而言吃資源頗大,而且rtmp的串流技術是adobe的閉門技術,感覺上就讓我沒有feel…
而RED5嘛,它跟amfphp一樣是free-source,只不過是java base,前置環境跟write code也是要有一些條件
所以,我就拿amfphp先來入手

但,我必須說,FMS的入手是很快的,在WIN的環境下,安裝好就都好了
而amfphp比較會遇上config的問題…
比較常見的就是編碼跟debug…
所謂編碼問題,這個好解決,只要到amfphp/gateway.php的127行,你應該會看到
$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
把ISO-8859-1改成UTF-8來用unicode來做就行了…中文就會正常
不過網路上也有人說要把utf8_decode改成iconv或mbstring,因為我不知道為何要這樣修改,所以我是沒這樣改啦

再來,會有一些可能會遇到的bug…修改的方式如下
  1. amfphp 1.9在php 5.3以上的版本會有問題??

    基本上應該是說2010/02/02以前出品的amfphp 1.9會有這個不相容的問題…2/2當時的版本就沒這個問題了…那主要的問題是因為,2/2之前的,他仍是使用在php 5.3以後就被禁掉的eregi_replace…你可以到amfphp/core/shared/util/MethodTable.php中的505行,你找到eregi_replace的,都改用preg_replace就行了;可以參考http://labs.almerblank.com/2009/10/amfphp-fatal-errors-after-php-5-3-upgrade-part-2/
  2. 在寫flash與amfphp溝通,在測試時會看到錯誤「Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion at Main()」

    大概有可能是二個因素…

    a. 中文問題,你可能沒改用UTF-8的編碼(如上述的編碼問題)

    b. PRODUCTION_SERVER debug message:你可以在amfphp/gateway.php的132行看到它,主要有可能的發生的原因應該是你是遠端連線,而非本地端連線(我從字面上看好像是這樣的意思啦)…如果你都不是localhost的測試的話,比較有可能會出現這個Error,所以,你只要把135行跟138行註解之後,應該就會正常了;可以參考http://gslfaye.blog.163.com/blog/static/122125221201041911938788/

amfphp---踏逐Flash remoting的第一步[架設]

架設非常的簡單
先到官網下載最新的release的版本,我下載的時候是1.9(2010/02/02出品)
再來就是把下載好的檔案解壓後,應該會有[_MACOSX]跟[amfphp 1.9]二個資料夾,前面那一個應該用不到
後面的[amfphp 1.9]我是改成叫[amfphp]之後,就丟上伺服器(linux + apache + php)的web底下
測試是否架設ok?
瀏覽器網址輸入:http://webpath/amfphp/browser/index.html
第一次成功開啟的話,會出現amfphp的一個詢問框,那個就維持預設值唄(我是這樣做的),按下save之後,然後就會看到一個湛藍色的底然後左手邊白框的一個頁面…
有看到就代表你架設ok了

2010-06-01

TabNapping---小心你不注意的分頁

分頁、頁籤的分離功能,是現今許多軟體都會加上的一項東東
很方便,一個frame中可以「切換」你想要的區塊或叫Tab

最近上阿碼科技…看到在5/27的消息…發現了分頁綁架--TabNapping的手法

這的確是一個麻煩的東西…
麻煩在哪,麻煩在分頁

為什麼分頁很麻煩

因為,這個綁架技巧很機車…它在你current tab是這一個有問題的網站時,它的綁架就已經發生…但又很巧妙的讓你不知道,因為你正觀看這個網頁的時候,它已經摀上你分頁的嘴,所以你的分頁就靜靜的讓你繼續瀏覽它的內容

那有可能你會說,反正正在看的當下它又不會有反應…那就看完後就把分頁關掉就好啦

沒錯,但重點來了,你要「記得」關掉才行

為何我會這樣說?
因為,其實一般人使用電腦的習慣是,把一堆東西都開出來,然後想要用什麼再點選該應用程式再用,「暫時」不用的話就換下一個要使用東西到最上層或者切換其他的東西,原來前一秒還在使用的東西並不會關掉

這TabNapping就是利用這個習慣,在你「正在」使用的時候,它靜悄悄的不出聲,等到你不是「關掉」而是縮小、切換到其他視窗或分頁時,才會啟發它綁架的行為…
而正是因為你「縮小」或「切換」,所以注意力都集中到其他的地方上,自然而然就不會想到剛剛的網頁正在做什麼…而且一般人都以為網頁是「被動」的…

那當在你不注意的時候,那個網頁就可以準而跳轉到其他帶有malware或釣魚的網站讓你自投羅網…

跳到帶有malware的網頁可能還算小事,因為現在防護軟體的保護力不算弱,所以比較能夠防的住,但釣魚網站就不一定的…因為,人類是一個注意力很容易集中跟分散的動物,而且也是一個在集中後分散,或分散後集中的狀況下,很容易忘記東西

如果這個時候,被綁架的分頁連到一個釣魚網站,而這釣魚網站的模仿的網站又恰巧是你有在使用的金融、信用或帶有重要個資的網站,那你就只能來玩二分之一的勇氣了…

那怎麼防?
我想,只能靠自己用心注意了…

目前有一個叫WOT(Web Of Trust)的第三方提出了一種用來分析網站、網頁是否安全的機制,這是一個軟體,他有IE/FF/Chrome等幾方的瀏覽的plugin可以安裝,他會在你連線的網頁做出機制評判,當然,這個評判是靠全世界評等制的方式來做的…尤其在入口網站搜尋的時候,也會一併分析結果網頁,利用帶顏色的圖示告知…
為什麼我會提到這一個東東?
因為據說這軟體也會分析網頁是否帶有TabNapping的攻擊…當然,我是裝心安的成份居多啦

不過,你也可以使用noscript的方式來瀏覽未來你所有的網頁…
但,我想這樣逛網頁應該會很麻煩…

所以,就自己選著用囉