<?xml version="1.0"?>
<!-- name="generator" content="blojsom v2.30" -->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns="http://purl.org/rss/1.0/">

	<channel rdf:about="http://www.tsujita.jp/blojsom/blog/default/">
		<title>徒然なるままにBlog</title>
		<link>http://www.tsujita.jp/blojsom/blog/default/</link>
		<description>生きるとは何かを追求する日々</description>
		<dc:publisher>tsujitako</dc:publisher>
		<dc:creator>tsujitako@tsujita.jp</dc:creator>
		<dc:date>2007-07-23T09:00:29+09:00</dc:date>
		<dc:language>ja</dc:language>

        <items>
        <rdf:Seq>
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Linux/2007/07/23/PostgreSQL-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Mac/2007/07/18/Mac%E3%81%AE%E5%B0%8F%E6%8A%80-Mac%E3%82%92%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%A7%E3%82%B9%E3%83%AA%E3%83%BC%E3%83%97%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/PHP/2007/07/13/PHP%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Mac/2007/05/15/Mac%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-ChronoSync%E3%82%92%E4%BD%BF%E3%81%86.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Linux/2007/01/17/Apache%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E3%83%AD%E3%82%AE%E3%83%B3%E3%82%B0%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%99%E3%82%8B.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/PHP/2007/01/12/memcached%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9FPHP%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%88%E3%83%B3%E5%AE%9F%E8%A3%85.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/moblog/2006/12/23/%E9%AB%98%E9%B7%B2%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AF.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/%E9%9B%91%E8%A8%98/2006/12/22/%E3%81%8A%E9%A2%A8%E5%91%82%E3%83%86%E3%83%AC%E3%83%93%E8%B2%B7%E3%81%A3%E3%81%9F%E3%81%A9%E3%83%BC.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Linux/2006/12/19/FON%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%AD%E7%BD%AE.html" />
        	                <rdf:li rdf:resource="http://www.tsujita.jp/blojsom/blog/default/Java/blojsom/2006/09/28/Pager-Plugin%E3%82%92%E4%BD%BF%E3%81%86.html" />
                </rdf:Seq>
        </items>
    </channel>

    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Linux/2007/07/23/PostgreSQL-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81.html">
	   <title>PostgreSQL パフォーマンスチューニングまとめ</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Linux/2007/07/23/PostgreSQL-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81.html</link>
       <description>PostgreSQLをチューニングする機会があったので&lt;br&gt;
その時に調べたチューニング項目を備忘録として残しておきます。&lt;br&gt;
バージョンの違いやサーバの規模などによっても&lt;br&gt;
効果は変わってくると思うのであくまで参考程度のものですが。&lt;br&gt;
&lt;br&gt;
・shared_buffers&lt;br&gt;
　7系では8000〜10000程度まで引き上げる&lt;br&gt;
　8系では150000程度まで引き上げることが可能、100000程度が性能のピーク&lt;br&gt;
　これに多く割り当てるよりOSのバッファ領域として使う方が性能が向上する&lt;br&gt;
　テーブルサイズを割り出して設定するのがベスト&lt;br&gt;
　簡単に設定するなら搭載メモリ量の1/4、搭載メモリが多ければ1/2ぐらいでも可&lt;br&gt;
・max_connections&lt;br&gt;
　7系では256程度、8系では1000程度が性能のピーク&lt;br&gt;
・work_mem(sort_mem)&lt;br&gt;
　適切なサイズに調整する、2048〜4096程度&lt;br&gt;
　プロセス毎に領域が割り当てられるので多すぎるとスワップする可能性も&lt;br&gt;
　ソートメモリはORDER BYだけではなくMerge Join、CREATE INDEX時でも使用される&lt;br&gt;
・deadlock_timeout&lt;br&gt;
　長めに設定する&lt;br&gt;
　1000ms×同時セッション数が理想&lt;br&gt;
・effective_cache_size&lt;br&gt;
　数GBメモリ積んだマシンなら総メモリの1/4〜1/2を設定&lt;br&gt;
・wal_buffers&lt;br&gt;
　トランザクションが多い、大きい場合に多く取っておくと書き込み効率が良くなる。32〜64程度。&lt;br&gt;
・commit_delay&lt;br&gt;
　同時トランザクション数が多い場合、0以上を設定すると書き込み効率が上がる&lt;br&gt;
・random_page_cost&lt;br&gt;
　余程巨大なテーブルが無い限り数GBのメモリのマシンなら2〜3が適当&lt;br&gt;
・max_fsm_pages&lt;br&gt;
　小さすぎるとクラスタ容量が増えすぎる、大きすぎると検索オーバーヘッドが大きくなる、vacuum -vの情報を見て調節&lt;br&gt;
・bgwriter_maxpages&lt;br&gt;
　参照系DBなら値を小さく、トランザクションが多いDBなら大きく設定する&lt;br&gt;
・checkpoint_segments&lt;br&gt;
　大きく設定するとハードディスクへの書き込み頻度が減り性能が向上する&lt;br&gt;
&lt;br&gt;
・VACUUM FULLをしてもインデックスの領域は切り詰められないのでREINDEXを行い無駄な領域を削除する&lt;br&gt;
・複数のハードディスク上のテーブルスペースにテーブルを作ることによりIOが分散し効率が良くなる&lt;br&gt;
・walログも別ハードディスクに移すと結構IO効率が上がる&lt;br&gt;
・fstabのマウント情報にnoatimeを指定し、atimeの更新を抑えると若干性能アップ
</description>
	   <dc:date>2007-07-23T09:00:29+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Linux/?permalink=PostgreSQL-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Mac/2007/07/18/Mac%E3%81%AE%E5%B0%8F%E6%8A%80-Mac%E3%82%92%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%A7%E3%82%B9%E3%83%AA%E3%83%BC%E3%83%97%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95.html">
	   <title>Macの小技: Macをリモコンでスリープさせる方法</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Mac/2007/07/18/Mac%E3%81%AE%E5%B0%8F%E6%8A%80-Mac%E3%82%92%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%A7%E3%82%B9%E3%83%AA%E3%83%BC%E3%83%97%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95.html</link>
       <description>先月、家のMacをPowerMac G4からMacBook Proに買い換えました。&lt;br&gt; 
WWDCで何か新製品が発表されていたらきっとそれを買っていたに違いない…。 &lt;br&gt; 
本当に今年のWWDCは近年希に見るショボさでガッカリ…。 &lt;br&gt; 
&lt;br&gt; 
そんな事はどうでもいいんですが、MacBook Proを買っても今まで使っていた旧シネマを&lt;br&gt; 
引き続き使いたかったのでDVI-ADCアダプタを経由させて繋ぎました。&lt;br&gt; 
で、今まではシネマの電源ボタンでMacの電源をon/off出来ていたんですが、&lt;br&gt; 
MacBookやMacBook Proでは出来ないことが発覚。&lt;br&gt; 
閉じた状態のMacBook Proにシネマ繋げて使いたいので&lt;br&gt; 
電源を外部から操作できないと辛い！面倒くさい！&lt;br&gt; 
仕方がないので電源を落とす代わりにスリープさせて使ってるんですが、&lt;br&gt; 
超簡単にスリープさせる方法を見つけたので紹介します。&lt;br&gt; 
&lt;br&gt; 
実は最近Mac(Mac Proを除く)を買うと付属しているリモコン(Apple Remote)の&lt;br&gt; 
再生/停止ボタンを長押しするとMacをスリープさせる事ができます。&lt;br&gt; 
またスリープ時にリモコンのMenuボタンなどを押せば復帰させる事も可能です。&lt;br&gt; 
&lt;br&gt; 
この方法を知ってからはこれでしかスリープ/復帰をさせていませんが、かなり便利に感じます。&lt;br
&gt; 
いちいち確認のダイアログも出ないし、席に着く前に復帰させられるし重宝しています。&lt;br&gt; 
寝ながらFront RowでDVDを見たりして眠くなってきたらスリープ…とかも出来ます。&lt;br&gt; 
ちなみにスリープ前のスクリーンに現れるアニメ？がちょっとかわいいので必見です。
</description>
	   <dc:date>2007-07-18T00:03:37+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Mac/?permalink=Mac%E3%81%AE%E5%B0%8F%E6%8A%80-Mac%E3%82%92%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%A7%E3%82%B9%E3%83%AA%E3%83%BC%E3%83%97%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/PHP/2007/07/13/PHP%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html">
	   <title>PHPベンチマーク: Zend Framework vs Symfony vs CakePHP vs CodeIgniter vs PHP on TRAX</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/PHP/2007/07/13/PHP%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html</link>
       <description>先日、&lt;a target=&quot;_blank&quot; href=&quot;http://framework.zend.com/&quot;&gt;Zend Framework&lt;/a&gt;が正式に1.0.0としてリリースされました。&lt;br&gt;
公式だし今後使っていこうかなと思ったんですが、最近人気のある他のPHPフレームワークと比べて&lt;br&gt;
パフォーマンスの面でどう違うか気になったので簡単なベンチマークをとって比較してみました。&lt;br&gt;&lt;br&gt;
今回使用したフレームワークは&lt;a target=&quot;_blank&quot; href=&quot;http://framework.zend.com/&quot;&gt;Zend Framework&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.symfony-project.com/&quot;&gt;Symfony&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.symfony-project.com/&quot;&gt;CakePHP&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://codeigniter.com/&quot;&gt;CodeIgniter&lt;/a&gt;、&lt;a target=&quot;_blank&quot; href=&quot;http://www.phpontrax.com/&quot;&gt;PHP on TRAX&lt;/a&gt;の5つです。&lt;br&gt;

各フレームワークで行った処理はコントローラを呼び出しビューに遷移させて&lt;br&gt;
&quot;Hello World!&quot;を表示させるだけのかなりシンプルな内容です。&lt;br&gt;
DBへの接続やモデルの作成は行わず、自動レイアウト機能があるものはオフにするか全て削除しています。&lt;br&gt;
使用したソースは&lt;a href=&quot;http://www.tsujita.jp/blog_images/php_framework_bench.zip&quot;&gt;こちら&lt;/a&gt;からダウンロードできます。&lt;br&gt;
&lt;br&gt;
ベンチマークを行った環境はCeleron 1.7GHz、メモリ1GBのLinux上でApache2.0系、PHP-5.2.3を使用し、&lt;br&gt;
各フレームワークのバージョンは一般配布されているstable系の最新版を使用しました。&lt;br&gt;
(Zend Framework 1.0.0、Symfony 1.0.5、CakePHP 1.1.16.5421、CodeIgniter 1.5.3、PHP on TRAX 0.14.0)&lt;br&gt;
ベンチマークの方法はab(Apache付属のベンチツール)を-c 100 -n 1000のオプションで&lt;br&gt;
ローカルホストから呼び出す形で行いました。&lt;br&gt;
それを各々5回ずつ行い、そのRequsts per secondの平均を結果として出しています。&lt;br&gt;
&lt;br&gt;
以下がベンチマーク結果です。&lt;br&gt;
&lt;br&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
th.caption {background-color:#E1E7EB}
td.normal {background-color:#F1F7FB}
--&gt;
&lt;/style&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Zend Framework&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;16.7 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;2.8 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;50.4&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Symfony&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;10.7 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;1.8 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;32.3&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CakePHP&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;12.8 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;2.2 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;38.6&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CodeIgniter&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;33.2 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;5.7 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;100&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;PHP on TRAX&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;7.8 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;1.3 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;23.4&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;(参考)フレームワーク無し&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;586.1 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;100.0 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
また&lt;a target=&quot;_blank&quot; href=&quot;http://pecl.php.net/package/APC&quot;&gt;APC&lt;/a&gt;を有効にした状態でもベンチマークを取ったのでそれも載せておきます。&lt;br&gt;
本当はeAcceleratorを使いたかったのですが、有効にするとZend、Symfony、TRAXで&lt;br&gt;
エラーが発生したため今回は使用しませんでした。&lt;br&gt;
&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Zend Framework&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;65.1 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;9.5 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;48.7&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Symfony&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;45.9 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;6.7 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;34.3&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CakePHP&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;63.9 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;9.3 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;47.8&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CodeIgniter&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;133.7 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;19.5 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;100&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;PHP on TRAX&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;54.2 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;7.9 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;http://www.tsujita.jp/blog_images/bar.gif&quot; height=&quot;10&quot; width=&quot;40.6&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;(参考)フレームワーク無し&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;684.3 Request/Sec&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;100.0 %&lt;/td&gt;
&lt;td class=&quot;normal&quot; align=&quot;left&quot;&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
結果はAPCの有無に関わらずCodeIgniterがぶっちぎりの優勝で次いでZendという事になりました。&lt;br&gt;
SymfonyとCakePHPはAPC無しでは差は小さいですが、APCを有効にするとCakePHPが大きく勝るようです。&lt;br&gt;
TRAXはAPC無しではかなり遅いですが、有効にすると劇的にパフォーマンスが向上しました。&lt;br&gt;
&lt;br&gt;
ついでに&lt;a target=&quot;_blank&quot; href=&quot;http://xdebug.org/&quot;&gt;Xdebug&lt;/a&gt;を使い各フレームワークの関数コールをトレースしステップ数を計ってみました。&lt;br&gt;
以下がその結果です。&lt;br&gt;
&lt;br&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Zend Framework&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;446 Steps&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;Symfony&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;934 Steps&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CakePHP&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;854 Steps&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;CodeIgniter&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;310 Steps&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;PHP on TRAX&lt;/th&gt;
&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;510 Steps&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
やはりCodeIgniterが一番ステップ数が少ないという結果になりました。&lt;br&gt;
そのおかげで高いスループットを実現出来ているんでしょうね。&lt;br&gt;
&lt;br&gt;
ベンチマークを行った結果、残念ながらZendが一番という事にはなりませんでしたが、&lt;br&gt;
悪い結果ではなかったので使ってみる価値はあるんじゃないかなと思います。&lt;br&gt;
しかも&lt;a target=&quot;_blank&quot; href=&quot;http://framework.zend.com/manual/ja/&quot;&gt;日本語ドキュメント&lt;/a&gt;がかなり完成されているのでその点も魅力的なのではないでしょうか。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
注) 今回行ったベンチマークはごく単純なものなので&lt;br&gt;
　 実際のシステムで必ずしもこの結果の通りになるとは限りません。&lt;br&gt;
　 またパフォーマンスが高いというだけで有用なフレームワークというわけでもありません。&lt;br&gt;
　 あくまで参考としてお考え下さい。&lt;br&gt;
&lt;br&gt;
追記) CakePHPのソースについてモデル生成が有効になっていたため、&lt;br&gt;
　　ソースを修正しベンチマークを再度行って結果を修正しました。
</description>
	   <dc:date>2007-07-13T08:40:12+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//PHP/?permalink=PHP%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF-Zend-Framework-vs-Symfony-vs-CakePHP-vs-CodeIgniter-vs-PHP-on-TRAX.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Mac/2007/05/15/Mac%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-ChronoSync%E3%82%92%E4%BD%BF%E3%81%86.html">
	   <title>Macでバックアップ: ChronoSyncを使う</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Mac/2007/05/15/Mac%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-ChronoSync%E3%82%92%E4%BD%BF%E3%81%86.html</link>
       <description>あー超久しぶりの更新。&lt;br&gt;
これ確か前にも言ったな…。&lt;br&gt;
&lt;br&gt;
さて、今自宅で使ってるG4 MDDは使い始めてかれこれ4年が経ちます。&lt;br&gt;
OS X専用モデルとして割と安く売られてたのが最初の出会いで…てそんなことはどうでもいいんですけど。&lt;br&gt;
使い続けてるとハードディスクの容量が足りなくなり内蔵ドライブの増設を繰り返して、&lt;br&gt;
今はオリジナルのハードディスクは姿を消し3台のハードディスクがマウントされている状態です。&lt;br&gt;
デジカメで撮った写真をiPhotoに、手持ちのCDをiTunesになどしてるとドンドン容量が減っていきますよね。&lt;br&gt;
気付くと他のファイルなども合わせると200GBを超える使用量に…。&lt;br&gt;
残り容量はまだあるのでそれは大丈夫ですが、万一ハードディスクが故障して&lt;br&gt;
このデータが全部飛んだら…。ガクガクブルブル(AA略…&lt;br&gt;
バックアップなんて何年か前にCD-RにiPhotoの画像を移したきりでそれ以来何もしていません。&lt;br&gt;
その時も最初の1枚を焼いただけで面倒臭くなり止めてしまったし…。&lt;br&gt;
&lt;br&gt;
で、さんざん悩んだあげくI-O DATAの&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B0009XJYRI/tsurezuren0c9-22/ref=nosim&quot;&gt;HDC-U400&lt;/a&gt;というUSB外付けのハードディスクを買うことにしました。&lt;br&gt;
最初はハードウェアRAID付きの2台ハードディスクを搭載したやつが欲しかったんですが&lt;br&gt;
OS XだけでもRAID出来るしな…とか思い始めたんですがやっぱ何でもいいやと思ったのが購入の決め手です。&lt;br&gt;
&lt;br&gt;
使い心地?はまぁ普通でそれなりに静かだし満足しています。&lt;br&gt;
バックアップは最初&lt;a target=&quot;_blank&quot; href=&quot;http://www.grapefruit.ch/iBackup/&quot;&gt;iBackup&lt;/a&gt;というフリーウェアを使うつもりだったんですけど、&lt;br&gt;
管理機能がシンプルすぎて本気でバックアップするには使用に耐えないこともあり今回は見送りました。&lt;br&gt;
アプリケーションやシステムの項目毎でバックアップ出来たりするんで便利なのは便利なんですが。&lt;br&gt;
&lt;br&gt;
他のバックアップソフトウェアを探したところ&lt;a target=&quot;_blank&quot; href=&quot;http://www.econtechnologies.com/site/Pages/ChronoSync/chrono_overview.html&quot;&gt;ChronoSync&lt;/a&gt;というのが評判が良かったので試しに使ってみました。&lt;br&gt;
これはかなり好感触！いい感じ！日本語対応されてるし！シェアウェアだけど！&lt;br&gt;
望んでいたバックアップはUsers以下を丸ごとコピーできて、その後のバックアップは増分バックアップ&lt;br&gt;
という形だったのでまさにズバリこれという感じでした。&lt;br&gt;
しかも本体のハードディスクから削除されたファイルや更新されたファイルはアーカイブとして&lt;br&gt;
別のディレクトリに自動で保存してくれたり一定期間経過後に削除してくれたりしてとても親切！&lt;br&gt;
バックアップのスケジュールも細かく設定できてスケジュールによりバックアップが始まっても&lt;br&gt;
アクティブにならないので何か作業中であってもフォーカスが奪われないのは嬉しいところです。&lt;br&gt;
初回のバックアップは完全バックアップなのでやっぱり時間は掛かりましたが、&lt;br&gt;
それ以降は増分だけが対象なので3分もあればバックアップが完了してしいまいます。&lt;br&gt;
今はスケジュールで毎日1回バックアップを行うようにしていますが全くストレスにならないので助かっています。&lt;br&gt;
これでいつG4が壊れて新しいMacがやってきても大丈夫、大丈夫！？&lt;br&gt;
&lt;br&gt;
&lt;img src=&quot;/blog_images/chronosync.png&quot; alt=&quot;chronosync&quot; /&gt;&lt;br&gt;
アーカイブ機能が親切過ぎてマジ泣ける&lt;br&gt;
&lt;br&gt;
&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;background-color:white;border:1px solid gray&quot;&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/redirect?tag=tsurezuren0c9-22&quot;&gt;Amazon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B0021L8V6Q/tsurezuren0c9-22/ref=nosim&quot;&gt;
&lt;img src=&quot;http://rcm-images.amazon.com/images/P/B0021L8V6Q.09._MZZZZZZZ_&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B0021L8V6Q/tsurezuren0c9-22/ref=nosim&quot;&gt;I-O DATA USB 2.0/1.1対応&lt;br&gt;外付型ハードディスク 1TB HDC-EU1.0
&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</description>
	   <dc:date>2007-05-15T22:42:16+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Mac/?permalink=Mac%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-ChronoSync%E3%82%92%E4%BD%BF%E3%81%86.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Linux/2007/01/17/Apache%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E3%83%AD%E3%82%AE%E3%83%B3%E3%82%B0%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%99%E3%82%8B.html">
	   <title>Apacheチューニング: ロギングを高速化する</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Linux/2007/01/17/Apache%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E3%83%AD%E3%82%AE%E3%83%B3%E3%82%B0%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%99%E3%82%8B.html</link>
       <description>あまり知られていません(と思われる)がApache2(2.0.41以降)にはアクセスログの書き出しをメモリにバッファリングし高速化させるという機能があります。&lt;br&gt;
今回はその機能を有効にするとどれぐらい速くなるのか調べてみました。&lt;br&gt;
&lt;br&gt;
設定方法はhttpd.confに
&lt;pre class=&quot;code&quot;&gt;
BufferedLogs On
&lt;/pre&gt;
と追加するだけでログのバッファリングが有効になります。&lt;br&gt;
&lt;br&gt;
以下ベンチマークを取った結果です。&lt;br&gt;
&lt;br&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
th.caption {background-color:#E1E7EB}
td.normal {background-color:#F1F7FB}
--&gt;
&lt;/style&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;バッファリング無効&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;984 Request/Sec&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot; style=&quot;text-decoration:underline&quot;&gt;バッファリング有効&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot; style=&quot;text-decoration:underline&quot;&gt;1033 Request/Sec&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;(参考)ロギング無し&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;1055 Request/Sec&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
※小さなhtmlファイルに対してab -c 100 -n 1000を何度か繰り返した結果の平均です。&lt;br&gt;
&lt;br&gt;
体感では違いを感じられないとは思いますがベンチを取るとおよそ5%程Request per secondの値が上がっていました。&lt;br&gt;
静的なファイルが中心のリクエスト数の多いWebサーバであればこれを有効にすることによって多少は速くなるのではないでしょうか。&lt;br&gt;
1行追加するだけで(少し)パフォーマンスアップできるのでオススメです。&lt;br&gt;
&lt;br&gt;
追記：&lt;br&gt;
BufferedLogsディレクティブは未だにexperimentalなままなので使用には注意が必要です。
</description>
	   <dc:date>2007-01-17T23:35:49+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Linux/?permalink=Apache%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E3%83%AD%E3%82%AE%E3%83%B3%E3%82%B0%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%99%E3%82%8B.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/PHP/2007/01/12/memcached%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9FPHP%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%88%E3%83%B3%E5%AE%9F%E8%A3%85.html">
	   <title>memcachedを使ったPHPのシングルトン実装</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/PHP/2007/01/12/memcached%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9FPHP%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%88%E3%83%B3%E5%AE%9F%E8%A3%85.html</link>
       <description>PHPのクラスに備わっているstaticはJava(Servlet)のそれとは違いHTTPのリクエストが完了すると破棄されてしまいます。&lt;br&gt;
そのためstaticフィールドを使ったシングルトンの実装を行ったとしてもリクエストがある度にインスタンスが生成され独立したプロセスから同一のインスタンスにアクセスすることは不可能です。&lt;br&gt;
&lt;br&gt;
そこで今回&lt;a href=&quot;http://www.danga.com/memcached/&quot; target=&quot;_blank&quot;&gt;memcached&lt;/a&gt;を利用しPHPの各プロセスから同一のインスタンスを参照できるようにしてみたいと思います。&lt;br&gt;
といってもシリアライズさせているので厳密には別のインスタンスになりますが…。&lt;br&gt;
&lt;br&gt;
ちなみに&lt;a href=&quot;http://www.danga.com/memcached/&quot; target=&quot;_blank&quot;&gt;memcached&lt;/a&gt;とはオブジェクトをメモリにキャッシュさせるPHPとは独立したサーバプログラムです。&lt;br&gt;
利用できる言語はPHPだけに限らずPerl、Ruby、Java、Pythonなどにも対応しています。&lt;br&gt;
インストールは./configure &amp;&amp; make &amp;&amp; make installで簡単ですが、あらかじめ&lt;a href=&quot;http://monkey.org/~provos/libevent/&quot; taget=&quot;_blank&quot;&gt;libevent&lt;/a&gt;のインストールしておく必要があります。&lt;br&gt;
&lt;br&gt;
次にPHPからmemcachedに接続するためのAPIを持つPECL拡張モジュールをインストールします。
&lt;pre class=&quot;code&quot;&gt;
# pear install http://pecl.php.net/get/memcache-2.1.0.tgz
&lt;/pre&gt;
それからphp.iniにエクステンションの記述を追加。
&lt;pre class=&quot;code&quot;&gt;
extension=&quot;(memcahce.soまでのパス)/memcache.so&quot;
&lt;/pre&gt;
これで準備完了です。&lt;br&gt;
&lt;br&gt;
今回シングルトンとして作るクラスは設定情報などを保持するものと想定して作りました。&lt;br&gt;
以下がそのクラスのソースです。
&lt;pre class=&quot;code&quot;&gt;
class Repository
{
        private static $memcache;

        private $map;
        private $updated;

        public static function getInstance()
        {
                self::$memcache=new Memcache();
                self::$memcache-&gt;connect(&quot;localhost&quot;,11211);

                $repository=self::$memcache-&gt;get(&quot;repository&quot;);
                if(!$repository)
                        $repository=new Repository();

                return $repository;
        }

        private function __construct()
        {
                $this-&gt;map=array();
                $this-&gt;updated=false;
        }

        public function set($key,$val)
        {
                $this-&gt;map[$key]=$val;
                $this-&gt;updated=true;
        }

        public function get($key)
        {
                return $this-&gt;map[$key];
        }

        public function __destruct()
        {
                if($this-&gt;updated)
                {
                        $this-&gt;updated=false;
                        self::$memcache-&gt;set(&quot;repository&quot;,$this);
                }
                self::$memcache-&gt;close();
        }
}
&lt;/pre&gt;
説明するほどのものでもないですが。まずgetInstance()内でMemcacheオブジェクトを通じてmemcachedに接続し、&quot;repository&quot;というキーでオブジェクトが存在しているか調べます。&lt;br&gt;
存在していればmemcachedから取得したオブジェクトをそのまま返し、存在していなければ新たにインスタンスを生成して返します。&lt;br&gt;
これで永続化されたオブジェクトを取得することが出来るのですが、その後オブジェクトの状態を変更してもJavaのように参照を保持しているわけではないので永続化されたオブジェクトは更新されません。&lt;br&gt;
そこで__destructを使いオブジェクトが破棄されるタイミングでもし更新されていればmemcachedにオブジェクトを書き出す処理を行っています。

&lt;pre class=&quot;code&quot;&gt;
$repository=Repository::getInstance();
$repository-&gt;set(&quot;test&quot;,123);
&lt;/pre&gt;

上ような処理だけでリクエストが終了しても状態は保たれたままその後他のプロセスも同じオブジェクトを参照することが出来ます。&lt;br&gt;
しかもネットワーク越しに同一のオブジェクトを共有できるためWebサーバに負荷が増えてきても容易にスケール出来るのはかなりのメリットではないでしょうか。&lt;br&gt;
ただし今回の実装は排他制御を行っていないのでそのままでは使えませんが…。&lt;br&gt;
&lt;br&gt;
参考までに他のシングルトンの実装としてオブジェクトをシリアライズしてファイルに保存するパターンとデータベース(MySQL)に保存するパターンを作りベンチマークを取ってみました。&lt;br&gt;
&lt;br&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
th.caption {background-color:#E1E7EB}
td.normal {background-color:#F1F7FB}
--&gt;
&lt;/style&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;&lt;/th&gt;&lt;th class=&quot;caption&quot;&gt;requests/sec&lt;/th&gt;&lt;th class=&quot;caption&quot;&gt;リモート接続&lt;/th&gt; 
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;memcached&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;334&lt;/td&gt;&lt;td class=&quot;normal&quot; align=&quot;center&quot;&gt;○&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;ファイル&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;439&lt;/td&gt;&lt;td class=&quot;normal&quot; align=&quot;center&quot;&gt;×&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;th class=&quot;caption&quot;&gt;DB(MySQL)&lt;/th&gt;&lt;td class=&quot;normal&quot; align=&quot;right&quot;&gt;277&lt;/td&gt;&lt;td class=&quot;normal&quot; align=&quot;center&quot;&gt;○&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
※ab -c 100 -n 1000の結果です。&lt;br&gt;
※MySQLはHEAPテーブルを使用しています。&lt;br&gt;
&lt;br&gt;
これを見るとローカルからだけの参照ならファイルにシリアライズさせるパターンが一番速いですが、リモートからの参照となるとMySQLよりmemcachedに保存した方が速いようです。&lt;br&gt;
作成したファイル版とデータベース版のソースも一応置いておきます。(→&lt;a href=&quot;http://www.tsujita.jp/blog_images/FileRepository.class.php.txt&quot;&gt;ファイル版&lt;/a&gt;、→&lt;a href=&quot;http://www.tsujita.jp/blog_images/MySQLRepository.class.php.txt&quot;&gt;データベース版&lt;/a&gt;)&lt;br&gt;
&lt;br&gt;
パフォーマンスは悪くないのでオブジェクトに限らず画像やテキストなどキャッシュさせれば負荷を軽減させるのに役立つのではないでしょうか。slashdotやmixiも使っているようですし。
</description>
	   <dc:date>2007-01-12T05:42:44+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//PHP/?permalink=memcached%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9FPHP%E3%81%AE%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%88%E3%83%B3%E5%AE%9F%E8%A3%85.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/moblog/2006/12/23/%E9%AB%98%E9%B7%B2%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AF.html">
	   <title>高鷲スノーパーク</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/moblog/2006/12/23/%E9%AB%98%E9%B7%B2%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AF.html</link>
       <description>スノボ行って来ました。&lt;br&gt;
天候はチラチラ雪が舞ったり晴れたりで良かったんですが、ゲレンデは所々アイスバーンになっていてかなりガリガリいっていました。&lt;br&gt;
今年は暖冬なので仕方ないんですかねぇ。&lt;br&gt;
&lt;br&gt;

&lt;img src=&quot;http://www.tsujita.jp/blojsom/resources/default/8ddf1d40e247df0033efe7fcc6c1d8ed.JPG&quot; border=&quot;0&quot; alt=&quot;8ddf1d40e247df0033efe7fcc6c1d8ed.JPG&quot;/&gt;

</description>
	   <dc:date>2006-12-23T21:01:52+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//moblog/?permalink=%E9%AB%98%E9%B7%B2%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AF.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/%E9%9B%91%E8%A8%98/2006/12/22/%E3%81%8A%E9%A2%A8%E5%91%82%E3%83%86%E3%83%AC%E3%83%93%E8%B2%B7%E3%81%A3%E3%81%9F%E3%81%A9%E3%83%BC.html">
	   <title>お風呂テレビ買ったどー</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/%E9%9B%91%E8%A8%98/2006/12/22/%E3%81%8A%E9%A2%A8%E5%91%82%E3%83%86%E3%83%AC%E3%83%93%E8%B2%B7%E3%81%A3%E3%81%9F%E3%81%A9%E3%83%BC.html</link>
       <description>僕は男の割に風呂が長い方で湯船に入らないのに40分ぐらい時間が掛かったりします。&lt;br&gt;
その間もちろん髪を洗ったり体を洗ったりしてるんですが、特に考え事の無い時はとても暇なんですね。&lt;br&gt;
以前から風呂にテレビついてればなーと思い各社から出ているお風呂テレビの購入を検討していたんですが、ほとんどのお風呂テレビは普通のアンテナ付きのもので受信状態が良くないと見られないという欠点があります。なので却下です。&lt;br&gt;
カシオからチューナーを室内に設置して無線で映像と音声を飛ばすテレビもあるんですがちょっと高い…。&lt;br&gt;
そう思っているとプリンストンからカシオのと同じ形式でそれより安いお風呂テレビが発売されているではないですか！&lt;br&gt;
接続も簡単で室内に設置する無線チューナーにアンテナケーブルをつなぐだけでOKで無線で通信を行うため電波が入りが悪いところでも安定してテレビが見れます。&lt;br&gt;
&lt;br&gt;
で、早速買ってきて使ってみました。イイ！映像もキレイだしこれは素晴らしい！お風呂タイムがテレビタイムに！&lt;br&gt;
今まで風呂に入るために見逃していた番組も確実に見れます。プリンストン始まったな。&lt;br&gt;
ただシャワーを出している間は音声が聞こえにくいので聞き取れるぐらいに音量を大きくするとうるさすぎて屋外に音がもれているかも知れません。&lt;br&gt;
でもまあ大した問題ではないのでかなり満足しています。&lt;br&gt;
デザインもシンプルだしオススメです。&lt;br&gt;&lt;br&gt;
&lt;img src=&quot;http://www.tsujita.jp/blog_images/bathtv.png&quot;&gt;&lt;br&gt;
ロストプラネットー、は全然関係ないです。&lt;br&gt;
&lt;br&gt;
&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;background-color:white;border:1px solid gray&quot;&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/redirect?tag=tsurezuren0c9-22&quot;&gt;Amazon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B001DZ0AOW/tsurezuren0c9-22/ref=nosim&quot;&gt;
&lt;img src=&quot;http://rcm-images.amazon.com/images/P/B000G1T72U.09._SCTZZZZZZZ_&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B001DZ0AOW/tsurezuren0c9-22/ref=nosim&quot;&gt;Princeton フリーロケーション&lt;br&gt;防水テレビ PTV-WWTV7
&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
</description>
	   <dc:date>2006-12-22T03:25:14+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//%E9%9B%91%E8%A8%98/?permalink=%E3%81%8A%E9%A2%A8%E5%91%82%E3%83%86%E3%83%AC%E3%83%93%E8%B2%B7%E3%81%A3%E3%81%9F%E3%81%A9%E3%83%BC.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Linux/2006/12/19/FON%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%AD%E7%BD%AE.html">
	   <title>FONルーター設置</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Linux/2006/12/19/FON%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%AD%E7%BD%AE.html</link>
       <description>無線LAN共有プロジェクトである&lt;a href=&quot;http://jp.fon.com/&quot; target=&quot;_blank&quot;&gt;FON&lt;/a&gt;の専用ルーターが届きました。&lt;br&gt;
12月5日に申し込んだのでタダです、タダ。でも送料と代引き手数料で945円掛かった…。&lt;br&gt;
さっそくベースステーションに有線接続し電源を入れるとワイヤレスネットワーク一覧FON_APとMyPlaceの2つのネットワークが見つかりました。すごい簡単。&lt;br&gt;
FON_APは外に公開するパブリックなESSIDでMyPlaceはオーナーのみが接続できるプライベートなESSIDという棲み分けがされているようです。&lt;br&gt;
FON_APにネットワークを切り替えて適当なURLを開こうとするとFONのポータルが表示されました。&lt;br&gt;
どうやらここでFONで登録したIDとパスワードを入れて認証が通ればその後は自由にそのネットワークを使えるようになるという仕組みらしい、なるほど。&lt;br&gt;
MyPlaceはネットワークを切り替えるだけで使えるようになるけど、ルーター裏に記載されているWEPキーが無いと接続できません。&lt;br&gt;
無線LANのアクセスポイントを持ってない人はこれを買えば安価に環境が作れるのでお得ですね。同程度の機能を持ったものを1,980円では買えないです、さすがに。&lt;br&gt;
&lt;br&gt;
で、&lt;a href=&quot;http://fon-wiki.maniado.com/index.php?Tips&quot; target=&quot;_blank&quot;&gt;ここ&lt;/a&gt;に書いてあるとおりゴニョゴニョすると…おぉSSHでログイン出来た！&lt;br&gt;
へーOpenWrtなんだ…初めて触ったよー。&lt;br&gt;
こんな小さな箱で動いているLinuxを見て少し感動してしまった。&lt;br&gt;
&lt;br&gt;
cpuinfoはこんな感じです。&lt;br&gt;
&lt;pre class=&quot;code&quot;&gt;
system type             : Atheros AR531X_COBRA
processor               : 0
cpu model               : MIPS 4KEc V6.4
BogoMIPS                : 183.50
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : no
VCED exceptions         : not available
VCEI exceptions         : not available
&lt;/pre&gt;
&lt;br&gt;
んーでもまだ誰もAPを使ってくれた履歴がない…。&lt;br&gt;
ユーザーが増えたらこんなとこに設置されたAPでも使ってくれるのかしらん。&lt;br&gt;
&lt;br&gt;
&lt;img src=&quot;http://www.tsujita.jp/blog_images/fon.png&quot;&gt;&lt;br&gt;
とにかく小さいです
</description>
	   <dc:date>2006-12-19T00:18:24+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Linux/?permalink=FON%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%AD%E7%BD%AE.html
       </wfw:comment>
    </item>
    	    	<item rdf:about="http://www.tsujita.jp/blojsom/blog/default/Java/blojsom/2006/09/28/Pager-Plugin%E3%82%92%E4%BD%BF%E3%81%86.html">
	   <title>Pager Pluginを使う</title>
	   <link>http://www.tsujita.jp/blojsom/blog/default/Java/blojsom/2006/09/28/Pager-Plugin%E3%82%92%E4%BD%BF%E3%81%86.html</link>
       <description>以前からblojsomを使っていて、エントリ一覧で「次のページ」や&lt;br&gt;
「前のページ」を見るための機能がなぜないんだろうと思っていました。&lt;br&gt;
今は10件ずつの表示にしていますが10件表示されてそれで終わり。&lt;br&gt;
以前のエントリを見るにはカレンダーをぽちぽちクリックして見ていくしかないんですね。&lt;br&gt;
件数制限なしで表示するようにすれば当然以前のエントリが見られますが&lt;br&gt;
全てのエントリが表示されてしまい、どえらく重くなるし…。&lt;br&gt;
&lt;br&gt;
blojsom標準の機能に「次のページ」を出せる機能はないようなので&lt;br&gt;
これはプラグイン作るしかないかーと思って何か参考になるプラグインがないかと&lt;br&gt;
blojsom公式のプラグイン一覧を見ていると既にPager Pluginというそのものズバリのプラグインがあるし！&lt;br&gt;
作る前にここ見ておいて良かったー…。&lt;br&gt;
&lt;br&gt;
使用するにはまず&lt;a target=&quot;_blank&quot; href=&quot;http://sourceforge.net/project/showfiles.php?group_id=72754&amp;package_id=154672&amp;release_id=333616&quot;&gt;ここ&lt;/a&gt;からpagerplugin-0.2.jarを落としてきて/WEB-INF/libに入れます。&lt;br&gt;
&lt;br&gt;
次に/WEB-INF/plugin.propertiesへ
&lt;pre class=&quot;code&quot;&gt;
pager=com.mbledug.blojsom.plugin.pager.FilterPlugin
&lt;/pre&gt;
と設定を追加し&lt;br&gt;
/WEB-INF/(ユーザーID)/plugin.propertiesに
&lt;pre class=&quot;code&quot;&gt;
html.blojsom-plugin-chain=..., calendar, ..., pager, ..., limiter, ...
&lt;/pre&gt;
とpagerを書き加えます。&lt;br&gt;
ここでポイントなのが既にcalendarとlimiterがチェインされていればその間に書き加えた方がよい、&lt;br&gt;
ということだそうです。&lt;br&gt;
&lt;br&gt;
で次に/WEB-INF/(ユーザーID)/pager.propertiesというファイルを作りその中に
&lt;pre class=&quot;code&quot;&gt;
page-size=10
&lt;/pre&gt;
とだけ書いておきます。&lt;br&gt;
ここでの右辺数値は1ページに表示させる上限の数になっています。&lt;br&gt;
この場合だと10件まで表示するようになります。&lt;br&gt;
&lt;br&gt;
最後に/WEB-INF/web.xmlへ
&lt;pre class=&quot;code&quot;&gt;
&amp;lt;init-param&amp;gt;
        &amp;lt;param-name&amp;gt;plugin-pager&amp;lt;/param-name&amp;gt;
        &amp;lt;param-value&amp;gt;pager.properties&amp;lt;/param-value&amp;gt;
&amp;lt;/init-param&amp;gt;
&lt;/pre&gt;
と先ほど作った設定ファイルをプラグインが読み込むようにしてあげれば準備完了です。&lt;br&gt;
反映させるにはコンテナを再起動する必要があります。&lt;br&gt;
&lt;br&gt;
あとは「次のページ」のナビげージョンを表示させたいテンプレートの位置に
&lt;pre class=&quot;code&quot;&gt;
#parse(&quot;pager.vm&quot;)
&lt;/pre&gt;
と書いて、jarファイル内にあるpager.vmを/WEB-INF/(ユーザーID)/templatesに置けば終わりです。&lt;br&gt;
pager.vmの中身はそんなに難しくない表示を変えることも簡単にできると思います。&lt;br&gt;
&lt;br&gt;
使ってみた感想は、そうそうこれが欲しかったのよ！コレコレ！&lt;br&gt;
という感じでとても重宝しています。次のページktkr！&lt;br&gt;
でもこれってblojsomがデフォルトで持っているべき機能なんじゃないの…？
</description>
	   <dc:date>2006-09-28T22:23:57+09:00</dc:date>
	   <wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">
          http://www.tsujita.jp/blojsom/commentapi//Java/blojsom/?permalink=Pager-Plugin%E3%82%92%E4%BD%BF%E3%81%86.html
       </wfw:comment>
    </item>
    
</rdf:RDF>
