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

<channel>
	<title>適当な日々</title>
	<atom:link href="http://www.sj6.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sj6.org</link>
	<description>webの仕事をしながら家でもwebサービスとかを作ったり作らなかったり、成長と挫折の記録・・・かもしれない</description>
	<pubDate>Fri, 19 Dec 2008 14:08:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>ja</language>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/feed/" />
		<item>
		<title>twitter用のiphone風ブログパーツ作った</title>
		<link>http://www.sj6.org/blogparts_twitter_iphone/</link>
		<comments>http://www.sj6.org/blogparts_twitter_iphone/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 10:18:42 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

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

		<category><![CDATA[ブログパーツ]]></category>

		<guid isPermaLink="false">http://www.sj6.org/?p=294</guid>
		<description><![CDATA[				Ｆｌａｓｈの練習用にブログパーツを作った。
				twiPhoneと名付けた。
				Flash楽しいかもしれない。
				
				あなたのtwitterID：
				
				
				    $("#twiphoneid").keyup(function(){
				    $("#twiphoneidname").attr({ 
				      src: "http://script.sj6.org/twiphone/twiphone.swf?"+$("#twiphoneid").val()
				    });
				    $("#twiphonecode").text('');
				    });
				
				テキストエリアに自分のtwitterIDを入れてから下のソースをコピペすれば使えると思いますのでよかったらどうぞ。
				
&#60;embed height="303" align="middle" width="160" type="application/x-shockwave-flash" salign="" allowfullscreen="false" menu="true" name="twiphone" bgcolor="#ffffff" devicefont="false" mode="window" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://script.sj6.org/twiphone/twiphone.swf?sayjiro"/&#62;

]]></description>
			<content:encoded><![CDATA[				<p>Ｆｌａｓｈの練習用にブログパーツを作った。<br />
				twiPhoneと名付けた。<br />
				Flash楽しいかもしれない。</p>
				<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="160" height="303" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="twiphone" /><param name="bgcolor" value="#ffffff" /><param name="align" value="middle" /><param name="src" value="http://script.sj6.org/twiphone/twiphone.swf?sayjiro"/><param name="wmode" value="window" /><embed type="application/x-shockwave-flash" width="160" height="303" src="http://script.sj6.org/twiphone/twiphone.swf?sayjiro" wmode="window" align="middle" bgcolor="#ffffff" name="twiphone"  id="twiphoneidname" ></embed></object></p>
				<p>あなたのtwitterID：<br />
				<input type="text" id="twiphoneid" value=""/>
				<script type="text/javascript">
				    $("#twiphoneid").keyup(function(){
				    $("#twiphoneidname").attr({ 
				      src: "http://script.sj6.org/twiphone/twiphone.swf?"+$("#twiphoneid").val()
				    });
				    $("#twiphonecode").text('<embed height="303" align="middle" width="160" type="application/x-shockwave-flash" salign="" allowfullscreen="false" menu="true" name="twiphone" bgcolor="#ffffff" devicefont="false" mode="window" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://script.sj6.org/twiphone/twiphone.swf?'+$("#twiphoneid").val()+'" />');
				    });
				</script></p>
				<p>テキストエリアに自分のtwitterIDを入れてから下のソースをコピペすれば使えると思いますのでよかったらどうぞ。</p>
				<pre id="twiphonecode" onfocus="this.select();">
&lt;embed height="303" align="middle" width="160" type="application/x-shockwave-flash" salign="" allowfullscreen="false" menu="true" name="twiphone" bgcolor="#ffffff" devicefont="false" mode="window" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://script.sj6.org/twiphone/twiphone.swf?sayjiro"/&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/blogparts_twitter_iphone/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/blogparts_twitter_iphone/" />
	</item>
		<item>
		<title>ActionScript3.0でXMLというかRSSをパースする</title>
		<link>http://www.sj6.org/actionscript3_parse_xml_rss/</link>
		<comments>http://www.sj6.org/actionscript3_parse_xml_rss/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 10:41:29 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[Flash]]></category>

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

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

		<category><![CDATA[ブックスタンド]]></category>

		<category><![CDATA[読書]]></category>

		<guid isPermaLink="false">http://www.sj6.org/?p=289</guid>
		<description><![CDATA[				すごくはまった。
				けれどここを見て解決。
				AS3でNameSpace XMLをパース
				まだAS3というかFlash自体色々勉強中の身です。
				リファレンス以外にもしっかりとした本を買 [...]]]></description>
			<content:encoded><![CDATA[				<p>すごくはまった。<br />
				けれどここを見て解決。</p>
				<p><a href="http://www.shin-go.net/motionlab/?p=84" target="_blank">AS3でNameSpace XMLをパース</a></p>
				<p>まだAS3というかFlash自体色々勉強中の身です。<br />
				リファレンス以外にもしっかりとした本を買っておこうと思い、amazonで購入。<br />
				<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sayjiro-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4861005515&#038;md=1X69VDGQCMF7Z30FM082&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
				あとこれも便利そうなので購入。<br />
				<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sayjiro-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=B0001CQAAQ&#038;md=1X69VDGQCMF7Z30FM082&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
				新しいことを勉強するのは楽しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/actionscript3_parse_xml_rss/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/actionscript3_parse_xml_rss/" />
	</item>
		<item>
		<title>フリーランスになりました</title>
		<link>http://www.sj6.org/start_freelance/</link>
		<comments>http://www.sj6.org/start_freelance/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 01:35:32 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[出来事]]></category>

		<category><![CDATA[仕事]]></category>

		<category><![CDATA[独立]]></category>

		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://www.sj6.org/?p=281</guid>
		<description><![CDATA[				今日からフリーランスになりました。
				まだ色々と手探りだったりしますが、半年、1年経って「フリーになってよかった」といえるように精一杯やろうと思います。
				よろしくお願いします！
]]></description>
			<content:encoded><![CDATA[				<p>今日からフリーランスになりました。<br />
				まだ色々と手探りだったりしますが、半年、1年経って「フリーになってよかった」といえるように精一杯やろうと思います。<br />
				よろしくお願いします！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/start_freelance/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/start_freelance/" />
	</item>
		<item>
		<title>こっそり公開</title>
		<link>http://www.sj6.org/preopen_sj6jp/</link>
		<comments>http://www.sj6.org/preopen_sj6jp/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 13:57:15 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[出来事]]></category>

		<category><![CDATA[仕事]]></category>

		<category><![CDATA[独立]]></category>

		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://www.sj6.org/?p=257</guid>
		<description><![CDATA[				どうも。こんばんは。
				いつも技術メモばかり書いていますが、ちょっと自分のことを・・・。
				実は今いる会社今月一杯で辞めて、来月からフリーランスとしてやっていくことになりました。
				目的は色々と [...]]]></description>
			<content:encoded><![CDATA[				<p>どうも。こんばんは。<br />
				いつも技術メモばかり書いていますが、ちょっと自分のことを・・・。</p>
				<p>実は今いる会社今月一杯で辞めて、来月からフリーランスとしてやっていくことになりました。<br />
				目的は色々と挑戦したいことがあるので。<br />
				きっかけは色々な人との出会いかなー。<br />
				とりあえず１人でがんばっていきますが、フリーで働く中で沢山の人と出会い、様々な経験を積んで、将来的には信頼できる仲間と一緒に仕事をしたいと思っています。</p>
				<p>とまぁそれはさておき、このブログとは別にフリーランス用のサイトを作りました。<br />
				<a href="http://sj6.jp" target="_blank">http://sj6.jp</a><br />
				こちらのブログとは違って日々の出来事や今日のニュースとかを書いていくつもりです。<br />
				よかったら見に行ってみてください。</p>
				<p>それでは、これからもよろしくお願いします！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/preopen_sj6jp/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/preopen_sj6jp/" />
	</item>
		<item>
		<title>CentOSにntpサーバで時刻同期設定</title>
		<link>http://www.sj6.org/ntp_install_for_centos/</link>
		<comments>http://www.sj6.org/ntp_install_for_centos/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 10:40:42 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[サーバ]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.sj6.org/?p=253</guid>
		<description><![CDATA[				ntpで時刻設定することがあったので、メモ。
				ntpとは、Network Time Protocolの略で時刻を問い合わせることを目的として開発されたプロトコル。
				ntpサーバとしてできることは大 [...]]]></description>
			<content:encoded><![CDATA[				<p>ntpで時刻設定することがあったので、メモ。<br />
				ntpとは、Network Time Protocolの略で時刻を問い合わせることを目的として開発されたプロトコル。<br />
				ntpサーバとしてできることは大きく２つあります。</p>
				<ol>
				<li>サーバの時刻を問い合わせ、同期させる</li>
				<li>他のサーバに時刻を送信する</li>
				</ol>
				<p>とりあえず、サーバの時刻を合わせてみましょう。<br />
				<span id="more-253"></span><br />
				まずは、ntpをインストール</p>
				<pre>yum install -y ntp</pre>
<p>次に時刻を他サーバに問い合わせて同期させてみましょう。</p>
<pre>ntpdate ntp.nict.jp</pre>
				<p>このntp.nict.jpは<a href="http://www2.nict.go.jp/w/w114/tsp/PubNtp/index.html " target="_blank">日本標準時プロジェクト</a>のntpサーバです。<br />
				これで、とりあえず時刻が合いました。<br />
				ただ、放っておくと少しずつずれてしますので、これをrootのcronに入れたりして合わせます。</p>
				<p>もう１つ方法があります。<br />
				それは、ntpdをデーモンとしてを起動しておいて時刻を同期させる方法です。<br />
				また、この方法だと、他サーバに時刻を供給することができます。</p>
				<pre>vim /etc/ntp.conf</pre>
<p>設定ファイルを変更します。</p>
<pre>server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org</pre>
				<p>こうなっている部分を以下のように変更します。<br />
				↓</p>
				<pre>server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp</pre>
				<p>これは問い合わせ先のntpサーバの指定ですね。<br />
				そして、ntpdを起動します。</p>
				<pre>/etc/init.d/ntpd start</pre>
<p>ついでに自動起動の設定もしておきましょう。</p>
<pre>chkconfig ntpd on</pre>
				<p>以下のコマンドでntpdのステータスが確認できます。</p>
				<pre>ntpq -p</pre>
<p>以下のように*印がついていたら同期ができています。<br />
（起動してから同期までに10分ぐらいかかります。）</p>
<pre>     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-a3.nict.go. .NICT.           1 u   53   64  377    2.855    6.163  32.652
+ntp1.jst.mfeed. 210.173.160.86   2 u   57   64  377    1.393   -6.844  26.912
+ntp2.jst.mfeed. 210.173.176.251  2 u   53   64  377    1.333  -73.250  71.385
 LOCAL(0)        .LOCL.          10 l   52   64  377    0.000    0.000   0.001</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/ntp_install_for_centos/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/ntp_install_for_centos/" />
	</item>
		<item>
		<title>memcachedをインストールしphpから使用する</title>
		<link>http://www.sj6.org/memcached_install_with_php/</link>
		<comments>http://www.sj6.org/memcached_install_with_php/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 10:30:39 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[php]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.sj6.org/?p=244</guid>
		<description><![CDATA[				サーバーにmemcachedを入れてphpから使用することがあったので、今更だけど、インストールメモ。
				memcachedとは何かというと、独立したサーバプログラムで、メモリ上にデータを保持することができ [...]]]></description>
			<content:encoded><![CDATA[				<p>サーバーにmemcachedを入れてphpから使用することがあったので、今更だけど、インストールメモ。</p>
				<p>memcachedとは何かというと、独立したサーバプログラムで、メモリ上にデータを保持することができます。</p>
				<p>メモリ空間を使用するので、とにかくデータの呼び出しがDBと比較して格段に早いです。</p>
				<p>ここでは、デーモンとして常駐するmemcachedとphpから操作する為のインターフェースMemcacheモジュールをインストールします。<br />
				<span id="more-244"></span><br />
				まずは、memcachedをインストール</p>
				<pre>
wget http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz
tar zxvf memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure
</pre>
				<p>libeventが無いと怒られるので、yumで入れる</p>
				<pre>
yum install -y libevent-devel.i386
</pre>
				<p>再コンパイル</p>
				<pre>
./configure
make
make install
</pre>
				<p>んーあっさり完了。</p>
				<pre>
memcached -d -m 64 -p 11211
</pre>
				<p>これで立ち上げます。<br />
				psコマンドなどで動いているかを確認しましょう。<br />
				オプションの意味はこんな感じです。<br />
				-d :        　　デーモンモード<br />
				-m 64 :        64MBのメモリをストレージとして使用する<br />
				-p 11211 :    11211番ポートで待ち受ける<br />
				ローカル環境からのアクセスのみ許可する場合はこう。</p>
				<pre>
memcached -d -m 64 -p 11211 -l 127.0.0.1
</pre>
				<p>そういえばrootだと起動できないです。<br />
				rootの場合は"-u nobody"のようにユーザー名を付けてください。</p>
				<p>/etc/init.dにスクリプトを書く場合はこんな感じ</p>
				<pre>
#! /bin/sh
#
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
if [ ${NETWORKING} = "no" ]
then
exit 0
fi
# See how we were called.
case "$1" in
start)
echo -n "Starting memcached services: "
daemon /usr/local/bin/memcached -m 64 -p 11211 -d -u nobody
echo
touch /var/lock/subsys/memcached
;;
stop)
echo -n "Stopping memcached services: "
killproc /usr/local/bin/memcached
echo
rm -f /var/lock/subsys/memcached
;;
status)
status /usr/local/bin/memcached
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: memcached {start|stop|status|restart}"
exit 1
esac
exit 0
</pre>
				<p>あとは自動起動の設定っと。</p>
				<pre>
ln -s /etc/rc.d/init.d/memcached /etc/rc.d/rc2.d/S99memcached
ln -s /etc/rc.d/init.d/memcached /etc/rc.d/rc3.d/S99memcached
ln -s /etc/rc.d/init.d/memcached /etc/rc.d/rc5.d/S99memcached
</pre>
				<p>うん。思ったより簡単でした。</p>
				<p>次にphpから使う場合は・・・</p>
				<pre>
sudo pecl install memcache
</pre>
				<p>を実行すると最後に</p>
				<pre>
You should add "extension=memcache.so" to php.ini
</pre>
				<p>みたいなのが表示されます。<br />
				なのでphp.iniに</p>
				<pre>
extension=memcache.so
</pre>
				<p>を追加すればOK。<br />
				（extensionフォルダの中を見て、ちゃんとmemcache.soがある場所を指定してください。）<br />
				これで、phpからmemcacheが使えるようになりました。<br />
				細かい使用法はこのあたりでどうぞ。<br />
				<a href="http://jp2.php.net/manual/ja/book.memcache.php" target="_blank">http://jp2.php.net/manual/ja/book.memcache.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/memcached_install_with_php/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/memcached_install_with_php/" />
	</item>
		<item>
		<title>必見！携帯サイトをお手軽にiPhoneやスマートフォンに対応させる方法</title>
		<link>http://www.sj6.org/cope_to_easy_with_iphone_and_smartphone_by_css/</link>
		<comments>http://www.sj6.org/cope_to_easy_with_iphone_and_smartphone_by_css/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 10:54:41 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[モバイル]]></category>

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

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

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

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

		<category><![CDATA[smart phone]]></category>

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

		<guid isPermaLink="false">http://www.sj6.org/?p=225</guid>
		<description><![CDATA[				iPhoneの登場でスマートフォンで閲覧しやすいサイトの需要が高まってきたようです。
				でもわざわざiPhoneやスマートフォン向けにサイトを作るのは大変・・・。
				そんな方に、今までに制作したモバイ [...]]]></description>
			<content:encoded><![CDATA[				<p>iPhoneの登場でスマートフォンで閲覧しやすいサイトの需要が高まってきたようです。<br />
				でもわざわざiPhoneやスマートフォン向けにサイトを作るのは大変・・・。<br />
				そんな方に、今までに制作したモバイルサイトをスマートフォン対応させる方法があります。<br />
				しかも5分でお手軽にできます！<br />
				htmlとCSSで解決する方法なのですが、実はこの方法を使うだけで開発もしやすくなる優れものです。</p>
				<p>論より証拠ということで、まずはこちらをご覧ください。<br />
				（PCからでもオッケーです。htmlは<a href="/how_to_create_mobile_site_by_xhtml/">こちら</a>の記事で作成したものを使ってます。）<br />
				まず、こちらが普通に作成したモバイルサイト→<a href="http://script.sj6.org/smart/before.html" target="_blank">before</a><br />
				そしてこれがその方法を使ったもの→<a href="http://script.sj6.org/smart/after.html" target="_blank">after</a></p>
				<p><span id="more-225"></span></p>
				<p>やっていることは閲覧しているブラウザに応じて、3つのスタイルシートを読み込ませていることと、<br />
				iPhone用のmeta要素viewportを指定しているということ。</p>
				<p>具体的には以下のような感じです。</p>
				<h3>１．viewportの指定</h3>
				<p>htmlソース</p>
				<pre class="html" name="code">&lt;meta name="viewport" content="width=320;initial-scale=1.0;maximum-scale=1.0;user-scalable=0;" /&gt;</pre>
<p>&lt;head&gt;内に書きます。見えている画面の横幅を320とするという意味ですね。<br />
その他は、このあたりが参考になるかと。<br />
<a href="http://d.hatena.ne.jp/zebevogue/20070820/1187604126" target="_blank">http://d.hatena.ne.jp/zebevogue/20070820/1187604126</a></p>
<h3>２．CSSの出し分け</h3>
<p>htmlソース</p>
<pre class="html" name="code">&lt;link media="only screen and (max-device-width:480px)" href="css/smart.css" type="text/css" rel="stylesheet" /&gt;
&lt;link media="screen and (min-device-width:481px)" href="css/pc.css" type="text/css" rel="stylesheet" /&gt;
&lt;!--[if lt IE 7]&gt;
&lt;link rel="stylesheet" type="text/css" href="css/ie.css" /&gt;
&lt;![endif]--&gt;</pre>
				<p>これも&lt;head&gt;内に書きます。「media="only screen and～」というのはあまり見かけないかもしれませんが、<br />
				上は横幅が480px以下ならsmart.cssを参照しなさい。<br />
				下は横幅が481px以上ならpc.cssを参照しなさい。という意味。<br />
				そしてIEにはこのタグが効かないのでIE用のスタイルシートをあてています。<br />
				あともう1つ、全体を囲むdivタグにid="ie"を指定してあげてください。</p>
				<pre class="html" name="code">&lt;body&gt;
&lt;div id="ie"&gt;
&lt;!--ここにコンテンツのソース--&gt;
&lt;/div&gt;
&lt;/body&gt;</pre>
				<p>てなぐあいの作業で完了です。<br />
				ちなみに三種類のCSSですが、記事の下に貼っておくので使ってください。<br />
				適当にカスタマイズしてもらってもいいと思います。</p>
				<p>お手軽ですが、キレイに見えるようになるので是非試してみてください。<br />
				開発するときも携帯に近い横幅で固定できるので非常にやりやすいですよ！</p>
				<p><strong>smart.css</strong></p>
				<pre class="css" name="code">a {text-decoration:none;}
body,div,span,font,input {
font-size:20px;
}
div {display:block;}
dl {margin:0;}
dd {margin:0 0 0 20px;}
form {margin:0;}
input[type=text] {width:180px;}
#pad {padding:5px 0px;}</pre>
				<p><strong>pc.css</strong></p>
				<pre class="css" name="code">a {text-decoration:none;}
body {width:230px;}
div {display:block;}
dl {margin:0;}
dd {margin:0 0 0 18px;}
form {margin:0;}
input[type=text] {width:140px;}
div,input {font-size:small;}
#pad {padding:2px 0px;}</pre>
				<p><strong>ie.css</strong></p>
				<pre class="css" name="code">a {text-decoration:none;}
body {width:230px;}
div {display:block;}
dl {margin:0;}
dd {margin:0 0 0 18px;}
form {margin:0;}
input[type=text] {width:140px;}
div,input {font-size:small;}
#pad {padding:2px 0px;}
#ie {width:230px;}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/cope_to_easy_with_iphone_and_smartphone_by_css/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/cope_to_easy_with_iphone_and_smartphone_by_css/" />
	</item>
		<item>
		<title>qmailをCentOSにインストールしてphpから使えるようにする</title>
		<link>http://www.sj6.org/qmail_install_to_centos_and_be_useful_php/</link>
		<comments>http://www.sj6.org/qmail_install_to_centos_and_be_useful_php/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 14:52:52 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.sj6.org/?p=214</guid>
		<description><![CDATA[				今時sendmailなんて使えないのでqmailに挑戦します。
				qmailは安全で、信頼できて、高性能で、 簡潔な メイル配送エージェント(MTA) です。（公式より）
				参考にしたのはこのあたりのサイトです。
				http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html
				CentOS5.2を使いました。
				以下、使えるようになるまでの細かい説明を省いた作業履歴。
				
				cd /usr/local/src/
wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
wget http://cyberam.dip.jp/linux_server/mail/qmail-date-localtime.patch
tar zxvf qmail-1.03.tar.gz
cd qmail-1.03/
				ダウンロード＆解凍。
				そしてパッチを当てます。
				patch -p1 &#60; ../qmail-date-localtime.patch
コンパイルの前に必要なユーザーとグループの作成を行います。
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
useradd -g nofiles -d /var/qmail -s /bin/false qmaild
useradd -g nofiles -d /var/qmail -s /bin/false qmaill
useradd -g nofiles -d /var/qmail -s /bin/false qmailp
groupadd qmail
useradd -g qmail -d /var/qmail -s /bin/false qmailq
useradd -g qmail -d /var/qmail [...]]]></description>
			<content:encoded><![CDATA[				<p>今時sendmailなんて使えないのでqmailに挑戦します。<br />
				qmailは安全で、信頼できて、高性能で、 簡潔な メイル配送エージェント(MTA) です。（<a href="http://www.qmail.jp/qmail.html" target="_blank">公式</a>より）</p>
				<p>参考にしたのはこのあたりのサイトです。</p>
				<p><a href="http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html" target="_blank">http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01a.html</a></p>
				<p>CentOS5.2を使いました。<br />
				以下、使えるようになるまでの細かい説明を省いた作業履歴。</p>
				<p><span id="more-214"></span></p>
				<pre>cd /usr/local/src/
wget ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
wget http://cyberam.dip.jp/linux_server/mail/qmail-date-localtime.patch
tar zxvf qmail-1.03.tar.gz
cd qmail-1.03/</pre>
				<p>ダウンロード＆解凍。<br />
				そしてパッチを当てます。</p>
				<pre>patch -p1 &lt; ../qmail-date-localtime.patch</pre>
<p>コンパイルの前に必要なユーザーとグループの作成を行います。</p>
<pre>mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
useradd -g nofiles -d /var/qmail -s /bin/false qmaild
useradd -g nofiles -d /var/qmail -s /bin/false qmaill
useradd -g nofiles -d /var/qmail -s /bin/false qmailp
groupadd qmail
useradd -g qmail -d /var/qmail -s /bin/false qmailq
useradd -g qmail -d /var/qmail -s /bin/false qmailr
useradd -g qmail -d /var/qmail -s /bin/false qmails</pre>
				<p>コンパイルします。</p>
				<pre>make setup</pre>
<p>ここでエラーが出るので調べてパッチをあてることにします。</p>
<pre>cd ..
wget http://www.stackasterisk.jp/tech/systemConstruction/qmail01/qmail-glibc.patch
cd qmail-1.03/
patch -s &lt;../qmail-glibc.patch</pre>
				<p>もういちど</p>
				<pre>make setup
make check</pre>
				<p>おっけーですね。</p>
				<pre>./config-fast mail.sj6.org</pre>
<p>（mail.sj6.orgは適当につけてください。mail.example.comとかでいいかも）</p>
<p>これで必要なものが/var/qmailに作成されました。</p>
<p>postmaster、MAILER-DAEMON、rootあてのメールを/var/qmail/aliasに保存するための設定</p>
<pre>cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 .qmail*</pre>
				<p>起動スクリプトを設置し、起動</p>
				<pre>cp /var/qmail/boot/home /var/qmail/rc
/var/qmail/rc &amp;</pre>
				<p>動作を確認</p>
				<pre>ps -aef | grep qmail</pre>
<pre>qmails   29478 24449  0 15:53 pts/0    00:00:00 qmail-send
qmaill   29479 29478  0 15:53 pts/0    00:00:00 splogger qmail
root     29480 29478  0 15:53 pts/0    00:00:00 qmail-lspawn ./Mailbox
qmailr   29481 29478  0 15:53 pts/0    00:00:00 qmail-rspawn
qmailq   29482 29478  0 15:53 pts/0    00:00:00 qmail-clean</pre>
				<p>メールを出してみる</p>
				<pre>echo to: root@mail.sj6.org | /var/qmail/bin/qmail-inject</pre>
<p>自分宛<br />
gmailにも</p>
<pre>echo to: sayjiroあっとまーく(本当は@)gmail.com | /var/qmail/bin/qmail-inject</pre>
				<p>おお！空メールがgmailに来ました！(SPAM扱いだけど)</p>
				<p>次にMaildirを使うために/var/qmail/rcを編集します。</p>
				<pre>vim /var/qmail/rc</pre>
<pre>qmail-start ./Mailbox splogger qmail</pre>
				<p>↓</p>
				<pre>qmail-start ./Maildir/ splogger qmail</pre>
<p>ディレクトリを作成します</p>
<pre>/var/qmail/bin/maildirmake ~alias/Maildir
chown -R alias /var/qmail/alias/Maildir</pre>
				<p>各ユーザーのMaildirを作成（ユーザー名はMaildirを作りたい自分のサーバのユーザー名を適当に）</p>
				<pre>su ユーザー名
/var/qmail/bin/maildirmake ~/Maildir</pre>
				<p>新規ユーザー用にMaildirが生成されるようにする</p>
				<pre>/var/qmail/bin/maildirmake /etc/skel/Maildir</pre>
<p>現在立ち上がっているqmailのプロセスを全てkillして再起動</p>
<pre>kill xxxx xxxx xxxx xxxx(←本当はプロセスID)
/var/qmail/rc &amp;</pre>
				<p>自分宛にメールを送信してみる</p>
				<pre>echo to: root@mail.sj6.org | /var/qmail/bin/qmail-inject</pre>
<p>Maildir/newディレクトリに届くようになります。</p>
<p>次はqmailの起動用にtcpserverをインストールします。</p>
<p>tcpserverはユーザー名・IPアドレス・ドメイン名・同時接続数などを基に接続制限をかけることができる起動プロセスです。</p>
<pre>cd /usr/local/src/
wget ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch
wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch
patch -s -p1 &lt;./ucspi-tcp-0.88.errno.patch
patch -s -p1 &lt;./ucspi-tcp-0.88.a_record.patch
patch -s -p1 &lt;./ucspi-tcp-0.88.nobase.patch</pre>
				<p>インストールのいつもの作業＋パッチを落としてきて当てます。</p>
				<pre>make
make setup check</pre>
				<p>インストールすると/usr/local/bin/配下にパッケージが入ります。</p>
				<p>アクセス制御ファイルの基を/etc/tcp.smtpに作成します。</p>
				<pre>vim /etc/tcp.smtp</pre>
<pre>192.168.0.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""</pre>
				<p>cdbファイルを作成します。</p>
				<pre>/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp</pre>
<p>起動用のスクリプトを作成します。</p>
<pre>vim /etc/init.d/qmail</pre>
				<pre>
#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

case "$1" in
  start)
        # Start daemons.
        echo "Starting qmail."
        csh -cf '/var/qmail/rc &amp;'
        tcpserver -v -u ［qmaildのUID] -g ［nofilesのGID］-x /etc/tcp.smtp.cdb \
       0 smtp /var/qmail/bin/qmail-smtpd 2&gt;&amp;1 | /var/qmail/bin/splogger smtpd 3 &amp;
        echo
        touch /var/lock/qmail
        ;;
  stop)
        # Stop daemons.
        echo "Shutting down qmail."
        PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
        if [ ! -z "$PID" ] ;  then
            /bin/kill ${PID} 1&gt; /dev/null 2&gt;&amp;1
        fi
        echo
        rm -f /var/lock/qmail
        ;;
   *)
        echo "Usage: S99qmail {start|stop}"
        exit 1
esac

exit 0
</pre>
				<p>パーミッションを設定し、</p>
				<pre>chmod 755 /etc/init.d/qmail</pre>
<p>自動起動の設定をします。</p>
<pre>ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S99qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S99qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S99qmail</pre>
				<p>これでオッケー。<br />
				そしてphpはデフォルトでsendmailを使うようになっているので、php.iniを変更します。</p>
				<pre>vim /usr/local/lib/php.ini</pre>
<pre>;sendmail_path =</pre>
				<p>↓</p>
				<pre>sendmail_path = /var/qmail/bin/qmail-inject</pre>
<p>これでphpからqmailを呼び出すことができます！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/qmail_install_to_centos_and_be_useful_php/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/qmail_install_to_centos_and_be_useful_php/" />
	</item>
		<item>
		<title>cakephpカンファレンスTokyoに行ってきた</title>
		<link>http://www.sj6.org/cakephp_conference_tokyo2/</link>
		<comments>http://www.sj6.org/cakephp_conference_tokyo2/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 12:44:38 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[php]]></category>

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

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

		<guid isPermaLink="false">http://www.sj6.org/?p=184</guid>
		<description><![CDATA[				いやーかなり良かった！
				特に開発者であるGarrettの話が！
				http://conference.cakephp.jp/
				http://events.php.gr.jp/events/s [...]]]></description>
			<content:encoded><![CDATA[				<p>いやーかなり良かった！<br />
				特に開発者であるGarrettの話が！<br />
				<a href="http://conference.cakephp.jp/" target="_blank">http://conference.cakephp.jp/</a></p>
				<p><a href="http://events.php.gr.jp/events/show/55" target="_blank">http://events.php.gr.jp/events/show/55</a></p>
				<p>聞いてて気になったところをまとめてみる。</p>
				<h3>関数(メソッド)の作り方</h3>
				<p><span id="more-184"></span></p>
				<ul>
				<li>単純な関数名</li>
				<li>第1引数はタイプ</li>
				<li>第2引数はオプション</li>
				</ul>
				<pre>function hoge($type,$option=array(){
}</pre>
				<p>確かにcakeの関数はこんな感じで出来てたのが多い気がする。<br />
				利点は機能の拡張がやりやすいことだそう。</p>
				<h3>cakephpへの貢献の仕方</h3>
				<p>バグを見つけたらテストケースを作ってパッチと一緒になげてくれるとベスト！</p>
				<h3>Making Clean Code（良いコードを書くには）</h3>
				<p><strong>Think about the code for more time than it takes to write it</strong><br />
				書く時間より考える時間を長く使おう<br />
				考えることによってこれまで考えなかったアイデアが浮かぶかもしれない。<br />
				コードを書くときは、考えがまとまってからにしましょう<br />
				<strong>Pay strict attention to details</strong><br />
				細部にこだわる<br />
				チームにはなにがなんでも早くやりたい人がいるかもしれない。<br />
				小さいことにこだわろう<br />
				<strong>Give back as much as you take</strong><br />
				もらった分だけ返すのは大事<br />
				<strong>Think outside of box</strong><br />
				視野を広げ枠組みの外からものを見よう。</p>
				<h3>よいcakeと悪いcake</h3>
				<p><strong>悪いcake</strong><br />
				全体に対し、Controllerのコード量が多い<br />
				<strong>良いcake</strong><br />
				全体に対し、Modelのコード量が多い</p>
				<h3>cakephpの今後</h3>
				<ul>
				<li>1.2の安定版はもうすぐ</li>
				<li>その前にRC4が出るよ</li>
				<li>1.3はPHP4と5に対応するよ</li>
				<li>2.0はPHP5のみに対応するよ</li>
				<li>3.0は次の境地を目指す（だけど予定は未定）</li>
				</ul>
				<h3>ほかのフレームワークについて</h3>
				<p><strong>目の付け所</strong></p>
				<ul>
				<li>staleとはなにか？</li>
				<li>役立つ機能とは？</li>
				<li>安定版なのにチケットが残っているものはどうなの？</li>
				</ul>
				<p><strong>有名どころ</strong></p>
				<h4>ZendFramework</h4>
				<ul>
				<li>空いているチケット:1028</li>
				<li>Zend_Controler:39</li>
				<li>Zend_Db:78</li>
				<li>Zend_View:119</li>
				</ul>
				<h4>Symfony</h4>
				<ul>
				<li>300以上の不具合がコアに</li>
				<li>SfPropelとSfdoctrineに２４の不具合</li>
				<li>Propelについては(ry</li>
				</ul>
				<h4>cakephp（たぶん現状の1.2の話だと思う）</h4>
				<ul>
				<li>バグは全体で15</li>
				<li>最適化の必要部分は22ある</li>
				<li>機能拡張の要望が177ある</li>
				</ul>
				<p>そしてcakeはチケットが残っている状態でStableには絶対しないよ！っていう話。</p>
				<h3>質疑応答</h3>
				<p>Q.cakeで開発するにおいて留意するべき事項は？<br />
				A.</p>
				<ul>
				<li>どこにコードを書くかを決めておく。</li>
				<li>1.2の機能としてControllerが同じで出力形式を変えることができるからうまく使ってね。</li>
				<li>1.2のAPIをよく理解することでよいコード書ける</li>
				</ul>
				<p>とこんな感じでした。</p>
				<p>懇親会ではcakephpなケーキが出ました。</p>
				<p>なかなか粋なはからい。</p>
				<p>↓かなりぶれたけどGarettとcake↓</p>
				<p><img src="http://www.sj6.org/wp-content/uploads/2008/10/nec_0214.jpg" alt="Garettとcake" /></p>
				<p>わざわざアメリカからありがとうございました！</p>
				<p>運営の方もお疲れ様です！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/cakephp_conference_tokyo2/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/cakephp_conference_tokyo2/" />
	</item>
		<item>
		<title>apacheのログを整形して携帯端末IDを出したり、画像ファイルのログを出力させないようにする</title>
		<link>http://www.sj6.org/plastic_apche_log_for_mobile_and_image/</link>
		<comments>http://www.sj6.org/plastic_apche_log_for_mobile_and_image/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 14:27:09 +0000</pubDate>
		<dc:creator>sayjiro</dc:creator>
		
		<category><![CDATA[apache]]></category>

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

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

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

		<guid isPermaLink="false">http://www.sj6.org/?p=156</guid>
		<description><![CDATA[				デフォルトでapacheは画像ファイルのログを出すのだけれど、
				ログが肥大するし、あまり見ないので、こちらを消してしまいます。
				あとついでにログの出力方法を調整したり、日別の集計にしたり、携帯用の [...]]]></description>
			<content:encoded><![CDATA[				<p>デフォルトでapacheは画像ファイルのログを出すのだけれど、<br />
				ログが肥大するし、あまり見ないので、こちらを消してしまいます。<br />
				あとついでにログの出力方法を調整したり、日別の集計にしたり、携帯用の設定を追加してみたりしてみる。<br />
				<span id="more-156"></span><br />
				apacheのログ関連設定はhttpd.confのこの周辺部分に書いておきます。</p>
				<pre>&lt;IfModule log_config_module&gt;
&lt;/IfModule&gt;</pre>
				<p>上記&lt;Ifmodule log_config_module…の中に書いていきます。</p>
				<p>まずはエラーログから</p>
				<pre>ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error.log.%Y%m%d 86400"</pre>
<p>エラーログはerror.log.20081016のような形式で日別に出すということ。<br />
86400はこの秒数(この場合1日)でログをローテートするの意味。</p>
<p>そしてその下あたりにログレベルを記載</p>
<pre>LogLevel warn</pre>
				<p>どのレベルでエラーログを出すかということです。<br />
				詳細はこちら↓<br />
				<a href="http://httpd.apache.org/docs/2.2/ja/mod/core.html#loglevel" target="_blank">LogLevel ディレクティブ</a></p>
				<p>次はアクセスログの設定。</p>
				<p>まずはログの書式設定</p>
				<pre>LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%U\" \"%q\" \"%{User-Agent}i\" \"%{cookie}i\" \"%{Referer}i\" \"%{X-Up-Subno}i\" \"%{x-jphone-uid}i\" \"%{X-DCMGUID}i\"" combined</pre>
<p>内容は以下のようになってます</p>
<pre>リモートホスト リモートログ名 リモートユーザ 時刻 リクエストの最初の行 ステータスコード レスポンスのバイト数 リクエストURL クエリーストリング(?=の値) UserAgent cookie リファラー auの端末ID SoftBankの端末ID DoCoMoの端末ID</pre>
				<p>ちなみにログの書式は以下を参考に。<br />
				<a href="http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html#formats" target="_blank">カスタムログ書式</a><br />
				combinedはこの書式をcombinedという名前に設定という意味。</p>
				<p>次はログ出力の方法</p>
				<pre>CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400" combined env=!nolog</pre>
<p>こちらはエラーログのときと同じです。<br />
combinedは上で設定したcombinedという書式で出力するという意味。<br />
env!=nologはnologと設定したデータは表示させないという意味です。<br />
ここで、nologを設定します。</p>
<pre>SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" nolog</pre>
				<p>これは、拡張子がgif,jpg,png,css,jsのリクエストをnologという名前にしたという意味です。<br />
				CustomLogでenv!=と指定しているのでコレジャナイってことですね！</p>
				<p>できたものはこんな感じです。</p>
				<pre>&lt;IfModule log_config_module&gt;
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error.log.%Y%m%d 86400 540"
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%U\" \"%q\" \"%{User-Agent}i\" \"%{cookie}i\" \"%{Referer}i\" \"%{X-Up-Subno}i\" \"%{x-jphone-uid}i\" \"%{X-DCMGUID}i\"" combined
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400 540" combined env=!except-request
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" except-request
&lt;/IfModule&gt;</pre>
				<p>これでapacheを再起動するといらないファイルが出ない日付別のログファイルが出力されるようになりました。めでたしめでたし。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sj6.org/plastic_apche_log_for_mobile_and_image/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.sj6.org/plastic_apche_log_for_mobile_and_image/" />
	</item>
	</channel>
</rss>
