<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.pocari.org/~d/styles/rss1japanesefull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.pocari.org/~d/styles/itemcontent.css" type="text/css" media="screen"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:admin="http://webns.net/mvcb/" xml:lang="ja">
<channel rdf:about="http://cl.pocari.org/cl.rdf">
 <title>cl.pocari.org</title>
 <link>http://cl.pocari.org/</link>
 <description>chalow を使用した ChangeLog メモ．主に技術的な話題とか．</description>
 <dc:language>ja</dc:language>
 <dc:date>2008-05-10T17:41:28+09:00</dc:date>
 <admin:generatorAgent rdf:resource="http://chalow.org/?v=1.0rc6" />
 <items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://cl.pocari.org/2008-05-10-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-04-13-2.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-04-13-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-03-22-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-03-20-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-03-09-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-03-02-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-02-27-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-02-15-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-02-10-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-02-03-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-01-17-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2008-01-06-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-12-15-2.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-12-15-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-12-02-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-11-16-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-11-11-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-11-04-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-11-03-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-10-05-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-10-01-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-09-02-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-08-25-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-08-22-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-08-21-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-08-20-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-27-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-20-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-17-2.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-17-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-15-1.html" />
  <rdf:li rdf:resource="http://cl.pocari.org/2007-07-06-1.html" />
 </rdf:Seq>
 </items>
<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.jp/api/awareness/1.0/GetFeedData?uri=clpocariorg</feedburner:awareness><image rdf:resource="http://cl.pocari.org/cl.images/feed.png" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://clpocariorg/cl.rdf" type="application/rss+xml" /></channel>

<item rdf:about="http://cl.pocari.org/2008-05-10-1.html">
 <title>PuTTY ごった煮版のレジストリから INI ファイルを生成する</title>
 <link>http://cl.pocari.org/2008-05-10-1.html</link>
 <description>PuTTY ごった煮版では、設定の保存先をレジストリではなく、INI ファイルにすることが出来ます。 そこでレジストリに保存された設定から INI ファイルを作成するスクリプトを書きました。- putty.iniconv-1.0.0.vbs http://pocari.org/tools/putty/putty.iniconv-1.0.0.vbs 使い方はコマンドプロンプトで以下のようにします。 putty.ini を putty.exe があるフォルダと同じところに置けば完了です。C:\&amp;gt; CScript //Nologo putty.iniconv-1.0.0.vbs ...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-05-10T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;PuTTY ごった煮版では、設定の保存先をレジストリではなく、INI ファイルにすることが出来ます。<br />
&nbsp;&nbsp;そこでレジストリに保存された設定から INI ファイルを作成するスクリプトを書きました。<br />
<br />
<span class="section">- putty.iniconv-1.0.0.vbs</span><br />
&nbsp;&nbsp;<a href="http://pocari.org/tools/putty/putty.iniconv-1.0.0.vbs">http://pocari.org/tools/putty/putty.iniconv-1.0.0.vbs</a><br />
<br />
&nbsp;&nbsp;使い方はコマンドプロンプトで以下のようにします。<br />
&nbsp;&nbsp;putty.ini を putty.exe があるフォルダと同じところに置けば完了です。<br />
</p>
<blockquote>
<p>
C:\&gt; CScript //Nologo putty.iniconv-1.0.0.vbs &gt; putty.ini
</p>
</blockquote>
<p class="code"><span class="synComment">'</span><br />
<span class="synComment">' INI file converter for PuTTY</span><br />
<span class="synComment">'</span><br />
<span class="synComment">' Usage:</span><br />
<span class="synComment">' C:\&gt; CScript //Nologo putty.iniconv-1.0.0.vbs &gt; putty.ini</span><br />
<span class="synComment">'</span><br />
<span class="synComment">' Copyright (c) 2008 Norifumi SUNAOKA</span><br />
<span class="synComment">' &lt;http://cl.pocari.org/2008-05-10-1.html&gt;</span><br />
<span class="synComment">'</span><br />
<span class="synComment">' Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)</span><br />
<span class="synComment">'</span><br />
<span class="synComment">'</span><br />
<span class="synComment">' Version: 1.0.0</span><br />
<span class="synComment">'</span><br />
<br />
<span class="synStatement">Const</span> HKEY_CURRENT_USER&nbsp;&nbsp;<span class="synStatement">=</span> <span class="synStatement">&amp;</span>H80000001<br />
<span class="synStatement">Const</span> PUTTY_SESSIONS_KEY <span class="synStatement">=</span> <span class="synConstant">&quot;Software\SimonTatham\PuTTY\Sessions\&quot;</span><br />
<span class="synStatement">Const</span> PUTTY_HOSTKEYS_KEY <span class="synStatement">=</span> <span class="synConstant">&quot;Software\SimonTatham\PuTTY\SshHostKeys\&quot;</span><br />
<br />
<span class="synStatement">Set</span> StdOut <span class="synStatement">=</span> WScript<span class="synStatement">.</span>StdOut<br />
<span class="synStatement">Set</span> WMI&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=</span> <span class="synIdentifier">GetObject</span><span class="synStatement">(</span><span class="synConstant">&quot;winmgmts:{impersonationLevel=impersonate}!\\.&quot;</span> <span class="synStatement">&amp; _</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synConstant">&quot;\root\default:StdRegProv&quot;</span><span class="synStatement">)</span><br />
<span class="synStatement">Set</span> WS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=</span> WScript<span class="synStatement">.</span><span class="synIdentifier">CreateObject</span><span class="synStatement">(</span><span class="synConstant">&quot;Wscript.Shell&quot;</span><span class="synStatement">)</span><br />
<br />
<span class="synComment">' UseIniFile</span><br />
StdOut<span class="synStatement">.</span><span class="synPreProc">WriteLine</span> <span class="synConstant">&quot;[Generic]&quot;</span> <span class="synStatement">&amp;</span> <span class="synConstant">vbCrLf</span> <span class="synStatement">&amp;</span> <span class="synConstant">&quot;UseIniFile=1&quot;</span> <span class="synStatement">&amp;</span> <span class="synConstant">vbCrLf</span><br />
<br />
<span class="synComment">' Sessions</span><br />
WMI<span class="synStatement">.</span>EnumKey HKEY_CURRENT_USER<span class="synStatement">,</span> PUTTY_SESSIONS_KEY<span class="synStatement">,</span> subkeys<br />
<span class="synStatement">For</span> <span class="synStatement">Each</span> subkey <span class="synStatement">In</span> subkeys<br />
&nbsp;&nbsp;&nbsp;&nbsp;StdOut<span class="synStatement">.</span><span class="synPreProc">WriteLine</span> <span class="synConstant">&quot;[Session:&quot;</span> <span class="synStatement">&amp;</span> subkey <span class="synStatement">&amp;</span> <span class="synConstant">&quot;]&quot;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">Call</span> OutputValues<span class="synStatement">(</span>PUTTY_SESSIONS_KEY <span class="synStatement">&amp;</span> subkey <span class="synStatement">&amp;</span> <span class="synConstant">&quot;\&quot;</span><span class="synStatement">)</span><br />
<span class="synStatement">Next</span><br />
<br />
<span class="synComment">' SshHostKeys</span><br />
StdOut<span class="synStatement">.</span><span class="synPreProc">WriteLine</span> <span class="synConstant">&quot;[SshHostKeys]&quot;</span><br />
<span class="synStatement">Call</span> OutputValues<span class="synStatement">(</span>PUTTY_HOSTKEYS_KEY<span class="synStatement">)</span><br />
<br />
<span class="synStatement">Set</span> WS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=</span> <span class="synStatement">Nothing</span><br />
<span class="synStatement">Set</span> WMI&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=</span> <span class="synStatement">Nothing</span><br />
<span class="synStatement">Set</span> StdOut <span class="synStatement">=</span> <span class="synStatement">Nothing</span><br />
<br />
<span class="synComment">'</span><br />
<span class="synComment">' OutputValues</span><br />
<span class="synComment">'</span><br />
<span class="synStatement">Sub</span> OutputValues<span class="synStatement">(</span>subkey<span class="synStatement">)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">Set</span> RE <span class="synStatement">=</span> <span class="synStatement">new</span> RegExp<br />
&nbsp;&nbsp;&nbsp;&nbsp;RE<span class="synStatement">.</span>pattern <span class="synStatement">=</span> <span class="synConstant">&quot;^\-?[0-9]+$&quot;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;WMI<span class="synStatement">.</span>EnumValues HKEY_CURRENT_USER<span class="synStatement">,</span> subkey<span class="synStatement">,</span> names<span class="synStatement">,</span> types<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">For</span> i <span class="synStatement">=</span> <span class="synConstant">0</span> <span class="synStatement">To</span> <span class="synIdentifier">UBound</span><span class="synStatement">(</span>names<span class="synStatement">)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synPreProc">value</span> <span class="synStatement">=</span> WS<span class="synStatement">.</span>RegRead<span class="synStatement">(</span><span class="synConstant">&quot;HKCU\&quot;</span> <span class="synStatement">&amp;</span> subkey <span class="synStatement">&amp;</span> names<span class="synStatement">(</span>i<span class="synStatement">))</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">If</span> <span class="synStatement">Not</span> RE<span class="synStatement">.</span>Test<span class="synStatement">(</span><span class="synPreProc">value</span><span class="synStatement">)</span> <span class="synStatement">then</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synPreProc">value</span> <span class="synStatement">=</span> <span class="synConstant">&quot;&quot;&quot;&quot;</span> <span class="synStatement">&amp;</span> <span class="synPreProc">value</span> <span class="synStatement">&amp;</span> <span class="synConstant">&quot;&quot;&quot;&quot;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">End</span> <span class="synStatement">If</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StdOut<span class="synStatement">.</span><span class="synPreProc">WriteLine</span> names<span class="synStatement">(</span>i<span class="synStatement">)</span> <span class="synStatement">&amp;</span> <span class="synConstant">&quot;=&quot;</span> <span class="synStatement">&amp;</span> <span class="synPreProc">value</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">Next</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;StdOut<span class="synStatement">.</span><span class="synPreProc">WriteLine</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">Set</span> RE <span class="synStatement">=</span> <span class="synStatement">Nothing</span><br />
<span class="synStatement">End</span> <span class="synStatement">Sub</span>
</p>
<p>
<br />
&nbsp;&nbsp;また、以下のサイトで、Perl 版が公開されているのですが、なぜだかうちの環境ではうまくいきませんでした。<br />
<br />
<span class="section">- ゑBLOG: PuTTYごった煮版 レジストリ&lt;-&gt;INIファイルコンバータ</span><br />
&nbsp;&nbsp;<a href="http://yebisuya.dip.jp/yeblog/archives/a000456.html">http://yebisuya.dip.jp/yeblog/archives/a000456.html</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=RbxDth"><img src="http://feeds.pocari.org/~a/clpocariorg?i=RbxDth" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=SRoHo0Kv"><img src="http://feeds.pocari.org/~f/clpocariorg?i=SRoHo0Kv" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=QCWxDone"><img src="http://feeds.pocari.org/~f/clpocariorg?i=QCWxDone" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=cdSfkAdj"><img src="http://feeds.pocari.org/~f/clpocariorg?i=cdSfkAdj" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-04-13-2.html">
 <title>APC と jQuery を利用してファイルアップロードの進行状況を表示する</title>
 <link>http://cl.pocari.org/2008-04-13-2.html</link>
 <description>ネタ的には特別新しいものではないですが、気になっていたので試してみました。 PHP 5.2.0 以降、APC 3.0.13 が必要です。1. APC の設定 普通に APC をインストールして、以下のように apc.rfc1867 を有効にするだけです。apc.rfc1867 = On2. アップロードフォームの準備 普通のアップロードフォームです。 ただし、"APC_UPLOAD_PROGRESS" という name 属性を持った hidden フィールドを用意します。値は、何でもいいのですが、ここでは "progress_key" という風にしてい...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-04-13T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;ネタ的には特別新しいものではないですが、気になっていたので試してみました。<br />
&nbsp;&nbsp;PHP 5.2.0 以降、APC 3.0.13 が必要です。<br />
</p>
<h3>1. APC の設定</h3>
<p>
&nbsp;&nbsp;普通に APC をインストールして、以下のように <a href="http://jp2.php.net/manual/ja/apc.configuration.php#ini.apc.rfc1867">apc.rfc1867</a> を有効にするだけです。<br />
</p>
<p class="code"><span class="synType">apc.rfc1867 =</span> On
</p>
<h3>2. アップロードフォームの準備</h3>
<p>
&nbsp;&nbsp;普通のアップロードフォームです。<br />
&nbsp;&nbsp;ただし、"APC_UPLOAD_PROGRESS" という name 属性を持った hidden フィールドを用意します。値は、何でもいいのですが、ここでは "progress_key" という風にしています (本当はランダムにするほうがいいと思います)。<br />
</p>
<p class="code"><span class="synIdentifier">&lt;</span><span class="synStatement">form</span><span class="synIdentifier"> </span><span class="synType">id</span><span class="synIdentifier">=</span><span class="synConstant">&quot;upload&quot;</span><span class="synIdentifier"> </span><span class="synType">action</span><span class="synIdentifier">=</span><span class="synConstant">&quot;upload.php&quot;</span><span class="synIdentifier"> </span><span class="synType">method</span><span class="synIdentifier">=</span><span class="synConstant">&quot;post&quot;</span><span class="synIdentifier"> </span><span class="synType">enctype</span><span class="synIdentifier">=</span><span class="synConstant">&quot;multipart/form-data&quot;</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">p</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">input</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;hidden&quot;</span><span class="synIdentifier"> </span><span class="synType">name</span><span class="synIdentifier">=</span><span class="synConstant">&quot;APC_UPLOAD_PROGRESS&quot;</span><span class="synIdentifier"> </span><span class="synType">value</span><span class="synIdentifier">=</span><span class="synConstant">&quot;progress_key&quot;</span><span class="synIdentifier"> /&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">input</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;file&quot;</span><span class="synIdentifier"> </span><span class="synType">name</span><span class="synIdentifier">=</span><span class="synConstant">&quot;file&quot;</span><span class="synIdentifier"> /&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">input</span><span class="synIdentifier"> </span><span class="synType">id</span><span class="synIdentifier">=</span><span class="synConstant">&quot;submit_button&quot;</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;submit&quot;</span><span class="synIdentifier"> </span><span class="synType">value</span><span class="synIdentifier">=</span><span class="synConstant">&quot;アップロード&quot;</span><span class="synIdentifier"> /&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">p</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">form</span><span class="synIdentifier">&gt;</span>
</p>
<h3>3. アップロードファイルの処理</h3>
<p>
&nbsp;&nbsp;上記アップロードフォームの upload.php ですが、これは通常のファイルアップロード時の処理を書いてください。<br />
&nbsp;&nbsp;今回はテストなので何もしませ
</p>
<p class="code"><span class="synSpecial">&lt;?php</span><br />
<span class="synComment">// 通常のファイルアップロードの処理</span><br />
<span class="synSpecial">?&gt;</span>
</p>
<h3>4. アップロードの進行状況を返す処理</h3>
<p>
&nbsp;&nbsp;次のファイルを progress.php とします。<br />
</p>
<p class="code"><span class="synSpecial">&lt;?php</span><br />
<span class="synComment">// progress.php</span><br />
<span class="synIdentifier">header</span><span class="synSpecial">(</span>'<span class="synConstant">Content-type: application/json; charset=UTF-8</span>'<span class="synSpecial">)</span>;<br />
<span class="synStatement">$</span><span class="synIdentifier">status</span> <span class="synStatement">=</span> apc_fetch<span class="synSpecial">(</span>'<span class="synConstant">upload_progress_key</span>'<span class="synSpecial">)</span>;<br />
<span class="synPreProc">echo</span> json_encode<span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">status</span><span class="synSpecial">)</span>;<br />
<span class="synStatement">exit</span>;<br />
<span class="synSpecial">?&gt;</span>
</p>
<p>
<br />
&nbsp;&nbsp;2 で指定した "APC_UPLOAD_PROGRESS" の値の先頭に upload_ をつけたものを apc_fetch() の引数に指定します。upload_ は設定で変更することが出来ます (<a href="http://jp2.php.net/manual/ja/apc.configuration.php#ini.apc.rfc1867_prefix">apc.rfc1867_prefix</a>)。<br />
&nbsp;&nbsp;apc_fetch() で取得できる値は次のようになります。<br />
<br />
</p>
<table><tr><td> total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロードされるファイルのサイズ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td> current&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 現時点までに受信したファイルのサイズ&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td> rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロード速度 (byte/second)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロード完了時のみ </td></tr><tr><td> filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> ファイル名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td> name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> &lt;input type="file" /&gt; の name 属性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td> temp_filename </td><td> 一時ファイル名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロード完了時のみ </td></tr><tr><td> cancel_upload </td><td> アップロードがキャンセルされたかどうか&nbsp;&nbsp;</td><td> アップロード完了時のみ </td></tr><tr><td> done&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロードが完了したかどうか&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr><tr><td> start_time&nbsp;&nbsp;&nbsp;&nbsp;</td><td> アップロード開始日時の UNIX TIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr></table>
<ul>
<li>cancel_upload: 0 = キャンセルされていない、1 = キャンセルされた</li>
<li>done: 0 = 未完了、1 = 完了</li>
</ul>
<p>
&nbsp;&nbsp;これらの値を JSON で出力しています。<br />
</p>
<h3>5. jQuery を使って進行状況を取得する</h3>
<p>
&nbsp;&nbsp;<a href="http://malsup.com/jquery/form/">jQuery Form Plugin</a> を使って、フォームを POST し、1 秒毎に getJSON で進行状況を取得します。<br />
&nbsp;&nbsp;また、getJSON でリクエストに現在日時を渡しているのは、ブラウザのキャッシュを利用しないようにするためです。<br />
</p>
<p class="code"><span class="synIdentifier">var</span> timer = <span class="synStatement">null</span>;<br />
<br />
<span class="synIdentifier">var</span> progress = <span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// progress.php を呼び出して進行状況を取得する</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;$.getJSON(<span class="synConstant">'progress.php'</span>, <span class="synIdentifier">{</span> <span class="synConstant">'d'</span>: <span class="synStatement">new</span> <span class="synType">Date</span>().getTime() <span class="synIdentifier">}</span>, <span class="synIdentifier">function</span>(json) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// 進行状況を % で表示する</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="synConstant">'#status'</span>).html(parseInt(json.current / json.total * 100) + <span class="synConstant">'%'</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
<span class="synIdentifier">}</span>;<br />
<br />
$(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="synConstant">'#upload'</span>).submit(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timer = setInterval(<span class="synConstant">'progress()'</span>, 1000);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// フォームを POST する</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="synIdentifier">this</span>).ajaxSubmit(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(timer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;progress();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">return</span> <span class="synConstant">false</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
<span class="synIdentifier">}</span>);
</p>
<h3>6. デモ</h3>
<p>
&nbsp;&nbsp;本当は、デモを用意したかったのですが、ここのレンタルサーバでは APC が使えないようでしたのでアップロード状況をキャプッチャしました。<br />
&nbsp;&nbsp;基本的には、上記の処理を行なっているだけですが、進行状況の表示の部分は <a href="http://digitalbush.com/projects/progress-bar-plugin">Progress Bar Plugin</a> を利用して、プログレスバーで表示しています。<br />
<br />
	<object type="application/x-shockwave-flash" data="./images/upload_progress.swf" width="571" height="377" >
	<param name="movie" value="./images/upload_progress.swf" />
	</object>
	<br />
<br />
&nbsp;&nbsp;このデモで使用したファイル一式を以下に置いておきます。<br />
</p>
<ul>
<li><a href="http://pocari.org/demo/upload_progress/upload_progress.zip">http://pocari.org/demo/upload_progress/upload_progress.zip</a></li>
</ul>
<h3>参考</h3>
<p>
<br />
<span class="section">- PHP V5.2 の新機能、第 5 回: ファイル・アップロードの進行状況を追跡する方法</span><br />
&nbsp;&nbsp;<a href="http://www.ibm.com/developerworks/jp/opensource/library/os-php-v525/">http://www.ibm.com/developerworks/jp/opensource/library/os-php-v525/</a><br />
<br />
<span class="section">- upload meter for PHP with APC and Json</span><br />
&nbsp;&nbsp;<a href="http://progphp.com/progress.phps">http://progphp.com/progress.phps</a><br />
<br />
<span class="section">- PHP: APC 関数 - Manual</span><br />
&nbsp;&nbsp;<a href="http://php.net/apc">http://php.net/apc</a><br />
<br />
<span class="section">- jQuery Form Plugin</span><br />
&nbsp;&nbsp;<a href="http://malsup.com/jquery/form/">http://malsup.com/jquery/form/</a><br />
<br />
<span class="section">- Progress Bar Plugin</span><br />
&nbsp;&nbsp;<a href="http://digitalbush.com/projects/progress-bar-plugin">http://digitalbush.com/projects/progress-bar-plugin</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=Ua3clH"><img src="http://feeds.pocari.org/~a/clpocariorg?i=Ua3clH" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=h0bogpz9"><img src="http://feeds.pocari.org/~f/clpocariorg?i=h0bogpz9" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=Sx646fZ2"><img src="http://feeds.pocari.org/~f/clpocariorg?i=Sx646fZ2" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=cLjOlJ1q"><img src="http://feeds.pocari.org/~f/clpocariorg?i=cLjOlJ1q" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-04-13-1.html">
 <title>".svn" を隠す方法</title>
 <link>http://cl.pocari.org/2008-04-13-1.html</link>
 <description>- ".svn"を隠す。 - ぐらめぬ・ぜぷつぇんのはてダウンロード http://d.hatena.ne.jp/msakamoto-sf/20080403/1207190473 .htaccess で .svn を隠す方法ということですが、以前調べたことがあって mod_rewrite が使えるならば、以下のようにして隠すことが出来ると思います。RewriteEngine OnRewriteRule ^(.*/)*\.svn/ / [F,L] また、.htaccess を利用しなくとも、.svn のパーミッションを 0700 あたりにしても大丈夫な場合もあります。$ fi...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-04-13T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  <span class="section">- ".svn"を隠す。 - ぐらめぬ・ぜぷつぇんのはてダウンロード</span><br />
&nbsp;&nbsp;<a href="http://d.hatena.ne.jp/msakamoto-sf/20080403/1207190473">http://d.hatena.ne.jp/msakamoto-sf/20080403/1207190473</a><br />
<br />
&nbsp;&nbsp;.htaccess で .svn を隠す方法ということですが、以前調べたことがあって mod_rewrite が使えるならば、以下のようにして隠すことが出来ると思います。<br />
</p>
<p class="code"><span class="synIdentifier">RewriteEngine</span> <span class="synConstant">On</span><br />
<span class="synIdentifier">RewriteRule</span> ^(.*/)*\.svn/ / [F,L]
</p>
<p>
<br />
&nbsp;&nbsp;また、.htaccess を利用しなくとも、.svn のパーミッションを 0700 あたりにしても大丈夫な場合もあります。<br />
</p>
<blockquote>
<p>
$ find . -name .svn -type d | xargs -i chmod 0700 {}
</p>
</blockquote>
<p>
&nbsp;&nbsp;httpd.conf がいじれる環境であれば上記エントリに示してあるとおり<br />
</p>
<p class="code"><span class="synStatement">&lt;Directory</span><span class="synConstant"> ~ &quot;\.svn&quot;</span><span class="synStatement">&gt;</span><br />
<span class="synSpecial">Order </span><span class="synConstant">allow</span><span class="synSpecial">,</span><span class="synConstant">deny</span><br />
<span class="synPreProc">Deny from </span><span class="synIdentifier">all</span><br />
<span class="synStatement">&lt;/Directory&gt;</span>
</p>
<p>
<br />
&nbsp;&nbsp;これが一番簡単な気がします。<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=onPW36"><img src="http://feeds.pocari.org/~a/clpocariorg?i=onPW36" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=p4nvQaCO"><img src="http://feeds.pocari.org/~f/clpocariorg?i=p4nvQaCO" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=u66gUWY8"><img src="http://feeds.pocari.org/~f/clpocariorg?i=u66gUWY8" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=UI5j0se9"><img src="http://feeds.pocari.org/~f/clpocariorg?i=UI5j0se9" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-03-22-1.html">
 <title>IE でどうにかして color:inherit を有効にする</title>
 <link>http://cl.pocari.org/2008-03-22-1.html</link>
 <description>IE (6 も 7) では、CSS の color: inherit に対応していないので、以下のような場合に他のブラウザと異なる表示になります。* { color: #000;} p { color: #f00;} span { color: inherit;}&lt;p&amp;gt;&lt;span&amp;gt;ここは color: inherit を指定しています。&lt;/span&amp;gt;&lt;/p&amp;gt;- Internet Explorer 6.0 [color: inherit of IE]- Firefox 2.0.0.12 [color: inheri...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-03-22T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;IE (6 も 7) では、CSS の color: inherit に対応していないので、以下のような場合に他のブラウザと異なる表示になります。<br />
</p>
<p class="code"><span class="synStatement">*</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#000</span>;<br />
<span class="synIdentifier">}</span><br />
&nbsp;<br />
<span class="synStatement">p</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#f00</span>;<br />
<span class="synIdentifier">}</span><br />
&nbsp;<br />
<span class="synStatement">span</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synType">color</span>: <span class="synType">inherit</span>;<br />
<span class="synIdentifier">}</span>
</p>
<p class="code"><span class="synIdentifier">&lt;</span><span class="synStatement">p</span><span class="synIdentifier">&gt;&lt;</span><span class="synStatement">span</span><span class="synIdentifier">&gt;</span>ここは color: inherit を指定しています。<span class="synIdentifier">&lt;/</span><span class="synStatement">span</span><span class="synIdentifier">&gt;&lt;/</span><span class="synStatement">p</span><span class="synIdentifier">&gt;</span>
</p>
<p>
<br />
<span class="section">- Internet Explorer 6.0</span><br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/color-inherit-ie.png" alt="color: inherit of IE" title="color: inherit of IE" /><br />
<br />
<span class="section">- Firefox 2.0.0.12</span><br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/color-inherit-fx.png" alt="color: inherit of Firefox" title="color: inherit of Firefox" /><br />
<br />
&nbsp;&nbsp;見て分かるとおりに、IE の場合は、ユニバーサルセレクタで指定した #000 が有効になっています。<br />
&nbsp;&nbsp;要は、CSS 2 に準拠していないということなのですが、これをどうにかして他のブラウザのように #f00 で表示してやろうというのが趣旨です。<br />
<br />
&nbsp;&nbsp;結論から言うと JavaScript での処理になるのですが、はじめに以下のようなスクリプトを書いてみました。<br />
</p>
<p class="code"><span class="synStatement">window</span>.onload = <span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synStatement">if</span> (<span class="synStatement">document</span>.all) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">var</span> e = <span class="synStatement">document</span>.getElementsByTagName(<span class="synConstant">'span'</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">for</span> (<span class="synIdentifier">var</span> i = 0, l = e.length; i &lt; l; ++i) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>.style.color = e<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>.parentNode.currentStyle.color;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span><br />
&nbsp;&nbsp;<span class="synIdentifier">}</span><br />
<span class="synIdentifier">}</span>;
</p>
<p>
<br />
&nbsp;&nbsp;要は、親要素の color を適用していくという感じです。もちろん、これでうまくいきます。<br />
<br />
&nbsp;&nbsp;jQuery を利用している場合は、以下のような感じで、<br />
</p>
<p class="code">$(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synStatement">if</span> ($.browser.msie) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="synConstant">'span'</span>).each(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(<span class="synIdentifier">this</span>).css(<span class="synConstant">'color'</span>, $(<span class="synIdentifier">this</span>).<span class="synStatement">parent</span>().css(<span class="synConstant">'color'</span>));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
&nbsp;&nbsp;<span class="synIdentifier">}</span><br />
<span class="synIdentifier">}</span>);
</p>
<p>
<br />
&nbsp;&nbsp;prototype.js を利用している場合は、以下のような感じです。<br />
</p>
<p class="code"><span class="synStatement">Event</span>.observe(<span class="synStatement">window</span>, <span class="synConstant">'load'</span>, <span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synStatement">if</span> (Prototype.Browser.IE) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;$$(<span class="synConstant">'span'</span>).each(<span class="synIdentifier">function</span>(e) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.style.color = e.parentNode.currentStyle.color;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
&nbsp;&nbsp;<span class="synIdentifier">}</span><br />
<span class="synIdentifier">}</span>);
</p>
<p>
<br />
&nbsp;&nbsp;さて、上記のスクリプトを見て分かるとおりに IE でしかこの処理は行ないません。<br />
&nbsp;&nbsp;となると、IE の CSS 拡張 expression が使えそうです。<br />
</p>
<p class="code"><span class="synStatement">span</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;<span class="synType">color</span>: <span class="synType">inherit</span>; <span class="synComment">/* NOT IE */</span><br />
&nbsp;&nbsp;<span class="synType">color</span>: expression(this.parentNode.currentStyle.<span class="synType">color</span>); <span class="synComment">/* IE */</span><br />
<span class="synIdentifier">}</span>
</p>
<p>
<br />
&nbsp;&nbsp;これだとシンプルに書くことが出来ます。<br />
&nbsp;&nbsp;ただし、expression も問題があって、何かしらのイベントが発生するたびに評価されてしまいます。<br />
&nbsp;&nbsp;例えば、mouseover だったり riseze だったり。<br />
&nbsp;&nbsp;あともちろん、validator には通りません。<br />
<br />
&nbsp;&nbsp;結論としては、上記の方法を時と場合によって使い分けるのが良いと思います。<br />
<br />
# IE が color: inherit をサポートしてくれるのが一番いいんですけどね……<br />
# IE 8 ではどうなっているんでしょう?<br />
<br />
<span class="section">- hxxk.jp - IE 7 と color: inherit</span><br />
&nbsp;&nbsp;<a href="http://hxxk.jp/2006/11/19/2347">http://hxxk.jp/2006/11/19/2347</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=Hskimj"><img src="http://feeds.pocari.org/~a/clpocariorg?i=Hskimj" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=aneEEPUn"><img src="http://feeds.pocari.org/~f/clpocariorg?i=aneEEPUn" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=X3SC8KWo"><img src="http://feeds.pocari.org/~f/clpocariorg?i=X3SC8KWo" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=zYVi6dTA"><img src="http://feeds.pocari.org/~f/clpocariorg?i=zYVi6dTA" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-03-20-1.html">
 <title>Fiddler が動作しなくなった</title>
 <link>http://cl.pocari.org/2008-03-20-1.html</link>
 <description>Microsoft の Proxy 型の HTTP デバッガ Fiddler が突然 (?) 動作しなくなりました。 それも IE (WinINET) からのみうまく動作しません。Firefox からだと問題なく動作します。 2.1.4.4 beta にアップデートしたりしてもうまくいかないので調べてみたら、以下のフォーラムの記事を見つけました。- Bugs: Fiddler started but browser ceased to work http://groups.msn.com/HTTPFiddler/bugs.msnw?action=get_message&amp;amp;ID_...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-03-20T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;Microsoft の Proxy 型の HTTP デバッガ Fiddler が突然 (?) 動作しなくなりました。<br />
&nbsp;&nbsp;それも IE (WinINET) からのみうまく動作しません。Firefox からだと問題なく動作します。<br />
<br />
&nbsp;&nbsp;2.1.4.4 beta にアップデートしたりしてもうまくいかないので調べてみたら、以下のフォーラムの記事を見つけました。<br />
<br />
<span class="section">- Bugs: Fiddler started but browser ceased to work</span><br />
&nbsp;&nbsp;<a href="http://groups.msn.com/HTTPFiddler/bugs.msnw?action=get_message&amp;ID_Message=1407">http://groups.msn.com/HTTPFiddler/bugs.msnw?action=get_message&amp;ID_Message= ...</a><br />
</p>
<blockquote>
<p>
1&gt; Close Fiddler.<br />
2&gt; Start the Registry editor.&nbsp;&nbsp;START &gt; RUN &gt; REGEDIT.EXE<br />
3&gt; Navigate to HKEY_CURRENT_USER\Software\Microsoft\Fiddler2<br />
4&gt; Right-click in the pane on the right hand side and choose NEW &gt; STRING VALUE.<br />
5&gt; Name the new string <strong>MapSocketToProcess</strong> and set its value to <strong>False</strong><br />
6&gt; Restart Fiddler.
</p>
</blockquote>
<p>
&nbsp;&nbsp;つまり、レジストリを書き換えるということです。<br />
<br />
&nbsp;&nbsp;試しにこのとおりにやってみると、うまく動作するようになりました！<br />
&nbsp;&nbsp;原因は分かりませんが、とりあえず動くようになったのでこれで良しとします。<br />
<br />
&nbsp;&nbsp;環境は、上記の記事では Windows 2000 (SP4) でしたが、うちの環境は Windows XP (SP2) + IE 6.0 でした。<br />
<br />
&nbsp;&nbsp;以下に書き換え後のレジストリを書き出しておきます。<br />
</p>
<p class="code">Windows Registry Editor Version 5<span class="synSpecial">.</span>00<br />
<br />
[<span class="synConstant">HKEY_CURRENT_USER</span><span class="synSpecial">\</span>Software<span class="synSpecial">\</span>Microsoft<span class="synSpecial">\</span>Fiddler2]<br />
&quot;MapSocketToProcess<span class="synConstant">&quot;=&quot;False&quot;</span>
</p>
<p>

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=xlCBpk"><img src="http://feeds.pocari.org/~a/clpocariorg?i=xlCBpk" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=iavcjPX1"><img src="http://feeds.pocari.org/~f/clpocariorg?i=iavcjPX1" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=ynHae4Dy"><img src="http://feeds.pocari.org/~f/clpocariorg?i=ynHae4Dy" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=ZHEtYthM"><img src="http://feeds.pocari.org/~f/clpocariorg?i=ZHEtYthM" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-03-09-1.html">
 <title>キーボードを新調した</title>
 <link>http://cl.pocari.org/2008-03-09-1.html</link>
 <description>2002 年に購入したキーボード (Realfirce 106) の調子が、ここ最近あまりよくありませんでした。 解体して掃除したりしてもなんかいまいちだったので、久しぶりにキーボードを買いました。 買ったものは、今のと全く同じで Realforce 106 LA0100。違うキーボードも試してみたかったのですが、結局ずっと使っていて手になじんでいるので同じにしました。 ヨドバシカメラ吉祥寺店で 17,600 円。ポイントが 13% の 2,288 ポイント付いたので、実質 15,312 円でした。 また、5、6 年はお世話になりそうです。- 東プレ LA0100 REALFORCE106 ...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-03-09T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;2002 年に購入したキーボード (Realfirce 106) の調子が、ここ最近あまりよくありませんでした。<br />
&nbsp;&nbsp;解体して掃除したりしてもなんかいまいちだったので、久しぶりにキーボードを買いました。<br />
<br />
&nbsp;&nbsp;買ったものは、今のと全く同じで <a href="http://www.topre.co.jp/products/comp/key_list.html">Realforce 106 LA0100</a>。違うキーボードも試してみたかったのですが、結局ずっと使っていて手になじんでいるので同じにしました。<br />
<br />
&nbsp;&nbsp;ヨドバシカメラ吉祥寺店で 17,600 円。ポイントが 13% の 2,288 ポイント付いたので、実質 15,312 円でした。<br />
&nbsp;&nbsp;また、5、6 年はお世話になりそうです。<br />
<br />
<span class="section">- 東プレ LA0100 REALFORCE106</span><br />
&nbsp;&nbsp;<a href="http://www.amazon.co.jp/o/ASIN/B000EQHU4Y/todaysnonsenc-22/ref=nosim/"><img class="amazon" src="http://images-jp.amazon.com/images/P/B000EQHU4Y.09._PC_SCMZZZZZZZ_.jpg" alt="B000EQHU4Y" /></a><br />
&nbsp;&nbsp;<a href="http://www.amazon.co.jp/o/ASIN/B000EQHU4Y/todaysnonsenc-22/ref=nosim/"><img src="http://g-images.amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp4.gif" style="border: none;" alt="amazon.co.jp 詳細ページへ" title="amazon.co.jp 詳細ページへ" width="164" height="28" /></a><br />
&nbsp;&nbsp;東プレ<br />
&nbsp;&nbsp;ASIN: B000EQHU4Y<br />
&nbsp;&nbsp;17,115 円<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=VBQqon"><img src="http://feeds.pocari.org/~a/clpocariorg?i=VBQqon" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=0ZNxEmwP"><img src="http://feeds.pocari.org/~f/clpocariorg?i=0ZNxEmwP" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=UlyRweKj"><img src="http://feeds.pocari.org/~f/clpocariorg?i=UlyRweKj" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=qbVUR0cA"><img src="http://feeds.pocari.org/~f/clpocariorg?i=qbVUR0cA" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-03-02-1.html">
 <title>天国のビーフシチューを作ってみた</title>
 <link>http://cl.pocari.org/2008-03-02-1.html</link>
 <description>経営コンサルタントの渡辺千賀さんのブログ (On Off and Beyond) の昨年末のエントリーにとても美味しそうなシチューのレシピがありました。- On Off and Beyond: 天国のビーフシチュー http://www.chikawatanabe.com/blog/2007/12/post-5.html ずっと気になっていたのですが、今日お休みで時間が取れましたので、作ってみました。材料 (4 人分) []牛肉 500g人参 2 本ジャガイモ 2 個タマネギ 2 個 (写真には 3 個写っていますが、実際は 2 個使用しました)セロリの茎 2 本マッシュルーム 10 個ホー...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-03-02T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;経営コンサルタントの渡辺千賀さんのブログ (<a href="http://www.chikawatanabe.com/blog/">On Off and Beyond</a>) の昨年末のエントリーにとても美味しそうなシチューのレシピがありました。<br />
<br />
<span class="section">- On Off and Beyond: 天国のビーフシチュー</span><br />
&nbsp;&nbsp;<a href="http://www.chikawatanabe.com/blog/2007/12/post-5.html">http://www.chikawatanabe.com/blog/2007/12/post-5.html</a><br />
<br />
&nbsp;&nbsp;ずっと気になっていたのですが、今日お休みで時間が取れましたので、作ってみました。<br />
</p>
<h3>材料 (4 人分)</h3>
<p>
&nbsp;&nbsp;<a href="./images/beef-stew-in-heaven-01.jpg"><img src="http://cl.pocari.org/./images/beef-stew-in-heaven-small-01.jpg" alt="" /></a></p>
<ul>
<li>牛肉 500g</li>
<li>人参 2 本</li>
<li>ジャガイモ 2 個</li>
<li>タマネギ 2 個 (写真には 3 個写っていますが、実際は 2 個使用しました)</li>
<li>セロリの茎 2 本</li>
<li>マッシュルーム 10 個</li>
<li>ホールトマト (トマトジュース漬け) 400g</li>
<li>赤ワイン (500cc)</li>
<li>カラメル用の砂糖 大さじ 3</li>
<li>ブールマニエ用に小麦粉とバター各 30g</li>
<li>ブーケガルニ (市販品)</li>
</ul>
<h3>作り方</h3>
<p>
&nbsp;&nbsp;渡辺さんのレシピと全く同じです。<br />
&nbsp;&nbsp;ジャガイモは煮込みの半分の時間 (20 分) が過ぎたあたりで投入しました。<br />
</p>
<h3>天国のビーフシチュー</h3>
<p>
&nbsp;&nbsp;<a href="./images/beef-stew-in-heaven-02.jpg"><img src="http://cl.pocari.org/./images/beef-stew-in-heaven-small-02.jpg" alt="" /></a><br />
&nbsp;&nbsp;<a href="./images/beef-stew-in-heaven-03.jpg"><img src="http://cl.pocari.org/./images/beef-stew-in-heaven-small-03.jpg" alt="" /></a><br />
<br />
&nbsp;&nbsp;実は、そこまで期待はしていなかったのですが、食べているうちに『これはもう大変なものが出来てしまった』というヨロコビがじわじわと湧き上がってきました！<br />
&nbsp;&nbsp;そんなに面倒でもなかったし、とても美味しいので是非オススメです！<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=YGYoMn"><img src="http://feeds.pocari.org/~a/clpocariorg?i=YGYoMn" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=X0VZgyvW"><img src="http://feeds.pocari.org/~f/clpocariorg?i=X0VZgyvW" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=IXb5ZPZe"><img src="http://feeds.pocari.org/~f/clpocariorg?i=IXb5ZPZe" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=AcyqOo3R"><img src="http://feeds.pocari.org/~f/clpocariorg?i=AcyqOo3R" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-02-27-1.html">
 <title>ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません (Can't convert string from native encoding to 'UTF-8') の対処法</title>
 <link>http://cl.pocari.org/2008-02-27-1.html</link>
 <description>UTF-8 なホストに、EUC-JP のターミナルで接続している場合 (export LANG=ja_JP.eucJP してある) に、svn で以下のようにエラーが発生しました。$ svn stsvn: Can't convert string from native encoding to 'UTF-8':(svn: ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません:) UTF-8 なファイル名をもつファイルで引っかかっているようです。 この場合は以下のようにして、一時的に ja_JP.UTF-8 にしてあげるとうまくいきます。$ env LANG=ja_JP....</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-02-27T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;UTF-8 なホストに、EUC-JP のターミナルで接続している場合 (export LANG=ja_JP.eucJP してある) に、svn で以下のようにエラーが発生しました。<br />
</p>
<blockquote>
<p>
$ svn st<br />
svn: Can't convert string from native encoding to 'UTF-8':<br />
(svn: ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません:)
</p>
</blockquote>
<p>
&nbsp;&nbsp;UTF-8 なファイル名をもつファイルで引っかかっているようです。<br />
&nbsp;&nbsp;この場合は以下のようにして、一時的に ja_JP.UTF-8 にしてあげるとうまくいきます。<br />
</p>
<blockquote>
<p>
$ env LANG=ja_JP.UTF-8 svn st
</p>
</blockquote>
<p>
&nbsp;&nbsp;もっとも、普通に UTF-8 なターミナルで export LANG=ja_JP.UTF-8 して動かすのが一番だと思いますが、まあこんな状況もあるということで。<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=NPiz4S"><img src="http://feeds.pocari.org/~a/clpocariorg?i=NPiz4S" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=4fi2LTwf"><img src="http://feeds.pocari.org/~f/clpocariorg?i=4fi2LTwf" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=fmOlJJLy"><img src="http://feeds.pocari.org/~f/clpocariorg?i=fmOlJJLy" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=DaPNqws8"><img src="http://feeds.pocari.org/~f/clpocariorg?i=DaPNqws8" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-02-15-1.html">
 <title>Google Code Project Hosting で差分表示が可能になってた</title>
 <link>http://cl.pocari.org/2008-02-15-1.html</link>
 <description>愛用している Google Code Project Hosting ですが、ソースコードの差分表示が可能になっていたので紹介。 もしかしたら始めからあったかもしれないのですが、最近気づいたので…… 簡単に、Google Code Project Hosting ですが、Google が提供している、オープンソース向けの Subversion レポジトリのホスティングサービスです。 具体的に何ができるかは、ヘルプを見てください。- Google Code FAQ - What's the new project-hosting service on Google Code? http://c...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-02-15T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;愛用している Google Code Project Hosting ですが、ソースコードの差分表示が可能になっていたので紹介。<br />
&nbsp;&nbsp;もしかしたら始めからあったかもしれないのですが、最近気づいたので……<br />
<br />
&nbsp;&nbsp;簡単に、Google Code Project Hosting ですが、Google が提供している、オープンソース向けの Subversion レポジトリのホスティングサービスです。<br />
&nbsp;&nbsp;具体的に何ができるかは、ヘルプを見てください。<br />
<br />
<span class="section">- Google Code FAQ - What's the new project-hosting service on Google Code?</span><br />
&nbsp;&nbsp;<a href="http://code.google.com/support/bin/answer.py?answer=56507&amp;topic=10381">http://code.google.com/support/bin/answer.py?answer=56507&amp;topic=10381</a><br />
<br />
&nbsp;&nbsp;まあ、trac のようなものです。<br />
<br />
&nbsp;&nbsp;で、本題ですが、百聞は一見にしかずということで以下をご覧下さい。<br />
<br />
&nbsp;&nbsp;<a href="./images/google_code.png"><img src="http://cl.pocari.org/./images/google_code_small.png" alt="" /></a><br />
<br />
<span class="section">- Diff of UMain.pas r7 - vimtray - Google Code</span><br />
&nbsp;&nbsp;<a href="http://code.google.com/p/vimtray/source/diff?old=5&amp;r=7&amp;format=unidiff&amp;path=%2Ftrunk%2FUMain.pas">http://code.google.com/p/vimtray/source/diff?old=5&amp;r=7&amp;format=unidiff&amp;path ...</a><br />
<br />
&nbsp;&nbsp;trac のように綺麗に色分けされて差分表示ができるようになっています。結構便利です。<br />
&nbsp;&nbsp;また、リポジトリブラウザみたいなのもあって、こちらもなかなか便利です。<br />
<br />
&nbsp;&nbsp;なお、Google Code Project Hosting は Google のアカウントがあれば誰でも利用することができます。<br />
&nbsp;&nbsp;もちろん、オープンソースのプロジェクト限定ですが。<br />
<br />
&nbsp;&nbsp;Google Code Project Hosting のはじめ方は以下のページが分かりやすくまとまっています。<br />
<br />
<span class="section">- Google Code でホスティング＋TortoiseSVN の使い方</span><br />
&nbsp;&nbsp;<a href="http://kawa.at.webry.info/200801/article_5.html">http://kawa.at.webry.info/200801/article_5.html</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=2llJe0"><img src="http://feeds.pocari.org/~a/clpocariorg?i=2llJe0" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=kjX6kpYI"><img src="http://feeds.pocari.org/~f/clpocariorg?i=kjX6kpYI" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=O2z9DLkA"><img src="http://feeds.pocari.org/~f/clpocariorg?i=O2z9DLkA" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=GaFfEVbp"><img src="http://feeds.pocari.org/~f/clpocariorg?i=GaFfEVbp" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-02-10-1.html">
 <title>オープンソースになった Fastladder の ER 図を描いてみた</title>
 <link>http://cl.pocari.org/2008-02-10-1.html</link>
 <description>Livedoor の Fastladder がオープンソースになったということで、勉強を兼ねて ER 図を描いてみました。[] (クリックで大きくなります) 使ったツールは DBDesigner 4 (日本語版) です。 DBDesigner 4 では、SQLite 3.x のデータが読めないようなので、SQLite ODBC Driver を使って、ODBC で読み込み、リバースエンジニアリングしました。 テーブルの定義はソースを見ながら作成中ですが、あまり Ruby が分かっていないので時間がかかりそうです。。。そのうち公開します。- Fastladder Open Source htt...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-02-10T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;Livedoor の Fastladder がオープンソースになったということで、勉強を兼ねて ER 図を描いてみました。<br />
<br />
<a href="./images/fastladder-erd.png"><img src="http://cl.pocari.org/./images/fastladder-erd_small.png" alt="" /></a><br />
&nbsp;&nbsp;(クリックで大きくなります)<br />
<br />
&nbsp;&nbsp;使ったツールは <a href="http://fabforce.net/dbdesigner4/">DBDesigner 4</a> (<a href="http://dbdesigner.iimp.jp/">日本語版</a>) です。<br />
&nbsp;&nbsp;DBDesigner 4 では、SQLite 3.x のデータが読めないようなので、<a href="http://www.ch-werner.de/sqliteodbc/">SQLite ODBC Driver</a> を使って、ODBC で読み込み、リバースエンジニアリングしました。<br />
<br />
&nbsp;&nbsp;テーブルの定義はソースを見ながら作成中ですが、あまり Ruby が分かっていないので時間がかかりそうです。。。そのうち公開します。<br />
<br />
<span class="section">- Fastladder Open Source</span><br />
&nbsp;&nbsp;<a href="http://fastladder.org/">http://fastladder.org/</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=6JDNGT"><img src="http://feeds.pocari.org/~a/clpocariorg?i=6JDNGT" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=rfAJrbdB"><img src="http://feeds.pocari.org/~f/clpocariorg?i=rfAJrbdB" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=a88Aw2qs"><img src="http://feeds.pocari.org/~f/clpocariorg?i=a88Aw2qs" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=9GvvtXd0"><img src="http://feeds.pocari.org/~f/clpocariorg?i=9GvvtXd0" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-02-03-1.html">
 <title>長い URL を折り返して表示する jQuery プラグインを作りました</title>
 <link>http://cl.pocari.org/2008-02-03-1.html</link>
 <description>主に Firefox での使用を意識しているのですが、Firefox では長い URL は折り返さない仕様なのでページのレイアウトが崩れてしまうことがあります (Firefox 3 では折り返す仕様になるみたいです)。 このため MR Tech Link Wrapper というアドオンや、url_breaker+ という Greasemonky スクリプトがあります。 それらを参考にして、長い URL を折り返して表示する jQuery プラグイン Link Wrapper を作ってみました。- jquery.linkwrapper.js のデモ http://pocari.org/demo...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-02-03T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;主に Firefox での使用を意識しているのですが、Firefox では長い URL は折り返さない仕様なのでページのレイアウトが崩れてしまうことがあります (Firefox 3 では折り返す仕様になるみたいです)。<br />
<br />
&nbsp;&nbsp;このため <a href="https://addons.mozilla.org/ja/firefox/addon/2021">MR Tech Link Wrapper</a> というアドオンや、<a href="http://piro.sakura.ne.jp/latest/2005/06.html#d28-A88CB5FE-1">url_breaker+</a> という Greasemonky スクリプトがあります。<br />
<br />
&nbsp;&nbsp;それらを参考にして、長い URL を折り返して表示する jQuery プラグイン Link Wrapper を作ってみました。<br />
<br />
<span class="section">- jquery.linkwrapper.js のデモ</span><br />
&nbsp;&nbsp;<a href="http://pocari.org/demo/jquery.linkwrapper/">http://pocari.org/demo/jquery.linkwrapper/</a><br />
<br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/jquery.linkwrapper.png" alt="jquery.linkwrapper.js" title="jquery.linkwrapper.js" /><br />
<br />
&nbsp;&nbsp;このプラグインは、MR Tech Link Wrapper や url_breaker+ と同じように、&lt;wbr&gt; という<strong>非標準のタグ</strong>を挿入しています。また、Opera は &lt;wbr&gt; に対応していないようなので、&amp;#8203; (ZERO WIDTH SPACE: ゼロ幅スペース) を挿入しています。<br />
<br />
# ですので、Opera では URL の文字をコピーすると h t t p : / / w w w のようにスペースが入ってしまいます。<br />
<br />
&nbsp;&nbsp;このプラグインでは、&lt;wbr&gt; の挿入位置ですが、デフォルトでは <strong>1 文字毎</strong>にしています。<br />
&nbsp;&nbsp;1 文字毎はやりすぎな感じもするのですが、まあ綺麗に折り返すために、取り合えずこのようにしてみました。<br />
<br />
&nbsp;&nbsp;オプション (pattern) に &lt;wbr&gt; を挿入する正規表現を指定することで、折り返しの位置を調整することができます。<br />
<br />
<span class="section">- 使い方</span>
</p>
<p class="code"><span class="synIdentifier">&lt;</span><span class="synStatement">script</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;text/javascript&quot;</span><span class="synIdentifier"> </span><span class="synType">src</span><span class="synIdentifier">=</span><span class="synConstant">&quot;jquery-1.2.2.pack.js&quot;</span><span class="synIdentifier">&gt;&lt;/</span><span class="synStatement">script</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">script</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;text/javascript&quot;</span><span class="synIdentifier"> </span><span class="synType">src</span><span class="synIdentifier">=</span><span class="synConstant">&quot;jquery.linkwrapper-1.0.3.js&quot;</span><span class="synIdentifier">&gt;&lt;/</span><span class="synStatement">script</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">script</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;text/javascript&quot;</span><span class="synIdentifier">&gt;</span><br />
<span class="synComment">// &lt;![CDATA[</span><br />
<span class="synSpecial">$</span>(<span class="synIdentifier">function</span>()<span class="synSpecial"> </span><span class="synIdentifier">{</span><br />
<span class="synSpecial">&nbsp;&nbsp;</span><span class="synComment">// オプションを指定しない場合</span><br />
<span class="synSpecial">&nbsp;&nbsp;$</span>(<span class="synConstant">'a.link1'</span>)<span class="synSpecial">.linkwrapper</span>()<span class="synSpecial">;</span><br />
<span class="synSpecial">&nbsp;&nbsp;</span><span class="synComment">// オプションを指定する場合</span><br />
<span class="synSpecial">&nbsp;&nbsp;$</span>(<span class="synConstant">'a.link2'</span>)<span class="synSpecial">.linkwrapper</span>(<span class="synIdentifier">{</span><span class="synSpecial"> pattern: </span><span class="synConstant">'(&amp;|</span><span class="synSpecial">\\</span><span class="synConstant">?)'</span><span class="synSpecial"> </span><span class="synIdentifier">}</span>)<span class="synSpecial">;</span><br />
<span class="synIdentifier">}</span>)<span class="synSpecial">;</span><br />
<span class="synComment">// ]]&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">script</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">head</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">body</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">p</span><span class="synIdentifier">&gt;&lt;</span><span class="synStatement">a</span><span class="synIdentifier"> </span><span class="synType">href</span><span class="synIdentifier">=</span><span class="synConstant">&quot;http://...&quot;</span><span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;link1&quot;</span><span class="synIdentifier">&gt;</span><span class="synUnderlined">http://...</span><span class="synIdentifier">&lt;/</span><span class="synStatement">a</span><span class="synIdentifier">&gt;&lt;/</span><span class="synStatement">p</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">p</span><span class="synIdentifier">&gt;&lt;</span><span class="synStatement">a</span><span class="synIdentifier"> </span><span class="synType">href</span><span class="synIdentifier">=</span><span class="synConstant">&quot;http://...&quot;</span><span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;link2&quot;</span><span class="synIdentifier">&gt;</span><span class="synUnderlined">http://...</span><span class="synIdentifier">&lt;/</span><span class="synStatement">a</span><span class="synIdentifier">&gt;&lt;/</span><span class="synStatement">p</span><span class="synIdentifier">&gt;</span>
</p>
<p>
<br />
&nbsp;&nbsp;対応しているブラウザですが、IE 6.0、IE 7.0、Firefox 2.0.0.11、Safari 3.0.4、Netscape 7.1、Opera 9.25 で確認したところ問題ないようです。<br />
<br />
&nbsp;&nbsp;以下にソースを載せておきます。<br />
&nbsp;&nbsp;ライセンスは、jQuery と同様に MIT と GPL のデュアルライセンスにしました。<br />
</p>
<p class="code">(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;jQuery.fn.linkwrapper = <span class="synIdentifier">function</span>(config) <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;config = jQuery.extend(<span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pattern: <span class="synConstant">'(.)'</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>, config);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">var</span> pattern = <span class="synStatement">new</span> <span class="synType">RegExp</span>(config.pattern, <span class="synConstant">'g'</span>);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">var</span> tag = jQuery.browser.opera ? <span class="synConstant">'&amp;#8203;'</span> : <span class="synConstant">'&lt;wbr /&gt;'</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">return</span> <span class="synIdentifier">this</span>.each(<span class="synIdentifier">function</span>() <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery(<span class="synIdentifier">this</span>).html(jQuery(<span class="synIdentifier">this</span>).text().replace(pattern, <span class="synConstant">'$1'</span> + tag));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synIdentifier">}</span>);<br />
&nbsp;&nbsp;<span class="synIdentifier">}</span>;<br />
<span class="synIdentifier">}</span>)(jQuery);
</p>
<p>
<br />
<span class="section">- ダウンロード</span><br />
&nbsp;&nbsp;<a href="http://pocari.org/demo/jquery.linkwrapper/jquery.linkwrapper-1.0.3.js">jquery.linkwrapper-1.0.3.js</a><br />
<br />
&nbsp;&nbsp;なお、jQuery のプラグインの作り方は、以下のエントリが大変参考になりました。<br />
<br />
- ref.: jQuery のプラグインを作成する : ブログの新着記事を表示：Goodpic<br />
&nbsp;&nbsp;<a href="http://www.goodpic.com/mt/archives2/2007/11/jquery.html">http://www.goodpic.com/mt/archives2/2007/11/jquery.html</a><br />
<br />
- ref.: The wbr tag<br />
&nbsp;&nbsp;<a href="http://www.quirksmode.org/oddsandends/wbr.html">http://www.quirksmode.org/oddsandends/wbr.html</a><br />
<br />
<span class="section">- 追記 (2008-02-05)</span><br />
&nbsp;&nbsp;メソッドチェーンができないことに気づいたので、jquery.linkwrapper-1.0.2 をリリースしました。<br />
&nbsp;&nbsp;これで、以下のようにできるようになります。<br />
</p>
<p class="code">$(<span class="synConstant">'a.link1'</span>).linkwrapper().css(<span class="synConstant">'color'</span>, <span class="synConstant">'#f00'</span>);
</p>
<p>
<br />
<span class="section">- 追記 (2008-03-21)</span><br />
&nbsp;&nbsp;jQuery.noConflict(); の時に動作しないのを修正して、jquery.linkwrapper-1.0.3 をリリースしました。<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=6H0Apx"><img src="http://feeds.pocari.org/~a/clpocariorg?i=6H0Apx" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=Dp20pvmE"><img src="http://feeds.pocari.org/~f/clpocariorg?i=Dp20pvmE" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=CVWjRf9G"><img src="http://feeds.pocari.org/~f/clpocariorg?i=CVWjRf9G" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=PVz711ry"><img src="http://feeds.pocari.org/~f/clpocariorg?i=PVz711ry" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-01-17-1.html">
 <title>Trac の Wiki の添付ファイルの最大サイズを変更する方法</title>
 <link>http://cl.pocari.org/2008-01-17-1.html</link>
 <description>Trac の Wiki (チケットも) の添付ファイルの最大サイズは、デフォルトで 256KB (262144byte) になっています。 256KB 以上のファイルを添付しようとすると以下のように「Maximum attachment size: 262144 bytes」と怒られて添付することができません。この最大サイズを変更する方法です。 [Maximum attachment size] 各 Trac 環境の trac.ini の attachment セクションの max_size の値を変更することで、添付ファイルの最大サイズを変更することができます。 例えば、1MB に増やす場...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-01-17T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;Trac の Wiki (チケットも) の添付ファイルの最大サイズは、デフォルトで 256KB (262144byte) になっています。<br />
&nbsp;&nbsp;256KB 以上のファイルを添付しようとすると以下のように「Maximum attachment size: 262144 bytes」と怒られて添付することができません。この最大サイズを変更する方法です。<br />
<br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/trac-maximum-attachment-size.png" alt="Maximum attachment size" title="Maximum attachment size" /><br />
<br />
&nbsp;&nbsp;各 Trac 環境の trac.ini の attachment セクションの max_size の値を変更することで、添付ファイルの最大サイズを変更することができます。<br />
&nbsp;&nbsp;例えば、1MB に増やす場合は、1048576 のように byte 単位で書いてあげればいいわけです。<br />
</p>
<p class="code"><span class="synSpecial">[attachment]</span><br />
<span class="synType">max_size =</span> 1048576
</p>
<p>
<br />
&nbsp;&nbsp;全ての Trac 環境の添付ファイルの最大サイズを増やしたい場合は、グローバル設定ファイルの上記の値を変更することで可能になります。<br />
&nbsp;&nbsp;グローバル設定ファイルは、$prefix/share/trac/conf/trac.ini になります。<br />
# ちなみに、Solaris 10 の場合は、/usr/sfw/share/trac/conf/trac.ini でした。<br />
<br />
&nbsp;&nbsp;設定ファイルの細かい情報は、TracIni に載っているので参照してみてください。<br />
<br />
- ref: TracIni - The Trac Project - Trac<br />
&nbsp;&nbsp;<a href="http://trac.edgewall.org/wiki/TracIni">http://trac.edgewall.org/wiki/TracIni</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=sPmFBS"><img src="http://feeds.pocari.org/~a/clpocariorg?i=sPmFBS" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=2qekbWnL"><img src="http://feeds.pocari.org/~f/clpocariorg?i=2qekbWnL" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=lNUal8Qi"><img src="http://feeds.pocari.org/~f/clpocariorg?i=lNUal8Qi" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=moR3xnko"><img src="http://feeds.pocari.org/~f/clpocariorg?i=moR3xnko" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2008-01-06-1.html">
 <title>自分の行ったことのある国を地図上に表示 (マレーシア)</title>
 <link>http://cl.pocari.org/2008-01-06-1.html</link>
 <description>あけましておめでとうございます。 年末年始は、マレーシアのペナン島に住んでいる義父母のところに行ってきました。 ということで、久しぶりに World66 に追加。- 全世界 (13 カ国) http://www.world66.com/community/mymaps/worldmap/BEFRNLDEJPITUSKRLUATUKMYE ... []- ヨーロッパ (9 カ国，17 %) http://www.world66.com/community/mymaps/visitedEurope/countrymap/AUBEENFRG ... []- ref.: [2004-12-30-1]...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2008-01-06T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;あけましておめでとうございます。<br />
<br />
&nbsp;&nbsp;年末年始は、マレーシアのペナン島に住んでいる義父母のところに行ってきました。<br />
<br />
&nbsp;&nbsp;ということで、久しぶりに <a href="http://www.world66.com/">World66</a> に追加。<br />
<br />
<span class="section">- 全世界 (13 カ国)</span><br />
&nbsp;&nbsp;<a href="http://www.world66.com/community/mymaps/worldmap/BEFRNLDEJPITUSKRLUATUKMYES.gif">http://www.world66.com/community/mymaps/worldmap/BEFRNLDEJPITUSKRLUATUKMYE ...</a><br />
&nbsp;&nbsp;<a href="./images/world66-2008-01-06.png"><img src="http://cl.pocari.org/./images/world66-2008-01-06-small.png" alt="" /></a><br />
<br />
<span class="section">- ヨーロッパ (9 カ国，17 %)</span><br />
&nbsp;&nbsp;<a href="http://www.world66.com/community/mymaps/visitedEurope/countrymap/AUBEENFRGEITLUNLSP.gif">http://www.world66.com/community/mymaps/visitedEurope/countrymap/AUBEENFRG ...</a><br />
&nbsp;&nbsp;<a href="./images/world66_en-2008-01-06.png"><img src="http://cl.pocari.org/./images/world66_en-2008-01-06-small.png" alt="" /></a><br />
<br />
- ref.:<br />
&nbsp;&nbsp;<a href="http://cl.pocari.org/2004-12-30-1.html">[2004-12-30-1]</a> 自分の行ったことのある国を地図上に表示 (スペイン)<br />
&nbsp;&nbsp;<a href="http://cl.pocari.org/2004-11-01-1.html">[2004-11-01-1]</a> 自分の行ったことのある国を地図上に表示 (イギリス)<br />
&nbsp;&nbsp;<a href="http://cl.pocari.org/2004-05-20-2.html">[2004-05-20-2]</a> 自分の行ったことのある国を地図上に表示 (イタリア)<br />
&nbsp;&nbsp;<a href="http://cl.pocari.org/2004-04-25-6.html">[2004-04-25-6]</a> 自分の行ったことのある国を地図上に表示<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=dXuxce"><img src="http://feeds.pocari.org/~a/clpocariorg?i=dXuxce" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=mwN991QO"><img src="http://feeds.pocari.org/~f/clpocariorg?i=mwN991QO" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=dPOqQw1q"><img src="http://feeds.pocari.org/~f/clpocariorg?i=dPOqQw1q" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=qZwT92qV"><img src="http://feeds.pocari.org/~f/clpocariorg?i=qZwT92qV" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-12-15-2.html">
 <title>携帯端末用Web制作バイブル 第2版 (ADVANCED WEB DESIGN BOOKS)</title>
 <link>http://cl.pocari.org/2007-12-15-2.html</link>
 <description>[4798111287] [amazon.co.jp 詳細ページへ] 八木澤 知彦 (著)  翔泳社; 第2版版 ISBN: 4798111287 2006/6/27 2,940 円本書は文字、絵文字、メール、電話の使い方から、画像、アニメ、動画、サウンド、CGI、アプリの作り方まで、i‐mode、EZweb、Vodafone live!の各3キャリアの特性に焦点をあてて徹底解説。携帯電話向けのWebコンテンツ制作者を悩ます、各キャリアごとの仕様の「違い」を紹介します。付録には、一覧できる最新の携帯端末ごとの「スペック早見表」、各キャリアごとで異なる「絵文字の一覧表」、「HTMLタグ辞典」が...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-12-15T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;<a href="http://www.amazon.co.jp/o/ASIN/4798111287/todaysnonsenc-22/ref=nosim/"><img class="amazon" src="http://images-jp.amazon.com/images/P/4798111287.09._PC_SCMZZZZZZZ_.jpg" alt="4798111287" /></a><br />
&nbsp;&nbsp;<a href="http://www.amazon.co.jp/o/ASIN/4798111287/todaysnonsenc-22/ref=nosim/"><img src="http://g-images.amazon.com/images/G/09/extranet/associates/buttons/remote-buy-jp4.gif" style="border: none;" alt="amazon.co.jp 詳細ページへ" title="amazon.co.jp 詳細ページへ" width="164" height="28" /></a><br />
&nbsp;&nbsp;八木澤 知彦 (著) <br />
&nbsp;&nbsp;翔泳社; 第2版版<br />
&nbsp;&nbsp;ISBN: 4798111287<br />
&nbsp;&nbsp;2006/6/27<br />
&nbsp;&nbsp;2,940 円<br />
</p>
<blockquote>
<p>
本書は文字、絵文字、メール、電話の使い方から、画像、アニメ、動画、サウンド、CGI、アプリの作り方まで、i‐mode、EZweb、Vodafone live!の各3キャリアの特性に焦点をあてて徹底解説。携帯電話向けのWebコンテンツ制作者を悩ます、各キャリアごとの仕様の「違い」を紹介します。付録には、一覧できる最新の携帯端末ごとの「スペック早見表」、各キャリアごとで異なる「絵文字の一覧表」、「HTMLタグ辞典」が入っています。
</p>
</blockquote>
<p>

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=0IC3Ma"><img src="http://feeds.pocari.org/~a/clpocariorg?i=0IC3Ma" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=6pMjssci"><img src="http://feeds.pocari.org/~f/clpocariorg?i=6pMjssci" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=uZIPQp4E"><img src="http://feeds.pocari.org/~f/clpocariorg?i=uZIPQp4E" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=ZS9djKjU"><img src="http://feeds.pocari.org/~f/clpocariorg?i=ZS9djKjU" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-12-15-1.html">
 <title>PEAR::setErrorHandling でエラー処理を行なう</title>
 <link>http://cl.pocari.org/2007-12-15-1.html</link>
 <description>PEAR パッケージのエラー処理ですが、よくあるパターンとしては以下のような書き方をすると思います。$result = $mdb-&amp;gt;query('SELECT * FROM table');if (PEAR::isError($result)) { die($result-&amp;gt;getMessage());} エラー処理の数が少ない場合はこれでいいのですが、多くなってくると可読性が悪くなります。 この場合、PEAR::setErrorHandling() を使うことで以下のように簡潔に書くことができます。PEAR::setErrorHandling(PEAR_ERRO...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-12-15T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;PEAR パッケージのエラー処理ですが、よくあるパターンとしては以下のような書き方をすると思います。<br />
</p>
<p class="code"><span class="synStatement">$</span><span class="synIdentifier">result</span> <span class="synStatement">=</span> <span class="synStatement">$</span><span class="synIdentifier">mdb</span><span class="synType">-&gt;</span>query<span class="synSpecial">(</span>'<span class="synConstant">SELECT * FROM table</span>'<span class="synSpecial">)</span>;<br />
<span class="synStatement">if</span> <span class="synSpecial">(</span>PEAR<span class="synStatement">::</span>isError<span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">result</span><span class="synSpecial">))</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">die</span><span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">result</span><span class="synType">-&gt;</span>getMessage<span class="synSpecial">())</span>;<br />
<span class="synSpecial">}</span><br />
</p>
<p>
<br />
&nbsp;&nbsp;エラー処理の数が少ない場合はこれでいいのですが、多くなってくると可読性が悪くなります。<br />
<br />
&nbsp;&nbsp;この場合、PEAR::setErrorHandling() を使うことで以下のように簡潔に書くことができます。<br />
</p>
<p class="code">PEAR<span class="synStatement">::</span>setErrorHandling<span class="synSpecial">(</span>PEAR_ERROR_DIE<span class="synSpecial">)</span>;<br />
<br />
<span class="synStatement">$</span><span class="synIdentifier">mdb2</span><span class="synType">-&gt;</span>query<span class="synSpecial">(</span>'<span class="synConstant">SELECT * FROM table</span>'<span class="synSpecial">)</span>;<br />
<span class="synComment">// PEAR:isError() を使わなくていい</span><br />
</p>
<p>
<br />
&nbsp;&nbsp;この書き方は、マニュアルによると「PEAR_Error の生成時に、エラーメッセージが出力され、スクリプトが終了します。」ということになります。<br />
<br />
&nbsp;&nbsp;エラーが発生したら、ログを出力して終了したいという場合は、以下のようにコールバックを利用することができます。<br />
</p>
<p class="code">PEAR<span class="synStatement">::</span>setErrorHandling<span class="synSpecial">(</span>PEAR_ERROR_CALLBACK, '<span class="synConstant">handleError</span>'<span class="synSpecial">)</span>;<br />
<br />
<span class="synPreProc">function</span> handleError<span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">error</span><span class="synSpecial">)</span><br />
<span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synPreProc">require_once</span> '<span class="synConstant">Log.php</span>';<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">log</span> <span class="synType">= &amp;</span><span class="synIdentifier">Log</span><span class="synStatement">::</span>singleton<span class="synSpecial">(</span>'<span class="synConstant">file</span>', '<span class="synConstant">error.log</span>'<span class="synSpecial">)</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">log</span><span class="synType">-&gt;</span>err<span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">error</span><span class="synType">-&gt;</span>getMessage<span class="synSpecial">())</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">exit</span><span class="synSpecial">(</span>'<span class="synConstant">エラー</span>'<span class="synSpecial">)</span>;<br />
<span class="synSpecial">}</span><br />
<br />
<span class="synStatement">$</span><span class="synIdentifier">mdb2</span><span class="synType">-&gt;</span>query<span class="synSpecial">(</span>'<span class="synConstant">SELECT * FROM table</span>'<span class="synSpecial">)</span>;<br />
</p>
<p>
<br />
&nbsp;&nbsp;PEAR パッケージをよく使う場合には便利です。<br />
<br />
<span class="section">- PEAR::setErrorHandling()</span><br />
&nbsp;&nbsp;<a href="http://pear.php.net/manual/ja/core.pear.pear.seterrorhandling.php">http://pear.php.net/manual/ja/core.pear.pear.seterrorhandling.php</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=BqajcY"><img src="http://feeds.pocari.org/~a/clpocariorg?i=BqajcY" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=AMeP6wjd"><img src="http://feeds.pocari.org/~f/clpocariorg?i=AMeP6wjd" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=5xwmIhMl"><img src="http://feeds.pocari.org/~f/clpocariorg?i=5xwmIhMl" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=S4rnjPM5"><img src="http://feeds.pocari.org/~f/clpocariorg?i=S4rnjPM5" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-12-02-1.html">
 <title>PEAR::Pager で Digg っぽいページャを作る</title>
 <link>http://cl.pocari.org/2007-12-02-1.html</link>
 <description>UI Patterns で紹介されているように Digg のページャは見た目にも綺麗だし、わかりやすいと思います。 以下の画像が Digg のページャです。 [Digg Pager] そこで、PEAR::Pager を使って Digg っぽいページャを作ってみました。- スクリーンショット [PEAR::Pager Digg Pager]- デモページ http://pocari.org/demo/digg-pager/ 完全に一緒というわけではありませんが、これくらいならば結構簡単に作ることができました。 ソースは以下のようになります。&lt;?phprequire_once 'Pager...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-12-02T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;<a href="http://ui-patterns.com/">UI Patterns</a> で<a href="http://ui-patterns.com/pattern/Pagination">紹介されている</a>ように <a href="http://digg.com/">Digg</a> のページャは見た目にも綺麗だし、わかりやすいと思います。<br />
&nbsp;&nbsp;以下の画像が Digg のページャです。<br />
<br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/digg-pager.png" alt="Digg Pager" title="Digg Pager" /><br />
<br />
&nbsp;&nbsp;そこで、PEAR::Pager を使って Digg っぽいページャを作ってみました。<br />
<br />
<span class="section">- スクリーンショット</span><br />
&nbsp;&nbsp;<img src="http://cl.pocari.org/./images/pear-pager-digg-pager.png" alt="PEAR::Pager Digg Pager" title="PEAR::Pager Digg Pager" /><br />
<br />
<span class="section">- デモページ</span><br />
&nbsp;&nbsp;<a href="http://pocari.org/demo/digg-pager/">http://pocari.org/demo/digg-pager/</a><br />
<br />
&nbsp;&nbsp;完全に一緒というわけではありませんが、これくらいならば結構簡単に作ることができました。<br />
<br />
&nbsp;&nbsp;ソースは以下のようになります。<br />
</p>
<p class="code"><span class="synSpecial">&lt;?php</span><br />
<span class="synPreProc">require_once</span> '<span class="synConstant">Pager/Pager.php</span>';<br />
<br />
<span class="synStatement">$</span><span class="synIdentifier">params</span> <span class="synStatement">=</span> <span class="synType">array</span><span class="synSpecial">(</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">mode</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">sliding</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">perPage</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> <span class="synConstant">10</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">delta</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> <span class="synConstant">5</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">separator</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">curPageLinkClassName</span>'&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">current</span>',<br />
<span class="synComment">//&nbsp;&nbsp;上記はこれと同じ意味</span><br />
<span class="synComment">//&nbsp;&nbsp;'curPageSpanPre'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; '&lt;span class=&quot;current&quot;&gt;',</span><br />
<span class="synComment">//&nbsp;&nbsp;'curPageSpanPost'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; '&lt;/span&gt;',</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">prevImg</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">&amp;#171; Previous</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">nextImg</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Next &amp;#187;</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">firstPagePre</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">firstPagePost</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">lastPagePre</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">lastPagePost</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">spacesBeforeSeparator</span>' <span class="synStatement">=&gt;</span> <span class="synConstant">0</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">spacesAfterSeparator</span>'&nbsp;&nbsp;<span class="synStatement">=&gt;</span> <span class="synConstant">0</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">totalItems</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> <span class="synConstant">2180</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">altFirst</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Go to page 1</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">altPrev</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Go to Previous Page</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">altNext</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Go to Next Page</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">altLast</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Go to Last Page</span>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;'<span class="synConstant">altPage</span>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">=&gt;</span> '<span class="synConstant">Go to page</span>',<br />
<span class="synSpecial">)</span>;<br />
<br />
<span class="synStatement">$</span><span class="synIdentifier">pager</span> <span class="synType">=&amp;</span> Pager<span class="synStatement">::</span>factory<span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">params</span><span class="synSpecial">)</span>;<br />
<span class="synStatement">$</span><span class="synIdentifier">links</span> <span class="synStatement">=</span> <span class="synStatement">$</span><span class="synIdentifier">pager</span><span class="synType">-&gt;</span>getLinks<span class="synSpecial">()</span>;<br />
<span class="synStatement">$</span><span class="synIdentifier">page_range</span> <span class="synStatement">=</span> <span class="synStatement">$</span><span class="synIdentifier">pager</span><span class="synType">-&gt;</span>getPageRangeByPageId<span class="synSpecial">()</span>;<br />
<span class="synStatement">$</span><span class="synIdentifier">page_range</span> <span class="synStatement">=</span> <span class="synIdentifier">range</span><span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">page_range</span><span class="synSpecial">[</span><span class="synConstant">0</span><span class="synSpecial">]</span>, <span class="synStatement">$</span><span class="synIdentifier">page_range</span><span class="synSpecial">[</span><span class="synConstant">1</span><span class="synSpecial">])</span>;<br />
<br />
<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">=</span> '';<br />
<span class="synStatement">if</span> <span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">pages</span>'<span class="synSpecial">]</span> <span class="synStatement">!=</span> ''<span class="synSpecial">)</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// 前のページ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">if</span> <span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">back</span>'<span class="synSpecial">]</span> <span class="synStatement">!=</span> ''<span class="synSpecial">)</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// クラスを付ける</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> <span class="synIdentifier">str_replace</span><span class="synSpecial">(</span>'<span class="synConstant">&lt;a href</span>', '<span class="synConstant">&lt;a class=&quot;nextprev&quot; href</span>', <span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">back</span>'<span class="synSpecial">])</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span> <span class="synStatement">else</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> '<span class="synConstant">&lt;span class=&quot;nextprev&quot;&gt;</span>' <span class="synStatement">.</span> <span class="synStatement">$</span><span class="synIdentifier">pager</span><span class="synType">-&gt;</span>getOption<span class="synSpecial">(</span>'<span class="synConstant">prevImg</span>'<span class="synSpecial">)</span> <span class="synStatement">.</span> '<span class="synConstant">&lt;/span&gt;</span>';<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// 最初のページ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">if</span> <span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">first</span>'<span class="synSpecial">]</span> <span class="synStatement">!=</span> '' <span class="synStatement">&amp;&amp;</span> <span class="synStatement">!</span><span class="synIdentifier">in_array</span><span class="synSpecial">(</span><span class="synConstant">1</span>, <span class="synStatement">$</span><span class="synIdentifier">page_range</span><span class="synSpecial">))</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> <span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">first</span>'<span class="synSpecial">]</span> <span class="synStatement">.</span> '<span class="synConstant">&lt;span&gt;....&lt;/span&gt;</span>';<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// ページ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> <span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">pages</span>'<span class="synSpecial">]</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// 最後のページ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">if</span> <span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">last</span>'<span class="synSpecial">]</span> <span class="synStatement">!=</span> '' <span class="synStatement">&amp;&amp;</span> <span class="synStatement">!</span><span class="synIdentifier">in_array</span><span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">pager</span><span class="synType">-&gt;</span>numPages<span class="synSpecial">()</span>, <span class="synStatement">$</span><span class="synIdentifier">page_range</span><span class="synSpecial">))</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> '<span class="synConstant">&lt;span&gt;....&lt;/span&gt;</span>' <span class="synStatement">.</span> <span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">last</span>'<span class="synSpecial">]</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// 次のページ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">if</span> <span class="synSpecial">(</span><span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">next</span>'<span class="synSpecial">]</span> <span class="synStatement">!=</span> ''<span class="synSpecial">)</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synComment">// クラスを付ける</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> <span class="synIdentifier">str_replace</span><span class="synSpecial">(</span>'<span class="synConstant">&lt;a href</span>', '<span class="synConstant">&lt;a class=&quot;nextprev&quot; href</span>', <span class="synStatement">$</span><span class="synIdentifier">links</span><span class="synSpecial">[</span>'<span class="synConstant">next</span>'<span class="synSpecial">])</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span> <span class="synStatement">else</span> <span class="synSpecial">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="synStatement">$</span><span class="synIdentifier">link</span> <span class="synStatement">.=</span> '<span class="synConstant">&lt;span class=&quot;nextprev&quot;&gt;</span>' <span class="synStatement">.</span> <span class="synStatement">$</span><span class="synIdentifier">pager</span><span class="synType">-&gt;</span>getOption<span class="synSpecial">(</span>'<span class="synConstant">nextImg</span>'<span class="synSpecial">)</span> <span class="synStatement">.</span> '<span class="synConstant">&lt;/span&gt;</span>';<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synSpecial">}</span><br />
<span class="synSpecial">}</span><br />
<span class="synSpecial">?&gt;</span><br />
<span class="synComment">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span class="synComment"> &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">html</span><span class="synIdentifier"> xmlns=</span><span class="synConstant">&quot;http://www.w3.org/1999/xhtml&quot;</span><span class="synIdentifier"> xml:</span><span class="synType">lang</span><span class="synIdentifier">=</span><span class="synConstant">&quot;ja&quot;</span><span class="synIdentifier"> </span><span class="synType">lang</span><span class="synIdentifier">=</span><span class="synConstant">&quot;ja&quot;</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">head</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;</span><span class="synStatement">meta</span><span class="synIdentifier"> </span><span class="synType">http-equiv</span><span class="synIdentifier">=</span><span class="synConstant">&quot;Content-Type&quot;</span><span class="synIdentifier"> </span><span class="synType">content</span><span class="synIdentifier">=</span><span class="synConstant">&quot;text/html; charset=utf-8&quot;</span><span class="synIdentifier"> /&gt;</span><br />
<span class="synPreProc">&nbsp;&nbsp;</span><span class="synIdentifier">&lt;</span><span class="synStatement">link</span><span class="synIdentifier"> </span><span class="synType">rel</span><span class="synIdentifier">=</span><span class="synConstant">&quot;stylesheet&quot;</span><span class="synIdentifier"> </span><span class="synType">type</span><span class="synIdentifier">=</span><span class="synConstant">&quot;text/css&quot;</span><span class="synIdentifier"> </span><span class="synType">href</span><span class="synIdentifier">=</span><span class="synConstant">&quot;style.css&quot;</span><span class="synIdentifier"> /&gt;</span><br />
<span class="synPreProc">&nbsp;&nbsp;</span><span class="synIdentifier">&lt;</span><span class="synStatement">title</span><span class="synIdentifier">&gt;</span>PEAR::Pager で Digg っぽいページャを作るデモ<span class="synIdentifier">&lt;/</span><span class="synStatement">title</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">head</span><span class="synIdentifier">&gt;</span><br />
<br />
<span class="synIdentifier">&lt;</span><span class="synStatement">body</span><span class="synIdentifier">&gt;</span><br />
<br />
<span class="synIdentifier">&lt;</span><span class="synStatement">div</span><span class="synIdentifier"> </span><span class="synType">class</span><span class="synIdentifier">=</span><span class="synConstant">&quot;pager&quot;</span><span class="synIdentifier">&gt;</span><br />
<span class="synSpecial">&lt;?php</span> <span class="synPreProc">echo</span> <span class="synStatement">$</span><span class="synIdentifier">link</span>; <span class="synSpecial">?&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">div</span><span class="synIdentifier">&gt;</span><br />
<br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">body</span><span class="synIdentifier">&gt;</span><br />
<span class="synIdentifier">&lt;/</span><span class="synStatement">html</span><span class="synIdentifier">&gt;</span>
</p>
<p>
<br />
&nbsp;&nbsp;CSS は以下のようになります (Digg のものとほとんど同じです)。<br />
</p>
<p class="code"><span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">margin-top</span>: <span class="synConstant">20px</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">font-size</span>: <span class="synConstant">85%</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">a</span>,<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">span</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">display</span>: <span class="synType">block</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">float</span>: <span class="synType">left</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">margin-right</span>: <span class="synConstant">0.1em</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">padding</span>: <span class="synConstant">0.2em</span> <span class="synConstant">0.5em</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">a</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#105cb6</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">background-color</span>: <span class="synConstant">#fff</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">border</span>: <span class="synConstant">1px</span> <span class="synType">solid</span> <span class="synConstant">#9aafe5</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">text-decoration</span>: <span class="synType">none</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">a</span>:<span class="synPreProc">hover</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#003</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">background-color</span>: <span class="synConstant">#fff</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">border</span>: <span class="synConstant">1px</span> <span class="synType">solid</span> <span class="synConstant">#2e6ab1</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">span</span><span class="synIdentifier">.current</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#fff</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">background-color</span>: <span class="synConstant">#2e6ab1</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">border</span>: <span class="synConstant">1px</span> <span class="synType">solid</span> <span class="synConstant">#2e6ab1</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">font-weight</span>: <span class="synType">bold</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">span</span><span class="synIdentifier">.nextprev</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">border</span>: <span class="synConstant">1px</span> <span class="synType">solid</span> <span class="synConstant">#ddd</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">color</span>: <span class="synConstant">#999</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">background-color</span>: <span class="synConstant">#fff</span>;<br />
<span class="synIdentifier">}</span><br />
<br />
<span class="synStatement">div</span><span class="synIdentifier">.pager</span> <span class="synStatement">a</span><span class="synIdentifier">.nextprev</span> <span class="synIdentifier">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="synType">font-weight</span>: <span class="synType">bold</span>;<br />
<span class="synIdentifier">}</span>
</p>
<p>

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=Vwgnv4"><img src="http://feeds.pocari.org/~a/clpocariorg?i=Vwgnv4" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=9dPmQB55"><img src="http://feeds.pocari.org/~f/clpocariorg?i=9dPmQB55" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=FDWTP5OR"><img src="http://feeds.pocari.org/~f/clpocariorg?i=FDWTP5OR" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=Va9vvpy6"><img src="http://feeds.pocari.org/~f/clpocariorg?i=Va9vvpy6" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-11-16-1.html">
 <title>portupgrade するときに ProFTPD にパッチを当てる</title>
 <link>http://cl.pocari.org/2007-11-16-1.html</link>
 <description>FreeBSD の ProFTPD が 1.3.1_2 にアップデートされていたので、portupgrade でアップデートするためのメモ。 ProFTPD は 1.2.10 あたりから NLST のサポートをやめました。 そのため、FFFTP ではデフォルトの設定ではファイルの一覧が取得できなくなりました。 そこで、ProFTPD NLST パッチ を当てて、portupgrade します。- ProFTPD NLST パッチ http://www.hayasoft.com/haya/linux/proftpd_nlst_patch.html# cd /usr/ports/distfile...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-11-16T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;FreeBSD の ProFTPD が 1.3.1_2 にアップデートされていたので、portupgrade でアップデートするためのメモ。<br />
<br />
&nbsp;&nbsp;ProFTPD は 1.2.10 あたりから NLST のサポートをやめました。<br />
&nbsp;&nbsp;そのため、FFFTP ではデフォルトの設定ではファイルの一覧が取得できなくなりました。<br />
<br />
&nbsp;&nbsp;そこで、ProFTPD NLST パッチ を当てて、portupgrade します。<br />
<br />
<span class="section">- ProFTPD NLST パッチ</span><br />
&nbsp;&nbsp;<a href="http://www.hayasoft.com/haya/linux/proftpd_nlst_patch.html">http://www.hayasoft.com/haya/linux/proftpd_nlst_patch.html</a><br />
</p>
<blockquote>
<p>
# cd /usr/ports/distfiles<br />
# wget <a href="http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.3.1-nlst-ffftp.patch">http://www.hayasoft.com/haya/linux/proftpd-nlst-patch/proftpd-1.3.1-nlst-f ...</a><br />
# vi /usr/ports/ftp/proftpd/Makefile.local
</p>
</blockquote>
<p class="code"><span class="synIdentifier">PATCHFILES </span>+= proftpd-1.3.1-nlst-ffftp.patch<br />
<span class="synIdentifier">PATCH_DIST_STRIP </span>= -p1<br />
<span class="synIdentifier">NO_CHECKSUM </span>= yes
</p>
<blockquote>
<p>
# portupgrade proftpd
</p>
</blockquote>
<p>
&nbsp;&nbsp;または、すでにアップデートした後ならば<br />
</p>
<blockquote>
<p>
# portupgrade -rf proftpd
</p>
</blockquote>
<p>
- ref.: FreeBSD の qmail ports にエレガントにパッチ適用<br />
&nbsp;&nbsp;<a href="http://www.pochi.cc/~sasaki/chalow/2005-06-03-2.html">http://www.pochi.cc/~sasaki/chalow/2005-06-03-2.html</a><br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=uiI1wb"><img src="http://feeds.pocari.org/~a/clpocariorg?i=uiI1wb" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=yqLw6B51"><img src="http://feeds.pocari.org/~f/clpocariorg?i=yqLw6B51" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=uTHAACZx"><img src="http://feeds.pocari.org/~f/clpocariorg?i=uTHAACZx" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=vcrMFFLA"><img src="http://feeds.pocari.org/~f/clpocariorg?i=vcrMFFLA" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-11-11-1.html">
 <title>Vim をタスクトレイから起動する VimTray をリリースしました</title>
 <link>http://cl.pocari.org/2007-11-11-1.html</link>
 <description>VimTray という Vim をタスクトレイから起動する Windows アプリケーションを作ってみました。 実は、8 月くらいにすでに作り終わっていたのですが、バグが残っていたのでアナウンスしていませんでした。 今日突然直したくなったので直して、アナウンスすることにします。 VimTray は、タスクトレイに駐屯して Vim を起動するという単純なことしかできません。 [VimTray] アイコンをダブルクリックすると Vim が開きます。右クリックすると上記のようなメニューが表示されます。 ちょっと変わった機能として、mru.vim という、いわゆる最近使ったファイルを管理するプラグイ...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-11-11T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;VimTray という Vim をタスクトレイから起動する Windows アプリケーションを作ってみました。<br />
&nbsp;&nbsp;実は、8 月くらいにすでに作り終わっていたのですが、バグが残っていたのでアナウンスしていませんでした。<br />
&nbsp;&nbsp;今日突然直したくなったので直して、アナウンスすることにします。<br />
<br />
&nbsp;&nbsp;VimTray は、タスクトレイに駐屯して Vim を起動するという単純なことしかできません。<br />
<br />
&nbsp;&nbsp;<img src="http://vimtray.googlecode.com/svn/trunk/vimtray.png" alt="VimTray" title="VimTray" /><br />
<br />
&nbsp;&nbsp;アイコンをダブルクリックすると Vim が開きます。右クリックすると上記のようなメニューが表示されます。<br />
<br />
&nbsp;&nbsp;ちょっと変わった機能として、<a href="http://www.vim.org/scripts/script.php?script_id=521">mru.vim</a> という、いわゆる最近使ったファイルを管理するプラグインを使うと、上記のようにメニューに最近使ったファイルがリストされます。<br />
<br />
&nbsp;&nbsp;あと、Vim 7.0 以上を使っている場合は、ファイルをタブで開くようにすることもできます。<br />
<br />
&nbsp;&nbsp;<img src="http://vimtray.googlecode.com/svn/trunk/vimtray-config.png" alt="VimTray" title="VimTray" /><br />
<br />
&nbsp;&nbsp;VimTray は Google Code の Project Hosting で配布しています。<br />
&nbsp;&nbsp;ライセンスは、修正 BSD ライセンスです。<br />
<br />
- vimtray - Google Code<br />
&nbsp;&nbsp;<a href="http://code.google.com/p/vimtray/">http://code.google.com/p/vimtray/</a><br />
<br />
&nbsp;&nbsp;バイナリのダウンロードやソースのダウンロードも上記 Google Code Project Hosting からお願いします。<br />
<br />
&nbsp;&nbsp;Windows 環境で Vim を利用している方は、是非お試しください。<br />
<br />
&nbsp;&nbsp;なお、Project Hosting は Subversion が使えるので svn でソースをチェックアウトすることができます。<br />
&nbsp;&nbsp;最新版を取得するには、<a href="http://vimtray.googlecode.com/svn/trunk/">http://vimtray.googlecode.com/svn/trunk/</a> をチェックアウトしてください。<br />
</p>
<blockquote>
<p>
$ svn checkout <a href="http://vimtray.googlecode.com/svn/trunk/">http://vimtray.googlecode.com/svn/trunk/</a> vimtray
</p>
</blockquote>
<p>
&nbsp;&nbsp;開発言語は、あまり慣れていない Delphi 7 で、Windows XP (SP2) 上でコンパイルしています。<br />

 
<p><a href="http://feeds.pocari.org/~a/clpocariorg?a=5hAemQ"><img src="http://feeds.pocari.org/~a/clpocariorg?i=5hAemQ" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.pocari.org/~f/clpocariorg?a=OtA12zOM"><img src="http://feeds.pocari.org/~f/clpocariorg?i=OtA12zOM" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=Yo8lNpoC"><img src="http://feeds.pocari.org/~f/clpocariorg?i=Yo8lNpoC" border="0"></img></a> <a href="http://feeds.pocari.org/~f/clpocariorg?a=n49h8HhU"><img src="http://feeds.pocari.org/~f/clpocariorg?i=n49h8HhU" border="0"></img></a>
</div>]]></content:encoded>
</item>

<item rdf:about="http://cl.pocari.org/2007-11-04-1.html">
 <title>XAMPP に含まれる Apache，MySQL，PHP のバージョンの遷移</title>
 <link>http://cl.pocari.org/2007-11-04-1.html</link>
 <description>今年もまた約一年ぶりに調査。もはやこの情報が役に立つかどうかは不明ですが…… XAMPP  リリース日  Apache 2.x  MySQL 4.x  MySQL 5.x  PHP 4.x  PHP 5.x 0.9  2003-07-22  2.0.47  4.0.14   4.3.3 rc2   1.0  2003-09-03  2.0.47  4.0.14   4.3.3   1.1  2003-10-13  2.0.47  4.0.16   4.3.3   1.2  2003-11-04  2.0.48  4.0.16   4.3.4   1.3  2004-02-10  2.0.49...</description>
 <dc:creator>SUNAOKA Norifumi </dc:creator>
 <dc:date>2007-11-04T23:59:59+09:00</dc:date>
 <content:encoded><![CDATA[
  &nbsp;&nbsp;今年もまた約一年ぶりに調査。もはやこの情報が役に立つかどうかは不明ですが……<br />
<br />
</p>
<table><tr><td> XAMPP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> リリース日 </td><td> Apache 2.x </td><td> MySQL 4.x </td><td> MySQL 5.x </td><td> PHP 4.x&nbsp;&nbsp;&nbsp;</td><td> PHP 5.x</td></tr><tr><td> 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2003-07-22 </td><td> 2.0.47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.14&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.3 rc2 </td><td> </td></tr><tr><td> 1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2003-09-03 </td><td> 2.0.47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.14&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2003-10-13 </td><td> 2.0.47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.16&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2003-11-04 </td><td> 2.0.48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.16&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-02-10 </td><td> 2.0.49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.18&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-03-25 </td><td> 2.0.49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.18&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.4.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-04-06 </td><td> 2.0.49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.18&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.4.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-06-12 </td><td> 2.0.49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.20a&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.4.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-07-03 </td><td> 2.0.50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.20&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> </td></tr><tr><td> 1.4.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-07-14 </td><td> 2.0.50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.20&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.0</td></tr><tr><td> 1.4.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-08-16 </td><td> 2.0.50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.20&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.1</td></tr><tr><td> 1.4.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-09-18 </td><td> 2.0.51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.21&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.1</td></tr><tr><td> 1.4.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-09-25 </td><td> 2.0.51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.21&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.2</td></tr><tr><td> 1.4.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-10-02 </td><td> 2.0.52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.0.21&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.2</td></tr><tr><td> 1.4.10&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-12-05 </td><td> 2.0.52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.2</td></tr><tr><td> 1.4.11&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2004-12-25 </td><td> 2.0.52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.10&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.3</td></tr><tr><td> 1.4.12&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-02-20 </td><td> 2.0.53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.10&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.3</td></tr><tr><td> 1.4.13&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-04-10 </td><td> 2.0.54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.11&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.11&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.4</td></tr><tr><td> 1.4.14&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-06-19 </td><td> 2.0.54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.12&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.3.11&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.4</td></tr><tr><td> 1.4.15&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-08-14 </td><td> 2.0.54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.13&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.4</td></tr><tr><td> 1.4.16&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-10-03 </td><td> 2.0.54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.1.14&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.5</td></tr><tr><td> 1.5.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2005-11-06 </td><td> 2.0.55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.15&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.5</td></tr><tr><td> 1.5.0-pl1 </td><td> 2006-01-08 </td><td> 2.0.55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.15&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.1-pl1 </td><td> 5.0.5</td></tr><tr><td> 1.5.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-01-08 </td><td> 2.2.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.18&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.1-pl1 </td><td> 5.1.1</td></tr><tr><td> 1.5.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-04-26 </td><td> 2.2.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.20&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.2-pl1 </td><td> 5.1.2</td></tr><tr><td> 1.5.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-05-28 </td><td> 2.2.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.21&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.2-pl1 </td><td> 5.1.4</td></tr><tr><td> 1.5.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-09-10 </td><td> 2.2.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.24a&nbsp;&nbsp;&nbsp;</td><td> 4.4.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.1.6</td></tr><tr><td> 1.5.4a&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-10-04 </td><td> 2.2.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.24a&nbsp;&nbsp;&nbsp;</td><td> 4.4.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.1.6</td></tr><tr><td> 1.5.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2006-11-26 </td><td> 2.2.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.27&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.0</td></tr><tr><td> 1.6.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-02-18 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.33&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.1</td></tr><tr><td> 1.6.0a&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-02-21 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.33&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.1</td></tr><tr><td> 1.6.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-04-17 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.37&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.1</td></tr><tr><td> 1.6.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-05-28 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.41&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.2</td></tr><tr><td> 1.6.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-07-22 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.45&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.3</td></tr><tr><td> 1.6.3a&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 2007-07-26 </td><td> 2.2.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.0.45&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 4.4.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td> 5.2.3</td></tr><tr><td> 1.6.4&