<?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"
	>

<channel>
	<title>ありんく tech-log</title>
	<atom:link href="http://www.alink.co.jp/tech/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alink.co.jp/tech/blog</link>
	<description>株式会社ありんくのウェブ技術ブログ。主にPerlとjQueryを扱っています</description>
	<pubDate>Sat, 06 Mar 2010 12:47:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>ja</language>
			<item>
		<title>[PHP] PHP 5.3.2 を早速インストール</title>
		<link>http://www.alink.co.jp/tech/blog/2010/03/06/php-php-532-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/</link>
		<comments>http://www.alink.co.jp/tech/blog/2010/03/06/php-php-532-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 12:46:55 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=969</guid>
		<description><![CDATA[
こんにちは、松本です。
熱かったり寒かったり 中々でありますが、いかがお過ごしでしょうか。
TwitPepper（ツイットペッパー）の解説も完結しない中、perl案件をこなしつつ、PHPで動的にJSを書いていると中々なカオスであります。

PHP5.3.2のリリース に伴い、早速にアップグレードしまして メモがてらインストールログです。



 configure

 x86_64（64ビット）
 i386（32ビット）


 インストール
 eAcceleratorをインストール

 php.ini に記述追加
 phpのバージョンを再度確認
 eAccelerator を使う環境で VirtualHost をする


 関連リンク


configure
configureは CentOS5.3 で PHP5.3をインストール（YUM風オプションで） に倣いまして、yum風な設定にしています。
x86_64（64ビット）
以下をコピペしてお使い下さい
./configure &#8211;with-apxs2=/usr/sbin/apxs &#8211;build=x86_64-redhat-linux-gnu &#8211;host=x86_64-redhat-linux-gnu &#8211;target=x86_64-redhat-linux-gnu &#8211;program-prefix= &#8211;prefix=/usr &#8211;exec-prefix=/usr &#8211;bindir=/usr/bin &#8211;sbindir=/usr/sbin &#8211;sysconfdir=/etc &#8211;datadir=/usr/share &#8211;includedir=/usr/include &#8211;libdir=/usr/lib64 &#8211;libexecdir=/usr/libexec &#8211;localstatedir=/var &#8211;sharedstatedir=/usr/com &#8211;mandir=/usr/share/man &#8211;infodir=/usr/share/info &#8211;cache-file=../config.cache &#8211;with-libdir=lib64 &#8211;with-config-file-path=/etc &#8211;with-config-file-scan-dir=/etc/php.d &#8211;with-pic &#8211;with-bz2 &#8211;with-curl &#8211;with-exec-dir=/usr/bin &#8211;with-freetype-dir=/usr &#8211;with-png-dir=/usr &#8211;enable-gd-native-ttf &#8211;with-gettext &#8211;with-gmp &#8211;with-iconv &#8211;with-jpeg-dir=/usr &#8211;with-openssl [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは、松本です。<br />
<a href="http://tenki.jp/forecaster/diary/detail-1909.html" target="_blank">熱かったり寒かったり</a> 中々でありますが、いかがお過ごしでしょうか。<br />
TwitPepper（ツイットペッパー）の解説も完結しない中、perl案件をこなしつつ、PHPで動的にJSを書いていると中々なカオスであります。</p>
<hr class="modPuki_full_hr" />
<p><a href="http://www.php.net/archive/2010.php#id2010-03-04-1" target="_blank">PHP5.3.2のリリース</a> に伴い、早速にアップグレードしまして メモがてらインストールログです。</p>
<div class="modPuki_contents">
<a id="contents_Object id #192"></a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #192_0"> configure</a></p>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #192_1"> x86_64（64ビット）</a></li>
<li><a href="#content_Object id #192_2"> i386（32ビット）</a></li>
</ul>
</li>
<li><a href="#content_Object id #192_3"> インストール</a></li>
<li><a href="#content_Object id #192_4"> eAcceleratorをインストール</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #192_5"> php.ini に記述追加</a></li>
<li><a href="#content_Object id #192_6"> phpのバージョンを再度確認</a></li>
<li><a href="#content_Object id #192_7"> eAccelerator を使う環境で VirtualHost をする</a></li>
</ul>
</li>
<li><a href="#content_Object id #192_8"> 関連リンク</a></li>
</ul>
</div>
<h2 id="content_Object id #192_0" class="modPuki_head">configure</h2>
<p>configureは <a href="/tech/blog/2009/10/02/php-centos53-%E3%81%A7-php53%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%EF%BC%88yum%E9%A2%A8%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%EF%BC%89/" target="_blank">CentOS5.3 で PHP5.3をインストール（YUM風オプションで）</a> に倣いまして、yum風な設定にしています。</p>
<h3 id="content_Object id #192_1" class="modPuki_head">x86_64（64ビット）</h3>
<p>以下をコピペしてお使い下さい</p>
<p>./configure &#8211;with-apxs2=/usr/sbin/apxs &#8211;build=x86_64-redhat-linux-gnu &#8211;host=x86_64-redhat-linux-gnu &#8211;target=x86_64-redhat-linux-gnu &#8211;program-prefix= &#8211;prefix=/usr &#8211;exec-prefix=/usr &#8211;bindir=/usr/bin &#8211;sbindir=/usr/sbin &#8211;sysconfdir=/etc &#8211;datadir=/usr/share &#8211;includedir=/usr/include &#8211;libdir=/usr/lib64 &#8211;libexecdir=/usr/libexec &#8211;localstatedir=/var &#8211;sharedstatedir=/usr/com &#8211;mandir=/usr/share/man &#8211;infodir=/usr/share/info &#8211;cache-file=../config.cache &#8211;with-libdir=lib64 &#8211;with-config-file-path=/etc &#8211;with-config-file-scan-dir=/etc/php.d &#8211;with-pic &#8211;with-bz2 &#8211;with-curl &#8211;with-exec-dir=/usr/bin &#8211;with-freetype-dir=/usr &#8211;with-png-dir=/usr &#8211;enable-gd-native-ttf &#8211;with-gettext &#8211;with-gmp &#8211;with-iconv &#8211;with-jpeg-dir=/usr &#8211;with-openssl &#8211;with-pcre-regex=/usr &#8211;with-zlib &#8211;with-layout=GNU &#8211;enable-exif &#8211;enable-ftp &#8211;enable-magic-quotes &#8211;enable-sockets &#8211;enable-sysvsem &#8211;enable-sysvshm &#8211;enable-sysvmsg &#8211;enable-wddx &#8211;enable-ucd-snmp-hack &#8211;enable-shmop &#8211;enable-calendar &#8211;with-libxml-dir=/usr &#8211;enable-pcntl &#8211;enable-mbstring &#8211;enable-mbregex &#8211;with-gd=shared &#8211;enable-bcmath=shared &#8211;enable-dba=shared &#8211;with-db4=/usr &#8211;with-xmlrpc=shared &#8211;with-mysql=/var/lib/mysql  &#8211;with-mysql-sock=/var/lib/mysql/mysql.sock &#8211;with-mysqli=shared,/usr/bin/mysql_config &#8211;enable-dom=shared &#8211;enable-soap=shared &#8211;with-xsl=shared,/usr &#8211;enable-xmlreader=shared &#8211;enable-xmlwriter=shared &#8211;with-pdo-mysql=shared,/usr &#8211;enable-zip &#8211;enable-zend-multibyte &#8211;with-mcrypt</p>
<h3 id="content_Object id #192_2" class="modPuki_head">i386（32ビット）</h3>
<p>以下をコピペしてお使い下さい</p>
<p>./configure &#8211;with-apxs2=/usr/sbin/apxs &#8211;build=i386-redhat-linux-gnu &#8211;host=i386-redhat-linux-gnu &#8211;target=i386-redhat-linux-gnu &#8211;program-prefix= &#8211;prefix=/usr &#8211;exec-prefix=/usr &#8211;bindir=/usr/bin &#8211;sbindir=/usr/sbin &#8211;sysconfdir=/etc &#8211;datadir=/usr/share &#8211;includedir=/usr/include &#8211;libdir=/usr/lib &#8211;libexecdir=/usr/libexec &#8211;localstatedir=/var &#8211;sharedstatedir=/usr/com &#8211;mandir=/usr/share/man &#8211;infodir=/usr/share/info &#8211;cache-file=../config.cache &#8211;with-libdir=lib &#8211;with-config-file-path=/etc &#8211;with-config-file-scan-dir=/etc/php.d &#8211;with-pic &#8211;with-bz2 &#8211;with-curl &#8211;with-exec-dir=/usr/bin &#8211;with-freetype-dir=/usr &#8211;with-png-dir=/usr &#8211;enable-gd-native-ttf &#8211;with-gettext &#8211;with-gmp &#8211;with-iconv &#8211;with-jpeg-dir=/usr &#8211;with-openssl &#8211;with-pcre-regex=/usr &#8211;with-zlib &#8211;with-layout=GNU &#8211;enable-exif &#8211;enable-ftp &#8211;enable-magic-quotes &#8211;enable-sockets &#8211;enable-sysvsem &#8211;enable-sysvshm &#8211;enable-sysvmsg &#8211;enable-wddx &#8211;enable-ucd-snmp-hack &#8211;enable-shmop &#8211;enable-calendar  &#8211;with-libxml-dir=/usr &#8211;enable-pcntl &#8211;enable-mbstring &#8211;enable-mbregex &#8211;with-gd=shared &#8211;enable-bcmath=shared &#8211;enable-dba=shared &#8211;with-db4=/usr &#8211;with-xmlrpc=shared &#8211;with-mysql=/var/lib/mysql  &#8211;with-mysql-sock=/var/lib/mysql/mysql.sock &#8211;with-mysqli=shared,/usr/bin/mysql_config &#8211;enable-dom=shared &#8211;enable-soap=shared &#8211;with-xsl=shared,/usr &#8211;enable-xmlreader=shared &#8211;enable-xmlwriter=shared &#8211;with-pdo-mysql=shared,/usr &#8211;enable-zip &#8211;enable-zend-multibyte &#8211;with-mcrypt &#8211;enable-mbstring</p>
<h2 id="content_Object id #192_3" class="modPuki_head">インストール</h2>
<pre class="modPuki_pre">sudo make install</pre>
<p>以下のコマンドでPHPのバージョンが&quot;5.3.2&quot;と表示されればOKです。</p>
<pre class="modPuki_pre">$ php -v

PHP 5.3.2 (cli) (built: Mar  6 2010 20:49:38)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies</pre>
<p>httpd を再起動してPHPを読み込み直します。</p>
<pre class="modPuki_pre"># service httpd restart</pre>
<h2 id="content_Object id #192_4" class="modPuki_head">eAcceleratorをインストール</h2>
<p><a href="http://eaccelerator.net/" target="_blank">eAccelerator</a> をデフォルトで利用しています。<br />
こちらも make し直して、新規にインストールします。</p>
<pre class="modPuki_pre">cd /usr/local/src
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
tar jvxf eaccelerator-0.9.6.tar.bz2
cd eaccelerator-0.9.6
phpize
./configure --enable-eaccelerator=shared
export SED=sed
sudo make
sudo make install</pre>
<h3 id="content_Object id #192_5" class="modPuki_head">php.ini に記述追加</h3>
<p>※zend_extension は eaccelerator.so のインストール先を指定します。</p>
<p>※eaccelerator.cache_dir の指定先ディレクトリは予め作成しておきます。</p>
<pre class="modPuki_pre">[eaccelerator]
zend_extension=&quot;/usr/lib/20090626/eaccelerator.so&quot;
eaccelerator.shm_size = &quot;32&quot;
eaccelerator.cache_dir = &quot;/var/php-cache/eaccelerator&quot;
eaccelerator.enable = &quot;1&quot;
eaccelerator.optimizer = &quot;1&quot;
eaccelerator.check_mtime = &quot;1&quot;
eaccelerator.debug = &quot;0&quot;
eaccelerator.filter = &quot;&quot;
eaccelerator.shm_max = &quot;0&quot;
eaccelerator.shm_ttl = &quot;86400&quot;
eaccelerator.shm_prune_period = &quot;0&quot;
eaccelerator.shm_only = &quot;0&quot;
eaccelerator.compress = &quot;1&quot;
eaccelerator.compress_level = &quot;9&quot;
eaccelerator.keys     = &quot;shm_and_disk&quot;
eaccelerator.sessions = &quot;shm_and_disk&quot;
eaccelerator.content  = &quot;shm_and_disk&quot;</pre>
<h3 id="content_Object id #192_6" class="modPuki_head">phpのバージョンを再度確認</h3>
<p>以下のコマンドでPHPのバージョンが&quot;5.3.2&quot;と表示され、eAccelerator がその下に記述されていればOKです。</p>
<pre class="modPuki_pre">$ php -v

PHP 5.3.2 (cli) (built: Mar  6 2010 20:49:38)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
   with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator</pre>
<h3 id="content_Object id #192_7" class="modPuki_head">eAccelerator を使う環境で VirtualHost をする</h3>
<p>eAccelerator を使う環境で VirtualHost をする場合、httpd.conf の 同 VirtualHost 内の セクションに以下を記述します。</p>
<p>name_space 名は、他と重複しなければ何でも良いです</p>
<pre class="modPuki_pre">   php_value eaccelerator.name_space &quot;project_name&quot;</pre>
<p>メモがてら程度の簡単なログですがお役に立てますと幸いです。</p>
<h2 id="content_Object id #192_8" class="modPuki_head">関連リンク</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>PHP本家</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://php.net/" target="_blank">http://php.net/</a></li>
</ul>
</li>
<li>eAccelerator本家 ※0.9.6 がリリースされています。
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://eaccelerator.net/" target="_blank">http://eaccelerator.net/</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2010/03/06/php-php-532-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[perl] TwitPepper・Webアプリの中の人（その1）</title>
		<link>http://www.alink.co.jp/tech/blog/2010/02/21/perl-twitpepper%e3%83%bbweb%e3%82%a2%e3%83%97%e3%83%aa%e3%81%ae%e4%b8%ad%e3%81%ae%e4%ba%ba%ef%bc%88%e3%81%9d%e3%81%ae1%ef%bc%89/</link>
		<comments>http://www.alink.co.jp/tech/blog/2010/02/21/perl-twitpepper%e3%83%bbweb%e3%82%a2%e3%83%97%e3%83%aa%e3%81%ae%e4%b8%ad%e3%81%ae%e4%ba%ba%ef%bc%88%e3%81%9d%e3%81%ae1%ef%bc%89/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 10:33:05 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[Apache]]></category>

		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=927</guid>
		<description><![CDATA[
こんにちは、松本です。寒い中 いかがお過ごしでしょうか。
1月冒頭に 年始の抱負 を書いた後、忙しさにかまけ、jQuery と PHP の新バージョンに心踊らせるのに精一杯で、Corei7の低TDP版 &#34;Cor [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは、松本です。<a href="http://tenki.jp/forecaster/diary/" target="_blank">寒い中</a> いかがお過ごしでしょうか。</p>
<p>1月冒頭に <a href="/tech/blog/2010/01/05/%E9%9B%91%E6%84%9F-%E4%BB%8A%E5%B9%B4%E3%81%AE%E7%9B%AE%E6%A8%99%EF%BC%86%E6%89%80%E8%A6%8B%E3%81%AA%E3%81%A9/" target="_blank">年始の抱負</a> を書いた後、忙しさにかまけ、<a href="http://jquery.com/" target="_blank">jQuery</a> と <a href="http://php.net/" target="_blank">PHP</a> の新バージョンに心踊らせるのに精一杯で、Corei7の低TDP版 &quot;<a href="http://akiba-pc.watch.impress.co.jp/hotline/20100220/graph/gi_1ci7_860s.html" target="_blank">Corei7-860S</a>&quot; の登場にも気付かず今日気づきました。<br />
ついに Core2 Quad シリーズも世代交代か・・・と考え始めております今日この頃です。</p>
<p>今回弊社のサービス&quot;<a href="http://twitpepper.jp/" target="_blank">TwitPepper（ツイットペッパー）</a>&quot;の技術面から見た中身についてご紹介したいと思います。</p>
<hr class="modPuki_full_hr" />
<div class="modPuki_contents">
<a id="contents_Object id #703"></a>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_0"> TwitPepper（ツイットペッパー）とは</a></li>
<li><a href="#content_Object id #703_1"> TwitPepperのWebアプリケーション概要</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_2"> L・・・Linux (CentOS 4 i386)</a></p>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_3"> 搭載するメモリ量について</a></li>
<li><a href="#content_Object id #703_4"> ノウハウ集約のためにOSを統一</a></li>
<li><a href="#content_Object id #703_5"> 関連リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #703_6"> A・・・Apache 2.2 + Apache 1.3</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_7"> リバースプロキシ（Reverse Proxy）とは</a></li>
<li><a href="#content_Object id #703_8"> Proxy側（フロント）・・・Apache2.2</a></li>
<li><a href="#content_Object id #703_9"> App（アプリケーション）側・・・Apache1.3</a></li>
<li><a href="#content_Object id #703_10"> Proxy 側（フロント）側の設定</a></li>
<li><a href="#content_Object id #703_11"> App（アプリケーション）側の設定</a></li>
<li><a href="#content_Object id #703_12"> 関連リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #703_13"> M・・・MySQL 5.0</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_14"> MySQLのUTF8対応</a></li>
</ul>
</li>
<li><a href="#content_Object id #703_15"> P・・・Perl（mod_perl）</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #703_16"> 参考リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #703_17"> 次回に続きます。</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="content_Object id #703_0" class="modPuki_head">TwitPepper（ツイットペッパー）とは</h1>
<p>TwitPepperとは、Twitterのデザインを外部から簡単に変更できるサービスを提供しているサイトです。</p>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td"><a href="http://twitpepper.jp/" target="_blank"><img src="http://www.alink.co.jp/images/works/twitpepper_top_240_170.jpg" alt="http://twitpepper.jp/" /></a></td>
<td class="modPuki_style_td">Blogサービスのスキン変更のように、自分もTwitterページをお手軽に色々なデザインに変更することができます。詳しくは <a href="http://twitpepper.jp/docs/about" target="_blank">TwitPepper内の解説ページ</a> をご覧下さい。</td>
</tr>
</tbody>
</table>
</div>
<p>遅ればせながらなのですが、昨年12.21にリリースしまして本年冒頭にプレスリリース、1月末に月間カレンダーシリーズをリリースしまして、好評頂いておりますサービスです。（3月分のカレンダーももうすぐアップされると思います。）</p>
<h1 id="content_Object id #703_1" class="modPuki_head">TwitPepperのWebアプリケーション概要</h1>
<p>TwittPepperは、いわゆるLAMP構成で構成されています。LAMP構成の詳細は以下になっています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>L・・・Linux (CentOS 4 i386)</li>
<li>A・・・Apache 2.2 + Apache 1.3</li>
<li>M・・・MySQL 5.0</li>
<li>P・・・Perl（mod_perl）</li>
</ul>
<p>それぞれの概要を記述していきます。</p>
<h2 id="content_Object id #703_2" class="modPuki_head">L・・・Linux (CentOS 4 i386)</h2>
<p>TwittPepperのサーバは、<a href="http://server.sakura.ad.jp/dedicated/" target="_blank">さくらインターネットの専用サーバ</a> を使っています。OSはCentOS4（i386/32bit）を利用しています。現在はまだそれほどのトラフィックが発生していないので、いわゆる<a href="http://server.sakura.ad.jp/dedicated/old_connect.html" target="_blank">10Mスタンダード</a> がデフォルトで付いていますのでそちらを利用しています。<br />
※サーバを借りた時期がやや以前なので、旧ネットワークプランにリンクしています。</p>
<p>さくらさんでは、OSは他に<a href="http://server.sakura.ad.jp/dedicated/os.html" target="_blank">Ubuntu、FreeBSDなども選択可能</a> ですが、弊社では新規のサーバは全てCentOSで統一しています。</p>
<p>また、バージョンは基本5、で i386（32bit）を選択しています。<br />
（今回借りているサーバはやや以前に借りたサーバなので、バージョン4ですが、現在はデフォルトでバージョン5を選択しています。）</p>
<h3 id="content_Object id #703_3" class="modPuki_head">搭載するメモリ量について</h3>
<p>x86_64（64bit）を選択しない理由は、64bit化するとWebアプリケーションのプロセスサイズが肥大化し、メモリ増強が必要になります。なのですが、さくらさんではメモリが月額料金にのっているため、月々のランニングコストに乗ってしまいます。</p>
<p>ランニングコストの内訳は以下になります。</p>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td">合計搭載メモリ量</td>
<td class="modPuki_style_td">専用サーバのランニングコスト</td>
</tr>
<tr>
<td class="modPuki_style_td">2G</td>
<td class="modPuki_style_td">専用サーバ標準料金のまま</td>
</tr>
<tr>
<td class="modPuki_style_td">4G(2G+2G)</td>
<td class="modPuki_style_td">+2,100円/月</td>
</tr>
</tbody>
</table>
</div>
<p>弊社ではできるだけランニングコストを抑えたいので、メモリサイズを最小で運用できるi386（32bit）で運用し、まずはデフォルトのメモリ2Gで運用。その後メモリが必要であれば+2G（月額2,100円追加）で最大4G(2G+2G)に拡張し、32bitOSの上限値までメモリを利用できる形で1つのWebアプリケーションを完結させています。</p>
<h3 id="content_Object id #703_4" class="modPuki_head">ノウハウ集約のためにOSを統一</h3>
<p>もちろん、案件によってはメモリ8Gを必要とするサーバの構築もありますので、そういった場合は x86_84（64bit）のOSを積み、そもそもメモリ4Gの壁が存在しない形にしています。</p>
<p>以前はFreeBSD、RedHaｔLinux、FedoraCoreが混在していたのですが、CentOS以降は書籍・ネット上の資料がCentOSが一番多いと判断しまして、ノウハウの集約をする為にも、OSは統一しています。</p>
<p>自分は以前からFreeBSDをずっと使ってきていて、慣れている部分も多かったのですが・・・ yumの利便性と、案件によってはJavaが動作する環境が必要だったため、Linuxに移行しました。</p>
<h3 id="content_Object id #703_5" class="modPuki_head">関連リンク</h3>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>さくらインターネット・専用サーバTOP</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://server.sakura.ad.jp/" target="_blank">http://server.sakura.ad.jp/</a></li>
</ul>
</li>
<li>さくらインターネット・専用サーバ サービス仕様
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://server.sakura.ad.jp/dedicated/specification.html" target="_blank">http://server.sakura.ad.jp/dedicated/specification.html</a></li>
</ul>
</li>
</ul>
<h2 id="content_Object id #703_6" class="modPuki_head">A・・・Apache 2.2 + Apache 1.3</h2>
<p>WebサーバはApacheを利用しています。こちら、表記が2つあり Apache 2.2 と Apache 1.3 の2つが存在しています。<br />
これは、&quot;リバースプロキシ（Reverse Proxy）&quot; という技術を使ってWebアプリケーションを運用しているため、1つのサーバに2つのWebサーバが混在しているという形になっています。</p>
<h3 id="content_Object id #703_7" class="modPuki_head">リバースプロキシ（Reverse Proxy）とは</h3>
<p>&quot;リバースプロキシ（Reverse Proxy）&quot; という技術は色々な場面で使われています。<br />
弊社では主に &quot;Webサーバを多段構成にする事で、負荷軽減を狙うための技術&quot; として用いています。<br />
とても簡単な図解なのですが、以下の様に構成しています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>リバースプロキシ（Reverse Proxy）の構成例<br />
<a href="MOD_PUKI_WIKI_URL?%5B%5Bhttp%3A%2F%2Fwww.alink.co.jp%2Fimages%2Fworks%2Freverse_proxy_sample.gif%5D%5D" title="http://www.alink.co.jp/images/works/reverse_proxy_sample.gif"><img src="http://www.alink.co.jp/images/works/reverse_proxy_sample.gif" alt="http://www.alink.co.jp/images/works/reverse_proxy_sample.gif" /></a></li>
</ul>
<h3 id="content_Object id #703_8" class="modPuki_head">Proxy側（フロント）・・・Apache2.2</h3>
<p>Proxy側（フロントエンド）は yum 経由でインストールできる、 <a href="http://httpd.apache.org/docs/2.1/ja/" target="_blank">Apache2.2</a> を利用しています。 yum が使えない場合はソースコードからApache2.2をインストールします。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>yum から Apache2.2をインストール</p>
<pre class="modPuki_pre">sudo yum install httpd</pre>
</li>
<li>ソースコードから Apache2.2をインストール
<pre class="modPuki_pre">./configure --enable-mods-shared=all
--enable-so
--enable-proxy
--enable-proxy-connect
--enable-proxy-http
--enable-proxy-balancer
--enable-ssl
--enable-dav
--enable-cache
--enable-disk-cache
--enable-mem-cache 

sudo make install</pre>
</li>
</ul>
<p>Apache2.2 を利用している理由は、まず Apache2.x 以上のApacheは SSLの扱いが簡単という点と、Apache2.2 以上では<a href="http://httpd.apache.org/docs/2.1/ja/mod/mod_mem_cache.html" target="_blank">mod_mem_cache</a> / <a href="http://httpd.apache.org/docs/2.1/ja/mod/mod_disk_cache.html" target="_blank">mod_disk_cache</a> と、 <a href="http://httpd.apache.org/docs/2.1/ja/mod/mod_proxy_balancer.html" target="_blank">mod_proxy_balancer</a> が使える点が大変に大きいです。</p>
<p>この2つが最初から使えることで、後々スケールアウトの必要が出てきた場合も柔軟に対応できます。</p>
<p>※＜参考＞Apache 2.0 のインストール<br />
何らかの事情でApache 2.2 ではなく、Apache 2.0 をインストールしなければならない場合は以下のように configure のセッティングを行っています。<br />
prefix の指定は、今後Apache2.2がインストールされたとしてもインストールディレクトリ先が重複しないための措置です。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Apache 2.0.x 本体のインストール</p>
<pre class="modPuki_pre">./configure --prefix=/usr/local/apache20
 --enable-mods-shared=all
 --enable-so
 --enable-proxy
 --enable-ssl
 --enable-dav</pre>
</li>
</ul>
<h3 id="content_Object id #703_9" class="modPuki_head">App（アプリケーション）側・・・Apache1.3</h3>
<p>アプリケーション側は Apache1.3を利用しています。<br />
TwitPepperでは <a href="http://perl.apache.org/" target="_blank">mod_perl</a> を利用しています。Apache1.3 のmod_perlを利用するために<br />
必要なミドルウエア、モジュールをソースからインストールします。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Apache 1.3 本体のインストール</p>
<pre class="modPuki_pre">./configure
 --enable-shared=max
 --enable-module=all
 --disable-module=auth_dbm

sudo make install</pre>
</li>
</ul>
<p>続いて <a href="http://perl.apache.org/" target="_blank">mod_perl</a> をインストールします。 <a href="http://perl.apache.org/" target="_blank">mod_perl</a>  自体のダウンロードは <a href="http://perl.apache.org/download/index.html" target="_blank">こちら</a> から行うことができます。<br />
今回はApache1.3用のmod_perlですので、 &quot;For use with Apache 1.3.x &quot; の &quot;Download&quot; のリンク先をダウンロードします。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Apache 1.3 に mod_perlをインストール</p>
<pre class="modPuki_pre">wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz
tar xvzf mod_perl-1.0-current.tar.gz
cd mod_perl-1.31

perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs EVERYTHING=1

make install clean</pre>
</li>
</ul>
<p>APXSの指定先はApache 1.3をインストールしたディレクトリを指定します。<br />
今回はデフォルトのprefixですので &quot;/usr/local/apche/&quot; 以下の &quot;bin/apxs&quot; になります。</p>
<h3 id="content_Object id #703_10" class="modPuki_head">Proxy 側（フロント）側の設定</h3>
<p>Proxy（フロント）から、バックエンドのアプリケーションサーバにリクエストを飛ばすために、Proxy（フロント）のhttpd.confに以下のように記述しています。</p>
<p>/usr/local/apache2/conf.httpd.conf に記述</p>
<pre style="height:7.44em;" class="modPuki_pre">ProxyRequests Off
ProxyPreserveHost On
RewriteRule ^/(.*)/([a-z_]+)-([0-9]+).html$ http://localhost:xxxx（ポート番号）/project_path/$1/$2?id=$3&amp;%{QUERY_STRING} [P,L]
RewriteRule ^/(.*).html http://localhost:xxxx（ポート番号/project_path/$1?%{QUERY_STRING} [P,L]
RewriteRule ^/(.*) http://localhost:xxxx（ポート番号/project_path/$1 [P,L]</pre>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>1行目・・・フォワードプロキシサーバとしての動作を無効化しています <a href="http://httpd.apache.org/docs/2.1/ja/mod/mod_proxy.html#proxyrequests" target="_blank">ProxyRequestsについての詳細はこちら</a></li>
<li>2行目・・・HTTPヘッダのHost:行をProxy側と同じものをApp側にも飛ばすための設定です。<a href="http://httpd.apache.org/docs/2.1/ja/mod/mod_proxy.html#proxypreservehost" target="_blank">ProxyPreserveHostについての詳細はこちら</a><br />
これを行わないと、Host部での解釈ができないためApp側でのVirtualHostが有効に働きません。</li>
<li>3行目～5行目・・・Proxy条件・設定です。この部分で記述した書式に従い、Proxy先にリクエストを飛ばします。<br />
各行の最後に &quot;[P.L]&quot; と終わっていますが、これはmod_rewriteの書式で&quot;Proxyして（P）、条件定義はこの行で終了（L）&quot; という意味になります。</li>
</ul>
<h3 id="content_Object id #703_11" class="modPuki_head">App（アプリケーション）側の設定</h3>
<p>App側は基本的には、リクエストがReverseProxyかどうかを判別する必要はありません。なのですが、REMOTE_ADDR（リモートアドレス・接続元）が全てProxy元（今回は同一サーバなので、127.0.0.1＝ローカルホスト）になってしまい、アクセスログにも全てProxy元のIPアドレスが記述されます。</p>
<p>アプリ的、ログ解析的にも特に気にしない場合はいいのですが、やはり、アクセス状況を知りたいという場合が来るケースが多いと思いますので<br />
Proxy元が受けたREMOTE_ADDRと同じ値（ユーザーのIPアドレス）をProxy先にもとどくよう、設定します。</p>
<p>設定には mod_extract_forarded モジュールを使います。<br />
（配布されている方のURLをリンクしようと思ったのですが、現在サーバが存在していないようです。もう1.3用のモジュールの配布は終了されてしまったのでしょうか？）</p>
<p>mod_extract_forarded を Apache1.3に適用するには以下のようにしています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>mod_extract_forarded をインストール<br />
※mod_extract_forwarded.c が存在するディレクトリに移動して、</p>
<pre class="modPuki_pre">/usr/local/apache/bin/apxs -i -a -n 'extract_forwarded' mod_extract_forwarded.so</pre>
</li>
<li>/usr/local/apche/conf/httpd.conf の設定<br />
以下を追加</p>
<pre class="modPuki_pre">
LoadModule extract_forwarded_module libexec/mod_extract_forwarded.so

AddModule mod_extract_forwarded.c

&lt;IfModule mod_extract_forwarded.c&gt;
    RemoveAcceptForwarder all
    AddAcceptForwarder all
&lt;/IfModule&gt;</pre>
</li>
</ul>
<p>※＜参考＞ Apache2 の mod_extract_forwarded<br />
Apache 2.x 用の mod_extract_forwarded については、以下からダウンロードできるようです。<br />
（Apche2.0.x 用と書いてありますが、Apache 2.2 でも一応インストールできました。）</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.cotds.org/mod_extract_forwarded2/" target="_blank">http://www.cotds.org/mod_extract_forwarded2/</a></li>
</ul>
<h3 id="content_Object id #703_12" class="modPuki_head">関連リンク</h3>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Apache 公式</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://httpd.apache.org/" target="_blank">http://httpd.apache.org/</a></li>
</ul>
</li>
<li>mod_perl 公式
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://perl.apache.org/" target="_blank">http://perl.apache.org/</a></li>
</ul>
</li>
</ul>
<h2 id="content_Object id #703_13" class="modPuki_head">M・・・MySQL 5.0</h2>
<p>MySQLは全て、yum経由の 5.0.x を利用しています。 現在主流のMySQL5.1 も利用したいのですが、 yum で簡単にインストールできるという部分が、マニュアル化・アプリ全体の品質の統一に大変有効だと思いまして、現在は yum でのインストールのみを利用しています。</p>
<p>yumでのインストールは簡単です。perl用のDBDドライバも同時にインストールします。</p>
<pre class="modPuki_pre">yum install mysql mysql-server perl-DBD-mysql

sudo service mysqld start</pre>
<p>起動後、すぐにRootのパスワードを設定します。</p>
<pre class="modPuki_pre">mysqladmin -u root password 'xxxxxxxxxxx'</pre>
<h3 id="content_Object id #703_14" class="modPuki_head">MySQLのUTF8対応</h3>
<p>MySQLをUTF8対応するために /etc/my.conf で以下のように記述しています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>[client] に以下を追記</p>
<pre class="modPuki_pre">default-character-set = utf8</pre>
</li>
<li>[mysqld] に以下を追記
<pre class="modPuki_pre">default-character-set = utf8
character-set-server=utf8</pre>
</li>
</ul>
<p>mysql に接続して、以下のように表示されれば、UTF8での扱いはほぼ問題ないのでは無いかと思います。</p>
<pre class="modPuki_pre">mysql&gt; SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+</pre>
<p>mysql は chkconfig にも登録して置き、 boot時に起動するように設定しています。</p>
<pre class="modPuki_pre">sudo config add mysqld
sudo chkconfig mysqld on</pre>
<h2 id="content_Object id #703_15" class="modPuki_head">P・・・Perl（mod_perl）</h2>
<p>App側の動的処理は 全て mod_perl で書いています。弊社では案件によっては PHPを利用するケースもありますが、ほとんどの場合は mod_perl でソリューションしています。<br />
特に自社内システムは100％ perl/mod_perl で動いています。</p>
<p>mod_perl 自体のインストールは先ほど書いたとおりになります。</p>
<p>mod_perl の上に乗せて動かすアプリケーションですが、コーディングルールの統一化を図るため、MVC（フレームワーク）を利用しています。<br />
弊社では mod_perl用のフレームワークは Sledge を利用しています。<br />
通常のSledge は、基本 EUC-JP を前提としているのですが、弊社ではデフォルトがUTF8ですので、UTF８で動かすためにカスタムモジュールを追加しています。</p>
<p>このSledge を mod_perl 上で扱い、その上に DB との通信するためのORマッパー（今回は <a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">Class::DBI</a> ）、そしてテンプレートとして <a href="http://template-toolkit.org/" target="_blank">template-toolkit</a> を利用しています。</p>
<h3 id="content_Object id #703_16" class="modPuki_head">参考リンク</h3>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Sledge (sourceforge)</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://sourceforge.jp/projects/sledge/releases/" target="_blank">http://sourceforge.jp/projects/sledge/releases/</a></li>
</ul>
</li>
<li>SledgeのApache2（mod_perl2）対応＋UTF8
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/blog/2009/06/19/sledge%E3%81%AEapache2%EF%BC%88mod_perl2%EF%BC%89%E5%AF%BE%E5%BF%9C%EF%BC%8Butf8/" target="_blank">http://www.alink.co.jp/tech/blog/2009/06/19/sledge%E3%81%AEapache2%EF%BC%88mod_perl2%EF%BC%89%E5%AF%BE%E5%BF%9C%EF%BC%8Butf8/</a></li>
</ul>
</li>
<li>Class::DBI
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">http://search.cpan.org/perldoc?Class::DBI</a></li>
</ul>
</li>
<li>template-toolkit
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://template-toolkit.org/" target="_blank">http://template-toolkit.org/</a></li>
</ul>
</li>
</ul>
<h2 id="content_Object id #703_17" class="modPuki_head">次回に続きます。</h2>
<p>少々記事が大きくなってしまいまして・・・ mod_perl ＋ Sledge + Class::DBI + TT(template-toolkit) については<br />
&quot;TwitPepper・Webアプリの中の人（その2）&quot; に続きます。</p>
<p>memcached などもカリカリ使っていますので、こちらに付いても書きたいと思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2010/02/21/perl-twitpepper%e3%83%bbweb%e3%82%a2%e3%83%97%e3%83%aa%e3%81%ae%e4%b8%ad%e3%81%ae%e4%ba%ba%ef%bc%88%e3%81%9d%e3%81%ae1%ef%bc%89/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[雑感] 2010年の目標＆所見など</title>
		<link>http://www.alink.co.jp/tech/blog/2010/01/05/%e9%9b%91%e6%84%9f-%e4%bb%8a%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99%ef%bc%86%e6%89%80%e8%a6%8b%e3%81%aa%e3%81%a9/</link>
		<comments>http://www.alink.co.jp/tech/blog/2010/01/05/%e9%9b%91%e6%84%9f-%e4%bb%8a%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99%ef%bc%86%e6%89%80%e8%a6%8b%e3%81%aa%e3%81%a9/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 10:07:16 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[web技術]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=922</guid>
		<description><![CDATA[
明けましておめでとうございます、寒すぎます。松本です。
年末年始はちょっとコードを書きながら、魚介類をサバいて終えました。たまには駅伝をみながらまったりお雑煮を食べたいです。



 今年の目標

 Perl/mod_p [...]]]></description>
			<content:encoded><![CDATA[
<p>明けましておめでとうございます、<a href="http://tenki.jp/satellite/?satellite_type=japan_near" target="_blank">寒すぎます</a>。松本です。</p>
<p>年末年始はちょっとコードを書きながら、魚介類をサバいて終えました。たまには駅伝をみながらまったりお雑煮を食べたいです。</p>
<div class="modPuki_contents">
<a id="contents_Object id #1156"></a>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1156_0"> 今年の目標</a></p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1156_1"> Perl/mod_perl</a></p>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1156_2"> 参考リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #1156_3"> PHP</a></li>
<li><a href="#content_Object id #1156_4"> その他のプログラム言語</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="content_Object id #1156_0" class="modPuki_head">今年の目標</h1>
<p>今年はプログラム技術力、Webアプリケーションを開発する技術力を向上させ<br />
もっと効率的に柔軟なシステムを作れるようになりたいと思っています。</p>
<h2 id="content_Object id #1156_1" class="modPuki_head">Perl/mod_perl</h2>
<p>弊社で利用しているプログラム言語は <a href="http://perl.apache.org/" target="_blank">mod_perl</a> なのですが、これをベースにSledgeというMVCを使い、Webアプリケーションを開発する事が主です。</p>
<p>mod_perlもSledgeも非常に高速で、素晴らしいアプリケーションなのですが、これの上にのせていくORマッパやその他モジュールが相当にメモリ食いで、<a href="/tech/blog/2009/12/31/%E9%9B%91%E6%84%9F-%E3%81%82%E3%82%8A%E3%82%93%E3%81%8Ftech%E7%9A%842009%E5%B9%B4%E3%81%BE%E3%81%A8%E3%82%81/" target="_blank">[雑感] ありんくTech的2009年まとめ</a> でも言及していますが、利用するモジュールによって、メモリ消費っぷりがエラく違います。</p>
<p>結果的に1台のサーバで処理出来る量が、メモリの使用量によって左右されることの無いように省エネでエコなプログラムを意識して参りたいと思います。<br />
CPUはもうQuadCore任せで。</p>
<h3 id="content_Object id #1156_2" class="modPuki_head">参考リンク</h3>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/blog/2009/10/01/perl-sledge%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%BE%E3%81%A8%E3%82%81/" target="_blank">[perl] Sledgeドキュメントまとめ</a></p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li>mod_perlのMVC&quot;Sledge&quot;についてリンクをまとめています</li>
</ul>
</li>
<li><a href="/tech/blog/2009/04/26/perl-mod_perl%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%AEstartuppl%E3%81%A7%E3%81%AE%E4%BE%BF%E5%88%A9%E3%81%AA%E6%89%8B%E6%B3%95/" target="_blank">[perl] mod_perl起動時のstartup.plでの便利な手法</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li>httpdの起動時に共通するモジュールを読み込む事により、プロセス毎に共有メモリを効率的に扱える手法です</li>
</ul>
</li>
</ul>
<h2 id="content_Object id #1156_3" class="modPuki_head">PHP</h2>
<p>弊社でperl以外に扱っているプログラム言語が <a href="http://php.net/" target="_blank">PHP</a> です。</p>
<p>PHPは5.3.x以降を利用するようにしていて、perlと同様ですがメモリ消費を抑えたいと思い、ガベージコレクションの恩恵に預かりたいという意図であります。</p>
<p>PHP5.3の最新バージョンは 5.3.1 ですが RCバージョンの5.3.2 も登場し、安定性のある形になってきていると思います。<br />
必須ツールである、<a href="http://pecl.php.net/package/Xdebug/" target="_blank">XDebug</a>、<a href="http://pecl.php.net/package/APC/" target="_blank">APC</a> も5.3に対応しています。</p>
<p>※<a href="http://pecl.php.net/package/memcache/" target="_blank">memcache</a> モジュールが memcached1.4のDELETEの仕様変更に対応していないので、こちらが惜しまれるのですが・・・</p>
<h2 id="content_Object id #1156_4" class="modPuki_head">その他のプログラム言語</h2>
<p>サーバサイドはperl/PHPですが、フロントエンド側の JavaScript CSS/HTML も引き続きやっていきたいと思っています。</p>
<p>特にCSSついては、ブラウザの種類が増えるほどに意識しないといけない事が増えていきますので<br />
常にいじり続けたいと思っています。</p>
<p>JavaScriptはもうjQuery以外はほとんど扱っていません。jQueryは多分今年1.4がリリースされると思いますので、更に便利になると思います。<br />
※jQueryについては <a href="/tech/wiki/index.php?jQuery" target="_blank">tech-wiki</a> にまとめてあります。</p>
<p>ActionScriptもトライ＆エラーしたいのですが、先にiPhone/iPod用に対するWebアプリケーションの学習が発生しそうな予感です。</p>
<p>次の振り返りは多分5月末の35歳になりましたエントリ辺りの予感です。</p>
<p>ということで、今年もどうぞよろしくお願いいたします。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2010/01/05/%e9%9b%91%e6%84%9f-%e4%bb%8a%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99%ef%bc%86%e6%89%80%e8%a6%8b%e3%81%aa%e3%81%a9/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[雑感] ありんくTech的2009年まとめ</title>
		<link>http://www.alink.co.jp/tech/blog/2009/12/31/%e9%9b%91%e6%84%9f-%e3%81%82%e3%82%8a%e3%82%93%e3%81%8ftech%e7%9a%842009%e5%b9%b4%e3%81%be%e3%81%a8%e3%82%81/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/12/31/%e9%9b%91%e6%84%9f-%e3%81%82%e3%82%8a%e3%82%93%e3%81%8ftech%e7%9a%842009%e5%b9%b4%e3%81%be%e3%81%a8%e3%82%81/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 20:03:42 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[web技術]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=893</guid>
		<description><![CDATA[
こんにちは、松本です。
tech-logで2009年の総括をまとめるつもりで、ずるずるしていまい、大晦日にまとめてみました。
&#34;34歳になりました＆抱負&#34;の記事 で書いていた事を全ては実践出来ず、若干 [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは、松本です。<br />
tech-logで2009年の総括をまとめるつもりで、ずるずるしていまい、大晦日にまとめてみました。</p>
<p><a href="/tech/blog/2009/05/29/34%E6%AD%B3%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%86%E6%8A%B1%E8%B2%A0/" target="_blank">&quot;34歳になりました＆抱負&quot;の記事</a> で書いていた事を全ては実践出来ず、若干に心残りではありますが、やれた事はおおよそ以下です。</p>
<div class="modPuki_contents">
<a id="contents_Object id #1420"></a>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1420_0"> TwitPepperのリリース</a></li>
<li><a href="#content_Object id #1420_1"> 本ブログの本格化</a></li>
<li><a href="#content_Object id #1420_2"> CPANやGoogleCodeでのプログラム公開</a></li>
<li><a href="#content_Object id #1420_3"> Perlの高速・軽量なORマッパの学習</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1420_4"> ORMごとのメモリ消費量</a></li>
<li><a href="#content_Object id #1420_5"> 参考リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #1420_6"> jQuery1.3を早々に利用開始できた</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1420_7"> 参考リンク</a></li>
</ul>
</li>
<li><a href="#content_Object id #1420_8"> PHP5.3.x の利用開始</a></li>
<li><a href="#content_Object id #1420_9"> 弊社HPのiPhone版のリリース</a></li>
</ul>
</div>
<h1 id="content_Object id #1420_0" class="modPuki_head">TwitPepperのリリース</h1>
<p>12月中順に　<a href="http://twitpepper.jp/" target="_blank">TwitPepper（ツイットペッパー）</a> をリリースしました。Twitterのデザインを簡単に変更したり、シェアリングできるサイトなのですが、とりあえず、まず1つサービスを定義する事ができた事が大変に良かったです。</p>
<h1 id="content_Object id #1420_1" class="modPuki_head">本ブログの本格化</h1>
<p>2009年3月より本ブログを本格的に書き始め、最低でも毎月2回程度は更新できました。お陰さまで色々な人に見て頂くことができました、ありがとうございます。</p>
<h1 id="content_Object id #1420_2" class="modPuki_head">CPANやGoogleCodeでのプログラム公開</h1>
<p><a href="http://search.cpan.org/~matsumoto/" target="_blank">CPAN</a> にモジュールが公開できたのも大変に嬉しかったです。<br />
自分はmod_perl + Sldegeを使う機会が多いので、Sledgeのモジュール中心ですが、こちらもお役に立てると大変に嬉しいです。</p>
<p><a href="http://code.google.com/p/jquery-easy-str-validate/" target="_blank">GoogleCode</a> では、jQueryのプラグインをUPしました。</p>
<h1 id="content_Object id #1420_3" class="modPuki_head">Perlの高速・軽量なORマッパの学習</h1>
<p><a href="http://search.cpan.org/perldoc?DBIx::Skinny" target="_blank">DBIx::Skinny</a> や <a href="http://search.cpan.org/perldoc?Data::Model" target="_blank">Data::Model</a> 、 <a href="http://search.cpan.org/dist/DBIx-MoCo/" target="_blank">DBIx::MoCo</a> など、Perlの軽量なORマッパがリリースされた事が大変インパクトが大きく感じました。（MoCoの最終更新は2008年ですが・・・）</p>
<p>実際に今までプロダクション環境では <a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">Class::DBI（CDBI）</a> を使うことが大変多かったのですが、 <a href="http://search.cpan.org/perldoc?DBIx::Class" target="_blank">DBIx::Class（DBIC）</a>は、移行するにはモジュールの規模が大きすぎたり、ちょっともっさり過ぎなどオーバーヘッドを相当に感じたため、躊躇していました。</p>
<p>それもあり、省エネ・軽量のORMに注目しています。この中で特に <a href="http://search.cpan.org/dist/DBIx-MoCo/" target="_blank">DBIx::MoCo</a> を学習していて、使い方としては一番CDBIに近いのかなと感じています。<br />
saveメソッドだけが、CDBIのUPDATEと大きく違うのでここの取扱がまだ慣れていないです。</p>
<h2 id="content_Object id #1420_4" class="modPuki_head">ORMごとのメモリ消費量</h2>
<p>現在メインで使っているCDBIを含め、ほぼ同じ動作をする際のメモリ消費量を比べてみました。<br />
メモリ消費量の計測は <a href="http://tech.lampetty.net/tech/index.php/archives/344#gtop" target="_blank">おいぬま日報さんのgtop.pl</a> を使用させて頂きました。</p>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td">モジュール名</td>
<td class="modPuki_style_td">メモリ消費量（x86_64/64bit）</td>
<td class="modPuki_style_td">メモリ消費量（i386/32bit）</td>
</tr>
<tr>
<td class="modPuki_style_td"><a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">Class::DBI（CDBI）</a></td>
<td class="modPuki_style_td">120M</td>
<td class="modPuki_style_td">24M</td>
</tr>
<tr>
<td class="modPuki_style_td"><a href="http://search.cpan.org/dist/DBIx-MoCo/" target="_blank">DBIx::MoCo</a></td>
<td class="modPuki_style_td">30M</td>
<td class="modPuki_style_td">8M</td>
</tr>
<tr>
<td class="modPuki_style_td"><a href="http://search.cpan.org/perldoc?Data::Model" target="_blank">Data::Model</a></td>
<td class="modPuki_style_td">29M</td>
<td class="modPuki_style_td">6M</td>
</tr>
<tr>
<td class="modPuki_style_td"><a href="http://search.cpan.org/perldoc?DBIx::Skinny" target="_blank">DBIx::Skinny</a></td>
<td class="modPuki_style_td">15M</td>
<td class="modPuki_style_td">2M</td>
</tr>
</tbody>
</table>
</div>
<p>※メモリ消費量は1の位で四捨五入しています。<br />
※<a href="http://search.cpan.org/perldoc?DBIx::Class" target="_blank">DBIx::Class（DBIC）</a> は対象に入れていません。（そもそもメモリ食いなので）</p>
<p>64bit環境と、32bit環境でのメモリ消費量の違いも格段に目立ちますが、それでも <a href="http://search.cpan.org/perldoc?DBIx::Skinny" target="_blank">DBIx::Skinny</a> の省エネっぷりは目を引きます。</p>
<p>ORMはその習得自体のラーニングコストが結構にかかるため、ある程度目星をつけてからのトライ＆エラーの方が望ましいとは思います。<br />
が、<a href="http://search.cpan.org/dist/DBIx-MoCo/" target="_blank">DBIx::MoCo</a> に慣れつつある昨今、それにしても <a href="http://search.cpan.org/perldoc?DBIx::Skinny" target="_blank">DBIx::Skinny</a> のメモリ消費の少なさに驚き、いきなり食いついてしまった次第であります。</p>
<h2 id="content_Object id #1420_5" class="modPuki_head">参考リンク</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>DBIx::Skinny - JPerl Advent Calendar 2009</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/" target="_blank">http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/</a> <br />
DBIx::Skinnyに関するHowToが大変詳しく掲載されています。</li>
</ul>
</li>
<li>Data::Model Track - JPerl Advent Calendar 2009
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://perl-users.jp/articles/advent-calendar/2009/data-model/" target="_blank">http://perl-users.jp/articles/advent-calendar/2009/data-model/</a><br />
Data::Modelに関するHowToが大変詳しく掲載されています。</li>
</ul>
</li>
</ul>
<h1 id="content_Object id #1420_6" class="modPuki_head">jQuery1.3を早々に利用開始できた</h1>
<p><a href="http://jquery.com/" target="_blank">jQuery1.3</a> のリリースで、セレクタの速度向上とliveイベントの新機能が大変便利になったと感じました。</p>
<p>liveイベントは本当に便利で、例えば既存のエレメントのノードに新しいエレメントを追加し、同じ挙動を適用させたい場合、<br />
以下の様に書いていました。</p>
<pre class="modPuki_pre">//イベントハンドラの定義
var event_function = function(){ /* event function */ };
// 既存のクラスにイベントハンドラを適用
$('.hoge').click(event_function);
//エレメントの作成
var $element = $('&lt;div class=&quot;hoge&quot;&gt;NewElement&lt;/div&gt;');
//イベントハンドラの追加
$element.click($event_function);
//エレメントの追加
$('#old_element').after($element);</pre>
<p>これをjQuery1.3（実質は1.3.2）では、イベントハンドラとエレメント作成を完全分離できるので<br />
以下の様に定義出来ます。</p>
<pre class="modPuki_pre">// イベントハンドラの定義
$('.hoge').live('click',function(){  /* event function */ });
//エレメントの作成→追加（イベントは自動で定義）
$('#old_element').after('&lt;div class=&quot;hoge&quot;&gt;NewElement&lt;/div&gt;');</pre>
<p>動的なエレメント追加にもイベントが追いかけてくれますので非常にシンプルに実装できる点が大変魅力です。<br />
jQuery1.2.x環境から 1.3.2に移行しましたが、jQueryUIのライブラリ周りで若干ハマる程度で、jQuery本体は差し替えても<br />
ほぼ綺麗に移行できるはずです。</p>
<p>蛇足ではありますが、jQuery1.4ではこのliveイベントでほぼ全てのアクションが定義できるようになるため、さらに便利になります。<br />
※jQuery1.4については<a href="/tech/blog/2009/12/05/javascript-jquery14%E3%81%AE%CE%B1%E7%89%88%E3%81%8C%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%95%E3%82%8C%E3%81%9F%E3%82%88%E3%81%86%E3%81%A7%E3%81%99/" target="_blank">「jQuery1.4のα版がリリースされたようです」</a>の記事で更に詳細を書いています、よろしければご覧下さい。</p>
<h2 id="content_Object id #1420_7" class="modPuki_head">参考リンク</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>jQuery色々まとめリンク（ありんく tech-wiki）</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/wiki/index.php?jQuery" target="_blank">http://www.alink.co.jp/tech/wiki/index.php?jQuery</a></li>
</ul>
</li>
</ul>
<h1 id="content_Object id #1420_8" class="modPuki_head">PHP5.3.x の利用開始</h1>
<p>すでに <a href="http://www.php.net/archive/2009.php#id2009-11-19-1" target="_blank">PHP5.3.1</a> がリリースされているPHPですが、5.3のリリースで 無名関数、staticコール、ガベージコレクションが実装されたのが相当にインパクト大でした。</p>
<p>現在は全てのPHPを利用する環境のVerを5.3にすべく、調査している段階です。</p>
<h1 id="content_Object id #1420_9" class="modPuki_head">弊社HPのiPhone版のリリース</h1>
<p>弊社HP（<a href="/" target="_blank">http://www.alink.co.jp/</a>）で、同一URLでiPhoneからのアクセスの時だけ<br />
iPhone様のデザインでのサイトをリリースしました。</p>
<p>iPhone様のHTMLはCSSのfont-sizeの感覚が違ったり、UIの想定する動作が指（マウスではない）などでやや詰まりますが<br />
全体としてそこまで難易度は高くなかったと思います。</p>
<hr class="modPuki_full_hr" />
<p>ざっと考える限りは以上の様な具合です。</p>
<p>本当に歳を経るほど、時間の流れが速く感じまして<br />
やろうと目標に掲げた事の半分も実践出来なかったような体感っぷりです。</p>
<p>来年は35歳になります。時の流れはどんどん高速になって行きますが<br />
PGとして定年にならないよう、もっとソースコード自体をきちんと書き、保守性の高い、品質の良いプログラムを書けるように精進したいと思っています。</p>
<p>来年もどうぞ <a href="/" target="_blank">株式会社ありんく</a> をよろしくお願いいたします。</p>
<p>2009.12.31 松本 修士</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/12/31/%e9%9b%91%e6%84%9f-%e3%81%82%e3%82%8a%e3%82%93%e3%81%8ftech%e7%9a%842009%e5%b9%b4%e3%81%be%e3%81%a8%e3%82%81/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[JavaScript] jQuery1.4のα版がリリースされたようです</title>
		<link>http://www.alink.co.jp/tech/blog/2009/12/05/javascript-jquery14%e3%81%ae%ce%b1%e7%89%88%e3%81%8c%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%95%e3%82%8c%e3%81%9f%e3%82%88%e3%81%86%e3%81%a7%e3%81%99/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/12/05/javascript-jquery14%e3%81%ae%ce%b1%e7%89%88%e3%81%8c%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%95%e3%82%8c%e3%81%9f%e3%82%88%e3%81%86%e3%81%a7%e3%81%99/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 05:39:17 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=856</guid>
		<description><![CDATA[
こんにちは、松本です。またまた雨で、悩ましい雨雲の動き であります。
jQuery1.4のアルファ版がリリースされたようです。

jQuery 1.4 Alpha 1 Released - jQuery Blog

まだ [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは、松本です。またまた雨で、<a href="http://tenki.jp/rader/pref-16.html" target="_blank">悩ましい雨雲の動き</a> であります。</p>
<p>jQuery1.4のアルファ版がリリースされたようです。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://blog.jquery.com/2009/12/04/jquery-14-alpha-1-released/" target="_blank">jQuery 1.4 Alpha 1 Released</a> - <a href="http://blog.jquery.com/" target="_blank">jQuery Blog</a></li>
</ul>
<p>まだα版ではありますが、jQueryはバージョンアップ毎に処理が高速化されているので、大変楽しみです。まだ <a href="http://docs.jquery.com/Downloading_jQuery" target="_blank">Downloadのページ</a> には記載がありませんが、 <a href="http://blog.jquery.com/2009/12/04/jquery-14-alpha-1-released/" target="_blank">同Blogの記事内</a> からダウンロードできます。</p>
<hr class="modPuki_full_hr" />
<div class="modPuki_contents">
<a id="contents_Object id #1753"></a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1753_0"> ダウンロード</a></li>
<li><a href="#content_Object id #1753_1"> 変更点1 : live eventsの大幅な強化</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #1753_2"> live events が機能するイベントハンドラ</a></li>
</ul>
</li>
<li><a href="#content_Object id #1753_3"> 変更点2 : append prepend周りなどの最適化</a></li>
<li><a href="#content_Object id #1753_4"> 変更点3 : add の返り値の調整</a></li>
<li><a href="#content_Object id #1753_5"> 変更点4 : その他の最適化</a></li>
<li><a href="#content_Object id #1753_6"> さらにその他の変更点</a></li>
</ul>
</div>
<h2 id="content_Object id #1753_0" class="modPuki_head">ダウンロード</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://blog.jquery.com/2009/12/04/jquery-14-alpha-1-released/" target="_blank">こちらから</a> ダウンロードできます。<br />
※まだα版（試験版）ですのでご利用には十分ご注意ください。</li>
</ul>
<p>主な変更点は以下のようです。（適当日本語訳です。）<br />
※下記英語記述は <a href="http://blog.jquery.com/2009/12/04/jquery-14-alpha-1-released/" target="_blank">jQueryBlog</a> より引用しています。</p>
<h2 id="content_Object id #1753_1" class="modPuki_head">変更点1 : live eventsの大幅な強化</h2>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td"><strong>live</strong> was drastically overhauled and now supports submit, change, mouseenter, mouseleave, focus, and blur events in all browsers. Also now supports context and data.</td>
</tr>
</tbody>
</table>
</div>
<blockquote><p class="modPuki_quotation">
live 機能が大幅にオーバーホールされました。submit、change、mouseenter、mouseleave、focus、blurがサポートされました。</p>
</blockquote>
<p>jQuery1.3以降、 <a href="/tech/blog/2009/04/06/javascript-jquery13%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD%E3%80%8Clive-events%E3%80%8D/" target="_blank">live events</a> という機能が追加されました。これは動的処理などで新しく加えたHTMLのノードに対して、予めイベントハンドラを定義しておく機能です。　詳しくは <a href="/tech/blog/2009/04/06/javascript-jquery13%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD%E3%80%8Clive-events%E3%80%8D/" target="_blank">こちら</a> をご覧下さい。</p>
<p>jQuery1.3.2までは、この機能は click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、keydown、keypress,、keyup に対して定義されており、submit、change、mouseenter、mouseleave、focus、blur のイベントには定義されていませんでした。jQuery1.4a 以降は全てのイベントでlive eventsが使えるようです。</p>
<p>表にすると以下のような具合です。（※ <a href="http://semooh.jp/jquery/api/events/live/type%2C+fn/" target="_blank">jQuery日本語リファレンス・live(type, fn)</a> を参考にさせて頂きました）</p>
<h3 id="content_Object id #1753_2" class="modPuki_head">live events が機能するイベントハンドラ</h3>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td">jQueryのバージョン</td>
<td class="modPuki_style_td">click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、keydown、keypress,、keyup</td>
<td class="modPuki_style_td">submit、change、mouseenter、mouseleave、focus、blur</td>
</tr>
<tr>
<td class="modPuki_style_td">1.2.x</td>
<td class="modPuki_style_td">×</td>
<td class="modPuki_style_td">×</td>
</tr>
<tr>
<td class="modPuki_style_td">1.3.x</td>
<td class="modPuki_style_td">○</td>
<td class="modPuki_style_td">×</td>
</tr>
<tr>
<td class="modPuki_style_td">1.4.a</td>
<td class="modPuki_style_td">○</td>
<td class="modPuki_style_td">○</td>
</tr>
</tbody>
</table>
</div>
<h2 id="content_Object id #1753_3" class="modPuki_head">変更点2 : append prepend周りなどの最適化</h2>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td"><strong>append</strong>, <strong>prepend</strong>, <strong>etc</strong>. have been heavily optimized.</td>
</tr>
</tbody>
</table>
</div>
<blockquote><p class="modPuki_quotation">append prepend その他（の機能）は相当に最適化されています。</p>
</blockquote>
<p>&quot;その他&quot;が何を意味するのかが大変気になりますが、少なくとも append/prepend 機能が最適化されています。</p>
<p>私見ですが、ここでいう最適化とは、ブラウザでのレンダリングスピード＋メモリの省エネ効果を表していると推測しています。</p>
<h2 id="content_Object id #1753_4" class="modPuki_head">変更点3 : add の返り値の調整</h2>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td"><strong>add</strong> has been adjusted to always return elements in document order.</td>
</tr>
</tbody>
</table>
</div>
<blockquote><p class="modPuki_quotation">add は常にドキュメントの中の列内のエレメントを返すように調整されました。</p>
</blockquote>
<h2 id="content_Object id #1753_5" class="modPuki_head">変更点4 : その他の最適化</h2>
<div class="modPuki_ie5" >
<table class="modPuki_style_table" style="">
<tbody>
<tr>
<td class="modPuki_style_td"><strong>find</strong>, <strong>empty</strong>, <strong>remove</strong>, <strong>addClass</strong>, <strong>removeClass</strong>, <strong>hasClass</strong>, <strong>attr</strong>, and <strong>css</strong> have been heavily optimized.</td>
</tr>
</tbody>
</table>
</div>
<blockquote><p class="modPuki_quotation">find、empty、remove、addClass、removeClass、hasClass、attr、css　の機能が大幅に最適化されました。</p>
</blockquote>
<p>変更点2の「その他」に該当する部分でしょうか、上記機能が最適化されているようです。</p>
<h2 id="content_Object id #1753_6" class="modPuki_head">さらにその他の変更点</h2>
<p>という感じです。その他の様々な変更点は <a href="http://ejohn.org/blog/talks-at-the-2009-jquery-conference/" target="_blank">こちらをご覧下さい</a> との事で、見ていたのですが・・・ jQuery1.3.3 もリリースされる予定？？</p>
<p>ｊQueryUIや各種プラグインの対応状況が気になるところではありますが、jQuery本体が毎回大幅にチューニングされていますので、移行しない手は無いと思います。<br />
今回も正式リリースがされ次第、移行Todoに入りたい所存であります。</p>
<hr class="modPuki_full_hr" />
<p>関連コンテンツ</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/blog/category/javascript/jquery/" target="_blank">ありんく tech-log / カテゴリ / jQuery</a></p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/blog/2009/04/06/javascript-jquery13%E3%81%AE%E6%96%B0%E6%A9%9F%E8%83%BD%E3%80%8Clive-events%E3%80%8D/" target="_blank">jQuery1.3の新機能「live events」</a></li>
</ul>
</li>
</ul>
<p>外部リンク</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://jquery.com/" target="_blank">jQuery本家</a></p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://blog.jquery.com/" target="_blank">jQueryBlog</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://semooh.jp/jquery/" target="_blank">jQuery日本語リファレンス</a>  （いつもお世話になっています）</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://semooh.jp/jquery/api/traversing/add/expr/" target="_blank">jQuery日本語リファレンス（live eventsについて）</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/12/05/javascript-jquery14%e3%81%ae%ce%b1%e7%89%88%e3%81%8c%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%95%e3%82%8c%e3%81%9f%e3%82%88%e3%81%86%e3%81%a7%e3%81%99/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[perl] DBIx::MoCo::SaveTrigger</title>
		<link>http://www.alink.co.jp/tech/blog/2009/12/03/perl-dbixmocosavetrigger/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/12/03/perl-dbixmocosavetrigger/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:08:18 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<category><![CDATA[サーバー]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=849</guid>
		<description><![CDATA[
こんにちは、松本です。やはり雨でした。
弊社ではperlのORマッパーは CDBI をメインに使ってきましたが、最近では DBIx::MoCo をよく利用しています。
DBIx::Class も検討したのですが、依存する [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは、松本です。やはり<a href="http://tenki.jp/forecast/point-693.html" target="_blank">雨</a>でした。</p>
<p>弊社ではperlのORマッパーは <a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">CDBI</a> をメインに使ってきましたが、最近では <a href="http://search.cpan.org/perldoc?DBIx::MoCo" target="_blank">DBIx::MoCo</a> をよく利用しています。</p>
<p><a href="http://search.cpan.org/dist/DBIx-Class/" target="_blank">DBIx::Class</a> も検討したのですが、依存するモジュールの量が多く、またラーニングコストも若干高く感じ、現在まだ使っていません。</p>
<p>DBIx::MoCoは <a href="http://www.hatena.ne.jp/" target="_blank">はてな</a> 製のORマッパーでCDBIに構造が良く似ています。</p>
<p>なのですが、1点 before_update/after_update の挙動が違いまして、以下となっています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>CDBI</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li>UPDATEするSQL文を発行する前後でHookが実行される。</li>
</ul>
</li>
<li>DBIx::MoCo
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li>カラムの要素を更新した際にHookが実行される。</li>
</ul>
</li>
</ul>
<p>DBIｘ：：MoCoでもCDBIでいう「before_update/after_update」を実現するために、追加モジュールを作成しました。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>DBIx::MoCo::SaveTrigger （<a href="/tech/wiki/index.php?Perl%2FOR%E3%83%9E%E3%83%83%E3%83%91%2FDBIx-MoCo%2FDBIx-MoCo-SaveTrigger" target="_blank">ソースコードはこちらになります</a>）</li>
</ul>
<p>このモジュールをuse すると save メソッド（UPDATE文の実行）前後に「before_save/after_save」を実行してくれます。<br />
独自のCacheをかけていたり、UPDATEする際に必ず更新するカラムが存在する場合など、またCDBIからの移植でも<br />
便利になるかと思います。</p>
<p>使っていただけますと幸いです。</p>
<hr class="modPuki_full_hr" />
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/wiki/index.php?Perl%2FOR%E3%83%9E%E3%83%83%E3%83%91%2FDBIx-MoCo%2FDBIx-MoCo-SaveTrigger" target="_blank">DBIx::MoCo::SaveTrigger</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/12/03/perl-dbixmocosavetrigger/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[ PHP ] PHP 5.3.1 を早速インストール</title>
		<link>http://www.alink.co.jp/tech/blog/2009/11/20/php-php-531-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/11/20/php-php-531-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 06:14:43 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=840</guid>
		<description><![CDATA[
こんにちは。寒くてプラモも作れません、松本です。
PHP5.3.1が今日未明（2009-11-19）にリリースされていまして、早速インストールしてみました。
インストール時のconfigure周りの設定などは CentO [...]]]></description>
			<content:encoded><![CDATA[
<p>こんにちは。<a href="http://tenki.jp/forecaster/diary/detail-1554.html" target="_blank">寒く</a>て<a href="http://bandai-hobby.net/gunpla/mastergrade/mg_gundamexia/index.html" target="_blank">プラモ</a>も作れません、松本です。</p>
<p>PHP5.3.1が<a href="http://www.php.net/archive/2009.php#id2009-11-19-1" target="_blank">今日未明（2009-11-19）</a>にリリースされていまして、早速インストールしてみました。<br />
インストール時のconfigure周りの設定などは <a href="/tech/blog/2009/10/02/php-centos53-%E3%81%A7-php53%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%EF%BC%88yum%E9%A2%A8%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%EF%BC%89/" target="_blank">CentOS5.3 で PHP5.3をインストール（YUM風オプションで） （過去の記事）</a> をご覧下さい。</p>
<p>インストール作業自体は何の問題も無く行えました。<br />
アップデートした後のアプリケーションの挙動も特におかしな点はありませんでしたので、<br />
運用しているシステムのアップデートもすんなりいけそうな予感です。</p>
<p><a href="http://pecl.php.net/package/APC/" target="_blank">APC</a>や<a href="http://eaccelerator.net/" target="_blank">eaccelerator</a>の対応具合が若干気になります。</p>
<h2 id="content_Object id #2021_0" class="modPuki_head">PHP5.3.1について</h2>
<p>5.3.1 はメジャーバージョンのリリース後、最初のマイナーバージョンアップだけあって相当な数のバグ取りや調整などが行われています。<br />
まずは安定化への第一歩という感じです。</p>
<p><a href="http://www.php.net/" target="_blank">PHP本家のサイト</a>の<a href="http://www.php.net/releases/5_3_1.php" target="_blank">アナウンス</a>によると</p>
<p>一回の処理でアップロードできるファイル数の設定を定義する</p>
<pre class="modPuki_pre">max_file_uploads</pre>
<p>の値のデフォルト値が20と定義されたようです。</p>
<p>1つのページでアップロード数を20個以上定義するのはgmailぐらいしか思いつかないのですが、そういう方向性という事で。</p>
<p>その他、特に目立った機能追加はないようでして、ほぼほぼがbugfixといった具合に見受けられます。</p>
<p>PHP自体の雑感ですが、引き続きSmartyは捨て、PHP＝テンプレート＋ロジックという認識でありまして、<a href="http://www.graphicsmagick.org/" target="_blank">Gmagick</a>や<a href="http://pecl.php.net/package/hidef" target="_blank">hidef</a>周りをもうすこしいじってみたい所存であります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/11/20/php-php-531-%e3%82%92%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[雑感] 最近のWeb技術周りの所感（なんでも）</title>
		<link>http://www.alink.co.jp/tech/blog/2009/10/02/%e9%9b%91%e6%84%9f-%e6%9c%80%e8%bf%91%e3%81%aeweb%e6%8a%80%e8%a1%93%e5%91%a8%e3%82%8a%e3%81%ae%e6%89%80%e6%84%9f%ef%bc%88%e3%81%aa%e3%82%93%e3%81%a7%e3%82%82%ef%bc%89/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/10/02/%e9%9b%91%e6%84%9f-%e6%9c%80%e8%bf%91%e3%81%aeweb%e6%8a%80%e8%a1%93%e5%91%a8%e3%82%8a%e3%81%ae%e6%89%80%e6%84%9f%ef%bc%88%e3%81%aa%e3%82%93%e3%81%a7%e3%82%82%ef%bc%89/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 08:24:48 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[web技術]]></category>

		<category><![CDATA[サーバー]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=826</guid>
		<description><![CDATA[
久しぶりに雨ですが、こんにちは、松本です。
今年度が半分過ぎましたが、Web技術周りはトレンドの入れ替わりが激しいです。
なのですが、メンテナンスを継続している案件もあり、一概に新しいものだけを追い続けるわけにもいかない [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://tenki.jp/forecast/city-63.html" target="_blank">久しぶりに雨ですが</a>、こんにちは、松本です。</p>
<p>今年度が半分過ぎましたが、Web技術周りはトレンドの入れ替わりが激しいです。<br />
なのですが、メンテナンスを継続している案件もあり、一概に新しいものだけを追い続けるわけにもいかない現状でして<br />
古いものと新しいものが混在するのが世のDEVの方々の常だと思います。</p>
<p>新旧混ぜつつ、ここ最近でありんくのWeb技術まわりでトレンドであったり、特に注力していたりする事柄をつらつらと挙げてみます。</p>
<div class="modPuki_contents">
<a id="contents_Object id #2273"></a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_0"> mod_perl</a></li>
<li><a href="#content_Object id #2273_1"> perl</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_2"> perlORマッパー</a></li>
<li><a href="#content_Object id #2273_3"> perlテンプレートエンジン</a></li>
</ul>
</li>
<li><a href="#content_Object id #2273_4"> PHP</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_5"> アクセラレータ</a></li>
<li><a href="#content_Object id #2273_6"> PHPのORマッパー</a></li>
<li><a href="#content_Object id #2273_7"> PHPのテンプレ</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_8"> OS</a></p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_9"> CentOS</a></li>
<li><a href="#content_Object id #2273_10"> FreeBSD</a></li>
<li><a href="#content_Object id #2273_11"> WindowsXP</a></li>
</ul>
</li>
<li><a href="#content_Object id #2273_12"> ミドルウェア</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_13"> MySQL</a></li>
<li><a href="#content_Object id #2273_14"> Memcache</a></li>
<li><a href="#content_Object id #2273_15"> Tokyo Tyrant</a></li>
</ul>
</li>
<li><a href="#content_Object id #2273_16"> フロントエンド</a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2273_17"> CSS</a></li>
<li><a href="#content_Object id #2273_18"> JS</a></li>
</ul>
</li>
</ul>
</div>
<h2 id="content_Object id #2273_0" class="modPuki_head">mod_perl</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://perl.apache.org/" target="_blank">http://perl.apache.org/</a></li>
</ul>
<p>もう何年もお世話になっているモジュールです。適度に枯れていて、バージョンアップの頻度もぼちぼちといったところでいい感じに運用できます。<br />
今まではずっとApache1.3系で利用してきているのですが、いい加減2.0系の方がいいのかな？と思いまして<br />
<a href="/tech/blog/2009/06/21/perl-mod_perl%E3%81%A8%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%B5%E3%82%A4%E3%82%BA/" target="_blank">1.3系と2.0系を比較してみました。</a></p>
<p>自分の比較テストでは1.3系、2.0系ともにほぼ同様の結果がでており、であれば</p>
<pre class="modPuki_pre">使い慣れた1.3系でまだまだ行ってもいいんじゃないかな？</pre>
<p>という感じです。</p>
<p>絶版になってはしまいましたが、Apache拡張ガイド（<a href="http://www.oreilly.co.jp/books/4873110181/" target="_blank">上</a>/<a href="http://www.oreilly.co.jp/books/487311019X/" target="_blank">下</a>）は、mod_perlの日本語で解説された貴重な書籍です。（これも1.3系）</p>
<p>2.0系は<a href="http://books.google.com/books?id=wuCn1ilh7BcC&amp;lpg=PP1&amp;dq=template%20toolkit&amp;as_brr=3&amp;hl=ja&amp;pg=PP1#v=onepage&amp;q=template%20toolkit&amp;f=false" target="_blank">洋書（Practical modp̲erl）</a>ではあるようなのですが、まだ読んでないです。</p>
<h2 id="content_Object id #2273_1" class="modPuki_head">perl</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.perl.com/" target="_blank">http://www.perl.com/</a></li>
</ul>
<p>CentOS5のYUMに依存したUPDATEをするような体制を作っていますので、Perl自体の管理もYUMです。<br />
なので、バージョンは5.8.8で、これを使い続けています。</p>
<p>もう<a href="http://search.cpan.org/~dapm/perl-5.10.1/" target="_blank">perl 5.10.1</a>もリリースされ、5.8.x/5.9.xからの移行も本格化しそうなのですが、<br />
これはOSマター（というかyumに頼って）で行いたいと思っています。</p>
<h3 id="content_Object id #2273_2" class="modPuki_head">perlORマッパー</h3>
<p>メンテナンス対象のシステムでは<a href="http://search.cpan.org/perldoc?Class::DBI" target="_blank">Class::DBI</a>を継続しての利用が多いです。これはもうママにメンテを続けていく方向で。</p>
<p>新規に作る分に関しては<a href="http://search.cpan.org/perldoc?DBIx::MoCo" target="_blank">DBIx::MoCo</a> を使っています。<br />
拙作なのですが<a href="http://search.cpan.org/perldoc?DBIx::MoCo::Pageset" target="_blank">DBIx::MoCo::Pageset</a>でページング処理もらくらくです。</p>
<h3 id="content_Object id #2273_3" class="modPuki_head">perlテンプレートエンジン</h3>
<p>Template-ToolKit（TT）</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://template-toolkit.org/" target="_blank">http://template-toolkit.org/</a></li>
</ul>
<p>6Aがサービスされている、「Vox」もmod_perlで構成されているようなのですが、</p>
<pre class="modPuki_pre">TTの処理が全体の60%になっている</pre>
<p>ということで、TTの重さに愕然とします。</p>
<p>なのですが・・・あまりの便利さ＆融通の利きやすさゆえに、離れる事ができず、ずっとTTを利用する形になっています。</p>
<p>Text::MicroTempolate や Tenjin もちょっと調べつつあるのですが微妙です。<br />
TTより数倍速いのは速いっぽいのですが、mod_perl環境ではコンパイルができるため、TTに比べ、そこまでの速度の差は出ませんでした。</p>
<p>TT便利すぎます。</p>
<h2 id="content_Object id #2273_4" class="modPuki_head">PHP</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://php.net/" target="_blank">http://php.net/</a></li>
</ul>
<p>PHPは、メンテの対象となっているサービスはママそのバージョンを継続なのですが<br />
今後は基本、PHP5.3をベースに考えたいと思っています。</p>
<p>ORM共通の悩みの、リファレンスカウントがそのまま＆メモリリークなどという部分を<br />
<a href="http://jp.php.net/manual/ja/function.gc-collect-cycles.php" target="_blank">gc_collect_cycles</a>でばっさりソリューションしてくれるのかしらという、淡い期待を持っています。</p>
<p>またPHPで特にやっかいなのが、YUMのPHPのバージョンが5.1.6であるという部分で、相当古いです。最低でも5.2系を使いたいところで。</p>
<p>こればっかりは仕方ないので<a href="/tech/blog/2009/10/02/php-centos53-%E3%81%A7-php53%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%EF%BC%88yum%E9%A2%A8%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%EF%BC%89/" target="_blank">YUM風のオプションを持ったPHP5.3をソースコードからインストール</a>しています。</p>
<h3 id="content_Object id #2273_5" class="modPuki_head">アクセラレータ</h3>
<p>PHP5.3に対応したアクセラレータを探して<a href="/tech/blog/2009/08/14/php-php53%E3%81%A7apc313%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/" target="_blank">右往左往</a>していたのですが、一応<a href="http://pecl.php.net/package/APC/" target="_blank">APC</a>に落ち着いています。<br />
<a href="/tech/blog/2009/09/22/php-php530%E3%81%A7%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E5%B0%8E%E5%85%A5/#content_Object%20id%20#57_1" target="_blank">eAccelerator</a>は、後から自分の環境ではいきなりhttpdがCoreDumpしたりしてやや不安定でした。</p>
<h3 id="content_Object id #2273_6" class="modPuki_head">PHPのORマッパー</h3>
<p>自作していますので、そのうちUPします</p>
<h3 id="content_Object id #2273_7" class="modPuki_head">PHPのテンプレ</h3>
<p>Smartyはやめました、もう素のPHP＝テンプレ。</p>
<h1 id="content_Object id #2273_8" class="modPuki_head">OS</h1>
<h2 id="content_Object id #2273_9" class="modPuki_head">CentOS</h2>
<p>弊社ではデフォルトで利用するOSです。<br />
Fedoraはバージョンアップが激しいので何とも。</p>
<p><a href="http://www.jp.redhat.com/rhel/virtualization/" target="_blank">そろそろ5.4が出るのでしょうか</a> 基本ド安定で素晴らしすぎます。<br />
あとはReadTekのNICのドライバをきちんとフォローアップしてくれるととてもうれしい感じで。</p>
<h2 id="content_Object id #2273_10" class="modPuki_head">FreeBSD</h2>
<p>昔はメインで利用していたOSです。</p>
<p>最近はもっぱらCentOSで、FreeBSDで作られたシステムはだんだん少なくなってはいます。</p>
<p>やっぱりJavaが動かないのがなんとも。＜Solrまわりなど。</p>
<h2 id="content_Object id #2273_11" class="modPuki_head">WindowsXP</h2>
<p>別にサーバーで使っているわけではないのですが、クライアントPCはずっとXPです。<br />
普段はFireFox＋Firebugで、IETesterでIEみる感じで。</p>
<p>最近BootCampでWin7を立ち上げられれば移行したいなーという感じです。</p>
<h1 id="content_Object id #2273_12" class="modPuki_head">ミドルウェア</h1>
<h2 id="content_Object id #2273_13" class="modPuki_head">MySQL</h2>
<p>これもCentOSのyumマターで管理しているので 5.0.x系です。<br />
DBIなどのライブラリ周りも一括で管理できる辺りが楽で・・・</p>
<h2 id="content_Object id #2273_14" class="modPuki_head">Memcache</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.danga.com/memcached/" target="_blank">http://www.danga.com/memcached/</a></li>
</ul>
<p>絶対使いましょう。</p>
<p>Memcache使いまくりです、使って損することはまったくありません。</p>
<h2 id="content_Object id #2273_15" class="modPuki_head">Tokyo Tyrant</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://1978th.net/" target="_blank">http://1978th.net/</a></li>
</ul>
<p>1200万件のレコードからLIKE検索で０．ｎ秒という数値がでまして、今今で検証中です。<br />
相当にすごいミドルウェアかと。</p>
<h1 id="content_Object id #2273_16" class="modPuki_head">フロントエンド</h1>
<h2 id="content_Object id #2273_17" class="modPuki_head">CSS</h2>
<p><a href="http://developer.yahoo.com/yui/" target="_blank">YUI</a> のCSSをベースに使っています。<br />
特に<a href="http://developer.yahoo.com/yui/reset/" target="_blank">Recet.css</a>は大変便利です</p>
<p>コーディング時はなるべくCSSスプライトを用いて、Apacheへの負荷を削減しています。</p>
<p>Clearfixは<a href="/tech/blog/2009/04/13/css-clearfix%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fdiv%E3%81%AE%E6%AE%B5%E7%B5%84%E3%81%BF%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF/" target="_blank">こちらのエントリ</a>の通りで、おおよそ同一の書き方が多いです。</p>
<h2 id="content_Object id #2273_18" class="modPuki_head">JS</h2>
<p>おおよそ <a href="http://jquery.com/" target="_blank">jQuery</a> を使っています。<br />
jQueryは全てバージョンアップを行い最新の1.3.2を利用しています。</p>
<p>ドラッグ＆ドロップなどのウィジェット機能もすべて <a href="http://plugins.jquery.com/" target="_blank">jQueryのプラグイン</a> や <a href="http://jqueryui.com/" target="_blank">jQueryUI</a> を利用しています。</p>
<p>JSはheadタグに入れるとオーバーヘッドが大きすぎるので、すべてHTMLの終了部分に近い場所に配置します。<br />
＝HTMLとCSSのレンダリングが終了してからJSを実行させるためです。</p>
<hr class="modPuki_full_hr" />
<p>つらつらと書きすぎですが、現状の流行はこのような感じです。</p>
<p><a href="http://d.hatena.ne.jp/tasukuchan/20090417/nicopedia_hardware" target="_blank">ネットブックでのPCルーター作成</a> や LVS をネットブックで運用なども非常に突っ込んでみたい所存であります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/10/02/%e9%9b%91%e6%84%9f-%e6%9c%80%e8%bf%91%e3%81%aeweb%e6%8a%80%e8%a1%93%e5%91%a8%e3%82%8a%e3%81%ae%e6%89%80%e6%84%9f%ef%bc%88%e3%81%aa%e3%82%93%e3%81%a7%e3%82%82%ef%bc%89/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[PHP] CentOS5.3 で PHP5.3をインストール（YUM風オプションで）</title>
		<link>http://www.alink.co.jp/tech/blog/2009/10/02/php-centos53-%e3%81%a7-php53%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%ef%bc%88yum%e9%a2%a8%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%ef%bc%89/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/10/02/php-centos53-%e3%81%a7-php53%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%ef%bc%88yum%e9%a2%a8%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%ef%bc%89/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 16:15:39 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=811</guid>
		<description><![CDATA[
こんばんは松本です。
PHP5.3.0がリリースされてから3ヶ月経ちましたが、だいぶ使い勝手にも慣れて来ました。
PHP5.3.1でのBugFixの数もすごいですが、ガベージコレクトやstatic属性など、便利機能が多い [...]]]></description>
			<content:encoded><![CDATA[
<p>こんばんは松本です。</p>
<p>PHP5.3.0がリリースされてから3ヶ月経ちましたが、だいぶ使い勝手にも慣れて来ました。<br />
<a href="http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/NEWS?r1=283022&amp;r2=289052&amp;view=patch" target="_blank">PHP5.3.1でのBugFixの数もすごいですが</a>、ガベージコレクトやstatic属性など、便利機能が多いですので是非。</p>
<p>自分は CentOS5 x86_64 で利用しているのですが、PHP5.3を導入するにあたり、ソースコードからインストールしています。<br />
できるだけ、標準のPHP（5.1.6）のオプションを踏襲した形でPHP5.3をインストールしました。</p>
<div class="modPuki_contents">
<a id="contents_Object id #2709"></a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2709_0"> 既存のPHP（5.1.6）をアンインストール</a></p>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2709_1"> アンインストールされたYUMライブラリ</a></li>
</ul>
</li>
<li><a href="#content_Object id #2709_2"> 必要なライブラリのインストール</a></li>
<li><a href="#content_Object id #2709_3"> PHPのソースコードをダウンロード</a>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #2709_4"> configure</a></li>
</ul>
</li>
<li><a href="#content_Object id #2709_5"> make ～ インストール</a></li>
<li><a href="#content_Object id #2709_6"> PECLをインストール</a></li>
</ul>
</div>
<h2 id="content_Object id #2709_0" class="modPuki_head">既存のPHP（5.1.6）をアンインストール</h2>
<pre class="modPuki_pre">yum remove php*</pre>
<p>付随する php-common などのライブラリも全てアンインストールします。<br />
自分の環境ではYUM経由のPHP関係のライブラリをフルフルに入れていましたので、以下がアンインストールされました。</p>
<h3 id="content_Object id #2709_1" class="modPuki_head">アンインストールされたYUMライブラリ</h3>
<pre style="height:24.6em;" class="modPuki_pre">php
php-bcmath
php-cli
php-common
php-dba
php-devel
php-eaccelerator
php-gd
php-imap
php-jpgraph-docs
php-ldap
php-mbstring
php-mysql
php-ncurses
php-odbc
php-pdo
php-pear
php-pear-Date
php-pear-File
php-pear-HTTP-Request
php-pear-MDB2
php-pear-MDB2-Driver-mysql
php-pear-Mail-Mime
php-pear-Net-Sieve
php-pear-Net-Socket
php-pear-Net-URL
php-pear-date
php-pear-db
php-pear-file
php-pecl-Fileinfo
php-pecl-memcache
php-pecl-session_mysql
php-pgsql
php-snmp
php-soap
php-xml
php-xmlrpc</pre>
<h2 id="content_Object id #2709_2" class="modPuki_head">必要なライブラリのインストール</h2>
<p>phpをソースコードからインストールするための必要となるライブラリをyumでインストールします。<br />
※レポジトリにはrpmforgeも入れています。<br />
後からpeclのmemcacheも利用しますので、memcached自体もインストールしています。</p>
<pre style="height:24.6em;" class="modPuki_pre">yum -y install ncurses*
yum -y install gcc-c++
yum -y install flex
yum -y install libxml*
yum -y install gdbm-devel
yum -y install gd gd-devel freetype freetype libpng libmng* libtiff* libjpeg* libc-client* giflib*
yum -y install httpd httpd-devel
yum -y install pcre-devel
yum -y install unixODBC-devel
yum -y install net-snmp-devel
yum -y install openssl*
yum -y install bzip2*
yum -y install curl*
yum -y install gdbm*
yum -y install db4*
yum -y install gmp*
yum -y install libc-client*
yum -y install openldap*
yum -y install libmcrypt*
yum -y install mhash*
yum -y install mysql*
yum -y install freetds*
yum -y install aspell*
yum -y install readline*
yum -y install libtidy*
yum -y install libxslt*
yum -y install libtool*
yum -y install curl*
yum -y install memcache*</pre>
<h2 id="content_Object id #2709_3" class="modPuki_head">PHPのソースコードをダウンロード</h2>
<p><a href="http://php.net" target="_blank">php.net</a>　からPHPのソースコードをダウンロードします。ダウンロードは　<a href="http://www.php.net/downloads.php" target="_blank">こちら</a>　から。</p>
<pre class="modPuki_pre">wget http://jp2.php.net/get/php-5.3.0.tar.gz/from/this/mirror
tar xvzf php-5.3.0.tar.gz</pre>
<h3 id="content_Object id #2709_4" class="modPuki_head">configure</h3>
<p>一番面倒なconfigureですが、自分の環境では以下を通しました。<br />
x86_64（64bit環境）の指定と yumでインストールしたapxsのパスあたりがキモです。</p>
<pre style="height:24.6em;" class="modPuki_pre">./configure \
--with-apxs2=/usr/sbin/apxs \
--build=x86_64-redhat-linux-gnu \
--host=x86_64-redhat-linux-gnu \
--target=x86_64-redhat-linux-gnu \
--program-prefix= \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib64 \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--cache-file=../config.cache \
--with-libdir=lib64 \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-pic \
--with-bz2 \
--with-curl \
--with-exec-dir=/usr/bin \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-gettext \
--with-gmp \
--with-iconv \
--with-jpeg-dir=/usr \
--with-openssl \
--with-pcre-regex=/usr/local \
--with-zlib \
--with-layout=GNU \
--enable-exif \
--enable-ftp \
--enable-magic-quotes \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-wddx \
--enable-ucd-snmp-hack \
--enable-shmop \
--enable-calendar \
--with-libxml-dir=/usr \
--enable-pcntl \
--enable-mbstring \
--enable-mbregex \
--with-gd=shared \
--enable-bcmath=shared \
--enable-dba=shared \
--with-db4=/usr \
--with-xmlrpc=shared \
--with-mysql=/var/lib/mysql \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mysqli=shared,/usr/bin/mysql_config \
--enable-dom=shared \
--enable-soap=shared \
--with-xsl=shared,/usr \
--enable-xmlreader=shared \
--enable-xmlwriter=shared \
--with-pdo-mysql=shared,/usr \
--enable-zip \
--enable-zend-multibyte \
--with-mcrypt</pre>
<h2 id="content_Object id #2709_5" class="modPuki_head">make ～ インストール</h2>
<p>configureが通ったらmakeします。</p>
<pre class="modPuki_pre">sudo make install</pre>
<p>php -v で以下のように正常にでればとりあえずOKです。</p>
<pre class="modPuki_pre">$ php -v
 PHP 5.3.0 (cli) (built: Jul 20 2009 20:59:23)
 Copyright (c) 1997-2009 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies</pre>
<p>あとはphpinfoで詳細を確認します。</p>
<h2 id="content_Object id #2709_6" class="modPuki_head">PECLをインストール</h2>
<p>peclはコマンドからインストールします。<br />
自分は以下のPECLを利用しています。</p>
<pre class="modPuki_pre">pecl install memcache
pecl install APC-3.1.3p1
pecl install imagick
pecl install tokyo_tyrant-beta
pecl install hidef-0.1.2
pecl install xdebug-2.1.0beta1</pre>
<p>それぞれのPECLの設定方法については、また後述していきたいと思います。</p>
<p>いかがでしょうか。さらっとした覚え書きではありますが、お役に立てますと幸いです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/10/02/php-centos53-%e3%81%a7-php53%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%ef%bc%88yum%e9%a2%a8%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%a7%ef%bc%89/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[perl] Sledgeドキュメントまとめ</title>
		<link>http://www.alink.co.jp/tech/blog/2009/10/01/perl-sledge%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%81%be%e3%81%a8%e3%82%81/</link>
		<comments>http://www.alink.co.jp/tech/blog/2009/10/01/perl-sledge%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%81%be%e3%81%a8%e3%82%81/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 05:47:13 +0000</pubDate>
		<dc:creator>matsumoto</dc:creator>
		
		<category><![CDATA[Perl]]></category>

		<category><![CDATA[web技術]]></category>

		<guid isPermaLink="false">http://www.alink.co.jp/tech/blog/?p=800</guid>
		<description><![CDATA[
弊社では、Webアプリケーションの開発をperl/PHPで行っています。
特にperlでの開発の場合、ほとんどがmod_perlを使っています。
mod_perl上で動くフレームワークは Catalyst などが有名どこ [...]]]></description>
			<content:encoded><![CDATA[
<p>弊社では、Webアプリケーションの開発をperl/PHPで行っています。<br />
特にperlでの開発の場合、ほとんどがmod_perlを使っています。</p>
<p>mod_perl上で動くフレームワークは <a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20080513/301453/" target="_blank">Catalyst</a> などが有名どころではありますが、使い慣れている点もあり長らく <a href="http://sl.edge.jp/" target="_blank">Sledge</a>を利用しています。</p>
<p>以下、Sledgeについての自分がよく見るサイトのまとめです。</p>
<div class="modPuki_contents">
<a id="contents_Object id #3065"></a>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #3065_0"> Sledgeについて</a></p>
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="#content_Object id #3065_1"> mod_perl</a></li>
<li><a href="#content_Object id #3065_2"> Sledge関連の書籍</a></li>
</ul>
</li>
<li><a href="#content_Object id #3065_3"> TemplateToolkit</a></li>
<li><a href="#content_Object id #3065_4"> Class::DBI</a></li>
</ul>
</div>
<h2 id="content_Object id #3065_0" class="modPuki_head">Sledgeについて</h2>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Sledgeについて 概要など<br />
フレームワーク、MVCについて詳しく書かれています</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://itpro.nikkeibp.co.jp/members/LIN/oss/20030919/1/" target="_blank">http://itpro.nikkeibp.co.jp/members/LIN/oss/20030919/1/</a></li>
</ul>
</li>
<li>Sledge内部のセッション管理やテンプレートシステムについてなど
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.thinkit.co.jp/cert/tech/9/1/1.htm" target="_blank">http://www.thinkit.co.jp/cert/tech/9/1/1.htm</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Sledge内部APIのドキュメント</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://blog.livedoor.jp/nipotan/archives/50293736.html" target="_blank">http://blog.livedoor.jp/nipotan/archives/50293736.html</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>SledgeをUTF8で動かす</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://hori-uchi.com/archives/000419.html" target="_blank">http://hori-uchi.com/archives/000419.html</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>SledgeをUTF8で動かす＋Apache2</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="/tech/blog/2009/06/19/sledge%E3%81%AEapache2%EF%BC%88mod_perl2%EF%BC%89%E5%AF%BE%E5%BF%9C%EF%BC%8Butf8/" target="_blank">http://www.alink.co.jp/tech/blog/2009/06/19/sledge%E3%81%AEapache2%EF%BC%88mod_perl2%EF%BC%89%E5%AF%BE%E5%BF%9C%EF%BC%8Butf8/</a><br />
※Dispatcherなどの使い方も含む</li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Sledge-Session-Memcached</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://sourceforge.jp/projects/sledge/releases/15552" target="_blank">http://sourceforge.jp/projects/sledge/releases/15552</a></li>
</ul>
</li>
</ul>
<p>SledgeのSessionストレージをMemcachedに持たせるモジュールです。必須。<br />
永続化をするならTokyoTyrantでも使えると思う。</p>
<h3 id="content_Object id #3065_1" class="modPuki_head">mod_perl</h3>
<p>mod_perlリファレンス（mod_perl クイック・リファレンス (1)）</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://multix.jp/html/memo/030526.html" target="_blank">http://multix.jp/html/memo/030526.html</a></li>
</ul>
<p>mod_perl1 Apache1.3系のmod_perlのリファレンスです。<br />
mod_perlベースでのWebアプリケーション開発時には必ず見ています。（というかAPIを覚えられないんですよね・・・）</p>
<h3 id="content_Object id #3065_2" class="modPuki_head">Sledge関連の書籍</h3>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>まるごとPerl! Vol.1<br />
Sledgeの使い方が一通り掲載されています。Sledge以外の部分も役に立つ知識が多いです。</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.amazon.co.jp/dp/4844322893" target="_blank">http://www.amazon.co.jp/dp/4844322893</a></li>
</ul>
</li>
</ul>
<p>※以下はSledgeは載っていませんが、Sledgeを使うために必須となる部分が載っています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>続・初めてのPerl 改訂版<br />
リファレンス、パッケージなどが分かりやすく解説されています</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.amazon.co.jp/dp/4873113059/" target="_blank">http://www.amazon.co.jp/dp/4873113059/</a></li>
</ul>
</li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>図解・標準 最新Perl/CGIハンドブック<br />
相当わかりやすいですこれ。＜絶版なんですね・・・</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.amazon.co.jp/dp/4798002070/" target="_blank">http://www.amazon.co.jp/dp/4798002070/</a></li>
</ul>
</li>
</ul>
<h2 id="content_Object id #3065_3" class="modPuki_head">TemplateToolkit</h2>
<ul class="modPuki_list2" style="padding-left:32px;margin-left:32px">
<li><a href="http://www.hakoniwa.net/tt/" target="_blank">http://www.hakoniwa.net/tt/</a></li>
</ul>
<p>TTは Sledgeから扱う Templateモジュール自体の使い方と、Templateシステム内のシンタックス（表記法）の2つが混在しています。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li>Templateモジュール自体の使い方</p>
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://e8y.net/mag/008-template/" target="_blank">use Template;（今日のCPANモジュール）</a></li>
</ul>
</li>
<li>シンタックス（表記法）のドキュメント
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://www.hakoniwa.net/tt/" target="_blank">http://www.hakoniwa.net/tt/</a></li>
<li>CPANでの最新版（英語）
<ul class="modPuki_list3" style="padding-left:16px;margin-left:16px">
<li><a href="http://search.cpan.org/perldoc?Template::Manual::Directives" target="_blank">http://search.cpan.org/perldoc?Template::Manual::Directives</a></li>
</ul>
</li>
</ul>
</li>
<li>またperl固有なのですが、utf8フラグの有り無し判別が中々大変でこれを解決するために、Template側でラッパする方法も公開されています。
<ul class="modPuki_list2" style="padding-left:16px;margin-left:16px">
<li><a href="http://blog.livedoor.jp/xaicron/archives/50762580.html" target="_blank">いまさらTTをutf8環境下で何も考えずに扱えるモジュールを書いた</a></li>
</ul>
</li>
</ul>
<h2 id="content_Object id #3065_4" class="modPuki_head">Class::DBI</h2>
<p>参考までにORマッパーのリンクも。<br />
未だにCDBI？という感じではありますが、メンテナンスを続けているサイトもあります関係でこのような感じに。</p>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://perldoc.jp/docs/modules/Class-DBI-0.96/lib/Class/DBI.pod" target="_blank">http://perldoc.jp/docs/modules/Class-DBI-0.96/lib/Class/DBI.pod</a></li>
</ul>
<ul class="modPuki_list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://retailcomm.jugem.jp/?eid=34" target="_blank">http://retailcomm.jugem.jp/?eid=34</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.alink.co.jp/tech/blog/2009/10/01/perl-sledge%e3%83%89%e3%82%ad%e3%83%a5%e3%83%a1%e3%83%b3%e3%83%88%e3%81%be%e3%81%a8%e3%82%81/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
