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

 </summary>
		<content type="text/html" mode="escaped" xml:base="http://tat.soga.in/blog/modules/wordpress/index.php?p=72"><![CDATA[	&lt;p&gt;ruby on rails をFreeBSDで試したメモ。&lt;/p&gt;
	&lt;p&gt;rubyとgemがインストールされているシステムならばrailsの&lt;br /&gt;
インストールは簡単だ。gemがない場合は&lt;a href=&quot;http://rubygems.rubyforge.org/&quot;&gt;ここ&lt;/a&gt;からダウンロードする。&lt;/p&gt;
	&lt;blockquote&gt;&lt;p&gt;
# gem install rails &amp;#8211;remote &amp;#8211;include-dependencies
&lt;/p&gt;&lt;/blockquote&gt;
	&lt;p&gt;これだけで依存関係を解決してインストールしてくれる。&lt;/p&gt;
	&lt;p&gt;データベースにはMySQLかPostgreSQLが良いだろう。今の時点では&lt;br /&gt;
SQLiteはマイグレーションに対応していない。ここではMySQL/Ruby&lt;br /&gt;
を試してみる。&lt;/p&gt;
	&lt;blockquote&gt;&lt;p&gt;
# gem install mysql &amp;#8211;with-mysql-dir=/usr/opt/mysql50
&lt;/p&gt;&lt;/blockquote&gt;
	&lt;p&gt;最初「gem install mysql」してハマった。MySQLのパスが&lt;br /&gt;
/usr/opt/mysql50と普通と違ったのでリンクがうまくいって&lt;br /&gt;
なかった。でも特にエラーが出なかったので気がつかなかった。&lt;br /&gt;
railsを実行してみると&lt;/p&gt;
	&lt;p&gt;その後、上記のコマンドで無事MySQL/Rubyがロードできるように&lt;br /&gt;
なった。&lt;/p&gt;
	&lt;p&gt;scaffoldを使ってすぐにおかしいと気がついたのはレコードの&lt;br /&gt;
削除ができないってこと。PostgreSQL8.1.4とSQLite3で試して&lt;br /&gt;
みたがやはり削除できない。エラーも出ないし、何も起こらない。&lt;br /&gt;
実はrailsでscaffoldで生成されたページからレコードを削除する&lt;br /&gt;
ためにはブラウザにJavaScriptが必要だった。FirefoxのNoScript&lt;br /&gt;
エクステンションがアダとなった形だ。&lt;/p&gt;
	&lt;p&gt;最初はWEBRickで簡単なアプリケーションを作ってみた。そして&lt;br /&gt;
ベンチマークしてみるとWEBrickだと僕のPC(AthronXP1500程度)で&lt;br /&gt;
秒間5回前後のリクエストに応えられた。apacheからXOOOPSを使う&lt;br /&gt;
よりも少し軽い感じ。&lt;/p&gt;
	&lt;p&gt;次にrailsをCGIとしてベンチマークしてみると予想通り使い物に&lt;br /&gt;
ならない重さで、秒間0.3回程度のリクエスト処理が限界だった。&lt;br /&gt;
そうなると1ページ出力するのに3秒以上かかるわけでストレスが&lt;br /&gt;
たまりまくりとなる。&lt;/p&gt;
	&lt;p&gt;仕方ないのでapache2にFastCGIを組み込んでみたら秒間5回前後の&lt;br /&gt;
リクエストを処理できるようになった。これならまあ使える。
&lt;/p&gt;
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>tat</name>
		</author>
		<title>Access2003とMySQL-5.0</title>
		<link rel="alternate" type="text/html" href="http://tat.soga.in/blog/modules/wordpress/index.php?p=69" />
		<id>http://tat.soga.in/blog/modules/wordpress/index.php?p=69</id>
		<modified>2006-06-27T18:32:32+09:00</modified>
		<issued>2006-06-27T18:32:32+09:00</issued>
		
	<dc:subject>MySQL</dc:subject>
	<dc:subject>MS Access</dc:subject>		<summary type="text/html">	仕事で関わっているある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)などバージョン
アップでできることの幅が増えた。

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

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

 </summary>
		<content type="text/html" mode="escaped" xml:base="http://tat.soga.in/blog/modules/wordpress/index.php?p=67"><![CDATA[	&lt;p&gt;PHP自体をwikipediaと同じ手法である程度高速化することは&lt;br /&gt;
できたけど、さらに速くならないのかなとgoogleで調べると&lt;br /&gt;
「XOOPS 高速化」で最初に出てくるのが&lt;a href=&quot;http://mynoah.net/archives/2005/08/24_2137.php&quot;&gt;「おじさんの備忘録」&lt;/a&gt;&lt;br /&gt;
というサイトだ。&lt;/p&gt;
	&lt;p&gt;最初「ん？」と思ったのが、このサイトはMovableTypeでできている&lt;br /&gt;
ようだが、パーマリンクのURLを見ると .php で終わっている？&lt;br /&gt;
なんだか不思議だなと思った。&lt;/p&gt;
	&lt;p&gt;閑話休題。&lt;br /&gt;
そこで初めて知ったのはXOOPSのリダイレクト画面をなくすことで&lt;br /&gt;
高速化できるという記事。このhackはすごく良いアイデアだと思う。&lt;br /&gt;
このサイトのXOOPSにも導入してみた。&lt;/p&gt;
	&lt;p&gt;リダイレクトの画面がない分、体感的に明らかに速い。
&lt;/p&gt;
]]></content>
	</entry>
		<entry>
	  	<author>
			<name>tat</name>
		</author>
		<title>blosxomのstatic rendering(静的なページ生成)</title>
		<link rel="alternate" type="text/html" href="http://tat.soga.in/blog/modules/wordpress/index.php?p=61" />
		<id>http://tat.soga.in/blog/modules/wordpress/index.php?p=61</id>
		<modified>2006-06-21T05:18:42+09:00</modified>
		<issued>2006-06-21T05:18:42+09:00</issued>
		
	<dc:subject>blosxom</dc:subject>		<summary type="text/html">	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でこんな修正が必要とも
思えない。なんだか根本的な理解不足があるような気がしてならない。

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

 </summary>
		<content type="text/html" mode="escaped" xml:base="http://tat.soga.in/blog/modules/wordpress/index.php?p=60"><![CDATA[	&lt;p&gt;MozillaでExtensionを管理する方法を&lt;br /&gt;
いろいろと探していたら見つけた。&lt;/p&gt;
	&lt;p&gt;「ExtensionManager」というExtensionを&lt;br /&gt;
インストールするとFirebirdみたいに&lt;br /&gt;
Extensionを管理できるようになった。
&lt;/p&gt;
]]></content>
	</entry>
	</feed>

