<?xml version="1.0" encoding="utf-8"?><!-- generator="wordpress/ME for XOOPS 0.5.0RC-Final" -->
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>
<channel rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php">
	<title>tats blog</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php</link>
	<description>京都発 tatによるブログ</description>
	<dc:language>ja</dc:language>
	<dc:date>2006-02-28T13:03:32+09:00</dc:date>
	<dc:creator>&#116;&#97;&#116;&#64;d&#101;v&#46;&#98;&#97;c&#107;&#116;&#114;&#97;&#112;&#46;co&#109;</dc:creator>
	<admin:generatorAgent rdf:resource="http://www.kowa.org/?v=0.5.0RC-Final"/>
	<admin:errorReportsTo rdf:resource="mailto:tat&#64;dev&#46;bac&#107;t&#114;&#97;&#112;.&#99;om"/>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
	<items>
		<rdf:Seq>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=79"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=78"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=77"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=76"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=72"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=69"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=68"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=67"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=61"/>
					<rdf:li rdf:resource="http://tat.soga.in/blog/modules/wordpress/index.php?p=60"/>
				</rdf:Seq>
	</items>
</channel>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=79">
	<title>tracでCan&#8217;t synchronize with the repository</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=79</link>
	<dc:date>2009-09-29T19:32:27+09:00</dc:date>
	<dc:creator>tat &lt;&amp;#116;at&amp;#64;d&amp;#101;&amp;#118;.ba&amp;#99;&amp;#107;tra&amp;#112;&amp;#46;&amp;#99;om&gt;</dc:creator>
	
	<dc:subject>FreeBSD</dc:subject>
	<dc:subject>Python</dc:subject>	<description>	サーバーのsubversionを1.6.2にしたらtracで以下のエラーになった。
	Warning: Can&amp;#8217;t synchronize with the repository
(Unsupported version control system &amp;#8220;svn&amp;#8221;: &amp;#8220;No module named svn&amp;#8221;
 ). Look in the Trac log for more information.
	ログを見たらmod_pythonモジュールがリポジトリと同期できないよ、
って言ってるみたい。
	# cd /usr/local/src/subversion-1.6.2
# make swig-py
# make install-swig-py
# vim [site-packagesディレクトリ]/svn-python.pth
 /usr/local/lib/svn-python
# ln -s /usr/local/lib/python2.6/site-packages/svn [site-packagesディレクトリ]
# ln -s /usr/local/lib/python2.6/site-packages/libsvn [site-packagesディレクトリ]
 </description>
	<content:encoded><![CDATA[<p>サーバーのsubversionを1.6.2にしたらtracで以下のエラーになった。</p>
	<blockquote><p>Warning: Can&#8217;t synchronize with the repository<br />
(Unsupported version control system &#8220;svn&#8221;: &#8220;No module named svn&#8221;<br />
 ). Look in the Trac log for more information.</p></blockquote>
	<p>ログを見たらmod_pythonモジュールがリポジトリと同期できないよ、<br />
って言ってるみたい。</p>
	<blockquote><p>
# cd /usr/local/src/subversion-1.6.2<br />
# make swig-py<br />
# make install-swig-py<br />
# vim [site-packagesディレクトリ]/svn-python.pth<br />
 /usr/local/lib/svn-python<br />
# ln -s /usr/local/lib/python2.6/site-packages/svn [site-packagesディレクトリ]<br />
# ln -s /usr/local/lib/python2.6/site-packages/libsvn [site-packagesディレクトリ]
</p></blockquote>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=78">
	<title>Plone3.0のベンチマーク</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=78</link>
	<dc:date>2007-09-05T15:51:49+09:00</dc:date>
	<dc:creator>tat &lt;ta&amp;#116;&amp;#64;de&amp;#118;&amp;#46;&amp;#98;a&amp;#99;&amp;#107;t&amp;#114;ap&amp;#46;&amp;#99;&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>FreeBSD</dc:subject>
	<dc:subject>Python</dc:subject>
	<dc:subject>zope</dc:subject>	<description>	ベンチマークしてみるとPloneはやっぱり重たいです。
	zopeのトップページをベンチマークすると秒間63くらい
リクエストをさばいてます。
	# ab -n 100 -c 10 http://192.168.0.10:8080/
This is ApacheBench, Version 2.0.40-dev &lt; $Revision: 1.146 $&gt; apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
	Benchmarking 192.168.0.10 (be patient)&amp;#8230;..done
	Server Software:        Zope/(Zope
Server Hostname:        192.168.0.10
Server ...</description>
	<content:encoded><![CDATA[<p>ベンチマークしてみるとPloneはやっぱり重たいです。</p>
	<p>zopeのトップページをベンチマークすると秒間63くらい<br />
リクエストをさばいてます。</p>
	<blockquote><p>
# ab -n 100 -c 10 http://192.168.0.10:8080/<br />
This is ApacheBench, Version 2.0.40-dev < $Revision: 1.146 $> apache-2.0<br />
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br />
Copyright 2006 The Apache Software Foundation, http://www.apache.org/</p>
	<p>Benchmarking 192.168.0.10 (be patient)&#8230;..done</p>
	<p>Server Software:        Zope/(Zope<br />
Server Hostname:        192.168.0.10<br />
Server Port:            8080</p>
	<p>Document Path:          /<br />
Document Length:        2717 bytes</p>
	<p>Concurrency Level:      10<br />
Time taken for tests:   1.575463 seconds<br />
Complete requests:      100<br />
Failed requests:        0<br />
Write errors:           0<br />
Total transferred:      294000 bytes<br />
HTML transferred:       271700 bytes<br />
Requests per second:    63.47 [#/sec] (mean)<br />
Time per request:       157.546 [ms] (mean)<br />
Time per request:       15.755 [ms] (mean, across all concurrent requests)<br />
Transfer rate:          182.17 [Kbytes/sec] received</p>
	<p>Connection Times (ms)<br />
              min  mean[+/-sd] median   max<br />
Connect:        0    0   0.1      0       1<br />
Processing:    21  147  37.7    152     301<br />
Waiting:        7  138  38.7    142     292<br />
Total:         21  147  37.7    152     301</p>
	<p>Percentage of the requests served within a certain time (ms)<br />
  50%    152<br />
  66%    153<br />
  75%    153<br />
  80%    159<br />
  90%    168<br />
  95%    169<br />
  98%    298<br />
  99%    301<br />
 100%    301 (longest request)<br />
</></p></blockquote>
	<p>ところがploneサイトをベンチマークすると秒間２リクエストくらい<br />
しかさばけないようです。</p>
	<blockquote><p>
# ab -n 100 -c 10 http://192.168.0.10:8080/<br />
This is ApacheBench, Version 2.0.40-dev < $Revision: 1.146 $><br />
apache-2.0<br />
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br />
Copyright 2006 The Apache Software Foundation, http://www.apache.org/</p>
	<p>Benchmarking 192.168.0.10 (be patient)&#8230;..done</p>
	<p>Server Software:        Zope/(Zope<br />
Server Hostname:        192.168.0.10<br />
Server Port:            8080</p>
	<p>Document Path:          /demo1<br />
Document Length:        20658 bytes</p>
	<p>Concurrency Level:      10<br />
Time taken for tests:   44.151914 seconds<br />
Complete requests:      100<br />
Failed requests:        0<br />
Write errors:           0<br />
Total transferred:      2093600 bytes<br />
HTML transferred:       2065800 bytes<br />
Requests per second:    2.26 [#/sec] (mean)<br />
Time per request:       4415.191 [ms] (mean)<br />
Time per request:       441.519 [ms] (mean, across all concurrent requests)<br />
Transfer rate:          46.29 [Kbytes/sec] received</p>
	<p>Connection Times (ms)<br />
              min  mean[+/-sd] median   max<br />
Connect:        0    0   0.1      0       1<br />
Processing:   619 4214 7093.6   2820   44069<br />
Waiting:      536 4207 7094.5   2815   44067<br />
Total:        620 4214 7093.6   2820   44069</p>
	<p>Percentage of the requests served within a certain time (ms)<br />
  50%   2820<br />
  66%   3551<br />
  75%   4113<br />
  80%   4259<br />
  90%   4532<br />
  95%   5713<br />
  98%  43913<br />
  99%  44069<br />
 100%  44069 (longest request)<br />
</></p></blockquote>
	<p>Ploneは重たいですがZope自体は自前のWEBサーバを持っていることも<br />
あり、予想以上に軽いことがわかりました。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=77">
	<title>FreeBSDでplone3.0</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=77</link>
	<dc:date>2007-09-05T12:29:01+09:00</dc:date>
	<dc:creator>tat &lt;t&amp;#97;&amp;#116;&amp;#64;de&amp;#118;.&amp;#98;&amp;#97;c&amp;#107;&amp;#116;ra&amp;#112;&amp;#46;c&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>FreeBSD</dc:subject>
	<dc:subject>Python</dc:subject>
	<dc:subject>zope</dc:subject>	<description>	久しぶりにploneの環境を作ってみた。
知らない間に3.0までバージョンが上がっている。
	FreeBSDの場合はportsから最新のPythonを入れると2.5.1なので
/usr/opt/python24 にPython2.4.4を別途入れる。FreeBSDの
スレッドスタックはデフォルトで小さすぎるのでWANT_HUGE_STACK_SIZE
オプションを付けてmakeしないと、zopeのインスタンスホームに
python.coreができることになってしまうと INSTALL.txtに書いてある。
	 # ./configure &amp;#8211;with-threads
 # make WANT_HUGE_STACK_SIZE=yes
 # make install
	ところがこれではうまくいかなかった。スレッドのスタックが大きく
なっていないみたいだ。Pythonのソースをgrepしても
そのオプションは見つからない。
	仕方ないのでportsのMakefileを見ると、HUGE_STACK_SIZE=yes だと
CFLAGに -DTHREAD_STACK_SIZE=0x100000 としている。どうもこっちの
方が確実そうなので、configureスクリプトが生成したMakefileの
OPTに-DTHREAD_STACK_SIZE=0x100000 を足してみた。そして普通に
make, make install 。今度は大丈夫そうだ。
	スレッドスタックの大きさの確認方法は以下のとおり。
結果が1000ならたぶんうまくいく、ということらしい。
おそらくFreeBSD6.xなどでは初めから問題ないみたいなのだが、
サーバがFreeBSD4.11(古すぎ)なので問題がみたい。
「How can I make sure my BSD Python has enough stack?」
	# python
Python 2.4.4 (#1, Sep  5 2007, 14:15:24)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type &amp;#8220;help&amp;#8221;, &amp;#8220;copyright&amp;#8221;, &amp;#8220;credits&amp;#8221; or &amp;#8220;license&amp;#8221; for more information.
&gt;&gt;&gt; ...</description>
	<content:encoded><![CDATA[<p>久しぶりにploneの環境を作ってみた。<br />
知らない間に3.0までバージョンが上がっている。</p>
	<p>FreeBSDの場合はportsから最新のPythonを入れると2.5.1なので<br />
/usr/opt/python24 にPython2.4.4を別途入れる。FreeBSDの<br />
スレッドスタックはデフォルトで小さすぎるので<strong>WANT_HUGE_STACK_SIZE</strong><br />
オプションを付けてmakeしないと、zopeのインスタンスホームに<br />
python.coreができることになってしまうと INSTALL.txtに書いてある。</p>
	<blockquote><p>
 # ./configure &#8211;with-threads<br />
 # make WANT_HUGE_STACK_SIZE=yes<br />
 # make install
</p></blockquote>
	<p>ところがこれではうまくいかなかった。スレッドのスタックが大きく<br />
なっていないみたいだ。Pythonのソースをgrepしても<br />
そのオプションは見つからない。</p>
	<p>仕方ないのでportsのMakefileを見ると、HUGE_STACK_SIZE=yes だと<br />
CFLAGに -DTHREAD_STACK_SIZE=0x100000 としている。どうもこっちの<br />
方が確実そうなので、configureスクリプトが生成したMakefileの<br />
OPTに-DTHREAD_STACK_SIZE=0x100000 を足してみた。そして普通に<br />
make, make install 。今度は大丈夫そうだ。</p>
	<p>スレッドスタックの大きさの確認方法は以下のとおり。<br />
結果が1000ならたぶんうまくいく、ということらしい。<br />
おそらくFreeBSD6.xなどでは初めから問題ないみたいなのだが、<br />
サーバがFreeBSD4.11(古すぎ)なので問題がみたい。<br />
「<a href="http://plone.org/documentation/faq/plone-on-bsd-python-stack">How can I make sure my BSD Python has enough stack?」</a></p>
	<blockquote><p>
# python<br />
Python 2.4.4 (#1, Sep  5 2007, 14:15:24)<br />
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4<br />
Type &#8220;help&#8221;, &#8220;copyright&#8221;, &#8220;credits&#8221; or &#8220;license&#8221; for more information.<br />
>>> import sys<br />
>>> sys.getrecursionlimit()<br />
1000
</p></blockquote>
	<p>Plone3.0を動かす場合に必要になるPythonライブラリを先に入れておく。</p>
	<ul>
	<li>PIL(Python Imaging Library) 1.1.5 or newer</li>
	<li>Python ElementTree</li>
	</ul>
	<p>PloneはベースになるZopeのバージョンにうるさい。Plone3.0の場合は<br />
Zopeは2.10.4以上でないと動かない。Zope2.11.x系列やZope3.0系列は<br />
だめ。今回は /usr/opt/zope2.10.4 にインストールする。</p>
	<blockquote><p>
 # cd /usr/local/src<br />
 # wget http://www.zope.org/Products/Zope/2.10.4/Zope-2.10.4-final.tgz<br />
 # tar xvfz Zope-2.10.4-final.tgz<br />
 # cd Zope-2.10.4-final<br />
 # ./configure &#8211;prefix=/usr/opt/zope2.10.4<br />
    &#8211;with-python=/usr/opt/python24/bin/python<br />
    &#8211;optimize<br />
 # make<br />
 # make install
</p></blockquote>
	<p>やっとPlone3.0のインストールだ。/usr/opt/Plone-3.0にインストール<br />
することにした。Productsとlibの中身をそれぞれコピーしてもいいけど<br />
たぶん将来見たときPloneのどのバージョンかわからなくなるので、<br />
シンボリックリンクの方が好み。</p>
	<blockquote><p>
 # cd /usr/opt<br />
 # wget http://plone.googlecode.com/files/Plone-3.0.tar.gz<br />
 # tar xvfz Plone-3.0.tar.gz<br />
 # cd Plone-3.0</p>
	<p> # ln -s /usr/opt/Plone-3.0/lib/python/*<br />
    /usr/opt/zope2.10.4/lib/python/</p>
	<p> # ln -s /usr/opt/Plone-3.0/Products/*<br />
   /usr/opt/zope2.10.4/Products/
</p></blockquote>
	<p>ここまで来たらZopeのインスタンスを作れる。</p>
	<blockquote><p>
 # /usr/opt/zope2.10.4/bin/mkzopeinstance.py
</p></blockquote>
	<p>このままではアクセスするのにポート番号が必要になるので、<br />
適当なホスト名をDNSに設定して、apache側でProxyPassディレクティブ<br />
を使って、Proxy経由でアクセスできるようにした方がかっこいいかも。</p>
	<blockquote><p>
 http://192.168.0.10:8080/</p>
	<p> httpd.conf<br />
<virtualhost *:80><br />
  ServerName plonedemo.hogehoge.com<br />
  ProxyPass / http://localhost:8080/VirtualHostBase/http/plonedemo.hogehoge.com:80/V<br />
irtualHostRoot/<br />
</virtualhost>
</p></blockquote>
	<p>で最初にアクセスするとなんだか30秒近く待たされる。重すぎだろ・・<br />
<img src="http://tat.soga.in/blog/uploads/blog-picture/zope/plone.png" alt="plone_top" /><br />
でもそれ以降はまあまあサクサク動きます。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=76">
	<title>portsdbの失敗</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=76</link>
	<dc:date>2007-08-26T02:19:25+09:00</dc:date>
	<dc:creator>tat &lt;t&amp;#97;&amp;#116;&amp;#64;de&amp;#118;.back&amp;#116;ra&amp;#112;.&amp;#99;&amp;#111;m&gt;</dc:creator>
	
	<dc:subject>FreeBSD</dc:subject>	<description>	久し振りにFreeBSD4.11で構築しているサーバ上でportsからmakeしたら
なんだかエラーがたくさん出て構築できなくなっていた。2月に4系は
portsのサポートの切れたので、ぼちぼち6系に引っ越さないといけないな。
	[root@sv]~# portsdb -Uu
Updating the ports index &amp;#8230; Generating INDEX.tmp - please wait..&quot;/usr/ports/audio/gstreamer-plugins-esound/../../
multimedia/gstreamer-plugins/Makefile.common&amp;#8221;, line 392: Malformed conditional (${gst_${GST_PLUGIN}_GCONF_SCHEMAS}!=&quot;&quot;)
&amp;#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/
gstreamer-plugins/Makefile.common&amp;#8221;, line 396: Malformed conditional (${gst_${GST_PLUGIN}_USE_SDL}!=&quot;&quot;)
&amp;#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/
gstreamer-plugins/Makefile.common&amp;#8221;, line 398: if-less endif
&amp;#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/
gstreamer-plugins/Makefile.common&amp;#8221;, line 398: Need an operator
&amp;#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/
gstreamer-plugins/Makefile.common&amp;#8221;, line 419: if-less endif
&amp;#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/
gstreamer-plugins/Makefile.common&amp;#8221;, line 419: Need an operator
make: fatal errors encountered &amp;#8211; cannot continue
===&gt; audio/gstreamer-plugins-esound failed
*** Error code ...</description>
	<content:encoded><![CDATA[<p>久し振りにFreeBSD4.11で構築しているサーバ上でportsからmakeしたら<br />
なんだかエラーがたくさん出て構築できなくなっていた。2月に4系は<br />
portsのサポートの切れたので、ぼちぼち6系に引っ越さないといけないな。</p>
	<blockquote><p>
[root@sv]~# portsdb -Uu<br />
Updating the ports index &#8230; Generating INDEX.tmp - please wait.."/usr/ports/audio/gstreamer-plugins-esound/../../<br />
multimedia/gstreamer-plugins/Makefile.common&#8221;, line 392: Malformed conditional (${gst_${GST_PLUGIN}_GCONF_SCHEMAS}!="")<br />
&#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/<br />
gstreamer-plugins/Makefile.common&#8221;, line 396: Malformed conditional (${gst_${GST_PLUGIN}_USE_SDL}!="")<br />
&#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/<br />
gstreamer-plugins/Makefile.common&#8221;, line 398: if-less endif<br />
&#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/<br />
gstreamer-plugins/Makefile.common&#8221;, line 398: Need an operator<br />
&#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/<br />
gstreamer-plugins/Makefile.common&#8221;, line 419: if-less endif<br />
&#8220;/usr/ports/audio/gstreamer-plugins-esound/../../multimedia/<br />
gstreamer-plugins/Makefile.common&#8221;, line 419: Need an operator<br />
make: fatal errors encountered &#8211; cannot continue<br />
===> audio/gstreamer-plugins-esound failed<br />
*** Error code 1<br />
1 error
</p></blockquote>
	<p>FreeBSDの4系ではこれらの変数が使われる時にはまだ初期化されて<br />
いないようだ。</p>
	<p>portsのメーリングリストにパッチが公開されていた。</p>
	<p><a href="http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2006-October/103964.html">ports/104500: [PATCH] multimedia/gstreamer-plugins/Makefile.common breaks make index</a>
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=72">
	<title>ruby on rails 事始め</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=72</link>
	<dc:date>2006-08-11T14:08:45+09:00</dc:date>
	<dc:creator>tat &lt;tat&amp;#64;de&amp;#118;.b&amp;#97;&amp;#99;&amp;#107;tr&amp;#97;p&amp;#46;c&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>その他、駄文</dc:subject>
	<dc:subject>ruby on rails</dc:subject>	<description>	ruby on rails をFreeBSDで試したメモ。
	rubyとgemがインストールされているシステムならばrailsの
インストールは簡単だ。gemがない場合はここからダウンロードする。
	# gem install rails &amp;#8211;remote &amp;#8211;include-dependencies
	これだけで依存関係を解決してインストールしてくれる。
	データベースにはMySQLかPostgreSQLが良いだろう。今の時点では
SQLiteはマイグレーションに対応していない。ここではMySQL/Ruby
を試してみる。
	# gem install mysql &amp;#8211;with-mysql-dir=/usr/opt/mysql50
	最初「gem install mysql」してハマった。MySQLのパスが
/usr/opt/mysql50と普通と違ったのでリンクがうまくいって
なかった。でも特にエラーが出なかったので気がつかなかった。
railsを実行してみると
	その後、上記のコマンドで無事MySQL/Rubyがロードできるように
なった。
	scaffoldを使ってすぐにおかしいと気がついたのはレコードの
削除ができないってこと。PostgreSQL8.1.4とSQLite3で試して
みたがやはり削除できない。エラーも出ないし、何も起こらない。
実はrailsでscaffoldで生成されたページからレコードを削除する
ためにはブラウザにJavaScriptが必要だった。FirefoxのNoScript
エクステンションがアダとなった形だ。
	最初はWEBRickで簡単なアプリケーションを作ってみた。そして
ベンチマークしてみるとWEBrickだと僕のPC(AthronXP1500程度)で
秒間5回前後のリクエストに応えられた。apacheからXOOOPSを使う
よりも少し軽い感じ。
	次にrailsをCGIとしてベンチマークしてみると予想通り使い物に
ならない重さで、秒間0.3回程度のリクエスト処理が限界だった。
そうなると1ページ出力するのに3秒以上かかるわけでストレスが
たまりまくりとなる。
	仕方ないのでapache2にFastCGIを組み込んでみたら秒間5回前後の
リクエストを処理できるようになった。これならまあ使える。

 </description>
	<content:encoded><![CDATA[<p>ruby on rails をFreeBSDで試したメモ。</p>
	<p>rubyとgemがインストールされているシステムならばrailsの<br />
インストールは簡単だ。gemがない場合は<a href="http://rubygems.rubyforge.org/">ここ</a>からダウンロードする。</p>
	<blockquote><p>
# gem install rails &#8211;remote &#8211;include-dependencies
</p></blockquote>
	<p>これだけで依存関係を解決してインストールしてくれる。</p>
	<p>データベースにはMySQLかPostgreSQLが良いだろう。今の時点では<br />
SQLiteはマイグレーションに対応していない。ここではMySQL/Ruby<br />
を試してみる。</p>
	<blockquote><p>
# gem install mysql &#8211;with-mysql-dir=/usr/opt/mysql50
</p></blockquote>
	<p>最初「gem install mysql」してハマった。MySQLのパスが<br />
/usr/opt/mysql50と普通と違ったのでリンクがうまくいって<br />
なかった。でも特にエラーが出なかったので気がつかなかった。<br />
railsを実行してみると</p>
	<p>その後、上記のコマンドで無事MySQL/Rubyがロードできるように<br />
なった。</p>
	<p>scaffoldを使ってすぐにおかしいと気がついたのはレコードの<br />
削除ができないってこと。PostgreSQL8.1.4とSQLite3で試して<br />
みたがやはり削除できない。エラーも出ないし、何も起こらない。<br />
実はrailsでscaffoldで生成されたページからレコードを削除する<br />
ためにはブラウザにJavaScriptが必要だった。FirefoxのNoScript<br />
エクステンションがアダとなった形だ。</p>
	<p>最初はWEBRickで簡単なアプリケーションを作ってみた。そして<br />
ベンチマークしてみるとWEBrickだと僕のPC(AthronXP1500程度)で<br />
秒間5回前後のリクエストに応えられた。apacheからXOOOPSを使う<br />
よりも少し軽い感じ。</p>
	<p>次にrailsをCGIとしてベンチマークしてみると予想通り使い物に<br />
ならない重さで、秒間0.3回程度のリクエスト処理が限界だった。<br />
そうなると1ページ出力するのに3秒以上かかるわけでストレスが<br />
たまりまくりとなる。</p>
	<p>仕方ないのでapache2にFastCGIを組み込んでみたら秒間5回前後の<br />
リクエストを処理できるようになった。これならまあ使える。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=69">
	<title>Access2003とMySQL-5.0</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=69</link>
	<dc:date>2006-06-27T18:32:32+09:00</dc:date>
	<dc:creator>tat &lt;t&amp;#97;t&amp;#64;d&amp;#101;&amp;#118;&amp;#46;b&amp;#97;&amp;#99;&amp;#107;tra&amp;#112;&amp;#46;&amp;#99;o&amp;#109;&gt;</dc:creator>
	
	<dc:subject>MySQL</dc:subject>
	<dc:subject>MS Access</dc:subject>	<description>	仕事で関わっているあるAccess+MySQLのシステムのデータベースを
MySQL-3.23からMySQL-5.0.xへとアップグレードした。AccessとMySQL-
5.0.x系を使う際の問題点のまとめ。
	問題１:Accessが頻繁に落ちるようになる
前回触れた問題だがまだ直っていない(もう直してもらえないかも？)
	問題２：最新のMySQL ODBCドライバではMySQLのリンクテーブル(文字コード cp932)が不安定になる
普通に最新のMySQL ODBCドライバをインストールした状態で、Accessを
起動してテーブルビューでMySQLリンクテーブルを見ると、開けないもの
がある。
	このシステムの文字コードがcp932であることも関係あるかもしれない。
おそらくMySQLに限らずShift_JIS系の文字コードは使うべきではないの
だろう。しかし「set names cp932;」などとしても問題は解決しない。
	対策はmyodbc3.dll をsjis対応の古いものに差し替えるしかない。
	上記の問題はあるものの解決可能なので、ストアドプロシージャや
VIEW、クライアントの文字コード指定(set names)などバージョン
アップでできることの幅が増えた。

 </description>
	<content:encoded><![CDATA[<p>仕事で関わっているあるAccess+MySQLのシステムのデータベースを<br />
MySQL-3.23からMySQL-5.0.xへとアップグレードした。AccessとMySQL-<br />
5.0.x系を使う際の問題点のまとめ。</p>
	<p><strong>問題１:Accessが頻繁に落ちるようになる</strong><br />
前回触れた問題だがまだ直っていない(もう直してもらえないかも？)</p>
	<p><strong>問題２：最新のMySQL ODBCドライバではMySQLのリンクテーブル(文字コード cp932)が不安定になる</strong><br />
普通に最新のMySQL ODBCドライバをインストールした状態で、Accessを<br />
起動してテーブルビューでMySQLリンクテーブルを見ると、開けないもの<br />
がある。</p>
	<p>このシステムの文字コードがcp932であることも関係あるかもしれない。<br />
おそらくMySQLに限らずShift_JIS系の文字コードは使うべきではないの<br />
だろう。しかし「set names cp932;」などとしても問題は解決しない。</p>
	<p>対策はmyodbc3.dll をsjis対応の古いものに差し替えるしかない。</p>
	<p>上記の問題はあるものの解決可能なので、ストアドプロシージャや<br />
VIEW、クライアントの文字コード指定(set names)などバージョン<br />
アップでできることの幅が増えた。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=68">
	<title>blosxom.php - blosxomのPHPによる実装</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=68</link>
	<dc:date>2006-06-25T23:47:24+09:00</dc:date>
	<dc:creator>tat &lt;tat&amp;#64;dev.b&amp;#97;ck&amp;#116;r&amp;#97;&amp;#112;.com&gt;</dc:creator>
	
	<dc:subject>weblog</dc:subject>	<description>	blosxom/pyblosxom以外にもPHPで実装されたblosxom.phpというのがある。
	あまり開発は活発ではないようだけどインストールして試してみた。
	blosxom/pyblosxomと比較すると
	+ まだプラグイン(moduleと呼んでる)があまりない
+ トラックバックを初期状態で含んでいる
	○プラグインの実装
blosxom.phpのプラグインはちょっと変わっている。プラグインの
ファイルは「plugin.php」のような名前だ。(py)blosxomとは違って
プラグインはクラスやパッケージではなく、ただの関数をいくつか
定義するだけだ。
	プラグインを登録するにはディレクトリ(modules）に入れるだけで
なく、設定ファイル(conf.php)の $modules という名前の配列に
登録しておかないといけない。

 </description>
	<content:encoded><![CDATA[<p>blosxom/pyblosxom以外にもPHPで実装されたblosxom.phpというのがある。</p>
	<p>あまり開発は活発ではないようだけどインストールして試してみた。</p>
	<p>blosxom/pyblosxomと比較すると</p>
	<blockquote><p>
+ まだプラグイン(moduleと呼んでる)があまりない<br />
+ トラックバックを初期状態で含んでいる
</p></blockquote>
	<p><strong>○プラグインの実装</strong><br />
blosxom.phpのプラグインはちょっと変わっている。プラグインの<br />
ファイルは「plugin.php」のような名前だ。(py)blosxomとは違って<br />
プラグインはクラスやパッケージではなく、ただの関数をいくつか<br />
定義するだけだ。</p>
	<p>プラグインを登録するにはディレクトリ(modules）に入れるだけで<br />
なく、設定ファイル(conf.php)の $modules という名前の配列に<br />
登録しておかないといけない。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=67">
	<title>さらなるXOOPS高速化</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=67</link>
	<dc:date>2006-06-24T02:02:39+09:00</dc:date>
	<dc:creator>tat &lt;tat&amp;#64;&amp;#100;&amp;#101;v&amp;#46;&amp;#98;a&amp;#99;&amp;#107;t&amp;#114;&amp;#97;&amp;#112;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>XOOPS</dc:subject>	<description>	PHP自体をwikipediaと同じ手法である程度高速化することは
できたけど、さらに速くならないのかなとgoogleで調べると
「XOOPS 高速化」で最初に出てくるのが「おじさんの備忘録」
というサイトだ。
	最初「ん？」と思ったのが、このサイトはMovableTypeでできている
ようだが、パーマリンクのURLを見ると .php で終わっている？
なんだか不思議だなと思った。
	閑話休題。
そこで初めて知ったのはXOOPSのリダイレクト画面をなくすことで
高速化できるという記事。このhackはすごく良いアイデアだと思う。
このサイトのXOOPSにも導入してみた。
	リダイレクトの画面がない分、体感的に明らかに速い。

 </description>
	<content:encoded><![CDATA[<p>PHP自体をwikipediaと同じ手法である程度高速化することは<br />
できたけど、さらに速くならないのかなとgoogleで調べると<br />
「XOOPS 高速化」で最初に出てくるのが<a href="http://mynoah.net/archives/2005/08/24_2137.php">「おじさんの備忘録」</a><br />
というサイトだ。</p>
	<p>最初「ん？」と思ったのが、このサイトはMovableTypeでできている<br />
ようだが、パーマリンクのURLを見ると .php で終わっている？<br />
なんだか不思議だなと思った。</p>
	<p>閑話休題。<br />
そこで初めて知ったのはXOOPSのリダイレクト画面をなくすことで<br />
高速化できるという記事。このhackはすごく良いアイデアだと思う。<br />
このサイトのXOOPSにも導入してみた。</p>
	<p>リダイレクトの画面がない分、体感的に明らかに速い。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=61">
	<title>blosxomのstatic rendering(静的なページ生成)</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=61</link>
	<dc:date>2006-06-21T05:18:42+09:00</dc:date>
	<dc:creator>tat &lt;&amp;#116;at&amp;#64;d&amp;#101;v&amp;#46;bac&amp;#107;&amp;#116;ra&amp;#112;.c&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>blosxom</dc:subject>	<description>	blosxomで作っているサイトを軽くするためにCGIスクリプトの
呼び出しを極力減らそうと思って静的生成にしてみた。
	設定自体はとても簡単だ。/home/me/public_html/blosxom が
blosxomのディレクトリだとすると別途、静的なページ用の
ディレクトリ(例えば /home/me/public_html/blog )を作り
以下のように設定するだけだ。
	# &amp;#8212; Static Rendering &amp;#8212;&amp;#8211;
$static_dir = &amp;#8216;/home/me/public_html/blog&amp;#8217;;
$static_password = &amp;#8220;secret&amp;#8221;;
@static_flavours = qw/html rss/;
$static_entries = 1;
	○静的なページ生成の問題
しかしいきなり問題が発生した。デフォルト設定のままで $url
を自動設定(すなわち空文字)にしていたら、静的に生成したページの
カレンダやカテゴリ、アーカイブからエントリへのリンクがおかしい。
ホスト名がなぜか「localhost」になっている。
	コードを見てると CGIモジュールのurl()関数でホスト名を
取得するんだけど、コマンドラインから静的なページを
生成するため、localhost が入ってしまう。
	○$urlを直接指定したら？
それだと使い物にならないので $url を空文字列からディレクトリ
(静的なページを配置するディレクトリ)にしたら、静的なページ側
では問題なくなったけれど、今度は動的なblosxom.cgiの方で、
カレンダやカテゴリ、アーカイブからエントリへのリンクが
静的なページに向いてしまうので、これまた具合が悪い。
	僕がやりたいのは、動的なディレクトリではすべてのリンクが
動的ページを指していて、別途公開用の静的なページでは
トラックバックやページ編集(WikiEditish)以外のページは
静的なページを指して欲しいのだ。
	○結論：別の変数が必要だ
スクリプトの100行目付近で $static_or_dynamic という変数が
セットされるので、この中身によって$urlを変える必要がある。
$urlは空にして自動設定にしておいて、以下のようにする。
	# コードの上の方で定義しておく
$static_url = &amp;#8220;http://www.mysite.com/blog&amp;#8221;; # 静的ページのURL
	# $static_or_dynamic が定義された後、$urlが空ならば
# おかしくなるのは静的(static)の場合だけ
$url = $static_url if ($static_or_dynamic
  eq &amp;#8220;static&amp;#8221; and $url =~ m!http://localhost!);
	そしてフレーバー内では $url を使うことでなんとか動いてます。
	でもかなり枯れてきているはずのblosxom2でこんな修正が必要とも
思えない。なんだか根本的な理解不足があるような気がしてならない。

 </description>
	<content:encoded><![CDATA[<p>blosxomで作っているサイトを軽くするためにCGIスクリプトの<br />
呼び出しを極力減らそうと思って静的生成にしてみた。</p>
	<p>設定自体はとても簡単だ。/home/me/public_html/blosxom が<br />
blosxomのディレクトリだとすると別途、静的なページ用の<br />
ディレクトリ(例えば /home/me/public_html/blog )を作り<br />
以下のように設定するだけだ。</p>
	<blockquote><p>
# &#8212; Static Rendering &#8212;&#8211;<br />
$static_dir = &#8216;/home/me/public_html/blog&#8217;;<br />
$static_password = &#8220;secret&#8221;;<br />
@static_flavours = qw/html rss/;<br />
$static_entries = 1;
</p></blockquote>
	<p><strong>○静的なページ生成の問題</strong><br />
しかしいきなり問題が発生した。デフォルト設定のままで $url<br />
を自動設定(すなわち空文字)にしていたら、静的に生成したページの<br />
カレンダやカテゴリ、アーカイブからエントリへのリンクがおかしい。<br />
ホスト名がなぜか「localhost」になっている。</p>
	<p>コードを見てると CGIモジュールのurl()関数でホスト名を<br />
取得するんだけど、コマンドラインから静的なページを<br />
生成するため、localhost が入ってしまう。</p>
	<p><strong>○$urlを直接指定したら？</strong><br />
それだと使い物にならないので $url を空文字列からディレクトリ<br />
(静的なページを配置するディレクトリ)にしたら、静的なページ側<br />
では問題なくなったけれど、今度は動的なblosxom.cgiの方で、<br />
カレンダやカテゴリ、アーカイブからエントリへのリンクが<br />
静的なページに向いてしまうので、これまた具合が悪い。</p>
	<p>僕がやりたいのは、動的なディレクトリではすべてのリンクが<br />
動的ページを指していて、別途公開用の静的なページでは<br />
トラックバックやページ編集(WikiEditish)以外のページは<br />
静的なページを指して欲しいのだ。</p>
	<p><strong>○結論：別の変数が必要だ</strong><br />
スクリプトの100行目付近で $static_or_dynamic という変数が<br />
セットされるので、この中身によって$urlを変える必要がある。<br />
$urlは空にして自動設定にしておいて、以下のようにする。</p>
	<blockquote><p>
# コードの上の方で定義しておく<br />
$static_url = &#8220;http://www.mysite.com/blog&#8221;; # 静的ページのURL</p>
	<p># $static_or_dynamic が定義された後、$urlが空ならば<br />
# おかしくなるのは静的(static)の場合だけ<br />
$url = $static_url if ($static_or_dynamic<br />
  eq &#8220;static&#8221; and $url =~ m!http://localhost!);
</p></blockquote>
	<p>そしてフレーバー内では $url を使うことでなんとか動いてます。</p>
	<p>でもかなり枯れてきているはずのblosxom2でこんな修正が必要とも<br />
思えない。なんだか根本的な理解不足があるような気がしてならない。
</p>]]></content:encoded>
</item>
<item rdf:about="http://tat.soga.in/blog/modules/wordpress/index.php?p=60">
	<title>extensionの管理</title>
	<link>http://tat.soga.in/blog/modules/wordpress/index.php?p=60</link>
	<dc:date>2006-02-28T13:03:32+09:00</dc:date>
	<dc:creator>tat &lt;t&amp;#97;&amp;#116;&amp;#64;d&amp;#101;v.ba&amp;#99;&amp;#107;tra&amp;#112;&amp;#46;c&amp;#111;&amp;#109;&gt;</dc:creator>
	
	<dc:subject>その他、駄文</dc:subject>	<description>	MozillaでExtensionを管理する方法を
いろいろと探していたら見つけた。
	「ExtensionManager」というExtensionを
インストールするとFirebirdみたいに
Extensionを管理できるようになった。

 </description>
	<content:encoded><![CDATA[<p>MozillaでExtensionを管理する方法を<br />
いろいろと探していたら見つけた。</p>
	<p>「ExtensionManager」というExtensionを<br />
インストールするとFirebirdみたいに<br />
Extensionを管理できるようになった。
</p>]]></content:encoded>
</item>
</rdf:RDF>
