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

在 iOS5 上面使用 mCool...

拿到 iPhone 4S 後到中華電信辦了 Micro-SIM,但 iPhone 沒辦法直接吃 mCool 方案上網 (APN 為 emome,APN Proxy 10.1.1.1:8080),得另外想辦法設定。

原來在 iPhone 4 的方法也可以在 4S (iOS5) 上面用,也就是「mCool專用iPhone設定檔 (不需JB)」這篇所提到的方法,裡面有一個 .zip 檔,解開後讓 iPhone 的 Safari 開裡面的檔案就可以了。我把檔案放在:「mCool.mobileconfig」。

記得要打電話請中華電信把 APN 為 internet 的連線權限關掉,這樣才不會收到奇怪的帳單。

Google Reader 改版,以及「自力救濟」的方法...

Google Reader 這次一改版後,在網路上可以看到一堆人抱怨到翻...

用「google reader site:userscripts.org」,然後設限 24 小時內更新的網頁,果然找到不少人試著用 Greasemonkey 寫了對應的 CSS 修改。目前看起來有兩個還不錯:

這兩個 script 在 Google Chrome 上沒問題 (沒測過 Firefox,所以不確定 Firefox 是否正常),安裝後 reload 看起來好不少...

工具類的網站還是要把空間留給資訊用,留白反而讓人不方便...

用 RVM 安裝 Ruby 1.9.3

為了跑 heroku 才剛裝完 1.9.2,就看到 TwitterGoogle Plus 有人說 1.9.3-p0 出了:「[ANN] Ruby 1.9.3-p0 is out」。

首先先用 rvm get head 更新,然後用 rvm list known 應該就可以看到 1.9.3-p0 了,接下來用 rvm use --default 1.9.3 將預設值換成 1.9.3,然後 gem install heroku 把 gem 裝起來...