<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>Gea-Suan Lin&#039;s BLOG</title>
	<link>http://blog.gslin.org</link>
	<description>幹壞事是進步最大的原動力</description>
	<lastBuildDate>Tue, 16 Mar 2010 23:18:05 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>
	<item>
		<title>P3PC (Performance of 3rd Party Content)</title>
		<description><![CDATA[Steve Souders 開了一個「Performance of 3rd Party Content」，分析 3rd party script 的效能。目前已經分析了四個 js。
看完四個 js 的分析後，可以看出來一些 pattern：

用 async script。Google 曾經介紹 Google Analytics 可以使用 async script：「Google Analytics Launches Asynchronous Tracking」。
當使用 async script 時無法使用 document.write (會有奇怪的結果)，就算不是 async script 也應該儘量避免使用。常見的方法是建立一個帶有 id 的 div，然後在 script 內用 document.getElementById() 或是等價的方式取得後在裡面插入元素，或是直接修改 innerHTML。
用 div 再修改的模式時，如果可以先確定 div 的大小，最好在 class 與對應的 CSS 上先定義 (像是廣告的版位)，可以避免頁面 re-layout。
在 Cache-Control 內設定夠長的 [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/03/17/2230/</link>
			</item>
	<item>
		<title>改寫 wretch-albumexpander.js (無名小站相簿展開程式)</title>
		<description><![CDATA[這次主要是把之前用 jQuery 1.2.6 的需求改寫，改用 getElementsByClassName()、getElementsByTagName() 以及 getElementById() 取得元素，然後用 .innerHTML 直接換掉內容。
由於這次改寫避免使用 unsafeWindow 以及複雜的 GM_* 函式，在 Google Chrome 除了遇到一個小問題之外 (可以寫一段 code workaround)，目前跑起來還蠻正常的。
參考：「Wretch Album Expander」以及 GitHub 上的「gslin&#8217;s albumexpander」。
]]></description>
		<link>http://blog.gslin.org/archives/2010/03/15/2228/</link>
			</item>
	<item>
		<title>bsdftpd-ssl 的設定</title>
		<description><![CDATA[要從紐約的主機上面拉檔案回台灣，發現 SFTP 速度只有 20KB/sec，這是因為目前 SSH 實做的方式對 latency 很敏感，在「High Performance SSH/SCP &#8211; HPN-SSH」這篇有提到相關的問題以及針對 OpenSSH 的 patch。不過，我想要用 freebsd-update 維護系統的 security update，所以我不想動到系統內的 OpenSSH。
另外一個想法是透過 FTPS 抓檔案，有不少 server software 都有支援 FTPS。在找 bsdftpd-ssl 的資料時找到以前寫的「在 FreeBSD 上支援 SSL 的 ftpd」這篇，結果發現這篇文章是因為當初 bsdftpd-ssl 在 FreeBSD 上無法編譯而改用 ftpd-tls 所寫的。現在這個問題已經解決了，但找不到之前用 bsdftpd-ssl 所設的設定可以抄，只好再 man ftpd-ssl 看一次參數。
除了先到 ports 的 ftp/bsdftpd-ssl 目錄下安裝外，還需要產生 self-signed certification。產生的步驟可以參考「OpenSSL Command-Line HOWTO」這篇的「How do I generate [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/03/15/2227/</link>
			</item>
	<item>
		<title>Debian 的 Backports</title>
		<description><![CDATA[這幾天在 VirtualBox 內弄了一台 Debian lenny (x86) 起來玩，想要多熟悉 Debian 與 bash 的風格&#8230;
不過 lenny (5.0.0) 從去年二月到現在也已經過了一年，雖然一直有在更新 (現在是 5.0.4)，但為了穩定性，並不是所有的軟體都有更新。印象中有個計畫是專門解決這個問題的，可以讓你在 stable 使用新版，但不是整個系統都換到 testing 或 unstable。
在印象中跟 &#8220;backport&#8221; 這個關鍵字有關，翻了以後找到 Debian Backports，看起來就是我要的&#8230;
依照「instructions [Debian Backports]」操作，直接把 entry 加到 /etc/apt/sources.list 內，用 apt-get update 更新一次，這時候會出現不認得 public key，不管他直接 apt-get install debian-backports-keyring 就收工了。測過沒問題後，就在「Backports.org worldwide mirror sites」這邊找亞洲區的 mirror site，看起來只有日本有做，改過去再測一次 update，沒問題收工&#8230;
由於預設仍然會使用 lenny 內的套件，如果要裝 backport 內的東西，需要用 -t lenny-backports 讓 apt-get 或是 [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/03/12/2226/</link>
			</item>
	<item>
		<title>nginx 的調整</title>
		<description><![CDATA[花了一些時間翻 nginx 的文件，有一些地方可以 tune&#8230;
在 FreeBSD 上可以利用 httpready 把一些事情丟到 kernel module 處理：
listen 80 default accept_filter=httpready;
httpready 參數必須設定在有 default 的 listen 之上，而且必須在 default 之後，不然會回報設定錯誤。
server_tokens 也應該關掉，除了 security 理由外，另外一個很簡單的理由是，可以少送 7bytes&#8230;：
server_tokens off;
]]></description>
		<link>http://blog.gslin.org/archives/2010/03/06/2225/</link>
			</item>
	<item>
		<title>Theora 與 H.264 的畫質差異</title>
		<description><![CDATA[HTML5 支援 &#60;video&#62; 標籤，由瀏覽器直接播放影片，不需要透過 Flash Player。但因為 H.264 有一堆軟體專利是無法 royalty-free 使用的。
有人曾經建議 Mozilla 直接使用系統的 codec 避開這個問題，但 Mozilla 認為這種作法跟 ActiveX 一樣，直接把系統不安全的部份暴露在 Internet 上，當 codec 有漏洞時就會受到影響。(我覺得專利問題還是比較嚴重)
因為這些原因，Mozilla 選擇內建 Theora 而非使用 H.264。最早支援 video tag 的 Opera 也是選擇 Theora。
Google 與 Apple 手上都有與 H.264 相關的專利可以丟進專利池而取得免費使用權，所以 Google Chrome 以及 Safari 都是支援 H.264。
Update：如同 Azel 在 comment 所講的，Google 沒有專利丟到專利池內，而是購買授權。(參考 AVC/H.264 Licensors 與 AVC/H.264 Licensees 資訊)
除了專利問題外，有些人研究 H.264 [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/02/27/2223/</link>
			</item>
	<item>
		<title>IE 的 Cookie 限制</title>
		<description><![CDATA[在 Simon Willison 那邊看到 Eric Lawrence 在 MSDN Blog 上的解釋：「Internet Explorer Cookie Internals (FAQ)」。Simon Willison 的文章在「Internet Explorer Cookie Internals (FAQ)」這篇內。
他們討論到 IE 到目前所有版本的 cookie 都不支援 max-age 參數，所以有個避免 MySQL master/slave replication lag 的技巧在 IE 上沒辦法用的很好：當寫入資料時 (例：使用者發表文章)，server 會設定一組 30secs 的 cookie，當 web server 收到這個 cookie 時會用 MySQL master server。
workaround 不難做，本來是只有設定 cookie，現在把把 server timestamp 與 signature (用 HMAC) 都放到 [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/02/27/2222/</link>
			</item>
	<item>
		<title>Amazon SimpleDB 支援不同程度的 Consistency</title>
		<description><![CDATA[在 Amazon CTO Werner Vogels 的 blog 上提到了 AWS SimpleDB 支援不同程度的 consistency：「Choosing Consistency」，在 James Hamilton 也對這件事情發表正面的意見：「I love eventual consistency but&#8230;」。正式的技術文件在「Amazon SimpleDB Consistency Enhancements」這邊可以查到。
Eventual consistency 以 CAP theorem 中的 Consistency 妥協，試著解決 scale 問題，但缺點是 stale read (可能會讀到舊資料)，對要求比較嚴謹的子系統 (像是遊戲內的各種點數，身上帶的金幣之類的) 會很麻煩，而對於要求更嚴謹的系統 (像是商品搶購時的「剩餘數量」) 幾乎無法直接使用。
像是 Colin Percival 曾經解釋他得在 S3 與 SimpleDB 上做不少 workaround：「How Tarsnap uses Amazon Web Services」以確保資料正確性。
AWS SimpleDB 這次提供了新的功能，要求寫入時一定要等到 consistent [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/02/25/2221/</link>
			</item>
	<item>
		<title>DRBD 進入 Linux 2.6.33 Kernel，以及 FreeBSD 的 HAST Project</title>
		<description><![CDATA[Linux kernel 2.6.33 是在 DRBD 進入 Kernel Git tree 之後 (去年 12 月左右，參考「We’re in!」這篇文章) 的下一個正式的 release：「Linux 2.6.33 released, first kernel with DRBD included」。
DRBD 是一套以 block-level replication 為基礎提昇可靠度的軟體，有時候為了方便解釋，也被稱為 Network RAID1，常搭配 Heartbeat 或是其後繼的 Pacemaker 偵測節點是否還活著，並在必要時自動切換。
由於 DRBD 已經出來很久了，而且又是以 GPLv2 釋出，早期有不少文件介紹如何使用 DRBD 達到 HA，算是一種已經被摸熟的方案。
另外是 FreeBSD 的 HAST Project 到一個階段，被 commit 到 -HEAD 了：「Please welcome HAST &#8211; Highly Avalable Storage.」，再加上 [...]]]></description>
		<link>http://blog.gslin.org/archives/2010/02/25/2220/</link>
			</item>
	<item>
		<title>Comcast 實驗 DNSSEC</title>
		<description><![CDATA[Comcast 在官方的 blog 上宣佈，開始提供有 DNSSEC 驗證功能的 DNS resolver：「DNSSEC」，如果要測試的人可以手動改到 75.75.75.75 &#38; 75.75.76.76。
非 Comcast 用戶沒有辦法參與，丟 query 過去會收到：
;; ->>HEADER&#60;&#60;- opcode: QUERY, status: REFUSED, id: 54496
;; flags: qr rd ra; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
]]></description>
		<link>http://blog.gslin.org/archives/2010/02/24/2219/</link>
			</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->