Gmail.js

前幾天看到的「Gmail.js - JavaScript API for Gmail」,這並不是 Google 官方的 JavaScript API,而是給開發瀏覽器套件的人用的 JavaScript API。

甚至有給範例,讓你可以透過 Chrome Console 嘗鮮:

看文件發現比較特別的是提供了 Observe 的功能,可以抓到 Gmail 的事件 :p

php.net 被擋的後續分析...

昨天一整天 php.net 網域下的網站都被擋掉:

Twitter 上也有看到 Rasmus Lerdorf 在抱怨:

Rasmus 說是 false positive (誤判),不過我是不太直接相信他講的話...

剛剛看到 Netcraft 整理了一些資料出來「PHP.net blocked by Google: False positive or not?」,裡面有不少東西可以看...

其中最後這段:

However, a short moment ago, a Hacker News user posted some obfuscated JavaScript that was found appended to a possibly cached version of the userprefs.js script, suggesting that the PHP.net website may have been compromised recently.

The obfuscated JavaScript inserts an iframe into the webpage, which loads content from an external site known for distributing malware. Google Chrome blocks the inclusion of any content from known malware domains, although the injected content in this case no longer appears to be accessible.

這段有問題的 javascript code 的解讀可以在這裡看到說明。

如果的確是 compromise,那這事就沒完了,接下來還要找是從哪個洞進來的... 不過以 php.net 的情況,(消音)...

避免文件大量 Reflow...

今天的 Hacker News 文摘上看到關於 Reflow 的問題:「Preventing 'layout thrashing'」。

Reflow 指的是改變 DOM 後造成的畫面重新計算以及 render。

Google 有給過一些資訊:「Minimizing browser reflow」,Mozilla 也有給「Notes on HTML Reflow」,不過這兩篇都是概念性的文章...

文章的作者寫了 FastDom,把 read 與 write 包起來一起處理 (read 一包,write 一包),不過這樣寫的時候就要小心當下真正的 DOM 的值了...

不過如果只是處理 ordering 的問題,叫 FastDom 好像怪怪的...

Firefox 以 JavaScript 支援 Flash

標題不知道怎麼下比較好...

一樣是在 Zite 上看到的消息,Firefox 將引入內建的 Flash Player,是以 JavaScript 實做的:「HTML5 Flash Player (Shumway ) landed」。

專案在 GitHubmozilla/shumwayMozilla 的 Bugzilla 則是在「Bug 904346 - (shumway) [meta] add built-in SWF support to Firefox with Shumway」這裡。

純 JavaScript 的實做版本,有機會 porting 到 Chrome 上嗎?感覺安全性問題會少很多?(或是被發現安全性問題的時間?)

jQuery 1.11 Beta 1 與 2.1 Beta 1...

特地寫是因為 jQuery 1.11 將會是第一個完整切換到 AMD (Asynchronous Module Definition) 架構的版本:「jQuery 1.11 and 2.1 Beta 1 Released」。

雖然對 AMD 並不是全正面的看法,不過畢竟是一個通用的標準...

快速衝高 Alexa 排名的方法

很久前 (突然找到我在 2006 的文章) 就說 Alexa 只是個參考用的工具... (參考「Search Results for: alexa」)

如果要看結論的人請直接跳到文章尾部,中間是說明發現的過程。

昨天 (星期五) 的時候跑去找肥睡睡餵食「摩斯吃到飽」,然後 xdite 也一起亂入,剛好聊到兩件事情。

第一件事情是要幫友站 Logdown 測試流量,講了一堆嘴砲方式... (惡搞的方式先拿掉了)

第二件事情是前天 (星期四) 的時候我發現前公司 pixnet.net 的 Alexa 從六月開始排名突然爆增,大約從全球 600 名跳到 120 名,台灣排名的部份居然超越了 YouTube (目前 PIXNET 在第五名,YouTube 在第六名),但到達率、PV、停留時間都沒有大的變化,就問問 xdite 與肥睡睡有沒有什麼想法,是不是最近有上什麼功能是我沒注意到的 XD

不過餵食席間沒有討論出結果來,吃飽後閃人了... (我不確定肥睡睡有沒有吃飽啦,不過我是不怎麼餓...)

回到家後想說來研究 Logdown 使用的服務,asset 什麼的就先不管好了,到是有一段 code 我之前沒遇過:

Update:結果回到家後研究 Logdown 的服務,就看到 xdite 把 Alexa 的 js 丟上去在玩了:(剛好 xdite 也想到就同時在測了...)

<!-- Start Alexa Certify Javascript -->
<script type="text/javascript">
_atrk_opts = { atrk_acct:"KOI0g1aYS500G0", domain:"logdown.com",dynamic: true};
(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();
</script>
<noscript><img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=KOI0g1aYS500G0" style="display:none" height="1" width="1" alt="" /></noscript>
<!-- End Alexa Certify Javascript -->

一開始眼殘沒看到 Alexa Certify Javascript 這段文字,第一個想法是「xdite 你沒事自己寫個 analytics service 幹嘛啊,嫌時間太多嗎」,後來轉念一想「啊啊這會不會是什麼服務?」。

拿 atrk.js 當關鍵字一查就發現是 Alexa 的服務,再回頭來看就發現自己眼殘了... XD

嘲笑自己三秒後就突然想到「咦,餵食時提到的 Alexa 排名會不會跟這個有關?」

接下來就是查證的時間了,這時候 Internet Archive Wayback Machine 拿來考察變得超好用:「http://web.archive.org/web/*/http://www.pixnet.net/」,6/9 的 snapshot 時首頁還沒有 atrk.js,6/20 就有了:

gslin@GSLIN-DESKTOP [~] [12:02/W3] curl -s http://web.archive.org/web/20130609121320/http://www.pixnet.net/ | g atrk.js
gslin@GSLIN-DESKTOP [~] [12:02/W3] curl -s http://web.archive.org/web/20130620181016/http://www.pixnet.net/ | g atrk.js
(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();

另外兩個也有類似現象的網站,分別是 mobile01.com

以「http://web.archive.org/web/*/http://www.mobile01.com/」的資料來看,2012/12/27 的 snapshot 還沒加入 atrk.js,2013/1/15 的則加入了:

gslin@GSLIN-DESKTOP [~] [12:06/W3] curl -s http://web.archive.org/web/20121227040802/http://www.mobile01.com/ | g atrk.js
gslin@GSLIN-DESKTOP [~] [12:06/W3] curl -s http://web.archive.org/web/20130115110655/http://www.mobile01.com/ | g atrk.js
<script type="text/javascript" src="/web/20130115110655js_/https://d31qbv1cthcecs.cloudfront.net/atrk.js"></script>

以及 ck101.com

以「http://web.archive.org/web/*/http://ck101.com/」的資料來看,4/24 還沒有 atrk.js,4/30 的加入了:

gslin@GSLIN-DESKTOP [~] [12:07/W3] curl -s http://web.archive.org/web/20130423092213/http://ck101.com/forum.php | g atrk.js
gslin@GSLIN-DESKTOP [~] [12:08/W3] curl -s http://web.archive.org/web/20130504162245/http://www.ck101.com/forum.php | g atrk.js
(function() { var as = document.createElement('script'); as.type = 'text/javascript'; as.async = true; as.src = "/web/20130504162245/https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(as, s); })();

所以結論就很簡單啦,如果 Alexa 排名對你是很重要的 KPI,Alexa Internet - Get Certified Site Metrics 趕快付錢加入試看看吧!XDDD

可以看到有三個不同的版本,如果要測試的話 USD$9.99/month 的第一個月還免費,可以先測試看看?(不知道是不是要 USD$149/month 的才有效...)

PS:以後看 Alexa 排名還得參考他有沒有掛這東西,好累...

不支援 IE{6,7,8} 的 jQuery 2.0...

jQuery 2.0 的消息:「jQuery 2.0 Released」。2.0 版與 1.9 的功能相同,只差在支援度:停止對 IE{6,7,8} 的維護及 workaround。

如同半年前在「jQuery 2.0 將放棄 IE{6,7,8} 的事情...」講的,如果在 John Resig 還在的時候應該不會放棄 IE8...

這是 2012 年七月的數字:

這是 2013 年三月現在的數字:

仍然是超過 10% 而且不太往下掉的數字...

在瀏覽器玩 HTML5 + JS + Canvas 寫的 Diablo...

沒錯,是 Blizzard 的那個 Diablo (暗黑破壞神):「Isometric minimal-code style game at html5 canvas and javascript」,遊戲可以在「http://mitallast.github.com/diablo-js/」這頁玩...

直接用 Blizzard 的圖資搞當然是很精彩 (而且很震撼),但這樣搞不會被 DMCA takedown 嗎 XDDD

John Resig 寫超過三年的 Secrets of the JavaScript Ninja 終於出版了...

寫到從 Mozilla 換到 Khan 了... XD

John ResigjQuery 的建立者,並長期擔任 jQuery 的大頭 (不過目前已經將位置讓給其他人了,不太深入參與 jQuery 的發展了),所以在 John Resig 還在帶領 jQuery 發展時預定所要出版的書「Secrets of the JavaScript Ninja」備受期待。

The cover of Secrets of the JavaScript Ninja

然後這一期待就是三年... 從 2009 年開始寫 (參考「50% Off Secrets of the JavaScript Ninja」這篇),終於在 2012 年結束之前寫完上架了:

嗯,HUNTER×HUNTER 什麼時候會出下一章呢...

node.js 版的 YUICompressor...

看「Fantastic front-end performance Part 1 – Concatenate, Compress & Cache – A Node.JS Holiday Season, part 4」的時候發現 node.js 版的 YUICompressor 比起 Perl 版本更早之前就 porting 完成了:「UglifyCSS」,甚至是官方版本的「yuicompressor / ports / js / cssmin.js」也都遠早於 Perl 版本...

npm 裝 uglifycss 就可以用了...