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

<channel>
	<title>rider.withgod.jp - blog</title>
	<atom:link href="http://rider.withgod.jp/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://rider.withgod.jp/blog</link>
	<description>日記というよりメモ</description>
	<lastBuildDate>Mon, 21 Nov 2011 02:44:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MacBook Pro (15-inch Early 2011) geekbench</title>
		<link>http://rider.withgod.jp/blog/2011/11/21_113809/</link>
		<comments>http://rider.withgod.jp/blog/2011/11/21_113809/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 02:38:09 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[diary]]></category>
		<category><![CDATA[etc]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1032</guid>
		<description><![CDATA[職場で2011 MBP15(メモリ8G、SSD256)買ったので、何時ものごとく？geekbenchやってみた。 geekbench結果 Summary Section Description ScoreGeekbenc [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/01/15_050826/' rel='bookmark' title='geekbench'>geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/28_035102/' rel='bookmark' title='新しいPC購入, geekbench'>新しいPC購入, geekbench</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>職場で2011 MBP15(メモリ8G、SSD256)買ったので、<a href="/blog/?s=geekbench">何時も</a>のごとく？geekbenchやってみた。</p>
<h2>geekbench結果</h2>
<h3>Summary</h3>
<table>
<tr>
<th>Section</th>
<th>Description</th>
<p><TH>Score</TH><TH>Geekbench Score</TH><br />
  </tr>
<tr>
<td>Integer</td>
<td>Processor integer performance</td>
<td>7229</td>
<td rowspan="4">8801</td>
</tr>
<tr>
<td>Floating Point</td>
<td>Processor floating point performance</td>
<td>13087</td>
</tr>
<tr>
<td>Memory</td>
<td>Memory performance</td>
<td>5476</td>
</tr>
<tr>
<td>Stream</td>
<td>Memory bandwidth performance</td>
<td>5954</td>
</tr>
<tr>
<td colspan="4">Geekbench 2.2.3 for Mac OS X x86 (32-bit)</td>
</tr>
</table>
<h3>System Information</h3>
<table>
<tr>
<th>Operating System</th>
<td colspan="3">Mac OS X 10.7.2 (Build 11C74)</td>
</tr>
<tr>
<th>Model</th>
<td>MCJ Co.,Ltd. P55-SD</td>
<th>Motherboard</th>
<td>MacBook Pro (15-inch Early 2011)</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">Intel Core i7-2635QM</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">GenuineIntel Family 6 Model 42 Stepping 7</td>
</tr>
<tr>
<th>Processors</th>
<td>4</td>
<th>Threads 8</th>
</tr>
<tr>
<th>Cores</th>
<td>4</td>
<th>Memory</th>
<td>8.00 GB 1333 MHz DDR3</td>
</tr>
<tr>
<th>Processor Frequency</th>
<td>2.00 GHz</td>
<th>Bus Frequency</th>
<td>100 MHz</td>
</tr>
<tr>
<th>L1 Instruction</th>
<td>32.0 KB x 4	</td>
<th>L1 Data Cache</th>
<td>32.0 KB x 4	</td>
</tr>
<tr>
<th>L2 Cache</th>
<td>256 KB x 4	</td>
<th>L3 Cache</th>
<td>6.00 MB</td>
</tr>
<tr>
<th>BIOS</th>
<td colspan="3">Apple Inc. MBP81.88Z.0047.B24.1110141131</td>
</tr>
</table>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/01/15_050826/' rel='bookmark' title='geekbench'>geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/28_035102/' rel='bookmark' title='新しいPC購入, geekbench'>新しいPC購入, geekbench</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/11/21_113809/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>less/lvでソースコードに色をつける on OSX</title>
		<link>http://rider.withgod.jp/blog/2011/11/10_114749/</link>
		<comments>http://rider.withgod.jp/blog/2011/11/10_114749/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 02:47:49 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1026</guid>
		<description><![CDATA[lessでソースコードに色をつける 筆者は試していないが、GNU Source-highlightはMacでも利用できるんじゃないかと思うので、Mac方面の人もぜひ試して頂きたいと思う。 これは便利そうだってことで、os [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/08/05_120002/' rel='bookmark' title='メモ'>メモ</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/13_174432/' rel='bookmark' title='google code を svn =&gt; hg'>google code を svn => hg</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://nippondanji.blogspot.com/2011/11/less.html" title="lessでソースコードに色をつける">lessでソースコードに色をつける</a></p>
<blockquote><p>筆者は試していないが、GNU Source-highlightはMacでも利用できるんじゃないかと思うので、Mac方面の人もぜひ試して頂きたいと思う。</p></blockquote>
<p>これは便利そうだってことで、osxで試す。</p>
<p>brewでinstall</p>
<pre class="brush: bash; title: ; notranslate">
$ brew install source-highlight
</pre>
<p>自分はlessじゃなくてlvを常用しているけど、とりあえずlessでお試し</p>
<pre class="brush: bash; title: ; notranslate">
$ LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh %s' less -R ./server.js
</pre>
<p>問題なく色づけされてる</p>
<p><a href="http://rider.withgod.jp/blog/wp-content/uploads/2011/11/d6ba81a56c7121a2d81871ecd9c856bc.png"><img src="http://rider.withgod.jp/blog/wp-content/uploads/2011/11/d6ba81a56c7121a2d81871ecd9c856bc-300x219.png" alt="" title="スクリーンショット 2011-11-10 11.30.31" width="300" height="219" class="aligncenter size-medium wp-image-1028" /></a></p>
<p>俺はlv常用なのでこんな感じに起動して確認。</p>
<pre class="brush: bash; title: ; notranslate">
/usr/local/bin/src-hilite-lesspipe.sh ./server.js | lv -c
</pre>
<p>んー、LESSOPEN相当が見当たらない、、</p>
<p>幸いにして俺もvimでwombat使ってるのでcolor schemeも使わせて貰おう。(人-)</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/08/05_120002/' rel='bookmark' title='メモ'>メモ</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/13_174432/' rel='bookmark' title='google code を svn =&gt; hg'>google code を svn => hg</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/11/10_114749/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_Twitter_Uploader</title>
		<link>http://rider.withgod.jp/blog/2011/10/20_001347/</link>
		<comments>http://rider.withgod.jp/blog/2011/10/20_001347/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 15:13:47 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1023</guid>
		<description><![CDATA[10ヶ月ぐらい掛けてついにリリースｗ kiddyに絡まれてうざかったのと、途中いろいろ忙しかったので馬鹿みたいに期間が空いてしまった。 まぁプライベートで適当にやってるとこんなもんさ(俺は) http://pear.ph [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>10ヶ月ぐらい掛けてついにリリースｗ<br />
kiddyに絡まれてうざかったのと、途中いろいろ忙しかったので馬鹿みたいに期間が空いてしまった。<br />
まぁプライベートで適当にやってるとこんなもんさ(俺は)</p>
<p><a href="http://pear.php.net/package/Services_Twitter_Uploader/" title="Services_Twitter_Uploader">http://pear.php.net/package/Services_Twitter_Uploader/</a></p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/10/20_001347/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git submoduleを一括更新</title>
		<link>http://rider.withgod.jp/blog/2011/09/23_182207/</link>
		<comments>http://rider.withgod.jp/blog/2011/09/23_182207/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 09:22:07 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1018</guid>
		<description><![CDATA[忘れそうなのでメモ。 は間違い。 foreachで全部更新してから、update。 updateは嘘でした、updateしたら戻ってまう。 Related posts:debian unstableでgccの切り替え


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/01_183536/' rel='bookmark' title='debian unstableでgccの切り替え'>debian unstableでgccの切り替え</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>忘れそうなのでメモ。</p>
<pre class="brush: plain; title: ; notranslate">git submodule update</pre>
<p>は間違い。</p>
<pre class="brush: plain; title: ; notranslate">
git submodule foreach 'git pull origin master'
git commit -a
</pre>
<p>foreachで全部更新してから、<del datetime="2011-10-19T15:10:31+00:00">update</del>。<br />
updateは嘘でした、updateしたら戻ってまう。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/01_183536/' rel='bookmark' title='debian unstableでgccの切り替え'>debian unstableでgccの切り替え</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/09/23_182207/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian unstableでgccの切り替え</title>
		<link>http://rider.withgod.jp/blog/2011/09/01_183536/</link>
		<comments>http://rider.withgod.jp/blog/2011/09/01_183536/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 09:35:36 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1013</guid>
		<description><![CDATA[意外なことに、 gcc が alternativesに登録されてなかったので、手動で登録して切り替え。 &#8211;slaveで連動して g++, gcovとかも切り替える。 これで後は でおｋ Related pos [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/23_182207/' rel='bookmark' title='git submoduleを一括更新'>git submoduleを一括更新</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/17_164049/' rel='bookmark' title='debian unstable上のhudsonでnetwork unreachable'>debian unstable上のhudsonでnetwork unreachable</a></li>
<li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>意外なことに、 gcc が alternativesに登録されてなかったので、手動で登録して切り替え。</p>
<pre class="brush: bash; title: ; notranslate">
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 43 --slave /usr/bin/g++ g++ /usr/bin/g++-4.3 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.3
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.4
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 45 --slave /usr/bin/g++ g++ /usr/bin/g++-4.5 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 46 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.6
</pre>
<p>&#8211;slaveで連動して g++, gcovとかも切り替える。</p>
<p>これで後は</p>
<pre class="brush: bash; title: ; notranslate">
update-alternatives --config gcc
alternative gcc (/usr/bin/gcc を提供) には 4 個の選択肢があります。

  選択肢    パス            優先度  状態
------------------------------------------------------------
  0            /usr/bin/gcc-4.6   46        自動モード
  1            /usr/bin/gcc-4.3   43        手動モード
  2            /usr/bin/gcc-4.4   44        手動モード
* 3            /usr/bin/gcc-4.5   45        手動モード
  4            /usr/bin/gcc-4.6   46        手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 3
</pre>
<p>でおｋ</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/23_182207/' rel='bookmark' title='git submoduleを一括更新'>git submoduleを一括更新</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/17_164049/' rel='bookmark' title='debian unstable上のhudsonでnetwork unreachable'>debian unstable上のhudsonでnetwork unreachable</a></li>
<li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/09/01_183536/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>snow leopard 64bit で gpyp</title>
		<link>http://rider.withgod.jp/blog/2011/03/29_181851/</link>
		<comments>http://rider.withgod.jp/blog/2011/03/29_181851/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 09:18:51 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1003</guid>
		<description><![CDATA[cocoaypが更新止まってて残念だなーって所でgpypがよさげ、って事で動かそうとするも断念 mac portsは使うのやめたので、homebrewにてトライ。 試した環境: とりあえずxpとかypmとかのすでにサービ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/03/29_153036/' rel='bookmark' title='snow leopard 64bit + homebrew で gettext, readline のメモ'>snow leopard 64bit + homebrew で gettext, readline のメモ</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://yptool.ninpou.jp/">cocoayp</a>が更新止まってて残念だなーって所で<a href="http://my.opera.com/crckyl/blog/index.dml/tag/gpyp3">gpyp</a>がよさげ、<s>って事で動かそうとするも断念</s></p>
<p>mac portsは使うのやめたので、homebrewにてトライ。</p>
<p>試した環境: </p>
<pre class="brush: bash; title: ; notranslate">
% uname -ar
Darwin crowbar.withgood.net 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:16:10 PST 2011; root:xnu-1504.9.37~1/RELEASE_X86_64 x86_64
~% gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~123/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)
~%brew info boost gtk+ gtkmm libiconv
boost 1.46.1

http://www.boost.org

/usr/local/Cellar/boost/1.46.1 (7731 files, 192M)

http://github.com/mxcl/homebrew/commits/master/Library/Formula/boost.rb

gtk+ 2.24.3

http://www.gtk.org/

Depends on: pkg-config, glib, jpeg, libtiff, gdk-pixbuf, pango, jasper, atk
/usr/local/Cellar/gtk+/2.24.3 (975 files, 33M)

http://github.com/mxcl/homebrew/commits/master/Library/Formula/gtk+.rb

gtkmm 2.18.2

http://www.gtkmm.org/

Depends on: pkg-config, glibmm, gtk+, libsigc++, pangomm
/usr/local/Cellar/gtkmm/2.18.2 (1705 files, 60M)

http://github.com/mxcl/homebrew/commits/master/Library/Formula/gtkmm.rb

libiconv 1.13.1

http://www.gnu.org/software/libiconv/

/usr/local/Cellar/libiconv/1.13.1 (58 files, 2.7M)

http://github.com/mxcl/homebrew/commits/master/Library/Formula/libiconv.rb
</pre>
<p>とりあえずxpとかypmとかのすでにサービス終了している奴らを抜く patch。</p>
<pre class="brush: plain; title: ; notranslate">
*** ./gpyp-3.8.1.org/src/icons/favicon/Makefile.am	2010-02-27 10:25:34.000000000 +0900
--- ./gpyp-3.8.1/src/icons/favicon/Makefile.am	2011-03-29 13:41:44.000000000 +0900
***************
*** 12,19 ****
  	wget &quot;http://www.google.com/favicon.ico&quot; -O $@ || rm $@
  #kp.ico:
  #	wget &quot;http://kp.podzone.net/favicon.ico&quot; -O $@ || rm $@
! xp.ico:
! 	wget &quot;http://extremeyp.ath.cx/favicon.ico&quot; -O $@ || rm $@
  cp.ico:
  	wget &quot;http://cp.webhop.net/favicon.ico&quot; -O $@ || rm $@
  rp.ico:
--- 12,19 ----
  	wget &quot;http://www.google.com/favicon.ico&quot; -O $@ || rm $@
  #kp.ico:
  #	wget &quot;http://kp.podzone.net/favicon.ico&quot; -O $@ || rm $@
! #xp.ico:
! #	wget &quot;http://extremeyp.ath.cx/favicon.ico&quot; -O $@ || rm $@
  cp.ico:
  	wget &quot;http://cp.webhop.net/favicon.ico&quot; -O $@ || rm $@
  rp.ico:
***************
*** 23,30 ****
  	convert $&lt; $@ || rm $&lt;
  #kp.png: kp.ico
  #	convert $&lt; -delete 0 $@ || rm $&lt;
! xp.png: xp.ico
! 	convert $&lt; -delete 1 $@ || rm $&lt;
  cp.png: cp.ico
  	convert $&lt; -delete 0 $@ || rm $&lt;
  rp.png: rp.ico
--- 23,30 ----
  	convert $&lt; $@ || rm $&lt;
  #kp.png: kp.ico
  #	convert $&lt; -delete 0 $@ || rm $&lt;
! #xp.png: xp.ico
! #	convert $&lt; -delete 1 $@ || rm $&lt;
  cp.png: cp.ico
  	convert $&lt; -delete 0 $@ || rm $&lt;
  rp.png: rp.ico
diff -cr ./gpyp-3.8.1.org/src/icons/favicon/Makefile.in ./gpyp-3.8.1/src/icons/favicon/Makefile.in
*** ./gpyp-3.8.1.org/src/icons/favicon/Makefile.in	2010-03-09 21:59:17.000000000 +0900
--- ./gpyp-3.8.1/src/icons/favicon/Makefile.in	2011-03-29 13:41:53.000000000 +0900
***************
*** 421,428 ****
  	wget &quot;http://www.google.com/favicon.ico&quot; -O $@ || rm $@
  #kp.ico:
  #	wget &quot;http://kp.podzone.net/favicon.ico&quot; -O $@ || rm $@
! xp.ico:
! 	wget &quot;http://extremeyp.ath.cx/favicon.ico&quot; -O $@ || rm $@
  cp.ico:
  	wget &quot;http://cp.webhop.net/favicon.ico&quot; -O $@ || rm $@
  rp.ico:
--- 421,428 ----
  	wget &quot;http://www.google.com/favicon.ico&quot; -O $@ || rm $@
  #kp.ico:
  #	wget &quot;http://kp.podzone.net/favicon.ico&quot; -O $@ || rm $@
! #xp.ico:
! #	wget &quot;http://extremeyp.ath.cx/favicon.ico&quot; -O $@ || rm $@
  cp.ico:
  	wget &quot;http://cp.webhop.net/favicon.ico&quot; -O $@ || rm $@
  rp.ico:
***************
*** 432,439 ****
  	convert $&lt; $@ || rm $&lt;
  #kp.png: kp.ico
  #	convert $&lt; -delete 0 $@ || rm $&lt;
! xp.png: xp.ico
! 	convert $&lt; -delete 1 $@ || rm $&lt;
  cp.png: cp.ico
  	convert $&lt; -delete 0 $@ || rm $&lt;
  rp.png: rp.ico
--- 432,439 ----
  	convert $&lt; $@ || rm $&lt;
  #kp.png: kp.ico
  #	convert $&lt; -delete 0 $@ || rm $&lt;
! #xp.png: xp.ico
! #	convert $&lt; -delete 1 $@ || rm $&lt;
  cp.png: cp.ico
  	convert $&lt; -delete 0 $@ || rm $&lt;
  rp.png: rp.ico
diff -cr ./gpyp-3.8.1.org/src/yellowpage.cpp ./gpyp-3.8.1/src/yellowpage.cpp
*** ./gpyp-3.8.1.org/src/yellowpage.cpp	2010-03-02 13:36:29.000000000 +0900
--- ./gpyp-3.8.1/src/yellowpage.cpp	2011-03-29 14:04:12.000000000 +0900
***************
*** 656,666 ****
  void YPCollection::on_load_default() {
    conf::Collection&lt;YellowPage, YPCollection&gt;::on_load_default();
    add_item(IconManager::CP,       &quot;CP&quot;,  &quot;http://cp.webhop.net/&quot;);
!   add_item(IconManager::XP,       &quot;XP&quot;,  &quot;http://extremeyp.ath.cx/&quot;);
    add_item(IconManager::YP4G,     &quot;TP&quot;,  &quot;http://temp.orz.hm/yp/&quot;);
    add_item(IconManager::RP,       &quot;RP&quot;,  &quot;http://retro.servegame.org/&quot;);
!   add_item(IconManager::YP4G,     &quot;SP&quot;,  &quot;http://bayonet.aa0.netvolante.jp/sp/&quot;);
!   add_item(IconManager::CP,       &quot;YPM&quot;, &quot;http://cp.webhop.net/ypm/&quot;);
    add_item(IconManager::PEERCAST, &quot;YP&quot;,  &quot;http://yp.peercast.org/&quot;, YPTYPE_XML, false);
  }

--- 656,666 ----
  void YPCollection::on_load_default() {
    conf::Collection&lt;YellowPage, YPCollection&gt;::on_load_default();
    add_item(IconManager::CP,       &quot;CP&quot;,  &quot;http://cp.webhop.net/&quot;);
!   //add_item(IconManager::XP,       &quot;XP&quot;,  &quot;http://extremeyp.ath.cx/&quot;);
    add_item(IconManager::YP4G,     &quot;TP&quot;,  &quot;http://temp.orz.hm/yp/&quot;);
    add_item(IconManager::RP,       &quot;RP&quot;,  &quot;http://retro.servegame.org/&quot;);
!   //add_item(IconManager::YP4G,     &quot;SP&quot;,  &quot;http://bayonet.aa0.netvolante.jp/sp/&quot;);
!   //add_item(IconManager::CP,       &quot;YPM&quot;, &quot;http://cp.webhop.net/ypm/&quot;);
    add_item(IconManager::PEERCAST, &quot;YP&quot;,  &quot;http://yp.peercast.org/&quot;, YPTYPE_XML, false);
  }
</pre>
<p>上記patchを当てて、次で一応buildは出来た。</p>
<pre class="brush: bash; title: ; notranslate">
LIBS=&quot;-L/usr/local/Cellar/libiconv/1.13.1/lib -liconv &quot; ./configure --disable-ss-xss --disable-dbus
LIBS=&quot;-L/usr/local/Cellar/libiconv/1.13.1/lib -liconv &quot; make
</pre>
<p>が、実行するとエラーはいて segfault.<br />
簡単なgtk使ったアプリを試したら一応動いてる。</p>
<p>とここまで記事を書いて、エラーログを書こうと再度実行したら動いた謎。<br />
NSZombieEnabledとかするのって gcc(非xcode環境で)でするのってどうするんじゃーとか色々謎だったのでもう諦めようと思ってたんだが・・・・</p>
<p>で、かなり必死こいて入れてみたけど使ってません。<br />
X11を起動する分には良いんだけど、gtkは(何が悪いんだろうね、まぁフォント綺麗にするとかは後回しでしょう・・・)いくら何でも文字汚すぎ・・・linuxとかでなら良いんじゃないかな、ちょっと見た感じだと機能豊富そう。</p>
<p>一応SS追加</p>
<p style="text-align: center; "><a href="http://www.flickr.com/photos/40605210@N06/5575766173/" title="スクリーンショット（2011-03-31 14.40.26）2" rel="" class=""><img alt="スクリーンショット（2011-03-31 14.40.26）2" src="http://farm6.static.flickr.com/5174/5575766173_537520c6ca.jpg" class="alignnone"></a></p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/03/29_153036/' rel='bookmark' title='snow leopard 64bit + homebrew で gettext, readline のメモ'>snow leopard 64bit + homebrew で gettext, readline のメモ</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/03/29_181851/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>snow leopard 64bit + homebrew で gettext, readline のメモ</title>
		<link>http://rider.withgod.jp/blog/2011/03/29_153036/</link>
		<comments>http://rider.withgod.jp/blog/2011/03/29_153036/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 06:30:36 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[memo]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=1000</guid>
		<description><![CDATA[何も考えずに brew install readline gettext だけだと不味かったのでメモ。 まず readline は入れただけだと libedit と競合するから brew link readline する [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/03/29_181851/' rel='bookmark' title='snow leopard 64bit で gpyp'>snow leopard 64bit で gpyp</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>何も考えずに brew install readline gettext だけだと不味かったのでメモ。</p>
<pre class="brush: plain; title: ; notranslate">
brew install readline
brew link readline
</pre>
<p>まず readline は入れただけだと libedit と競合するから brew link readline する。</p>
<p>そのまま brew install gettext だと問題が出るので次のようにして universal binary にしておく(readlineはデフォでuniversal binary)</p>
<pre class="brush: plain; title: ; notranslate">brew edit gettext</pre>
<p>して、systemの前に</p>
<pre class="brush: plain; title: ; notranslate">ENV.universal_binary</pre>
<p>を追加する、こんな感じ</p>
<pre class="brush: plain; title: ; notranslate">
    ENV.universal_binary
    system &quot;./configure&quot;, &quot;--disable-dependency-tracking&quot;, &quot;--disable-debug&quot;,
                          &quot;--prefix=#{prefix}&quot;,
</pre>
<p>後はgettext同様に</p>
<pre class="brush: plain; title: ; notranslate">
brew install gettext
brew link gettext
</pre>
<p>これって readline だけの問題じゃなくて、homebrewで作ると大抵のものが universal binaryで出来ないっぽくて、その辺に転がってるソースをbuildすると刺さる、刺さる。<br />
1個か2個ぐらいだろって思ってたけど、結構な数をし直さないと駄目かも・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/03/29_181851/' rel='bookmark' title='snow leopard 64bit で gpyp'>snow leopard 64bit で gpyp</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/03/29_153036/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_OAuthUploader改めServices_Twitter_Uploader</title>
		<link>http://rider.withgod.jp/blog/2011/03/03_143309/</link>
		<comments>http://rider.withgod.jp/blog/2011/03/03_143309/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 05:33:09 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=996</guid>
		<description><![CDATA[以前書いたServices_OAuthUploaderっていうパッケージ。 Pearにproposalして色々やりとりした結果、名前も改めてやっと出せそうな感じ。 途中でいわゆるkiddyに絡まれてやる気無くしたりもした [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://rider.withgod.jp/blog/2010/12/16_193353/">以前書いた</a>Services_OAuthUploaderっていうパッケージ。<br />
Pearにproposalして色々やりとりした結果、名前も改めてやっと出せそうな感じ。<br />
途中でいわゆるkiddyに絡まれてやる気無くしたりもしたけど、tillってメンテナがsupportしてくれたおかげでやっとリリースにこぎつけられそう。</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/03/03_143309/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google data api で google calendar でカレンダーの新規作成が出来ない</title>
		<link>http://rider.withgod.jp/blog/2011/01/02_162307/</link>
		<comments>http://rider.withgod.jp/blog/2011/01/02_162307/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 07:23:07 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=986</guid>
		<description><![CDATA[ircでkaepapaがgoogle calendarの新規作成がどうの言ってたので、試してみたら色々はまったのでメモ。 とりあえずprotocol仕様書を眺めながら、自分でphpでcurlを使って実装してみたけど、カレ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/01/26_120001/' rel='bookmark' title='google codeの不満点の解消'>google codeの不満点の解消</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ircでkaepapaがgoogle calendarの新規作成がどうの言ってたので、試してみたら色々はまったのでメモ。</p>
<p>とりあえず<a href="http://code.google.com/intl/ja/apis/gdata/docs/2.0/reference.html">protocol仕様書</a>を眺めながら、自分で<a href="https://gist.github.com/762362">phpでcurlを使って実装してみた</a>けど、カレンダーの一覧の取得は出来るけど、新規作成は出来ない(zfの実装も一緒)<br />
ちなみにgoogle data apiはv1、v2が有り、<a href="http://framework.zend.com/manual/en/zend.gdata.html">zfの実装</a>はv1。<br />
動かした観想的にv1は色々動かない部分が出てきてるっぽい(新規作成周りとか)。</p>
<p>ドキュメント見ながらやってても限界を感じたので、googleの<a href="http://code.google.com/p/gdata-java-client/">java client</a>を落としてきて、リファレンスをコピペして作って実行=>問題なく毎回作れる。<br />
実行時には <a href="http://code.google.com/p/google-collections/">google collections</a>が必要になるけど、jar無いみたいなので作ったのを置いておきます。  <a href="/src/google-collect-snapshot_20110101.jar">google-collect-snapshot_20110101.jar</a></p>
<p>仕方ないので、<a href="http://ja.wikipedia.org/wiki/Netcat">nc</a>を nc -l -p 8080 とかして、リクエスト先を変えてrequestをdumpしてみる。<br />
dumpした結果を見ると、xmlのフォーマットがprotocol仕様書に書いているのと若干違う(仕様書は2005の所がリクエストは2007とか。<br />
取りあえずリクエスト内容とか、cache周りのヘッダとかも全部揃えて送ってみると、返事待つ状態になって無応答で、curlが * Empty reply from server と吐いてプログラムが終了する。(パラメータが不正な場合はエラー画面が帰ってきてました、Content-lengthが無いとか、認証が不正とかはちゃんとエラー画面が返る)</p>
<p>この状態でCookie送るようにしたりとか、色々試しても動作しなかったので、<a href="https://gist.github.com/762364">picasaのアルバム作成を作って</a>試してみると問題なく作成完了。</p>
<p>この辺からhttp clientの実装を疑いだして、<a href="https://gist.github.com/762363">HTTP_Request2で実装しなおしてみる</a>と、無応答では無くカレンダー一覧が帰ってきて終了するようになる(Endpointが一緒なので、リクエストが不正か何かで処理が一覧取得になっちゃうような気がする)</p>
<p>ここで試しに <a href="http://hc.apache.org/httpclient-3.x/">commons-httpclient3</a>を使ってためしに<a href="https://gist.github.com/762367">実装してみる</a>と、新規作成完了・・・<br />
Location周りが上手く動作してくれないので、自分でレスポンス解析してリクエスト投げてます。</p>
<p>って事で最終的にphpで動いてませんが、まとめ。</p>
<ul>
<li>クライアントの実装の問題っぽい(サーバが一度Location返してくるからそのfollowとか、partical response,request辺りとか？)</li>
<li>v2を使った方が良いです</li>
<li>ドキュメントは信用しない方が良さそう</li>
<li>phpで動かせてません(picasaは動いてるんだけど、同じ実装でcalendarは動かない)</li>
</li>
<h4>コード一覧</h4>
<ul>
<li><a href="https://gist.github.com/762362">php curlを使ったgoogle calendar 新規作成の実装</a></li>
<li><a href="https://gist.github.com/762363">php http_request2を使ったgoogle calendar 新規作成の実装</a></li>
<li><a href="https://gist.github.com/762364">php curlを使ったpicasaのアルバム作成の実装</a></li>
<li><a href="https://gist.github.com/762367">commons-httpclient3 を使ったgoogle calendar新規作成の実装</a></li>
</ul>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/01/26_120001/' rel='bookmark' title='google codeの不満点の解消'>google codeの不満点の解消</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2011/01/02_162307/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery使ってcallback関数を利用時のthisへのアクセス</title>
		<link>http://rider.withgod.jp/blog/2010/12/29_212650/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/29_212650/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 12:26:50 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=974</guid>
		<description><![CDATA[文章にするのは難しかったので、とりあえずソース do1で上手くいかなくて、$.ajaxの場合はcontextで指定、$.getの場合はjQuery.proxyで指定出来るらしいのでdo2で実現。 ってかこんな面倒なの？っ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/11/17_172726/' rel='bookmark' title='cygwin付属のgitでssh経由のcloneが出来ない件'>cygwin付属のgitでssh経由のcloneが出来ない件</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/04/16_161511/' rel='bookmark' title='tig.rb のtimeline(post)が出てこないのに対応する patch'>tig.rb のtimeline(post)が出てこないのに対応する patch</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>文章にするのは難しかったので、とりあえずソース</p>
<pre class="brush: jscript; class-name: html-script:true; title: ; notranslate">
&lt;html&gt;
	&lt;head&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot;&gt;
			var Fuga = function(){};
			Fuga.prototype = {
				hoge: 'fuga',
				do1: function() {
					$.get('/src/fuga.txt', null, function() {
						console.dir(this.hoge);
					}, 'text');
				},
				do2: function() {
					$.get('/src/fuga.txt', null, jQuery.proxy(
					function(data, status, xhr)  {
						console.dir(this.hoge);
					}, this), 'text');
				},
				do3: function() {
					var self = this;
					$.get('/src/fuga.txt', null, jQuery.proxy(
					function(data, status, xhr)  {
						console.dir(self.hoge);
					}, this), 'text');
				}
			}
			var f = new Fuga();
			f.do1();
			f.do2();
			f.do3();
		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
		sample
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>do1で上手くいかなくて、$.ajaxの場合はcontextで指定、$.getの場合はjQuery.proxyで指定出来るらしいのでdo2で実現。<br />
ってかこんな面倒なの？って思うんだけど、どーなんだろ、javascriptに詳しい人ヘルプ。</p>
<p>他に思いつくのは、無名関数でラップして引数として渡すとか、ダサイ。</p>
<p>@mumoshu からの助言で do3 を追加、何か適当な予約変数に突っ込んでくれりゃいいのに・・・</p>
<p>これ、jqueryに限ったわけじゃなく、クロージャ使ったときのthisの参照先の問題か。<br />
まぁタイトルはそのままで。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/11/17_172726/' rel='bookmark' title='cygwin付属のgitでssh経由のcloneが出来ない件'>cygwin付属のgitでssh経由のcloneが出来ない件</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/04/16_161511/' rel='bookmark' title='tig.rb のtimeline(post)が出てこないのに対応する patch'>tig.rb のtimeline(post)が出てこないのに対応する patch</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/29_212650/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javaのjsonライブラリのデコーダのベンチマーク</title>
		<link>http://rider.withgod.jp/blog/2010/12/23_184647/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/23_184647/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 09:46:47 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=967</guid>
		<description><![CDATA[メジャーそうなライブラリのベンチマークを取ってみました。 jsonorg(twitter4j.internal 2.1.9 snapshot) jsonic gson jackson maven経由で取れる最新版で試して [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>メジャーそうなライブラリのベンチマークを取ってみました。</p>
<ul>
<li>jsonorg(twitter4j.internal 2.1.9 snapshot)</li>
<li>jsonic</li>
<li>gson</li>
<li>jackson</li>
</ul>
<p>maven経由で取れる最新版で試してます(jsonicは無いので、1.2.5を突っ込んで動かしてます)</p>
<p>対象となるデータはTwitterのpublictimelineから拾ってきたデータ(20件の配列で中身連想配列)<br />
コードはgithubに<a href="https://github.com/withgod/json_bench">置きました。</a><br />
jsonorgはPOJOに変換とか便利な機能は付いてなかったです(json-libは付いてるみたいだけど)。<br />
JSONエンコーダのインスタンスを作るものに関しては、一度生成した物を使いまわしています。<br />
自分のマシンだと結構早い方だと思うので、sakuraのvpsで動かしました。</p>
<h3>計測結果サマリ</h3>
<table>
<tr>
<th>ライブラリ</th>
<th>1回目</th>
<th>1000のアベレージ</th>
</tr>
<tr>
<td>jsonic</td>
<td>440</td>
<td>2.1835</td>
</tr>
<tr>
<td>gson</td>
<td>184</td>
<td>4.2541</td>
</tr>
<tr>
<td>jackson</td>
<td>313</td>
<td>0.7926</td>
</tr>
<tr>
<td>jsonorg</td>
<td>37</td>
<td>1.7359</td>
</tr>
</table>
<p>@shin1ogawa経由で見つけた<a href="http://www.pshared.net/diary/20101222.html#p01">計測同様</a>、jacksonがぶっちぎり。<br />
jsonorgの1回目がやたら早いけど、内部実装がどうなってるかまでは追いかけて無いからgetHogeしたときに具体的な事してるとかだったらどうしよ・・・ｗ</p>
<h3>計測結果ベタ</h3>
<pre class="brush: plain; title: ; notranslate">
bench start [jsonic]
first
         start [1293096329073]
         end   [1293096329513]
         diff  [440]
--
10000 loop
         start   [1293096329515]
         end     [1293096351350]
         diff    [21835]
         average [2.1835]
bench end [jsonic]
----
bench start [gson]
first
         start [1293096351352]
         end   [1293096351536]
         diff  [184]
--
10000 loop
         start   [1293096351540]
         end     [1293096394081]
         diff    [42541]
         average [4.2541]
bench end [gson]
----
bench start [jackson]
first
         start [1293096394082]
         end   [1293096394395]
         diff  [313]
--
10000 loop
         start   [1293096394396]
         end     [1293096402322]
         diff    [7926]
         average [0.7926]
bench end [jackson]
----
bench start [jsonorg]
first
         start [1293096402324]
         end   [1293096402361]
         diff  [37]
--
10000 loop
         start   [1293096402362]
         end     [1293096419721]
         diff    [17359]
         average [1.7359]
bench end [jsonorg]
----
</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/23_184647/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mod_proxyでHTTP_HOSTの値がローカルアドレス(バランシング先に設定したURL)で困る件</title>
		<link>http://rider.withgod.jp/blog/2010/12/23_030417/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/23_030417/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 18:04:17 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=962</guid>
		<description><![CDATA[よく巷で見かける設定だとこんな感じで これだと $_SERVER['HTTP_HOST'] が 192.168.0.10 になっちゃうので、場合によっては困っちゃう。 自作の場合は気をつければいいんだけど、他人のを動かす [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>よく巷で見かける設定だとこんな感じで</p>
<pre class="brush: plain; title: ; notranslate">
ProxyRequests Off
ProxyPass        /fizzbuzz http://192.168.0.10
ProxyPassReverse /fizzbuzz http://192.168.0.10
</pre>
<p>これだと $_SERVER['HTTP_HOST'] が 192.168.0.10 になっちゃうので、場合によっては困っちゃう。<br />
自作の場合は気をつければいいんだけど、他人のを動かすと結構はまる(xoops, wordpress)どーすっかなーと思ったらコレを追加するだけでよかった。</p>
<pre class="brush: plain; title: ; notranslate">
ProxyPreserveHost On
</pre>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/23_030417/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。</title>
		<link>http://rider.withgod.jp/blog/2010/12/19_212038/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/19_212038/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 12:20:38 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=941</guid>
		<description><![CDATA[表題のまんま。 対象フレームワーク CodeIgniter 1.7.3 ZendFramework 1.11.1 CakePHP 1.3.6 KohanaPHP 3.0.8 って取り終えてからsymfony抜けてるのに気 [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>表題のまんま。</p>
<h3>対象フレームワーク</h3>
<ul>
<li>CodeIgniter 1.7.3</li>
<li>ZendFramework 1.11.1</li>
<li>CakePHP 1.3.6</li>
<li>KohanaPHP 3.0.8</li>
</ul>
<p>って取り終えてからsymfony抜けてるのに気付いた・・・まぁいいや。</p>
<h3>ソース</h3>
<p>とりあえずgithubにおいてみた<br />
<a href="https://github.com/withgod/php_framework_benchmark">https://github.com/withgod/php_framework_benchmark<br />
</a><br />
cakephpはやたらファイルが多いのでいったん保留。<br />
git add したときに空のフォルダがすっ飛んでるのでそのままじゃ動かないかも。</p>
<h3>実行環境</h3>
<ul>
<li>vmware上のdebian lenny(2.6.26-2-amd64)</li>
<li>多すぎても実際に動かすサーバとの差異が出そうなので、コア2個、メモリ2G(ホストはCorei7,Mem8G)</li>
<li>PHP 5.2.16-0.dotdeb.0</li>
<li>Apache 2.2.9-10+lenny8</li>
</ul>
<p>計測側は 別マシン(GigaBaseLan経由)のdebian sidからabでポチっと。<br />
<del datetime="2010-12-20T15:40:09+00:00">計測に使ったコードも一応晒すかと思ったんだけど、CakePHPがappsだけうまく切り離すのが面倒で良く解らなかったので止めた。</del><br />
テンプレートは全部で使ってません。<br />
#zfはzf createして出来たコードに iniでresources.frontController.noViewRenderer = 1 して Controllerで echo &#8216;helloworld&#8217;みたいな感じ。</p>
<h3>計測方法</h3>
<p>こんなシェル回すだけ、、、つって最初はかなり適当にやってたんだけど、値がおかしいので設定をもう少しつめました。</p>
<p>具体的には下記のような感じ。</p>
<h4>apache</h4>
<pre class="brush: plain; title: ; notranslate">
&lt;IfModule mpm_prefork_module&gt;
    StartServers        100
    MinSpareServers     100
    MaxSpareServers     100
    MaxClients          410
    MaxRequestsPerChild   0
&lt;/IfModule&gt;
ServerLimit 410
</pre>
<p>接続数が足りてなくてスループット出ないので変更、評価アプリが単純なのと相まって凄いスループット出てる・・・ｗ<br />
最初から全部400とか立ち上げるとSwapOut発生しまくりだったのでとりあえずこんな感じで。<br />
再起動時にワーニング出るんだけど(gracefullだと駄目です、ちゃんとstop/start出来るコマンドで。してもWarningで照るんだけどね・・・)、ps axf | grep -c &#8216;apache2&#8242;するとちゃんと立ち上がってるみたいなので気にしない。</p>
<h4>ulimit file descriptors</h4>
<p>上限から変更。<br />
/etc/security/limits.conf に次を追加</p>
<pre class="brush: plain; title: ; notranslate">
www-data hard nofile 10240
www-data soft nofile 10240
noname hard nofile 10240
noname soft nofile 10240
</pre>
<p>/etc/pam.d/login  に次を追加</p>
<pre class="brush: plain; title: ; notranslate">
session required pam_limits.so
</pre>
<p>再ログインすれば有効になります、面倒なら再起動で。<br />
上だけでも連続してテストを行うとクライアント側でTIME_WAIT、サーバ側でSYN_SENTとか溜まるので、計測取るスクリプトで sleep 90 してお茶を濁してます(確かdebian？の初期値は60秒、変更したいとなるとKernel再構築だったはず。)</p>
<h4>計測用スクリプト</h4>
<pre class="brush: bash; title: ; notranslate">
#!/bin/sh

ts=`date &quot;+%Y%m%d%H%M%S&quot;`
prefix='apc_'
doRun() {
	ab -c  10 -n 1000 $1 &gt; ./out/$prefix$ts-$2-010-1000.txt
	sleep 90;
	ab -c  30 -n 1000 $1 &gt; ./out/$prefix$ts-$2-030-1000.txt
	sleep 90;
	ab -c  50 -n 1000 $1 &gt; ./out/$prefix$ts-$2-050-1000.txt
	sleep 90;
	ab -c 100 -n 1000 $1 &gt; ./out/$prefix$ts-$2-100-1000.txt
	sleep 90;
	ab -c 200 -n 2000 $1 &gt; ./out/$prefix$ts-$2-200-2000.txt
	sleep 90;
	ab -c 300 -n 3000 $1 &gt; ./out/$prefix$ts-$2-300-3000.txt
	sleep 90;
	ab -c 400 -n 4000 $1 &gt; ./out/$prefix$ts-$2-400-4000.txt
}

doRun 'http://192.168.0.155/apps/cakephp/hello_world/' cake;
doRun 'http://192.168.0.155/apps/kohana/' kohana;
doRun 'http://192.168.0.155/apps/codeigniter/index.php/hello' ci;
doRun 'http://192.168.0.155/apps/zf/helloworld/public' zf;
doRun 'http://192.168.0.155/phpinfo' phpinfo;
</pre>
<p>何度か回してみたところ、apcなしだとcakeで300多重以上、ciで400多重以上の時にabが異常終了するので取れて無いです(サーバTAT遅延でタイムアウトするとab自体が落ちる？よーわからん)</p>
<h4>集計用スクリプト(ログ集計+gnuplot用のスクリプト吐き出し)</h4>
<p>ついでに↓で出してる集計につかったperlスクリプトはこんな感じ。<br />
perlでログざーっと漁ってgnuplotへ食わすファイルに落とす、ついでにココに貼り付ける用のデータも生成。</p>
<pre class="brush: perl; title: ; notranslate">
#!/usr/bin/perl

use strict;
use Data::Dumper;
use File::Basename;
use IO::File;
use POSIX;

my $now = strftime &quot;%Y%m%d%H%M%S&quot;, localtime;

my %data = ('apc' =&gt; {}, 'noapc' =&gt; {});
for my $f (glob './out/*.txt') {
	my $b = basename($f);
	my ($prefix, $target, $con, $num) = ($1, $2, $3, $4) if ($b =~ /([a-z]+)?_?\d+\-([a-z]+)\-(\d+)-(\d+)\.txt$/);
	$prefix = 'noapc' unless $prefix;
	$data{&quot;$prefix&quot;}-&gt;{$target} = {} unless (exists $data{&quot;$prefix&quot;}-&gt;{$target});
	my $val = `grep &quot;Requests per second&quot; $f | awk '{print \$4}'`;
	$val =~ s/[\r\n]//;
	$data{&quot;$prefix&quot;}-&gt;{$target}-&gt;{$con} = $val;
}

for my $j (keys %data) {
	print &quot;$j\t010\t030\t050\t100\t200\t300\t400\n&quot;;
	my $plot = &lt;&lt;&quot;_EOT_&quot;;
set term png
set output './${now}_$j.png'
set title '$j graph'
set xlabel 'concurrency'
set ylabel 'request/per second'
set grid
plot \\
_EOT_
	for my $k (keys %{$data{$j}}) {
		print &quot;$k&quot;;
		my $fname = &quot;${j}_${k}.txt&quot;;
		my $fh = IO::File-&gt;new(&quot;&gt; ./graph/${now}_$fname&quot;);
		for my $l (sort keys %{$data{$j}-&gt;{$k}}) {
			print &quot;\t&quot; . $data{$j}-&gt;{$k}-&gt;{$l} ;
			print $fh $l . &quot; &quot; . $data{$j}-&gt;{$k}-&gt;{$l} . &quot;\n&quot;;
		}
		$fh-&gt;close;
		$plot .= &quot;\&quot;./${now}_$fname\&quot; using 1:2 title \&quot;$k\&quot; with lines, \\\n&quot;;
		print &quot;\n&quot;
	}
	$plot =~ s/, \\$//;
	my $graph_fh = IO::File-&gt;new(&quot;&gt; ./graph/${now}_graph_$j.plot&quot;);
	print $graph_fh $plot;
	$graph_fh-&gt;close;
}
</pre>
<h3>計測結果</h3>
<h4>without apc</h4>
<p style="text-align: center; "><a href="http://www.flickr.com/photos/40605210@N06/5277548104/" title="20101220163454_noapc" rel="" class=""><img alt="20101220163454_noapc" src="http://farm6.static.flickr.com/5089/5277548104_464f7178ff.jpg" class="alignnone"></a></p>
<table>
<tr>
<th>noapc</th>
<th>010</th>
<th>030</th>
<th>050</th>
<th>100</th>
<th>200</th>
<th>300</th>
<th>400</th>
</tr>
<tr>
<td>kohana</td>
<td>117.09</td>
<td>237.91</td>
<td>231.50</td>
<td>234.80</td>
<td>143.91</td>
<td>197.61</td>
</tr>
<tr>
<td>ci</td>
<td>137.77</td>
<td>203.66</td>
<td>201.19</td>
<td>201.80</td>
<td>138.70</td>
</tr>
<tr>
<td>phpinfo</td>
<td>137.11</td>
<td>926.16</td>
<td>932.02</td>
<td>924.78</td>
<td>489.71</td>
<td>438.99</td>
<td>342.95</td>
</tr>
<tr>
<td>cake</td>
<td>59.10</td>
<td>69.85</td>
<td>75.89</td>
<td>76.27</td>
<td>74.55</td>
</tr>
<tr>
<td>zf</td>
<td>134.77</td>
<td>907.97</td>
<td>919.69</td>
<td>931.49</td>
<td>588.52</td>
<td>435.18</td>
<td>345.51</td>
</tr>
</table>
<h4>with apc</h4>
<p style="text-align: center; "><a href="http://www.flickr.com/photos/40605210@N06/5277548086/" title="20101220163454_apc" rel="" class=""><img alt="20101220163454_apc" src="http://farm6.static.flickr.com/5081/5277548086_a80dc80378.jpg" class="alignnone"></a></p>
<table>
<tr>
<th>apc</th>
<th>010</th>
<th>030</th>
<th>050</th>
<th>100</th>
<th>200</th>
<th>300</th>
<th>400</th>
</tr>
<tr>
<td>kohana</td>
<td>137.00</td>
<td>798.51</td>
<td>825.87</td>
<td>813.94</td>
<td>566.84</td>
<td>314.40</td>
<td>332.66</td>
</tr>
<tr>
<td>ci</td>
<td>146.27</td>
<td>807.87</td>
<td>797.76</td>
<td>803.79</td>
<td>567.05</td>
<td>381.62</td>
<td>247.43</td>
</tr>
<tr>
<td>phpinfo</td>
<td>131.24</td>
<td>929.17</td>
<td>915.39</td>
<td>933.95</td>
<td>588.15</td>
<td>436.91</td>
<td>342.84</td>
</tr>
<tr>
<td>cake</td>
<td>212.97</td>
<td>287.25</td>
<td>287.27</td>
<td>290.76</td>
<td>293.66</td>
<td>200.77</td>
<td>193.22</td>
</tr>
<tr>
<td>zf</td>
<td>135.00</td>
<td>900.23</td>
<td>937.48</td>
<td>937.20</td>
<td>597.30</td>
<td>437.12</td>
<td>344.20</td>
</tr>
</table>
<h3>所感</h3>
<p>接続数が足りなくて最初は全然スループット出て無い。<br />
APC入れない状態で出来てるすげー差は恐らく有効になってるモジュールの差なのかな、cakeは詰め込みまくった状態で、他は全然入ってない状態と予想。<br />
APC入れたらその辺の差がぐっと詰まるっぽいのもそんな感じ？<br />
入れてるapacheとかphpの設定とかはデフォルトだし、その辺を詰めてみると面白いかもしれない(ビジネスロジック部分と違ってこの辺の値は一般的に適応出来るし。　ってことでちょっと詰めてみたんだけど、凄いスループット出てる、まぁ仕方ない。)<br />
ほんとはFrameworkの性能差が見たくてベンチ取ったんだけど、どっちかっつーとapcスゲーになった気が・・・ｗ<br />
あと結果に若干？な部分があるのは、他で負荷掛かってたのかなあ・・それ以外には使わない状態でやったんだけどー・・・<br />
何度か繰り返したアベレージにしないと駄目かも(つっても接続開放とかの絡みで、1回集計に50分ぐらい掛かるからしんどい・・・ｗ)<br />
気が向いたらついでにvmの割り当ても変えてベンチとって見てもいいかもしれない。<br />
zfが鬼のような値出してるけど、phpinfoと変わらない辺りを見るとなーんも入ってないに近いんだろうなあ・・・その辺は中身まで追いかけないと解らんけど、他のFWに比べてすげー緩いから具体的な部品を詰め込まないと値取れない気がする。<br />
apc無しだと性能差が激しいけど、逆にapc入れると殆ど性能差が無いから好きなの使えって感じかなぁ(cakephpはモデル生成が走る、とかって見かけたからその辺改めて見ないと駄目かも (&#8216;A`)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/19_212038/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian unstable上のhudsonでnetwork unreachable</title>
		<link>http://rider.withgod.jp/blog/2010/12/17_164049/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/17_164049/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 07:40:49 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=939</guid>
		<description><![CDATA[mavenのレポジトリにアクセス出来なくてプラグインが落ちてこなかったり、テスト中のソケット生成に失敗しまくる件について解決。 何故か手では動くんだけど・・・ の1を0に変更↓ 再起動できない場合は次も。 Related [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/01_183536/' rel='bookmark' title='debian unstableでgccの切り替え'>debian unstableでgccの切り替え</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/08/05_120002/' rel='bookmark' title='メモ'>メモ</a></li>
<li><a href='http://rider.withgod.jp/blog/2006/01/31_120001/' rel='bookmark' title='[cygwin] apache 1.3.33-2 + php 5.1.2=&gt;4.4.2'>[cygwin] apache 1.3.33-2 + php 5.1.2=>4.4.2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>mavenのレポジトリにアクセス出来なくてプラグインが落ちてこなかったり、テスト中のソケット生成に失敗しまくる件について解決。<br />
何故か手では動くんだけど・・・</p>
<pre class="brush: plain; title: ; notranslate">
/etc/sysctl.d/bindv6only.conf
</pre>
<p>の1を0に変更↓</p>
<pre class="brush: plain; title: ; notranslate">
net.ipv6.bindv6only = 0
</pre>
<p>再起動できない場合は次も。</p>
<pre class="brush: bash; title: ; notranslate">
echo 0 &gt; /proc/sys/net/ipv6/bindv6only
</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/09/01_183536/' rel='bookmark' title='debian unstableでgccの切り替え'>debian unstableでgccの切り替え</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/08/05_120002/' rel='bookmark' title='メモ'>メモ</a></li>
<li><a href='http://rider.withgod.jp/blog/2006/01/31_120001/' rel='bookmark' title='[cygwin] apache 1.3.33-2 + php 5.1.2=&gt;4.4.2'>[cygwin] apache 1.3.33-2 + php 5.1.2=>4.4.2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/17_164049/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_Twitter_Uploaderを使って簡単Post</title>
		<link>http://rider.withgod.jp/blog/2010/12/16_193353/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/16_193353/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 10:33:53 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=931</guid>
		<description><![CDATA[自作自演エントリをでっちあげてみる。 Basic認証が廃止されたせいで、Twitpicやyfrogへのポストが凄く面倒になってる人にお勧めのライブラリ。 javaだと twitter4j.media のお陰で簡単にアップ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/15_234656/' rel='bookmark' title='YFrog Oauth Post 2'>YFrog Oauth Post 2</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>自作自演エントリをでっちあげてみる。</p>
<p>Basic認証が廃止されたせいで、Twitpicやyfrogへのポストが凄く面倒になってる人にお勧めのライブラリ。<br />
javaだと twitter4j.media のお陰で簡単にアップロード出来るのに、お手軽なはずのphpだと出来無いじゃん！って事でt4j.mediaのリファクタ後の勢いに任せて作ってみました。<br />
PHPからOAuth Echoを使って、画像投稿サイト(yfrogは動画も投稿出来るけど)に簡単にPHPから投稿出来るライブラリです。</p>
<p>対応サイトはこんな感じ</p>
<ul>
<li>imgly</li>
<li>plixi</li>
<li>twipple</li>
<li>twitgoo</li>
<li>twitpic</li>
<li>yfrog</li>
<li>mobypicture</li>
<li>twipl</li>
<li>posterous</li>
</ul>
<h3>使い方</h3>
<p><a href="https://github.com/withgod/Services_Twitter_Uploader">Services_Twitter_Uploader</a> から最新版を落としてきて、適当なフォルダに突っ込む。</p>
<h3>必要なモジュール</h3>
<p>HTTP_OAuthとHTTP_Request2。</p>
<pre class="brush: bash; title: ; notranslate">
pear install -f HTTP_OAuth
pear install -f HTTP_Request2
</pre>
<p>で入ってくれるはず。</p>
<h3>コード</h3>
<pre class="brush: php; title: ; notranslate">
require_once &quot;Services/Twitter/Uploader.php&quot;;

$oauth = new HTTP_OAuth_Consumer('APP KEY', 'APP SECRET', 'TOKEN', 'SECRET');

$uploader = Services_Twitter_Uploader::factory('yfrog', $oauth);
//twitpicはAPI KEYが必要 http://dev.twitpic.com/apps/new
//$uploader = Services_Twitter_Uploader::factory('twitpic', $this-&gt;oauth, 'apiKey');
//proxy経由はこう
//$req = new HTTP_Request2();
//$req-&gt;setConfig(array( 'proxy_host' =&gt; 'HOST', 'proxy_port' =&gt; 'PORT'));
//$uploader = Services_OAuthUploader::factory('yfrog', $oauth,  null, $req);

try {
	$url = $uploader-&gt;upload('/path/to/upload.jpg', 'from Services_Twitter_Uploader');
	var_dump($url); // upload後のURL
} catch(Services_Twitter_Uploader_Exception $e) {
	var_dump($e);
}
</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/15_234656/' rel='bookmark' title='YFrog Oauth Post 2'>YFrog Oauth Post 2</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/16_193353/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JSONObjectのgetLongの挙動がおかしい</title>
		<link>http://rider.withgod.jp/blog/2010/12/13_015940/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/13_015940/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 16:59:40 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=923</guid>
		<description><![CDATA[せっかくあるんだし、って事で使わせて貰ってるんだけど動作がおかしいところを見つけたので、@yusukeyに共有するためにポスト。 こんな感じのコードを用意して 実行するとこんな感じに、末尾が1だった場合に落ちてる。 13 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/29_150848/' rel='bookmark' title='twitterの新UIを有効にすると、apiのresultが変わる'>twitterの新UIを有効にすると、apiのresultが変わる</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>せっかくあるんだし、って事で使わせて貰ってるんだけど動作がおかしいところを見つけたので、@yusukeyに共有するためにポスト。</p>
<p>こんな感じのコードを用意して</p>
<pre class="brush: java; title: ; notranslate">
import twitter4j.internal.org.json.JSONObject;

public class JSonTest {
    public static void main(String[] args) throws Exception {
        //http://api.twitter.com/1/statuses/show/00.xml
        String jsonStr1 = &quot;{&quot; +
                &quot;\&quot;k1\&quot;:\&quot;13857270119014401\&quot;,&quot; +
                &quot;\&quot;k2\&quot;:\&quot;13958500480716800\&quot;,&quot; +
                &quot;\&quot;k3\&quot;:\&quot;13958500480716801\&quot;,&quot; + //sonzai sinai
                &quot;\&quot;k4\&quot;:\&quot;13995264494796800\&quot;,&quot; +
                &quot;\&quot;k5\&quot;:\&quot;13117320041865216\&quot;,&quot; +
                &quot;\&quot;k6\&quot;:\&quot;13996071046881280\&quot;&quot; +
                &quot;}&quot;;
        JSONObject json1 = new JSONObject(jsonStr1);
        System.out.println(json1.getLong(&quot;k1&quot;));
        System.out.println(json1.getLong(&quot;k2&quot;));
        System.out.println(json1.getLong(&quot;k3&quot;));
        System.out.println(json1.getLong(&quot;k4&quot;));
        System.out.println(json1.getLong(&quot;k5&quot;));
        System.out.println(json1.getLong(&quot;k6&quot;));
    }
}
</pre>
<p>実行するとこんな感じに、末尾が1だった場合に落ちてる。</p>
<pre>13857270119014400
13958500480716800
13958500480716800
13995264494796800
13117320041865216
13996071046881280</pre>
<p>再現環境<br />
 windows 7 64bit jdk 1.6.0_23<br />
 twitter4j 2.1.4で発生して、2.1.8でも確認。<br />
 mac slでも確認。</p>
<h3>追記</h3>
<p>取りあえず問題点は解った、文字列(&#8220;&#8221;で囲ってる)に対して getLong してるせいで落ちてるみたい。<br />
#全然追ってないけど、getDoubleとか呼び出されてる<br />
jsonがおかしいというか、getLongがおかしいというか・・・<br />
getLongが失敗するか、適切に変換した上で返してほしいなあ、と思って試しに文字列を入れるとnot numberつってExceptionが出るので、コード書いた人的には数値文字列ならちゃんと値返すよ！って思って書いてるような気がする。</p>
<h3>t4jでは問題が無い</h3>
<p>もしかしたら影響有るかも、ってことで@yusukeyに報告上げたけど、特に問題は無いらしい。</p>
<blockquote><p>
@withgod json.orgのライブラリの問題？ですね。Twitter4Jでは JSONObject#getLong() は使っていないです。 twitter4j.internal.util.ParseUtil#getLong(name,json) 使うといいかも。<br />
15分前  YoruFukurouから  withgod宛
</p></blockquote>
<p><a href="http://twitter.com/yusukey/status/14317321774432256">http://twitter.com/yusukey/status/14317321774432256</a><br />
こんな動作に対応するためにそういう実装になってるらしい。</p>
<blockquote><p>
 @withgod そうですそうです。Twitter API は &#8220;100+&#8221; とか返してくることもあるので文字としていったんとっていたんだと思います。<br />
6分前  YoruFukurouから  withgod宛
</p></blockquote>
<p><a href="http://twitter.com/yusukey/status/14321262973157377">http://twitter.com/yusukey/status/14321262973157377</a><br />
そういやそんな動作あったなあ・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/29_150848/' rel='bookmark' title='twitterの新UIを有効にすると、apiのresultが変わる'>twitterの新UIを有効にすると、apiのresultが変わる</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/13_015940/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>makegood を試す</title>
		<link>http://rider.withgod.jp/blog/2010/12/09_155745/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/09_155745/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 06:57:45 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=915</guid>
		<description><![CDATA[俺は基本vim+zsh+screenなんだけど、他の要員の事も考えてよさげな makegoodを試してみる。 環境 win 7 64bit php 5.2.14, xdebug 2.1.0, phpunit 3.5.5  [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/01/08_153613/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチその2'>wordpress 2.9にapcいれた場合のベンチその2</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>俺は基本vim+zsh+screenなんだけど、他の要員の事も考えてよさげな <a href="http://redmine.piece-framework.com/projects/makegood">makegood</a>を試してみる。</p>
<p>環境</p>
<ul>
<li>win 7 64bit</li>
<li>php 5.2.14, xdebug 2.1.0, phpunit 3.5.5</li>
<li>makegod 1.1.0(update site install)</li>
</ul>
<p>動かしてみたのはこないだから書いてる <a href="https://github.com/withgod/Services_OAuthUploader">Services_OAuthUploader</a>を動かしてみた</p>
<p>取りあえず何も考えずmakegodの設定をこうして全てのテスト実行<br />
テスティングフレームワーク PHPUnit<br />
XML設定ファイル /Services_OAuthUploader/tests/phpunit.xml<br />
プリロードスクリプト 空<br />
この状態で動かすと、include_pathの問題で次のエラー</p>
<pre class="brush: plain; title: ; notranslate">

Fatal error: require_once(): Failed opening required 'PHPUnit/Runner/Version.php'  (include_path='.;C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR') in C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\Preparator\PHPUnitPreparator.php on line 38
</pre>
<p>PHP executableでphp.ini指定してあって、include_pathも設定してるんだけどその設定は出てきてない・・・<br />
eclipse経由で php -i とか出来たら確実なんだろうけど、PDT普段から使って無いので解らず。</p>
<p>仕方ないので makegod 側で prepare.php を次のように置いてmakegodの設定を変更</p>
<pre class="brush: plain; title: ; notranslate">
&lt;?php
if (defined('E_DEPRECATED')) {
    error_reporting(E_ALL &amp; ~E_DEPRECATED);
} else {
    error_reporting(E_ALL);
}
//php自体にもStagehand_TestRunnerを以前に入れてるので後回しにしてある(一応最新にはしたけど)
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['PHP_PEAR_INSTALL_DIR']);
</pre>
<p>プリロードスクリプト /Services_OAuthUploader/tests/prepare.php</p>
<p>この状態で実行すると次のエラー</p>
<pre class="brush: plain; title: ; notranslate">
Services_OAuthUploaderTest::testFactory

RuntimeException: PHP Fatal error:  Class 'Stagehand_CLIController' not found in C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\TestRunnerCLIController.php on line 47
PHP Stack trace:
PHP   1. {main}() -:0
PHP   2. require_once() -:162

C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\Runner\PHPUnitRunner.php:115
C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\TestRunner.php:70
C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\TestRunnerCLIController.php:380
C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\TestRunner\TestRunnerCLIController.php:173
C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\PEAR\Stagehand\CLIController.php:101
C:\eclipse_path\plugins\com.piece_framework.makegood.stagehand_testrunner_1.1.0.v201011141637\resources\php\bin\phpunitrunner.php:69
</pre>
<p>何でこうなのかはよく解らんが、適当にgrepして Stagehand\TestRunner\TestRunnerCLIController.php に require_once(&#8216;Stagehand/CLIController.php&#8217;);を付けて上記エラーは対応。<br />
が、この状態で実行しても経過時間がひたすら過ぎてくだけの状態。<br />
他の箇所ならともかく、 testFactory なので何が問題なんだろう・・・と思いつつ取りあえず phpunit.xml を外してみたら動いた。</p>
<p>このエントリを作者に投げてやり取りしたところ、問題点はproccessIsolationらしい。</p>
<blockquote><p>
@iteman:<br />
@withgod 結論としてはStagehand_TestRunnerがprocessIsolationをサポートしていないことが原因ですね。将来的にはMakeGoodからはprocessIsolationは常に無効化するつもりですが。代替手段は提供します。
</p></blockquote>
<p><a href="http://twitter.com/iteman/status/12793420296757248">http://twitter.com/iteman/status/12793420296757248</a></p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/01/08_153613/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチその2'>wordpress 2.9にapcいれた場合のベンチその2</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/09_155745/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Services_OAuthUploader 作った</title>
		<link>http://rider.withgod.jp/blog/2010/12/05_042849/</link>
		<comments>http://rider.withgod.jp/blog/2010/12/05_042849/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 19:28:49 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=910</guid>
		<description><![CDATA[t4jへのpatchの投稿とか、そのまま勢いに任せてリファクタリングとかしてた関係で、oauth echoに対応したuploaderに妙に詳しくなったので、そのままの勢いで Services_OAuthUploader  [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter4j.org/">t4j</a>へのpatchの投稿とか、そのまま勢いに任せてリファクタリングとかしてた関係で、oauth echoに対応したuploaderに妙に詳しくなったので、そのままの勢いで <a href="https://github.com/withgod/Services_OAuthUploader/">Services_OAuthUploader</a> とか作ってみた。</p>
<p>まぁぶっちゃけ<a href="http://twitter4j.org/">t4j</a>のmedia関係をそのままphpに移植したと言っても過言では無いんだけど、まぁその辺はご愛嬌。</p>
<p>とりあえずコード書いて、コメント書いて、テスト書いてみた、ってレベルなのでまだpearへの登録とかはしてない(ってか、仕方しらない)</p>
<p>対応サイトはこんな感じ。</p>
<ul>
<li>imgly</li>
<li>plixi</li>
<li>twipple</li>
<li>twitgoo</li>
<li>twitpic</li>
<li>yfrog</li>
</ul>
<p>使い方は<a href="https://github.com/withgod/Services_OAuthUploader/blob/master/tests/Services/OAuthUploader/OAuthUploaderTest.php">test見て</a>ください、って事で・・・</p>
<p>実装・テスト書くよりも、コメントだとかredmine,hudson周りの方が時間食ってたと思う(&#8216;A`</p>
<p>取りあえず作ってみた、ってレベルなので今後の予定は未定。<br />
何気なく振ってる1.0.0ってのはpear的にはβとかじゃなくて正式版扱いになると思うので、バージョンは明日にでも変えます。<br />
取りあえず test 周りが結構適当なので、その辺を綺麗にしようかな・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/12/05_042849/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>intellij IDEAのフリーカーソルを止める</title>
		<link>http://rider.withgod.jp/blog/2010/11/30_010635/</link>
		<comments>http://rider.withgod.jp/blog/2010/11/30_010635/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 16:06:35 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Win]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=902</guid>
		<description><![CDATA[文末の改行より横に行けちゃうのがキモイ、ってつぶやいてたら@yusukey からmention貰ったのでこっちでも共有。 http://twitter.com/#!/yusukey/status/889484390014 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/11/30_005948/' rel='bookmark' title='intellij IDEA 9をwin7上で64bitで動かす'>intellij IDEA 9をwin7上で64bitで動かす</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>文末の改行より横に行けちゃうのがキモイ、ってつぶやいてたら@yusukey からmention貰ったのでこっちでも共有。</p>
<p><a href="http://twitter.com/#!/yusukey/status/8894843900141568">http://twitter.com/#!/yusukey/status/8894843900141568</a></p>
<blockquote><p>@withgod フリーカーソルは&#8221;caret&#8221;で設定画面を検索すると設定項目が見つかりますよ。cursorだとみつからない(>_<) "Allow placement of caret after end of line"ってやつです</p></blockquote>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/11/30_005948/' rel='bookmark' title='intellij IDEA 9をwin7上で64bitで動かす'>intellij IDEA 9をwin7上で64bitで動かす</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/11/30_010635/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>intellij IDEA 9をwin7上で64bitで動かす</title>
		<link>http://rider.withgod.jp/blog/2010/11/30_005948/</link>
		<comments>http://rider.withgod.jp/blog/2010/11/30_005948/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 15:59:48 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[idea]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Win]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=898</guid>
		<description><![CDATA[とある縁から intellij IDEA の ultimate license を貰えたので、ためしに使ってみることに。 インストール時に (x86)に入るので残念だなあ、って事で調べてみたら64bitで使う方法があった [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/11/30_010635/' rel='bookmark' title='intellij IDEAのフリーカーソルを止める'>intellij IDEAのフリーカーソルを止める</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>とある縁から intellij IDEA の ultimate license を貰えたので、ためしに使ってみることに。<br />
インストール時に (x86)に入るので残念だなあ、って事で調べてみたら64bitで使う方法があったので共有。</p>
<p><a href="http://devnet.jetbrains.net/docs/DOC-1185">ここ</a>からファイルを貰ってくる。</p>
<pre>C:\Program Files (x86)\JetBrains\IntelliJ IDEA 9.0.4\bin</pre>
<p>に配置。</p>
<p>同じディレクトリにあるidea.exe.vmoptionsを idea64.exe.vmoptions とコピーして、値を増やす(64bit環境だと32bitと同じMaxPermSizeだと動かなかったです)<br />
取り合えず俺はこんな感じ。</p>
<pre>-Xms512m
-Xmx2g
-XX:MaxPermSize=1280m
-ea</pre>
<p>環境変数 IDEA_JDKに64bit JDK_HOME を追加。<br />
後はidea64.exe を起動するだけでOK。</p>
<p>しかしIDEAは全然日本語の情報が無いのが困るな。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/11/30_010635/' rel='bookmark' title='intellij IDEAのフリーカーソルを止める'>intellij IDEAのフリーカーソルを止める</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/11/30_005948/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cygwin付属のgitでssh経由のcloneが出来ない件</title>
		<link>http://rider.withgod.jp/blog/2010/11/17_172726/</link>
		<comments>http://rider.withgod.jp/blog/2010/11/17_172726/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 08:27:26 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Win]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=895</guid>
		<description><![CDATA[cygwinでgit cloneがやりたくて取りあえずたたいて見るとこんな感じで失敗する で、何が悪いんだろうって事で調べたところ、これでいけるようになった Related posts:[Program][Python] [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2005/05/31_120001/' rel='bookmark' title='[Program][Python] python+&lt;%=a &quot;Reportlab|http://www.reportlab.org/&quot;%&gt;で日本語のPDF'>[Program][Python] python+<%=a "Reportlab|http://www.reportlab.org/"%>で日本語のPDF</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>cygwinでgit cloneがやりたくて取りあえずたたいて見るとこんな感じで失敗する</p>
<pre class="brush: bash; title: ; notranslate">
$ git clone server:/git/repos/hoge.git hoge
Initialized empty Git repository in hoge
Enter passphrase for key '/home/hoge/.ssh/id_rsa':
remote: Counting objects: 1601, done.
remote: Compressing objects: 100% (800/800), done.
fatal: The remote end hung up unexpectedly
fatal: early EOFs:  21% (338/1608)
fatal: index-pack failed
</pre>
<p>で、何が悪いんだろうって事で調べたところ、これでいけるようになった</p>
<pre class="brush: bash; title: ; notranslate">
export GIT_SSH=&quot;C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe&quot;
</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2005/05/31_120001/' rel='bookmark' title='[Program][Python] python+&lt;%=a &quot;Reportlab|http://www.reportlab.org/&quot;%&gt;で日本語のPDF'>[Program][Python] python+<%=a "Reportlab|http://www.reportlab.org/"%>で日本語のPDF</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/11/17_172726/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitterの新UIを有効にすると、apiのresultが変わる</title>
		<link>http://rider.withgod.jp/blog/2010/09/29_150848/</link>
		<comments>http://rider.withgod.jp/blog/2010/09/29_150848/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 06:08:48 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=891</guid>
		<description><![CDATA[表題のまんま。 もともとはtwitterで呟いたんだけど、他にも差異があるかも？と思ってちゃんと比較した。 Webなんて使ってないから新UIなんて関係ない、って呟いてる人もちらほら見かけるし、関係無くないんだよねってのも [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2004/04/28_120002/' rel='bookmark' title='[Program][携帯] 携帯の開発'>[Program][携帯] 携帯の開発</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>表題のまんま。</p>
<p>もともとは<a href="http://twitter.com/withgod/status/25669058106">twitterで呟いた</a>んだけど、他にも差異があるかも？と思ってちゃんと比較した。<br />
Webなんて使ってないから新UIなんて関係ない、って呟いてる人もちらほら見かけるし、関係無くないんだよねってのも込めて。</p>
<p>こんな感じにファイルを置いて</p>
<pre class="brush: plain; title: ; notranslate">
/tmp/20100929% ls -al ./*
./new:
total 16
drwxr-xr-x 2 noname noname 4096 Sep 29 14:52 ./
drwxr-xr-x 4 noname noname 4096 Sep 29 14:58 ../
-rw-r--r-- 1 noname noname 2019 Sep 29 14:52 verify.json
-rw-r--r-- 1 noname noname 2470 Sep 29 14:49 verify.xml

./old:
total 16
drwxr-xr-x 2 noname noname 4096 Sep 29 14:52 ./
drwxr-xr-x 4 noname noname 4096 Sep 29 14:58 ../
-rw-r--r-- 1 noname noname 1842 Sep 29 14:52 verify.json
-rw-r--r-- 1 noname noname 2470 Sep 29 14:49 verify.xml
</pre>
<p>取り合えずdiffで比較とるとこんな感じ</p>
<pre class="brush: plain; title: ; notranslate">

/tmp/20100929% diff -cr ./old ./new
diff -cr ./old/verify.json ./new/verify.json
*** ./old/verify.json   Wed Sep 29 14:52:52 2010
--- ./new/verify.json   Wed Sep 29 14:52:06 2010
***************
*** 6,14 ****
    &quot;location&quot;: &quot;iphone:35.661955,139.699769&quot;,
    &quot;created_at&quot;: &quot;Wed Oct 24 03:48:05 +0000 2007&quot;,
    &quot;profile_image_url&quot;: &quot;http://a0.twimg.com/profile_images/1106366432/snafver2-fix_normal.jpg&quot;,
-   &quot;profile_link_color&quot;: &quot;2FC2EF&quot;,
    &quot;follow_request_sent&quot;: false,
    &quot;url&quot;: &quot;http://friendfeed.com/withgod&quot;,
    &quot;contributors_enabled&quot;: false,
    &quot;favourites_count&quot;: 200,
    &quot;utc_offset&quot;: 32400,
--- 6,21 ----
    &quot;location&quot;: &quot;iphone:35.661955,139.699769&quot;,
    &quot;created_at&quot;: &quot;Wed Oct 24 03:48:05 +0000 2007&quot;,
    &quot;profile_image_url&quot;: &quot;http://a0.twimg.com/profile_images/1106366432/snafver2-fix_normal.jpg&quot;,
    &quot;follow_request_sent&quot;: false,
+   &quot;profile_link_color&quot;: &quot;2FC2EF&quot;,
    &quot;url&quot;: &quot;http://friendfeed.com/withgod&quot;,
+   &quot;states&quot;: {
+     &quot;pending_email&quot;: false,
+     &quot;bouncing_email&quot;: false,
+     &quot;detached_email&quot;: false,
+     &quot;needs_employee_email_update&quot;: false,
+     &quot;suspended&quot;: false
+   },
    &quot;contributors_enabled&quot;: false,
    &quot;favourites_count&quot;: 200,
    &quot;utc_offset&quot;: 32400,
***************
*** 19,30 ****
    &quot;lang&quot;: &quot;en&quot;,
    &quot;protected&quot;: false,
    &quot;followers_count&quot;: 557,
!   &quot;geo_enabled&quot;: true,
    &quot;profile_background_color&quot;: &quot;1A1B1F&quot;,
    &quot;time_zone&quot;: &quot;Tokyo&quot;,
    &quot;notifications&quot;: false,
    &quot;description&quot;: &quot;Learn from yesterday,\r\nlive for today,\r\nhope for tomorrow.&quot;,
-   &quot;verified&quot;: false,
    &quot;statuses_count&quot;: 11998,
    &quot;friends_count&quot;: 564,
    &quot;status&quot;: {
--- 26,37 ----
    &quot;lang&quot;: &quot;en&quot;,
    &quot;protected&quot;: false,
    &quot;followers_count&quot;: 557,
!   &quot;verified&quot;: false,
    &quot;profile_background_color&quot;: &quot;1A1B1F&quot;,
+   &quot;geo_enabled&quot;: true,
    &quot;time_zone&quot;: &quot;Tokyo&quot;,
    &quot;notifications&quot;: false,
    &quot;description&quot;: &quot;Learn from yesterday,\r\nlive for today,\r\nhope for tomorrow.&quot;,
    &quot;statuses_count&quot;: 11998,
    &quot;friends_count&quot;: 564,
    &quot;status&quot;: {
***************
*** 45,51 ****
      &quot;in_reply_to_status_id&quot;: 25857587434
    },
    &quot;profile_background_image_url&quot;: &quot;http://a1.twimg.com/profile_background_images/128627042/6d0813d6.jpg&quot;,
-   &quot;show_all_inline_media&quot;: false,
    &quot;screen_name&quot;: &quot;withgod&quot;,
    &quot;following&quot;: false
  }
--- 52,58 ----
      &quot;in_reply_to_status_id&quot;: 25857587434
    },
    &quot;profile_background_image_url&quot;: &quot;http://a1.twimg.com/profile_background_images/128627042/6d0813d6.jpg&quot;,
    &quot;screen_name&quot;: &quot;withgod&quot;,
+   &quot;show_all_inline_media&quot;: false,
    &quot;following&quot;: false
  }
</pre>
<p>微妙に出現順番が変わってるのを割愛すると、statesとかいう要素が増えてる。<br />
jsonは変わってるけど、xmlは変わってない。<br />
suspendなID相手に行うと states->suspended が true になってるかもしれない。<br />
phpとかperlで適当に変数に落とす関数に掛けてるだけ、とかなら良いけど、javaやC++とかでちゃんとvalidationしてると刺さるねこれ。(いや、perlやphpでもちゃんとやってたら別だけど)<br />
これ以上はめんどいからしないけど、もしかしたら他のAPIも変わってるかも？</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2004/04/28_120002/' rel='bookmark' title='[Program][携帯] 携帯の開発'>[Program][携帯] 携帯の開発</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/09/29_150848/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hudsonでsimpletestのテストレポートを出す(出せてない)</title>
		<link>http://rider.withgod.jp/blog/2010/09/24_221709/</link>
		<comments>http://rider.withgod.jp/blog/2010/09/24_221709/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 13:17:09 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=876</guid>
		<description><![CDATA[取り合えず動かすだけなら、shellの実行で適当にテスト実行を叩けばOKでした。 が、それだけじゃせっかくのHudsonが泣いていて、JUnix形式で吐き出して解析画面を出したい。 で、思考錯誤中。 まず、simplet [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/04/12_120001/' rel='bookmark' title='[Program][Perl][Ajax] KDDIの携帯に&lt;%= a &quot;地図情報|http://rider.withgod.jp/modules/park_map/map.pl&quot;%&gt;を通知(not 取得)'>[Program][Perl][Ajax] KDDIの携帯に<%= a "地図情報|http://rider.withgod.jp/modules/park_map/map.pl"%>を通知(not 取得)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>取り合えず動かすだけなら、shellの実行で適当にテスト実行を叩けばOKでした。</p>
<p>が、それだけじゃせっかくのHudsonが泣いていて、JUnix形式で吐き出して解析画面を出したい。<br />
で、思考錯誤中。</p>
<p>まず、simpletestでJUnit形式のログを出せないかなーと調べたところ、1.1系なら(何時出るんだろう・・・)、<a href="http://www.simpletest.org/api/SimpleTest/Extensions/JUnitXMLReporter.html">JUnitXMLReporter</a>なる物を発見。<br />
お手軽に1.0.1からアップグレード出来ないかなーと試してみたけど、細部に変更が多いみたいで、エラー出まくりで諦める。</p>
<p>で、その辺をTwitterで<a href="http://twitter.com/withgod/status/25134443191">つぶやいていたら</a>、<a href="http://redmine.piece-framework.com/projects/stagehand-testrunner/wiki/Ja_UserGuide">Stagehand_TestRunner</a>なるtesthelperアプリの作者の方からJUnit形式のログ出力のサポートしてるという<a href="http://twitter.com/iteman/status/25136653891">mentionを貰った</a>ので試し中(完結していません)</p>
<p>取り合えずそのままだと、手元のテストは殆どがWebTestCaseで、UnitTestCaseのサブクラスじゃないとヘルパがテストクラスと認識してくれず動かないので、その辺にこんな感じで手を入れる。<br />
#このアプローチは正直間違いだったと思う、UnitTestCaseをSimpleTestCaseにすりゃ解決だった、まぁ作っちゃったのでそのまま利用中。</p>
<p><code><a href="http://rider.withgod.jp/src/Stagehand/Stagehand.001.patch">http://rider.withgod.jp/src/Stagehand/Stagehand.001.patch</a></code></p>
<p>取り合えずこれで、コマンドラインで動作出来るようになる。<br />
そのままHudsonで実行はOK、xUnitでログ解析も正常系ならOK、テストレポートも確認できました。<br />
が、テスト失敗した場合にレポートが出せません。</p>
<p>取り合えず、JUnitXMLDOMWriter がcreateElementする時に &lt;&gt;&amp;辺りをエスケープしてない所を修正<br />
改行コードが複数混じってるときにエンコードがおかしくてXMLWriterがエラー吐くので改行をPHP_EOLで統一+複数あっても1個って具合に無理やり修正</p>
<p><code><a href="http://rider.withgod.jp/src/Stagehand/Stagehand.002.patch">http://rider.withgod.jp/src/Stagehand/Stagehand.002.patch</a></code></p>
<p>simpletestがマルチバイト考慮しないで文字をぶった切るせいで、エンコードおかしいとエラー吐くので、適当にmb_を付け足す。</p>
<p><code><a href="http://rider.withgod.jp/src/Stagehand/simpletest.001.patch">http://rider.withgod.jp/src/Stagehand/simpletest.001.patch</a></code></p>
<p>まだ動かせてないですが、作者への情報共有用にblogエントリ立ち上げ。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/04/12_120001/' rel='bookmark' title='[Program][Perl][Ajax] KDDIの携帯に&lt;%= a &quot;地図情報|http://rider.withgod.jp/modules/park_map/map.pl&quot;%&gt;を通知(not 取得)'>[Program][Perl][Ajax] KDDIの携帯に<%= a "地図情報|http://rider.withgod.jp/modules/park_map/map.pl"%>を通知(not 取得)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/09/24_221709/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>認証を掛けた状態でのhudsonのリモートビルド</title>
		<link>http://rider.withgod.jp/blog/2010/09/16_190225/</link>
		<comments>http://rider.withgod.jp/blog/2010/09/16_190225/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:02:25 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=869</guid>
		<description><![CDATA[svnでhookしてbuildしたくて、ググったりして出てくる方法とか、公式の日本語ドキュメント参考にしても上手くいかなかった。 出てくるのはこの方法。 http://あなたのホスト/hudson/job/プロジェクト名 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2005/09/04_120001/' rel='bookmark' title='[UNIX] procmailrc'>[UNIX] procmailrc</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/07/30_120639/' rel='bookmark' title='最近のTwitterクライアント動向'>最近のTwitterクライアント動向</a></li>
<li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>svnでhookしてbuildしたくて、ググったりして出てくる方法とか、公式の日本語ドキュメント参考にしても上手くいかなかった。</p>
<p>出てくるのはこの方法。</p>
<pre>http://あなたのホスト/hudson/job/プロジェクト名/build?token=認証キー</pre>
<p>認証掛けてない場合はtokenいらない、認証かけたらtoken発行してやってね、って書いてる。<br />
だけど、これでやっても403が出る。</p>
<p><a href="http://wiki.hudson-ci.org/display/HUDSON/Authenticating+scripted+clients">Authenticating scripted clients</a>　って記事を見つけたので。</p>
<p>autobuildユーザを作って、こんな感じにしてみた。</p>
<pre>wget -O /dev/null --auth-no-challenge --http-user=autobuild --http-password=password 'http://example.net/hudson/job/test/build?token=foobar'</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2005/09/04_120001/' rel='bookmark' title='[UNIX] procmailrc'>[UNIX] procmailrc</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/07/30_120639/' rel='bookmark' title='最近のTwitterクライアント動向'>最近のTwitterクライアント動向</a></li>
<li><a href='http://rider.withgod.jp/blog/2008/01/19_120001/' rel='bookmark' title='apache2 + apache1.3(mod_perl)環境構築'>apache2 + apache1.3(mod_perl)環境構築</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/09/16_190225/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近のTwitterクライアント動向</title>
		<link>http://rider.withgod.jp/blog/2010/07/30_120639/</link>
		<comments>http://rider.withgod.jp/blog/2010/07/30_120639/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 03:06:39 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=860</guid>
		<description><![CDATA[ちょっと気になったので現在のTwitterクライアント動向を調べてみた。 こちらのプログラムを拝借してちょっと改変。 Twitter Streaming APIをRubyで試してみる http://d.hatena.ne [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/16_161511/' rel='bookmark' title='tig.rb のtimeline(post)が出てこないのに対応する patch'>tig.rb のtimeline(post)が出てこないのに対応する patch</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/29_150848/' rel='bookmark' title='twitterの新UIを有効にすると、apiのresultが変わる'>twitterの新UIを有効にすると、apiのresultが変わる</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ちょっと気になったので現在のTwitterクライアント動向を調べてみた。</p>
<p>こちらのプログラムを拝借してちょっと改変。<br />
<BLOCKQUOTE>Twitter Streaming APIをRubyで試してみる<br />
<a href="http://d.hatena.ne.jp/shibason/20090816/1250405491">http://d.hatena.ne.jp/shibason/20090816/1250405491</a><br />
</BLOCKQUOTE></p>
<p>DBのschema。<br />
streaming apiで複数回して突っ込んでみたので、post_idにuniq張ってmysql任せ。<br />
#複数回す意味って有るかな？と思いつつ、アカウント自体は有るからまぁ別に大した工数でもないから取りあえず。</p>
<pre class="brush: sql; title: ; notranslate">
create table tweet(
    `id` bigint primary key auto_increment,
    post_id bigint not null unique,
    tweet varchar(256) not null,
    source varchar(512) not null,
    created_at datetime not null,
    account varchar(256) not null
);
</pre>
<p>プログラム。<br />
sample.jsonでpublic_timelineを拾ってきて、正規表現で日本語を含んだのを抜き出してみる。</p>
<pre class="brush: ruby; title: ; notranslate">
#!/usr/bin/env ruby
# coding: utf-8

require 'net/http'
require 'uri'
require 'rubygems'
require 'json'
require 'time'
require 'date'
require 'mysql'

USERNAME    = ARGV[0]
PASSWORD    = ARGV[1]
DB_USERNAME = ARGV[2]
DB_PASSWORD = ARGV[3]

my = Mysql::new('127.0.0.1', DB_USERNAME, DB_PASSWORD, 'tweet');

uri = URI.parse('http://stream.twitter.com/1/statuses/sample.json')
begin
    Net::HTTP.start(uri.host, uri.port) do |http|
        request = Net::HTTP::Post.new(uri.request_uri)
        request.basic_auth(USERNAME, PASSWORD)
        http.request(request) do |response|
            raise 'Response is not chuncked' unless response.chunked?
            response.read_body do |chunk|
                status = JSON.parse(chunk) rescue next
                next unless status['text']
                user = status['user']
                if /(?:\xE3\x81[\x81-\xBF]|\xE3\x82[\x80-\x93])/ =~ status['text'] then
                    st = my.prepare(&quot;insert into tweet(post_id, tweet, source, created_at, account) values(?, ?, ?, ?, ?)&quot;);
                    begin
                            st.execute(status['id'], status['text'], status['source'], Time.parse(status['created_at']), USERNAME)
                    rescue Mysql::Error
                    end
                end
            end
        end
    end
rescue Interrupt
        puts 'end of program'
        my.close()
end
</pre>
<p>後はこんな感じで幾つか動かした</p>
<pre class="brush: bash; title: ; notranslate">
./get.rb id01 hogehoge tweet tweetpass &amp;
./get.rb id02 hogehoge tweet tweetpass &amp;
./get.rb id03 hogehoge tweet tweetpass &amp;
</pre>
<p>取りあえずこんな感じで結果を出してみた。<br />
集計期間(created_at) 2010-07-28 23:08:13～2010-07-30 11:30:18<br />
3つのアカウントで同時集計。<br />
total: 111893</p>
<table>
<tr>
<th>rank</th>
<th>source</th>
<th>count</th>
</tr>
<tr>
<th>1 </th>
<td>web</td>
<td>30066</td>
</tr>
<tr>
<th>2 </th>
<td><a href="http://twtr.jp" rel="nofollow">Keitai Web</a></td>
<td>14146</td>
</tr>
<tr>
<th>3 </th>
<td><a href="http://movatwitter.jp/" rel="nofollow">movatwitter</a></td>
<td> 6387</td>
</tr>
<tr>
<th>4 </th>
<td><a href="http://sourceforge.jp/projects/tween/wiki/FrontPage" rel="nofollow">Tween</a></td>
<td>  6001</td>
</tr>
<tr>
<th>5 </th>
<td><a href="http://dev.twitter.com/" rel="nofollow">API</a></td>
<td>3930</td>
</tr>
<tr>
<th>6 </th>
<td><a href="http://www.echofon.com/" rel="nofollow">Echofon</a></td>
<td>3834</td>
</tr>
<tr>
<th>7 </th>
<td><a href="http://twipple.jp/" rel="nofollow">ついっぷる</a></td>
<td>3806</td>
</tr>
<tr>
<th>8 </th>
<td><a href="http://www.movatwi.jp" rel="nofollow">www.movatwi.jp</a></td>
<td>3310</td>
</tr>
<tr>
<th>9 </th>
<td><a href="http://twitter.com/" rel="nofollow">Twitter for iPhone</a></td>
<td>3298</td>
</tr>
<tr>
<th>10</th>
<td><a href="http://www.nibirutech.com" rel="nofollow">TwitBird</a></td>
<td> 2951</td>
</tr>
<tr>
<th>11</th>
<td><a href="http://yubitter.com/" rel="nofollow">yubitter</a></td>
<td>2898</td>
</tr>
<tr>
<th>12</th>
<td><a href="http://www.tweetdeck.com" rel="nofollow">TweetDeck</a></td>
<td> 2420</td>
</tr>
<tr>
<th>13</th>
<td><a href="http://twittbot.net/" rel="nofollow">twittbot.net</a></td>
<td>  1978</td>
</tr>
<tr>
<th>14</th>
<td><a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a></td>
<td> 1300</td>
</tr>
<tr>
<th>15</th>
<td>Keitai Mail</td>
<td>1205</td>
</tr>
<tr>
<th>16</th>
<td><a href="http://cheebow.info/chemt/archives/2007/04/twitterwindowst.html" rel="nofollow">Twit for Windows</a></td>
<td>1112</td>
</tr>
<tr>
<th>17</th>
<td><a href="http://twicca.r246.jp/" rel="nofollow">twicca</a></td>
<td>1019</td>
</tr>
<tr>
<th>18</th>
<td><a href="http://projects.playwell.jp/go/Saezuri" rel="nofollow">Saezuri</a></td>
<td>967</td>
</tr>
<tr>
<th>19</th>
<td><a href="http://sites.google.com/site/yorufukurou/" rel="nofollow">YoruFukurou</a></td>
<td>869</td>
</tr>
<tr>
<th>20</th>
<td><a href="http://www.osfoora.com" rel="nofollow">Osfoora for iPhone</a></td>
<td>  803</td>
</tr>
<tr>
<th>21</th>
<td><a href="http://sites.google.com/site/peraperaprv/Home" rel="nofollow">P3:PeraPeraPrv</a></td>
<td>799</td>
</tr>
<tr>
<th>22</th>
<td><a href="http://stone.com/Twittelator" rel="nofollow">Twittelator</a></td>
<td>784</td>
</tr>
<tr>
<th>23</th>
<td><a href="http://pha22.net/twitterbot/" rel="nofollow">EasyBotter</a></td>
<td>764</td>
</tr>
<tr>
<th>24</th>
<td><a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a></td>
<td> 706</td>
</tr>
<tr>
<th>25</th>
<td><a href="http://jigtwi.jp/?p=1" rel="nofollow">jigtwi</a></td>
<td>653</td>
</tr>
<tr>
<th>26</th>
<td><a href="http://ustream.tv" rel="nofollow">Ustream</a></td>
<td>  573</td>
</tr>
<tr>
<th>27</th>
<td><a href="http://d.hatena.ne.jp/Kiri_Feather/20071121" rel="nofollow">Tween</a></td>
<td>  432</td>
</tr>
<tr>
<th>28</th>
<td><a href="http://dlvr.it" rel="nofollow">dlvr.it</a></td>
<td>385</td>
</tr>
<tr>
<th>29</th>
<td><a href="http://movatter.jp" rel="nofollow">Movatter</a></td>
<td>359</td>
</tr>
<tr>
<th>30</th>
<td><a href="http://mobile.twitter.com" rel="nofollow">mobile web</a></td>
<td>340</td>
</tr>
</table>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/16_161511/' rel='bookmark' title='tig.rb のtimeline(post)が出てこないのに対応する patch'>tig.rb のtimeline(post)が出てこないのに対応する patch</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/29_150848/' rel='bookmark' title='twitterの新UIを有効にすると、apiのresultが変わる'>twitterの新UIを有効にすると、apiのresultが変わる</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/07/30_120639/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RTX-1200 をポチった</title>
		<link>http://rider.withgod.jp/blog/2010/07/29_005519/</link>
		<comments>http://rider.withgod.jp/blog/2010/07/29_005519/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:55:19 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[diary]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=853</guid>
		<description><![CDATA[ってことで届いた。 昔からずーっと Linux をNATにして自宅ネットワークを構築してきたんだけど、ちょっと前にNIC絡みでとらぶった時に暫定で無線LAN APとして利用していたAtermを普通にルータに使ってみた。  [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>ってことで届いた。</p>
<p style="text-align: center;"><a class="" rel="" title="IMG_0368" href="http://www.flickr.com/photos/40605210@N06/4838114800/"><img class="alignnone" src="http://farm5.static.flickr.com/4103/4838114800_d63ef85716_m.jpg" alt="IMG_0368"></a></p>
<p>昔からずーっと Linux をNATにして自宅ネットワークを構築してきたんだけど、ちょっと前にNIC絡みでとらぶった時に暫定で無線LAN APとして利用していたAtermを普通にルータに使ってみた。<br />
が、やっぱ過負荷時にスループットが低いのと、設定項目が貧弱で困ってて、Linux NATを復活させるか、ix2015をオクでゲットするか、前からずーーーーっと欲しいなあと思ってたRTX1200を買うか、で悩んだ挙句にamazonでポチっとな。</p>
<p>ついでに買ったきりつかってなかったExpress5800 Ge用にHDDを2個買って家庭内ファイルサーバにしたり、自宅ネットワークとWAN向けネットワークの隔離とか、元々使ってたPCをサーバ用にdebian突っ込んでWAN向けに公開とか色々しよう。</p>
<p>全部整理した場合の我が家のネットワーク内でip reachableなホストはこんだけになる予定・・・</p>
<ul>
<li>WAN向けサーバ2台
<li>LAN向けサーバ1台
<li>クライアントデスクトップ2台
<li>クライアントノート2台
<li>iphone
<li>IS01
<li>xbox360
<li>ps3
</ul>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/07/29_005519/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageMagickのgif出力は遅い</title>
		<link>http://rider.withgod.jp/blog/2010/07/26_135115/</link>
		<comments>http://rider.withgod.jp/blog/2010/07/26_135115/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 04:51:15 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[携帯]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=846</guid>
		<description><![CDATA[どんぐらい遅いかっていうと、こんぐらい遅い。 #debian sid, php 5.3.2, Pentium Dual-Core CPU E5200 @ 2.50GHz, mem 2G 自分のTLから適当に画像(text [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/09/01_120002/' rel='bookmark' title='Before'>Before</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/10/25_120004/' rel='bookmark' title='携帯版の情報'>携帯版の情報</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/26_120001/' rel='bookmark' title='TeamKRワッペン装着'>TeamKRワッペン装着</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>どんぐらい遅いかっていうと、こんぐらい遅い。<br />
#debian sid, php 5.3.2, Pentium Dual-Core  CPU E5200  @ 2.50GHz, mem 2G</p>
<p>自分のTLから適当に画像(text及びユーザアイコン)を収集。<br />
#sort | uniq 済み。<br />
imagickとGDに掛けてみる。<br />
imlib2にしようと思って値とってる最中に、imagickのgifが重すぎなのを見つけたので、取りあえず今回はjpgに変更で対応・・・<br />
file_get_contentsで読み込んだ後にそれぞれにオンメモリで渡して、標準出力に出すだけのプログラムの所要時間。<br />
#勿論、単に回してるだけなので1コア利用。</p>
<table>
<tr>
<th>from-to-回数</th>
<th>imagick(sec)</th>
<th>GD(sec)</th>
</tr>
<tr>
<td>all-gif-100</td>
<td>9.089351</td>
<td>0.497831</td>
</tr>
<tr>
<td>all-jpg-100</td>
<td>0.340066</td>
<td>0.243432</td>
</tr>
<tr>
<td>all-png-100</td>
<td>0.422197</td>
<td>0.303007</td>
</tr>
</table>
<p>allってのは入力画像の種別、この辺をjpgだけーとかにするとまた微妙に差異が有りました、がテーブルにするの面倒なのでallだけで :p</p>
<p>imagickのgifが遅い、ってのはあまり見かけなかったので、記事にしておく。</p>
<p>参考URL<br />
<a href="http://d.hatena.ne.jp/rich850/20090315/p1">画像処理ライブラリのパフォーマンス比較</a><br />
ここともう1箇所ぐらいはてなで見かけたけど、URLを失念 (&#8216;A`</p>
<p>直接は関係無いけど嵌ったのが、 Content-type: image/jpg と返すとDoCoMoはいいけど KDDI/Softbank で画像が表示されない。<br />
ちゃんと image/jpeg と返しましょう、手抜きしたせいで微妙にはまった・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/09/01_120002/' rel='bookmark' title='Before'>Before</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/10/25_120004/' rel='bookmark' title='携帯版の情報'>携帯版の情報</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/26_120001/' rel='bookmark' title='TeamKRワッペン装着'>TeamKRワッペン装着</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/07/26_135115/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mac exposeのショートカットのカスタマイズ</title>
		<link>http://rider.withgod.jp/blog/2010/05/24_112845/</link>
		<comments>http://rider.withgod.jp/blog/2010/05/24_112845/#comments</comments>
		<pubDate>Mon, 24 May 2010 02:28:45 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=833</guid>
		<description><![CDATA[変な事に手間取ったのでメモ。 システム環境設定=>Expose/Spaces=>Expose だと、全然まともに弄れない。 マウス指してない状態だとボタン1個しか選べないし、マウス＋修飾キーとかも設定出来るんだけど、vx [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://rider.withgod.jp/blog/wp-content/uploads/2010/05/expose_baka.jpg"><img src="http://rider.withgod.jp/blog/wp-content/uploads/2010/05/expose_baka-150x150.jpg" alt="" title="expose_baka" width="150" height="150" class="alignright size-thumbnail wp-image-834" /></a>変な事に手間取ったのでメモ。</p>
<p></a>システム環境設定=>Expose/Spaces=>Expose だと、全然まともに弄れない。<br />
マウス指してない状態だとボタン1個しか選べないし、マウス＋修飾キーとかも設定出来るんだけど、vx nanoだとこんな事に。</p>
<p>が、システム環境設定=>キーボードとマウス=>キーボードショートカット　でちゃんと弄れる。</p>
<p>とりあえずこんな感じにしてみた。</p>
<ul>
<li>全てのウィンドウ Option-s
<li>アプリケーションのウィンドウ Option-x
<li>デスクトップ Option-d (win-d)
</ul>
<p>他とかぶってなきゃいいんだけど。</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/05/24_112845/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tombloo で youtube が投稿できない件への対応</title>
		<link>http://rider.withgod.jp/blog/2010/04/24_061555/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/24_061555/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 21:15:55 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=827</guid>
		<description><![CDATA[ちょっと前にyoutubeのページ構成が変わってから、tomblooでreblog出来なくなってたので修正してみた。 authorが取れなくなってたので、ちょこっとxpathを書き換えただけ。 取り合えず動くことは確認で [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/05/15_120001/' rel='bookmark' title='[サーキット][R1][トミン][BMC][メイド] &lt;%=a &quot;メイドライダー動画|http://www.youtube.com/watch?v=A6SSMAnfch8&quot;%&gt;'>[サーキット][R1][トミン][BMC][メイド] <%=a "メイドライダー動画|http://www.youtube.com/watch?v=A6SSMAnfch8"%></a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/10/15_120002/' rel='bookmark' title='[PC] マシン名'>[PC] マシン名</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ちょっと前にyoutubeのページ構成が変わってから、tomblooでreblog出来なくなってたので修正してみた。<br />
authorが取れなくなってたので、ちょこっとxpathを書き換えただけ。<br />
取り合えず動くことは確認できたけど、tumblr以外に投げたことが無く、authorを使った投稿先が解らないからそこまでは試してない・・・<br />
#testの動かし方がよーわからん・・・<br />
取り合えずtumblrでは使えてるので良いや。</p>
<p>tombloo/xpi/chrome/content/library/31_Tombloo.Service.extractors.js にpatchあててantでbuldすればおｋ</p>
<pre class="brush: jscript; title: ; notranslate">
*** 31_Tombloo.Service.extractors.js.org	2010-04-24 06:02:01.032668300 +0900
--- 31_Tombloo.Service.extractors.js	2010-04-24 05:57:21.313669300 +0900
***************
*** 1230,1236 ****
  			return ctx.host.match('youtube.com');
  		},
  		extract : function(ctx){
! 			var author = $x('id(&quot;watch-channel-stats&quot;)/a');
  			ctx.title = ctx.title.replace(/[\n\r\t]+/gm, ' ').trim();

  			return {
--- 1230,1236 ----
  			return ctx.host.match('youtube.com');
  		},
  		extract : function(ctx){
! 			var author = $x('id(&quot;watch-username&quot;)/strong');
  			ctx.title = ctx.title.replace(/[\n\r\t]+/gm, ' ').trim();

  			return {
</pre>
<p>テストとか全然してないし、plugin作成とかxpathとか不慣れなのでpullはしないでいいや・・・<br />
#ってかこれぐらいなら誰か治すでしょ。</p>
<p>##編集のテスト</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/05/15_120001/' rel='bookmark' title='[サーキット][R1][トミン][BMC][メイド] &lt;%=a &quot;メイドライダー動画|http://www.youtube.com/watch?v=A6SSMAnfch8&quot;%&gt;'>[サーキット][R1][トミン][BMC][メイド] <%=a "メイドライダー動画|http://www.youtube.com/watch?v=A6SSMAnfch8"%></a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/10/15_120002/' rel='bookmark' title='[PC] マシン名'>[PC] マシン名</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/24_061555/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>twitter4j で streaming api を触ってみた</title>
		<link>http://rider.withgod.jp/blog/2010/04/22_193504/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/22_193504/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 10:35:04 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=815</guid>
		<description><![CDATA[ずーっと続いてる咳のせいで変な時間に目が覚めて寝れなかったので、昨晩書いてみた。 status.filterを使って、twitpic,yfrog,movapicを探してきてウィンドウにずらずら並べるだけ、こんな感じ。 サ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/23_184647/' rel='bookmark' title='javaのjsonライブラリのデコーダのベンチマーク'>javaのjsonライブラリのデコーダのベンチマーク</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>ずーっと続いてる咳のせいで変な時間に目が覚めて寝れなかったので、昨晩書いてみた。<br />
<a href="http://apiwiki.twitter.com/Streaming-API-Documentation#statuses/filter">status.filter</a>を使って、twitpic,yfrog,movapicを探してきてウィンドウにずらずら並べるだけ、こんな感じ。<br />
サムネイルをクリックで該当ページに飛べます。</p>
<p><a class="" rel="" title="ss20100422" href="http://www.flickr.com/photos/40605210@N06/4543116904/"><img src="http://farm5.static.flickr.com/4068/4543116904_468d7c05fd_t.jpg" alt="ss20100422"></a></p>
<p>これ落としてきて、展開してから、cmdかshの中のid,passを変更すれば動きます。<br />
<a href="http://withgod.googlecode.com/files/streamingdemo.zip">http://withgod.googlecode.com/files/streamingdemo.zip</a><br />
ソース<br />
<a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/StreamingDemo.java">http://code.google.com/p/withgod/source/browse/trunk/twitter/StreamingDemo.java</a></p>
<p>一応 win7とos xで動作確認済み。</p>
<p>ってか、streaming apiの部分よりSwing周りの方がめんどかった (&#8216;A`</p>
<h4>まとめ</h4>
<p>・twitter4j 使えば streaming api もお手軽に触れる<br />
・FlowLayout + JScrollPane を使うと、横スクロール無しにしても横の長さが無制限になってしまうから <a href="http://java.freehep.org/lib/freehep/api/org/freehep/swing/layout/FlowScrollLayout.html">FlowScrollLayout</a>を使って回避<br />
・javaからブラウザを立ち上げるのはめんどいので、<a href="http://browserlaunch2.sourceforge.net/">BrowserLauncher2</a>を利用</p>
<p>かなりやっつけ感の漂うソースだけど、まぁ気にしない。</p>
<h4>一応補足</h4>
<p>これをSwingのサンプルにしちゃ駄目です。<br />
別スレッドから本スレッドを更新する場合は、SwingUtilitiesやSwingWorkerを使うべきです。<br />
使わず適当に書いてみたら動いたので、楽なんでそのままですが、突然Nullpoとか起きる場合があったりするかと。<br />
#swtの場合はそもそも動かないんだけど、Swingは普通に動かせちゃう。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/23_184647/' rel='bookmark' title='javaのjsonライブラリのデコーダのベンチマーク'>javaのjsonライブラリのデコーダのベンチマーク</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/22_193504/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>limechatの画像表示にhatenaのアイコンも追加</title>
		<link>http://rider.withgod.jp/blog/2010/04/16_224022/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/16_224022/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 13:40:22 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=806</guid>
		<description><![CDATA[さっき書いた日記の、limechat for macで画像を表示する件、twitter以外にも対応すると楽しいなーと思ってソースを眺めてみたら、imgタグで呼び出してるだけだったので、呼び出し先を変えりゃ良いかとこんなの [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>さっき書いた日記の<a href="http://d.hatena.ne.jp/Psychs/20100415/1271347081">、limechat for macで画像を表示する</a>件、twitter以外にも対応すると楽しいなーと思って<a href="http://github.com/psychs/limechat">ソース</a>を眺めてみたら、<a href="http://github.com/psychs/limechat/commit/167c9fc9f4d5ca306a593738a700863ffa50903d">imgタグで呼び出してるだけ</a>だったので、呼び出し先を変えりゃ良いかとこんなの作ってみた。</p>
<p><a href="http://w-avatarproxy.appspot.com/">avator proxy on gae</a><br />
ソース <a href="http://bitbucket.org/withgod/avatar-proxy-on-gae">avator proxy on gae</a><br />
認証が必要じゃない、users/showが既にobsolute入りしてる上に、代替で提示されてるAPIだとprofile_imageが取れないので、user_timelineから取得。<br />
時々取得できない場合があるけど、<a href="http://d.hatena.ne.jp/furyu-tei/20100126/1264506992">多分この辺の理由。</a><br />
#そのうち成功するんで俺は気にならないけど。<br />
tweetimagは多分API limitの許可を出してると思う(Services_Twitterの開発者だった人だし(今はinactive))<br />
img.tweetimag.esをw-avatarproxy.appspot.comに書き換えてbuildすれば動きます。</p>
<p>ほんとはgravatarあたりに対応すれば楽しいかも？と思ったけど、ここはメアドから取得するみたいだからircじゃ基本駄目なので放置。<br />
twitter->hatenaの順で取得してるけど、twitterだと何時も使ってる名前が取れない場合がありそうだから、hatenaから先にとったほうがええんかなーと思いつつも放置。</p>
<p>tweetimagとの違いは時々取得に失敗するのと、画像変換を自前で掛けてないのでオリジナル画像が返ってきます。<br />
アニメーションgifとか、アルファ付きpngとかもそのまま。<br />
48&#215;48は保障されません(twitter側が時々48&#215;48じゃない画像を返してくる)<br />
#hatenaは64&#215;64</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/16_224022/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tig.rb のtimeline(post)が出てこないのに対応する patch</title>
		<link>http://rider.withgod.jp/blog/2010/04/16_161511/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/16_161511/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 07:15:11 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=800</guid>
		<description><![CDATA[LimeChat で Twitter ユーザのプロフィール画像を表示するでtig.rbなるものを知ったのでやってみたものの、timelineが見えなかった。 環境依存なのかもしれないけど(深く考えるのめんどい)、次の構成 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/19_212038/' rel='bookmark' title='各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。'>各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://d.hatena.ne.jp/Psychs/20100415/1271347081">LimeChat  で Twitter ユーザのプロフィール画像を表示する</a>で<a href="http://github.com/cho45/net-irc">tig.rb</a>なるものを知ったのでやってみたものの、timelineが見えなかった。<br />
環境依存なのかもしれないけど(深く考えるのめんどい)、次の構成で発言が見えなかったのでquick patch.<br />
ppして値がある場所探して突っ込んだだけです。</p>
<p>debian squeeze/sid</p>
<ul>
<li>- T i a r r a &#8211; :::version #0.1+svn-35566:::</li>
<li>tig.rb r35371(svn latest)</li>
<li>perl 5.10.1</li>
<li>ruby 1.8.7</li>
</ul>
<p>patch書いた後にtiarraは最新にしたけど特に問題無く動作してるっぽい。</p>
<pre class="brush: diff; title: ; notranslate">
*** ./tig.rb.org        2010-04-16 15:48:34.000000000 +0900
--- ./tig.rb    2010-04-16 15:59:42.000000000 +0900
***************
*** 1679,1687 ****
        def message(struct, target, tid = nil, str = nil, command = PRIVMSG)
                unless str
                        status = struct.is_a?(Status) ? struct : struct.status
!                       str = status.text
                        if command != PRIVMSG
!                               time = Time.parse(status.created_at) rescue Time.now
                                str  = &quot;#{time.strftime(@opts.strftime || &quot;%m-%d %H:%M&quot;)} #{str}&quot; # TODO: color
                        end
                end
--- 1679,1687 ----
        def message(struct, target, tid = nil, str = nil, command = PRIVMSG)
                unless str
                        status = struct.is_a?(Status) ? struct : struct.status
!                       str = struct.text
                        if command != PRIVMSG
!                               time = Time.parse(struct.created_at) rescue Time.now
                                str  = &quot;#{time.strftime(@opts.strftime || &quot;%m-%d %H:%M&quot;)} #{str}&quot; # TODO: color
                        end
                end
</pre>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/29_212650/' rel='bookmark' title='jquery使ってcallback関数を利用時のthisへのアクセス'>jquery使ってcallback関数を利用時のthisへのアクセス</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/19_212038/' rel='bookmark' title='各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。'>各種PHPのWebFramework上でhello worldベンチ(apcもあるよ)。</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/16_161511/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>よく打つUnixコマンドその2</title>
		<link>http://rider.withgod.jp/blog/2010/04/16_021142/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/16_021142/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:11:42 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=798</guid>
		<description><![CDATA[先日やった奴だけど、sudoやxargsが気になったのでもうちょっとまじめに測ってみた。 取り合えずやっつけでこんなスクリプト用意して こんな感じで計測 まぁ当然のごとくfindやgrepが急上昇。 ってか意外と少なくね [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/06_165925/' rel='bookmark' title='よく打つunixコマンド'>よく打つunixコマンド</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>先日やった奴だけど、sudoやxargsが気になったのでもうちょっとまじめに測ってみた。<br />
取り合えずやっつけでこんなスクリプト用意して</p>
<pre class="brush: perl; title: ; notranslate">
#!/usr/bin/perl
use strict;
while(&lt;&gt;) {
        my @items = split /\|/;
        for my $item (@items) {
                $item =~ s/[\r\n]+//;
                $item =~ s/^[ \t]+//;
                $item =~ s/^[A-Z\-|]+=[^ ]+//; #ignore setenv
                $item =~ s/^(sudo|xargs) //;
                my @tmp = split / /, $item;
                print $tmp[0] . &quot;\n&quot;;
        }
}
</pre>
<p>こんな感じで計測</p>
<pre class="brush: bash; title: ; notranslate">
history -n 1 | ./filter.pl| sed 's/lla\?/ls/' | sort | uniq -c | sort -r | head -20
   4770 ls
   3021 cd
   2104 lv
   2069 grep
   2008 vim
    947 screen
    818 find
    774 aptitude
    714 w3m
    682 ps
    534 rm
    519 svn
    432 cp
    418 apt-cache
    401 perl
    385 locate
    343 chmod
    331 mv
    325 apt-get
    317 mkdir
</pre>
<p>まぁ当然のごとくfindやgrepが急上昇。<br />
ってか意外と少なくね？と思ったけど、そういやHISTSIZE=500000とかしてるけど、zshの補完で重くなるから、historyで完璧に重複してる奴は削除とかしたのを思い出した。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/06_165925/' rel='bookmark' title='よく打つunixコマンド'>よく打つunixコマンド</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/16_021142/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP_OAuthに XAuthを追加</title>
		<link>http://rider.withgod.jp/blog/2010/04/15_170048/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/15_170048/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 08:00:48 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=795</guid>
		<description><![CDATA[結構やっつけだけど取り敢えず動くようにはした。 ほんとはConsumerクラス自体を継承するなり、拡張するなりした方がスマートだと思うんだけど、PHPって複数のコンストラクタを用意出来ないっぽいので、後方互換を考えて別ク [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>結構やっつけだけど取り敢えず動くようにはした。<br />
ほんとはConsumerクラス自体を継承するなり、拡張するなりした方がスマートだと思うんだけど、PHPって複数のコンストラクタを用意出来ないっぽいので、後方互換を考えて別クラスに。<br />
んで、getTokenだけ対応して後はConsumerクラス使ってね、って感じ。<br />
<a href="http://github.com/withgod/HTTP_OAuth">http://github.com/withgod/HTTP_OAuth</a><br />
githubの使い方が良く解らないのだが、こんな感じで良いんだろうか。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/05_042849/' rel='bookmark' title='Services_OAuthUploader 作った'>Services_OAuthUploader 作った</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/15_170048/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_Twitter 0.5.1 に users.searchを追加するpatch</title>
		<link>http://rider.withgod.jp/blog/2010/04/07_221746/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/07_221746/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 13:17:46 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=790</guid>
		<description><![CDATA[api.xmlとTwitter.phpに充てればOK。 http://code.google.com/p/withgod/source/browse/trunk/twitter/Services_Twitter.php. [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/04/22_193504/' rel='bookmark' title='twitter4j で streaming api を触ってみた'>twitter4j で streaming api を触ってみた</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>api.xmlとTwitter.phpに充てればOK。</p>
<ul>
<li><a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/Services_Twitter.php.20100407.patch">http://code.google.com/p/withgod/source/browse/trunk/twitter/Services_Twitter.php.20100407.patch</a>
<li><a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/api.xml.patch">http://code.google.com/p/withgod/source/browse/trunk/twitter/api.xml.patch</a>
</ul>
<p>テストコードも一応こんな感じで。<br />
<a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/110-users-search.phpt">http://code.google.com/p/withgod/source/browse/trunk/twitter/110-users-search.phpt</a></p>
<p>以前連絡したコミッタにメールで送ったので、多分そのうち取り込まれます。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/04/22_193504/' rel='bookmark' title='twitter4j で streaming api を触ってみた'>twitter4j で streaming api を触ってみた</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/07_221746/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>よく打つunixコマンド</title>
		<link>http://rider.withgod.jp/blog/2010/04/06_165925/</link>
		<comments>http://rider.withgod.jp/blog/2010/04/06_165925/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 07:59:25 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=787</guid>
		<description><![CDATA[via mattn ってことで、そのままだと上手く動かなかったのでちょっとアレンジしてペタりと。 結果 lla,llはlsのalias。設定弄ることが多いからsudoは当たり前っちゃあ当たり前。繋いですぐscreen - [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/16_021142/' rel='bookmark' title='よく打つUnixコマンドその2'>よく打つUnixコマンドその2</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/12/04_120002/' rel='bookmark' title='[PC] msnbot多杉'>[PC] msnbot多杉</a></li>
<li><a href='http://rider.withgod.jp/blog/2006/03/08_120001/' rel='bookmark' title='[mixi] mixi web servers'>[mixi] mixi web servers</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>via <a href="http://mattn.kaoriya.net/software/linux/20060925192157.htm">mattn</a> ってことで、そのままだと上手く動かなかったのでちょっとアレンジしてペタりと。</p>
<pre class="brush: bash; title: ; notranslate">
history -n 1 | awk '{print $1}' | sort | uniq -c | sort -r | head -20
</pre>
<p>結果</p>
<pre class="brush: plain; title: ; notranslate">
   3256 sudo
   3011 cd
   1701 ls
   1693 lla
   1523 vim
   1289 ll
   1214 lv
    959 screen
    812 find
    714 w3m
    678 ps
    635 grep
    519 svn
    442 rm
    379 cp
    371 locate
    364 perl
    297 mv
    282 mkdir
    282 aptitude
</pre>
<p>lla,llはlsのalias。設定弄ることが多いからsudoは当たり前っちゃあ当たり前。繋いですぐscreen -r だからscreenも当然か。<br />
w3mは多分殆どが -head_dump だと思われる。<br />
ってかこれだとパイプで繋いでる場合は出てないだろうから、sudo1位が当たり前かも。ってかsed,awkとか入らんよな・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/16_021142/' rel='bookmark' title='よく打つUnixコマンドその2'>よく打つUnixコマンドその2</a></li>
<li><a href='http://rider.withgod.jp/blog/2004/12/04_120002/' rel='bookmark' title='[PC] msnbot多杉'>[PC] msnbot多杉</a></li>
<li><a href='http://rider.withgod.jp/blog/2006/03/08_120001/' rel='bookmark' title='[mixi] mixi web servers'>[mixi] mixi web servers</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/04/06_165925/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>新しいPC購入, geekbench</title>
		<link>http://rider.withgod.jp/blog/2010/03/28_035102/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/28_035102/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 18:51:02 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Win]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=775</guid>
		<description><![CDATA[新しいデスクトップを買ったので、先日に引き続きgeekbenchやってみた。 今回もマウスコンピュータでお買い上げしてみた。 Corei7, メモリ8G, GTX285, Windows 7Ultimateで16万ぐらい [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/01/15_050826/' rel='bookmark' title='geekbench'>geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/11/21_113809/' rel='bookmark' title='MacBook Pro (15-inch Early 2011) geekbench'>MacBook Pro (15-inch Early 2011) geekbench</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>新しいデスクトップを買ったので、<a href="/blog/2010/01/15_050826/">先日</a>に引き続き<a href="http://www.primatelabs.ca/geekbench/">geekbench</a>やってみた。<br />
今回も<a href="http://www.mouse-jp.co.jp/">マウスコンピュータ</a>でお買い上げしてみた。<br />
Corei7, メモリ8G, GTX285, Windows 7Ultimateで16万ぐらいだった。</p>
<p style="text-align: center;"><a class="" rel="" title="taskmanager" href="http://www.flickr.com/photos/40605210@N06/4466908824/"><img class="alignnone" src="http://farm3.static.flickr.com/2797/4466908824_97be869a27.jpg" alt="taskmanager"></a></p>
<h2>geekbench結果</h2>
<h3>Summary</h3>
<table>
<tr>
<th>Section</th>
<th>Description</th>
<p><TH>Score</TH><TH>Geekbench Score</TH><br />
  </tr>
<tr>
<td>Integer</td>
<td>Processor integer performance</td>
<td>8140</td>
<td rowspan="4">7195</td>
</tr>
<tr>
<td>Floating Point</td>
<td>Processor floating point performance</td>
<td>8945</td>
</tr>
<tr>
<td>Memory</td>
<td>Memory performance</td>
<td>4217</td>
</tr>
<tr>
<td>Stream</td>
<td>Memory bandwidth performance</td>
<td>3726</td>
</tr>
<tr>
<td colspan="4">Geekbench 2.1.5 for Windows x86 (32-bit)</td>
</tr>
</table>
<h3>System Information</h3>
<table>
<tr>
<th>Operating System</th>
<td colspan="3">Microsoft Windows 7 Ultimate</td>
</tr>
<tr>
<th>Model</th>
<td>MCJ Co.,Ltd. P55-SD</td>
<th>Motherboard</th>
<td>MCJ Co.,Ltd. P55-SD</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">ID GenuineIntel Family 6 Model 30 Stepping 5</td>
</tr>
<tr>
<th>Processors</th>
<td>4</td>
<th>Threads 8</th>
</tr>
<tr>
<th>Cores</th>
<td>4</td>
<th>Memory</th>
<td>7.99 GB SDRAM 0 MHz</td>
</tr>
<tr>
<th>Processor Frequency</th>
<td>2.80 GHz</td>
<th>Bus Frequency</th>
<td>133 MHz</td>
</tr>
<tr>
<th>L1 Instruction</th>
<td>Cache 256 KB</td>
<th>L1 Data Cache</th>
<td>256 KB</td>
</tr>
<tr>
<th>L2 Cache</th>
<td>1.00 MB</td>
<th>L3 Cache</th>
<td>8.00 MB</td>
</tr>
<tr>
<th>BIOS</th>
<td colspan="3">American Megatrends Inc. V1.1B2</td>
</tr>
</table>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/01/15_050826/' rel='bookmark' title='geekbench'>geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/11/21_113809/' rel='bookmark' title='MacBook Pro (15-inch Early 2011) geekbench'>MacBook Pro (15-inch Early 2011) geekbench</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/28_035102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>radiko dashboard</title>
		<link>http://rider.withgod.jp/blog/2010/03/24_031502/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/24_031502/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 18:15:02 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=768</guid>
		<description><![CDATA[via otsune で知った、radikoのdashboard化。 これは便利、って事で早速使おうと思ったんだけど、局選択めんどくさいなあ、でかいと邪魔だなあ、ってかそれってdashboard widgetにした方がよ [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>via otsune で知った、<a href="http://otsune.tumblr.com/post/458560103/radiko-safa">radikoのdashboard化</a>。<br />
これは便利、って事で早速使おうと思ったんだけど、局選択めんどくさいなあ、でかいと邪魔だなあ、ってかそれってdashboard widgetにした方がよくね？って事で<a href="http://developer.apple.com/jp/documentation/AppleApplications/Conceptual/Dashboard_Tutorial/">Tutorial</a>見ながら初めてのdashboard widget、のはずが上手く行かなかったんだけど、前記のDashboard化を使って取り敢えず解決。</p>
<p><a href="http://rider.withgod.jp/tmp/radiko_gadget/radiko.html">コレ</a>をsafariで開いて、適当に切り出せばOK。</p>
<p>手元でdashboard widgetにしようとして失敗したのはこんな感じ。<br />
左がちゃんとdashboard widget化した状態で、右が上のhtmlをsafariで切り出した物。</p>
<p style="text-align: center;"><a class="" rel="" title="スクリーンショット（2010-03-24 2.56.14）" href="http://www.flickr.com/photos/40605210@N06/4457949538/"><img class="alignnone" src="http://farm3.static.flickr.com/2708/4457949538_176693239c.jpg" alt="スクリーンショット（2010-03-24 2.56.14）"></a></p>
<p>ちゃんとplayerを解析すればどうにかなると思うんだけど、小さいプレイヤーでチャンネルを選ぶ、は達成出来てるので満足。<br />
恐らくdashboardでswfが動かない訳ではなく、playerのhtmlとdashboardの仕様があってないだけだと思うんだけど・・<br />
#dashboardとか全然知らないので適当言ってるかも</p>
<p>関西の人はradiko.htmlとjqueryのjsを落として、コメントアウトしてる部分を使うと良いかと。<br />
ってか多分だけど、サーバのhtmlを利用したら毎回リクエストしなくちゃいけない気がするので(=うちが落ちてると使えない)、ローカルに落としたファイルを使った方が良いかもって事で、<a href="http://rider.withgod.jp/tmp/radiko_gadget/radiko.zip">zipで置いときます</a>。</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/24_031502/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>本棚の画像</title>
		<link>http://rider.withgod.jp/blog/2010/03/23_150734/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/23_150734/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 06:07:34 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[diary]]></category>
		<category><![CDATA[etc]]></category>
		<category><![CDATA[ネタ]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=763</guid>
		<description><![CDATA[最近本棚を追加して、漫画と技術書の類いを分けられたので写真撮ってみた。 そして意外と技術書が少ない事にしょんぼり、まぁ最近は殆ど買ってないし、昔よく買ってた時は月刊誌系が多かったからだと自分を慰めて？みる。 流石にもう読 [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>最近本棚を追加して、漫画と技術書の類いを分けられたので写真撮ってみた。<br />
そして意外と技術書が少ない事にしょんぼり、まぁ最近は殆ど買ってないし、昔よく買ってた時は月刊誌系が多かったからだと自分を慰めて？みる。</p>
<p><a class="" rel="" title="IMG_0030" href="http://www.flickr.com/photos/40605210@N06/4450416447/"><img src="http://farm5.static.flickr.com/4001/4450416447_43b1b1a5be_m.jpg" alt="IMG_0030"></a><a class="" rel="" title="IMG_0031" href="http://www.flickr.com/photos/40605210@N06/4450465175/"><img src="http://farm5.static.flickr.com/4036/4450465175_1603073e05_m.jpg" alt="IMG_0031"></a></p>
<p>流石にもう読まねーだろ、って本は会社に捨て^H^H置いてきたりしてるし、いらん本は結構捨ててきた。<br />
と、プレビューしてたらまだVBの本とかあるな、8年ぐらい前に買ったんじゃないかこれ、、、<br />
デザパタ本とかのヤニまみれっぷりが自分でも軽く引けるw</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/23_150734/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>流石佐川2</title>
		<link>http://rider.withgod.jp/blog/2010/03/21_214456/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/21_214456/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 12:44:56 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[diary]]></category>
		<category><![CDATA[etc]]></category>
		<category><![CDATA[ネタ]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=761</guid>
		<description><![CDATA[⇒ 配達店へ持ち帰りました。 ↑ 2010年03月21日 目黒店から配達に出発致しました。 ↑ 2010年03月19日 11:26 ご不在でしたので、お預かりしております。 ↑ 2010年03月19日 目黒店から配達に出 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/03/21_015336/' rel='bookmark' title='流石佐川'>流石佐川</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<pre>⇒ 配達店へ持ち帰りました。
↑ 2010年03月21日 目黒店から配達に出発致しました。
↑ 2010年03月19日 11:26 ご不在でしたので、お預かりしております。
↑ 2010年03月19日 目黒店から配達に出発致しました。
↑ 2010年03月18日 12:38 ご不在でしたので、お預かりしております。
↑ 2010年03月18日 目黒店から配達に出発致しました。
↑ 2010年03月16日 18:36 太田店を出発致しました。
↑ お荷物をお預かり致しました。</pre>
<p>不在通知無いし、ってか昨日の履歴消えてるし、どーいうことなの・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/03/21_015336/' rel='bookmark' title='流石佐川'>流石佐川</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/21_214456/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>流石佐川</title>
		<link>http://rider.withgod.jp/blog/2010/03/21_015336/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/21_015336/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 16:53:36 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[diary]]></category>
		<category><![CDATA[etc]]></category>
		<category><![CDATA[ネタ]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=758</guid>
		<description><![CDATA[今日届く予定の荷物が届かないなーと、夕方ぐらいに荷物お問い合わせサービスで確認 ↑ 2010年03月20日 目黒店から配達に出発致しました。 ↑ 2010年03月19日 11:26 ご不在でしたので、お預かりしております [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/03/21_214456/' rel='bookmark' title='流石佐川2'>流石佐川2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>今日届く予定の荷物が届かないなーと、夕方ぐらいに荷物お問い合わせサービスで確認</p>
<pre>↑ 2010年03月20日 目黒店から配達に出発致しました。
↑ 2010年03月19日 11:26 ご不在でしたので、お預かりしております。
↑ 2010年03月19日 目黒店から配達に出発致しました。
↑ 2010年03月18日 12:38 ご不在でしたので、お預かりしております。
↑ 2010年03月18日 目黒店から配達に出発致しました。
↑ 2010年03月16日 18:36 太田店を出発致しました。
↑ お荷物をお預かり致しました。 </pre>
<p>で、21:00ぐらいにも来てないなーと、したの郵便受けにまで(うちは2階)不在通知が無いか見に行ったりもして確認するも不在通知無し。<br />
そんなこと忘れてて、今問い合わせサービスで確認</p>
<pre>⇒ 配達店へ持ち帰りました。
↑ 2010年03月20日 目黒店から配達に出発致しました。
↑ 2010年03月19日 11:26 ご不在でしたので、お預かりしております。
↑ 2010年03月19日 目黒店から配達に出発致しました。
↑ 2010年03月18日 12:38 ご不在でしたので、お預かりしております。
↑ 2010年03月18日 目黒店から配達に出発致しました。
↑ 2010年03月16日 18:36 太田店を出発致しました。
↑ お荷物をお預かり致しました。 </pre>
<p>不在でしたが無いってどういう事なの・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/03/21_214456/' rel='bookmark' title='流石佐川2'>流石佐川2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/21_015336/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tumblr_photo_down</title>
		<link>http://rider.withgod.jp/blog/2010/03/16_235513/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/16_235513/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 14:55:13 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=748</guid>
		<description><![CDATA[dsbdを眺めてたら、javaで出来たtumblr-photoなる物が流れてきた。 javaはvmの起動遅いからなーとか思ったり、H2かー、とか、1年以上手を入れられてないのかー、とか思ったので、pythonで同じような [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/07/18_120001/' rel='bookmark' title='おうちのgw死亡'>おうちのgw死亡</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/13_174432/' rel='bookmark' title='google code を svn =&gt; hg'>google code を svn => hg</a></li>
<li><a href='http://rider.withgod.jp/blog/2009/12/27_120001/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチ'>wordpress 2.9にapcいれた場合のベンチ</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>dsbdを眺めてたら、javaで出来た<a href="http://code.google.com/p/tumblr-photo/">tumblr-photo</a>なる物が流れてきた。<br />
javaはvmの起動遅いからなーとか思ったり、H2かー、とか、1年以上手を入れられてないのかー、とか思ったので、pythonで同じようなのを書いてみた。<br />
最近pythonも触ってなかったので、復習も兼ねて。</p>
<p><a href="http://bitbucket.org/withgod/tumblr-photo-down/src/tip/tumblr_photo_down.py">http://bitbucket.org/withgod/tumblr-photo-down/src/tip/tumblr_photo_down.py</a><br />
<a href="http://code.google.com/p/python-tumblr/">python-tumblr</a>に依存してます。<br />
このライブラリはTumblrIterator(postのiterator)とか作ってくれるので、ビューワ系作るには良さげ、ただtumblr自体のAPIがしょぼいので、reblog系はめんどくさげ。</p>
<p>引数にtumblrのIDを指定すれば動きます。</p>
<pre class="brush: bash; title: ; notranslate">
./tumblr_photo_down.py withgod
</pre>
<p>python 2.5以上じゃないと動かないと思う、2.6は多分大丈夫。<br />
動作確認とった環境</p>
<ul>
<li>debian sid + python 2.5.5(作った環境、ここから下は動作確認)
<li>windows vista + python 2.6.2
<li>mac os(10.2) python 2.6.4(portから入れた奴)
</ul>
<p>ファイルの情報はsqliteなdbに書き込んでるので、落としてきたファイルは移動させても問題無し。<br />
postのidと、画像ファイルのmd5で重複チェックしてます。<br />
jpgしか落としません。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2008/07/18_120001/' rel='bookmark' title='おうちのgw死亡'>おうちのgw死亡</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/13_174432/' rel='bookmark' title='google code を svn =&gt; hg'>google code を svn => hg</a></li>
<li><a href='http://rider.withgod.jp/blog/2009/12/27_120001/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチ'>wordpress 2.9にapcいれた場合のベンチ</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/16_235513/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google code を svn =&gt; hg</title>
		<link>http://rider.withgod.jp/blog/2010/03/13_174432/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/13_174432/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 08:44:32 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=743</guid>
		<description><![CDATA[svk使うのも面倒だし、今更ながらgoogle codeがmecurialに対応しているのを知ったので移行。 linuxだと割と簡単に移行できるんだけど、windows環境だと大変っぽい(必要なpython bindin [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/22_193504/' rel='bookmark' title='twitter4j で streaming api を触ってみた'>twitter4j で streaming api を触ってみた</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>svk使うのも面倒だし、今更ながらgoogle codeがmecurialに対応しているのを知ったので移行。<br />
linuxだと割と簡単に移行できるんだけど、windows環境だと大変っぽい(必要なpython bindingがUTF8がどーたらで動かすの大変っぽい)<br />
って事で俺はdebian squeezeで行いました。</p>
<pre class="brush: plain; title: ; notranslate">
dpkg -l | grep mercurial
ii  mercurial 1.4.3-1  scalable distributed version control system
ii  mercurial-common 1.4.3-1 scalable distributed version control system (common files)
</pre>
<p>hg同梱？のconvertを使って移行する、hgrcに設定が必要なので次の行を追加。</p>
<pre class="brush: plain; title: ; notranslate">
[extensions]
hgext.convert=
</pre>
<p>後は適当なディレクトリでおもむろに次を実行</p>
<pre class="brush: bash; title: ; notranslate">
hg convert -s svn http://withgod.googlecode.com/svn/trunk/ withgod
</pre>
<p>結構時間掛かります、大量にコミットしてる場合はsvnsyncとか使ってローカルにコピーした上でやったほうが吉。</p>
<p>後はgoogle側で prj home=>admin=>source=>Version control systemでmecurialに変更してから、出来上がったディレクトリでpushするだけ。</p>
<pre class="brush: bash; title: ; notranslate">
cd ./withgod
hg push https://withgod.googlecode.com/hg/
</pre>
<p>ちなみにmecurialに移行後でも何故かsvnは生きてたりするので、このままこっそり裏でsvnを使い続けて表に出さないとか出来ると思う(やってないけど、hgも出来ると思われる・・・)</p>
<p>と言いながらやってみたけど、使い道がsnipetってか、prj作るまでもないコードを置いてるだけだから、google code使うぐらいなら<a href="http://bitbucket.org/">bitbucket</a>でよかったかもしれない・・・<br />
svnならまだ見かけるけど、hgで特定のディレクトリ以下だけ使う、なんて方法取らないよなあ・・・(&#8216;A`)</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/22_193504/' rel='bookmark' title='twitter4j で streaming api を触ってみた'>twitter4j で streaming api を触ってみた</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/24_104607/' rel='bookmark' title='Services_Twitter 0.5.0 140文字制限に引っかかる問題'>Services_Twitter 0.5.0 140文字制限に引っかかる問題</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/13_174432/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GUIプログラミング言語</title>
		<link>http://rider.withgod.jp/blog/2010/03/07_155409/</link>
		<comments>http://rider.withgod.jp/blog/2010/03/07_155409/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 06:54:09 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=740</guid>
		<description><![CDATA[社内で使ってるしゃべる(twitter clone)用のクライアントが欲しくて(public timelineを読めるクライアント)。 無いみたいだから自分で作るかー、と物色。 取り合えず候補で思いついたのがこんな感じ。 [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>社内で使ってる<a href="http://sites.google.com/site/shovelx/">しゃべる(twitter clone)</a>用のクライアントが欲しくて(public timelineを読めるクライアント)。<br />
無いみたいだから自分で作るかー、と物色。</p>
<p>取り合えず候補で思いついたのがこんな感じ。</p>
<ul>
<li>perl/tk
<li>swing
<li>swt,jface
<li>air
<li>qt
</ul>
<p>perl/tkはランタイム入れなくちゃいけないのでパス(ってか今時tkってのもね・・・)。<br />
airはmxmlが便利なんだけど、最近ずっとflex触ってたのでパス。<br />
swingは遅いからパス。<br />
触ったことないし、swt試してみるか、って事でswtを触る。</p>
<p>まずまともなRADが無いため手でシコシコ書く、twitter関連のところはt4jが助けてくれるので楽チン、ただしUIがめんどくさくてめんどくさくて・・・<br />
取り合えず作りはしたものの、それ以上手を入れる気がしなくて放置。</p>
<p>これじゃあかんなと、qtを触ってみる。<br />
QT CreatorとかいうIDEとdesignerというRADが付随してて、超簡単にGUIが作れる、ダイアログとかも簡単に作れて感激。<br />
ただし、それ以外の部分が手間掛かりまくって泣ける、泣ける。<br />
自分が普段からc++なんて触ってないってのもあるんだけど、それだけじゃないめんどくささ。<br />
そもそもjavaですら面倒でLLな言語使う俺がc++ってのが間違い。<br />
そして当たり前のようにt4jみたいな便利なものは無い、、、(幾つかライブラリが有るにはあるが、開発下火・・・)<br />
GUI作って、適当に表示させて終了。<br />
自動更新とか色々つける前にかったるくて力尽きる。</p>
<p>PyQTなら楽かなーと思い始める。<br />
ちょっと試してみたけど、Designerで作ったUIを.pyに変換してくれて、スクリプトからnewすれば簡単にUIも用意出来る。<br />
これは！ってランタイム入れる問題とか有るじゃん・・・←今ココ</p>
<p>このままPyQT使うか、素直にair使うか、どうせwindows環境だけなんだからこれをきっかけにC#でも触るか、jface試してみるか・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2007/07/23_120001/' rel='bookmark' title='[Perl][メモ] Perlの@INCへの追加'>[Perl][メモ] Perlの@INCへの追加</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/03/07_155409/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Services_Twitter 0.5.0 140文字制限に引っかかる問題</title>
		<link>http://rider.withgod.jp/blog/2010/02/24_104607/</link>
		<comments>http://rider.withgod.jp/blog/2010/02/24_104607/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 01:46:07 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=737</guid>
		<description><![CDATA[Services_Twitterはご丁寧にTwitterに渡す前に中で140文字制限を行っているが、その際に文字数を数える関数がstrlenなのでmultibyteな環境で問題が発生しちゃう。 修正点は簡単、mb_str [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/07_221746/' rel='bookmark' title='Services_Twitter 0.5.1 に users.searchを追加するpatch'>Services_Twitter 0.5.1 に users.searchを追加するpatch</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://pear.php.net/package/Services_Twitter/">Services_Twitter</a>はご丁寧にTwitterに渡す前に中で140文字制限を行っているが、その際に文字数を数える関数がstrlenなのでmultibyteな環境で問題が発生しちゃう。</p>
<p>修正点は簡単、mb_strlenを使えば良いだけなのでこんなpatchでOK。<br />
<a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/Services_Twitter.php.patch">http://code.google.com/p/withgod/source/browse/trunk/twitter/Services_Twitter.php.patch</a><br />
とりあえずうちでは問題なく動作してます、phpはあまり自信無い。</p>
<p>公式に送りつけたので、一応mb_strlenが有るかどうかぐらいはチェックしてる。<br />
Twitterの性質上、mb_*が必須でいいじゃん、とも思うんだけど、中々あっちの人々にはその辺を理解させるのが大変なのでパス(というか俺の英語力じゃ絶対無理)、せめて採用して貰える形に。<br />
と思ったんだけど、diggの中の人が対応してくれるっぽいので期待出来るかも？</p>
<p>つーか、<a href="http://www.google.co.jp/search?q=Services_Twitter+mb_strlen">以前からずっとこの状況だった</a>みたいだし、報告ぐらいしようよ、、、</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/04/07_221746/' rel='bookmark' title='Services_Twitter 0.5.1 に users.searchを追加するpatch'>Services_Twitter 0.5.1 に users.searchを追加するpatch</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/09/24_221709/' rel='bookmark' title='Hudsonでsimpletestのテストレポートを出す(出せてない)'>Hudsonでsimpletestのテストレポートを出す(出せてない)</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/02/24_104607/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YFrog Oauth Post 2</title>
		<link>http://rider.withgod.jp/blog/2010/02/15_234656/</link>
		<comments>http://rider.withgod.jp/blog/2010/02/15_234656/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:46:56 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=730</guid>
		<description><![CDATA[先日あげた記事の続き。 前回の方法で取得したsigned urlを使ってyfrogを試していると、yfrogから時々エラーが返ってくる。 なんでじゃーって事で調査したところ、次のような感じ。 t4j単体で verify_ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/08/19_120002/' rel='bookmark' title='Thunderbird'>Thunderbird</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>先日あげた記事の続き。</p>
<p>前回の方法で取得したsigned urlを使ってyfrogを試していると、<strong>yfrog</strong>から時々エラーが返ってくる。<br />
なんでじゃーって事で調査したところ、次のような感じ。</p>
<ul>
<li>t4j単体で verify_credentialsを利用した場合はエラー発生しない</li>
<li>取り出したURLをquery stringで利用した場合、10回に1,2回検証失敗が返る</li>
<li>取り出したURLをちゃんとauthorizationヘッダに付加して動作させた場合は失敗しない</li>
</ul>
<p>ちなみにquery stringで動作させてみたのは何となく突っ込んだら動いたので、そのまま検証してたら失敗がちらほら。<br />
authorizationヘッダって必須じゃなかったっけ？と思ったんだけど(実際、2次ソースを眺めてた限りだと必須と見て<br />
きている)、oatuh.netの文章を見てみるとこんな感じ。</p>
<blockquote><p>
<a href="http://oauth.net/core/1.0a/#rfc.section.5.4">5.4.  OAuth HTTP Authorization Scheme</a><br />
This section defines an [RFC2617] extension to support OAuth. It uses the standard HTTP Authorization and WWW-Authenticate headers to pass OAuth Protocol Parameters.<br />
It is <strong>RECOMMENDED</strong> that Service Providers accept the HTTP Authorization header. Consumers<strong> SHOULD be</strong> able to send OAuth Protocol Parameters in the OAuth Authorization header.<br />
The extension auth-scheme (as defined by [RFC2617] ) is OAuth and is case-insensitive.
</p></blockquote>
<p>RECOMMENDEDでSHOULD beなので、必須では無さそうな気が・・・<br />
すぐ下でもこんな感じで書いてる。</p>
<blockquote><p>
<a href="http://oauth.net/core/1.0a/#rfc.section.A.5.3">Appendix A.5.3.  Requesting Protected Resource</a><br />
All together, the Consumer request for the photo is: </p>
<p>http://photos.example.net/photos?file=vacation.jpg&#038;size=original</p>
<p>                Authorization: OAuth realm=&#8221;http://photos.example.net/&#8221;,<br />
                oauth_consumer_key=&#8221;dpf43f3p2l4k3l03&#8243;,<br />
                oauth_token=&#8221;nnch734d00sl2jdk&#8221;,<br />
                oauth_signature_method=&#8221;HMAC-SHA1&#8243;,<br />
                oauth_signature=&#8221;tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D&#8221;,<br />
                oauth_timestamp=&#8221;1191242096&#8243;,<br />
                oauth_nonce=&#8221;kllo9940pd9333jh&#8221;,<br />
                oauth_version=&#8221;1.0&#8243;</p>
<p><strong> And if using query parameters:</strong></p>
<p>http://photos.example.net/photos?file=vacation.jpg&#038;size=original&#038;oauth_consumer_key=dpf43f3p2l4k3l03&#038;oauth_token=nnch734d00sl2jdk&#038;oauth_signature_method=HMAC-SHA1&#038;oauth_signature=tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D&#038;oauth_timestamp=1191242096&#038;oauth_nonce=kllo9940pd9333jh&#038;oauth_version=1.0</p>
</blockquote>
<p>うーん・・・</p>
<p>取り敢えず前記の検証結果から、t4jの問題というのは無さそう。</p>
<p>こっから先は憶測だけど、こんな感じじゃないのかなあ・・・</p>
<ul>
<li>yfrogはquery stringで委譲されたURLをtwitterに投げてる</li>
<li>twitter側でAPが混在してて、Authorizationヘッダが必須なのと必須じゃないのが居る</li>
</ul>
<p>せっかく1次ソース読んでも英語の理解力ががががが。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/02/11_193309/' rel='bookmark' title='YFrog OAuth Post'>YFrog OAuth Post</a></li>
<li><a href='http://rider.withgod.jp/blog/2007/08/19_120002/' rel='bookmark' title='Thunderbird'>Thunderbird</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/16_193353/' rel='bookmark' title='Services_Twitter_Uploaderを使って簡単Post'>Services_Twitter_Uploaderを使って簡単Post</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/02/15_234656/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YFrog OAuth Post</title>
		<link>http://rider.withgod.jp/blog/2010/02/11_193309/</link>
		<comments>http://rider.withgod.jp/blog/2010/02/11_193309/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 10:33:09 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=718</guid>
		<description><![CDATA[twitterAPIのBasic認証の廃止が予告されて久しい今日この頃、YFrogがoauthでの投稿に対応していたので試しました。 とある事情でoauthクライアントのデモを作る必要があり、GUI作らなくちゃいけなかっ [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/15_234656/' rel='bookmark' title='YFrog Oauth Post 2'>YFrog Oauth Post 2</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">twitterAPI</a>の<a href="http://techcrunch.com/2009/12/09/twitter-le-web-2009/">Basic認証の廃止が予告</a>されて久しい今日この頃、YFrogが<a href="http://code.google.com/p/imageshackapi/wiki/TwitterAuthentication">oauthでの投稿</a>に対応していたので試しました。</p>
<p>とある事情でoauthクライアントのデモを作る必要があり、GUI作らなくちゃいけなかったのでswtでいっかーな感じでjavaを採用、javaなら取り合えず<a href="http://twitter4j.org/">Twitter4J</a>でいっか、PINベース認証も組み込まれてるし最高。<br />
な感じでT4Jを利用したはいいけど、自前でOAuthを実装してる+綺麗に隠蔽されてるのでverify_condのURLの取得にちょっと手間取りました。<br />
#想定外の使い方+ライブラリとしてすごく綺麗に作られてて、Userには見えないように隠蔽されてるのでライブラリの問題ではありません。</p>
<p>作者の<a href="http://twitter.com/yusukey">@yusukey</a>の<a href="http://groups.google.com/group/twitter4j-j/msg/ac858812bbc71a3f">力を借りて</a>、かなり強引気味なhack。<br />
上のyusukeyのメールのリプライをそのまま実装しただけです。<br />
#勝手に実装した場合はhackつーよりfu*kな実装になった事は間違いない。</p>
<p>ってことでコード、t4j,commons-httpclient 3.0とその周辺に依存しています。<br />
<a href="http://code.google.com/p/withgod/source/browse/trunk/twitter/YFrogSample.java">http://code.google.com/p/withgod/source/browse/trunk/twitter/YFrogSample.java</a></p>
<pre class="brush: java; title: ; notranslate">
package sample;

import java.io.File;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;

import twitter4j.conf.Configuration;
import twitter4j.conf.ConfigurationContext;
import twitter4j.http.AccessToken;
import twitter4j.http.OAuthAuthorization;

public class YFrogSample {

	public static void main(String[] args) throws Exception{
		if (args.length != 2 || !(new File(args[1])).exists()) {
			System.err.println(&quot;no parameter/invalid filepath&quot;);
			System.exit(1);
		}
		Configuration conf = ConfigurationContext.getInstance();
		System.out.println(conf);
		OAuthAuthorization oauth = new OAuthAuthorization(conf, conf.getOAuthConsumerKey(), conf.getOAuthConsumerSecret(),
															new AccessToken(conf.getOAuthAccessToken(), conf.getOAuthAccessTokenSecret()));
		YFHttpURLConnection yfCon = new YFHttpURLConnection();
		oauth.setAuthorizationHeader(&quot;GET&quot;, &quot;https://api.twitter.com/1/account/verify_credentials.xml&quot;,null, yfCon); 

		String signedURL = yfCon.authorizationHeader;
		System.out.println(&quot;signedURL&quot; + signedURL);
		signedURL = signedURL.replaceFirst(&quot;^OAuth &quot;, &quot;&quot;);

		String[] signedURLs = signedURL.split(&quot;,&quot;);
		String verify_url = &quot;https://api.twitter.com/1/account/verify_credentials.xml?&quot;;
		System.out.println(&quot;signed parameters&quot;);
		for (int i = 0; i &lt; signedURLs.length; i++) {
			String tmp  = signedURLs[i].replaceAll(&quot;\&quot;&quot;, &quot;&quot;);
			String[] kv = tmp.split(&quot;=&quot;);
			System.out.println(&quot;\t&quot; + i + &quot;:&quot; + kv[0] + &quot;/&quot; + URLDecoder.decode(kv[1], &quot;UTF-8&quot;));
			verify_url += kv[0] + &quot;=&quot; + URLDecoder.decode(kv[1], &quot;UTF-8&quot;) + &quot;&amp;&quot;;
		}
		verify_url = verify_url.replaceFirst(&quot;&amp;$&quot;, &quot;&quot;);
		System.out.println(&quot;signed url rebuild [&quot; + verify_url + &quot;]&quot;);

		HttpClient client = new HttpClient();
		PostMethod post   = new PostMethod(&quot;http://yfrog.com/api/upload&quot;);

		File f = new File(args[1]);
		Part[] parts = {
				new StringPart(&quot;auth&quot;, &quot;oauth&quot;),
				new StringPart(&quot;verify_url&quot;, verify_url),
				new StringPart(&quot;username&quot;, args[0]),
				new StringPart(&quot;password&quot;, &quot;&quot;),
				new FilePart(&quot;media&quot;, f)
		};
		post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
		client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

		int status;
		try {
		status = client.executeMethod(post);
		if (status == HttpStatus.SC_OK) {
			System.out.println(&quot;post complete&quot;);
			System.out.println(post.getResponseBodyAsString(1024*2));
		} else {
			System.err.println(&quot;post failure&quot;);
			System.err.println(HttpStatus.getStatusText(status));
		}
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			post.releaseConnection();
		}
	}
	static class YFHttpURLConnection extends HttpURLConnection {
		public String authorizationHeader = null;
		protected YFHttpURLConnection(URL u) {
			super(u);
		}
		public YFHttpURLConnection() {
			super(null);
		}

		public void addRequestProperty(String key, String value){
			if(&quot;Authorization&quot;.equals(key)){
				System.out.println(&quot;catch Authorization header [&quot; + value + &quot;]&quot;);
				authorizationHeader = value;
			}
		}
		@Override
		public void disconnect() {
		}
		@Override
		public boolean usingProxy() {
			return false;
		}
		@Override
		public void connect() throws IOException {
		}
	}
}
</pre>
<p>Javaとか普段は殆ど触らないのでおかしい点があるかも知れないけど、取り合えず動作はしています。<br />
ただ、この実装を正式に組み込むのはどうかと思います、必要に応じた実装であり、結構dirtyです。<br />
T4Jの3.0か、YF4Jを作ると@yusukeyが<a href="http://twitter.com/yusukey/status/8911702019">言っていた</a>ので期待 :)</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2010/12/13_015940/' rel='bookmark' title='JSONObjectのgetLongの挙動がおかしい'>JSONObjectのgetLongの挙動がおかしい</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/02/15_234656/' rel='bookmark' title='YFrog Oauth Post 2'>YFrog Oauth Post 2</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/01/02_162307/' rel='bookmark' title='google data api で google calendar でカレンダーの新規作成が出来ない'>google data api で google calendar でカレンダーの新規作成が出来ない</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/02/11_193309/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>geekbench</title>
		<link>http://rider.withgod.jp/blog/2010/01/15_050826/</link>
		<comments>http://rider.withgod.jp/blog/2010/01/15_050826/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:08:26 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Win]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=711</guid>
		<description><![CDATA[geekbenchなるものを見つけたので、最近買ったmacbookの性能が知りたくて試してみる。 比較用にwinのdesktopの値もペタリ win desktop summary Section Description [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/11/21_113809/' rel='bookmark' title='MacBook Pro (15-inch Early 2011) geekbench'>MacBook Pro (15-inch Early 2011) geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/28_035102/' rel='bookmark' title='新しいPC購入, geekbench'>新しいPC購入, geekbench</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.primatelabs.ca/geekbench/">geekbench</a>なるものを見つけたので、最近買ったmacbookの性能が知りたくて試してみる。<br />
比較用にwinのdesktopの値もペタリ</p>
<h2>win desktop</h2>
<h3>summary</h3>
<table>
<tr>
<th>Section</th>
<th>Description</th>
<th>Score</th>
<th>Geekbench Score</th>
</tr>
<tr>
<td>Integer</td>
<td>Processor integer performance</td>
<td>5380</td>
<td rowspan="4">4076</td>
</tr>
<tr>
<td>Floating Point</td>
<td>Processor floating point performance</td>
<td>4489</td>
</tr>
<tr>
<td>Memory</td>
<td>Memory performance</td>
<td>1921</td>
</tr>
<tr>
<td>Stream</td>
<td>Memory bandwidth performance</td>
<td>2379</td>
</tr>
<tr>
<td colspan="4">Geekbench 2.1.4 for Windows x86 (32-bit)</td>
</tr>
</table>
<h3>System Information</h3>
<table>
<tr>
<th>Operating System</th>
<td colspan="3">Microsoft Windows Vista Ultimate</td>
</tr>
<tr>
<th>Model</th>
<td>MICRO-STAR INTERNATIONAL CO.,LTD MS-7360</td>
<th>Motherboard</th>
<td>MICRO-STAR INTERNATIONAL CO.,LTD MS-7360</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz</td>
</tr>
<tr>
<th>Processor ID</th>
<td colspan="3">GenuineIntel Family 6 Model 15 Stepping 11 </td>
</tr>
<tr>
<th>Processors</th>
<td>1</td>
<th>Threads</th>
<td>4</td>
</tr>
<tr>
<th>Cores</th>
<td>4</td>
<th>Memory</th>
<td>3.00 GB SDRAM 0 MHz</td>
</tr>
<tr>
<th>Processor Frequency</th>
<td>2.40 GHz</td>
<th>Bus Frequency</th>
<td>267 MHz</td>
</tr>
<tr>
<th>L1 Instruction Cache</th>
<td>128 KB</td>
<th>L1 Data Cache</th>
<td>128 KB</td>
</tr>
<tr>
<th>L2 Cache</th>
<td>8.00 MB</td>
<th>L3 Cache</th>
<td>0.00 B</td>
</tr>
<tr>
<th>BIOS</th>
<td colspan="3">American Megatrends Inc. V1.AB2</td>
</tr>
</table>
<h2>macbook pro</h2>
<h3>summary</h3>
<table>
<tr>
<th>Section</th>
<th>Description</th>
<th>Score</th>
<th>Geekbench Score</th>
</tr>
<tr>
<td>Integer</td>
<td>Processor integer performance</td>
<td>2928</td>
<td rowspan="4">3541</td>
</tr>
<tr>
<td>Floating Point</td>
<td>Processor floating point performance</td>
<td>5241</td>
</tr>
<tr>
<td>Memory</td>
<td>Memory performance</td>
<td>2516</td>
</tr>
<tr>
<td>Stream</td>
<td>Memory bandwidth performance</td>
<td>1791</td>
</tr>
<tr>
<td colspan="4">Geekbench 2.1.4 for Mac OS X x86(32-bit)</td>
</tr>
</table>
<h3>System Information</h3>
<table>
<tr>
<th>Operating System</th>
<td colspan="3">Mac OS X 10.6.2 (Build 10C540)</td>
</tr>
<tr>
<th>Model</th>
<td>MacBook Pro(13-inch Mid 2009)</td>
<th>Motherboard</th>
<td>Apple Inc. Mac-F2268AC8</td>
</tr>
<tr>
<th>Processor</th>
<td colspan="3">Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz</td>
</tr>
<tr>
<th>Processor ID</th>
<td colspan="3">GenuineIntel Family 6 Model 23 Stepping 10 </td>
</tr>
<tr>
<th>Processors</th>
<td>1</td>
<th>Threads</th>
<td>2</td>
</tr>
<tr>
<th>Cores</th>
<td>2</td>
<th>Memory</th>
<td>4.00 GB 1067MHz DDR3</td>
</tr>
<tr>
<th>Processor Frequency</th>
<td>2.53 GHz</td>
<th>Bus Frequency</th>
<td>1.06 GHz</td>
</tr>
<tr>
<th>L1 Instruction Cache</th>
<td>32.0 KB</td>
<th>L1 Data Cache</th>
<td>32.0 KB</td>
</tr>
<tr>
<th>L2 Cache</th>
<td>3.00 MB</td>
<th>L3 Cache</th>
<td>0.00 B</td>
</tr>
<tr>
<th>BIOS</th>
<td colspan="3">Apple Inc. MBP55.88Z.00AC.B03.0906151708</td>
</tr>
</table>
<p>やっぱ思った感じにはなったかな、CPUは新しいとはいえ、C2Q相手じゃ分が悪いよね(2.4ってなってるけど、OCして3.0で動かしてます。)<br />
メモリはDDR3はやっぱ強い。Streamで負けてるのがちょっと意外だけど・・・<br />
ってか、geekbenchって名前で勘違いしてたけどGNUとかじゃなかったのね・・・64bitはレジストしろとか怒られてしょんぼり。<br />
まぁ何が疲れたって、結果をtableに起こすのが疲れた。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2011/11/21_113809/' rel='bookmark' title='MacBook Pro (15-inch Early 2011) geekbench'>MacBook Pro (15-inch Early 2011) geekbench</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/03/28_035102/' rel='bookmark' title='新しいPC購入, geekbench'>新しいPC購入, geekbench</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/01/15_050826/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 2.9にapcいれた場合のベンチその2</title>
		<link>http://rider.withgod.jp/blog/2010/01/08_153613/</link>
		<comments>http://rider.withgod.jp/blog/2010/01/08_153613/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:36:13 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[memo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=700</guid>
		<description><![CDATA[先日の日記に続いて第二弾。 今回はこのblogに入れたのと同じpluginを導入しての計測も追加。 #このblogとは別鯖です。 評価環境 環境が以前とはちょっと違うので明記。 評価環境 debian sid CPU:  [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2009/12/27_120001/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチ'>wordpress 2.9にapcいれた場合のベンチ</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="/blog/2009/12/27_120001/">先日の日記</a>に続いて第二弾。<br />
今回はこのblogに入れたのと同じpluginを導入しての計測も追加。<br />
#このblogとは別鯖です。</p>
<h3>評価環境</h3>
<p>環境が以前とはちょっと違うので明記。</p>
<dl>
<dt>評価環境</dt>
<dd>debian sid</dd>
<dd>CPU: Pentiu Dual-Core E5200(2.5Ghz) メモリ2G HDD</p>
<dd>apache(2.2.14),php(5.2.11),mysql(5.1.41)はすべてaptで設定は多分デフォルト</dd>
<dd>wordpressは2.9を入れてそのまま利用</dd>
<dd>plugin導入時は16個程動いてる状態</dd>
</dl>
<p>前みたいに仮想に対しての計測では無く同一サーバ上でabも動かしてたり、他のサービスも共存してたりでCPUがスカスカの状態ではないので計測回数を多めに。</p>
<h3>計測結果</h3>
<p>さくっと結果。</p>
<pre>
/tmp/20100108% grep ./*
./plugins-napc_010-100_1.log:Requests per second:    3.13 [#/sec] (mean)
./plugins-napc_010-100_2.log:Requests per second:    3.42 [#/sec] (mean)
./plugins-napc_010-100_3.log:Requests per second:    3.57 [#/sec] (mean)
./plugins-napc_010-100_4.log:Requests per second:    3.57 [#/sec] (mean)
./plugins-napc_010-100_5.log:Requests per second:    3.60 [#/sec] (mean)
./plugins-napc_010-100_6.log:Requests per second:    3.39 [#/sec] (mean)
./plugins-napc_010-100_7.log:Requests per second:    3.59 [#/sec] (mean)
./plugins-napc_010-100_8.log:Requests per second:    3.58 [#/sec] (mean)
./plugins-napc_010-100_9.log:Requests per second:    3.60 [#/sec] (mean)
./plugins-yapc_010-100_1.log:Requests per second:    5.09 [#/sec] (mean)
./plugins-yapc_010-100_2.log:Requests per second:    5.24 [#/sec] (mean)
./plugins-yapc_010-100_3.log:Requests per second:    4.84 [#/sec] (mean)
./plugins-yapc_010-100_4.log:Requests per second:    5.27 [#/sec] (mean)
./plugins-yapc_010-100_5.log:Requests per second:    5.21 [#/sec] (mean)
./plugins-yapc_010-100_6.log:Requests per second:    5.26 [#/sec] (mean)
./plugins-yapc_010-100_7.log:Requests per second:    5.27 [#/sec] (mean)
./plugins-yapc_010-100_8.log:Requests per second:    5.24 [#/sec] (mean)
./plugins-yapc_010-100_9.log:Requests per second:    5.25 [#/sec] (mean)
./simple-napc_010-100_1.log:Requests per second:    4.29 [#/sec] (mean)
./simple-napc_010-100_2.log:Requests per second:    4.33 [#/sec] (mean)
./simple-napc_010-100_3.log:Requests per second:    4.21 [#/sec] (mean)
./simple-napc_010-100_4.log:Requests per second:    4.26 [#/sec] (mean)
./simple-napc_010-100_5.log:Requests per second:    4.33 [#/sec] (mean)
./simple-napc_010-100_6.log:Requests per second:    4.27 [#/sec] (mean)
./simple-napc_010-100_7.log:Requests per second:    4.28 [#/sec] (mean)
./simple-napc_010-100_8.log:Requests per second:    4.29 [#/sec] (mean)
./simple-napc_010-100_9.log:Requests per second:    4.33 [#/sec] (mean)
./simple-yapc_010-100_1.log:Requests per second:    6.22 [#/sec] (mean)
./simple-yapc_010-100_2.log:Requests per second:    6.60 [#/sec] (mean)
./simple-yapc_010-100_3.log:Requests per second:    6.57 [#/sec] (mean)
./simple-yapc_010-100_4.log:Requests per second:    6.60 [#/sec] (mean)
./simple-yapc_010-100_5.log:Requests per second:    6.59 [#/sec] (mean)
./simple-yapc_010-100_6.log:Requests per second:    6.62 [#/sec] (mean)
./simple-yapc_010-100_7.log:Requests per second:    6.61 [#/sec] (mean)
./simple-yapc_010-100_8.log:Requests per second:    6.59 [#/sec] (mean)
./simple-yapc_010-100_9.log:Requests per second:    6.53 [#/sec] (mean)
</pre>
<p>サマリはこんな感じ。</p>
<table>
<tr>
<th>プラグイン導入</th>
<th>APC</th>
<th>平均値</th>
<th>無し無しに対する比率</th>
<th>APC有無の比率</th>
</tr>
<tr>
<td>無し</td>
<td>無し</td>
<td>4.29</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>無し</td>
<td>有り</td>
<td>6.55</td>
<td>154%</td>
<td>154%</td>
</tr>
<tr>
<td>済み</td>
<td>無し</td>
<td>3.49</td>
<td>81%</td>
<td>-</td>
</tr>
<tr>
<td>済み</td>
<td>有り</td>
<td>5.19</td>
<td>121%</td>
<td>148%</td>
</tr>
</table>
<p>前回のplugin導入すればするほど、って仮説は嘘だったカモ。<br />
と言いつつ、導入してるpluginが大したこと無いの多いからかなーと思ったり。<br />
このサーバの場合(同じplugin入れてるんで)、apcのモニタをみるとTOP20中で1番は <a href="http://mitcho.com/code/yarpp/">YARPP</a>なんですが、今回の集計はトップを対象にしているので、YARPPは動作してない(はず)。<br />
で、それ以外はWP本体のファイルばっか上がっている状態。これがWP本体よりもpluginの方が多くなってくれば導入した場合の効果は更にでかくなるような気がする。<br />
そしてそこまでやる気力は無かった。<br />
巷を見てると、ke-tai styleやwp-cacheのファイルが上位に来るっぽいので、それを入れて計測すりゃいいのかなあ。</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2009/12/27_120001/' rel='bookmark' title='wordpress 2.9にapcいれた場合のベンチ'>wordpress 2.9にapcいれた場合のベンチ</a></li>
<li><a href='http://rider.withgod.jp/blog/2010/12/09_155745/' rel='bookmark' title='makegood を試す'>makegood を試す</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/01/08_153613/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Admin Tools</title>
		<link>http://rider.withgod.jp/blog/2010/01/07_012434/</link>
		<comments>http://rider.withgod.jp/blog/2010/01/07_012434/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 16:24:34 +0000</pubDate>
		<dc:creator>withgod</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://rider.withgod.jp/blog/?p=678</guid>
		<description><![CDATA[Mac上でグループの管理とかやりたくてアカウントの項目とか見てもぜんぜん出てこない。 なんでやーつって調べたら、Server Admin Toolsなるものが必要らしい。 インストールすると アプリケーション=>サーバ  [...]


Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2004/12/22_120001/' rel='bookmark' title='[mixi] mixi web server signature'>[mixi] mixi web server signature</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/11/10_114749/' rel='bookmark' title='less/lvでソースコードに色をつける on OSX'>less/lvでソースコードに色をつける on OSX</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Mac上でグループの管理とかやりたくてアカウントの項目とか見てもぜんぜん出てこない。<br />
なんでやーつって調べたら、<a href="http://support.apple.com/kb/HT3931?viewlocale=ja_JP">Server Admin Tools</a>なるものが必要らしい。<br />
インストールすると アプリケーション=>サーバ の下に色々出てくるんで、その中のワークグループマネージャ.appを利用してグループの管理。<br />
この辺の情報って全然見かけないんだけど、必要とされないのかなあ・・・</p>


<p>Related posts:<ol><li><a href='http://rider.withgod.jp/blog/2004/12/22_120001/' rel='bookmark' title='[mixi] mixi web server signature'>[mixi] mixi web server signature</a></li>
<li><a href='http://rider.withgod.jp/blog/2011/11/10_114749/' rel='bookmark' title='less/lvでソースコードに色をつける on OSX'>less/lvでソースコードに色をつける on OSX</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rider.withgod.jp/blog/2010/01/07_012434/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

