測試 wkhtmltoimage 的效果

在「FreeBSD 上使用 wkhtmltopdf 做網頁擷取」看到有人在 FreeBSD 上用 Linux emulator 跑 wkhtmltopdf 成功,那麼 Linux 上當然更沒問題啦...

同一個計畫裡有 wkhtmltoimage,可以直接輸出成 PNG 格式,不過輸出的 PNG 沒有壓縮過 (應該吧,下面這張測試的原始輸出是 ~10MB,處理後是 ~500KB),要用 pngcrush 處理後才會比較小。

不過 PIXNET 的網頁都會 segmentation fault 是怎樣 XD

Update:在「Segmentation fault while generating http://www.pixnet.net/」這邊回報後,trunk 版修正了。

wkhtmltoimage 輸出結果在這,點下去會出現原圖:

之前透過 Firefox 的方法的輸出結果,點下去會出現原圖:

可以看出來字體的部份有差... 不過處理的速度與方便度比 Firefox 好太多了。

台固的 Akamai cluster 似乎撤掉了...

前陣子 jnlin台固到香港變差,結果剛剛才發現 Akamai 從 7/26 後會把台固的使用者導到香港,而不是導到原本在台固內的 cluster:

遠傳 (Seednet) 的就沒這個問題:

這麼一來,台固出國變差也不是什麼奇怪的事情?

在 Linux 上架設 Screenshot Service (2010 年了?)

在 2008 年的時候 xdite 寫過一篇「在 Linux 上架設 Screenshot Service」,不過現在是 2010 年了,不少當初有問題的地方都已經改善了,現在要架比之前方便不少...

測試的平台同樣是在 Linode (referral code 是 fdbacc96dbddafce9ba444dd678357416d0323d5) 上跑 Debian lenny (也就是 5.0 版),為了避免 Adobe Flash PlayerLinux amd64 上會出問題,我在 Linode 上用 32bits 版。

Linode 把預設的 Debian 裝完後,先把整個系統升級到 Debian squeeze 並且重開,然後先裝「locales」這個套件,再用 dpkg-reconfigure locales 把 en_US.UTF-8 以及你自己會用到的 locale 勾起來。

接著開始裝必要的套件:

  • flashplugin-nonfree
  • iceweasel
  • ttf-arphic-bkai00mp
  • ttf-arphic-bsmi00lp
  • ttf-arphic-gbsn00lp
  • ttf-arphic-gkai00mp
  • ttf-arphic-ukai
  • ttf-arphic-uming
  • ttf-wqy-zenhei
  • xvfb

Iceweasel 其實就是 Firefox,因為商標問題而在 Debian 上有不同的名字。在英文版維基百科的「Mozilla Corporation software rebranded by the Debian project」這篇文章裡把前因後果講得很清楚,這邊就不提了...

除了必要的套件外,接下來裝 TightVNC server,準備透過 VNC 設定 Iceweasel。設完後可以移除掉或是留下來,我自己是留下來 (反正檔案不大),有時候可能要進去 about:config 調整參數...

TightVNC server 用 tightvncserver :0 跑起來,然後遠端連進去把 Iceweasel 跑起來測試看看有沒有問題 (可以透過 PuTTY 的 tunnel 將傳輸過程加密),沒有問題的話就裝「torisugari: Command Line Print」這個套件,裝好後再把 Xvfb 跑起來,用這個指令抓圖:

DISPLAY=:2.0 iceweasel -print http://zh.wikipedia.org/ -printmode png -printfile ~/zh.wikipedia.org.png -printdelay 10

抓出來的 screenshot 就會像這樣:(點這裡看原大小圖片)

Flash 也沒問題:(點這裡看原大小圖片)

比起之前的方法,現在的方案有兩個好處:首先是 plugin 是照正規方法裝進去,而不是直接丟 xpi,可以避免遇到奇怪的靈異現象時懷疑是不是安裝時硬塞造成的。再來是 Iceweasel 會在抓完就 shutdown,所以在網路速度夠快的時候可以提前結束,而網路不夠快時也不用擔心抓到未完成圖...

當然剩下有很多細節要處理啦,不過那是另外一回事了...

Mozilla 官方的 Firefox 套件相容性回報程式

順便可以拿來取消版本檢查...

我桌機的 Firefox 雖然是跑 3.6 系列,但筆電上還是跑 Minefield。之前一直都是靠 Nightly Tester Tools 強制套件不要檢查版本,但在 4.0 beta 後一直沒更新,於是 Nightly Tester Tools 就失效了... XD

後來在 comment 的地方看到有人說 Mozilla 官方自己跳出來弄了一個「Add-on Compatibility Reporter」,一樣可以做到這件事情,除此之外還可以回報套件在新版上是否正常...

於是 Minefield 的套件就都跑起來了,測了一下,果然一堆套件在 4.0b3 上爛掉... XD

WordPress 3.1 將不考慮 PHP 4 與 MySQL 4

WordPress 宣佈從 3.1 版開始將不再支援 PHP 4 與 MySQL 4:「PHP 4 and MySQL 4 End of Life Announcement」。

PHP 4 與 MySQL 4 官方都已經停止支援很久了,WordPress 總算是想起來了?

另外,在 WordPress 3.2 版後 (預定在 2011 年的上半年發行),對 PHP 的最低需求會再提高到 5.2 版,這是因為目前使用非 5.2 以上的數量只有 ~11%,所以他們希望半年後可以再把需求更新...

HTTP Redirect Response Cache

之前在 debug 時為了 HTTP Redirect Response 的 cache 問題測過一些,發現結果很亂,後來找到一些 workaround 避開 redirect response 後就沒有再研究太多。今天在「Redirect caching deep dive」這篇看到在討論 HTTP Redirect Response 時的 cache 問題,作者把幾個常見的瀏覽器都測過一次作成表格...

可以看出來情況還蠻複雜的,雖然 RFC 有定義 cache 的時機,但沒有一家完全照 "SHOULD" 的規矩來 XD

不過既然有人提出來而且整理成表格了,之後應該會修正...

Twitter 要建立自己的 Data Center

Twitter 剛剛發的公告:「Room to grow: a Twitter data center」。

目前 Twitter 是購買 NTT America 的 transit,預定在今年秋天時在 Salt Lake City (鹽湖城) 建立自己的 data center。

就文章所說得部份看不出來打算做到什麼程度,但我猜以 Twitter 目前的規劃,應該是租用既有的機房空間,而非從建築物開始蓋。在建立自己的網路架構後,混合 transit 與各 ISP peering。這種方法比較接近 Google龍潭所成立的機房。

不知道之後會不會在 conference 上介紹怎麼弄機房...

Rackspace 的 OpenStack

Rackspace Cloud 提出了 The OpenStack Project,以 Apache License 2.0 公開了兩個專案:OpenStack Compute (Nova) 以及 OpenStack Object Storage (Swift) (目前 Swift 需要登入)。

兩者的文件可以在「Welcome to nova’s documentation!」與「Welcome to Swift’s documentation!」這兩邊看到,都是以 Python 開發出來的架構。對應到 AWS 的架構分別是 EC2S3。由於剛被丟出來,還沒有什麼測試資料與數據可以看,不過文件還蠻完整的,應該很快就有人將測試結果與感想丟出來。

除了底層的基礎建設外,在 Launchpad 上可以看到其他的專案在發展,像是 OpenStack Web Control Panel