2011年11月14日 星期一

Adobe放棄開發行動平台Flash Player之我見

一、前言
2011年的119日, Adobe 宣布放棄行動平台上的 Flash Player 開發,聲明稿一出後,引起各方譁然,台灣媒體開始捕風捉影、斷章取義的亂報,諸如 Flash 已死、 Adobe Apple 投降等標題隨處可見,而搞不清狀況又激動的 Flash 設計師們,則開始哀鴻遍野,認為自己是被拋棄的一群,本法師實在看不下去這個因無知造成的亂象,所以寫這篇文章,希望以正視聽,不管你對這個消息關不關心,至少我把真相告訴你!希望這篇文章出來後,看過的人不要再隨著媒體人云亦云、Flash 設計師不要再抱怨了。

二、名詞解釋
我想大家一定覺得很奇怪,為什麼寫篇文章要像寫論文一樣,還有名詞解釋,其實名詞解釋才是真正的重點,這一整串的誤解,就是一群搞不清名詞定義的人弄出來了,況且為了讓我以下說明方便,所以我必須先把一些名詞作定義
1.     Adobe Open screen project:透過 Flash Platform 讓開發者只用同一套程式碼,僅花一次開發的時間,同時把程式部署到多個平台上,然後讓使用者有一致性的體驗。
2.     Flash Platform:係指 Flash, Flex, AIR 三種技術所構成之平台。
3.     Flash: Flash Platform 實作技術之一,以 Flash Professional 作為主要開發工具,以Flash Player 作為載體,主要應用於互動式多媒體、影音播放、動畫、遊戲等創作,為封閉架構。
4.     Flex: Flash Platform 實作技術之一,以 Flash Builder 作為主要開發工具,以 Flash Player 作為載體,主要應用於與伺服器端程式及資料庫整合之資訊系統開發,為開放原始碼架構。
5.     AIR: Flash Platform 實作技術之一,以 Flash Builder 作為主要開發工具,可將專案直接編譯成多平台原生程式,主要應用於桌面端原生程式開發及行動平台原生程式開發,為開放原始碼架構。
6.     Flash Player:為一瀏覽器之外掛程式,外掛後可以使瀏覽器瀏覽 swf 格式
7.     腦殘媒體:不經查證只會從論壇、PTT Mobile01 上面取材報新聞的媒體。

8.  Flash 設計師: Flash Professional 從事多媒體內容製作之人。

三、聲明稿節錄
我與台灣腦殘媒體記者只會從論壇、PTT Mobile01 上面取材報新聞不一樣,我們直接看原文的聲明稿!

有興趣的人可以把它看完,沒興趣的人可以看我整理出的結論
1.關於 Flash Platform ,未來將聚焦在:
(1) AIR 開發行動平台應用程式
(2)在桌面端以瀏覽器透過 Flash Player 開發遊戲及動畫
2.未來將增加投注在 HTML5 (含開發工具、整合性方案及瀏覽器)上面的資源(包括經費與人力)
3.未來將不再主動開發行動平台瀏覽器適用的 Flash Player

四、個人評論
前面兩點並不受到大家的關切(但其實是最重要的),反而是最後一點,特別被拿來作文章,而且引起了非常廣泛的討論以及各方不同的解讀。事實上,以本法師的角度來看, Adobe 會做出這樣的決定,是再正常合理不過的,這也是必然的結果,那為什麼各方媒體會全面性錯誤的解讀呢?主要就是因為大家不了解 Adobe Open screen project

1.     什麼是 Adobe Open screen project?
主要是讓開發者用同一套程式碼,只需要花一次開發的時間,把程式部署到多個平台上,然後讓使用者有一致性的體驗,換言之,不管你的載體是什麼,只要你是透過 Flash Platform 完成的,你就達到 Adobe Open screen project 的目的,而這個計劃本身一開始就是採雙線並行的方式,一條是走瀏覽器的外掛,也就是大家熟知的 Flash Player ,你把你的程式部署到伺服器上,然後透過瀏覽器去看;另一條則是走原生程式開發,使用者必須下載你的程式,然後安裝在他的機器上執行,這也就是大家非常不熟悉,媒體記者根本搞不懂甚至沒聽過,只好選擇性忽略掉不報導的 AIR 。而不管你採用哪條路,你只需要寫同樣的一套程式碼,就可以部署在你要的地方,比方說,你可以寫一個遊戲,放在網路上用 Flash Player 執行,過幾天,你可以透過 AIR 把它轉發布成 iOS Android 的原生程式,然後放到 App Store 或是 Android Market上去賣,除了 UI 部分因為解析度不同需要做修改之外,其他要改的地方非常的少,幾乎可以做到一套程式碼部署到多個平台上。

2.     為何不再主動開發行動平台瀏覽器適用的 Flash Player?
我們先來看看 Flash Player 的發展現況
個人電腦平台(PCMAC)
Flash Player 來說,在個人電腦上面達到98%的市佔率,幾乎每台電腦上都裝了 Flash Player,因此靠著 Flash Player 便可達到 Adobe Open screen project 的目標。

行動平台(含智慧型手機、平板、智慧型電視)
但在行動平台上,則剛好相反,由於行動平台的特性,使得 Flash Player 非常不適合在上面運作,原因有四
(1)   行動平台的資源非常有限: Flash Player 過度肥大,使得行動平台在運作 Flash Player 時,非常耗電、過熱而且延滯。
(2)   市占率無法提升:行動平台的霸者 Apple ,它們的 iOS 系統並不支援 Flash Player ,而且未來根本看不到有任何可能性會支援,因此這造成 Flash Player 的市占率根本達不到一半,甚至永遠達不到一半。
(3)   使用者行為與個人電腦不同:可能是因為解析度和螢幕大小的關係,在個人電腦上,我們會掛網掛好幾個小時,但在行動平台上很少如此,如果要上網路瀏覽網頁,必定是逼不得已要去查資料,查完就下線了,使用者要獲取內容或服務的主要方式並不是透過網站,而是透過該平台自己的生態圈下載應用程式,安裝在手機或平板電腦上,這使得 Flash Player 的必要性又再度降低。
(4)   HTML5 的興起與 Flash Platform 技術的濫用:講到 Flash Platform ,大家直覺都會想到惱人的廣告 Banner 、網站選單、開門動畫或是影片播放器,接著才會有人聯想到遊戲、多媒體互動製作,而鮮少有人會聯想到資訊系統及應用程式開發,這是長時間 Flash Platform 技術被濫用的結果,事實上這些大家直覺會聯想到的東西,是 Flash Platform 最不重要也是最被濫用的部分,而現在 HTML5 興起,透過原生的方式,完全取代掉 Flash Platform 這部分的角色,換言之,在 Web 上,如果網站設計採用 HTML5 標準的話,所有瀏覽器都可以相通,而原本 Flash Platform 被濫用的部分,也可以回歸到原生 HTML ,使Flash Platform 重新回到它應有的角色以及戰略位置。

AIR 又如何呢? AIR 在行動平台上就顯得非常吃香, AIR 本身就具有發布原生程式的能力,換言之你不需要改變現有的 Flash Platform 技術,只需要透過 AIR ,就可以轉發布成各平台上原生程式,並且結合該平台的生態鏈進行販售,這剛好符合行動平台的使用者行為,因此在行動平台上, AIR 反而是比 Flash Player 要適合發展。而且 AIR 已經發展得很好,這個遊戲在 iPad 上就拿到了付費排行榜第一

如果你是開發者,能直接開發原生程式並且獲利,你會想要透過 Flash Player 去執行嗎?開發完後還要找台伺服器放著,然後還要伴隨著讀取緩慢、效能拖垮、耗電又收不到錢的副作用,我想沒人會這麼傻。

那既然已經達成 Adobe Open screen project 的目標,為什麼還要繼續堅持開發幾乎永遠不可能達成目標的行動平台版的 Flash Player ?對一間公司來說,首要目標既已達成,放棄備援方案這是很正常的吧!

3.     Adobe 不是反 HTML5 的嗎?那未來將增加投注在 HTML5 上面的資源是什麼意思?
對開發者來說, Adobe 投注在 HTML5 上面的心力遠勝過 Apple ,第一個 HTML5IDE 就是 Adobe 出的,官方名稱叫做 Edge (目前仍為 preview 版,可免費下載),支援多平台的所見即所得設計模式,整個介面邏輯跟 Flash Professional 非常的像,對傳統的 Flash 設計師來說上手應該不難,此外也出了轉換工具,可將現有的 Flash 專案轉換成 HTML5 ,如果有留意 Adobe 動向的人,應該不難發現 Adobe 從來就沒有選邊站過,也沒排斥過 HTML5 ,這兩大技術的論戰都是只懂二分法的媒體跟粉絲群們炒出來的。
大家務必要記住一件事, Adobe 是靠賣 IDE 賺錢的公司,只要 Adobe 持續做出好用的 IDE ,管你是用哪種技術去實作,管你平台是他自己推的還是別人推的,他都能從中獲利,現在很明顯的看到 HTML5 是未來網頁設計的趨勢,不投資在他的開發工具上?難道要繼續在永不可能成功的行動平台版 Flash Player 上燒錢嗎?

4.     如果網頁設計將來要被 HTML5 取代,那 Flash Platform 的未來在哪?
我一直強調 Flash Platform 的架構很大,不是只有做做 banner ,播播動畫而已,這是最不重要的應用,也是最被濫用的應用,今天把網頁設計回歸到 HTML ,是絕對正確的做法,在行動平台上,這種 RIA 的需求應該是透過 widget 或是 native app 來達成,而非跑一個這麼大的 runtime 吃記憶體與耗電。

但在大型專案的製作上,就能顯示出 Flash Platform 的實力,如現在最紅的連線 DOTA 遊戲英雄聯盟,他的連線核心,是用 AIR 做的, Unreal Unity 這兩家遊戲引擎公司則宣布支援 Flash Player11 的發布,換言之,未來你可以用這種 AAA 級的遊戲引擎製作遊戲,然後發布成swf檔,放到網路上讓人透過瀏覽器去玩,而目前 demo 出來的遊戲,不論是效能還是品質都令人讚嘆, HTML5 要達到這樣的水準,所耗費的成本會遠大於使用 Flash PlatformAdobe 這樣的決策,只是讓 Flash Platform HTML5 回歸到他們應有的戰略位置,也讓這兩種技術的分界更加得清楚, Flash Platform HTML5 從來就不是敵對的,而是相輔相成的。



Flex 來說, Flex 本來就是鎖定在企業用戶的資訊系統開發,這由他所提供的元件庫和強大的資料處理與展現能力上可以看到清楚的定位,光是 chart 元件,就已經輕鬆幹掉許多商用的圖表元件了,而 Flex JAVA,ASP.NETPHP 等後端程式的緊密整合,以及完整的 Framework ,在具有前後端以及資料庫的大型資訊系統開發上, Flex 都不失為一個好的 solution ,加上透過 Flash Player 當載體,也沒有跨平台的相容性問題。

至於 AIR ,如果你真的看懂我前面所講的,那不用多廢話了,能在 Windows 上面開發各行動平台的原生程式,光這點就足以持續投資下去, Adobe 只要不斷的改進 AIR 產生出來程式的效能,以及提供更便利的 API 即可,我相信大有可為!

5.     Android 平台上是不是再也看不到 Flash Player ?
當然不是!這是目前最大的誤解! Adobe 只是停止開發新版本而已,原本到 Flash Player11 的版本還是繼續維護,在 Android Market 的程式也不會下架,我不知道為什麼會引申成為 Android 平台上面再也看不到 Flash Player ?然後讓果蠅高潮到不行,這他媽太跳 Tone 了吧!
換言之,對使用者來說,你還是可以用 Flash Player11 來看 Flash Platform 產生的內容;對開發者來說,只要你發布時,版本相容性選擇 Flash Player11 以下相容,那發布的內容就一定能被看到;對廠商來說,以現階段 HTML5 還沒普及的情況下, Android4.0 以下的平台上可以瀏覽 Flash Platform 發布的內容仍然是與 iOS 間最大的區隔,至於要不要凸顯這個區隔?這是競爭優勢還是劣勢?就交給你們家 Marketing 部門去決定了。

6.     Flash Platform 是不是死了?
如果說 Flash Platform 比喻成一個人體,那 Mobile Flash Player 就可以算是盲腸,今天這個盲腸發炎了,而且吃藥醫了好多年都好不了,弄得很痛苦,最快最簡單的方法,就是把他割了,盲腸割掉,人等於死了嗎?沒有,人反而會更健康。同理, Adobe 已經用了數年的時間證明在行動平台上面植入 Flash Player 是不理想的,現在把他的開發資源終止掉,轉為更有效益的利用,讓 Flash Platform 的定位更明顯,這反而是好的,況且,只不過是不再開發行動平台上新版的 Flash Player ,又不是全部的 Flash Platform 都謝謝收看,你擁有的技能還是可以到處派得上用場,你到底在災難性思考些什麼啊?

五、給腦殘媒體

連Open screen project在幹什麼都搞不懂,官網第一頁就有定義了.....

一個科技網站,一位科技記者,應該要持平中立的去看待所有技術與產品,更應該要深入去了解背後的原理與意涵,而不是選邊站討好某個族群或是很聳動的用【投降】或【舉白旗】這種字眼來當作標題,事實上這整件事根本與投降或舉白旗無關,如果這樣叫做投降

那請問
蘋果之前跟微軟合作,算不算投降?
蘋果放棄 PowerPC 架構改採 intel 架構,算不算投降?
蘋果可以在 MAC 上面用 VM 安裝 Windows 系統,還以此做為宣傳的賣點之一,算不算投降?

如果以上三者都不能算投降,都是廠商因應趨勢選擇對使用者與公司最佳的決策,那為什麼 Adobe 達成 Open screen project 首要目標,放棄備援方案這檔事就變成投降了?

學著去了解你所寫的東西,如果不了解的話,去官網查證一下,或是問學有專精的人士,這並沒有很困難,不要斷章取義,把你不懂的東西忽略掉,在你對不懂的東西自以為聰明的腦補前,請先補補腦。

無知是一種幸福,但無知又到處亂講,則是一種罪過!

六、給激動的 flash 設計師
~同學,冷靜點好嗎?沒有世界末日,你的一身本領也沒瞬間化為烏有,你賴以為生的 Flash Player 也沒消失,甚至連 Android 平台上的 Flash Player 也沒立刻消失,我前面寫得很清楚,只是未來沒有新版本而已,你只要發布時發布成 Flash Player11 版以前相容,就大家都能看到了。
但你未來必須要面對並且接受 HTML5 這個新技術的來臨,資訊科技的世界本來就是瞬息萬變,要走這行就得有這種基本認知,我是認為目前 Flash Platform 在網頁設計上不但是大材小用,而且是濫用,建議你放開心胸,去接觸一下 Adobe HTML5 開發工具 Edge ,你會發現跟 Flash Professional 的邏輯十分接近,如果你是一位有經驗的老手,我想要上手並不難;如果你是一位新手,建議你先學 Edge 會比較有投資報酬率,因為你現在所看到的這些網頁設計特效,未來十之八九都會被 HTML5 取代。
我一直認為Flash設計師本身是帶有美術天分的人,相信我,你這些年來所磨出來的 Sense ,永遠是你在網頁設計上的 Know How ,不會因為這樣的變動而消失,反而更可能因為新來的 HTML5 技術跟新的開發工具而發光發熱,大型多媒體專案用 Flash ,網頁設計用 HTML5 ,倚天劍與屠龍刀在手,笑傲江湖任我行,豈不快哉?樂觀點,好嗎?

七、結語
我在一年多以前曾說過這樣的一段話,【資訊科技的世界,不是零和而是競合, HTML5 他是一個 Option ,而不是一個 Solution ,這兩種技術都有他的 Destination ,永遠輪不到你幫他們做 Conclusion 】,一年多之後,世事變化很快,看起來 HTML5 Flash Platform 都已經找到他們的 Destination ,我覺得這樣的發展很好,可以想見的是未來 Web 世界,在網頁設計上會慢慢回歸到 HTML ,而 Flash Platform 則是專精在大型互動式多媒體專案、遊戲、資訊系統及 Mobile App 上,兩者相輔相成。身為一個開發者,絕對不能選邊站,否則只會被淘汰掉,身為一個使用者,也不必選邊站,享受這些技術帶來的服務便是,我想未來 Web 的世界一定會比現在更豐富,更健康。

2011年6月5日 星期日

心動的一瞬


最近的一張CG作品,因為專案太忙了,所以還沒投稿,希望大家喜歡

2011年3月23日 星期三

興趣、天賦與工作

好!時間有限!剛剛又被業主追殺.....



對在學學生來說,現在大學的錄取率已經破百,愈來愈多的大學生未來要投入職場,當然也伴隨著愈來愈多的大學生,不知道自己要什麼而選擇進入一個不知道在學什麼的研究所,學歷開始通膨,花了三十年的時間在書本上,從小學一路念到博士,只是為了要逃避當兵跟出社會,到最後出來社會還是不知道要做什麼工作,作什麼都提不起勁,只好一直換工作,履歷表上總是填不出像樣的資料.....


對於上班族來說,每天周而復始的生活,做著自己不感興趣的工作,只是為了混口飯吃,知道自己心中有夢,但卻又說不清楚是啥,職場環境跟生活壓著你喘不過氣,也沒時間靜下心來好好想想自己的未來(因為一靜下心就睡著了.....),永遠得不到自我實現,然後又過了一天.....


對於失業中或待業中的人來說,存款一天比一天少,參加一個又一個的就業說明會,蹲了一個又一個的補習班,最後只學會原廠使用者手冊上所講的功能,一個像樣的成品都做不出來,想要精進又找不到方法,補習班所講的百萬年薪離你愈來愈遠,最後搞不好還被八百年沒聯絡的小學同學抓去參加直銷.....


如果你是上面三種狀況其中之一的話,那你可能要思考一下你的興趣、天賦與工作了


在討論這三者間的關係時,我必須要先對這三者做出定義

什麼是興趣?
興趣就是某件事你周而復始的做,不但不會厭煩,還能樂在其中的事,在做感興趣的事時,總覺得時間過得很快,而且心情愉悅

什麼是天賦?
天賦就是某件事別人周而復始的做,還贏不了你做幾十次的事,在做有天賦的事時,總覺得十分得心應手,別人總笨手笨腳,或是會有【這麼簡單的問題,怎麼大家都不會】這種感覺

什麼是工作?
工作就是某件事你周而復始的做,它會回饋給你實質報酬,讓你能滿足生活所需跟物質享受的事

表面上看起來,這三者似乎是獨立不相干的,但這並非絕對,當這三者間彼此發生交互關係時,就會產生非常微妙的變化


興趣+天賦
這就叫做【天才+努力】,試想如果有一件事別人怎麼做都做不贏你,你本身又能樂在其中的不斷去做,可想而知你在這方面的成就一定會很高。或許因為大環境的因素,使得這件事沒辦法供給你足夠的生活所需,讓它成為一份工作,亦或許是目前的工作錢多事少離家近,位高權重責任輕,所以轉換跑道投資報酬率不高,但這樣的人總是不甘寂寞的,所以透過一些行銷的方式,往往可以帶來業外收入,有些生活無虞的上班族下班兼差或是做做手工藝品上網拍,往往都是這個原因


興趣+工作
這就叫做【樂在工作】,基本上,工作基本上就是每天周而復始的事,而這件事能跟你的興趣結合在一起,這是蠻幸福的事,雖然這不是你的天賦,你在工作上的表現並不一定會比一般人優秀,但最起碼你每天睜開眼睛所做的事是有意義的,你可以自我實現,這樣的人往往表現出積極樂觀的工作態度,簡單來說,工作狂.....


天賦+工作
這就叫做【職場達人】,天生就是吃這行飯的,周圍的同事也好、競爭的對手也好,怎麼努力就是做不過你,別人天天加班,你天天準時下班,別人拚死拚活天天拜訪客戶,業績勉強達到門檻,你隨便打兩通電話,業績就一路長紅,因此你在職場上面的發展一定比同儕要好,表現一定特別突出,超級業務員就是典型的例子,雖然這份工作未必是你愛的,但你也不會輕言放棄,興趣這種東西,還是留到休假再說吧


天賦+興趣+工作
這就叫做【創業家】,當天賦與興趣結合時,你已經可以達到比別人更高的成就,此時如果還能找到獲利模式與工作三者結合的時候,你絕對不會只甘願當一個上班族,因為你待不了任何公司,只有自己出來創業才有辦法滿足你內心的渴望



當天賦、興趣與工作都不能結合的時候,往往就會出現文章一開始所講的狀況,因為人一天就只有24小時,興趣可以讓你獲得自我實現,天賦可以讓你獲得成就,工作可以讓你獲得實質收入,當這三者都分開時,你時間一定不夠,因此必定捉襟見肘,勢必得放棄其中之一,甚至之二,而放棄的往往會先是興趣,再來是天賦,最後才是工作,試想,當你無法自我實現又沒成就時,怎麼可能會有工作績效?只能不斷看著時間流逝、年華老去然後自我厭惡.....


另一種人則是根本搞不清自己的天賦和興趣在哪裡,也不知道如何去檢視跟思考,因此只能不斷的試誤,至少試完後知道這不是自己要的,嗯~OK啦!多嘗試也是一種人生體驗,但如果能夠用正確的方法盡快找到你的天賦跟興趣,就能及早定下目標,畢竟人生苦短,黃金期更短,花愈多時間嘗試,剩愈少時間努力,當你花了大半輩子都在嘗試錯誤時



希望大家看完這篇文章都能夠檢視一下自己目前的狀況,也祝大家都能夠找到自己的興趣及天賦並且擁有一份好工作

小精靈發佈

老實說,我沒想到這個遊戲是以【作為我結拜兄弟的生日禮物】這樣的方式結案
不過我覺得雖然是以這樣的方式結案,不過目的是一樣達到了

自己從頭跑完一次製作遊戲的流程
把所有試玩者的意見都修改了 
嘗試了把舊的遊戲要素重新融合的構想
寫出了很機巴的AI

最後當作我結拜兄弟的生日禮物,也挺有意義 

遊戲一共兩關,原本有許多關卡構想的,後來都因為忙著做一個又一個的專案而中止
第一關是傳統的小精靈
第二關則是融合碰碰車與小精靈這兩款遊戲,玩家吃到旗子後,按空白鍵可以放煙霧,第二關的AI遠比第一關要高出許多,想挑戰的人可以試試

發佈檔案在下面的連結

Kazuya

2011年3月8日 星期二

BabyHome匿名功能出包之我見

來!先來複習一下這起事件
http://udn.com/NEWS/LIFE/LIF1/6176321.shtml

其實,在我來看,這不是一個技術問題,而是哲學問題

我每次只要一想到這件事,我就忍不住一直笑,為什麼呢?我們從幾個角度來切入思考,你就會發現這整個事件的邏輯有多荒謬



隱私
人真的很妙
你把你最最最私密的事放到最最最公開的社群網路上
然後指望一個你完全不懂的程式技術來捍衛你的隱私
這就好比是你把錢拿給陌生人保管,還期待他能幫你賺錢一樣的不切實際
如果說真的是私密的事,就不該放到社群網路上,如果你放到了社群網路上,就不能期待他永遠保密,連美國的外交機密都被公開了,你那點家務事放在一個民間社群網站上可能保密嗎?如果真能做到,那個程式設計團隊就不會幫寶貝屋寫程式,他們會幫五角大廈寫程式

小結:分享隱私的吸引力確實很迷人,但後果是致命的,這就叫做致命的吸引力



匿名
我想說到這邊,你應該還沒體會到這背後恐怖的意義,所以接下來我要講的就是匿名這件事
這也是最讓我笑不停的地方
就算程式修改好了,這些匿名也只是假匿名
如果是真的匿名,不管程式有沒問題,根本不可能知道是誰寫的文章
因為真正的匿名發文,系統是不會記錄文章與發文者之間的關聯
現在這些會員以為程式修改好了,匿名了,安全了
但那只是程式造成的假象

換言之,只是你眼中看不到而已,但並不表示他不存在!


匿名技術的做法有很多種
但不外乎是在前端透過javacript操作DOM把資料隱藏起來的,要不就是直接在後端把個資等敏感資料直接忽略不讀取,但不管是哪種做法,後面的資料庫還是原封不動地記錄著,記錄著文章與發文者之間的關聯,只要透過幾個簡單的SQL語法,就能輕鬆的查出幾點幾分誰在哪邊發什麼文


所以,這些會員以為現在很安全了
因為他們從畫面上看不到,別人也無法從畫面上查到他們的名字
所以可以肆無忌憚的發文了
但是系統卻原封不動地記錄著
你的隱私其實正完整的被記錄下來
等待有心人揭發

小結:矇上眼睛就以為看不見,摀上耳朵就以為聽不到,你以為真理在心中嗎?錯!真理在資料庫中,但創痛絕對會在你胸口


互信
在真實世界中,人很難彼此互信,用種種方法建立關係,利益互換,恐怖平衡,才能建立互信基礎,但在虛擬世界中,卻簡簡單單就掏心掏肺,再精明幹練的人上了網就變成像小孩一樣,什麼都信,或許是因為隔著螢幕,有一層朦朧美吧!或許是陌生人所以比較沒有心防,所以什麼都敢講



你會隨便路上找一個人分享隱私嗎?你會到台北車站拿著擴音器對全體旅客分享隱私嗎?


那你為什麼會想要在社群當中分享隱私,還指望人家永遠不知道,這在我這個技術人員眼中,跟拿擴音器在台北車站機哩刮拉其實沒什麼差別,差別只在於,用講的比較快.....

小結:當你以為全世界都不知道你是誰,赤裸裸的躺在網路沙灘上做日光浴時,你已經被看光了!


系統安全
好,一定會有人問啦!講那麼多,那為什麼不直接做真正的匿名就好,非要搞個假匿名呢?
答案很簡單,就是系統安全性問題

如果今天做到了真正的匿名,什麼都不記錄,不是不行,只是這樣做下去,萬一將來發生了什麼糾紛,那是真的找不到的冤親債主的,你找網管也沒用,再來對於網管來說,如果有人故意搗亂,比方說發廣告信洗版,他也無從擋起,這對系統安全並不是件好事,為了滿足某些人戴面具脫光衣服給人家看的慾望而犧牲掉系統安全,我想任何一個有腦的設計者都不會這麼做,我也一樣

小結:在私密性跟系統安全性之間,兩個極端都是玩火


解決之道
那到底有什麼辦法可以保護自己又利於管理呢?
最好的方式就是完全透明,權責自負,把真實世界的規則帶進來
然後你就會發現,去信賴一個連你自己都不懂的東西來保護你最珍貴的秘密,是非常荒謬的,社群網站其實就跟同學會一樣,你的態度應該是把他當成你日常生活的一部份,而不是情感的避風港,更不是隱私的保險箱,這才是在網路世界中保護自己的不二法門
人類期待電腦可以幫助人類做許多許多的事,尤其是管理,但最後,還是回歸到人管

2011年1月30日 星期日

[Flex應用] 動態多國語系模組(Flex+php+MySQL)

好久沒更新BLOG,主要是本法師真的是忙到快被鬼拖走.....
事實上還真的是蠻多東西可以更新的

不過忙歸忙,該做的研究還是要做

在21世紀裡,相信將會是一個地球村的時代,網站也不例外,所以多國語系往往變成網站的必要條件,只是以傳統的做法,做多國語系要不就是事先預定要做幾國(如中、英、日),要不就是先預留幾個欄位以利後續擴充,但說來說去都不脫寫死的方法,UI部分畢竟是固定的,可以透過語系設定檔的方式來做到動態的效果,但資料庫呢?如果說今天有一間公司,他本身有自己的產品資料庫,現在擴大營業了,要走向亞洲區,所以原本的正體中文與簡體中文不夠用,他還要多日文與韓文,此時想必資料庫的結構還有後端程式碼都必需要跟著改,不僅如此,連後台上架的表單也要跟著改;如果再過幾年,他又擴大營業,跨足歐洲,這下又要多英、德、法.....等歐洲語系,然後過幾年後,公司業績不佳,結束了某些國家的業務,語系又要減少,我想講到這邊,如果你是用傳統的方式作多國語系的話,應該已經瘋掉了

有沒有什麼辦法可以避免這樣的窘(冏)境?透過一種設計模式,做到一個真正動態的多國語系,不管你要增加還是減少語系,只要透過簡單的設定,所有介面包含資料庫都會跟著動態調整,這就是這次研究的主題

先來看成果
先設定語系,多個語系以逗號隔開
然後就會動態產生對應的語系欄位
表單也會動態的變化,產生出對應的語系欄位
今年是兔年,以兔子為例,輸入正體中文
輸入英文
輸入日文

然後就對應顯示到各語系欄位上

 好,到這邊都是一般的狀況,如果說現在突然要多一個新的語系

回到語系設定裡面,把要新增的語系打上去,我們以德文為例,新增德文
顯示的欄位就多了德文

新增的表單也自動多了德文欄位
修改的表單也跟著改變了,而原本的資料,透過修改的功能,也就能新增新的語系資料
輸入德文的兔子
修改完成
如果這時要減少語系
到語系設定裡面,把不要的語系刪掉,以日文為例
日文就消失了
當然表單也伴隨修改了
當然這只是一個概念的展示,其實稍微有一點sense的話,就可以聯想到這樣的設計模式可以套用到具有後台的產品資料庫上,範例中的textarea(也可變成text input),就是產品後台的說明 (或產品名稱),然後只要一新增或減少語系,前端的UI就會自動多一個或少一個tab,而後端的程式及資料庫在這種設計模式下,將具有彈性調整的能力,不管你如何增減語系,都不需要變更後端的程式,也不需要變更資料庫的結構,這個簡單範例,我是以Flex+php+MySQL實作,當然你也可以用其他相關的程式來實作

我也把這個範例的連結附給各位,有興趣的可以上去玩玩看
http://www.cloudpeak.idv.tw/multilanguagedemo/multilanguagedemo.html

Kazuya