<?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/"
	>

<channel>
	<title>Temporality</title>
	<atom:link href="http://www.sylin.net/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sylin.net/blog</link>
	<description>my causerie</description>
	<pubDate>Tue, 18 Nov 2008 07:30:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7-beta2-9665</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Framework 1.7 Release</title>
		<link>http://www.sylin.net/blog/2008/11/18/124</link>
		<comments>http://www.sylin.net/blog/2008/11/18/124#comments</comments>
		<pubDate>Tue, 18 Nov 2008 07:20:27 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[社論]]></category>

		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=124</guid>
		<description><![CDATA[還蠻準時的..把看得懂得部份再整理一次	Zend_Amf AMF0 和 AMF3 支援
	Dojo Toolkit 1.2.1
	Zend_Service_Twitter, 支援 Twitter Service
	ZendX_JQuery, 支援 JQuery (as extras library)
	Metadata API in Zend_Cache (不過我還沒在用 Zend_Cache)
	Zend_Gdata 支援 Google Book Search, 並支援到 GData v2
	提升 Zend_Loader, Zend_Controller, server components 的效能
	同上, 手冊並增加新的章節 - Zend Framework Performance Guide
	Zend_ProgressBar: 進度元件1 
	Zend_Config_Writer: 可以用來生 Config file 了..
	Zend_Db_Table_Select support for Zend_Paginator, 應該是我之前想要的那個功能吧

相關資料	完整的 Release Announce
	簡單一點的Zend Framework 1.7 has been released!
	Zend [...]]]></description>
			<content:encoded><![CDATA[還蠻準時的..<br />把看得懂得部份再整理一次<ul>	<li>Zend_Amf AMF0 和 AMF3 支援</li>
	<li>Dojo Toolkit 1.2.1</li>
	<li>Zend_Service_Twitter, 支援 Twitter Service</li>
	<li>ZendX_JQuery, 支援 JQuery (as extras library)</li>
	<li>Metadata API in Zend_Cache (不過我還沒在用 Zend_Cache)</li>
	<li>Zend_Gdata 支援 Google Book Search, 並支援到 GData v2</li>
	<li>提升 Zend_Loader, Zend_Controller, server components 的效能</li>
	<li>同上, 手冊並增加新的章節 - <a href="http://framework.zend.com/manual/en/performance.html" ><strong>Zend Framework</strong> Performance Guide</a></li>
	<li>Zend_ProgressBar: 進度元件<sup>1</sup> </li>
	<li>Zend_Config_Writer: 可以用來生 Config file 了..</li>
	<li>Zend_Db_Table_Select support for Zend_Paginator, 應該是我<a href="http://www.sylin.net/blog/2008/09/14/104" >之前</a>想要的那個功能吧</li>
</ul>
<h3>相關資料</h3><ul>	<li>完整的 <a href="http://devzone.zend.com/article/4045-Zend-Framework-1.7.0-is-now-available" >Release Announce</a></li>
	<li>簡單一點的<a href="http://www.zendframeworkinaction.com/2008/11/17/zend-framework-17-has-been-released/" ><strong>Zend Framework</strong> 1.7 has been released!</a></li>
	<li><a href="http://www.sylin.net/blog/2008/11/02/118" ><strong>Zend Framework</strong> 1.7 PR</a></li>
</ul><ol class="footnotes"><li id="footnote_0_124" class="footnote">進度列的顯示要另外處理，主要是提供百分比計算, 及更新的架構</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/11/18/124/feed</wfw:commentRss>
		</item>
		<item>
		<title>Issue Tracking - Mantis</title>
		<link>http://www.sylin.net/blog/2008/11/14/121</link>
		<comments>http://www.sylin.net/blog/2008/11/14/121#comments</comments>
		<pubDate>Fri, 14 Nov 2008 09:20:20 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=121</guid>
		<description><![CDATA[什麼是 Issue Tracking? 又為什麼需要 Issue Tracking?這個問題可以參考這邊這次試用的工具是 Mantis，有關其他Mantis的介紹，可以參考-這隻螳螂(Mantis) 還挺猛的整合SVN  - Subversion 與 Mantis 整合作法中文操作說明 (in pdf)實際使用站台，朝陽用來回報問題的系統 - 朝陽許願池使用時，若是時區設定有問題可以修改 config_inc.php，並加入putenv&#40;&#34;TZ=Asia/Taipei&#34;&#41;;
不過實際使用的狀況，還要等用習慣以後才知道&#8230;]]></description>
			<content:encoded><![CDATA[<p>什麼是 Issue Tracking? 又為什麼需要 Issue Tracking?<br />這個問題可以參考<a href="http://www.kenming.idv.tw/index.php?title=a_esrayfc_uc_issue_tracking_amya_m_a_e_s" >這邊</a></p><p>這次試用的工具是 <a href="http://www.mantisbt.org/" >Mantis</a>，有關其他<a href="http://www.mantisbt.org/" >Mantis</a>的介紹，可以參考-<a href="http://www.ithome.com.tw/plog/index.php?op=ViewArticle&#038;articleId=10052&#038;blogId=296" >這隻螳螂(Mantis) 還挺猛的</a></p><ul><li>整合SVN  - <a href="http://www.ichiayi.com/trywiki/tech/svnmantis" >Subversion 與 Mantis 整合作法</a></li><li><a href="http://www.csie.ntut.edu.tw/sdrc/files/course/20061201/Mantis.pdf" >中文操作說明</a> (in pdf)</li><li>實際使用站台，朝陽用來回報問題的系統 - <a href="http://www.cyut.edu.tw/admin/cc/Mantis.htm" >朝陽許願池</a></li></ul><p>使用時，若是時區設定有問題可以修改 config_inc.php，並加入<br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode"><span style="color: #990000;">putenv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;TZ=Asia/Taipei&quot;</span><span style="color: #009900;">&#41;</span>;</pre></pre></p>
<br />不過實際使用的狀況，還要等用習慣以後才知道&#8230;]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/11/14/121/feed</wfw:commentRss>
		</item>
		<item>
		<title>減不減稅</title>
		<link>http://www.sylin.net/blog/2008/11/14/114</link>
		<comments>http://www.sylin.net/blog/2008/11/14/114#comments</comments>
		<pubDate>Fri, 14 Nov 2008 04:16:28 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[社論]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=114</guid>
		<description><![CDATA[前一陣子有電視上有一則提倡減稅的廣告，是希望降低稅率以提高稅收。由於降低稅率可以吸引資金在台灣的流動性，而 稅收=課徵淨額x稅率 ，雖然稅率降低了，但如果淨額大幅提高的話，反而可能增加稅收，這之間的關係應該是這篇「拉弗曲線與政府的稅收收入VS稅率之間的關係」所討論的。不過這當然是理想的狀況，實際的情況據說目鉅額的資金在國外，或是大陸，但是政府推行減稅政策並沒辦法保證資金一定會回來，也可能繼續留在國外，那減稅就不能增加稅收。
第二則是由公平稅改聯盟的成員(義工?)花了一個下午製作的，我上次有在公共電視看到。是在反對盲目的減稅政策，由於目前的減稅政策對於一般人的影響並不大。以遺產稅為例，通常新聞標題只會報導稅率從 50% 減到 10%，但是50%這是最高階級所需要課的稅率(應納遺產稅計算)，扣完一堆免稅額(數十到數百萬/人)跟扣除額(779萬)以後，一般人其實不會到那麼高的稅率。所以減稅以後，影響最大的是很有錢很有錢的人.. 大概身價要到三億吧。假設避稅、扣除額、免稅額都算完以後，還剛好到最高級的稅率-一億兩千萬，那麼要繳的稅會從原本-六千萬變成減稅後-一千兩百萬。目前是覺得張忠謀提的方向是比較合理的-「富人增稅、窮人減稅」，至於數字要用多少可以再研究。
 相關連結:公平稅改聯盟
]]></description>
			<content:encoded><![CDATA[<p>前一陣子有電視上有一則提倡減稅的廣告，是希望降低稅率以提高稅收。<br />由於降低稅率可以吸引資金在台灣的流動性，而 稅收=課徵淨額x稅率 ，雖然稅率降低了，但如果淨額大幅提高的話，反而可能增加稅收，這之間的關係應該是這篇「<a href="http://www.dk101.com/index.php/25/viewspace-10686.html" >拉弗曲線與政府的稅收收入VS稅率之間的關係</a>」所討論的。</p><p>不過這當然是理想的狀況，實際的情況據說目鉅額的資金在國外，或是大陸，但是政府推行減稅政策並沒辦法保證資金一定會回來，也可能繼續留在國外，那減稅就不能增加稅收。</p>
<span id="more-114"></span><p>第二則是由公平稅改聯盟的成員(義工?)花了一個下午製作的，我上次有在<a href="http://www.pts.org.tw/" >公共電視</a>看到。是在反對盲目的減稅政策，由於目前的減稅政策對於一般人的影響並不大。</p><p>以遺產稅為例，通常新聞標題只會報導稅率從 50% 減到 10%，但是50%這是最高階級所需要課的稅率(<a href="http://www.clincpa.com.tw/tc/eg/estate.php#e3" >應納遺產稅計算</a>)，扣完一堆免稅額(數十到數百萬/人)跟扣除額(779萬)以後，一般人其實不會到那麼高的稅率。</p><p>所以減稅以後，影響最大的是很有錢很有錢的人.. 大概身價要到三億吧。<br />假設避稅、扣除額、免稅額都算完以後，還剛好到最高級的稅率-一億兩千萬，那麼要繳的稅會從原本-六千萬變成減稅後-一千兩百萬。<br />目前是覺得張忠謀提的方向是比較合理的-「<a href="http://www.nownews.com/2008/07/24/320-2309404.htm" >富人增稅、窮人減稅</a>」，至於數字要用多少可以再研究。</p>
<br /><object width="425" height="349"><param name="movie" value="http://www.youtube.com/v/YtTfUPtZvAQ&#038;hl=zh_TW&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;border=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/YtTfUPtZvAQ&#038;hl=zh_TW&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;border=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="349"></embed></object><br /><br /><object width="425" height="349"><param name="movie" value="http://www.youtube.com/v/Ss8DHKKnLTo&#038;hl=zh_TW&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;border=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/Ss8DHKKnLTo&#038;hl=zh_TW&#038;fs=1&#038;color1=0x006699&#038;color2=0x54abd6&#038;border=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="349"></embed></object><br /><br /><script type='text/javascript' src='http://video.cw.com.tw/pages/public/movie/doc/moviejs.jspx?id=40288ae71c6f10be011c8d7a56c24a60'></script> <br /><br /><h2>相關連結:</h2><ul><li><a href="http://blog.yam.com/fairtax" >公平稅改聯盟</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/11/14/114/feed</wfw:commentRss>
		</item>
		<item>
		<title>Zend Framework 1.7</title>
		<link>http://www.sylin.net/blog/2008/11/02/118</link>
		<comments>http://www.sylin.net/blog/2008/11/02/118#comments</comments>
		<pubDate>Sat, 01 Nov 2008 18:31:32 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=118</guid>
		<description><![CDATA[Zend Framework 預計 11/16 會釋出 1.7 Release, 目前則是 1.7 Preview Release.幾個新的功能及改進:New Zend_AMF component: 提供 Flash 的 RPC 功能, 參考AMFPHP-搭起Flash與PHP的美麗橋樑 
	Dojo Toolkit 1.2.0 
	New ZendX_JQuery component: 內建提供 jQuery library(framework) 
	Support for dijit editor 
	Metadata API in Zend_Cache 
	Google book search API 
	Performance enhancements: 效能調校 
	Application-wide locale with other i18n enhancements: 增強的多國語系功能 
	File upload form element enhancements [...]]]></description>
			<content:encoded><![CDATA[Zend Framework 預計 11/16 會釋出 1.7 Release, 目前則是 1.7 Preview Release.<br />幾個新的功能及改進:<ul><li>New Zend_AMF component: 提供 Flash 的 RPC 功能, 參考<a href="http://blog.eddie.com.tw/2008/10/12/amfphp-tutorial" >AMFPHP-搭起Flash與PHP的美麗橋樑</a> </li>
	<li>Dojo Toolkit 1.2.0 </li>
	<li>New ZendX_JQuery component: 內建提供 jQuery library(framework) </li>
	<li>Support for dijit editor </li>
	<li>Metadata API in Zend_Cache </li>
	<li>Google book search API </li>
	<li>Performance enhancements: 效能調校 </li>
	<li>Application-wide locale with other i18n enhancements: 增強的多國語系功能 </li>
	<li>File upload form element enhancements </li></ul>
<h3>參考來源:</h3><ul><li><a href="http://www.zendframeworkinaction.com/2008/10/31/zf-17-timetables/" >ZF 1.7 timetable</a> </li><li><a href="http://devzone.zend.com/article/3962-Zend-Framework-1.7-Preview-Release-now-available" ><strong>Zend Framework</strong> 1.7 Preview Release now available</a></li><li><a href="http://blog.eddie.com.tw/2008/10/12/amfphp-tutorial" >AMFPHP-搭起Flash與PHP的美麗橋樑</a></li></ul>
<br />]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/11/02/118/feed</wfw:commentRss>
		</item>
		<item>
		<title>2008第三季收支紀錄</title>
		<link>http://www.sylin.net/blog/2008/10/02/115</link>
		<comments>http://www.sylin.net/blog/2008/10/02/115#comments</comments>
		<pubDate>Thu, 02 Oct 2008 08:46:01 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[記帳]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=115</guid>
		<description><![CDATA[居然已經一年多沒寫報表了&#8230;直接來寫今(2008)年第三季的吧飯錢一直是佔比較大比例的一部分, 維持在 30% ~ 40%左右, 車錢主要是捷運悠遊卡的支出, 平均每個月 $1200, 個人類則是一些雜支, 包括剪頭髮、隱形眼鏡、掛號費等等，是比較容易有變動的部份。看了一下前三季的報表，每季的現金流都還蠻穩定的，每季淨額(收入-支出)都差不多10萬，不過算一算這樣下去距離我今年原本預計的目標還差6萬~，傷腦筋&#8230;統一發票要中兩個二獎，或是六個三獎，而且只剩一次機會了(11/25 的開獎)，要不然就是要中樂透才行。這錢要去哪賺呢?]]></description>
			<content:encoded><![CDATA[居然已經一年多沒寫報表了&#8230;<br /><br />直接來寫今(2008)年第三季的吧<br /><span id="more-115"></span><br /><a href="http://www.sylin.net/blog/wp-content/uploads/2008/10/dnc-bgr0v437.png"  rel="lightbox[115]"><img src="http://www.sylin.net/blog/wp-content/uploads/2008/10/dnc-bgr0v437.png" alt="" title="dnc-bgr0v437" width="600" height="350" class="alignnone size-full wp-image-117" /></a><br /><br />飯錢一直是佔比較大比例的一部分, 維持在 30% ~ 40%左右, 車錢主要是捷運悠遊卡的支出, 平均每個月 $1200, 個人類則是一些雜支, 包括剪頭髮、隱形眼鏡、掛號費等等，是比較容易有變動的部份。<br /><br />看了一下前三季的報表，每季的現金流都還蠻穩定的，每季淨額(收入-支出)都差不多10萬，不過算一算這樣下去距離我今年原本預計的目標還差6萬~，傷腦筋&#8230;<br />統一發票要中兩個二獎，或是六個三獎，而且只剩一次機會了(11/25 的開獎)，要不然就是要中樂透才行。<br /><br />這錢要去哪賺呢?]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/10/02/115/feed</wfw:commentRss>
		</item>
		<item>
		<title>台北國際發明展</title>
		<link>http://www.sylin.net/blog/2008/09/28/112</link>
		<comments>http://www.sylin.net/blog/2008/09/28/112#comments</comments>
		<pubDate>Sat, 27 Sep 2008 17:31:03 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[roller ball]]></category>

		<category><![CDATA[世貿]]></category>

		<category><![CDATA[發明展]]></category>

		<category><![CDATA[腕力球]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=112</guid>
		<description><![CDATA[前幾天看了癮科技介紹到台北國際發明展 的一些內容，似乎還蠻有趣的，這個週末就趁機去看了。裡面展覽的東西還蠻特別的，有很多看起來是一個人自己作研發，然後申請專利的產品，因為友好幾個攤位的名字就是直接用姓名，應該就是發明家沒有成立公司所以用自己的名字吧。裡面展覽有逸能科技的攤位，其中扭力球(腕力球)還蠻特別的，一看到就吸引到我，它不靠電池，依靠慣性跟離心力來作旋轉，可是握起來的感覺卻像是有馬達在裡面振動，轉動手腕除了可以控制球的旋轉，還可以感受球回饋的力道，售價是一顆兩百，原本已經是我可以接受的價格了，不過老闆先是推銷兩顆算三百五，可是我覺得多買一顆也沒什麼用，最後老闆是算我兩顆三百塊，還算不錯啦，雖然後來找到網拍有賣一顆 $129 的，不過逸能應該是最正宗的吧，所以也OK。這東西可以當玩具，也可以用來訓練一下腕力，應該還算實用吧。我買的是第一種用線啟動的                           其他買腕力球的人另一個買超貴的冤大頭特價 129 的按摩腕力球

還有賣廚房用具組的，可以用來切菜、切水果、作沙拉、果泥的，真的是很會講，介紹詞超順超妙，可惜我學不起來，攤位前面圍了一堆人，連我聽了都很想買，不過一組六支要 $599 實在是有點貴;另外還有看到貴夫人果汁機的攤位，也是蠻妙的，不過比廚房用具組的差了點。聽不累耳機，這也是我有點興趣的，原理是用磁鐵夾住耳垂，避免耳塞式會痛的缺點，應該有點類似磁鐵耳環吧，不過攤位圍了太多人在詢問，我就沒有去湊熱鬧，也不知道現場賣多少錢，網路上是 $599 以上。我在現場還去買了一隻冰淇淋，是當場把冰棒變成冰淇淋的機器作的，不過我點的是巧克力，然後擠出來的冰淇淋又是一條細細的螺旋狀盤上來，我想還是不要照相好了，吃起來也是普通，不過口味應該跟當作原料的冰棒比較有關係。最後還有一個經濟部科技專案專區裡看到的 WiMAX Demo，現場放了一台平躺式主機大小的 Base Station (稱為Pico BS) 跟一台 Laptop + WiMAX CPE 網卡，我猜這個在之前的資訊相關展覽應該已經出現過了，只是我現在才看到。現場發的 DM 還有畫出整個架構的 Protocol Statck 以及開發時軟硬體環境的規格與需求。 Ps. [...]]]></description>
			<content:encoded><![CDATA[前幾天看了<a href="http://chinese.engadget.com/" >癮科技</a>介紹到<a href="http://www.inventaipei.com.tw/chinese/index.shtml" >台北國際發明展</a> 的一些<a href="http://chinese.engadget.com/tag/Tiist2008/" >內容</a>，似乎還蠻有趣的，這個週末就趁機去看了。<br /><br />裡面展覽的東西還蠻特別的，有很多看起來是一個人自己作研發，然後申請專利的產品，因為友好幾個攤位的名字就是直接用姓名，應該就是發明家沒有成立公司所以用自己的名字吧。<br /><span id="more-112"></span><br />裡面展覽有<a href="http://homepage19.seed.net.tw/web@5/eneng/ch_company.htm" >逸能科技</a>的攤位，其中<a href="http://homepage19.seed.net.tw/web@5/eneng/ch_rollerball.htm" >扭力球(腕力球)</a>還蠻特別的，一看到就吸引到我，它不靠電池，依靠慣性跟離心力來作旋轉，可是握起來的感覺卻像是有馬達在裡面振動，轉動手腕除了可以控制球的旋轉，還可以感受球回饋的力道，售價是一顆兩百，原本已經是我可以接受的價格了，不過老闆先是推銷兩顆算三百五，可是我覺得多買一顆也沒什麼用，最後老闆是算我兩顆三百塊，還算不錯啦，雖然後來找到網拍有賣一顆 $129 的，不過逸能應該是最正宗的吧，所以也OK。這東西可以當玩具，也可以用來訓練一下腕力，應該還算實用吧。<br /><br />我買的是第一種用線啟動的<div style="float: left"><br /><object type="application/x-shockwave-flash" data="http://flv-player.net/medias/player_flv_mini.swf" width="320" height="240"><br />   <param name="movie" value="http://flv-player.net/medias/player_flv_mini.swf" /><br />   <param name="allowFullScreen" value="true" /><br />   <param name="FlashVars" value="flv=http%3A//sylin.net/video/DB-0102.flv&amp;autoload=1" /><br /></object><br /></div><div style="float: left"><br /><object type="application/x-shockwave-flash" data="http://flv-player.net/medias/player_flv_mini.swf" width="320" height="240"><br />   <param name="movie" value="http://flv-player.net/medias/player_flv_mini.swf" /><br />   <param name="allowFullScreen" value="true" /><br />   <param name="FlashVars" value="flv=http%3A//sylin.net/video/DB-0103_DB-0301.flv" /><br /></object><br /></div><div><br /><object type="application/x-shockwave-flash" data="http://flv-player.net/medias/player_flv_mini.swf" width="320" height="240"><br />   <param name="movie" value="http://flv-player.net/medias/player_flv_mini.swf" /><br />   <param name="allowFullScreen" value="true" /><br />   <param name="FlashVars" value="flv=http%3A//sylin.net/video/DB-0502.flv" /><br /></object><br /></div><ul><li><a href="http://cherishnews.pixnet.net/blog/post/10041789" >其他買腕力球的人</a></li><li><a href="http://tw.myblog.yahoo.com/my-cindy/article?mid=393&#038;prev=423&#038;next=372" >另一個買超貴的冤大頭</a></li><li><a href="http://store.pchome.com.tw/dashop/M01084301.htm" >特價 129 的按摩腕力球</a></li>
</ul>
<br />還有賣廚房用具組的，可以用來切菜、切水果、作沙拉、果泥的，真的是很會講，介紹詞超順超妙，可惜我學不起來，攤位前面圍了一堆人，連我聽了都很想買，不過一組六支要 $599 實在是有點貴;另外還有看到<a href="http://www.ladyship.com.tw/" >貴夫人果汁機</a>的攤位，也是蠻妙的，不過比廚房用具組的差了點。<br /><br /><a href="http://shopping.pchome.com.tw/?mod=store&#038;func=style_show&#038;SR_NO=ABAO3T" >聽不累耳機</a>，這也是我有點興趣的，原理是用磁鐵夾住耳垂，避免耳塞式會痛的缺點，應該有點類似磁鐵耳環吧，不過攤位圍了太多人在詢問，我就沒有去湊熱鬧，也不知道現場賣多少錢，網路上是 $599 以上。<br /><br />我在現場還去買了一隻冰淇淋，是當場把冰棒變成冰淇淋的機器作的，不過我點的是巧克力，然後擠出來的冰淇淋又是一條細細的螺旋狀盤上來，我想還是不要照相好了，吃起來也是普通，不過口味應該跟當作原料的冰棒比較有關係。<br /><br />最後還有一個經濟部科技專案專區裡看到的 WiMAX Demo，現場放了一台平躺式主機大小的 Base Station (稱為Pico BS) 跟一台 Laptop + WiMAX CPE 網卡，我猜這個在之前的資訊相關展覽應該已經出現過了，只是我現在才看到。現場發的 DM 還有畫出整個架構的 Protocol Statck 以及開發時軟硬體環境的規格與需求。 Ps. 這是資策會網多所的計畫。<br /><br />看完展覽一樣還是到明耀百貨後面去吃泡菜鍋，吃完之後沒事就去逛了一下 SOGO 百貨，只是百貨公司的東西都不太買的起，還有件 <a href="http://www.google.com.tw/search?complete=1&#038;hl=zh-TW&#038;q=gore-tex&#038;meta=&#038;aq=1&#038;oq=gore-t" >Gore-Tex</a>的外套居然要 $19800，哇勒&#8230;&#8230;&#8230;.. 會不會太誇張啊。]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/28/112/feed</wfw:commentRss>
		</item>
		<item>
		<title>捷運的程式運作畫面</title>
		<link>http://www.sylin.net/blog/2008/09/27/108</link>
		<comments>http://www.sylin.net/blog/2008/09/27/108#comments</comments>
		<pubDate>Sat, 27 Sep 2008 14:42:42 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[奇岩]]></category>

		<category><![CDATA[捷運]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=108</guid>
		<description><![CDATA[昨天(26日)下午在奇岩站的月台螢幕看到的畫面由畫面內容看來，是負責對時以及傳送列車到站時間的，有沒有其他功能就看不出來了。]]></description>
			<content:encoded><![CDATA[昨天(26日)下午在奇岩站的月台螢幕看到的畫面<br /><br /><a href="http://www.sylin.net/gallery2/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2499&#038;g2_GALLERYSID=7993818abe5fd13030194d209182cb46"  rel="lightbox[g2image]" title="捷運程式畫面1" ><img src="http://www.sylin.net/gallery2/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2500&#038;g2_GALLERYSID=7993818abe5fd13030194d209182cb46" width="150"  height="150"  alt="IMG0052B" title="捷運程式畫面1" /></a><a href="http://www.sylin.net/gallery2/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2502&#038;g2_GALLERYSID=7993818abe5fd13030194d209182cb46"  rel="lightbox[g2image]" title="捷運程式畫面2" ><img src="http://www.sylin.net/gallery2/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2503&#038;g2_GALLERYSID=7993818abe5fd13030194d209182cb46" width="150"  height="150"  alt="IMG0053B" title="捷運程式畫面2" /></a><br />由畫面內容看來，是負責對時以及傳送列車到站時間的，有沒有其他功能就看不出來了。]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/27/108/feed</wfw:commentRss>
		</item>
		<item>
		<title>來看看大陸先進的生化科技</title>
		<link>http://www.sylin.net/blog/2008/09/24/107</link>
		<comments>http://www.sylin.net/blog/2008/09/24/107#comments</comments>
		<pubDate>Wed, 24 Sep 2008 15:08:53 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[生活]]></category>

		<category><![CDATA[三聚氰胺]]></category>

		<category><![CDATA[大陸]]></category>

		<category><![CDATA[毒奶粉]]></category>

		<category><![CDATA[黑心]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=107</guid>
		<description><![CDATA[我是從百度貼來的，不過上面又寫說是從天涯來的，不過就來看看大陸人是怎麼作東西的引用來源***********************************************************乳品業內幕（轉自天涯）
 本人曾在北京最大的乳品企業幹過5年，對乳品行業略知一二。閒言碎語不要講，先表表———   　　   假奶之奶牛篇
　　母牛大概在一歲半的時候就被 強制破處了，懷胎10月（與人類差不多），產下一幼仔，當然公的當場屠殺，母的留作換代之用，然後就是連續270天的產奶期，當然，後面的100來 天產的奶無論品質還是產量都大幅度下降，怎麼辦呢？激素，大劑量激素。如果您的女兒在8-9歲就來月經了，這就是原因。   　　   　　奶牛的乳腺太BT了，一頭荷蘭花能日產60公斤，如果衛生條件不太好，那牛就天天乳腺炎，怎麼辦呢？抗生素，超大劑量抗生素，當然，這樣的牛奶是做不出酸奶的，因為做酸奶的乳桿菌和糞球菌都怕抗生素，當年Boss讓俺做個耐抗生素菌種，被俺嚴詞拒絕了，其實非常簡單，找幾個抗性質粒改造一下就OK，這個和造細菌武器是一樣的路數，後果非常可怕。那如果收了抗生素奶怎麼辦？找個易感菌種試驗一下，能長菌就能做酸奶，當然了，現在一般都檢測青黴素殘留。我曾經強烈建議檢測四環素殘留，被Boss海K一頓，說我找死呢，所有飼料生產廠家都添加四環素，這個打擊面太大了，在中國混先學學潛規則。   　　   假 奶之造假篇
　　初級造假——產奶1000公斤，賣1200公斤，一般加工廠收原料奶控制蛋白含量1%，脂肪含量3%，但是奶牛產奶一般來說冬季遠遠大於這個數字，夏季也比這個數字略高，在優質不優價的前提下，先把水摻足了再說。大牛場摻水的量是有嚴格檢驗並計算的，散養戶也不示弱，有種手持式快速檢測設備，指導加水量。北京這家最大的奶企業收的原料奶兩項指標都這麼多，誤差不超過0.1%。   　　中級造假——產奶1000公斤，賣1500公 斤。奶廠收原料奶一般都用凱氏定氮法測定總N含量，然後換算成蛋白含量，所以只要提高N含量就可以了，不太黑心的奶戶和牛場摻了尿素，稍微黑心點的摻牛尿，更節省成本還有奶香味，呵呵！但是這樣一來脂肪含量相對下降了，也有辦法，把尿素和植物油/洗衣粉按比例添加就可以了。   　　   　　高級造假——產奶1000公斤，賣2000公斤。尿素+植物油+洗 衣粉+水+澱粉+牛奶香精+乳糖。澱粉用來增加稠度，香精用來改善感官指標。   　　   　　超級造假——產奶0公斤，賣2000公斤。這個就是個高級技術活了，不過現在掌握這一技術的奶農很多，大牛場一般沒這麼黑。牛奶的收購指標有感官、黏度、PH、比重、N含量、脂肪含量、青黴素殘留、干物質總含量，針對這些指標，用固定的配方能做出足以亂真的「牛奶」，原料就是三聚氰胺、澱粉、鹽酸、水、洗衣粉、植物油、明膠、香精、乳糖。那個三聚氰胺是種膠黏劑，黏度調節就靠它。   　　   　　各種造假手段往往互相滲透， 超級造假手段也會用於初級造假，沒得說。   假 奶之加工篇
　　最好的牛奶用作製作酸奶，因 為無論什麼廠家，無論什麼人，用含有洗衣粉和抗生素的奶是造不出好酸奶的，酸奶為什麼貴得離譜，就因為這，其實做酸奶只要80%的牛奶就夠了。   　　做不了酸奶的奶用於做液態產品，袋奶、超高溫奶、ESL（長貨架期）奶，你就喝吧，反正喝死人沒我啥事。 [...]]]></description>
			<content:encoded><![CDATA[我是從<a href="http://tieba.baidu.com/" >百度</a>貼來的，不過上面又寫說是從天涯來的，不過就來看看大陸人是怎麼作東西的<br /><span id="more-107"></span><br /><br /><a href="http://tieba.baidu.com/f?kz=481449011" >引用來源</a><br />***********************************************************<br /><h3>乳品業內幕（轉自天涯）</h3>
 本人曾在北京最大的乳品企業幹過5年，對乳品行業略知一二。閒言碎語不要講，先表表———   <br />　　   <br /><h4>假奶之奶牛篇</h4>
　　母牛大概在一歲半的時候就被 強制破處了，懷胎10月（與人類差不多），產下一幼仔，當然公的當場屠殺，母的留作換代之用，然後就是連續270天的產奶期，當然，後面的100來 天產的奶無論品質還是產量都大幅度下降，怎麼辦呢？激素，大劑量激素。如果您的女兒在8-9歲就來月經了，這就是原因。   <br />　　   <br />　　奶牛的乳腺太BT了，一頭荷蘭花能日產60公斤，如果衛生條件不太好，那牛就天天乳腺炎，怎麼辦呢？抗生素，超大劑量抗生素，當然，這樣的牛奶是做不出酸奶的，因為做酸奶的乳桿菌和糞球菌都怕抗生素，當年Boss讓俺做個耐抗生素菌種，被俺嚴詞拒絕了，其實非常簡單，找幾個抗性質粒改造一下就OK，這個和造細菌武器是一樣的路數，後果非常可怕。那如果收了抗生素奶怎麼辦？找個易感菌種試驗一下，能長菌就能做酸奶，當然了，現在一般都檢測青黴素殘留。我曾經強烈建議檢測四環素殘留，被Boss海K一頓，說我找死呢，所有飼料生產廠家都添加四環素，這個打擊面太大了，在中國混先學學潛規則。   <br />　　   <br /><h4>假 奶之造假篇</h4>
　　初級造假——產奶1000公斤，賣1200公斤，一般加工廠收原料奶控制蛋白含量1%，脂肪含量3%，但是奶牛產奶一般來說冬季遠遠大於這個數字，夏季也比這個數字略高，在優質不優價的前提下，先把水摻足了再說。大牛場摻水的量是有嚴格檢驗並計算的，散養戶也不示弱，有種手持式快速檢測設備，指導加水量。北京這家最大的奶企業收的原料奶兩項指標都這麼多，誤差不超過0.1%。   <br />　　中級造假——產奶1000公斤，賣1500公 斤。奶廠收原料奶一般都用凱氏定氮法測定總N含量，然後換算成蛋白含量，所以只要提高N含量就可以了，不太黑心的奶戶和牛場摻了尿素，稍微黑心點的摻牛尿，更節省成本還有奶香味，呵呵！但是這樣一來脂肪含量相對下降了，也有辦法，把尿素和植物油/洗衣粉按比例添加就可以了。   <br />　　   <br />　　高級造假——產奶1000公斤，賣2000公斤。尿素+植物油+洗 衣粉+水+澱粉+牛奶香精+乳糖。澱粉用來增加稠度，香精用來改善感官指標。   <br />　　   <br />　　超級造假——產奶0公斤，賣2000公斤。這個就是個高級技術活了，不過現在掌握這一技術的奶農很多，大牛場一般沒這麼黑。牛奶的收購指標有感官、黏度、PH、比重、N含量、脂肪含量、青黴素殘留、干物質總含量，針對這些指標，用固定的配方能做出足以亂真的「牛奶」，原料就是三聚氰胺、澱粉、鹽酸、水、洗衣粉、植物油、明膠、香精、乳糖。那個三聚氰胺是種膠黏劑，黏度調節就靠它。   <br />　　   <br />　　各種造假手段往往互相滲透， 超級造假手段也會用於初級造假，沒得說。   <br /><h4>假 奶之加工篇</h4>
　　最好的牛奶用作製作酸奶，因 為無論什麼廠家，無論什麼人，用含有洗衣粉和抗生素的奶是造不出好酸奶的，酸奶為什麼貴得離譜，就因為這，其實做酸奶只要80%的牛奶就夠了。   <br />　　做不了酸奶的奶用於做液態產品，袋奶、超高溫奶、ESL（長貨架期）奶，你就喝吧，反正喝死人沒我啥事。   <br />　　最次的奶用於噴粉，國產奶粉就是垃圾。這位看官說了，我喝進口的，對不起，只要Made in China， 原材料都是國產奶粉（進口奶粉原材料，關稅嚇死你），這次他們逃掉是公關做得好。   <br />　　   <br />　　這個北京最大乳品企業這次能 逃掉，說它的奶質量過關，打死我都不信。   <br />　　   <br /><h4>假 奶之選購篇</h4>
　　因噎廢食嗎？業內人士都喝優 質原味酸奶，道理很簡單，好奶才能做出好酸奶，沒做成好酸奶怎麼辦？調味啊！   <br />　　   <br />　　囉哩囉唆不成體統，大家將就 看看吧。   <br />]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/24/107/feed</wfw:commentRss>
		</item>
		<item>
		<title>一些 WordPress 的修改</title>
		<link>http://www.sylin.net/blog/2008/09/14/105</link>
		<comments>http://www.sylin.net/blog/2008/09/14/105#comments</comments>
		<pubDate>Sun, 14 Sep 2008 10:15:22 +0000</pubDate>
		<dc:creator>sylin</dc:creator>
		
		<category><![CDATA[部落格]]></category>

		<category><![CDATA[formatter]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.sylin.net/blog/?p=105</guid>
		<description><![CDATA[今天為了要發表前一篇 Zend Paginator，結果花了一下午的時間。首先是要在文章裡顯示程式碼，所以找了 Developer Formatter 來用，效果是不錯，不過在編輯器的部份有問題，會跟 Visual Ediit Mode 衝到，變成只能在 Visual Mode 作 HTML Mode 的事情 (使用時像是 HTML Mode, 但其實是在 Visual Mode)，這時候如果存檔，文章就會出問題了。例如我打一個空白或換行，它都會被強制存成 &#8220;&#38;nbsp;&#8221; 或 &#8220;&#60;br /&#62;&#8221;，所以排版都會有問題，一開始我還沒搞清楚是怎麼回事，就只好一直重複修改文章，於是就導致另一個問題 - 同一篇文章有好多個 revision，這也很討厭。解決的方法:修改 devformatter.php，把加入 devfmt_editor.js 那行拿掉，雖然不確定它想做什麼，不過拿掉以後繼續用內建的 Editor 還是很正常。
	在 wp-config.php 加入 define(&#8217;WP_POST_REVISIONS&#8217;, false);另外再執行 DELETE FROM wp_posts WHERE post_type = &#8220;revision&#8221;;

參考資料:如何關閉 WordPress 2.6 文章版本 (Post Revision)？

Update: 剛剛又發現dev formatter 的 hack 似乎還是有問題, [...]]]></description>
			<content:encoded><![CDATA[今天為了要發表前一篇 <a href="http://www.sylin.net/blog/2008/09/14/104" >Zend Paginator</a>，結果花了一下午的時間。<br /><br />首先是要在文章裡顯示程式碼，所以找了 <a href="http://wordpress.org/extend/plugins/devformatter/download/" >Developer Formatter</a> 來用，效果是不錯，不過在編輯器的部份有問題，會跟 Visual Ediit Mode 衝到，變成只能在 Visual Mode 作 HTML Mode 的事情 (使用時像是 HTML Mode, 但其實是在 Visual Mode)，這時候如果存檔，文章就會出問題了。<br />例如我打一個空白或換行，它都會被強制存成 &#8220;&amp;nbsp;&#8221; 或 &#8220;&lt;br /&gt;&#8221;，所以排版都會有問題，一開始我還沒搞清楚是怎麼回事，就只好一直重複修改文章，於是就導致另一個問題 - 同一篇文章有好多個 revision，這也很討厭。<br /><span id="more-105"></span><br /><h4>解決的方法:</h4><ol><li>修改 devformatter.php，把加入 devfmt_editor.js 那行拿掉，雖然不確定它想做什麼，不過拿掉以後繼續用內建的 Editor 還是很正常。</li>
	<li>在 wp-config.php 加入 define(&#8217;WP_POST_REVISIONS&#8217;, false);另外再執行 DELETE FROM wp_posts WHERE post_type = &#8220;revision&#8221;;</li>
</ol>
<h4>參考資料:</h4><ul><li><a title="Permanent Link to 如何關閉 WordPress 2.6 文章版本 (Post Revision)？" rel="bookmark" href="http://blog.dogg3h.com/how-to-disable-wordpress-post-revision" >如何關閉 <strong>WordPress</strong> 2.6 文章版本 (Post Revision)？</a></li>
</ul>
<strong>Update:</strong> 剛剛又發現dev <strong>formatter</strong> 的 hack 似乎還是有問題, 所以還是在編輯時視情況停用 java script 比較有效&#8230;]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/14/105/feed</wfw:commentRss>
		</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[Programming]]></category>

		<category><![CDATA[computer]]></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 - 將資料集合以 Array 的形式傳入。
	DbSelect - 將資料庫查詢所需的 Select Query 以 Zend_Db_Select 或字串的形式傳入，會根據 Query 向 DB 抓取對應所需的資料。
	Iterator - 傳 Iteraotr ，沒仔細看，不過使用上應該跟 Array 差不多。
	Null - 不處理資料，只用來處理分頁控制的部份。

以 Array Adapter 為例，在 Controller 裡可以用$paginator = new Zend_Paginator&#40;new Zend_Paginator_Adapter_Array&#40;$array&#41;&#41;;
或是透過 factory pattern$paginator = Zend_Paginator::factory&#40;$array&#41;;
接著設定頁數及每頁項目數量
$paginator-&#62;setCurrentPageNumber&#40;$page&#41;
-&#62;setItemCountPerPage&#40;$numPerPage&#41;; // Default is 10
$this-&#62;view-&#62;paginator = $paginator;
View
而顯示的部份則交由 view script [...]]]></description>
			<content:encoded><![CDATA[<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 的新功能之一<br /><br />是用來提供作資料分頁的 Component，雖然分頁是個簡單的小功能，可是有時候自己寫又嫌麻煩，所以拿現成的元件來套用也蠻方便的。<br /><h2>Controller</h2>
要使用 <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> 支援下列四種方式:<ol><br />	<li>Array - 將資料集合以 Array 的形式傳入。</li>
	<li>DbSelect - 將資料庫查詢所需的 Select Query 以 Zend_Db_Select 或字串的形式傳入，會根據 Query 向 DB 抓取對應所需的資料。</li>
	<li>Iterator - 傳 Iteraotr ，沒仔細看，不過使用上應該跟 Array 差不多。</li>
	<li>Null - 不處理資料，只用來處理分頁控制的部份。</li>
</ol>
<span id="more-104"></span><br /><br />以 Array Adapter 為例，在 Controller 裡可以用<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode"><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>;</pre></pre>
<br />或是透過 factory pattern<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode"><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>;</pre></pre>
<br />接著設定頁數及每頁項目數量<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode">
<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: #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>;</pre></pre>
<h2>View</h2>
而顯示的部份則交由 view script 來處理。這 View 的處理可分為兩個部份，一個是資料項目的顯示，另一個是分頁功能表的顯示。<br /><br />資料項目的部份，由於 <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() 很方便地來詢訪資料項目。<br /><br />分頁功能表(用來選擇上一頁、下一頁、或跳頁的控制像) 則透過 paginationControl() 這個 View Helper 來處理<br /><br />以下為<a href="http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator.rendering" >範例的程式碼</a><br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode">
<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: #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: #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: #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="">'Sliding'</span><span style="color: #339933;">,</span> <span style="">'my_pagination_control.phtml'</span><span style="color: #009900;">&#41;</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>
</pre></pre>
<br /><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 的例子:<br /><br /><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" /><br /><br />All 則是會把所有頁數全部列出來，可以用在使用 select box 選擇頁數的時候。<br /><br />Manual 裡除了範例程式外，還提供了幾個常用的分頁控制項的的例子，其中有提到 <a href="http://developer.yahoo.com" >YDN</a> 的一些資源，是有關一些 UI 或 Web UI 常見的 pattern，還蠻不錯的，可以<a href="http://developer.yahoo.com/ypatterns/" >參考看看</a><br /><h2>Advance</h2>
再來討論一些我遇到的問題跟解決方法<br /><br />第一個是 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。<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode">
<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: #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: #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>;
&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: #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="">'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: #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: #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: #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>;
</pre></pre>
<br />再來另外一個問題是有關 Zend_Db_Table 的 Relationship Operation，前面我自己寫兩次 Query 分別去取得資料跟總數已經是個爛方法了，可是如果我要用的資料是透過 findManyToManyRowset() 得到的，那就有問題了，似乎不能使用 from() 去設定 COUNT(*)。<br /><br />在 <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 的問題似乎已經解決了，所以直接用就可以了<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode">
<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: #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><span style="color: #cc66cc;">1234</span><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>;
&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: #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: #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="">'Products'</span><span style="color: #339933;">,</span> <span style="">'BugsProducts'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000000; 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: #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: #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>;</pre></pre>
<br />另外原來自己查詢 COUNT(*)使用 Null Apdapter 的作法也可以同樣換掉<br /><br /><pre class="devcodeblock" title="PHP"><input type="hidden" value="lines"><pre class="devcode">
<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: #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: #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: #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: #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>;</pre></pre>
<br />這樣的作法在 Controller 中看起來會滿簡潔的，不過我不確定在校能上會不會有問題，例如說是多做了一次 Query、或是每次都查詢所有的資料。<br /><h3>參考資料</h3><ul><br />	<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>]]></content:encoded>
			<wfw:commentRss>http://www.sylin.net/blog/2008/09/14/104/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 12.309 seconds -->
