關掉 Mac OS X 上的平滑捲動...

起因是想要關掉 Google ChromeMac OS X 上的平滑捲動,找了半天都沒看到,後來被人提醒,Mac 系統有選項提供平滑捲動,Google Chrome 有平滑捲動可能是由作業系統提供,而非 Google Chrome 自己實作:

關掉後問題就解決了...

Mac 下 Google Chrome 的 textarea 預設字型...

要編輯維基百科的時候發現字寬好像不太熟悉,多看了幾個站台,發現 Google Chrome 在 Mac 下面對 textarea 預設的字型不是等寬字... 而且預設的套件沒辦法修改 :o

知道問題後,就是要找解法了... 目前的解法是裝 Stylish,對所有站台的 textarea 加上 font-family: monospace;,這樣就可以避免當網站沒有對 textarea 指定 font-family 時看起來很突兀...

Google Chrome 的 user script 與 Greasemonkey 的不同...

實在是睡不著,來整理一些資料...

不知道「User Scripts - The Chromium Projects」這份是否 outdated 了,但至少發現在 Google Chrome 裡面推薦用 @match 設定 url,不過原先的 @include 還是可以用:

Support for Greasemonkey-style @include patterns is also implemented for compatibility, but @match is preferred.

在 Greasemonkey 的「Metadata Block - GreaseSpot」說明中則是用 @include 設定,直到 0.9.8 (2011/08/01 release) 以及之後的版本才同時支援 @include@match

之後改寫 script 的時候再更新好了...

改用 jquery-ujs...

昨天聽 othree 提到 jquery-ujs (Unobtrusive scripting adapter for jQuery),裡面有不少 convention 可以直接套用。othree 在三月有寫一篇文章介紹:「jQuery-ujs」。

雖然 repository 看起來是給 RoR 使用,但直接把 rails.js 抓下來用「<script src="rails.js"></script>」掛上來,還是可以用在非 RoR 環境裡。

直接看 code 也很好懂,舉幾個例子來說:

<?php $sToken = hash('sha256', session_id()); ?>
<meta name="csrf-token" content="<?php echo $sToken; ?>">
<meta name="csrf-param" content="sToken">

表示 CSRF token 名稱為 sToken,值為 hash('sha256', sesssion_id())

對於想要先跳出 confirm dialog,再決定要不要繼續執行的連結,可以加上 data-confirm 表示:

<a href="/delete/1" data-confirm="是否要刪除?">

如果要用 POST (上面的 delete operation 不應該用 GET,因為資料被變更),可以加上 data-method

<a href="/delete/1" data-confirm="是否要刪除?" data-method="post">

或是直接用 DELETE,在 server side 可以讀 _method 這個值:

<a href="/delete/1" data-confirm="是否要刪除?" data-method="delete">

最後,建議大家去看 jquery-ujs 的 wiki,上面有針對用法有比較完整的說明,配著 source code 一起看會比較容易上手。

AWS 美西 Oregon 機房

AWS 在美西開了新的 region,地點在奧勒岡:「Announcing the new US West (Oregon) Region」、「Now Open - US West (Oregon) Region」。

Announcing the new US West (Oregon) Region

region 的代號是 us-west-2,機器、頻寬、request 價格都與美東維吉尼亞 us-east-1 相同,也就是比加州 us-west-1 便宜一些。不過目前的 routing 還需要調整,台灣有些 ISP 過去會需要 170ms...

要測試新東西應該會在這邊測試吧 (latency 會低一些),不過要等 Ubuntu 官方到上面建立 AMI...

jQuery 1.7 版,並計畫瘦身 jQuery...

jQuery 1.7 前幾天丟出來了,可以看到很多對 event 操作的改善,包括效能與功能 (新增了 .on().off()):「jQuery 1.7 Released」。

另外今天又看到瘦身計畫:「Building a Slimmer jQuery」,希望把一些「應該要拿掉」或是「應該要被修正」的問題處理掉... 所以在 jQuery 1.7 標為 Deprecation,預定在下個主版本就會處理掉這些問題。

目前 (對我家) 最主要的影響應該是 .live() 會被拔掉,以及之前有使用 .attr('value') 取 current value (要 current value 應該用 .val() 取得)。

看起來是往好的方面進行...

用 Nexmo 送簡訊

Twitter被丟了訊息,這類訊息通常就是看看而已... 但是連上去看了以後發現價錢相當便宜:「Nexmo - Pricing」,台灣的簡訊是每則 EUR$0.011,相當於 NTD$0.45...

Perl 寫了程式測,測了兩次都很快收到,大約五秒鐘內吧。不過發現中文還是有問題:(這是「中文測試」四個字)

丟回去給丟我 Twitter 的人了,不知道會不會解...

Update:是我程式的問題 (少了指定 type=unicode),不是對方的 API 有問題:

來把一些東西丟上去玩看看...

擋掉 Google Plus,加快 Google Reader 速度...

Google Reader 這次改版另外一個為人詬病的問題是「變卡」,主要原因是 Google Plus

第一個想到的解決是利用 Adblock Plus,將 http://www.google.com/reader/* 以及 https://www.google.com/reader/* 連到 https://plusone.google.com/* 的連線需求都都擋下來。但看了 Adblock Plus 的文件,不知道要怎麼設定...

後來想到的解法是自己寫 Google Chrome Extension,主要是很久沒寫都忘光了,剛好找個實際會用到的功能來寫... 主要是用到 chrome.tabschrome.experimental.webRequest 兩組 API 組合。其中後面這組 API 必須用 about:flags 打開權限才能使用。

成品在這:「google-reader-faster」,由於用到 Google Chrome 的 Experimental API 所以無法上傳到 Web Store,所以暫時先用 dev mode 把 extension 讀進來用。之後要來再研究看看 Adblock Plus 是怎麼做到的...

把 Google Plus 擋掉後用鍵盤快速鍵操作順很多 XD