<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>{&#124;ihower.tw&#124; blog } &#187; Web Design</title>
	<atom:link href="http://ihower.tw/blog/archives/category/web-design/feed" rel="self" type="application/rss+xml" />
	<link>http://ihower.tw/blog</link>
	<description>Ruby, Ruby on Rails, Mac and Agile development</description>
	<lastBuildDate>Tue, 27 Jul 2010 06:48:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用 A/B Testing 工具引導你做網站設計</title>
		<link>http://ihower.tw/blog/archives/3974</link>
		<comments>http://ihower.tw/blog/archives/3974#comments</comments>
		<pubDate>Sat, 13 Mar 2010 21:34:25 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.tw/blog/?p=3974</guid>
		<description><![CDATA[當你有多個設計選擇，不知道哪一種比較好的時候，A/B testing 可以幫助你測試哪一種比較有效果。例如: 你的網站註冊有兩種設計方式，哪一種讓比較多人註冊呢? 你的購物車按鈕有兩種設計，哪一種比較讓人順利結帳呢? 你的廣告版本有三種，哪一種比較吸引人呢?
別猜了!! 公說公有理，婆說婆有理。讓使用者的實際體驗跟統計結果來告訴你吧。a/b testing 的作法是: 1.輪撥這些選項 2. 設定追蹤點(goal) 3. 一段時間後，觀察哪個選項達成的 goal 比較多。
而 A/B testing 工具可以幫助你很容易做好這些事情: 1. 針對不同人提供不同選項 2. 但讓同一個人看到的都是同一個選項(這是一個重點，不然測試就不準了)，例如透過 cookie 或使用者ID 3. 提供後台報表，並提供分析告訴你這些數據是否有統計學上的顯著差異 4. 方便安裝及使用 5. 夠快，不會對 production site 造成效能負擔
對 Rails 來說，目前有兩套可以考慮使用: A/Bingo 和 Vanity。A/Bingo 很容易安裝使用，功能比較陽春，使用 ActiveRecord 搭配快取(memcached) 來記錄資料。Vanity 功能比較豐富，願景也比較大，提倡了一整套的 Experiment Driven Development 開發方式。它使用了 Redis 來記錄資料。不過他的使用文件似乎沒有跟上程式的更新速度，所以不太好安裝，得去翻 source code。如果你現在就想試試，我會先推薦 A/Bingo 比較容易上手。
如果你不想改 server [...]]]></description>
			<content:encoded><![CDATA[<p>當你有多個設計選擇，不知道哪一種比較好的時候，<a href="http://en.wikipedia.org/wiki/A/B_testing">A/B testing</a> 可以幫助你測試哪一種比較有效果。例如: 你的網站註冊有兩種設計方式，哪一種讓比較多人註冊呢? 你的購物車按鈕有兩種設計，哪一種比較讓人順利結帳呢? 你的廣告版本有三種，哪一種比較吸引人呢?</p>
<p>別猜了!! 公說公有理，婆說婆有理。讓使用者的實際體驗跟統計結果來告訴你吧。a/b testing 的作法是: 1.輪撥這些選項 2. 設定追蹤點(goal) 3. 一段時間後，觀察哪個選項達成的 goal 比較多。</p>
<p>而 A/B testing 工具可以幫助你很容易做好這些事情: 1. 針對不同人提供不同選項 2. 但讓同一個人看到的都是同一個選項(這是一個重點，不然測試就不準了)，例如透過 cookie 或使用者ID 3. 提供後台報表，並提供<a href="http://20bits.com/articles/statistical-analysis-and-ab-testing/">分</a><a href="http://www.cennydd.co.uk/2009/statistical-significance-other-ab-test-pitfalls/">析</a>告訴你這些數據是否有統計學上的顯著差異 4. 方便安裝及使用 5. 夠快，不會對 production site 造成效能負擔</p>
<p>對 Rails 來說，目前有兩套可以考慮使用: <a href="http://www.bingocardcreator.com/abingo">A/Bingo</a> 和 <a href="http://vanity.labnotes.org/">Vanity</a>。A/Bingo 很容易安裝使用，功能比較陽春，使用 ActiveRecord 搭配快取(memcached) 來記錄資料。Vanity 功能比較豐富，願景也比較大，提倡了一整套的 <a href="http://www.infoq.com/news/2010/02/edd-post-agile">Experiment Driven Development</a> 開發方式。它使用了 <a href="http://code.google.com/p/redis/">Redis</a> 來記錄資料。不過他的使用文件似乎沒有跟上程式的更新速度，所以不太好安裝，得去翻 source code。如果你現在就想試試，我會先推薦 A/Bingo 比較容易上手。</p>
<p>如果你不想改 server side 的程式(或是你是不會寫程式的行銷人員)，也可以透過 <a href="https://www.google.com/analytics/siteopt/">Google Website Optimizer</a> 這套工具來做 a/b testing。Google 的方式就單純用 JavaScript 來記錄: 你先告訴 Google 你有哪幾種頁面，例如 Original page、Variation page 1、Variation page 2 三種選項，接著提供 Conversion page 是指達成 goal 的頁面，然後將 Google 會給你 control script 貼到 Original page 去(讓使用者可以輪撥到其他頁面)，以及 tracking script 貼到各個頁面。</p>
<p>最後，A/B Testing 當然也不是萬能的: <a href="http://commetrics.com/articles/supplement-with-qualitative-assessment/">Why A/B testing of web design fails</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/3974/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>和多徵才啟事</title>
		<link>http://ihower.tw/blog/archives/1718</link>
		<comments>http://ihower.tw/blog/archives/1718#comments</comments>
		<pubDate>Wed, 02 Apr 2008 16:12:44 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[和多]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/?p=1718</guid>
		<description><![CDATA[敝社正在徵人，職缺包括

視覺設計師 (Visual Designer 全職) 一名 
前端技術工程師 (Intermediate Frontend Engineer 全職) 一名
鐵道程式設計師（Ruby on Rails Developer 全職） 一名

詳細內容。
]]></description>
			<content:encoded><![CDATA[<p>敝社正在徵人，職缺包括</p>
<ol>
<li><del><a href="http://zh.handlino.com/about/jobs/#visual-designer">視覺設計師 (Visual Designer 全職)</a> 一名 </del></li>
<li><a href="http://zh.handlino.com/about/jobs/#frontend-engineer">前端技術工程師 (Intermediate Frontend Engineer 全職)</a> 一名</li>
<li><del><a href="http://zh.handlino.com/about/jobs/#rails-developer">鐵道程式設計師（Ruby on Rails Developer 全職）</a> 一名</del></li>
</ol>
<p><a href="http://zh.handlino.com/about/jobs/">詳細內容</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1718/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Naked Day!</title>
		<link>http://ihower.tw/blog/archives/1637</link>
		<comments>http://ihower.tw/blog/archives/1637#comments</comments>
		<pubDate>Wed, 04 Apr 2007 21:55:29 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[WWW]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1637</guid>
		<description><![CDATA[每年的四月五日這一天是 CSS Naked Day，本持著推廣 Web Standards，卸掉所有的網頁樣式。而因為使用正確語意標註與適當的(X)HTML階層結構，所以不會影響到網站內容的可讀性，你還是可以正常的閱讀文章。
]]></description>
			<content:encoded><![CDATA[<p>每年的四月五日這一天是 <a href="http://naked.dustindiaz.com/"><span class="caps">CSS</span> Naked Day</a>，本持著推廣 Web Standards，卸掉所有的網頁樣式。而因為使用正確語意標註與適當的(X)HTML階層結構，所以不會影響到網站內容的可讀性，你還是可以正常的閱讀文章。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1637/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ppk on JavaScript (2) Events</title>
		<link>http://ihower.tw/blog/archives/1604</link>
		<comments>http://ihower.tw/blog/archives/1604#comments</comments>
		<pubDate>Tue, 13 Mar 2007 07:35:40 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1604</guid>
		<description><![CDATA[要達到 unobtrusive JavaScript (最新譯名: 不亂入JavaScript) 的境界，就必須對 Event-Driven 有深入的認識，這章對 Events 議題做了很詳盡的解說，前一陣子看YUI Event的時候，裡面提到的兩個IE fix都不太了解緣由，看過這章之後就恍然大悟啦。
相對於 W3C DOM 跟 XMLHttpRequest，Events有更多的 Browser Wars 留下來的問題，有著 Microsoft 蓄意的不相容問題，你必須注意這些實做差異，有些解法甚至有些 tricky，而且必須 case by case，沒有泛用型的偵測法則，例如沒有簡單的 if (W3C model) {.. } else if ( Microsoft model ) { &#8230; } 可以用。
Events 可分成三種類型 1. 滑鼠事件 mouse 2. 鍵盤事件 keyboard 3. 界面事件 interface events (例如 form submit,readystatechange等)
click是唯一自動有 accessible 的mouse event，因為當鍵盤 [...]]]></description>
			<content:encoded><![CDATA[<p>要達到 unobtrusive JavaScript (最新譯名: 不亂入JavaScript) 的境界，就必須對 Event-Driven 有深入的認識，這章對 Events 議題做了很詳盡的解說，前一陣子看YUI Event的時候，裡面提到的兩個IE fix都不太了解緣由，看過這章之後就恍然大悟啦。</p>
<p align="left">相對於 W3C DOM 跟 XMLHttpRequest，Events有更多的 Browser Wars 留下來的問題，有著 Microsoft 蓄意的不相容問題，你必須注意這些實做差異，有些解法甚至有些 tricky，而且必須 case by case，沒有泛用型的偵測法則，例如沒有簡單的 if (W3C model) {.. } else if ( Microsoft model ) { &#8230; } 可以用。</p>
<p align="left">Events 可分成三種類型 1. 滑鼠事件 mouse 2. 鍵盤事件 keyboard 3. 界面事件 interface events (例如 form submit,readystatechange等)<span id="more-1604"></span></p>
<p align="left">click是唯一自動有 accessible 的mouse event，因為當鍵盤 focus 且按 Enter 時也會觸發。而其它mouse events必須手動再加對應的keyboard events，例如 mouseover 等同於 focus，mouseout等於blurred，但有些對應就難了，例如 mousemove (滑鼠移動一個1px就觸發一個事件，但要對應鍵盤就不行了)。因此在 DOM Scripting 這本書也建議(p.111)，設了 onclick 的就不要設定 onkeypress event了，因為 click 除了滑鼠，鍵盤也會有作用，多設 onkeypress 反而可能會有新麻煩。</p>
<p align="left">另外一個 keyboard 的 accessability 重點是，可以被 keyboard focus 的元素只有 links,form fields,buttons 這四樣，這是個需要注意的事情，任何 keyboard-frientld event 或 script 都必須設定在這三種元素上面，例如在寫 mouseover 的鍵盤等價方案的時候，畢竟要可以被使用者按 tab 移動到，寫 event script 才有用&#8230;:p</p>
<p align="left">Event-handler 註冊的四種方法:</p>
<ol>
<li>
<p align="left">inline ，例如直接在element中寫 onclick=&#8221;test()&#8221;  </p>
</li>
<li>
<p align="left">traditional model，例如 x.onclick= test </p>
</li>
<li>
<p align="left">W3C model ，例如 x.addEventListener(&#8216;click&#8217;,test,false) 或移除 x.removeEventListener(&#8216;click&#8217;,test,false)</p>
</li>
<li>
<p align="left">Microsoft model，例如 x.attachEvent(&#8216;onclick&#8217;,test) 或移除 x.detachEvent(&#8216;onclick&#8217;,test)</p>
</li>
</ol>
<p align="left">要為後兩者做一個跨瀏覽器的解法並不難，object detection 一下即可。</p>
<p align="left">法一是 JavaScript亂入，不要用。</p>
<p align="left">法二 traditional model 的問題是，無法連續為 x 掛載不同的事件，例如 x.onclick = test; x.onclick = test2 就只剩下 test2 了。因此需要再寫一個 function 包起來，如 x.onclick = function () { test(); test2(); }，比較不彈性一點，但如果你可以完整掌握 page 到底有哪些 script，作者建議你可以用 traditional model。</p>
<p align="left">法三法四比較先進(?)是用 事件掛載的方式，讓各個 script 都不會互相影響到。不過有趣的是竟然無法得知 x 已經掛載多少 event handlers，而如果不知道掛載了什麼，就無法移除。</p>
<p align="left">接著是 W3C model 和 Microsoft model 的兩個重大差異，Microsoft model 不支援 event capturing，只有 bubbling(請參考 <a href="http://blog.othree.net/log/2007/02/06/third_argument_of_addeventlistener/">O3noBLOG  addEventListener的第三個參數</a> ) 。另外就是 Microsoft model  把 event-handler function 當成一般 global function 來處理，也就是如果你用法四 attachEvent 來註冊事件時， event handler裡面的 this 指的是 window 而非發生事件的 object。(作者推薦 <a href="http://dean.edwards.name/weblog/2005/10/add-event/">Dean Edward&#8217;s solution</a> 可以fix)</p>
<p align="left">event bubbling 能有什麼功效? 你可以非常有效率的只設定一個event handler到一個HTML element，然後就可以處理那個element裡面一整群的element，因為它會 bubbling 上去觸發。例如作者的 Usable Forms 的範例中，有132個 form fields，他不想每個都給他加上 event hander，這時就可以利用 event bubbling 在 document 加上 click event 即可，觸發任一個field都會 bubbling 上去到 document，然後在 event handler 中再來根據被觸發的 element 來決定做什麼動作。</p>
<p align="left">在 event handler中，瀏覽器會自動產生一個 event object，W3C model 是根據第一個參數，Microsoft 則總是window.event，因此程式是</p>
<blockquote>
<p align="left">document.onclick = handleEvent;<br />
function handleEvent(e) {<br />
var evt = e || window.event;<br />
var evtTarget = evt.target || evt.srcElement;<br />
}</p>
</blockquote>
<p align="left">這個 event object 包含了觸發這個事件的 event type (即mouseover 或 keypress 等等)、觸發的 target element ( W3C叫 target, Microsoft叫 srcElement)、觸發時的滑鼠位置(跨瀏覽器處理很複雜，作者不建議去用。而且大部分的情況可以改用你觸發的element的相對位置來解決，第九章會詳述)、觸發時按下的滑鼠button跟鍵盤button 等等資訊。</p>
<p align="left">注意到觸發事件的element跟 當初被定義 event handler 的 element 並不一定相同 (因為event bubbling)，因此 target element 並不一定等於 this。在 traditional跟W3C model中，this 指被定義event handler的 element。但如前所述，微軟的 this 指成 window，也就是如果你有用微軟 attachEvent 這個 this 等於沒什麼用。</p>
<p align="left">看樣子用 evtTarget 好像比較好? 不過瀏覽器對於到底是 &#8220;哪個element&#8221; 觸發也有不同看法!! 所以尤其是碰到 mouseover,mouseout 你必須特別check抓到的 element是你要的。</p>
<p align="left">所以結論是到底用那種啦? (跨平台 event 果然難搞) 如果你不用Microsoft model的 addEvent的話，而且要被觸發的element跟被定義的element是同一個的話 (不玩event bubbling)，那作者推薦用 this 吧。</p>
<p align="left">注意到在DOM Scripting那本書中，Event-handler 完全使用 traditional model 法，也沒有用 event bubbling 進階手法，因此他的 this 一律就是 target element。</p>
<p align="left">最後提一下 <a href="http://developer.yahoo.com/yui/event/">Yahoo! UI Library: Event</a>，裡面的 Automatic Event Object Browser Abstraction 跟 Automatic Scope Correction 就是修正那兩個問題。</p>
<p align="left">(待續，第八章 DOM 第九章 CSS 第十章 Ajax ) </p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1604/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ppk on JavaScript</title>
		<link>http://ihower.tw/blog/archives/1531</link>
		<comments>http://ihower.tw/blog/archives/1531#comments</comments>
		<pubDate>Sun, 18 Feb 2007 18:25:46 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1531</guid>
		<description><![CDATA[這是一本 JavaScript 傳奇，作者本身就非常有意思，聽 lukhnos 說才知道他以前主修歷史 :p 他的 quirksmode 有非常豐富的 Web Design 資源，就像歷史年代般一樣詳細的列出各家瀏覽器支援的程度，是公認的 JavaScript 專家。我們知道 JavaScript 算是個蠻 dirty 的語言，背負著歷史包袱及各家瀏覽器不同的實作歧異，加上近年來的 Web Standards、Usability 跟 Accessibility 等議題又增加了很多細節。這本書透過八個完整的真實 project貫穿本書來做範例講解，很適合唸完乖乖的 DOM Scripting 之後，繼續深入了解 JavaScript 以瀏覽器議題。
相關書評

ppk on JavaScript (Book review)
Digital Web Magazine &#8211; ppk on JavaScript 

前兩章 Purpose 跟 Context 非常非常精采，作者就像說故事一樣娓娓道來，全貌性把 JavaScript 的來龍去脈講了一遍，Realazy有做了書摘( JavaScript的目的、背景一、背景二、背景三 )，我就不多詳述了。
第三章 Browsers 瀏覽器議題。各家瀏覽器介紹，以及常見的瀏覽器問題 1.瀏覽器不支援某些JavaScript功能 2.合法的規格解釋差異，但此種情況較少 3.瀏覽器故意有所差異，例如 IE用 srcElement 而其他符合標準的用 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.quirksmode.org/book/"><img src="http://tlsj.tenlong.com.tw/WebModule/BookSearch/cover/E10/0321423305.jpg" style="float: left; margin: 5px; width: 160px; padding: 5px" /></a>這是一本 JavaScript 傳奇，作者本身就非常有意思，聽 <a href="http://lukhnos.org/blog/zh/">lukhnos </a>說才知道他以前<a href="http://www.quirksmode.org/about/cv.html">主修歷史</a> :p 他的 <a href="http://www.quirksmode.org">quirksmode</a> 有非常豐富的 Web Design 資源，就像歷史年代般一樣詳細的列出各家瀏覽器支援的程度，是公認的 JavaScript 專家。我們知道 JavaScript 算是個蠻 dirty 的語言，背負著歷史包袱及各家瀏覽器不同的實作歧異，加上近年來的 Web Standards、Usability 跟 Accessibility 等議題又增加了很多細節。這本書透過八個完整的真實 project貫穿本書來做範例講解，很適合唸完乖乖的 <a href="http://ihower.idv.tw/blog/archives/1484">DOM Scripting </a>之後，繼續深入了解 JavaScript 以瀏覽器議題。</p>
<p>相關書評</p>
<ul>
<li><a href="http://www.456bereastreet.com/archive/200611/ppk_on_javascript_book_review/">ppk on JavaScript (Book review)</a></li>
<li><a href="http://www.digital-web.com/articles/ppk_on_javascript/">Digital Web Magazine &#8211; ppk on JavaScript </a></li>
</ul>
<p>前兩章 Purpose 跟 Context 非常非常精采，作者就像說故事一樣娓娓道來，全貌性把 JavaScript 的來龍去脈講了一遍，Realazy有做了書摘( <a href="http://realazy.org/blog/2006/11/19/ppk-on-javascript-study-note-part01/">JavaScript的目的</a>、<a href="http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/">背景一</a>、<a href="http://realazy.org/blog/2006/12/27/ppk-on-javascript-study-note-part02-2/">背景二</a>、<a href="http://realazy.org/blog/2007/01/01/ppk-on-javascript-study-note-part02-3/">背景三</a> )，我就不多詳述了。</p>
<p><span id="more-1531"></span>第三章 Browsers 瀏覽器議題。各家瀏覽器介紹，以及常見的瀏覽器問題 1.瀏覽器不支援某些JavaScript功能 2.合法的規格解釋差異，但此種情況較少 3.瀏覽器故意有所差異，例如 IE用 srcElement 而其他符合標準的用 target，但通常只是名字不同而已，很容易處理 4.瀏覽器bug</p>
<p>作者花很多篇幅強調處理瀏覽器問題的最好方法就是 object detection，而千萬不要用 browser detection。例如他最得意的 DOM 支援檢查 :</p>
<blockquote><p>var W3CDOM = document.createElement &amp;&amp; document.getElementsByTagName; </p></blockquote>
<p>最後介紹一些簡單的 debug 方法: alert,confirm,error console 等</p>
<p>第四章 Preparation，即正式coding前的準備工作。先強調 HTML 跟 CSS 結構的重要、三種 Hooks 方式 1.ID 2. class 3.Custom attributes，其中需要特別注意的是客製屬性沒有辦法通過 valid (X)HTML 測驗，例如作者認為寫成 class=&#8221;validation=required numeric&#8221; 程式不好寫，而若只是寫 class=&#8221;required numeric&#8221; 則沒有語義，所以作者寧願寫成 validation=&#8221;required numeric&#8221;。這個議題可以參考作者的這篇 <a href="http://www.alistapart.com/articles/scripttriggers/">JavaScript Triggers</a>。</p>
<p>接著介紹 initialization function 的常見任務跟載入 JavaScript 的問題。有 1.設定 event handlers 2.決定 vistor 狀態，如 cookies 3. 設定會存取的資源 4.產生HTML內容，例如基於 accessibility 的考量，如果有某些內容不能沒有 JavaScript 支援，那一開始就應該用 JavaScript來產生 5.建立方便存取的關聯變數 6.修改文件結構，例如為了 usability 暫時拿掉某些內容。</p>
<p>然後是 include JavaScript 的用法，最後探討 initialization 的載入問題，我們知道下載HTML時是依序載入執行，所以include JavaScript 時，HTML頁面還沒載入，這會讓DOM發生錯誤，所以得用 window.onload 的 event 來處理，進而使用 addEventSimple()/removeEventsimple() 之類的機制。另外一個常見問題就是網頁 image很多的時候，載入太久造成 load event會 delay 太久，而此時使用者趕著點還沒有 initialization 的頁面(例如還沒設定onclick event) 就糟啦。</p>
<p>第五章  JavaScript Core，即ECMAScript。注意到 Javascript 有很多部分還是由W3C來標準。這章又回頭從 hello world 開始講 syntax,data type,control structures,function,object。嗯，感覺很多講的太基本囉，會唸這本書的人應該都有程式設計經驗了吧，而有些特別的東西因為無關 Core 所以只能點到為止(例如 event propagation, W3C DOM nodeList不算是array)，詳細則需要延到後面章節。</p>
<p>有趣的是我現在才知道 JavaScript 的 object 可以看成 associative arrays 來使用，即 dot notation 可以改用 square bracket 來使用，例如 object.property 跟 object['property'] 是一樣的、object.method() 跟 object['method']() 也是一樣，而用 array 的好處是可以彈性選擇要執行的 function (把 square bracket裡改成用變數)。</p>
<p>第六章則是跟瀏覽器相關的 object，統稱 Browser Object Model，這部份夾在 Core 跟 DOM 之間，只有 de facto Netscape 3 standard，而沒有正式標準。主要的東西是 (global) window object，探討 Cross-window communication: 如何處理 window.open 新開的視窗跟原視窗 opener。另外就是 Cookie, Location,History, document object&#8230;&#8230;等既不是DOM又不是Core的東西。</p>
<p>(待續，最後的四章更深入技術議題，包括Events,DOM,CSS跟Ajax)</p>
<p>話說最近開始改唸 JavaScript了，Ruby&amp;Rails 又只好先放著囉。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1531/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>隨意搜尋 Ambient Findability</title>
		<link>http://ihower.tw/blog/archives/1600</link>
		<comments>http://ihower.tw/blog/archives/1600#comments</comments>
		<pubDate>Wed, 14 Feb 2007 17:59:32 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[WWW]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1600</guid>
		<description><![CDATA[Update(2007/3/5) : 本來有整理書摘的，可是因為這本書太精采了，頁頁都有收穫，所以不知不覺摘的太詳細，加上混雜自己的語法，幾乎變成改作了，為尊重原書版權，只好忍痛都 Private 起來。anyway&#8230; 非常推薦這本書，建議可以多看幾遍，整理一下他的脈絡重點。

先從書名談起吧，Ambient Findability 的原意是環境可尋性，描述一個可以在任何時候從任何地點，找尋到任何人或事物。當然現在尚未達到這種境界，不過未來的趨勢如此，因此這本書就在探討&#8221;行動運算&#8221;與&#8221;網際網路&#8221;的資訊互動等等議題。
findability (n.) 某物件容易被找尋到的程度
ambient (adj.) 環境的;包圍的; 
作者 Peter Morville 是資訊架構學一書的作者，而這本書可說是他對可尋性的見解雜談，學識淵博的作者走訪各家之言，提供我們很好的全貌性技術觀察跟思考，是非常值得推薦的知識性小書。
(其實去年看到英文版就想買了，只是我英文太破看了幾頁看不懂只好放棄，想不到竟然等到資深譯者蔡學鏞。題外話，他最近在關注Adobe Apollo 喔 :p)
]]></description>
			<content:encoded><![CDATA[<p><strong>Update(2007/3/5)</strong> : 本來有整理書摘的，可是因為這本書太精采了，頁頁都有收穫，所以不知不覺摘的太詳細，加上混雜自己的語法，幾乎變成改作了，為尊重原書版權，只好忍痛都 Private 起來。anyway&#8230; 非常推薦這本書，建議可以多看幾遍，整理一下他的脈絡重點。</p>
<p><a href="http://www.books.com.tw/exep/assp.php/ihower/exep/prod/booksfile.php?item=0010354814"><img width="143" src="http://www.oreilly.com.tw/cover2/a208_b.gif" height="211" style="width: 143px; height: 211px; padding: 10px" /></a></p>
<p>先從書名談起吧，Ambient Findability 的原意是<strong>環境可尋性</strong>，描述一個可以在任何時候從任何地點，找尋到任何人或事物。當然現在尚未達到這種境界，不過未來的趨勢如此，因此這本書就在探討&#8221;行動運算&#8221;與&#8221;網際網路&#8221;的資訊互動等等議題。</p>
<blockquote><p>findability (n.) 某物件容易被找尋到的程度<br />
ambient (adj.) 環境的;包圍的; </p></blockquote>
<p>作者 Peter Morville 是<a href="http://www.oreilly.com.tw/product_web.php?id=a123">資訊架構學</a>一書的作者，而這本書可說是他對<strong>可尋性</strong>的見解雜談，學識淵博的作者走訪各家之言，提供我們很好的全貌性技術觀察跟思考，是非常值得推薦的知識性小書。</p>
<p>(其實去年看到英文版就想買了，只是我英文太破看了幾頁看不懂只好放棄，想不到竟然等到資深譯者蔡學鏞。題外話，他最近在<a href="http://city.udn.com/v1/blog/article/index.jsp?uid=JerryTsai&amp;f_ART_CATE=77607">關注Adobe Apollo </a>喔 :p)</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1600/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pragmatic Ajax: A Web 2.0 Primer</title>
		<link>http://ihower.tw/blog/archives/1573</link>
		<comments>http://ihower.tw/blog/archives/1573#comments</comments>
		<pubDate>Tue, 19 Dec 2006 14:33:54 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1573</guid>
		<description><![CDATA[
值得推薦的AJAX入門好書(2006/3月出版)，循序漸進交代出Javascript、DOM跟Ajax。範例程式碼清楚好讀，網頁設計觀念正確。講完用 XMLHttpRequest 的最原始用法之後，就開始教如何運用 Prototype 跟 Dojo，畢竟實在不需要用 raw Javascript 啊。之後的例子主要也是用 Prototype。講 Ajax 如何正確使用的觀念講的不錯(第七章)，其他有用的議題(如JSON)也都包含在內，是本既入門內容又豐富的書。
話說這本書放要讀清單放好久了，真的拿起來認真看，沒幾天也就看完了，還蠻好唸的&#8230; :p
大致的內容是這樣:

簡介 Ajax
Google Maps 範例 (作者想說明這只是 standard HTML and JavaScript 而已)，我倒覺得這章有點累贅不必要 :p
XMLHttpRequest 的基本用法
XMLHttpRequest 加上 Javascript DOM 操作
Ajax Framework
作者把 Ajax Framework 分成三種層次
 1.Ajaxian Web Frameworks(如Rails,Tapestry,ASP.NET)
 2.UI Toolkit (如Dojo,Backbase)
 3.Remoting Toolkit (如DWR,JSON-RPC)
接下來介紹 Prototype 跟 Dojo 的 Ajax 用法
Ajax UI, Part 1: Prototype,Script,aculo,us 跟 Dojo 的 DOM 操作跟特效用法
Ajax UI, Part 2 : 告訴你什麼時候用Ajax。先給你一些 Ajax Patterns [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pragmaticprogrammer.com/titles/ajax/index.html"><img src="http://images.amazon.com/images/P/0976694085.01._SCMZZZZZZZ_V52808188_.jpg" /></a></p>
<p>值得推薦的AJAX入門好書(2006/3月出版)，循序漸進交代出Javascript、DOM跟Ajax。範例程式碼清楚好讀，網頁設計觀念正確。講完用 XMLHttpRequest 的最原始用法之後，就開始教如何運用 Prototype 跟 Dojo，畢竟實在不需要用 raw Javascript 啊。之後的例子主要也是用 Prototype。講 Ajax 如何正確使用的觀念講的不錯(第七章)，其他有用的議題(如JSON)也都包含在內，是本既入門內容又豐富的書。</p>
<p>話說這本書放要讀清單放好久了，真的拿起來認真看，沒幾天也就看完了，還蠻好唸的&#8230; :p<span id="more-1573"></span></p>
<p>大致的內容是這樣:</p>
<ol>
<li>簡介 Ajax</li>
<li>Google Maps 範例 (作者想說明這只是 standard HTML and JavaScript 而已)，我倒覺得這章有點累贅不必要 :p</li>
<li>XMLHttpRequest 的基本用法</li>
<li>XMLHttpRequest 加上 Javascript DOM 操作</li>
<li>Ajax Framework<br />
作者把 Ajax Framework 分成三種層次<br />
 1.Ajaxian Web Frameworks(如Rails,Tapestry,ASP.NET)<br />
 2.UI Toolkit (如Dojo,Backbase)<br />
 3.Remoting Toolkit (如DWR,JSON-RPC)<br />
接下來介紹 Prototype 跟 Dojo 的 Ajax 用法</li>
<li>Ajax UI, Part 1: Prototype,Script,aculo,us 跟 Dojo 的 DOM 操作跟特效用法</li>
<li>Ajax UI, Part 2 : 告訴你什麼時候用Ajax。先給你一些 Ajax Patterns 範例(Server-side Validation、載入畫面,載入完特效,Autocomplete等)，接下來做一些議題討論 (回上一頁、Bookmarking、GET is for getting,POST is for Doing 等設計注意事項)。</li>
<li>Debugging 工具介紹</li>
<li>Degradable Ajax : 要先決定degrade的程度跟支援的範圍。<br />
先從 without Ajax 開始做! 然後再 Ajaxifying。使用 HTML 當作 Ajax 格式並搭配 partials template是比較容易做好 Degradble Ajax，至於 Web-Services-Driven Ajax (用XML或JSON格式) 則可能要分兩個版本或直接說sorry!，因為client side太rich了。</li>
<li>JSON 跟 JSON-RPC 介紹 <br />
JSON比XML格式更容易處理而且parsing又快，值得注意的是JSON還有獨到優點就是可以跨 server拿資料。<br />
see<a href="http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html"> The AJAX response: XML, HTML, or JSON?</a> 跟 <a href="http://simon.incutio.com/archive/2005/12/16/json">JSON and Yahoo!&#8217;s JavaScript APIs</a><br />
JSON-RPC 則是拿 Rails 的 orbjson 來示範。</li>
<li>Server-side Framework Integration 簡介<br />
作者又分成三種<br />
 1.有Visual Tool Support，view 使用 components 機制，如ASP.NET,JSF toolkit for JAVA<br />
 2.Custom tag libraries(Helpers)，如RoR產生Javascript code<br />
 3.ORB-like Remoting，直接在client-side 用JavaScript呼叫Server端的function，如JSON-RPC,DWR,PHP的Sajax等</li>
<li>Ajax with PHP : 介紹 Sajax 跟 XOAD</li>
<li>Ajax with Rails: 幾個Ajax helpers介紹，最後提一下RJS</li>
<li>DWR with Spring(Java) : 略</li>
<li>ASP.NET and Atlas : 略</li>
<li>Ajax的未來<br />
1. 介紹<a href="http://zh.wikipedia.org/wiki/E4X">E4X</a>(ECMAScript for XML)，一種parse XML的方式，直接讀出成 object 格式 (有點像JSON在做的事，只是對象是XML)。既有XML標準格式的好處，又有JSON一樣的方便性。<br />
2. 介紹畫圖的 Canvas 跟 SVG (找到<a href="http://people.mozilla.com/~vladimir/xtech2006/#slide1">這篇投影片</a>比較差異 )<br />
3. 瀏覽器端的 Local Storage 能力，標準可靠的 offline storage API，目前 Dojo 有在實作。<br />
4. Flash Apollo : 讓 Flash 不限於在瀏覽器，Adobe 要用 Web 技術進軍<font size="2">桌面應用 (see這篇<a href="http://city.udn.com/v1/blog/article/article.jsp?uid=JerryTsai&amp;f_ART_ID=605357">訪問文</a>，看起來蠻有吸引力的)。</font><br />
5. Compiled Javascript 提供 JIT Javascript compilation environment 加強執行速度<br />
6. <a href="http://www.whatwg.org/">WHATWG</a> 將主導了下一世代的 web standards</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1573/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>網站企劃推薦書籍</title>
		<link>http://ihower.tw/blog/archives/1552</link>
		<comments>http://ihower.tw/blog/archives/1552#comments</comments>
		<pubDate>Mon, 04 Dec 2006 14:07:03 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1552</guid>
		<description><![CDATA[我是個網站開發者，我一直幻想著開發一個新網站的時候，有個漂亮的OL(這不是重點)可以寫超讚的網站企劃給我，讓我一看就知道要做什麼網站，而不是每次都給我籠統的客戶需求，定規格跟如何設計都得自己來。早些時候我看了些UML，甚至買過一本Building Web Application with UML，不過都不適合企畫人員作為給網站企劃用途，太難了，尤其是這麼小的團隊&#8230; :p
我的夢幻企畫我想可以 based on 以下幾本書:

Communicating Design，一本專講 Web Site Documentation 的書，重點在於建立具有 Deliverable 的文件，裡面介紹分成十種文件，第一類關於使用者: Personas 角色建模、Usability Test Plan 使用性測試計劃、Usability Reports 使用性報告。第二類是策略性文件: Competitive Analysis 競爭力分析、Concept Model 觀念模型、Content Inventory 內容清單。第三類是設計文件: Site Maps 網站地圖、Flow Charts 流程圖、Wireframes 頁面框架、Screen Designs 視覺與介面設計。
要使用這本書並不會太難，他把每個圖表分成三個等級的用法: Layer1/Layer2/Layer3，一開始只需要做到 Layer1 有最基本的元素就可以了，Layer2/Layer3 在覺得有需要的時候再加就可以了。

重點放網站設計工作流程的書 Web ReDesign 2.0，裡面分成五個流程 1. Defining the Project  2.Developing Site Structure 3. Visual Design [...]]]></description>
			<content:encoded><![CDATA[<p>我是個網站開發者，我一直幻想著開發一個新網站的時候，有個漂亮的OL(這不是重點)可以寫超讚的網站企劃給我，讓我一看就知道要做什麼網站，而不是每次都給我籠統的客戶需求，定規格跟如何設計都得自己來。早些時候我看了些UML，甚至買過一本<a href="http://www.amazon.com/Building-Web-Applications-UML-2nd/dp/0201730383/sr=8-1/qid=1165235982/ref=sr_1_1/102-8109702-5378548?ie=UTF8&#038;s=books">Building Web Application with UML</a>，不過都不適合企畫人員作為給網站企劃用途，太難了，尤其是這麼小的團隊&#8230; :p</p>
<p>我的夢幻企畫我想可以 based on 以下幾本書:<span id="more-1552"></span></p>
<p><img style="float: left; margin: 10px" src="http://www.communicatingdesign.com/bookcover.jpg" width="130" /></p>
<p><a href="http://www.communicatingdesign.com/">Communicating Design</a>，一本專講 Web Site Documentation 的書，重點在於建立具有 Deliverable 的文件，裡面介紹分成十種文件，第一類關於使用者: Personas 角色建模、Usability Test Plan 使用性測試計劃、Usability Reports 使用性報告。第二類是策略性文件: Competitive Analysis 競爭力分析、Concept Model 觀念模型、Content Inventory 內容清單。第三類是設計文件: Site Maps 網站地圖、Flow Charts 流程圖、Wireframes 頁面框架、Screen Designs 視覺與介面設計。</p>
<p>要使用這本書並不會太難，他把每個圖表分成三個等級的用法: Layer1/Layer2/Layer3，一開始只需要做到 Layer1 有最基本的元素就可以了，Layer2/Layer3 在覺得有需要的時候再加就可以了。</p>
<p><img style="clear: left; float: left; margin: 10px" src="http://www.web-redesign.com/images/2nd-ed/WRD2_cover_400.jpg" width="200" /></p>
<p>重點放網站設計工作流程的書 <a href="http://www.web-redesign.com/">Web ReDesign 2.0</a>，裡面分成五個流程 1. Defining the Project  2.Developing Site Structure 3. Visual Design &#038; Testing  4.Production &#038; QA 5.Launch &#038; Beyond，也有適時介紹Content Inventory,Site Maps,Wireframes等上本書提到的文件。詳細的內容可以參考我之前的<a href="http://ihower.idv.tw/wiki/index.php?page=Workflow+that+Works+">第一版筆記</a>。這本書沒有cover程式backend的部份，那比較屬於軟體開發流程了。</p>
<p style="clear: left">除了網站企劃，如果能有solid background就更好了，推薦幾本相關的書: </p>
<p><img src="http://images.amazon.com/images/P/0321344758.01._SCMZZZZZZZ_.jpg" width="130" />  <img src="http://www.joelonsoftware.com/pictures/PaperPrototyping.PNG" width="130" /></p>
<p><img src="http://www.oreilly.com.tw/cover/a123_b.gif" width="130" />  <img src="http://tlsj.tenlong.com.tw/WebModule/BookSearch/cover/E10/0321350316.jpg" width="130" /></p>
<p>網站企劃怎麼可以沒有 Web Usability 概念，至少要念本 <a href="http://ihower.idv.tw/blog/archives/1291">Don&#8217;t Make Me Think</a>，目前出到第二版。<a href="http://www.paperprototyping.com/">Paper Prototyping</a> 則介紹一種建立使用者介面原型的方法，就是用紙! 使用紙片移來移去就可以把介面模擬出來了，花時間寫程式建立原型太<a href="http://local.joelonsoftware.com/mediawiki/index.php/The_Joel_on_Software_Translation_Project:%E7%B4%99%E4%B8%8A%E5%8E%9F%E5%9E%8B%E8%A3%BD%E4%BD%9C">多此一舉</a>了。資訊架構雖然有點無趣，不過如果你的網站內容很多，那這本<a href="http://www.oreilly.com.tw/product_web.php?id=a123"> Information Architecture </a>探討資訊如何架構及檢索應該會有幫助。Jakob Nielsen是有很名的 Web Usability大師，他的這本 <a href="http://www.useit.com/prioritizing/">Prioritizing Web Usability</a> 是今年的新書，裡面所有事例都輔以大量的圖形說明，且所舉事例皆是知名公司，再加上全彩印刷，很好了解重點跟核心概念。</p>
<p>說到介面設計，深入的話還蠻多理論的，人機互動、認知心理學什麼的。我覺得最實用的方法就是去了解常用的 Patterns 模式 :</p>
<p><img src="http://www.designofsites.com/img/dos.gif" width="130" />   <img src="http://www.oreilly.com.tw/cover/a191_b.gif" width="130" /> <img src="http://images.amazon.com/images/P/0596101805.01._SCMZZZZZZZ_V63703687_.jpg" />  </p>
<p><a href="http://www.designofsites.com/">The Design of Sites</a> 這本書提供傳統網站所需要用到的全功能網站設計模式，或是可以參考Martijn整理的 <a href="http://www.welie.com/patterns/">Web Design Patterns</a> 跟Yahoo整理的 <a href="http://developer.yahoo.com/ypatterns/">Design Pattern Library</a>。最近Ajax流行，傳統的Web Design Patterns也不夠了，需要更多的 Interaction 成份。可以念念這本 <a href="http://ihower.idv.tw/blog/archives/1503">操作介面設計</a> 打開你的視野。 <a href="http://ajaxpatterns.org/">Ajax Design Patterns</a> 則是最棒的Ajax使用大全(這本技術含量高，可能要挑著看)。</p>
<p>做白日夢的這篇就介紹到這裡了，相信有了這些 solid background，再依據不同專案的大小跟不同團隊大小來決定需要製作哪些文件，應該可以做出很棒的網站企劃。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1552/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax in Action</title>
		<link>http://ihower.tw/blog/archives/1504</link>
		<comments>http://ihower.tw/blog/archives/1504#comments</comments>
		<pubDate>Thu, 23 Nov 2006 09:55:30 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1504</guid>
		<description><![CDATA[ 
軟體設計層次的Ajax書，很認真的思考 Single Page Application。前三章引入Design Patterns、重構的概念到Javascript，將 Web Page提升到應用程式的層次。四五章很精采地分析架構，包括不同層次的MVC觀點，以及各種框架的大局觀跟分類，其中關於Ajax如何交換資料提供了很好的思考，以下是我的筆記(Rails是我加的，書上沒有):
內容中心的互動 (content)

Server 傳回 HTML 片段，Client 在特定位置更新顯示。
簡單直覺，撰寫容易。
功能有限，畫面上的變化只限於固定矩形區域，無法進行複雜的DOM操作。
Rails使用Prototype加上配套的 Ajax helper 即可達成。

腳本中心的互動 (scripting)

Server 傳回 Javascript 片段，Client 直接執行。
功能彈性大，可自由操作DOM，多處更新。
Rails 支援在 Remote Javascript Template (RJS)，使用Ruby語法撰寫Javascript，傳給Client執行，減少撰寫raw Javascript。

資料中心的互動 (data)

Server 傳回 XML 或 JSON 資料，Client 的 Javascript 解析處理(或使用XSLT)。
XML的解析較麻煩，現在流行用JSON(JavaScript Object Notation)。
上述兩種架構與Client相依，但資料中心即Web Service(REST)架構，具可重複使用性(可供別的前端使用)。
Rails支援 XML Template跟JSON。
因為剖析資料的負擔完全放在 Client 端，所以 Client 端的Javascript程式或XSLT工程較大。

第六章 使用者體驗 實作了一個通知框架，第七章講安全性，第八章講效能及記憶體洩漏(memory leak)問題。剩下後半本則是一章一案例。
另一篇書評 : Relevance Review #5: Ajax in Action
註: 之前寫的 ajax 傳送格式比較 : [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gotop.com.tw/waweb2004/home/home.aspx?pg=HM010X&amp;bn=AXP011800"><img src="http://images.amazon.com/images/P/1932394613.01._SCMZZZZZZZ_V59003887_.jpg" /></a> </p>
<p>軟體設計層次的Ajax書，很認真的思考 Single Page Application。前三章引入Design Patterns、重構的概念到Javascript，將 Web Page提升到應用程式的層次。四五章很精采地分析架構，包括不同層次的MVC觀點，以及各種框架的大局觀跟分類，其中關於Ajax如何交換資料提供了很好的思考，以下是我的筆記(Rails是我加的，書上沒有):</p>
<p><strong>內容中心的互動 (content)</strong></p>
<ul>
<li>Server 傳回 HTML 片段，Client 在特定位置更新顯示。</li>
<li>簡單直覺，撰寫容易。</li>
<li>功能有限，畫面上的變化只限於固定矩形區域，無法進行複雜的DOM操作。</li>
<li>Rails使用Prototype加上配套的 Ajax helper 即可達成。</li>
</ul>
<p><strong>腳本中心的互動 (scripting)</strong></p>
<ul>
<li>Server 傳回 Javascript 片段，Client 直接執行。</li>
<li>功能彈性大，可自由操作DOM，多處更新。</li>
<li>Rails 支援在 Remote Javascript Template (RJS)，使用Ruby語法撰寫Javascript，傳給Client執行，減少撰寫raw Javascript。</li>
</ul>
<p><strong>資料中心的互動 (data)</strong></p>
<ul>
<li>Server 傳回 XML 或 JSON 資料，Client 的 Javascript 解析處理(或使用XSLT)。</li>
<li>XML的解析較麻煩，現在流行用JSON(JavaScript Object Notation)。</li>
<li>上述兩種架構與Client相依，但資料中心即Web Service(REST)架構，具可重複使用性(可供別的前端使用)。</li>
<li>Rails支援 XML Template跟JSON。</li>
<li>因為剖析資料的負擔完全放在 Client 端，所以 Client 端的Javascript程式或XSLT工程較大。</li>
</ul>
<p>第六章 使用者體驗 實作了一個通知框架，第七章講安全性，第八章講效能及記憶體洩漏(memory leak)問題。剩下後半本則是一章一案例。</p>
<p>另一篇書評 : <a href="http://blogs.relevancellc.com/articles/2006/04/21/relevance-review-5-ajax-in-action">Relevance Review #5: Ajax in Action</a></p>
<p>註: 之前寫的 <a href="http://ihower.idv.tw/blog/archives/1246">ajax 傳送格式比較</a> : XML, HTML, or JSON?</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1504/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>操作介面設計模式 Designing Interfaces</title>
		<link>http://ihower.tw/blog/archives/1503</link>
		<comments>http://ihower.tw/blog/archives/1503#comments</comments>
		<pubDate>Tue, 24 Oct 2006 06:07:25 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1503</guid>
		<description><![CDATA[ 
介面設計與 Usability 的好書，介紹94種設計模式，包括資訊架構、導覽、頁面配置、圖表、輸入表單、編輯器操作、外觀，每一章都會先來個概觀性解法，然後每個模式依序講解 這是什麼? 何時使用? 為何使用? 原理作法! 範例說明!，編排的非常有系統，內文也不會太艱澀難懂，像認知心理學那樣深奧(?)，或是太雜太多的 Tips。舉的範例也很棒，涵蓋桌面軟體及Web。非常適合與UI相關的工作者閱讀，可以學到很多 Usability 的知識跟技巧，激發你的創意。
不過此書中文版編譯錯誤頗多，有耐心的話請勘誤吧(很累人就是了，害我花了2hr塗改)。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.books.com.tw/exep/assp.php/ihower/exep/prod/booksfile.php?item=0010333095"><img src="http://www.oreilly.com.tw/cover/a191_b.gif" /></a> </p>
<p>介面設計與 Usability 的好書，介紹94種設計模式，包括資訊架構、導覽、頁面配置、圖表、輸入表單、編輯器操作、外觀，每一章都會先來個概觀性解法，然後每個模式依序講解 這是什麼? 何時使用? 為何使用? 原理作法! 範例說明!，編排的非常有系統，內文也不會太艱澀難懂，像認知心理學那樣深奧(?)，或是太雜太多的 Tips。舉的範例也很棒，涵蓋桌面軟體及Web。非常適合與UI相關的工作者閱讀，可以學到很多 Usability 的知識跟技巧，激發你的創意。</p>
<p>不過此書中文版編譯錯誤頗多，有耐心的話請<a href="http://www.oreilly.com.tw/product_others.php?id=a191_errata">勘誤</a>吧(很累人就是了，害我花了2hr塗改)。</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1503/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft IE7 正式發布</title>
		<link>http://ihower.tw/blog/archives/1500</link>
		<comments>http://ihower.tw/blog/archives/1500#comments</comments>
		<pubDate>Thu, 19 Oct 2006 05:50:40 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1500</guid>
		<description><![CDATA[Update(2006/12/1): 繁體中文版出了。 

歷經20個月，發了5個bata及1個release candidate版本之後，終於到了正式發布了，IEBlog上 Bill 都來 congratulate 一下。IE7的CSS有重大改善，增加好用的 Tabs 功能、RSS Feeds 及搜尋框，以及種種安全性加強。
Internet Explorer 7： 下載
台灣微軟也做好下載頁面了，不過我點中文版還是連到英文去，多語系版本還要再等一陣子。相信在過不久微軟就會用自動更新來硬塞給你&#8230;. XDXD
網頁設計又要大攪動了，現在除了要檢查 IE6跟Firefox，IE7也要加進來考慮了。有很多網站用IE6可以看，但是IE7會有問題，像是蕃薯藤新聞，會發生選單疊到內文的現象。台灣企銀的網路銀行連登入都不行(為什麼銀行的HTML都寫的很爛?)。雖然會有一些陣痛跟麻煩，但是我覺得是很好的進展啊。
接下來是 Firefox 2.0 &#8230;
]]></description>
			<content:encoded><![CDATA[<p>Update(2006/12/1): 繁體中文版出了。 </p>
<p><img src="http://ihower.idv.tw/blog/wp-content/uploads/2006/10/ie7_2.png" alt="ie7" id="image1501" /></p>
<p>歷經20個月，發了5個bata及1個release candidate版本之後，終於到了<a href="http://blogs.msdn.com/ie/archive/2006/10/18/internet-explorer-7-for-windows-xp-available-now.aspx">正式發布</a>了，IEBlog上 Bill 都來 congratulate 一下。IE7的<a href="http://blogs.msdn.com/ie/archive/2006/08/22/712830.aspx">CSS有重大改善</a>，增加好用的 Tabs 功能、RSS Feeds 及搜尋框，以及種種安全性加強。</p>
<p><a href="http://www.microsoft.com/taiwan/windows/ie/downloads/default.mspx">Internet Explorer 7： 下載</a></p>
<p>台灣微軟也做好下載頁面了，不過我點中文版還是連到英文去，多語系版本還要再等一陣子。相信在過不久微軟就會用自動更新來硬塞給你&#8230;. XDXD</p>
<p>網頁設計又要大攪動了，現在除了要檢查 IE6跟Firefox，IE7也要加進來考慮了。有很多網站用IE6可以看，但是IE7會有問題，像是<a href="http://news.yam.com/">蕃薯藤新聞</a>，會發生選單疊到內文的現象。台灣企銀的<a href="https://portal.tbb.com.tw/tbbportal/CustomerLogin.jsp">網路銀行</a>連登入都不行(為什麼銀行的HTML都寫的很爛?)。雖然會有一些陣痛跟麻煩，但是我覺得是很好的進展啊。</p>
<p>接下來是 Firefox 2.0 &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1500/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype 簡介</title>
		<link>http://ihower.tw/blog/archives/1238</link>
		<comments>http://ihower.tw/blog/archives/1238#comments</comments>
		<pubDate>Tue, 17 Oct 2006 06:40:10 +0000</pubDate>
		<dc:creator>ihower</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://ihower.idv.tw/blog/archives/1238</guid>
		<description><![CDATA[
Prototype 似乎是目前最紅 javascript framework，作者善用了Javascript物件導向的特性，增強了 Javascript 的功能與開發便利性。在實際看過之後，發現它並不是一套包裝太多的架構(像是動畫特效的東西就不在裡面)，也因此也有一些 framework 如 Script.aculo.us 是以 Prototype 為基礎來開發的。當然，還有 Ruby on Rails 也用 prototype 來達成 Ajax 功能。
參考資源

Quick Guide to Prototype
Overview of the Prototype Javascript Library 
Developer Notes for prototype.js
Prototype in scriptaculous wiki
Prototype Dissected()
Ajax 網頁程式設計 沈時宇

它大概包含了哪些東西呢? 例如有: 

Base

Class 物件提供建立類別的方式，讓你可以用 new 語法建立有建構子的物件。
Object.extend 提供繼承的語法
try.these 讓你依序執行 一些可能會丟例外的 function
PeriodicalExecuter 週期執行某function
$(&#8220;elementID&#8221;) 即 document.getElementById(&#8220;elementID&#8221;) 的方便用法

String

擴充本來的 String 物件，新增一些function。 

Enumerable

提供各種迭代的function，不過好用歸好用，小心效率問題。

Array

擴充了本來的 Array，另外提供 $A() 來轉成 Enumerable Object

Ajax

Ajax.Request [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://prototype.conio.net/"><img src="http://www.ajaxian.com/images/prototype.png" /></a></p>
<p>Prototype 似乎是目前最紅 javascript framework，作者善用了Javascript物件導向的特性，增強了 Javascript 的功能與開發便利性。在實際看過之後，發現它並不是一套包裝太多的架構(像是動畫特效的東西就不在裡面)，也因此也有一些 framework 如 <a href="http://script.aculo.us/">Script.aculo.us</a> 是以 Prototype 為基礎來開發的。當然，還有 Ruby on Rails 也用 prototype 來達成 Ajax 功能。</p>
<p><strong>參考資源</strong></p>
<ul>
<li><a href="http://particletree.com/features/quick-guide-to-prototype/">Quick Guide to Prototype</a></li>
<li><a href="http://blogs.ebusiness-apps.com/jordan/pages/Prototype%20Library%20Info.htm">Overview of the Prototype Javascript Library</a> </li>
<li><u><font color="#810081"><a href="http://www.sergiopereira.com/articles/prototype.js.html">Developer Notes for prototype.js</a></font></u></li>
<li><a href="http://wiki.script.aculo.us/scriptaculous/show/Prototype">Prototype in scriptaculous wiki</a></li>
<li><a href="http://www.snook.ca/archives/javascript/prototype_disse/">Prototype Dissected()</a></li>
<li><a href="http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9574423522&amp;sid=30354">Ajax 網頁程式設計</a> 沈時宇</li>
</ul>
<p>它大概包含了哪些東西呢? 例如有: </p>
<p><span id="more-1238"></span></p>
<p><strong>Base</strong></p>
<ul>
<li>Class 物件提供建立類別的方式，讓你可以用 new 語法建立有建構子的物件。</li>
<li>Object.extend 提供繼承的語法</li>
<li>try.these 讓你依序執行 一些可能會丟例外的 function</li>
<li>PeriodicalExecuter 週期執行某function</li>
<li>$(&#8220;elementID&#8221;) 即 document.getElementById(&#8220;elementID&#8221;) 的方便用法</li>
</ul>
<p><strong>String</strong></p>
<ul>
<li>擴充本來的 String 物件，新增一些function。 </li>
</ul>
<p><strong>Enumerable</strong></p>
<ul>
<li>提供各種迭代的function，不過好用歸好用，小心<a href="http://particletree.com/notebook/beware-of-javascript-library-overkill/">效率問題</a>。</li>
</ul>
<p><strong>Array</strong></p>
<ul>
<li>擴充了本來的 Array，另外提供 $A() 來轉成 Enumerable Object</li>
</ul>
<p><strong>Ajax</strong></p>
<ul>
<li>Ajax.Request 發送 ajax request</li>
<li>Ajax.Updater 同上，但是直接將傳回的html更新到網頁指定的id</li>
<li>Ajax.PeriodicalUpdater 同上，週期執行</li>
</ul>
<p><strong>DOM</strong></p>
<ul>
<li>提供 document.getElementsByClassName(className) 讓你根據 class name拿 DOM element </li>
<li>提供 Element 物件可以直接操作 DOM，如 Element.addClassName 可以加 class name 等</li>
</ul>
<p><strong>Form</strong></p>
<ul>
<li>提供對表單的處理，如 $F() 可以取值，Form.serialize 可以序列化表單資料 方便送 ajax request</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ihower.tw/blog/archives/1238/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
