<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>e2esound.com</title>
	
	<link>http://www.e2esound.com</link>
	<description>音楽、音楽著作権、サイバー法、プログラミング…ネットの片隅に巣くう男の記録</description>
	<lastBuildDate>Fri, 02 Jul 2010 09:32:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/feed" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/e2esound/Izak" /><feedburner:info uri="e2esound/izak" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/</creativeCommons:license><image><link>http://www.e2esound.com</link><url>http://farm4.static.flickr.com/3057/2597037759_2c7882a727_o.gif</url><title>e2esound.com logo_144</title></image><feedburner:feedFlare href="http://add.my.yahoo.co.jp/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://i.yimg.jp/i/jp/my/addtomy/standard_bb.gif">myyahoo???</feedburner:feedFlare><feedburner:feedFlare href="http://feedpath.jp/feedreader/feeds_add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://feedpath.jp/common/images/sub_feedpath.gif">feedpath???</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/e2esound/Izak" src="http://www.bloglines.com/images/sub_modern11.gif">Bloglines???</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://buttons.googlesyndication.com/fusion/add.gif">Google???</feedburner:feedFlare><feedburner:feedFlare href="http://r.hatena.ne.jp/append/http://feeds.feedburner.com/e2esound/Izak" src="http://r.hatena.ne.jp/images/addto_w.gif">???RSS???</feedburner:feedFlare><feedburner:feedFlare href="http://reader.livedoor.com/subscribe/http://feeds.feedburner.com/e2esound/Izak" src="http://image.reader.livedoor.com/img/banner/91_17_1.gif">Livedoor???????</feedburner:feedFlare><feedburner:feedFlare href="http://reader.goo.ne.jp/web/bookmarklet.html?,,http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://reader.goo.ne.jp/web/img/addwebrss.gif">goo RSS???????</feedburner:feedFlare><feedburner:feedFlare href="http://www.fenrir.co.jp/rd/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://images2.fenrir.co.jp/fb/sleipnir_feed.gif">Sleipnir に追加</feedburner:feedFlare><feedburner:feedFlare href="http://reader.excite.co.jp/subscribe/?url=http%3A%2F%2Ffeeds.feedburner.com%2Fe2esound%2FIzak" src="http://reader.excite.co.jp/images/add_rss_excitereader.gif">エキサイトリーダーに登録</feedburner:feedFlare><item>
		<title>blog URL移行のお知らせ</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/2bTF8qURKEI/entry-id=858</link>
		<comments>http://www.e2esound.com/20100702/entry-id=858#comments</comments>
		<pubDate>Fri, 02 Jul 2010 09:32:45 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[徒然]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=858</guid>
		<description>突然ですが、このblogのURLが変更になります。既に新しいURL上にWordPressをインストールし、データも大方移行したところです。
新しいblogのURLは、http://blog.e2esound.com/に [...]</description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a class="lightwindow" title="new site top" href="http://farm5.static.flickr.com/4119/4754617704_c8c79851af.jpg"><img src="http://farm5.static.flickr.com/4119/4754617704_c8c79851af.jpg" alt="new site top" class="alignnone" /></a></p>
<p>突然ですが、このblogのURLが変更になります。既に新しいURL上にWordPressをインストールし、データも大方移行したところです。</p>
<p>新しいblogのURLは、<a href="hrrp://blog.e2esound.com/" target="_blank">http://blog.e2esound.com/</a>になります。RSSのURLも併せて変更になりますので、もしRSSを購読されている方がいらっしゃれば、サイトに移動後ご登録をお願い申し上げます。</p>
<h3>URL変更の理由</h3>
<p>現状のhttp://www.e2esound.com/上に新しく仕事用のページを作る為です。（画像）</p>
<h3><span id="more-858"></span>URL変更後</h3>
<p>いつも通り、技術的なことやら何やらをダラダラと書き続ける予定です。また、www～のサイト以下に新しくWordPressを導入し、お仕事情報を書いていこうかなと思っています。どこかのタイミングで統合や片方の廃止の可能性もありますが、過去の記事の中に未だリンクを貼ったいただけることがあるので、可能な限り両方で頑張ろうと思っています。</p>
<h3>サーバーの話</h3>
<p>このblogはlolipopに載せてあります。次のサーバーはさくらを使用します。1通りさくらに移行した後、lolipopについては環境のアップグレードが続いているので、活用する手段があれば他のドメインで動かす可能性があります。</p>
<p>例えば、SSHの導入に伴って、Gitのリポジトリとしての使用ができるのでは？と考えています。詳細な仕様が出ていないので分からない部分が多いですが、お客様の中でlolipopサーバーをご利用になられている方も多数いらっしゃいますので、開発環境としては維持する見込みです。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/2bTF8qURKEI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100702/entry-id=858/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100702/entry-id=858" />
	<feedburner:origLink>http://www.e2esound.com/20100702/entry-id=858</feedburner:origLink></item>
		<item>
		<title>最近購入＆読んだ書籍</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/kSwvEVmjlOU/entry-id=857</link>
		<comments>http://www.e2esound.com/20100628/entry-id=857#comments</comments>
		<pubDate>Sun, 27 Jun 2010 18:01:51 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[徒然]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=857</guid>
		<description>このところ、技術系の書籍を連続して購入したので紹介です。
まずは、オライリー本ハイパフォーマンスWebサイト ―高速サイトを実現する14のルールです。予算の都合もあり、低価格帯でサーバーを運用することがあります。そうい [...]</description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a class="lightwindow"  title="SN3J01310001.jpg" href="http://farm5.static.flickr.com/4081/4738753135_8946b4bfc5.jpg"><img style="border: 10px solid #ffffff;" src="http://farm5.static.flickr.com/4081/4738753135_8946b4bfc5.jpg" alt="SN3J01310001.jpg" class="alignnone" /></a></p>
<p>このところ、技術系の書籍を連続して購入したので紹介です。</p>
<p>まずは、オライリー本<a href="http://www.amazon.co.jp/gp/product/487311361X?ie=UTF8&amp;tag=e2esound0101-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=487311361X">ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール</a><img src="http://www.assoc-amazon.jp/e/ir?t=e2esound0101-22&amp;l=as2&amp;o=9&amp;a=487311361X" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" />です。予算の都合もあり、低価格帯でサーバーを運用することがあります。そういった時に問題になるのがその表示パフォーマンスです。本書では、”パフォーマンスの原因の8割はフロントエンド”ということで、javascriptファイルの圧縮やgzipなどなど高速に表示させる為のtipsがまとめられています。レンタルサーバーでは出来ることも限られますが、かなり参考になりました。</p>
<p><span id="more-857"></span></p>
<p>Googleが表示速度を検索ランクに影響させるというアナウンスの影響なのか、<a href="http://www.amazon.co.jp/gp/product/4873114462?ie=UTF8&amp;tag=e2esound0101-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4873114462">続編</a><img src="http://www.assoc-amazon.jp/e/ir?t=e2esound0101-22&amp;l=as2&amp;o=9&amp;a=4873114462" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" />も出ていました。</p>
<p>続いて、<a href="http://www.amazon.co.jp/gp/product/479811992X?ie=UTF8&amp;tag=e2esound0101-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=479811992X">MySQLで学ぶデータベース超入門 (DB Magazine SELECTION)</a><img src="http://www.assoc-amazon.jp/e/ir?t=e2esound0101-22&amp;l=as2&amp;o=9&amp;a=479811992X" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" />です。MySQLの知識が弱いので、買ってみたのですが情報量としては少なかった感があります。初心者の方にはもちろんオススメできますが、既にMySQLをいじっている方にとっては物足りない内容だと思います。良い意味での基礎本。</p>
<p>続いて、<a href="http://www.amazon.co.jp/gp/product/4798023809?ie=UTF8&amp;tag=e2esound0101-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4798023809">入門Git</a><img src="http://www.assoc-amazon.jp/e/ir?t=e2esound0101-22&amp;l=as2&amp;o=9&amp;a=4798023809" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" />です。言わずもがなのGitの鉄板本です。だいぶ前から欲しかったのですが、思い切ってとうとう購入してみた次第です。ちょうど外注期間だったので電車の中で読んでいました。</p>
<p>最後に、<a href="http://www.amazon.co.jp/gp/product/4274067858?ie=UTF8&amp;tag=e2esound0101-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=4274067858">RailsによるアジャイルWebアプリケーション開発</a><img src="http://www.assoc-amazon.jp/e/ir?t=e2esound0101-22&amp;l=as2&amp;o=9&amp;a=4274067858" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" />です。RubyをやるならRailsでしょ！というテンションで購入してみました、購入に先だってMitaka.rbのysakaki氏のオススメでございました。まだ、読み始めたばかりで途中ですが、Railsの凄さが伝わってきます。CodeIgniter使いの自分としては、寧ろ、卑怯！！と思うほどに凄いですね、Rails。使いこなせるのはいつの日やら、、、とも思いますが、そんなことも言ってられないので頑張ります。</p>
<p>このところ、読書に費やしてしまった時間と知識を生かして、また1つ成長していきたいものです。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/kSwvEVmjlOU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100628/entry-id=857/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100628/entry-id=857" />
	<feedburner:origLink>http://www.e2esound.com/20100628/entry-id=857</feedburner:origLink></item>
		<item>
		<title>codeigniter class diagram v1.7.2</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/iY66GuFsrhs/entry-id=855</link>
		<comments>http://www.e2esound.com/20100623/entry-id=855#comments</comments>
		<pubDate>Wed, 23 Jun 2010 13:02:04 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=855</guid>
		<description>これしっかり見ようと思っていて、ずっと忘れていて、ふと思い出したのでメモ。
http://blog.shopigniter.com/wp-content/uploads/2010/06/inclued.ci-1.7.2- [...]</description>
			<content:encoded><![CDATA[<p>これしっかり見ようと思っていて、ずっと忘れていて、ふと思い出したのでメモ。</p>
<p><a title="http://blog.shopigniter.com/wp-content/uploads/2010/06/inclued.ci-1.7.2-300x52.png" href="http://blog.shopigniter.com/wp-content/uploads/2010/06/inclued.ci-1.7.2-300x52.png">http://blog.shopigniter.com/wp-content/uploads/2010/06/inclued.ci-1.7.2-300&#215;52.png</a></p>
<p>リンク先の画像は、CodeIgniterでどのようにファイルが読み込まれrequiredしているかをまとめている画像です。こちらの画像はこのサイト。</p>
<p>ShopIgniter:<a title="http://blog.shopigniter.com/" href="http://blog.shopigniter.com/">http://blog.shopigniter.com/</a></p>
<p>時間がある時に読みたいですね。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/iY66GuFsrhs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100623/entry-id=855/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100623/entry-id=855" />
	<feedburner:origLink>http://www.e2esound.com/20100623/entry-id=855</feedburner:origLink></item>
		<item>
		<title>CloudIgniter:CodeIgniterホスティングサービス（Free有）</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/tbSu0ci8OMY/entry-id=853</link>
		<comments>http://www.e2esound.com/20100612/entry-id=853#comments</comments>
		<pubDate>Sat, 12 Jun 2010 12:27:35 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[CloudIgniter]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[heroku]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=853</guid>
		<description>昨日のことです。CloudIgniterというサービスを偶然見つけました。
外注先の昼休み、私はお昼を食べて携帯電話でTwitterをしておりました。偶然見つけたこのpostです。

.bbpBox15902436323 [...]</description>
			<content:encoded><![CDATA[<p>昨日のことです。<a href="http://getcloudigniter.com/partner/terakuma">CloudIgniter</a>というサービスを偶然見つけました。</p>
<p>外注先の昼休み、私はお昼を食べて携帯電話でTwitterをしておりました。偶然見つけたこのpostです。<br />
<!-- http://twitter.com/cloudigniter/status/15902436323 --><br />
<style type='text/css'>.bbpBox15902436323 {background:url(http://s.twimg.com/a/1274899949/images/themes/theme1/bg.png) #9ae4e8;padding:20px;} p.bbpTweet{background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:18px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px} p.bbpTweet span.metadata{display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6} p.bbpTweet span.metadata span.author{line-height:19px} p.bbpTweet span.metadata span.author img{float:left;margin:0 7px 0 0px;width:38px;height:38px} p.bbpTweet a:hover{text-decoration:underline}p.bbpTweet span.timestamp{font-size:12px;display:block}</style>
<div class='bbpBox15902436323'>
<p class='bbpTweet'>Super CloudIgniter Ninja Secret&#8230;. We have a free heroku-style hosting plan. Does your host have that?<span class='timestamp'><a title='Fri Jun 11 03:52:50 +0000 2010' href='http://twitter.com/cloudigniter/status/15902436323'>less than a minute ago</a> via <a href="http://itunes.apple.com/app/twitter/id333903271?mt=8" rel="nofollow">Twitter for iPhone</a></span><span class='metadata'><span class='author'><a href='http://twitter.com/cloudigniter'><img src='http://a1.twimg.com/profile_images/829127862/cloudigniter_avatar_normal.png' /></a><strong><a href='http://twitter.com/cloudigniter'>GetCloudIgniter.com</a></strong><br/>cloudigniter</span></span></p>
</div>
<p> <!-- end of tweet --><br />
CodeIgniterのheroku的サービスを始めようかと思っている？だって!!!!!</p>
<p><a href="http://heroku.com/">heroku</a>とは、Rubyでお馴染みのRailsのお話ですね。先日お邪魔した<a href="http://groups.google.co.jp/group/mitakarb">Mitaka.rb</a>で<a href="http://blog.champierre.com/">jishihaさん</a>がLTをしていました。<br />
その機能の概要は、rails専用のホスティングサービスであり、gitにcommitするだけでその変更が反映されるというもの！これは！！</p>
<p><strong>「CodeIgniter始まったな。」　　「ああ。」</strong><br />
<span id="more-853"></span><br />
この時点では、まだ良く分かっていなかったこのサービス<a href="http://getcloudigniter.com/partner/terakuma">「CloudIgniter」</a>。探しても日本語情報がありません。Free版があったので試してみました。</p>
<p>ザクッとこんな感じです。尚、Free版は「hoge.getcloudigniter.com」のようにhoge部分を選択するだけです。有償版ではドメインが適用できるとのこと。管理画面にLoginし、設定し、ポチっとするとCodeIgniter-erにはお馴染みのページが表示されます。.htaccessの設定やら、database.php,config.phpの設定もいりません。</p>
<p>とりあえず、Hello World!だけしときました。<a href="http://e2c.getcloudigniter.com/hello">http://e2c.getcloudigniter.com/hello</a></p>
<p>管理面からすると、SSH接続もできます。素晴らしい。もちろんユーザー毎のFTPも容易されています。MySQLの管理にはphpMyAdminとBuddySQLが用意されています。何と十分な構成でしょうか。</p>
<p>さて、最初のつぶやきから察するに、heroku的サービスが開始されたと思っておりましたが、まだらしい！しかしだ！ここでもう1つの事実が発覚。<br />
<!-- http://twitter.com/cloudigniter/status/15940469636 --><br />
<style type='text/css'>.bbpBox15940469636 {background:url(http://s.twimg.com/a/1274899949/images/themes/theme1/bg.png) #9ae4e8;padding:20px;} p.bbpTweet{background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:18px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px} p.bbpTweet span.metadata{display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6} p.bbpTweet span.metadata span.author{line-height:19px} p.bbpTweet span.metadata span.author img{float:left;margin:0 7px 0 0px;width:38px;height:38px} p.bbpTweet a:hover{text-decoration:underline}p.bbpTweet span.timestamp{font-size:12px;display:block}</style>
<div class='bbpBox15940469636'>
<p class='bbpTweet'>Don&#8217;t forget that we launched last night! With an awesomely amazing free hosting plan as well.<span class='timestamp'><a title='Fri Jun 11 16:27:09 +0000 2010' href='http://twitter.com/cloudigniter/status/15940469636'>less than a minute ago</a> via <a href="http://itunes.apple.com/app/twitter/id333903271?mt=8" rel="nofollow">Twitter for iPhone</a></span><span class='metadata'><span class='author'><a href='http://twitter.com/cloudigniter'><img src='http://a1.twimg.com/profile_images/829127862/cloudigniter_avatar_normal.png' /></a><strong><a href='http://twitter.com/cloudigniter'>GetCloudIgniter.com</a></strong><br/>cloudigniter</span></span></p>
</div>
<p> <!-- end of tweet --></p>
<p>えと、、、Free版始めたの昨日だったんだってさ!!!!日本語情報がない訳です。</p>
<p>heroku的なサービスが始まって、支払方法にpaypal導入とかあったらホスティングしたい!!!!日本人CodeIgniter-erの皆々様、お時間があれば是非お試しください！</p>
<p>Go Go <a href="http://getcloudigniter.com/partner/terakuma">CloudIgniter</a>!!!!!!</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/tbSu0ci8OMY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100612/entry-id=853/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100612/entry-id=853" />
	<feedburner:origLink>http://www.e2esound.com/20100612/entry-id=853</feedburner:origLink></item>
		<item>
		<title>WordPressのコメント欄を超拡張：IntenseDebate</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/4nUwHJC8EmE/entry-id=851</link>
		<comments>http://www.e2esound.com/20100606/entry-id=851#comments</comments>
		<pubDate>Sun, 06 Jun 2010 13:55:02 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[IntenseDebate.WordPress]]></category>
		<category><![CDATA[mixi]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=851</guid>
		<description>更新が滞りすぎている今日この頃、皆さま如何お過ごしでしょうか？さて、既に先週のことになってしまいましたが、WordCamp Yokohamaに行って参りました。とても貴重な時間が過ごせた次第ですし、いろんな人に会えました [...]</description>
			<content:encoded><![CDATA[<p>更新が滞りすぎている今日この頃、皆さま如何お過ごしでしょうか？さて、既に先週のことになってしまいましたが、<a href="http://yokohama2010.wordcamp.jp/" target="_blank">WordCamp Yokohama</a>に行って参りました。とても貴重な時間が過ごせた次第ですし、いろんな人に会えました。</p>
<p>さて、いろいろ書きたいのは山々なんですが・・・時間がなくてだな。。。</p>
<p>書きたいことをまるっとさくっと書きます。WordCampの中でも紹介されていたコメント欄拡張プラグイン「<a href="http://intensedebate.com/home" target="_blank">IntenseDebate」</a>の威力が半端ないです。何故知らなかったのか!!!!（眼にしたような記憶があるけど)</p>
<p>その威力は、私のコメント欄を見ていただければ分かるかと思います。素晴らしいほどの連携。</p>
<p><span id="more-851"></span></p>
<p>TwitterやFacebookとの連携、IntenseDebate自身のプラグインによる機能拡張と、もうこれは！使うしか！ない！！！！</p>
<p>という、威力です。（見込み。）</p>
<p>インストール方法に関しては、IntenseDebateサイトでアカウントを作成、プラグインファイルのアップロード、IntenseDebateでの設定だけです。</p>
<p>WordPressのプラグインでコメント欄、というとテンプレートを書き直すものだと思っていましたが、テンプレート自身は何1ついじっていません。この点も驚きつつ、最終的に出来上がったものがまが（驚）</p>
<p>日本語にも対応していますが、どうやらIntenseDebateの設定画面は英語onlyらしいですが、どうにかなるレベルです。つまずくとすれば、FacebookのAPI設定に関して、Facebook上でアプリケーション登録→API Keyとか入力という作業が発生します。（大きな声では言えないが、日本国内のサイトなら設定しなくてイイと思う）</p>
<p>（これ、mixiにも対応したら、日本国内では恐ろしいことになるんだろうな…しないと思うけど（ﾎﾞｿｯ）</p>
<p>PS.お願い</p>
<p>効果のほどを知りたいので、お暇な方は使ってみて貰えると嬉しいです。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/4nUwHJC8EmE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100606/entry-id=851/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100606/entry-id=851" />
	<feedburner:origLink>http://www.e2esound.com/20100606/entry-id=851</feedburner:origLink></item>
		<item>
		<title>Vimプラグイン：sunipMate.vim</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/ZwbGCpj3EUI/entry-id=849</link>
		<comments>http://www.e2esound.com/20100523/entry-id=849#comments</comments>
		<pubDate>Sun, 23 May 2010 13:03:02 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[snipMate]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=849</guid>
		<description>この種のプラグインをずっと探していました。
Vimの補完機能を使用すれば、単語単位のもの、つまりはメソッドやプロパティはガシガシ打つことができます。しかし、数行に渡るコードを記述することはできません。
このsnipMat [...]</description>
			<content:encoded><![CDATA[<p>この種のプラグインをずっと探していました。</p>
<p>Vimの補完機能を使用すれば、単語単位のもの、つまりはメソッドやプロパティはガシガシ打つことができます。しかし、数行に渡るコードを記述することはできません。</p>
<p>このsnipMate.vimでは、ファイルに登録されたテンプレートを呼び出し、一瞬にして打ち込むことができます。</p>
<p>[参考]Supernova:<a href="http://blog.dealforest.net/2009/04/migrate-over-to-snipmate-from-snippetseeu/" target="_blank">snippetsEmu から snipMate に移行したまとめ</a></p>
<p>とりあえず、CodeIgniter用に以下のものをファイルに記述しました。</p>
<p><span id="more-849"></span></p>
<p>[php]<br />
snippet controller<br />
class ${1:ControllerName} extends Controller<br />
{<br />
function __construct()<br />
{<br />
parent::Controller();<br />
$this-&gt;load-&gt;library(&#8221;);<br />
$this-&gt;load-&gt;helper(&#8221;);<br />
}<br />
function index()<br />
{<br />
${2:// code&#8230;}<br />
}</p>
<p>/* End of file ${3:FileName}.php */<br />
/* Location: ./system/application/controllers/${4:FileName}.php */<br />
snippet model<br />
class ${1:ModelName} extends Model<br />
{<br />
function __construct()<br />
{<br />
parent::Model();<br />
}<br />
function ${2:FnName}()<br />
{<br />
${3:// code&#8230;}<br />
}</p>
<p>/* End of file ${3:FileName}.php */<br />
/* Location: ./system/application/models/${4:FileName}.php */</p>
<p>snippet loadview<br />
$this-&gt;load-&gt;view(&#8216;${1:view}&#8217;);</p>
<p>snippet loadmodel<br />
$this-&gt;load-&gt;view(&#8216;${1:model}&#8217;);</p>
<p>snippet endoffile<br />
/* End of file ${1:FileName}.php */<br />
/* Location: ./system/application/libraries/${2:FileName}.php */<br />
[/php]</p>
<p>Controllerの定型文、Modelの定型文、ついでに$this-&gt;load-&gt;view(‘’)と$this-&gt;load-&gt;model(‘’)も追加しています。使い方は、例えば上記のControllerの定型文を使用する場合、Filetype:phpを設定した上で、<strong>「controller&lt;tab&gt;」</strong>で実行します。</p>
<p>とにかく便利です。今まで何度定型文を書いたり、コピペしたりしていたでしょうか。。。もっと早く知るべきでした。まだ、HTMLは整備していませんが、より効果を発揮してくれるだろうと思います。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/ZwbGCpj3EUI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100523/entry-id=849/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100523/entry-id=849" />
	<feedburner:origLink>http://www.e2esound.com/20100523/entry-id=849</feedburner:origLink></item>
		<item>
		<title>PHPUnitの学習</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/7ZWbULcvEEs/entry-id=847</link>
		<comments>http://www.e2esound.com/20100523/entry-id=847#comments</comments>
		<pubDate>Sat, 22 May 2010 17:10:50 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/20100523/entry-id=847</guid>
		<description>日本語のドキュメントがあって助かりました。
http://www.phpunit.de/manual/2.3/ja/index.html
インストールから使用方法まで書いてあるので、1通り。
&amp;#160;
早速作業用にV [...]</description>
			<content:encoded><![CDATA[<p>日本語のドキュメントがあって助かりました。</p>
<p><a title="http://www.phpunit.de/manual/2.3/ja/index.html" href="http://www.phpunit.de/manual/2.3/ja/index.html">http://www.phpunit.de/manual/2.3/ja/index.html</a></p>
<p>インストールから使用方法まで書いてあるので、1通り。</p>
<p>&#160;</p>
<p>早速作業用にVimの辞書ファイルを作りました。(ver3.4)</p>
<p><a href="http://github.com/e2esoundcom/vim/blob/master/phpunit.dict" target="_blank">github:phpunit.dict</a></p>
<p>CodeIgniterに、このPHPUnitを使用できるようにするライブラリ、<a href="http://www.knollet.com/foostack/" target="_blank">CIUnit</a>があります。ついでに動作確認してみました。日本語情報に関しては<a href="http://pneskin2.nekoget.com/press/?p=217" target="_blank">NEKOGETさんのblog</a>で3回に渡って紹介されています。</p>
<p>目指せ、TDD!</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/7ZWbULcvEEs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100523/entry-id=847/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100523/entry-id=847" />
	<feedburner:origLink>http://www.e2esound.com/20100523/entry-id=847</feedburner:origLink></item>
		<item>
		<title>[修正]CodeIgniterで$system_folderをサクッと取得する方法</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/vmWxasfQwoM/entry-id=845</link>
		<comments>http://www.e2esound.com/20100516/entry-id=845#comments</comments>
		<pubDate>Sun, 16 May 2010 12:03:00 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[helper]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=845</guid>
		<description>CodeIgniterのドキュメントルート以下にあるindex.phpには、$system_folderが定義されています。デフォルトでは「system」として設定されています。
しかし、セキュリティ上の観点からこのファ [...]</description>
			<content:encoded><![CDATA[<p>CodeIgniterのドキュメントルート以下にあるindex.phpには、$system_folderが定義されています。デフォルトでは「system」として設定されています。</p>
<p>しかし、セキュリティ上の観点からこのファイル名を変更する場合があります。CodeIgniterで作成したWebアプリの場合、後に$system_folderの値が変更になる可能性が否定しきれません。変更が必要となってしまいます。（無いと思いたいけれど）</p>
<p>そこで、この$system_folderに設定される値を取得する方法。サクッと。</p>
<p><span id="more-845"></span></p>
<p>[php]$system_folder_name = str_replace(base_url(),&#8221;",$this-&gt;config-&gt;system_url());[/php]</p>
<p>中身は、$system_folder = &#8220;system&#8221;の場合、&#8221;system/&#8221;になります。CodeIgniterはURLの末尾に&#8221;/&#8221;を含めるようなので、そのままです。</p>
<p><span style="text-decoration: line-through;"><span style="color: #ff0000;">要urlヘルパー</span>です。</span>base_url()を使用しています。もう少し短い変数名にするかヘルパーにした方が利便性は高そうです。あまり使う機会もなさそうなので、取り急ぎこれで。</p>
<p>index.phpをインクルードできればいける気もしましたが、よく分からなくなってこの対応（汗</p>
<p>[修正]</p>
<p>こちらの方が効率がイイ！これだとurlヘルパーいらない！</p>
<p>[php]$system_folder_name = str_replace(<br />
$this-&gt;config-&gt;item(&#8216;base_url&#8217;),&#8221;",$this-&gt;config-&gt;system_url());[/php]</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/vmWxasfQwoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100516/entry-id=845/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100516/entry-id=845" />
	<feedburner:origLink>http://www.e2esound.com/20100516/entry-id=845</feedburner:origLink></item>
		<item>
		<title>JavaScriptへの再挑戦を開始します。</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/IBTZLZTBIs0/entry-id=844</link>
		<comments>http://www.e2esound.com/20100512/entry-id=844#comments</comments>
		<pubDate>Wed, 12 May 2010 12:56:57 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[徒然]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/20100512/entry-id=844</guid>
		<description>JavaScriptを基礎から学び（一応は学び終わり）、結局のところ使う機会も少なく、今はjQueryを愛用中です。
しかしだ！今度、いろいろやってみたいことが出来まして、もう一度きっちりやってみることにしました。目標は [...]</description>
			<content:encoded><![CDATA[<p>JavaScriptを基礎から学び（一応は学び終わり）、結局のところ使う機会も少なく、今はjQueryを愛用中です。</p>
<p>しかしだ！今度、いろいろやってみたいことが出来まして、もう一度きっちりやってみることにしました。目標はブログパーツを作ったり、bookmarkletを作ることです。</p>
<p>続く（いや、きっと）。</p>
<p>ところで、blog気づいたらまたしばらく書いてませんでした。忙しくなるとダメですね＞＜。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/IBTZLZTBIs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100512/entry-id=844/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100512/entry-id=844" />
	<feedburner:origLink>http://www.e2esound.com/20100512/entry-id=844</feedburner:origLink></item>
		<item>
		<title>Lolipopサーバーの処理速度テスト</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/c0u0lpY4ZuY/entry-id=842</link>
		<comments>http://www.e2esound.com/20100503/entry-id=842#comments</comments>
		<pubDate>Sun, 02 May 2010 15:44:53 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[徒然]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/20100503/entry-id=842</guid>
		<description>lolipopサーバーのテストをしてみました。このところ、サーバーの載せ替え検討時の資料に、時々こういったテストをしています。ご参考までに。
lolipop Server Test  2010/05/02 23:40～2 [...]</description>
			<content:encoded><![CDATA[<p>lolipopサーバーのテストをしてみました。このところ、サーバーの載せ替え検討時の資料に、時々こういったテストをしています。ご参考までに。</p>
<p><span style="font-size: medium;"><strong>lolipop Server Test  2010/05/02 23:40～2010/05/03 00:30</strong></span><br />
<span style="font-size: small;"><br />
<span style="font-size: x-small;">測定方法<br />
PHPフレームワークCodeIgniterを使用し、MySQLに入れた郵便番号データ（122730レコード）から、<br />
ランダムに1レコードを取得、さらに表示</span></span></p>
<p><strong>500 record</strong><br />
83.3499708176<br />
82.8934130669<br />
82.6532549858<br />
93.9357149601<br />
94.6581370831<br />
92.0906701088<br />
88.5556972027<br />
82.3820140362<br />
96.3471689224<br />
83.5166530609</p>
<p><strong>100 record</strong><br />
16.7468960285<br />
16.7918679714<br />
16.7485609055<br />
16.6533479691<br />
16.6854419708<br />
16.6126961708<br />
16.609457016<br />
16.6992168427<br />
16.7384190559<br />
17.8017060757</p>
<p><strong>20 record</strong><br />
3.46936798096<br />
3.28264093399<br />
3.36798501015<br />
3.32139897346<br />
3.2939248085<br />
3.30640602112<br />
3.37263894081<br />
3.28885006905<br />
3.40948200226<br />
3.31085991859</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/c0u0lpY4ZuY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100503/entry-id=842/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100503/entry-id=842" />
	<feedburner:origLink>http://www.e2esound.com/20100503/entry-id=842</feedburner:origLink></item>
		<item>
		<title>CodeIgniterの凄いところ</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/afeTmt7PkqM/entry-id=841</link>
		<comments>http://www.e2esound.com/20100427/entry-id=841#comments</comments>
		<pubDate>Tue, 27 Apr 2010 07:00:00 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=841</guid>
		<description>自身のblogを見返してみて、意外なほどにCodeIgniterに関して書いていないことに気付きまして。少しは何か書こうと思います。今日はCodeIgniterの凄いところ、ある意味での特徴です。
1．軽い
驚くほどにフ [...]</description>
			<content:encoded><![CDATA[<p>自身のblogを見返してみて、意外なほどにCodeIgniterに関して書いていないことに気付きまして。少しは何か書こうと思います。今日はCodeIgniterの凄いところ、ある意味での特徴です。</p>
<h3>1．軽い</h3>
<p>驚くほどにファイル容量が軽いです。今私のローカル環境に入れてあるものは1.7MB。(ユーザーマニュアルを除き、オリジナル拡張を少々追加)</p>
<h3>2．速い</h3>
<p>自分ではベンチマークとっていませんが、PHPフレームワークの中で常に最速を誇るという。</p>
<p><span id="more-841"></span></p>
<h3>3．基本的なマニュアルが充実</h3>
<p><a title="CodeIgniterユーザガイド 日本語版 Version 1.7.2" href="http://codeigniter.jp/user_guide_ja/" target="_blank">ユーザーマニュアル</a>がとても充実しています。書籍を購入しなくても使用することが可能。（フレームワーク未経験だと少々厳しいだろうけれど）</p>
<h3>4．PHP4/5で動作し、制約も少ない</h3>
<p>サーバー環境はPHP4/5共に対応しています。PHP4ではCodeIgniterの予約後が増えること、コンストラクタの書き方がPHP4になることが異なります。例えば、クラス名がSampleの場合、function sample(){～で書きます。簡単な話、そのままPHP4です。</p>
<h3>5．設置が容易</h3>
<p>ファイルをインストールし、サーバーにアップロード。そして、config.phpとdatabase.phpを少し書き直す程度で設置が完了します。先日ローカルにcakePHPを入れてみましたが、「他のフレームワークはこんなに面倒なのか…」と思ったほどでした。</p>
<p>こんなところでしょうか？それではあまり書きたくないけれど、、、一応残念な部分を。</p>
<h3>1．GETが使えない</h3>
<p>URLにパラメーターを追加して使用するGETが使えません。設定を変更すれば使用できますが、validationの機能が使用できなくなります。今のところ困ってはいませんが、携帯サイトで複数の値を渡したい場合には少々苦労すると思います。</p>
<h3>2．日本語情報が少ない</h3>
<p>使用している日本人が少ない影響でしょうか？日本語の周辺情報があまりヒットしません。例えばTwitterで検索をかけてもCodeIgniterに関してつぶやいている人は少ない様子です。</p>
<ul>
<li>Twitter:CodeIgniterの<a title="TwitterでのCodeIgniterの検索結果" href="https://twitter.com/#search?q=codeigniter" target="_blank">検索結果</a></li>
<li>Twitter:CakePHPの<a title="Twitterでのcakephpの検索結果" href="https://twitter.com/#search?q=cakephp" target="_blank">検索結果</a></li>
<li>Twitter:Symfonyの<a title="TwitterでのSymfonyの検索結果" href="https://twitter.com/#search?q=symfony" target="_blank">検索結果</a></li>
</ul>
<p>今、日本人、1人しかヒットしなかったぞ。(<a href="http://pneskin.nekoget.com/" target="_blank">NEKOGET</a>さんだった！)</p>
<p>しかし、英語情報もありますし、<a title="CodeIgniter wiki" href="http://codeigniter.com/wiki/" target="_blank">ライブラリやプラグインも公開</a>されています。サンプルコードを読めば問題なく使用できるので、著しい英語アレルギーでなければどうにかなると思います。</p>
<h3>3．Authが困ったちゃん</h3>
<p>管理画面の作成の際に使用したい！ユーザー認証ですが、どうにも設置するのに苦労することが多いです。もっとシンプルに認証できるようになるととってもとってもとってもとっても嬉しい。Twitterでもユーザー同士でどうしたもんかなーと話す事が多いです。（その流れでHampomさんが<a href="http://hampom.wordpress.com/" target="_blank">ezauthをテスト</a>してくれました。）</p>
<p>今のところは、こんな感じです。</p>
<p>MVCのModel-View-Controllerの結びつきが非常に緩いので、いい意味で柔軟、悪い意味でなんでもできてしまうという恐ろしい部分があったりもします。実は、上毛かるたbotの中身はCodeIgniterなんですが、全ての処理をControllerで処理するという暴挙に出ておりました。今はもちろんModelで処理すべきところは処理しています。</p>
<p>最後に、そんなCodeIgniterですが、サンプルのコード群としても非常に重宝しています。時間を見つけては自分が使う機能部分のコードを読んでどのように処理しているのか確認しています。ファイル群が軽量であることからも分かるようにその内容は簡潔です。お勉強にもどうぞ！日本人のユーザーがもっと増えればもっと面白くなると思う。</p>
<h4  style="margin-top:30px;">おまけのリンク集</h4>
<ul>
<li><a title="日本CodeIgniterユーザ会" href="http://codeigniter.jp/" target="_blank">日本CodeIgniterユーザ会</a>(日本語コミュニティ)</li>
<li><a title="CodeIgniterユーザーマニュアル日本語版" href="http://codeigniter.jp/user_guide_ja/" target="_blank">CodeIgniterユーザーマニュアル日本語版</a>(日本語マニュアル)</li>
<li><a title="EllisLab" href="http://ellislab.com/" target="_blank">EllisLab</a>(CodeIgniterを開発している会社)</li>
<li><a title="CodeIgnite wiki" href="http://codeigniter.com/wiki/" target="_blank">CodeIgnite wiki</a>(英語情報。ライブラリやTipsが紹介されています)</li>
<li><a href="http://bitbucket.org/ellislab">ellislab</a> / <a href="http://bitbucket.org/ellislab/codeigniter">CodeIgniter</a>(最新のCodeIgniterはbitbucketで)</li>
<li><a title="Vim用のCodeIgniter辞書" href="http://www.e2esound.com/20091217/entry-id=785" target="_blank">ci.dict</a>(vim用のCodeIgniter辞書ファイル)←自分で作りました。</li>
</ul>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/afeTmt7PkqM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100427/entry-id=841/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100427/entry-id=841" />
	<feedburner:origLink>http://www.e2esound.com/20100427/entry-id=841</feedburner:origLink></item>
		<item>
		<title>wp.vicunaという衝撃。：WordPressテーマ</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/UueVLyVGkVY/entry-id=839</link>
		<comments>http://www.e2esound.com/20100426/entry-id=839#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:00:00 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wp.vicuna]]></category>
		<category><![CDATA[テーマファイル]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=839</guid>
		<description>WordPressには、有償無償を問わず山のようなテーマファイルがあります。
つい先日、WordPressのテーマファイルのカスタマイズ案件としてwp.vicunaを使用しました。事前認識としては「使いやすいんだろうなぁ [...]</description>
			<content:encoded><![CDATA[<p>WordPressには、有償無償を問わず山のようなテーマファイルがあります。</p>
<p>つい先日、WordPressのテーマファイルのカスタマイズ案件として<a href="http://wp.vicuna.jp/" target="_blank">wp.vicuna</a>を使用しました。事前認識としては「使いやすいんだろうなぁ～」程度のゆるふわな評価でしたが、凄かったのです。</p>
<p>使用したwp.vicunaは<a href="http://wp.vicuna.jp/download/apply-vicuna/" target="_blank">ver.2.03。</a>ライセンスはWordPressの場合MITライセンスとのことです。スキンとして、5種類が用意されています。管理画面から横幅についても変更可能という恐ろしさ。</p>
<ul>
<li><a href="http://vicuna.jp/storage/skin_v22/style-vega/preview/individual.html" title="Style-vega">Style-vega</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-mono/preview/individual.html" title="Style-mono">Style-mono</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-galaxy/preview/individual.html" title="Style-galaxy">Style-galaxy</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-flat/preview/individual.html" title="Style-flat">Style-flat</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-future/preview/individual.html" title="Style-future">Style-future</a></li>
</ul>
<p><span id="more-839"></span><br />
さらに！カラムレイアウトを管理画面から変更することが可能です。管理画面のサイドバー下部「Vicuna」より、各種プロパティの設定が可能です。2カラム3カラムはもちろん、それぞれの左右カラムの入れ替えや変則的な構成までサポート。カラムレイアウトに関しては<a href="http://wp.vicuna.jp/customize/change-layout/#extended" target="_blank">こちら</a>に詳細が紹介されています。このリンク先のページでは、「bodyタグのクラス名を変更することでカラムレイアウトを変更する」と書かれていますが、どうやら古い情報のようです。</p>
<p>現在のバージョンでは、管理画面からそれぞれのページに対して、それぞれのページのカラムレイアウトを変更することが可能です。</p>
<p><img src="http://farm5.static.flickr.com/4025/4550076315_f0724c6d0f_o.gif" alt="wp.vicuna-layout.gif" width="273" height="338" /></p>
<p>body.class=”Name”それぞれに対してカラムレイアウトを作成し適用させています。サーバー環境に不満がある方は、直接書くファイルのbodyタグのclass名を変更した方が高速に動作すると思われます。何故かというと、管理画面からカラムレイアウトを設定すると、データベースのうちwp-optionsテーブルに値を格納し、表示の度に呼び出すからです。</p>
<p>カスタマイズ性に関しても申し分ないですが、初心者の方にとっては少々難があるかもしれません。CSSファイルを分割して記述しているため、どこに何が書いてあるのか分からない！と言う事態が考えられます。（firebug使えばいいと思うよ）</p>
<p>サイドバーについては、ウィジェットにも対応しているので、普通に表示したいものについては問題ないと思います。どのテーマファイルを選べばいいのか迷った際には、wp.vicunaはオススメです！</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/UueVLyVGkVY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100426/entry-id=839/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100426/entry-id=839" />
	<feedburner:origLink>http://www.e2esound.com/20100426/entry-id=839</feedburner:origLink></item>
		<item>
		<title>WordCamp Yokohama 2010</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/AOW3cnY56xM/entry-id=837</link>
		<comments>http://www.e2esound.com/20100425/entry-id=837#comments</comments>
		<pubDate>Sun, 25 Apr 2010 09:50:00 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordCamp Yokohama]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/20100425/entry-id=837</guid>
		<description>WordPressのイベント、WordCampが5/29(土)に横浜にて開催されるとのこと！
早速参加登録してみました。できれば懇親会にも参加したいところなのですが、ちょっとスケジュールの調整が必要そう。誰か一緒に行きま [...]</description>
			<content:encoded><![CDATA[<p>WordPressのイベント、WordCampが5/29(土)に横浜にて開催されるとのこと！</p>
<p>早速参加登録してみました。できれば懇親会にも参加したいところなのですが、ちょっとスケジュールの調整が必要そう。誰か一緒に行きませんか？</p>
<p><a href="http://yokohama2010.wordcamp.jp/" target="_blank" title="WordCamp Yokohama2010"><img src="http://yokohama2010.wordcamp.jp/wp-content/themes/yokohama2010/images/468_60_banner.jpg" alt="WordCamp Yokohama 2010" /></a></p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/AOW3cnY56xM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100425/entry-id=837/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100425/entry-id=837" />
	<feedburner:origLink>http://www.e2esound.com/20100425/entry-id=837</feedburner:origLink></item>
		<item>
		<title>WordPressに外部RSSを取得し表示させる：XML_RSS編</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/d56p9FeJuFs/entry-id=836</link>
		<comments>http://www.e2esound.com/20100419/entry-id=836#comments</comments>
		<pubDate>Mon, 19 Apr 2010 13:03:58 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=836</guid>
		<description>かなり前に、WordPressに外部サイトのRSSを取得し表示させようと、こんな記事を書いていました。
e2esound.com:WordPressで外部RSSを取得して表示させる
書いたのは2008年ということで、これ [...]</description>
			<content:encoded><![CDATA[<p>かなり前に、WordPressに外部サイトのRSSを取得し表示させようと、こんな記事を書いていました。</p>
<p>e2esound.com:<a href="http://www.e2esound.com/20080708/entry-id=87" target="_blank">WordPressで外部RSSを取得して表示させる</a></p>
<p>書いたのは2008年ということで、これはまだWordPressをいじり始めて3ヶ月くらいのヘッポコもヘッポコな頃のものでございます。その後、PHPも勉強していることですし、今回は別の方法として、PEARライブラリを使用した方法を紹介します。</p>
<p>PEARライブラリのうち、<a href="http://pear.php.net/manual/ja/package.xml.xml-rss.php" target="_blank">XML_RSS</a>を使用します。lolipopではデフォルトでインストールされていますが、他のサーバーの方はPEARライブラリのインストールと使用方法を確認して下さい。</p>
<p>サクッと作ると<a href="http://www.e2esound.com/sample/php/xml_rss02.php" target="_blank">このように</a>なります。流れているRSSのタイトル＋リンクを表示しています。</p>
<p><span id="more-836"></span></p>
<p>[php]</p>
<p>&lt;?php<br />
//文字コード指定<br />
//header(&#8220;Content-Type: text/html; charset=UTF-8&#8243;);</p>
<p>//対象のRSS<br />
$url = &#8220;http://feeds.feedburner.jp/e2esound/Izak&#8221;;<br />
require_once(&#8216;XML/RSS.php&#8217;);</p>
<p>//インスタンス化<br />
$rss = new XML_RSS($url);<br />
$rss-&gt;parse();</p>
<p>echo &#8220;&lt;h1&gt;外部サイトのRSSを取得し表示する&lt;/h1&gt;&#8221;;</p>
<p>$items = $rss-&gt;getItems();</p>
<p>echo &#8220;&lt;ul&gt;&#8221;;<br />
//$itemsの配列が空ではない場合<br />
if(!empty($items)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach($items as $item){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;&lt;li&gt;&lt;a href=\&#8221;".$item['link'].&#8221;\&#8221;&gt;&#8221;.$item['title'].<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8221;&lt;/a&gt;&lt;/li&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}else{<br />
//$itemsの配列が空の場合<br />
echo &#8220;&lt;li&gt;No Contents&lt;/li&gt;&#8221;;<br />
}</p>
<p>echo &#8220;&lt;/ul&gt;&#8221;;</p>
<p>//End of File.<br />
[/php]</p>
<p>あれ？以前のものよりも分かりやすいような。</p>
<ol>
<li>PEARをrequire_once（）</li>
<li>インスタンス化</li>
<li>$rss-&gt;parse()</li>
<li>$rss-&gt;getItems()で結果を取得</li>
<li>表示させる</li>
</ol>
<p>尚、表示する内容を変更する場合には、$itemsの中身をvar_dump()し表示項目を追加してあげれば問題ありません。例えばdescriptionなら$item[‘description’]など。</p>
<p>以上のコードも、使用頻度が高いならWordPressのfunctions.phpに書いて関数かした方がイイかも。</p>
<p>[追記]<br />
タイトルにWordPressと書きましたが、普通にPHPで動きます。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/d56p9FeJuFs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100419/entry-id=836/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100419/entry-id=836" />
	<feedburner:origLink>http://www.e2esound.com/20100419/entry-id=836</feedburner:origLink></item>
		<item>
		<title>Twitter bot GENERATORサービス：twitter bot GENERATOR</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/gkRrrCJioCc/entry-id=834</link>
		<comments>http://www.e2esound.com/20100417/entry-id=834#comments</comments>
		<pubDate>Fri, 16 Apr 2010 16:00:00 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=834</guid>
		<description>私自身も、ほぼ放置な管理でTwitter bot:上毛かるたbotを作成しています。実は、単にTwitterのAPIを叩いてみようと思ったのが切っ掛けで、サクッと作りました。しかも、CodeIgniterを初めて採用した [...]</description>
			<content:encoded><![CDATA[<p>私自身も、ほぼ放置な管理でTwitter bot:<a href="http://twitter.com/j_karuta" target="_blank">上毛かるたbot</a>を作成しています。実は、単にTwitterのAPIを叩いてみようと思ったのが切っ掛けで、サクッと作りました。しかも、CodeIgniterを初めて採用したものになります。</p>
<p>先ほど、上毛かるたbotに関してblogを書こうと、検索してみたところ。。。こんなものが。。。</p>
<p>上毛かるた_bot:<a title="http://twitter.com/jomo_karuta" href="http://twitter.com/jomo_karuta">http://twitter.com/jomo_karuta</a></p>
<p>なななんと!!!!上毛かるたbotがもう1台できてる!!しかも、私のよりカッコよくつぶやくじゃないか!!（読みも表示）</p>
<p><span id="more-834"></span></p>
<p>作ったの誰だろうか？（ちっ機能的に負けてるなんて、、、）と思いながら検索していたら、どうやら<a href="http://twittbot.net/modules/bot/index.php?page=bot_list&amp;tag=jomo" target="_blank">こんなサービス</a>で作られているらしいことが判明。</p>
<p><a href="http://twittbot.net/" target="_blank">twitter bot GENERATOR</a></p>
<p>何でも、アカウントさえ取得すればTwitter botが作成できるようです。機能的にも@に反応してTweet、定時Tweet等botとしては充実しているようです。</p>
<p>ちょっと、、、悔しい、のでもう少し上毛かるたbotを強化しようと思います。</p>
<p>以前にもお伝えしている気がしますが、Twitterの外部アプリケーションの認証方式がBasic→OAuthへ完全移行することが決定しているとのことで、このままだと謹製上毛かるたbotはTweetできなくなります。いつの間にやらフォロワーも増えているので、このまま停止させてしまうのももったいないと思っています。（botサービスBasic認証じゃないか？）</p>
<p>がんばるべーやー。（上州弁）</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/gkRrrCJioCc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100417/entry-id=834/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100417/entry-id=834" />
	<feedburner:origLink>http://www.e2esound.com/20100417/entry-id=834</feedburner:origLink></item>
		<item>
		<title>githubの活用とWordPress辞書の作り直し</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/vk9ar0xGoCI/entry-id=832</link>
		<comments>http://www.e2esound.com/20100410/entry-id=832#comments</comments>
		<pubDate>Sat, 10 Apr 2010 10:50:50 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[dict]]></category>
		<category><![CDATA[dictionary]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=832</guid>
		<description>アカウントを作成したまま放置していたgithubの活用を開始しました！
URL:http://github.com/e2esoundcom
今のところ、このblogでも紹介しているCodeIgniter等々のファイルを上 [...]</description>
			<content:encoded><![CDATA[<p>アカウントを作成したまま放置していたgithubの活用を開始しました！</p>
<p>URL:<a href="http://github.com/e2esoundcom">http://github.com/e2esoundcom</a></p>
<p>今のところ、このblogでも紹介しているCodeIgniter等々のファイルを上げておきました。以前紹介したMY_helperについても内容を更新しています。</p>
<p>その他には、CodeIgniterやWordPressのVim用辞書ファイルもあります。</p>
<p>WordPressの辞書ファイルについては、現在作り直しを行っています。WordPress 3.0へのバージョンアップや内容の充実を目指しています。例えば、これまでテンプレートタグのみを辞書に登録していましたが、WordPress専用の関数やそれぞれの引数についても入れ込む予定です。</p>
<p>・・・誰か手伝ってくれる人、いないだろうか。ふぅ。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/vk9ar0xGoCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100410/entry-id=832/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100410/entry-id=832" />
	<feedburner:origLink>http://www.e2esound.com/20100410/entry-id=832</feedburner:origLink></item>
		<item>
		<title>二郎系ラーメン、ラーメン大三鷹店に行ってみた(2回目)</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/-Xu1ZIL3svI/entry-id=830</link>
		<comments>http://www.e2esound.com/20100409/entry-id=830#comments</comments>
		<pubDate>Thu, 08 Apr 2010 23:29:45 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[徒然]]></category>
		<category><![CDATA[ラーメン大]]></category>
		<category><![CDATA[二郎]]></category>
		<category><![CDATA[油そば]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=830</guid>
		<description>間が空きました。ちょっと忙しくなるとすぐこれです。
さて、先日も行ってきた二郎系ラーメン、ラーメン大三鷹店に行ってきました。注文したのは、
油そば　野菜増し・にんにく
武蔵境近辺に住む方ならお馴染みの油そばでございます。 [...]</description>
			<content:encoded><![CDATA[<p>間が空きました。ちょっと忙しくなるとすぐこれです。</p>
<p>さて、先日も行ってきた二郎系ラーメン、ラーメン大三鷹店に行ってきました。注文したのは、</p>
<p><span style="font-size: x-large;"><span style="color: #ff0000;">油そば　野菜増し・にんにく</span></span></p>
<p>武蔵境近辺に住む方ならお馴染みの油そばでございます。<br />
<span id="more-830"></span><br />
油そばを簡単に説明すると、本来スープで割るべきタレを麺につけて食べるイメージ。こってりです。油そば＋二郎系はどういう結果になるのだろうと、若干冷や冷やしながらも野菜増しで注文してみました。</p>
<p>その結果が、これだ！<br />
<img src="http://farm3.static.flickr.com/2482/4504081694_16b885cc9f.jpg" alt="SN3J0059.jpg" width="500" height="375" /></p>
<p>※注　先日のラーメンよりも量が少なく見えるのは、油そばにはスープが無いからだよ。</p>
<p>ピンボケしてしまいました。ちょうどお昼時に入って為、席の後ろには沢山並んでいる人がいたりで、急いだ結果。</p>
<p>味の方は、油そばとしては少々物足りなさがあります。個人的には油そば＝こってり！なんですが、卵が入っている為マイルドになります。麺については、いつもと同じものを使用していて、野菜を盛る前に麺と油を混ぜてくれるので食べやすいです。（混ぜなかったら野菜増しとか食べるに食べられないと思う）</p>
<p>また、にんにくを入れてみましたが、食べ方が上手くないのか、あまりにんにくを感じることもなく。これはもしかすると卵効果かもしれません。</p>
<p>油そばとしては非常に好みが分かれるところです。がっつり食べたい人には向いていますが（笑</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/-Xu1ZIL3svI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100409/entry-id=830/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100409/entry-id=830" />
	<feedburner:origLink>http://www.e2esound.com/20100409/entry-id=830</feedburner:origLink></item>
		<item>
		<title>WordPressのページ機能を使い倒す為の3つのコツ</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/koksWdahlKw/entry-id=822</link>
		<comments>http://www.e2esound.com/20100330/entry-id=822#comments</comments>
		<pubDate>Tue, 30 Mar 2010 11:17:49 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[ページ]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=822</guid>
		<description>WordPressのページ機能を使い倒して、blogを超えてマルチなCMSとして活用する為の3つのコツ（2つのスニペットと1つの関数）を紹介してみようと思います。
1.ページテンプレートをWordPressに認識させる
 [...]</description>
			<content:encoded><![CDATA[<p>WordPressのページ機能を使い倒して、blogを超えてマルチなCMSとして活用する為の3つのコツ（2つのスニペットと1つの関数）を紹介してみようと思います。</p>
<h3>1.ページテンプレートをWordPressに認識させる</h3>
<p>archive.phpやcategory.phpは必ず作るべきファイルです。さらに、WordPressのページ機能を使う為にはページテンプレートを書く必要があります。</p>
<p>ページテンプレートをWordPressの管理画面で認識させ、使用するにはページテンプレート冒頭に以下のように書きます。テンプレートがTemplateNameと認識されます。</p>
<p>[php]<br />
&lt;?php<br />
/*<br />
Template Name: TemplateName<br />
*/<br />
?&gt;<br />
[/php]</p>
<p><span id="more-822"></span></p>
<h3>2.ページテンプレートで&lt;!&#8211;more&#8211;&gt;タグを機能させる</h3>
<p>実は、index.php以外のページでは、投稿を表示させて&lt;!&#8211;more&#8211;&gt;を使っても記事の折り畳みができません。折り畳みさせるにはテンプレート冒頭に以下を記述することでクリアできます。</p>
<p>[php]<br />
&lt;?php<br />
global $more;<br />
$more = false;<br />
?&gt;<br />
[/php]</p>
<h3>3.query_posts関数でアレコレ表示させる</h3>
<p><a title="テンプレートタグ/query posts - WordPress Codex 日本語版" href="http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts">テンプレートタグ/query posts &#8211; WordPress Codex 日本語版</a></p>
<p>見て貰うのが一番手っとり早いですが、この関数と条件分岐を使えば、以下のようなことができます。</p>
<ul>
<li>特定カテゴリーの投稿だけ表示</li>
<li>特定の投稿者の記事だけ表示</li>
<li>最新20件のみ表示</li>
<li>上記の組み亜合わせで表示</li>
</ul>
<p>企業サイトであれば、informationページを作成して、最新のinformationカテゴリの投稿のタイトルとページリンクを表示→リンクをクリックするとそれぞれのsingleページに飛ばす、ということができます。</p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/koksWdahlKw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100330/entry-id=822/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100330/entry-id=822" />
	<feedburner:origLink>http://www.e2esound.com/20100330/entry-id=822</feedburner:origLink></item>
		<item>
		<title>VimのコマンドラインでRubyを実行</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/E_ox4I6nY8U/entry-id=820</link>
		<comments>http://www.e2esound.com/20100330/entry-id=820#comments</comments>
		<pubDate>Mon, 29 Mar 2010 16:49:12 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[PHPExe]]></category>
		<category><![CDATA[RubyExe]]></category>
		<category><![CDATA[RubyLint]]></category>
		<category><![CDATA[vim.PHPLint]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=820</guid>
		<description>引き続きRubyの学習を進めています。もちろんVimで（だいたいの意味でGVim）。今回はVimでの実行環境を一部紹介します。
PHPでも同様なのですが、以下の2種類の関数を定義して使用しています。

プログラムを書いて [...]</description>
			<content:encoded><![CDATA[<p>引き続きRubyの学習を進めています。もちろんVimで（だいたいの意味でGVim）。今回はVimでの実行環境を一部紹介します。</p>
<p>PHPでも同様なのですが、以下の2種類の関数を定義して使用しています。</p>
<ul>
<li>プログラムを書いて構文エラーが無いのか確認したい</li>
<li>プログラムの実行結果をVimのコマンドラインに表示させたい</li>
</ul>
<p>元ネタは、<a title="vimでPHPを編集中、1秒で文法チェックする方法 - /halt/Snapshot" href="http://project-p.jp/halt/anubis/blog_show/919">vimでPHPを編集中、1秒で文法チェックする方法 &#8211; /halt/Snapshot</a>です。PHP -lの構文チェックの実行結果をVimのコマンドラインで実行するものです。これを少々書き換えて上記2つを実現してみます。まずは元のコードを。<span id="more-820"></span></p>
<blockquote><p>function PHPLint()<br />
let result = system( &amp;ft . &#8216; -l &#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction autocmd FileType php noremap <span style="color: #008000;">&lt;c-l&gt;</span> :call PHPLint()</p></blockquote>
<p>リンク先では、<span style="color: #008000;">,+l</span>にショートカットを当てていましたが、押し辛い等々の理由でとりあえず<span style="color: #008000;">&lt;ctrl&gt;+l</span>を設定しています。このコードを少し書き換える<span style="color: #ff0000;">（赤字）</span>と、コマンドラインでPHPの実行結果が得られます。PHPをコマンドラインで実行する場合のオプションを変更しています。この関数は現在、<span style="color: #008000;">&lt;space&gt;+&#8217;</span>にショートカットを当てています。</p>
<blockquote><p>function PHPExe()<br />
let result = system( &amp;ft . <span style="color: #ff0000;">&#8216; -r </span>&#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction<br />
endfunction autocmd FileType php noremap <span style="color: #008000;">&lt;space&gt;,</span> :call PHPExe()</p></blockquote>
<p>Rubyについても同様の方法をとり、必要な部分を書き換えるとそれぞれ以下のようになります。</p>
<blockquote><p>function RubyLint()<br />
let result = system( &amp;ft . &#8216; -c &#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p></blockquote>
<blockquote><p>function RubyExe()<br />
let result = system( &amp;ft .&#8217; &#8216;.bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p></blockquote>
<p>弱点は、対象のファイルを一度保存しなければいけない点でしょうか？より高度に<a href="http://vim-users.jp/2009/05/hack7/" target="_blank">QuickRun</a>がイイらしいです。（良く分かっていないけれど自分の環境では動かないらしい。。。）</p>
<p>最終的には、こんな感じに書いています。構文チェックと実行を同一ショートカットキー、ファイルタイプ別で切り替えです。</p>
<blockquote><p>function PHPLint()<br />
let result = system( &amp;ft . &#8216; -l &#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p>
<p>function PHPExe()<br />
let result = system( &amp;ft . &#8216; -r &#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p>
<p>ｆunction RubyLint()<br />
let result = system( &amp;ft . &#8216; -c &#8216; . bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p>
<p>function RubyExe()<br />
let result = system( &amp;ft .&#8217; &#8216;.bufname(&#8220;&#8221;))<br />
echo result<br />
endfunction</p>
<p>autocmd FileType php noremap &lt;C-l&gt; :call PHPLint()&lt;CR&gt;<br />
autocmd FileType ruby noremap &lt;C-l&gt; :call RubyLint()&lt;CR&gt;<br />
autocmd FileType php noremap &lt;space&gt;&#8217; :call PHPExe()&lt;CR&gt;<br />
autocmd FileType ruby noremap &lt;space&gt;&#8217; :call RubyExe()&lt;CR&gt;</p></blockquote>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/E_ox4I6nY8U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100330/entry-id=820/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100330/entry-id=820" />
	<feedburner:origLink>http://www.e2esound.com/20100330/entry-id=820</feedburner:origLink></item>
		<item>
		<title>WordPressプラグインの解析：Hello Dolly</title>
		<link>http://feedproxy.google.com/~r/e2esound/Izak/~3/Ha0BBtGVXvo/entry-id=819</link>
		<comments>http://www.e2esound.com/20100326/entry-id=819#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:52:17 +0000</pubDate>
		<dc:creator>terra</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Hello Dolly]]></category>
		<category><![CDATA[WordPressプラグイン]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=819</guid>
		<description>WordPressを使用したWeb制作を生業としていると、開発を進めていく上でプラグインの開発やカスタマイズをする必要が出てきます。今日から、（主に気が向いたときに）そんなプラグインの開発・カスタマイズに役立つ情報をまと [...]</description>
			<content:encoded><![CDATA[<p>WordPressを使用したWeb制作を生業としていると、開発を進めていく上でプラグインの開発やカスタマイズをする必要が出てきます。今日から、（主に気が向いたときに）そんなプラグインの開発・カスタマイズに役立つ情報をまとめてみたいと思います。</p>
<p>今日はまず、WordPress日本語版2.92.にバンドルされているHello Dollyの構造と機能を分析しながら、WordPressプラグインの作り方を考えてみたいと思います。</p>
<h3>Ⅰ.Hello Dollyって何だろ？</h3>
<p>これについては、WordPress Codexに詳しく書いてありました。</p>
<blockquote><dt><strong>Hello Dolly</strong>（ハロー・ドリー）<br />
これはただのプラグインではありません。ルイ・アームストロングによって歌われた最も有名な二つの単語に要約される、同一世代のすべての人々の希望と情熱を象徴するものです。これは世界で最初の WordPress 公式プラグインです。このプラグインが有効にされると、プラグイン管理画面以外の管理パネルの右上に「ハロー・ドリー」からの歌詞がランダムに表示されます。 </dt>
<dt style="text-align: right;"><a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3" target="_blank">プラグイン &#8211; WordPress Codex 日本語版:パッケージに含まれているデフォルトプラグイン</a></dt>
</blockquote>
<p>よく分からないYouTubeに行ってみると、「あぁ、これか!!」と思われる楽曲に出会えると思います。</p>
<p><span id="more-819"></span></p>
<h3>Ⅱ．解析に必要なもの</h3>
<p>ここから先を読み解くには以下のものを使用します。</p>
<ul>
<li>Hello Dollyプラグイン…WordPress日本語版をDLして取り出す。(hello.php)</li>
<li>WordPress Codex日本語版：<a href="http://wpdocs.sourceforge.jp/">http://wpdocs.sourceforge.jp/</a></li>
<li>シンタックス・ハイライトできるテキスト・エディタ又はIDE（私は<a href="http://www.kaoriya.net/#VIM72" target="_blank">KaoriYa版Vim</a>）</li>
</ul>
<h3>Ⅲ．Hello Dollyの構造</h3>
<p>早速、ファイルを開いてみましょう。全体で84行と短いので、その構造はシンプルです。順にその内容を確認してみます。</p>
<ol>
<li>コメント</li>
<li>2つのadd_action</li>
<li>3つのユーザー定義関数</li>
</ol>
<h4>1.コメント</h4>
<p>プラグインの中に記述されるコメントは、もちろん開発用に記録されたものもありますが、WordPress管理画面でプラグインの情報として認識されるものです。Hello Dollyでは以下のようになっています。</p>
<p>[php]<br />
/*<br />
Plugin Name: Hello Dolly<br />
Plugin URI: <a href="http://wordpress.org/#">http://wordpress.org/#<br />
</a>Description: これはただのプラグインではありません。Louis Armstrong によって歌われた最も有名な二つの単語、Hello, Dolly に要約された同一世代のすべての人々の希望と情熱を象徴するものです。このプラグインが有効にされると、すべての管理画面の右上に &lt;cite&gt;Hello, Dolly&lt;/cite&gt; からの歌詞がランダムに表示されます。<br />
Author: Matt Mullenweg<br />
Version: 1.5.1<br />
Author URI: <a href="http://ma.tt/">http://ma.tt/</a><br />
*/<br />
[/php]</p>
<p>以上の情報は、管理画面でのプラグイン名称や概要、バージョン情報等として扱われます。この辺りの詳細については、WordPress Codexの<a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90" target="_blank">プラグインの作成</a>にまとめられています。</p>
<h4>2．2つのadd_action</h4>
<p>プラグインの動作にはWordPressに内包されるプラグインAPIの<strong>フック</strong>への関連付けが必要となります。例えば、index.phpのheaderが呼び出されるタイミングで実行、ログイン。フォームが読み込まれた終盤で実行等です。</p>
<p>フックには2種類あり、1つがHello Dollyの中でも使用される<a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7" target="_blank">アクションフック</a>、もう1つが<a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7" target="_blank">フィルターフック</a>です。それぞれの詳細については、リンク先をご参照ください。</p>
<p>今回使用されているフックは、<strong>admin_footer</strong>と<strong>admin_head</strong>です。</p>
<blockquote><dt><strong>admin_footer<br />
</strong>管理画面各ページの&lt;body&gt;要素の終盤で実行する。 </dt>
<dt><strong>admin_head<br />
</strong>管理画面各ページの&lt;head&gt;要素内で実行する。</dt>
<dt style="text-align: right;"> <a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7" target="_blank">プラグイン API/アクションフック一覧 &#8211; WordPress Codex 日本語版</a></dt>
<dt> </dt>
</blockquote>
<p>Hello Dollyでは、admin_footerはHello Dollyの菓子を表示する為、admin_headはCSSを読み込む為に使用されています。</p>
<h4>3.3つのユーザー定義関数</h4>
<p>関数それぞれを確認してみます。</p>
<ul>
<li>hello_dolly_get_lyric()</li>
<li>hello_dolly()</li>
<li>dolly_css()</li>
</ul>
<p>まずは、hello_dolly_get_lyric関数から。関数名の通り、歌詞をランダムに取り出す為の関数です。コメントのうち、「//e」と書かれているものは私が加筆した部分です。</p>
<p>[php]<br />
function hello_dolly_get_lyric() {<br />
/** These are the lyrics to Hello Dolly */<br />
//e 歌詞を変数に格納<br />
$lyrics = &#8220;Hello, Dolly<br />
Well, hello, Dolly<br />
It&#8217;s so nice to have you back where you belong<br />
You&#8217;re lookin&#8217; swell, Dolly<br />
I can tell, Dolly<br />
You&#8217;re still glowin&#8217;, you&#8217;re still crowin&#8217;<br />
You&#8217;re still goin&#8217; strong<br />
//e &#8212;&#8212;&#8212;-中略&#8212;&#8212;&#8212;-<br />
Dolly&#8217;ll never go away<br />
Dolly&#8217;ll never go away<br />
Dolly&#8217;ll never go away again&#8221;;<br />
// Here we split it into lines<br />
//e 文字列を改行までで区切り、配列に格納<br />
$lyrics = explode(&#8220;\n&#8221;, $lyrics);<br />
// And then randomly choose a line<br />
//e 配列の添え字によってランダムに出力<br />
return wptexturize( $lyrics[ mt_rand(0, count($lyrics) - 1) ] );<br />
}<br />
[/php]</p>
<p>難しい処理はありませんが、注意すべき点として<a href="http://codex.wordpress.org/Function_Reference/wptexturize" target="_blank">wptexturize関数</a>が使用されています。この関数はWordPress標準の文字列出力を修正する為の関数です。ランダムに得た文字列をWordPressのルールに則って整形して返しています。</p>
<p>次に、hello_dolly関数です。hello_dolly_get_lyric関数で得られた文字列をpタグで囲って表示させます。</p>
<p>[php]<br />
// This just echoes the chosen line, we&#8217;ll position it later<br />
function hello_dolly() {<br />
$chosen = hello_dolly_get_lyric();<br />
echo &#8220;&lt;p id=&#8217;dolly&#8217;&gt;$chosen&lt;/p&gt;&#8221;;<br />
}<br />
[/php]</p>
<p>この関数は、アクションフックのadmin_footerと関連付けられている為、<strong>管理画面の&lt;/body&gt;タグ終盤で実行</strong>されます。</p>
<p>[php]<br />
// Now we set that function up to execute when the admin_footer action is called<br />
add_action(&#8216;admin_footer&#8217;, &#8216;hello_dolly&#8217;);<br />
[/php]</p>
<p>最後に、dolly_css関数です。管理画面のhead要素の中にCSSを記述します。コメントのうち、「//e」と書かれているものは私が加筆した部分です。</p>
<p>[php]<br />
// We need some CSS to position the paragraph<br />
function dolly_css() {<br />
// This makes sure that the posinioning is also good for right-to-left languages<br />
//e $xは文字列の表示方向によってleftまたはrightになる<br />
$x = ( &#8216;rtl&#8217; == get_bloginfo( &#8216;text_direction&#8217; ) ) ? &#8216;left&#8217; : &#8216;right&#8217;;<br />
//e head要素内に記述するCSSの内容<br />
echo &#8221;<br />
&lt;style type=&#8217;text/css&#8217;&gt;<br />
#dolly {<br />
position: absolute;<br />
top: 4.5em;<br />
margin: 0;<br />
padding: 0;<br />
$x: 215px;<br />
font-size: 11px;<br />
}<br />
&lt;/style&gt;<br />
&#8220;;<br />
}<br />
[/php]</p>
<p><strong>get_bloginf(‘text_direction’)</strong>は、文字列の表示方向を返します。日本語環境の場合にはもちろん<strong>rtl</strong>(R to L)です。言語環境に於いて、表示位置を切り替える配慮がされています。</p>
<p>この関数は、アクションフックのadmin_headと関連付けられている為、<strong>管理画面のhead要素内で実行</strong>されます。つまり、head要素にCSSを追記する形になります。</p>
<p>以上のように、2つの関数がフックによって適時実行されることで管理画面にHello Dollyの歌詞を表示しています。ポイントは、フックです。</p>
<h3>Ⅳ.最後に</h3>
<p>プラグイン開発の方法として、関数の定義とフックの関連付けができれば開発が可能！ということがわかります。</p>
<p>Hello Dollyはとてもシンプルなプラグインです。より複雑なものだと、管理画面にプラグイン専用のページを追加したり、データベースにテーブルを作成したり、JavaScriptを絡めたりと限りなくあります。</p>
<p>もちろん、自分で○○をしよう！と思った場合には、車輪の再開発を防止する為にも、求めている機能が実装されたプラグインが無いのか調べる方がbetterです。しかし、該当するプラグインが無い時、機能が惜しいプラグインがある時には、開発やカスタマイズが必要になります。フックとPHPについて理解できれば、大抵の機能は実装できそうです。</p>
<h3>Ⅴ.次回</h3>
<ul>
<li>A案：何かプラグインを解析してみる</li>
<li>B案：何か思いついたらプラグインを作り始めてみる</li>
</ul>
<p>おまけ<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="265" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/kmfeKUNDDYs&amp;hl=ja_JP&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="320" height="265" src="http://www.youtube.com/v/kmfeKUNDDYs&amp;hl=ja_JP&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/e2esound/Izak/~4/Ha0BBtGVXvo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.e2esound.com/20100326/entry-id=819/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.e2esound.com/20100326/entry-id=819" />
	<feedburner:origLink>http://www.e2esound.com/20100326/entry-id=819</feedburner:origLink></item>
	</channel>
</rss>

