最近 Opera 台灣隨著15週年辦了一系列的活動,包括使用者聚會、校園講座與徵才,15週年記者會等,小弟我有幸參與了其中幾場,好像可以簡單介紹一下XD。
Opera 大約是去年年底在台灣成立分公司,雖然 Opera Desktop 在台灣幾乎是沒什麼能見度,可是在電腦以外的平台佔有率還是最高的,不過 Opera 台灣並沒有打算只專注在這些平台,除了推廣外,還要把台灣為數不少的 Opera 使用者集結起來,讓社群成形,現在不但有正式的中文討論區,還有官方的 Twitter帳號 和 Plurk帳號,另外還有 Opera 第一手消息這個部落格。目前是可以預見他們會對台灣使用者開始投入些心力、資源,總之是好是一件。
在這次活動中,有人問到,為什麼 Opera 功能那麼強,但是使用者還是不多,那時候 Andreas 說他們也好奇原因,其實我一直以來也很納悶, Opera 本身除了效能好,還內建很多功能,其中不少還是 Opera 首先推出的,但是一直以來他們的佔有率就是不高,即使成為免費版後也沒有提昇多少。不過我想這會一直是個難解的問題,但是至少我自己選擇的原因我還有點印象,說來算是時間點不好,當我在決定要選哪個瀏覽器時,Opera 畫中文還畫的很難看,這應該是我當初選擇使用 Firefox 而不是 Opera 的主要原因(我對這種東西很外貿協會的XD),後來才知道 Firefox 很多擴充套件的功能是 Opera 直接就有內建的。
剛好大約一個月一次的摩茲連續聚,我下次還沒想到可以分享什麼東西,大概就介紹 Opera 吧XD,所以應該這兩天開始要強迫自己用 Opera 用一個月了XD,到時候從功能面來介紹它:P,雖然不能吸引到 IE 使用者跳槽就是~_~。
昨天我才被微軟救到,今天它就用 IE 來討債了Q_Q,這件事要從 JOYSOUND 講起, JOYSOUND是日本的一個卡拉OK系統,前陣子推出了 Wii 版,讓使用者可以用便宜的月費就可以唱到數萬首日文歌曲,不過使用上有個問題,就是它的網頁沒有針對 Wii 版的搜尋功能,透過 Wii 介面來搜尋又不夠快,於是我就自己手寫了一個 http://joysound.othree.net/,資料來源是他們網站,我定期去撈新增曲目,結果最近太混,才發現 7 週沒有去更新,網頁上又只保留 5 週份的更新資料,於是就趕快上 Google 看有沒有 cache,順利的找到4份中的3份,但是有一份找很久都找不到,過了幾十分,找了一堆日本的搜尋引擎,才在日本 MSN 找到那個網頁的 cache,於是心中一顆大石頭終於落地,也實在沒想到會讓微軟幫到這樣一個大忙。
時光飛逝,歲月如梭,一下就來到了新的一週,早上九點半開始開了四小時的會,回到電腦前一看發現有 IE bug 要解,沒想到這一個 bug 讓我整整花了4個小時才解決掉,一開始看起來是 javascript 問題,搞到最後竟然是無法說明的 CSS 地雷,花了數小時,只砍掉下面這樣一行東西而已:
right: 0;
更讓人難過的是這個 bug 是在 IE7, 8才會發生的,講到這我就必須要抱怨一下 IE,這陣子處理不少問題根本都還是 IE7, 8 還在的,感覺上 IE 這兩次升級對於 javascript 相關的部分都沒什麼改善,這也是為什麼我決定把這裡弄的讓 IE 都看不到。
最後就是提一下,大概要怎麼判斷是不是 CSS 地雷,和要怎麼找,基本上,會被稱為地雷,就是那種會看起來應該不會有問題,出了問題你也不知道問題在哪的狀況,如果是 javascript 的問題現在瀏覽器都可以妥善處理,不小心跑進無窮迴圈也不會跑到死,所以如果一直出現找不到的問題發生點的話,那就有可能是 CSS 地雷了,像我這次遇到的狀況是整個 IE 吃光 CPU,但是不會有訊息問我要不要停止執行 script,然後我找了很久,排除頁面上各種可能產生影響的 javascript,最後才懷疑到 CSS 上,這時候我已經浪費超過三小時了,要判斷是不是 CSS 問題到很簡單,先把 CSS disable 掉試試看就知道了,如果一 disable 掉問題就沒了,那很明顯就是 CSS 的問題,接下來就是用消去法來尋找造成問題的 CSS 定義,就不贅述了。
真的最後了,就是其實 JOYSOUND 現在已經可以在網頁上搜尋 Wii 版曲目了XDD。
這裡本來用下面的語法來阻擋IE使用者:
<!--[if IE]><style type="text/css">* {display: none; !importanat}</style><![endif]-->
不過用IE還是看的到 title,不太愉悅,今天 EvenWu 推薦我另一個弄法:
<!DOCTYPE html> <!--[if !IE]>--> <html> <head> <title>blah...</title> </head> <body> blah blah... </body> </html> <!--<![endif]-->
現在用 IE 來看感覺真是棒XD
課程主要目標是教 JavaScript,網頁方面的應用只是最後塞時間用的,而且時間有限,要提的 Feature 不少,變成會是比較介紹性質,沒時間帶實作(不過應該一人會有一台電腦可以用,可以自己在下面用Firebug玩),簡單列一下要介紹的東西:
首先來看一下 Opera 在今年愚人節推出的臉部表情控制吧。
應該很多人看過了,我想大部分人應該都會笑一笑看過去(聽說有人當真了@@),不過我確實覺得這東西有機會做出來,這想法是來自另外兩段影片,首先第一段是 Jonny Lee 的 TED Talk,Jonny Lee 在 Wii 上市後,用它的控制器作為互動介面弄了不少有趣的玩意,他在 TED Talk 介紹了其中兩個,第二個是很有趣的 3D 應用,利用 Wii Remote 和 Sensor Bar 來判斷視點相對於螢幕的位置和角度,依據這些資訊來改變畫面,用單純的螢幕做出更接近真實的3D效果,機下來就來看看這段影片吧。
接著第三段影片做的事情和 Johnny Lee 做的事情一樣,不過用的技術和用途也不太一樣,這是日本 H-Game 公司 TEATIME 推出的 Face Tracking 技術,不過他的原理是用 Web Cam 來做臉部辨識,然後判斷臉部和螢幕的相對位置,藉以改變視點,如果視點很低的話,遊戲中的女生也會有相對的反應出來,官方網頁上有影片可以下載來看,不過 YouTube 上也有人上傳了。
看著第三影片後,就覺得這技術似乎有機會實現臉部表情控制,至於為什麼要實現,我是想過或許可以作為輔助的操控手,或是讓無法用手腳操控的人使用吧,現在相關的輔助控制我比較知道的是用眼球追蹤啦。
週末要到摩茲連續聚介紹可能的網路未來,以下整理一些相關連結。
前陣子透過 Manic 才知道這個超讚的授權,WTFPL - Do What The Fuck You Want To Public License,「隨便拿去做你的鳥東西」授權條款,超棒的,裡面的說明和 FAQ 都很值得一看。
onload 越來越少人在用,而改用像是 DOMContentLoaded 這種事件來代替,像是 jQuery 也有個 ready event 可以用,主要是因為 onload 事件還要等待網頁中所有的元素都讀取完畢(或是 timeout),這些元素包括圖片,其他網站的 style, script,flash 物件等,常常訪客開始看網頁內容時,需要執行的 script 卻還沒開始執行,不過並不是所有瀏覽器都有支援 DOMContentLoaded 或是提供其他替代方案,所以各家 js library 為了處理這問題就無所不用其極限。
我是傾向用另外一個方法處理這問題,不過需要一些對網頁內元件的控制能力,其實也很簡單,就是把 script 放在頁面尾端,然後馬上跑,這方法除了可以解決上述問題外,還有另外兩個好處,一是所有瀏覽器都支援,二是可以讓網頁內容先讀進來才跑 script,這也是 YSlow 的建議項目之一,當然如果你就是想那讓那些瀏覽器的使用者看起來感覺不好,就當我沒說吧XD。
文章都採 WTFPL - Do What The Fuck You Want To Public License 授權條款