<?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>Temporality &#187; web</title>
	<atom:link href="http://www.sylin.net/blog/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sylin.net/blog</link>
	<description>my causerie</description>
	<lastBuildDate>Sat, 05 Mar 2011 18:32:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Autoload in ZF 1.8</title>
		<link>http://www.sylin.net/blog/2009/05/03/158</link>
		<comments>http://www.sylin.net/blog/2009/05/03/158#comments</comments>
		<pubDate>Sun, 03 May 2009 06:01:21 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=158</guid>
		<description><![CDATA[最近 Zend Framework 推出了 1.8 Release, 除了許多新功能以外，原有的功能也做了一些改變。對原有的project來說，如果沒用到新功能的部份，那放著不管是沒關係的，可是舊功能的改變卻可能影響到原本程式的行為，所以反而要更注意。 Zend_Loader_Autoloader 的功用(目的) 提供真正的namespace autoloader (之前是不區分namespace的) 提供註冊任意個數的callback 函式作為 autoload function, 其中是以 stack 的方式運作。這是為了克服 PHP 5標準的 spl_autoload 只允許一個 callback function 的問題。 允許最佳化的 namespace 比對方式，提高解析類別的速度。 原本的 autoload 是這樣用的 (最簡單的情況) require_once&#40;'Zend/Loader.php'&#41;; Zend_Loader::registerAutoload&#40;&#41;; 在 ZF 1.8 要改成 require_once&#40;'Zend/Loader/Autoloader.php'&#41;; $autoloader = Zend_Loader_Autoloader::getInstance&#40;&#41;; $autoloader-&#62;setFallbackAutoloader&#40;true&#41;; 這適用於函式庫中沒有自己加的 namepsace，所以會使用預設的 Zend_ 跟 ZendX_，這也是 Zend Framework 中 class 所使用的 prefix [...]]]></description>
			<content:encoded><![CDATA[<p>最近 Zend Framework 推出了 <a href="http://www.sylin.net/blog/2009/05/03/157">1.8 Release</a>, 除了許多新功能以外，原有的功能也做了一些改變。對原有的project來說，如果沒用到新功能的部份，那放著不管是沒關係的，可是舊功能的改變卻可能影響到原本程式的行為，所以反而要更注意。</p>
<p>Zend_Loader_Autoloader 的功用(目的)</p>
<ul>
<li>提供真正的namespace autoloader (之前是不區分namespace的)</li>
<li>提供註冊任意個數的callback 函式作為 autoload function, 其中是以 stack 的方式運作。這是為了克服 PHP 5標準的 spl_autoload 只允許一個 callback function 的問題。</li>
<li>允許最佳化的 namespace 比對方式，提高解析類別的速度。</li>
</ul>
<p><span id="more-158"></span><br />
原本的 autoload 是這樣用的 (最簡單的情況)</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend/Loader.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">registerAutoload</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>在 ZF 1.8 要改成</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend/Loader/Autoloader.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$autoloader</span> <span style="color: #339933;">=</span> Zend_Loader_Autoloader<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$autoloader</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFallbackAutoloader</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>這適用於函式庫中沒有自己加的 namepsace，所以會使用預設的 Zend_ 跟 ZendX_，這也是 Zend Framework 中 class 所使用的 prefix ，這首先讓 Zend Framework 內的 class 能夠自動被載入。而 setFallbackAutoloader(true) 則是讓寫在 include_path 中，又沒有的 namespace 的 class 能被載入，這通常會是在 models/ 之中的檔案。</p>
<p>不過這邊有一點相當奇怪，假設我沒有 model，不需要 setFallbackAutoloader(true)，那麼就應該不需要執行 getInstance()而一樣可以使用 Zend_ 跟 ZendX_ 的類別，但實際上如果我只有 require_once(&#8216;Zend/Loader/Autoloader.php&#8217;) 的話，我之後還是不能使用 Zend_* 的類別，這部份還不清楚是 Zend_Loader_Autoloader 的 bug 還是 spl_autoload 的問題。</p>
<p>新版的改進其實還有 Zend_Tool 跟 Zend_Application 可以用，這部份之後再來研究，先把 Autoload 這部份 Apply 到現有的程式上。</p>
<p>參考資料</p>
<ul>
<li><a href="http://akrabat.com/2009/04/30/zend_loaders-autoloader_deprecated-in-zend-framework-18/">Zend_Loader&#8217;s autoloader deprecated in Zend Framework 1.8</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.loader.autoloader.html">ZF Manual &#8211; Zend Loader Autoloader</a></li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2009. |
<a href="http://www.sylin.net/blog/2009/05/03/158">Permalink</a> |
<a href="http://www.sylin.net/blog/2009/05/03/158#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2009/05/03/158&title=Autoload in ZF 1.8">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/zend-framework" rel="tag">zend framework</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2009/05/03/158/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8 Released</title>
		<link>http://www.sylin.net/blog/2009/05/03/157</link>
		<comments>http://www.sylin.net/blog/2009/05/03/157#comments</comments>
		<pubDate>Sun, 03 May 2009 05:56:53 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=157</guid>
		<description><![CDATA[Zend Framework 在 4/30 已經推出最新的 1.8 Release 了，這次也提供了許多有用的更新，在開發上也變得更方便了，不過我怎麼覺得有種邪惡的感覺&#8230;. Zend_Tool: 包含 Zend_Tool_Framework 跟 Zend_Tool_Project。 Zend_Tool_Framework 是 ZF 之中用來發展工具的小型 framework，透過這小型的framework 可以設計一些開發所需的小功能，例如用來建立 project 的 scaffolds (鷹架、骨架)、藉由樣板產生一些基本常用的程式碼、建立搜尋的索引資料等。 Tool_Project 則是藉由 Tool_Framework 發展出來，專門用來建立 Web MVC Project，常用的功能包括建立project、目錄結構、增加controller/action以及view 等等，都是由 Zend_Tool_Project所提供。 Zend_Tool 的功能可以說是 ZF 要發展類似 RoR/rake, CakePHP/bake 等工具的基礎，也就是所謂的 meta-programming，用程式來寫(產生)程式。 Zend_Application: 這提供了開發 Web App 所需的 Bootstrap 功能，原本開發者需要自訂 bootstrap 的流程，用來設定環境變數、組態設定等等，現在可以使用 Zend_Application 來完成。 Zend_Loader_Autoloader: 取代原有的Zend_Loader::registerAutoload() Zend_Navigation: 網頁的 [...]]]></description>
			<content:encoded><![CDATA[<p>Zend Framework 在 4/30 已經推出最新的 1.8 Release 了，這次也提供了許多有用的更新，在開發上也變得更方便了，不過我怎麼覺得有種邪惡的感覺&#8230;.</p>
<p><span id="more-157"></span></p>
<ul style="font-size:1.1em;">
<li>Zend_Tool: 包含 Zend_Tool_Framework 跟 Zend_Tool_Project。
<ol>
<li>Zend_Tool_Framework 是 ZF 之中用來發展工具的小型 framework，透過這小型的framework 可以設計一些開發所需的小功能，例如用來建立 project 的 scaffolds (鷹架、骨架)、藉由樣板產生一些基本常用的程式碼、建立搜尋的索引資料等。</li>
<li>Tool_Project 則是藉由 Tool_Framework 發展出來，專門用來建立 Web MVC Project，常用的功能包括建立project、目錄結構、增加controller/action以及view 等等，都是由 Zend_Tool_Project所提供。</li>
</ol>
<p>Zend_Tool 的功能可以說是 ZF 要發展類似 RoR/rake, CakePHP/bake 等工具的基礎，也就是所謂的 meta-programming，用程式來寫(產生)程式。</li>
<li>Zend_Application: 這提供了開發 Web App 所需的 Bootstrap 功能，原本開發者需要自訂 bootstrap 的流程，用來設定環境變數、組態設定等等，現在可以使用 Zend_Application 來完成。</li>
<li><a href="http://framework.zend.com/manual/en/zend.loader.autoloader.html">Zend_Loader_Autoloader</a>: 取代原有的Zend_Loader::registerAutoload()</li>
<li><a href="http://framework.zend.com/manual/en/zend.navigation.html">Zend_Navigation</a>: 網頁的 navigation menu</li>
<li>Zend_CodeGenerator</li>
<li>Zend_Reflection</li>
<li>Zend Server backend for Zend_Cache</li>
<li>Zend_Service_Amazon_Ec2/Zend_Service_Amazon_S3: For Cloud Computing </li>
<li>Dojo 1.3 整合</li>
<li>Zend_Filter_Encrypt/Zend_Filter_Decrypt, 可以把資料藉由 Filter 的方式做加解密。</li>
<li>Zend_Filter_LocalizedToNormalized/_NormalizedToLocalized: 對資料形式做正規化處理，可以處理數字以及日期時間的格式轉換</li>
<li>Zend_File_Transfer:支援上傳進度，可以使用Zend_File_Transfer_Adapter_Http::getProgress() 配合 Zend_ProgressBar</li>
<li>Translation-aware routes</li>
<li>Route chaining capabilities</li>
<li>Zend_Json:在 <a href="http://framework.zend.com/manual/en/zend.json.advanced.html">Zend_Json_Expr</a>支援 expression ，之前好像只支援資料型態(number/string/array/object)</li>
<li>Zend_Http_Client_Adapter_Curl</li>
<li>SOAP input and output header support</li>
<li>Support for keyword field search using query strings</li>
<li>Support for searching across multiple indexes in Zend_Search_Lucene </li>
<li>Significant improvements for Zend_Search_Lucene search result match highlighting capabilities</li>
<li>Zend_Pdf: 支援頁面的縮放、位移、旋轉等<a href="http://framework.zend.com/manual/en/zend.pdf.drawing.html#zend.pdf.drawing.linear-transformations">線性轉換</a>。</li>
<li><a href="http://framework.zend.com/manual/en/zend.tag.cloud.html">Zend_Tag_Cloud</a>, 內建支援 Tag Cloud</li>
<li>Locale support in Zend_Validate_Int and Zend_Validate_Float</li>
<li>Phonecode support in Zend_Locale</li>
<li>Zend_Validate_Db_RecordExists and _RecordNotExists</li>
<li>Zend_Validate_Iban, 支援 IBAN (International Bank Account Number)驗證，我不清楚不是美國人用不用得到 XD</li>
<li>Zend_Validate_File_WordCount</li>
</ul>
<h3>相關連結</h3>
<ul>
<li><a href="http://devzone.zend.com/article/4524-Zend-Framework-1.8.0-Released">Zend Framework 1.8 Released</a></li>
<li><a href="http://twpug.net/modules/news/article.php?storyid=244">中文介紹(1.8 Preview)</a></li>
<li><a href="http://akrabat.com/2009/05/01/zend-framework-tutorial-for-zf-18/">Zend Framework (in 1.8) Tutorial </a></li>
<li><a href="http://www.jaceju.net/blog/?p=536">[PHP-ZF] Zend Framework 1.8 初探</a></li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2009. |
<a href="http://www.sylin.net/blog/2009/05/03/157">Permalink</a> |
<a href="http://www.sylin.net/blog/2009/05/03/157#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2009/05/03/157&title=Zend Framework 1.8 Released">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/zend-framework" rel="tag">zend framework</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2009/05/03/157/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSDC.TW 2009</title>
		<link>http://www.sylin.net/blog/2009/05/02/155</link>
		<comments>http://www.sylin.net/blog/2009/05/02/155#comments</comments>
		<pubDate>Fri, 01 May 2009 22:26:43 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSDC]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Rasmus Lerdorf]]></category>
		<category><![CDATA[高橋流簡報]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=155</guid>
		<description><![CDATA[今年有機會參與 OSDC 的活動，還算有點收穫。 還記得去年(2008) OSDC 報名時，因為要報名費，而且又要兩天早起，所以就懶得去報名，後來據說很精彩，為此感到沒參與到實在可惜，所以今年一看到開放馬上就報名了。 今年的報名費要四百元，但是報名可以獲得一件 Yahoo 贊助的紫色T-Shirt，以及一本微軟贊助的 JQuery in Action 中文版 另外還有許多點心跟飲料可以補充，所以算起來是蠻超值的啦。 雖然 Yahoo T-Shirt 可能不會拿來穿(連去年的 Google T-Shirt 我也還沒拆開過)，不過拿到 JQuery in Action 這本書應該會有幫助(也好險我沒自己買)。 一開始提到今年是因為去年的 OSDC 內容很精彩才參加的，相較於一開始的期望，其實今年感覺沒有想像中那麼有爆點，當然許多議程的內容都不錯，但就是沒有足夠精彩的話題性。不過英文演講的部份也受限於我的英聽能力。 而且我的英聽能力還是不行，只能夠斷斷續續聽懂幾句，並且藉由投影片的輔助瞭解敘述的內容，沒辦法完全掌握台上所要表達的東西。 Day 2 (4/18) 大神的 CDN: DK 介紹 Pixnet 使用 CDN 的情況。投影片講的太快了，每一頁都短短地帶過，感覺總像少了什麼，而且有在看大神的 blog 應該已經對 CDN 有基本的瞭解了，所以當場感覺沒聽到特別的東西，尤其是沒有聽到八卦(敲碗~)。 Yahoo 大使 Chris Heilmann (F2E): 講 Accessibility ，也就是網頁親和性，主要是要兼顧 HTML 的語意跟使用 Javascript [...]]]></description>
			<content:encoded><![CDATA[<p>今年有機會參與 <a href="http://osdc.tw">OSDC</a> 的活動，還算有點收穫。<br />
還記得去年(2008) OSDC 報名時，因為要報名費，而且又要兩天早起，所以就懶得去報名，後來據說很精彩，為此感到沒參與到實在可惜，所以今年一看到開放馬上就報名了。</p>
<p><span id="more-155"></span><br />
今年的報名費要四百元，但是報名可以獲得一件 Yahoo 贊助的紫色T-Shirt，以及一本微軟贊助的 <a href="http://www.books.com.tw/exep/assp.php/sylin/exep/prod/booksfile.php?item=0010429722">JQuery in Action 中文版</a><br />
<img src="http://addons.books.com.tw/G/001/2/0010429722.jpg" alt="jQuery 實戰手冊" /><br />
另外還有許多點心跟飲料可以補充，所以算起來是蠻超值的啦。<br />
雖然 Yahoo T-Shirt 可能不會拿來穿(連去年的 Google T-Shirt 我也還沒拆開過)，不過拿到 JQuery in Action 這本書應該會有幫助(也好險我沒自己買)。</p>
<p>一開始提到今年是因為去年的 OSDC 內容很精彩才參加的，相較於一開始的期望，其實今年感覺沒有想像中那麼有爆點，當然許多議程的內容都不錯，但就是沒有足夠精彩的話題性。不過英文演講的部份也受限於我的英聽能力。</p>
<p>而且我的英聽能力還是不行，只能夠斷斷續續聽懂幾句，並且藉由投影片的輔助瞭解敘述的內容，沒辦法完全掌握台上所要表達的東西。</p>
<h3>Day 2 (4/18)</h3>
<ul>
<li>大神的 CDN: DK 介紹 Pixnet 使用 CDN 的情況。<a href="http://blog.gslin.org/archives/2009/04/18/1987/">投影片</a>講的太快了，每一頁都短短地帶過，感覺總像少了什麼，而且有在看大神的 blog 應該已經對 CDN 有基本的瞭解了，所以當場感覺沒聽到特別的東西，尤其是沒有聽到八卦(敲碗~)。</li>
<li>Yahoo 大使 Chris Heilmann (F2E): 講 Accessibility ，也就是網頁親和性，主要是要兼顧 HTML 的語意跟使用 Javascript 的 Rich Web Client，然後有些聽不太懂 XD</li>
<li>unit testing in jQuery &#8211; Paul Bakaus: 介紹 jQuery/jQuery UI 的 unit testing 跟相關工具，這主講人應該也是大咖的樣子，不過我對 unit test 還不熟， jQuery 會的也不夠 internal，所以聽完沒什麼感想，只知道很厲害。</li>
<li>ericsk 的 GAEO: ericsk 講 GAEO 有一段時間了，GAEO 就是 Google Appengine 的 python framework，會繼續一直發展下去，加油。</li>
<li><a href="http://heaven.branda.to/~thinker/GinGin_CGI.py/show_id_doc/341">MadButterfly</a>: 一套使用 SVG 來做 嵌入式系統 UI 畫面的engine，想要把UI呈現跟程式功能分開來，用起來會有點像做 Flash 動畫的開發方式，目前發展工具都是做在 Firefox extension/plugin，所以之後就變成是(美術人員)打開 Browser 來開發XD。這個專案的目的是可以給嵌入式系統做 UI ，像是 MP3/MP4 那樣的電子產品，要用來寫 App 應該不太適合，對我而言，目前派不上用場。</li>
<li>SD, a Peer to Peer Bug Tracker: 前半場是一個日本人介紹他做的 Web Video 訂閱工具，他說他很喜歡看電視，每天花好幾個小時再看電視跟網路上的影片，可是網路影音散布在許多不同站台上(YouTube是最大的, 但其他還有許多有不同特色的)所以就開發一套程式來方便他訂閱跟瀏覽網路上的影片，主要是吃 Media RSS 的，介紹他內部的作法跟使用情況，大概就這樣。<br/><br />
下半場:<a href="http://www.slideshare.net/obrajesse/sd-a-p2p-bug-tracking-system">投影片</a>。SD 是 Simple Defects 的縮寫，就像 SCM 有集中式的 svn 跟分散式的 git。現在 bug/issue tracker 也有分散式的了。不過我還是沒搞懂 bug tracker 為甚麼也要搞分散式? </li>
<li><a href="http://registrano.com/events/090418ydn">Yaoo Open Party</a>: 這不算 OSDC 辦的，是另外參與的活動，由 Yahoo 舉辦，不過可以在 OSDC 會場當天報名，有發明 PHP 的 Rasmus ，玩一些小遊戲還有吃的喝的，主要是還有邵庭在主持。</li>
</ul>
<h3>Day 3 (4/19)</h3>
<ul>
<li><a href="http://blog.linux.org.tw/~jserv/archives/002090.html">窮得只剩下 Compiler</a>- Jserv: 這是我第一次聽 jserv 的演講，個人覺得這是最精彩的一場，內容實用而且幽默，難怪 jserv 可以到處把妹。LLVM 聽起來也是個很有用的東西，有機會看看可以用在哪裡，可惜不知道為甚麼 jserv 一直趕著十二點要講完，大概是要去吃飯吧，不然應該可以聽到更多笑話。</li>
<li>Perl 5.10/HBase &#8211; 一個是有著越來越複雜的語法跟功能的語言、一個是聽完也不知道要幹麼用的東西</li>
<li>Rasmus Lerdorf: PHP 創始人的演講,主題跟去年有點類似，<a href="http://josephjiang.com/entry.php?id=186">參考</a>以及<a href="http://www.sylin.net/blog/2008/11/21/126">這裡</a>。不過內容有點不同，不過受限於聽力能力，我也是沒聽懂關鍵的觀念是什麼</li>
<li>高橋: Lightening Talk 裡有一段日本 Ruby 協會會長高橋征義的簡報，一開始我看到簡報的時候，心裡想說：「這個簡報是某種風格，我記得蠻特別的，他也用這個喔」，後來過兩天才發現那叫"高橋流簡報"，就是他發明的 XD 我真是有眼不識泰山。<br/>感想是節奏很快，英文很好懂(因為都是簡單的單字跟句子)，簡報很清楚，圖很大、重點很清楚，而且很好笑。高橋這次來世來宣傳日本的 Ruby 活動，我覺得這類的主題很適合用高橋流，其他像是景點介紹、參觀(展覽)心得簡報用高橋流來做都不錯，但是有技術性、需要講解細節的實在很難用高橋流簡報法，而且要做出讓人一看就有梗的投影片也蠻需要天份的，高橋實在蠻厲害的，雖然簡報只有短短幾分鐘(不到五分鐘吧)，但卻叫人印象深刻。</li>
</ul>
<h3>其他</h3>
<ul>
<li>點心不錯吃，只是場地要容納200人有點困難，大家又要搶食物，不過秩序還算不錯</li>
<li>網路真的很慢，帶電腦去也沒辦法連什麼，下次再去 Mircosoft 參加的話可以考慮把這力氣省下來 </li>
<li>其他..嗯&#8230;</li>
</ul>
<p>相關連結</p>
<ul>
<li><a href="http://plog.longwin.com.tw/my_note/2009/04/20/osdc-note-2009">OSDC (Open Source Developers&#8217; Conference) 2009 筆記整理</a></li>
<li><a href="http://pcbill.blogspot.com/2009/04/osdc-2009-day-1.html">OSDC 2009 Day 1</a></li>
<li><a href="http://cloudtu.blogspot.com/2009/04/osdc-2009.html">OSDC 2009 超簡略心得 </a></li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2009. |
<a href="http://www.sylin.net/blog/2009/05/02/155">Permalink</a> |
<a href="http://www.sylin.net/blog/2009/05/02/155#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2009/05/02/155&title=OSDC.TW 2009">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/conference" rel="tag">conference</a>, <a href="http://www.sylin.net/blog/tag/open-source" rel="tag">Open Source</a>, <a href="http://www.sylin.net/blog/tag/osdc" rel="tag">OSDC</a>, <a href="http://www.sylin.net/blog/tag/php" rel="tag">php</a>, <a href="http://www.sylin.net/blog/tag/rasmus-lerdorf" rel="tag">Rasmus Lerdorf</a>, <a href="http://www.sylin.net/blog/tag/%e9%ab%98%e6%a9%8b%e6%b5%81%e7%b0%a1%e5%a0%b1" rel="tag">高橋流簡報</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2009/05/02/155/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS文章整理</title>
		<link>http://www.sylin.net/blog/2009/04/11/154</link>
		<comments>http://www.sylin.net/blog/2009/04/11/154#comments</comments>
		<pubDate>Fri, 10 Apr 2009 18:40:51 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[部落格]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=154</guid>
		<description><![CDATA[RSS 常常在爆滿，應該要寫點筆記來整理，但如果一則寫一篇又寫不出來，乾脆就摻在一起寫好了。 生活類 嗡，修唎修唎，摩訶修唎，修修唎，薩婆訶 酪梨壽司的生活趣事 這沒什麼..不用特別提啦 有梗..好笑 今天面試新人的經過1/2 今天面試新人的經過2/2 真的好笑&#8230;有夠機車 梗:「我要打十個，詠春。藍藍路」「你現在是要跟我說你要來取代我嗎」「你說你如果騷擾我嗎」「我不知道我會這麼倒楣真的碰到你」「那你可以準備面試更小的囉」 其實很多梗都蠻好笑的，只是沒辦法摘錄成一句話 有好爸爸真的非常的重要 梗: 超正妹：1.男生命太好，讀到博士都用家裡的錢，沒吃過苦，對社會缺乏真正的了解 超正妹：2.家裡關係太好，男生根本不知道要努力，他將來也會什麼都只靠關係 超正妹：3.將來要是家道中落，他一定沒辦法把我照顧好 藍藍路：1.我命差到差點當乞丐，讀書的錢都要用乞討的，人生一直都在吃苦 藍藍路：2.我家完全沒任何關係，連里長都不認識，所以都自力更生 藍藍路：3.我現在就很落魄了，所以我很難再家道中落了 真的是經典的啦低賽 UI設計 如何設計令人期待的敬請期待頁面？ 除了設計的部份，「敬請期待」的功能應該具備有留下聯絡方式的功能，這一點不論在虛擬的網路世界(網頁設計)或是實體店面應該都是相同的。一個賣產品的(服務也是一種產品)，當有人來詢問新產品的資訊時，主動請對方留下聯絡方式，等到有進一步消息時，可以主動通知對方。 軟體工程及觀念 軟體設計就是取捨之道 同這篇 好文 &#8211; 軟體設計就是取捨之道 能夠在使用輪子與開發元件之間做出正確的抉擇，也是價值所在 技術 D-Bus是個好東西 這篇提到了 D-Bus 這個東西，有機會可以瞭解、試用看看 相關連結 開放原碼架構設計：D-BUS 觀念小談 維基百科D-BUS 正妹 少女時代 girls’ generation 官方網站 之前常在廣播聽到，號稱是最會跳舞的女子團體，本來以為會是像台灣「嬉哈甜心」那樣的團體，雖然我覺得「Gee」的歌還不錯，但是就沒有特別去注意。看了這篇的介紹，才發現似乎是經過蠻紮實的訓練後才出道的，而且人還蠻多的，看起來還不錯。似乎比黑澀會好一點吧(?)，話說裝笨裝可愛太超過就是愚蠢了。 其中有一個(YOONA或SEO HYUN?)我覺得像網路美女雙雙，還有幾個也有明星臉，但是一時想不起來。團體跳舞，光是整齊就很好看了，少女時代舞真的排的不錯，而且 YouTube HD 效果真的是太棒了.. 笑容親切可愛的-甜甜圈 挺萱 這個超可愛&#8230;. © [...]]]></description>
			<content:encoded><![CDATA[<p>RSS 常常在爆滿，應該要寫點筆記來整理，但如果一則寫一篇又寫不出來，乾脆就摻在一起寫好了。</p>
<h3>生活類</h3>
<ul>
<li><a href="http://www.cwyuni.tw/blog/post/23560260">嗡，修唎修唎，摩訶修唎，修修唎，薩婆訶</a><br />
酪梨壽司的生活趣事</p>
<ol>
<li>這沒什麼..不用特別提啦</li>
<li>有梗..好笑</li>
</ol>
</li>
<li><a href="http://lanlanlu.tw/environment-009/">今天面試新人的經過1/2</a><br />
<a href="http://lanlanlu.tw/environment-010/">今天面試新人的經過2/2</a><br />
真的好笑&#8230;有夠機車<br />
梗:「我要打十個，詠春。藍藍路」「你現在是要跟我說你要來取代我嗎」「你說你如果騷擾我嗎」「我不知道我會這麼倒楣真的碰到你」「那你可以準備面試更小的囉」<br />
其實很多梗都蠻好笑的，只是沒辦法摘錄成一句話
</li>
<li><a href="http://lanlanlu.tw/secrets-054/">有好爸爸真的非常的重要</a><br />
梗:<br />
<blockquote>超正妹：1.男生命太好，讀到博士都用家裡的錢，沒吃過苦，對社會缺乏真正的了解<br />
超正妹：2.家裡關係太好，男生根本不知道要努力，他將來也會什麼都只靠關係<br />
超正妹：3.將來要是家道中落，他一定沒辦法把我照顧好</p></blockquote>
<blockquote><p>藍藍路：1.我命差到差點當乞丐，讀書的錢都要用乞討的，人生一直都在吃苦<br />
藍藍路：2.我家完全沒任何關係，連里長都不認識，所以都自力更生<br />
藍藍路：3.我現在就很落魄了，所以我很難再家道中落了</p></blockquote>
<p>真的是經典的啦低賽
</li>
</ul>
<p><span id="more-154"></span></p>
<h3>UI設計</h3>
<ul>
<li><a href="http://jas9.blogspot.com/2009/04/blog-post_08.html">如何設計令人期待的敬請期待頁面？</a><br />
除了設計的部份，「敬請期待」的功能應該具備有留下聯絡方式的功能，這一點不論在虛擬的網路世界(網頁設計)或是實體店面應該都是相同的。一個賣產品的(服務也是一種產品)，當有人來詢問新產品的資訊時，主動請對方留下聯絡方式，等到有進一步消息時，可以主動通知對方。</li>
</ul>
<h3>軟體工程及觀念</h3>
<ul>
<li><a href="http://www.ithome.com.tw/itadm/article.php?c=54193">軟體設計就是取捨之道</a> 同<a href="http://www.javaworld.com.tw/roller/qing/entry/%E9%87%8D%E6%96%B0%E5%BB%BA%E9%80%A0%E8%BC%AA%E5%AD%901">這篇</a><br />
<a href="http://plog.longwin.com.tw/news-technology/2009/04/06/paper-software-design-tradeoff-2009">好文 &#8211; 軟體設計就是取捨之道</a><br />
能夠在使用輪子與開發元件之間做出正確的抉擇，也是價值所在</li>
</ul>
<h3>技術</h3>
<ul>
<li><a href="http://jerrylovesrebol.blogspot.com/2009/03/d-bus.html">D-Bus是個好東西 </a><br />
這篇提到了 D-Bus 這個東西，有機會可以瞭解、試用看看</p>
<h4>相關連結</h4>
<ul>
<li><a href="http://www.jollen.org/blog/2007/05/talking_d-bus.html">開放原碼架構設計：D-BUS 觀念小談</a></li>
<li><a href="http://zh.wikipedia.org/w/index.php?title=D-BUS&#038;variant=zh-tw">維基百科D-BUS</a></li>
</ul>
</li>
</ul>
<h3>正妹</h3>
<ul>
<li><a href="http://tzangms.com/music/2399">少女時代 girls’ generation</a><br />
<a href="http://www.avex.com.tw/girlsgeneration/2nd_ab/">官方網站</a><br />
之前常在廣播聽到，號稱是最會跳舞的女子團體，本來以為會是像台灣「嬉哈甜心」那樣的團體，雖然我覺得「Gee」的歌還不錯，但是就沒有特別去注意。看了這篇的介紹，才發現似乎是經過蠻紮實的訓練後才出道的，而且人還蠻多的，看起來還不錯。似乎比黑澀會好一點吧(?)，話說裝笨裝可愛太超過就是愚蠢了。<br />
其中有一個(YOONA或SEO HYUN?)我覺得像<a href="http://www.wretch.cc/album/baby0121">網路美女雙雙</a>，還有幾個也有明星臉，但是一時想不起來。團體跳舞，光是整齊就很好看了，少女時代舞真的排的不錯，而且 YouTube HD 效果真的是太棒了..</li>
<li><a href="http://highbeautygirl.blogspot.com/2009/04/donut319-162.html">笑容親切可愛的-甜甜圈 挺萱</a><br />
這個超可愛&#8230;.</li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2009. |
<a href="http://www.sylin.net/blog/2009/04/11/154">Permalink</a> |
<a href="http://www.sylin.net/blog/2009/04/11/154#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2009/04/11/154&title=RSS文章整理">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/rss" rel="tag">RSS</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2009/04/11/154/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tableizer!</title>
		<link>http://www.sylin.net/blog/2008/12/18/137</link>
		<comments>http://www.sylin.net/blog/2008/12/18/137#comments</comments>
		<pubDate>Thu, 18 Dec 2008 05:38:35 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[tableizer]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=137</guid>
		<description><![CDATA[前幾天在貼勞健保保費薪資對照表的時候，因為要貼 Excel 的表格上來，不過一時之間找不到能夠方便轉換成 html table 的工具，又懶得自己寫，所以只好先貼圖將就，今天就剛好看到有人介紹這個功能 &#8212; 能將試算表的資料快速轉為HTML的好用網站—TABLEIZER! TABLEIZER! 不過有幾個問題 對於表格跨欄、跨行的功能並沒辦法支援，所以還是需要自己用 rowspan 跟 colspan 調整一下 沒辦法對整欄的樣式做設定，例如我想對「級數」或「投保級距」這欄設定特別的字型顏色或大小，這需要加上 class 的設定。 基本上他這程式並不難做，利用tab分隔去剖析資料，然後迴圈產生 table cell 即可，不過要解決我提的這兩個問題就比較麻煩了，主要是在 UI 的操作上可能要設計一下。 順便再貼一次對照表吧.. table.tableizer-table {border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif; font-size: 12px;} .tableizer-table td {padding: 4px; margin: 3px; border: 1px solid #ccc;} .tableizer-firstrow td {background-color: #104E8B; color: #FFF; font-weight: bold;} 勞健保保費對照表 [...]]]></description>
			<content:encoded><![CDATA[<p>前幾天在貼<a href="http://www.sylin.net/blog/2008/12/14/130">勞健保保費薪資對照表</a>的時候，因為要貼 Excel 的表格上來，不過一時之間找不到能夠方便轉換成 html table 的工具，又懶得自己寫，所以只好先貼圖將就，今天就剛好看到有人介紹這個功能 &#8212; <a href="http://blog.soft.idv.tw/?p=434">能將試算表的資料快速轉為HTML的好用網站—TABLEIZER!</a></p>
<p><a href="http://tableizer.journalistopia.com/">TABLEIZER!</a></p>
<p>不過有幾個問題</p>
<ol>
<li>對於表格跨欄、跨行的功能並沒辦法支援，所以還是需要自己用 rowspan 跟 colspan 調整一下</li>
<li>沒辦法對整欄的樣式做設定，例如我想對「級數」或「投保級距」這欄設定特別的字型顏色或大小，這需要加上 class 的設定。</li>
</ol>
<p>基本上他這程式並不難做，利用tab分隔去剖析資料，然後迴圈產生 table cell 即可，不過要解決我提的這兩個問題就比較麻煩了，主要是在 UI 的操作上可能要設計一下。<br />
<span id="more-137"></span><br />
順便再貼一次對照表吧..<br />
<style type="text/css">
table.tableizer-table {border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif; font-size: 12px;} .tableizer-table td {padding: 4px; margin: 3px; border: 1px solid #ccc;}
.tableizer-firstrow td {background-color: #104E8B; color: #FFF; font-weight: bold;}
</style></p>
<table class="tableizer-table">
<tr class="tableizer-firstrow">
<td colspan="8">勞健保保費對照表 (適用對象：一般本國人)</td>
<td>
</td>
</tr>
<tr>
<td rowspan="2">級數</td>
<td rowspan="2">投保級距</td>
<td>勞保費</td>
<td></td>
<td>健保費</td>
<td></td>
<td>合計</td>
<td></td>
<td>備註
</td>
</tr>
<tr>
<td>本人負擔</td>
<td>雇主負擔</td>
<td>本人負擔</td>
<td>雇主負擔</td>
<td>本人負擔</td>
<td>雇主負擔</td>
<td>
</td>
</tr>
<tr>
<td>1 </td>
<td>17,280 </td>
<td>225 </td>
<td>786 </td>
<td>236 </td>
<td>802 </td>
<td>461 </td>
<td>1,588 </td>
<td rowspan="46">96.07.01修正
</td>
</tr>
<tr>
<td>2 </td>
<td>17,400 </td>
<td>226 </td>
<td>792 </td>
<td>238 </td>
<td>808 </td>
<td>464 </td>
<td>1,600 </td>
</tr>
<tr>
<td>3 </td>
<td>18,300 </td>
<td>238 </td>
<td>833 </td>
<td>250 </td>
<td>849 </td>
<td>488 </td>
<td>1,682
</td>
</tr>
<tr>
<td>4 </td>
<td>19,200 </td>
<td>249 </td>
<td>873 </td>
<td>262 </td>
<td>891 </td>
<td>511 </td>
<td>1,764
</td>
</tr>
<tr>
<td>5 </td>
<td>20,100 </td>
<td>261 </td>
<td>915 </td>
<td>274 </td>
<td>933 </td>
<td>535 </td>
<td>1,848
</td>
</tr>
<tr>
<td>6 </td>
<td>21,000 </td>
<td>273 </td>
<td>956 </td>
<td>287 </td>
<td>975 </td>
<td>560 </td>
<td>1,931
</td>
</tr>
<tr>
<td>7 </td>
<td>21,900 </td>
<td>285 </td>
<td>996 </td>
<td>299 </td>
<td>1,016 </td>
<td>584 </td>
<td>2,012
</td>
</tr>
<tr>
<td>8 </td>
<td>22,800 </td>
<td>297 </td>
<td>1,038 </td>
<td>311 </td>
<td>1,058 </td>
<td>608 </td>
<td>2,096
</td>
</tr>
<tr>
<td>9 </td>
<td>24,000 </td>
<td>312 </td>
<td>1,092 </td>
<td>328 </td>
<td>1,114 </td>
<td>640 </td>
<td>2,206
</td>
</tr>
<tr>
<td>10 </td>
<td>25,200 </td>
<td>327 </td>
<td>1,146 </td>
<td>344 </td>
<td>1,170 </td>
<td>671 </td>
<td>2,316
</td>
</tr>
<tr>
<td>11 </td>
<td>26,400 </td>
<td>343 </td>
<td>1,201 </td>
<td>360 </td>
<td>1,225 </td>
<td>703 </td>
<td>2,426
</td>
</tr>
<tr>
<td>12 </td>
<td>27,600 </td>
<td>359 </td>
<td>1,256 </td>
<td>377 </td>
<td>1,281 </td>
<td>736 </td>
<td>2,537
</td>
</tr>
<tr>
<td>13 </td>
<td>28,800 </td>
<td>375 </td>
<td>1,311 </td>
<td>393 </td>
<td>1,337 </td>
<td>768 </td>
<td>2,648
</td>
</tr>
<tr>
<td>14 </td>
<td>30,300 </td>
<td>394 </td>
<td>1,379 </td>
<td>414 </td>
<td>1,406 </td>
<td>808 </td>
<td>2,785
</td>
</tr>
<tr>
<td>15 </td>
<td>31,800 </td>
<td>414 </td>
<td>1,447 </td>
<td>434 </td>
<td>1,476 </td>
<td>848 </td>
<td>2,923
</td>
</tr>
<tr>
<td>16 </td>
<td>33,300 </td>
<td>433 </td>
<td>1,515 </td>
<td>455 </td>
<td>1,545 </td>
<td>888 </td>
<td>3,060
</td>
</tr>
<tr>
<td>17 </td>
<td>34,800 </td>
<td>453 </td>
<td>1,584 </td>
<td>475 </td>
<td>1,615 </td>
<td>928 </td>
<td>3,199
</td>
</tr>
<tr>
<td>18 </td>
<td>36,300 </td>
<td>472 </td>
<td>1,652 </td>
<td>495 </td>
<td>1,685 </td>
<td>967 </td>
<td>3,337
</td>
</tr>
<tr>
<td>19 </td>
<td>38,200 </td>
<td>496 </td>
<td>1,738 </td>
<td>521 </td>
<td>1,773 </td>
<td>1,017 </td>
<td>3,511
</td>
</tr>
<tr>
<td>20 </td>
<td>40,100 </td>
<td>521 </td>
<td>1,825 </td>
<td>547 </td>
<td>1,861 </td>
<td>1,068 </td>
<td>3,686
</td>
</tr>
<tr>
<td>21 </td>
<td>42,000 </td>
<td>546 </td>
<td>1,911 </td>
<td>573 </td>
<td>1,949 </td>
<td>1,119 </td>
<td>3,860
</td>
</tr>
<tr>
<td>22 </td>
<td>43,900 </td>
<td>571 </td>
<td>1,997 </td>
<td>599 </td>
<td>2,037 </td>
<td>1,170 </td>
<td>4,034
</td>
</tr>
<tr>
<td>23 </td>
<td>45,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>625 </td>
<td>2,126 </td>
<td>1,196 </td>
<td>4,123
</td>
</tr>
<tr>
<td>24 </td>
<td>48,200 </td>
<td>571 </td>
<td>1,997 </td>
<td>658 </td>
<td>2,237 </td>
<td>1,229 </td>
<td>4,234 </p>
</td>
</tr>
<tr>
<td>25 </td>
<td>50,600 </td>
<td>571 </td>
<td>1,997 </td>
<td>691 </td>
<td>2,348 </td>
<td>1,262 </td>
<td>4,345
</td>
</tr>
<tr>
<td>26 </td>
<td>53,000 </td>
<td>571 </td>
<td>1,997 </td>
<td>723 </td>
<td>2,460 </td>
<td>1,294 </td>
<td>4,457
</td>
</tr>
<tr>
<td>27 </td>
<td>55,400 </td>
<td>571 </td>
<td>1,997 </td>
<td>756 </td>
<td>2,571 </td>
<td>1,327 </td>
<td>4,568
</td>
</tr>
<tr>
<td>28 </td>
<td>57,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>789 </td>
<td>2,682 </td>
<td>1,360 </td>
<td>4,679
</td>
</tr>
<tr>
<td>29 </td>
<td>60,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>830 </td>
<td>2,822 </td>
<td>1,401 </td>
<td>4,819
</td>
</tr>
<tr>
<td>30 </td>
<td>63,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>871 </td>
<td>2,961 </td>
<td>1,442 </td>
<td>4,958
</td>
</tr>
<tr>
<td>31 </td>
<td>66,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>912 </td>
<td>3,100 </td>
<td>1,483 </td>
<td>5,097
</td>
</tr>
<tr>
<td>32 </td>
<td>69,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>953 </td>
<td>3,239 </td>
<td>1,524 </td>
<td>5,236
</td>
</tr>
<tr>
<td>33 </td>
<td>72,800 </td>
<td>571 </td>
<td>1,997 </td>
<td>994 </td>
<td>3,379 </td>
<td>1,565 </td>
<td>5,376
</td>
</tr>
<tr>
<td>34 </td>
<td>76,500 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,044 </td>
<td>3,550 </td>
<td>1,615 </td>
<td>5,547
</td>
</tr>
<tr>
<td>35 </td>
<td>80,200 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,095 </td>
<td>3,722 </td>
<td>1,666 </td>
<td>5,719
</td>
</tr>
<tr>
<td>36 </td>
<td>83,900 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,145 </td>
<td>3,894 </td>
<td>1,716 </td>
<td>5,891
</td>
</tr>
<tr>
<td>37 </td>
<td>87,600 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,196 </td>
<td>4,066 </td>
<td>1,767 </td>
<td>6,063
</td>
</tr>
<tr>
<td>38 </td>
<td>92,100 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,257 </td>
<td>4,274 </td>
<td>1,828 </td>
<td>6,271
</td>
</tr>
<tr>
<td>39 </td>
<td>96,600 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,319 </td>
<td>4,483 </td>
<td>1,890 </td>
<td>6,480
</td>
</tr>
<tr>
<td>40 </td>
<td>101,100 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,380 </td>
<td>4,692 </td>
<td>1,951 </td>
<td>6,689
</td>
</tr>
<tr>
<td>41 </td>
<td>105,600 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,441 </td>
<td>4,901 </td>
<td>2,012 </td>
<td>6,898
</td>
</tr>
<tr>
<td>42 </td>
<td>110,100 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,503 </td>
<td>5,110 </td>
<td>2,074 </td>
<td>7,107
</td>
</tr>
<tr>
<td>43 </td>
<td>115,500 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,577 </td>
<td>5,360 </td>
<td>2,148 </td>
<td>7,357
</td>
</tr>
<tr>
<td>44 </td>
<td>120,900 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,650 </td>
<td>5,611 </td>
<td>2,221 </td>
<td>7,608
</td>
</tr>
<tr>
<td>45 </td>
<td>126,300 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,724 </td>
<td>5,862 </td>
<td>2,295 </td>
<td>7,859
</td>
</tr>
<tr>
<td>46 </td>
<td>131,700 </td>
<td>571 </td>
<td>1,997 </td>
<td>1,798 </td>
<td>6,112 </td>
<td>2,369 </td>
<td>8,109
</td>
</tr>
<tr>
<td rowspan="4">說明</td>
<td colspan="9">1.本表適用對象為一般本國人。</td>
</tr>
<tr>
<td colspan="9">2.本表所列保費係以月為計算單位，新加保者自加保日起，按 ( 日 ) 計收勞保費；    健保費則按 ( 月 )計收保費。</td>
</tr>
<tr>
<td colspan="9">3.月支薪資金額介於兩投保級距間，以較高級數之投保級距，為適用級距。</td>
</tr>
<tr>
<td colspan="9">4.月支薪資金額未達17,280元，以17,280元為適用級距。</td>
</tr>
</table>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/12/18/137">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/12/18/137#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/12/18/137&title=Tableizer!">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/tableizer" rel="tag">tableizer</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/12/18/137/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Paginator</title>
		<link>http://www.sylin.net/blog/2008/09/14/104</link>
		<comments>http://www.sylin.net/blog/2008/09/14/104#comments</comments>
		<pubDate>Sun, 14 Sep 2008 07:32:31 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=104</guid>
		<description><![CDATA[Zend_Paginator 是 Zend Framework 1.6 的新功能之一 是用來提供作資料分頁的 Component，雖然分頁是個簡單的小功能，可是有時候自己寫又嫌麻煩，所以拿現成的元件來套用也蠻方便的。 Controller 要使用 Zend_Paginator 前，要知道 Zend_Paginator 支援下列四種方式: Array &#8211; 將資料集合以 Array 的形式傳入。 DbSelect &#8211; 將資料庫查詢所需的 Select Query 以 Zend_Db_Select 或字串的形式傳入，會根據 Query 向 DB 抓取對應所需的資料。 Iterator &#8211; 傳 Iteraotr ，沒仔細看，不過使用上應該跟 Array 差不多。 Null &#8211; 不處理資料，只用來處理分頁控制的部份。 以 Array Adapter 為例，在 Controller 裡可以用 $paginator = new Zend_Paginator&#40;new Zend_Paginator_Adapter_Array&#40;$array&#41;&#41;; 或是透過 factory pattern [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://framework.zend.com/manual/en/zend.paginator.html">Zend_Paginator</a> 是 <a href="http://framework.zend.com/">Zend Framework</a> 1.6 的新功能之一</p>
<p>是用來提供作資料分頁的 Component，雖然分頁是個簡單的小功能，可是有時候自己寫又嫌麻煩，所以拿現成的元件來套用也蠻方便的。</p>
<h3>Controller</h3>
<p>要使用 <a href="http://framework.zend.com/manual/en/zend.paginator.html">Zend_Paginator</a> 前，要知道 <a href="http://framework.zend.com/manual/en/zend.paginator.html">Zend_Paginator</a> 支援下列四種方式:</p>
<ol>
<li>Array &#8211; 將資料集合以 Array 的形式傳入。</li>
<li>DbSelect &#8211; 將資料庫查詢所需的 Select Query 以 Zend_Db_Select 或字串的形式傳入，會根據 Query 向 DB 抓取對應所需的資料。</li>
<li>Iterator &#8211; 傳 Iteraotr ，沒仔細看，不過使用上應該跟 Array 差不多。</li>
<li>Null &#8211; 不處理資料，只用來處理分頁控制的部份。</li>
</ol>
<p><span id="more-104"></span></p>
<p>以 Array Adapter 為例，在 Controller 裡可以用</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><span style="color: #000088;">$paginator</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Paginator<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Paginator_Adapter_Array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>或是透過 factory pattern</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><span style="color: #000088;">$paginator</span> <span style="color: #339933;">=</span> Zend_Paginator<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>接著設定頁數及每頁項目數量</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow">
<span style="color: #000088;">$paginator</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCurrentPageNumber</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemCountPerPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Default is 10</span>
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginator</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$paginator</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<h2>View</h2>
<p>而顯示的部份則交由 view script 來處理。這 View 的處理可分為兩個部份，一個是資料項目的顯示，另一個是分頁功能表的顯示。</p>
<p>資料項目的部份，由於 <a href="http://framework.zend.com/manual/en/zend.paginator.html">Zend_Paginator</a> 實做 SPL 的 <a href="http://www.php.net/%7Ehelly/php/ext/spl/interfaceIteratorAggregate.html" target="_top">IteratorAggregate</a> 介面，所以可以使用 foreach() 很方便地來詢訪資料項目。</p>
<p>分頁功能表(用來選擇上一頁、下一頁、或跳頁的控制像) 則透過 paginationControl() 這個 View Helper 來處理</p>
<p>以下為<a href="http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator.rendering">範例的程式碼</a></p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow">
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Example<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginator</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginator</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
      <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endforeach</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginationControl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">paginator</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Sliding'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_pagination_control.phtml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
</div></pre><!--END_DEVFMTCODE--></p>
<p><a href="http://framework.zend.com/manual/en/zend.paginator.html">Zend_Paginator</a> 預設提供四種 Scrolling (捲頁) Style: All、Elastic、Jumping和Sliding。Elastic 和 Sliding分別是 Google 和 Yahoo，不過除了 Elastic 會列出比較多頁數以外，我感覺好像沒什麼差別，下面這是 Sliding Style 的例子:</p>
<p><img class="aligncenter" title="Zend_Paginator Sliding Scrolling Style" src="http://framework.zend.com/manual/en/figures/zend.paginator.usage.rendering.control.png" alt="" width="337" height="36" /></p>
<p>All 則是會把所有頁數全部列出來，可以用在使用 select box 選擇頁數的時候。</p>
<p>Manual 裡除了範例程式外，還提供了幾個常用的分頁控制項的的例子，其中有提到 <a href="http://developer.yahoo.com">YDN</a> 的一些資源，是有關一些 UI 或 Web UI 常見的 pattern，還蠻不錯的，可以<a href="http://developer.yahoo.com/ypatterns/">參考看看</a></p>
<h2>Advance</h2>
<p>再來討論一些我遇到的問題跟解決方法</p>
<p>第一個是 Zend_Db_Table 和 Zend_Paginator 的配合，目前雖然有 DbSelect Adapter 可以用，不過傳回來的東西會是 Array，但是因為我把一些邏輯寫在 Zend_Db_Table_Row 裡面，所以希望資料項目能是 Zend_Db_Table_Rowset 或 Zend_Db_Table_Row，所以有人寫了<a href="http://www.noginn.com/2008/08/25/zend_paginator-and-zend_db_table/">Paginator_Adapter_DbTable</a> ，改寫 getItem() 的部份，透過 Zend_Db_Table 去作 fetchAll()，不過這個 Adapter 目前還沒有被官方正式採納，所以我就改成使用 Null Adapter 並且自己管理 Data Item。</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow">
<span style="color: #000088;">$select</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$select</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">limitPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchAll</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$selectCount</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$selectCount</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">from</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;t&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">&quot;table&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;cnt&quot;</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'COUNT(*)'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$cnt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchRow</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$selectCount</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span> <span style="color: #339933;">=</span> Zend_Paginator<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cnt</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCurrentPageNumber</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemCountPerPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
</div></pre><!--END_DEVFMTCODE--></p>
<p>再來另外一個問題是有關 Zend_Db_Table 的 Relationship Operation，前面我自己寫兩次 Query 分別去取得資料跟總數已經是個爛方法了，可是如果我要用的資料是透過 findManyToManyRowset() 得到的，那就有問題了，似乎不能使用 from() 去設定 COUNT(*)。</p>
<p>在 <a href="http://www.google.com">Google</a> 上查查看，找到<a href="http://framework.zend.com/issues/browse/ZF-3727;jsessionid=2A7FA62545E84B06F226AFAD5E076F3D?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel">這個作法</a>，發現在呼叫完 findManyToManyRowset() 之後，$select 會被改寫成包含 (inner) join 的 SQL Query，所以我可以拿著這個 $select 去請 Zend_Paginator 幫我處理總資料數目。裡面提到會發生 Exception 的問題似乎已經解決了，所以直接用就可以了</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow">
<span style="color: #000088;">$bugsTable</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Bugs<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$bugsRowset</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bugsTable</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span>1234<span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">current</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$select</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bugsTable</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$select</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">limitPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$productsRowset</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bug1234</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">findManyToManyRowset</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Products'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'BugsProducts'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span> <span style="color: #339933;">=</span> Zend_Paginator<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCurrentPageNumber</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemCountPerPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>另外原來自己查詢 COUNT(*)使用 Null Apdapter 的作法也可以同樣換掉</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow">
<span style="color: #000088;">$select</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$select</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">limitPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">,</span> <span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$table</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchAll</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span> <span style="color: #339933;">=</span> Zend_Paginator<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$paginator</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setCurrentPageNumber</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span>
         <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setItemCountPerPage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numPerPage</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></pre><!--END_DEVFMTCODE--></p>
<p>這樣的作法在 Controller 中看起來會滿簡潔的，不過我不確定在校能上會不會有問題，例如說是多做了一次 Query、或是每次都查詢所有的資料。</p>
<h3>參考資料</h3>
<ul>
<li><a href="http://www.noginn.com/2008/08/25/zend_paginator-and-zend_db_table/">Zend_Paginator and Zend_Db_Table</a></li>
<li><a href="http://framework.zend.com/issues/browse/ZF-3727;jsessionid=2A7FA62545E84B06F226AFAD5E076F3D?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel">Clear limitoffset and limitcount parts in Dbselect adapter when getting the total items count</a></li>
<li><a href="http://www.ajaxray.com/blog/2008/08/24/join-problems-with-zend_paginator-and-zend_db_select-objects/">Join Problems with Zend_Paginator and Zend_Db_Select objects</a></li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/09/14/104">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/09/14/104#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/09/14/104&title=Zend_Paginator">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/zend-framework" rel="tag">zend framework</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/14/104/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SWFObject</title>
		<link>http://www.sylin.net/blog/2008/08/18/99</link>
		<comments>http://www.sylin.net/blog/2008/08/18/99#comments</comments>
		<pubDate>Mon, 18 Aug 2008 07:03:45 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=99</guid>
		<description><![CDATA[SWFObject 是用在使用 Flash Application 的 Java Script Library 它能夠提供插入 Flash 所需 HTML Code，檢測 Flash 版本等功能 比較常用的是 1.5 版，網路上文件也比較多，這有兩篇中文的介紹 推薦SWFObject&#8211;Flash輔助利器 SWFObject: 基於Javascript的Flash媒體版本檢測與嵌入模塊 最新版為 SWFObject 2.1 放在 google code 上，而且跟 1.5 版不相容 Project 首頁: http://code.google.com/p/swfobject/ Document: http://code.google.com/p/swfobject/wiki/documentation 使用的方法有好幾種，在 Document 中都可以看到 © admin for Temporality, 2008. &#124; Permalink &#124; No comment &#124; Add to del.icio.us Post tags: flash, [...]]]></description>
			<content:encoded><![CDATA[<p>SWFObject 是用在使用 Flash Application 的 Java Script Library</p>
<p>它能夠提供插入 Flash 所需 HTML Code，檢測 Flash 版本等功能</p>
<p>比較常用的是 1.5 版，網路上文件也比較多，這有兩篇中文的介紹</p>
<ul>
<li><a mce_href="http://220.135.241.51/blog/article.asp?id=1783" href="http://220.135.241.51/blog/article.asp?id=1783">推薦SWFObject&#8211;Flash輔助利器</a></li>
<li><a mce_href="http://www.awflasher.com/flash/articles/swfobj.htm" href="http://www.awflasher.com/flash/articles/swfobj.htm">SWFObject: 基於Javascript的Flash媒體版本檢測與嵌入模塊</a></li>
</ul>
<p>最新版為 SWFObject 2.1 放在 google code 上，而且跟 1.5 版不相容</p>
<ul>
<li>Project 首頁: http://code.google.com/p/swfobject/</li>
<li>Document: http://code.google.com/p/swfobject/wiki/documentation</li>
</ul>
<p>使用的方法有好幾種，在 Document 中都可以看到</p>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/08/18/99">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/08/18/99#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/08/18/99&title=SWFObject">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/flash" rel="tag">flash</a>, <a href="http://www.sylin.net/blog/tag/web-design" rel="tag">Web Design</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/08/18/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HapplyWeb 10 心得(下)</title>
		<link>http://www.sylin.net/blog/2008/05/12/81</link>
		<comments>http://www.sylin.net/blog/2008/05/12/81#comments</comments>
		<pubDate>Mon, 12 May 2008 09:22:59 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[happy web]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=81</guid>
		<description><![CDATA[前陣子(4/26)去參加了 HappyWeb 10 的聚會, 這次的主題是我的遊戲口袋網站經營(By Haska) 及網路創業經驗分享 (By tempo) tempo 的部份: 「用成功解釋成功，是失敗的開始」 tempo 這場演講實在有夠精彩， 演講的開場方式我還蠻喜歡的，投影片一開始幾頁就點名 Web 2.0 使用者最大 商周標題 因為這都不是技術人最關心的，「Web 2.0」是媒體行銷、炒作的名詞;「使用者最大」，不是這場演講的重點;「商周標題」，在這一段 tempo 點出了商周故事邏輯上的問題，就是他們報導成功人士成功的秘訣，雖然我很少看商周，但他講的我蠻同意的。以前在成長教育中聽過一些演講，我常覺得都是 bullshit，但我又不知道該如何解釋，今天在 tempo 的演講都說明了。 每個成功的案例，有其獨特的時空背景，所以只有第一個 YouTube 成功了，但是如果重複 YouTube 的作法，未必會有第二個成功。 「Looking in winners is hard to find their patterns, but loser have」- Michael Arrington 用成功的例子去解釋成功，是不可行的，但用失敗的例子可以。 tempo 也同意上面的論點，所以他和大家分享他之前失敗的經驗，並提出一些他覺得是問題的地方。 感覺起來 tempo 應該是軟體人，對軟體工程、XP、Agile、Testing 方面相當有經驗(當然也是 Java 人)，同時因為偏重於技術創業，所以在籌資上也遇到許多困難，基本上都是靠自己的存款及家人的資助才撐過來的。不過他也說要找人投資的時機只有兩個，一是剛開始要作的時候，二是產品剛推出，並且錢^H前景大好的時候。這也很合理，畢竟其他時機都是在燒錢，沒人肯投資也是很合理的，尤其是資金快燒完，但產品完成遙遙無期的時候，tempo 本身是不贊成像 [...]]]></description>
			<content:encoded><![CDATA[<p>前陣子(4/26)去參加了 <a href="http://happyweb.tw/blog/happyweb/entry/happyweb_10_on_4_26">HappyWeb 10</a> 的聚會, 這次的主題是<a href="http://www.mygamespocket.com/" target="_blank">我的遊戲口袋</a>網站經營(By Haska) 及網路創業經驗分享 (By tempo)</p>
<p><strong>tempo 的部份</strong>:</p>
<p>「<strong>用成功解釋成功，是失敗的開始</strong>」</p>
<p><span id="more-81"></span></p>
<p>tempo 這場演講實在有夠精彩， 演講的開場方式我還蠻喜歡的，投影片一開始幾頁就點名</p>
<ul>
<li><span style="text-decoration: line-through;">Web 2.0</span></li>
<li><span style="text-decoration: line-through;">使用者最大</span></li>
<li><span style="text-decoration: line-through;">商周標題</span></li>
</ul>
<p>因為這都不是技術人最關心的，「<span style="text-decoration: line-through;">Web 2.0</span>」是媒體行銷、炒作的名詞;「<span style="text-decoration: line-through;">使用者最大</span>」，不是這場演講的重點;「<span style="text-decoration: line-through;">商周標題</span>」，在這一段 tempo 點出了商周故事邏輯上的問題，就是他們報導成功人士成功的秘訣，雖然我很少看商周，但他講的我蠻同意的。以前在成長教育中聽過一些演講，我常覺得都是 bullshit，但我又不知道該如何解釋，今天在 tempo 的演講都說明了。</p>
<p>每個成功的案例，有其獨特的時空背景，所以只有第一個 YouTube 成功了，但是如果重複 YouTube 的作法，未必會有第二個成功。</p>
<p><em>「Looking in winners is hard to find their patterns, but loser have」- <a href="http://www.techcrunch.com/about-michael-arrington/" target="_blank">Michael Arrington</a></em><br />
用成功的例子去解釋成功，是不可行的，但用失敗的例子可以。</p>
<p>tempo 也同意上面的論點，所以他和大家分享他之前失敗的經驗，並提出一些他覺得是問題的地方。</p>
<p>感覺起來 tempo 應該是軟體人，對軟體工程、XP、Agile、Testing 方面相當有經驗(當然也是 Java 人)，同時因為偏重於技術創業，所以在籌資上也遇到許多困難，基本上都是靠自己的存款及家人的資助才撐過來的。不過他也說要找人投資的時機只有兩個，一是剛開始要作的時候，二是產品剛推出，並且錢^H前景大好的時候。這也很合理，畢竟其他時機都是在燒錢，沒人肯投資也是很合理的，尤其是資金快燒完，但產品完成遙遙無期的時候，tempo 本身是不贊成像 YouTube 當初靠<a href="http://mag.udn.com/mag/digital/storypage.jsp?f_ART_ID=89590">信用卡循環利息</a>週轉那套作法。</p>
<p>工程、潔癖、架構為上 vs 以完成專案為優先。一個團隊是否應該有兩種態度的人才。前者是比較理想的，但只有理想常常在成功以前就先出局，所以可能需要有後者這樣的人，幫助維持基本的營收。</p>
<p>接下來是分享一些技術上的工具和架設網站會用到的一些東西，例如 Google Analytics, Frameworks, Eclipse (IDE), SVN, Trac, Continuum, ADSL/Web Hosing, 系統、網路調整的經驗。</p>
<p>社群網站 vs 工具網站，我個人會對工具網站比較有興趣。</p>
<p>我記得的內容大概是這一些，那天講的實在很豐富，一口氣講了兩個多小時，其實最後還有很多東西沒有交代完整，不然可能會講到天黑&#8230;而且如果沒有到場聽的話，光看投影片實在看不出什麼，大多都只有標題，這也是另一種方式的簡報，和我習慣做的都不同，當然也是因場合而有不同的作法，這也是一種簡報的技巧。</p>
<p><strong>投影片</strong>:</p>
<div id="__ss_374118" style="width: 425px; text-align: left;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=entrepreneurship3-1209263997537934-8" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=entrepreneurship3-1209263997537934-8" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
</div>
<p><img style="visibility:hidden;width:0px;height:0px;" src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMTA1Njg*OTY2NDAmcHQ9MTIxMDU2ODQ5ODg1OSZwPTEwMTkxJmQ9Jm49Jmc9Mg==.jpg" border="0" alt="" width="0" height="0" /></p>
<p><strong>相關連結</strong>：</p>
<ul>
<li><a href="http://happyweb.tw/blog/happyweb/entry/happyweb_10_on_4_26">HappyWeb 10 on 4/26</a></li>
<li><a href="http://tangblack.blogspot.com/2008/04/happyweb-10-happyweb.html">HappyWeb  10 &#8211; 我的第一次 HappyWeb</a></li>
<li><a rel="bookmark" href="http://punk.tw/2008/04/27/852.html">HappyWeb  10感想（技術創業）</a>- Cyberpunk</li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/05/12/81">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/05/12/81#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/05/12/81&title=HapplyWeb 10 心得(下)">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/happy-web" rel="tag">happy web</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/05/12/81/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HapplyWeb 10 心得(上)</title>
		<link>http://www.sylin.net/blog/2008/05/12/79</link>
		<comments>http://www.sylin.net/blog/2008/05/12/79#comments</comments>
		<pubDate>Mon, 12 May 2008 05:05:23 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[happy web]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=79</guid>
		<description><![CDATA[前陣子(4/26)去參加了 HappyWeb 10 的聚會, 這次的主題是我的遊戲口袋網站經營(By Haska) 及網路創業經驗分享 (By tempo) Haska 的部份: 前面是 Haska 的自我介紹, Haska 本身聽起來是專長應該是藝術、美術方面，興趣則是玩遊戲，但是他從大學開始就有經營網站的經驗了(應該有十年前了)，那時候的網站大概還是自己手寫 HTML, CGI 的年代，和現在有許多現成的Protal、討論區軟體如 WordPress, PHPBB 大不同，而且 Haska 都還是靠自學的。(其實就算念資工也未必會教你怎麼經營網站)。 聽過 Haska 的經歷，可以知道他對「如何經營網站」這方面相當的了解，在後來聽他聊和網站上的會員(大多是小朋友)之間的互動，以及他在思考網站的功能時，考慮都是相當周詳而且仔細的，這部份的 sense 我就相當缺乏。 關於技術上的難題，包含一開始沒有使用 framework，完全手工打造，缺點是開發會很辛苦，但也是有其優點，這部份就要依據個人情況來取捨了。 還有後來遇到的瓶頸，除了流量沒遇到問題以外，其他在 Database Query, Web Server 都曾經遭遇困難，但這部份對我而言比較 make sense, 要是遇到應該比較知道要怎麼找問題出來哪裡。Haska 用的解決方法不外乎Reverse Proxy, Data Object Cache, 以及將部份運算由 event base(hit) 改為 periodic base 之類的。 推銷網站的手段: 1. 忘了; [...]]]></description>
			<content:encoded><![CDATA[<p>前陣子(4/26)去參加了 <a href="http://happyweb.tw/blog/happyweb/entry/happyweb_10_on_4_26">HappyWeb 10</a> 的聚會, 這次的主題是<a href="http://www.mygamespocket.com/" target="_blank">我的遊戲口袋</a>網站經營(By Haska) 及網路創業經驗分享 (By tempo)</p>
<p><strong>Haska 的部份</strong>:<br />
前面是 Haska 的自我介紹, Haska 本身聽起來是專長應該是藝術、美術方面，興趣則是玩遊戲，但是他從大學開始就有經營網站的經驗了(應該有十年前了)，那時候的網站大概還是自己手寫 HTML, CGI 的年代，和現在有許多現成的Protal、討論區軟體如 WordPress, PHPBB 大不同，而且 Haska 都還是靠自學的。(其實就算念資工也未必會教你怎麼經營網站)。</p>
<p><span id="more-79"></span></p>
<p>聽過 Haska 的經歷，可以知道他對「如何經營網站」這方面相當的了解，在後來聽他聊和網站上的會員(大多是小朋友)之間的互動，以及他在思考網站的功能時，考慮都是相當周詳而且仔細的，這部份的 sense  我就相當缺乏。</p>
<p>關於技術上的難題，包含一開始沒有使用 framework，完全手工打造，缺點是開發會很辛苦，但也是有其優點，這部份就要依據個人情況來取捨了。</p>
<p>還有後來遇到的瓶頸，除了流量沒遇到問題以外，其他在 Database Query, Web Server 都曾經遭遇困難，但這部份對我而言比較 make sense, 要是遇到應該比較知道要怎麼找問題出來哪裡。Haska 用的解決方法不外乎Reverse Proxy, Data Object Cache, 以及將部份運算由 event base(hit) 改為 periodic base 之類的。</p>
<p>推銷網站的手段: 1. 忘了; 2. 一開始可以付費給 Search Engine 作廣告, 後來的效果還不錯, Haska 舉例說他在 <a href="http://tw.yahoo.com">Yahoo</a> 上廣告，後來過幾天 <a href="http://www.google.com.tw">Google</a> 上就可以找到了，因為他們也會互相抓資料; 3. Widget 很好用, 不過畢竟還是有些限制, 例如<a href="http://www.wretch.cc" target="_blank">無名小站</a>因為 java script 限制而不能自己新增 Widget ; 4. rss channel; 5. 這點好像蠻有趣的, 可是我忘了內容。</p>
<p>版權爭議: 這是指把遊戲放在<a href="http://www.mygamespocket.com/" target="_blank">我的遊戲口袋</a>會遇到的版權問題, 主要就是 我介紹你的遊戲，是幫遊戲作者作廣告，應該沒什麼問題, 而且遊戲很多本來就是被公開流傳的(雖然不一定是合法流傳)，但有些人還是會 murmur。 未來好像會朝連回原始站台的方式來避免版權問題。</p>
<p>競爭對手的興起: 這有兩個重點, 一是有了idea 跟架構, 要 copy 一個網站是很容易的, 人家用一用就可以猜出你怎麼做的，技術上要複製並不難(未必是抄襲); 二是遊戲的介紹及評論內容被盜用，這就是抄襲了。</p>
<p>Adsense 的逆襲, 雖然 Adsense 很紅, 但是 Smart Pricing 對某些性質的站台會有限制, 而且依照 Haska 的經驗, Google  有越來越摳的感覺，他是建議還有其他不錯的本土廣告平台可以合作(大概是像 <a href="http://ad.scupio.com/ad_index/index.htm" target="_blank">酷比</a> 之類的吧)</p>
<p>經營網站的快樂與痛苦, 這段我忘了聊些什麼了&#8230;.. 隔太久了才寫</p>
<p><strong>投影片</strong>:</p>
<p><strong>相關連結</strong>：</p>
<ul>
<li><a href="http://happyweb.tw/blog/happyweb/entry/happyweb_10_on_4_26">HappyWeb 10 on 4/26</a></li>
<li><a href="http://tangblack.blogspot.com/2008/04/happyweb-10-happyweb.html">HappyWeb  10 &#8211; 我的第一次 HappyWeb</a></li>
<li><a rel="bookmark" href="http://punk.tw/2008/04/27/852.html">HappyWeb  10感想（技術創業）</a>- Cyberpunk</li>
</ul>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/05/12/79">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/05/12/79#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/05/12/79&title=HapplyWeb 10 心得(上)">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/happy-web" rel="tag">happy web</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/05/12/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用 Druapal 建構網站的 Case Study</title>
		<link>http://www.sylin.net/blog/2008/04/07/72</link>
		<comments>http://www.sylin.net/blog/2008/04/07/72#comments</comments>
		<pubDate>Mon, 07 Apr 2008 03:02:46 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=72</guid>
		<description><![CDATA[有幾個寫的蠻深入的 Drupal 建構 Case 可以多作參考 DrakeGuan 的經驗 ，包含 苦勞網、cirque 與 行無礙 還有這個真理大學工管系 也是 Drupal 的成果 再這邊也有一個國外使用 Drupal 網站的列表: 看看那些知名職業在使用 Drupal （80 個) © admin for Temporality, 2008. &#124; Permalink &#124; One comment &#124; Add to del.icio.us Post tags: drupal Feed enhanced by Better Feed from Ozh]]></description>
			<content:encoded><![CDATA[<p>有幾個寫的蠻深入的 Drupal 建構 Case 可以多作參考</p>
<p><span class="submitted">DrakeGuan 的<a href="http://drupaltaiwan.org/forum/20080208/1861#comment-5734">經驗</a> ，包含 </span><a title=" 苦勞網 | DRAKE" rel="nofollow" href="http://drakeguan.org/coolloud_2.0_at_drupal">苦勞網</a>、<a title=" cirque | DRAKE" rel="nofollow" href="http://drakeguan.org/drupal_case_study_cirque.com.tw">cirque</a> 與 <a title=" 行無礙 | DRAKE" rel="nofollow" href="http://drakeguan.org/drupal_case_study_www.sunable.net">行無礙</a><span class="submitted"> </span></p>
<p>還有這個<a href="http://imil.au.edu.tw/~imei/">真理大學工管系</a> 也是 Drupal 的成果</p>
<p>再這邊也有一個國外使用 Drupal 網站的列表:</p>
<p><a href="http://drupaltaiwan.org/forum/20080406/2000" target="_blank">看看那些知名職業在使用 Drupal （80 個)</a></p>
<hr />
<p><small>© admin for <a href="http://www.sylin.net/blog">Temporality</a>, 2008. |
<a href="http://www.sylin.net/blog/2008/04/07/72">Permalink</a> |
<a href="http://www.sylin.net/blog/2008/04/07/72#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://www.sylin.net/blog/2008/04/07/72&title=用 Druapal 建構網站的 Case Study">del.icio.us</a>
<br/>
Post tags: <a href="http://www.sylin.net/blog/tag/drupal" rel="tag">drupal</a><br/>
</small></p>
<p><small>Feed enhanced by <a href='http://planetozh.com/blog/my-projects/wordpress-plugin-better-feed-rss/'>Better Feed</a> from  <a href='http://planetozh.com/blog/'>Ozh</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/04/07/72/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

