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

<channel>
	<title>ueblog</title>
	<atom:link href="http://ueblog.natural-wave.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ueblog.natural-wave.com</link>
	<description>Web関連のネタを中心に役立つ情報を配信しています。</description>
	<lastBuildDate>Wed, 11 Jan 2012 00:51:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/feed/" />
		<item>
		<title>AWSのS3でコンテンツにIP制限をかける方法</title>
		<link>http://ueblog.natural-wave.com/2012/01/11/how-to-control-ip-range/</link>
		<comments>http://ueblog.natural-wave.com/2012/01/11/how-to-control-ip-range/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 00:51:56 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[サーバ]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=796</guid>
		<description><![CDATA[Amazon Simple Storage Service(S3)に置いているコンテンツにIP制限をかける方法。 S3のBucket(バケット)単位やファイル単位で、Permissionsの「bucket policy」という機能を利用すれば簡単にコントロールが可能だ。 S3のBucketの「Properties」→「Permissions」→「Add bucket policy」を選択すると、テキストエリアだけのWindowが立ち上がるので、]]></description>
			<content:encoded><![CDATA[<p>Amazon Simple Storage Service(S3)に置いているコンテンツにIP制限をかける方法。</p>
<p>S3のBucket(バケット)単位やファイル単位で、Permissionsの「bucket policy」という機能を利用すれば簡単にコントロールが可能だ。</p>
<p>S3のBucketの「Properties」→「Permissions」→「Add bucket policy」を選択すると、テキストエリアだけのWindowが立ち上がるので、そこにルールを記述したJSONを貼りつければよい。</p>
<p>詳しくみていくと、例えば「192.168.1.13」からのIPのみ許可したい場合は下記のようなJSONとなる。</p>
<div class="igBar"><span id="ljavascript-3"><a href="#" onclick="javascript:showPlainTxt('javascript-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-3">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Version"</span>: <span style="color: #3366CC;">"2008-10-17"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Id"</span>: <span style="color: #3366CC;">"Policy11223344"</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"Statement"</span>: <span style="color: #66cc66;">&#91;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Sid"</span>: <span style="color: #3366CC;">"Stmt11223344"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Effect"</span>: <span style="color: #3366CC;">"Deny"</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Principal"</span>: <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"AWS"</span>: <span style="color: #3366CC;">"*"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Action"</span>: <span style="color: #3366CC;">"s3:*"</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Resource"</span>: <span style="color: #3366CC;">"arn:aws:s3:::&lt;bucket-name&gt;/*"</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"Condition"</span>: <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"NotIpAddress"</span>: <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"aws:SourceIp"</span>: <span style="color: #3366CC;">"192.168.1.13/32"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>「bucket-name」の部分は制限を掛けたいBucketの名前に置き換える。その後に続く「/*」の部分を指定したファイルを指定できる。</p>
<p>また、複数IPを指定したい場合は、"NotIpAddress"の要素を配列にしてあげればよい。</p>
<div class="igBar"><span id="ljavascript-4"><a href="#" onclick="javascript:showPlainTxt('javascript-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JAVASCRIPT:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #3366CC;">"Condition"</span>: <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #3366CC;">"NotIpAddress"</span>: <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #3366CC;">"aws:SourceIp"</span>:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">"192.168.1.13/32"</span>,<span style="color: #3366CC;">"192.168.1.14/32"</span><span style="color: #66cc66;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>これらを応用すれば、特定のIPを制限したりなどの指定も可能でしょう。</p>
<p>下記のPolicy GeneratorでWeb上でJSONファイルを作成することも可能。</p>
<p><a title="AWS Policy Generator" href="http://awspolicygen.s3.amazonaws.com/policygen.html" target="_blank">AWS Policy Generator</a></p>
<p>IP制限以外にも、UA,Referer判定などいろんなことができそう。</p>
<p><a title="Using Bucket Policies" href="http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingBucketPolicies.html" target="_blank">Using Bucket Policies</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2012/01/11/how-to-control-ip-range/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2012/01/11/how-to-control-ip-range/" />
	</item>
		<item>
		<title>LinkStationシリーズ（Buffalo社NAS）がMAC OS X LIONのTime Machineに対応</title>
		<link>http://ueblog.natural-wave.com/2011/07/30/buffalo-nas-macos-x-lion-time-machine/</link>
		<comments>http://ueblog.natural-wave.com/2011/07/30/buffalo-nas-macos-x-lion-time-machine/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 06:45:14 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=787</guid>
		<description><![CDATA[&#160; MAC OS X LIONにアップデートしてから、LinkStationシリーズでのTime Machineに対応していなくて困っていたのですが、ファームウェアの更新で対応されたようです。 &#160; ドライバーダウンロード LS-XHLシリーズ &#124; BUFFALO バッファロー  LS-XHLシリーズはだいたい2年前の製品なんですが、こ]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/07/LS-XHLシリーズ.jpeg" title="LS-XHLシリーズ" width="165" height="165" class="size-full wp-image-788 alignleft" />MAC OS X LIONにアップデートしてから、LinkStationシリーズでのTime Machineに対応していなくて困っていたのですが、ファームウェアの更新で対応されたようです。</p>
<p>&nbsp;</p>
<p><a href="http://buffalo.jp/download/driver/hd/ls-xhl.html" target="_blank">ドライバーダウンロード LS-XHLシリーズ | BUFFALO バッファロー </a></p>
<p>LS-XHLシリーズはだいたい2年前の製品なんですが、こうやって対応されるのはうれしいですね。</p>
<p><a href="http://buffalo.jp/products/catalog/storage/hd_lan.html" target="_blank">BuffaloのNAS</a>はこれまでにも、iPhone,iPadアプリからの閲覧に対応したり、Eye-fiカードに対応したり、iPhoneのようにアップデートしてくれて日を追うごとに良くなる感じがいいですね。Buffaloナイスです。</p>
<p>テレビなんかも見習って欲しいなあ。</p>
<p>最近はネットに繋がっているテレビも多いので、テレビの機能がどんどんアップデートされていけば、ユーザの満足度が変わる気がする。そこまでいらんか・・・</p>
<p><a href="http://www.amazon.co.jp/BUFFALO-RAID%E5%AF%BE%E5%BF%9C-%E9%AB%98%E9%80%9F%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%AF%BE%E5%BF%9CHDD-LS-WV4-0TL-R1/dp/B0043GN84M%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3Dbonnarooooo-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0043GN84M" target="_blank">BUFFALO 72MB/s RAID対応 高速ネットワーク対応HDD (NAS) 4.0TB LS-WV4.0TL/R1</a><br />
<a href="http://www.amazon.co.jp/BUFFALO-RAID%E5%AF%BE%E5%BF%9C-%E9%AB%98%E9%80%9F%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%AF%BE%E5%BF%9CHDD-LS-WV4-0TL-R1/dp/B0043GN84M%3FSubscriptionId%3D15SMZCTB9V8NGR2TW082%26tag%3Dbonnarooooo-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0043GN84M" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41g4CV6We6L._SL160_.jpg" border="0" alt="B0043GN84M" /></a><img src="http://www.assoc-amazon.jp/e/ir?t=bonnarooooo-22&amp;l=ur2&amp;o=9" alt="" width="1" height="1" style="border: none;" /></p>
<p>最近は4TBまであって3万円ほどか。安い！</p>
<p>ストレージについて、PC（SSD）＋　NAS　＋　クラウドサービスが最強だと思うな。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2011/07/30/buffalo-nas-macos-x-lion-time-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2011/07/30/buffalo-nas-macos-x-lion-time-machine/" />
	</item>
		<item>
		<title>「L5 Remote」iPhone、iPod Touchをリモコンがわりにする</title>
		<link>http://ueblog.natural-wave.com/2011/02/26/l5-remote/</link>
		<comments>http://ueblog.natural-wave.com/2011/02/26/l5-remote/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 04:51:15 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=769</guid>
		<description><![CDATA[iPhone、iPod Touchにリモコンがわりにする、「L5 Remote」が激しく便利なのでご紹介。 テレビ、DVD、アンプ、エアコン、空気清浄機など、最近の電子機器はリモコンがついていて溢れかえってますが、この「L5 Remote」の送受信機をiPhoneにさし、専用のアプリで、iPhoneに]]></description>
			<content:encoded><![CDATA[<p><a href="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/写真.jpg" rel="lightbox[769]"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/写真-300x300.jpg" title="写真" width="300" height="300" class="alignright size-medium wp-image-771" /></a>iPhone、iPod Touchにリモコンがわりにする、「<a href="http://www.l5remote.com/" target="_blank">L5 Remote</a>」が激しく便利なのでご紹介。</p>
<p>テレビ、DVD、アンプ、エアコン、空気清浄機など、最近の電子機器はリモコンがついていて溢れかえってますが、この「<a href="http://www.l5remote.com/" target="_blank">L5 Remote</a>」の送受信機をiPhoneにさし、専用のアプリで、iPhoneにリモコンの内容を学習させることができ、ボタンを自由自在に配置して利用することが出来るシロモノです。</p>
<p><a href="http://pt.afl.rakuten.co.jp/c/04638a64.75cc9752/?url=http%3a%2f%2fsearch.rakuten.co.jp%2fsearch%2fmall%2fl5%2bremote%2f-%2f&amp;scid=af_ich_link_urltxt_pc" target="_blank">「L5 Remote」楽天へ</a></p>
<p><a href="http://www.amazon.co.jp/gp/product/B004JMC6UW?ie=UTF8&amp;tag=bonnarooooo-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B004JMC6UW" target="_blank">L5 Remote （L5　リモート）iphone ipod 赤外線リモコン<img src="http://www.assoc-amazon.jp/e/ir?t=bonnarooooo-22&amp;l=as2&amp;o=9&amp;a=B004JMC6UW" border="0" width="1" height="1" /> Amazonへ</a></p>
<h3>利用方法</h3>
<p>まず、L5 RemoteをiPhone、iPod Touchに接続すると、専用アプリをインストールするように誘導されるのでまずインストールします。</p>
<p>ちなみに第一世代のiPod Touchでも正常に動作します。</p>
<h3>リモコンボタンのデザインと学習</h3>
<p>iPhoneにリモコン内容を学習させます。</p>
<p><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/IMG_56451.jpg" title="IMG_5645" width="600" height="450" class="alignnone size-full wp-image-779" /></p>
<p>こんなにあるリモコンもiPhoneひとつにまとまるのは嬉しいかぎり。</p>
<p><a href="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/IMG_5646.jpg" rel="lightbox[769]"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/IMG_5646.jpg" title="IMG_5646" width="600" height="450" class="alignnone size-full wp-image-780" /></a></p>
<p>こんな感じで赤外線を向けて、ボタンひとつひとつに割り当てていきます。この作業がなかなか面倒くさいですが、最初だけなので。。。</p>
<p><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/写真-200x300.png" title="写真" width="200" height="300" class="alignnone size-medium wp-image-781" /></p>
<p>デザインは上記のブラックベースと、AppleTVのリモコン風なシルバーの2種類選べて、ボタンの色や文字、アイコンの変更も簡単にできます。なかなかいい感じ。</p>
<p><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/写真-1-200x300.png" title="写真 (1)" width="200" height="300" class="alignnone size-medium wp-image-782" /></p>
<p>リモコンのプリセットは何種類か登録できるようです。</p>
<h3>便利な機能</h3>
<p>この中でも特に便利だと感じたのが、マクロ機能。</p>
<p>テレビをつけて、外部入力にしてアンプの電源、DVDの電源をつけて再生みたいな面倒くさい操作をひとつのボタンですることができます。またボタンを押す間隔も設定できるので、電源をつけたあとちょっと待ってから外部入力を押すみたいな設定も可能です。</p>
<p>あと、もう一つ便利な機能がクラウドによるバックアップ機能。</p>
<p>IDを登録すると、自分の設定をサーバへバックアップできるので、複数のiPhoneで同じ設定を使うことも容易にできます。また、他の人が作成した設定を自分のリモコンへ取り込むことも可能。じつはApple TVは赤外線学習の反応してくれなかったのですが、クラウドからデータを取ってくることによって実現できました。</p>
<p>この辺りは、普通に売っている学習リモコンでは出来ない技かなと思います。</p>
<p>価格は現在のところ最安で6000円以上でちょっと高いなという印象ですが、リモコンがたくさんあったり、マクロが使いたいとか、古いiPhone,iPod Touchでも動くので、余っているものを有効活用したいという方にはとても良い商品だと思いました。</p>
<p><a href="http://pt.afl.rakuten.co.jp/c/04638a64.75cc9752/?url=http%3a%2f%2fsearch.rakuten.co.jp%2fsearch%2fmall%2fl5%2bremote%2f-%2f&amp;scid=af_ich_link_urltxt_pc" target="_blank">「L5 Remote」楽天へ</a></p>
<p><a href="http://www.amazon.co.jp/gp/product/B004JMC6UW?ie=UTF8&amp;tag=bonnarooooo-22&amp;linkCode=as2&amp;camp=247&amp;creative=7399&amp;creativeASIN=B004JMC6UW" target="_blank">L5 Remote （L5　リモート）iphone ipod 赤外線リモコン<img src="http://www.assoc-amazon.jp/e/ir?t=bonnarooooo-22&amp;l=as2&amp;o=9&amp;a=B004JMC6UW" border="0" width="1" height="1" style="border: none !important; margin: 0px !important;" /> Amazonへ</a></p>
<p>※参考記事</p>
<p><a href="http://ipodtouchlab.com/2011/02/l5remote-iphone.html" target="_blank">【レビュー】iPhone・iPod touchをカスタマイズ可能な学習リモコンにする『L5 Remote』</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2011/02/26/l5-remote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2011/02/26/l5-remote/" />
	</item>
		<item>
		<title>PHPの軽量フレームワーク「Codeigniter」導入</title>
		<link>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/</link>
		<comments>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 15:04:10 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=760</guid>
		<description><![CDATA[久々の更新。 Codeigniterという、PHP製のフレームワークがとてもいい感じだったのでご紹介。 軽量、そして学習コストの低さ 日本のCodeigniterユーザ会のページにもありますが、導入がとても簡単、シンプルな構成と規約で覚えておくことがかなり少]]></description>
			<content:encoded><![CDATA[<p><a href="http://codeigniter.com/"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/picture-2.png" title="picture-2" width="222" height="77" class="size-full wp-image-762 alignright" /></a>久々の更新。</p>
<p><a href="http://codeigniter.com/" target="_blank">Codeigniter</a>という、PHP製のフレームワークがとてもいい感じだったのでご紹介。</p>
<h3>軽量、そして学習コストの低さ</h3>
<p><a href="http://codeigniter.jp/" target="_blank">日本のCodeigniterユーザ会のページ</a>にもありますが、導入がとても簡単、シンプルな構成と規約で覚えておくことがかなり少なく、最近のRuby on Rails似のフレームワークのようなフルスタックな機能は切り捨てている分、動作がかなり高速というのが特徴のようです。またPHP4でも動作します。（つい先日リリースされた、Codeigniter2よりPHP5以上を必要とする。）</p>
<h3>インストール</h3>
<p>インストールは本当にとても簡単。</p>
<p><a href="http://codeigniter.com/downloads/" target="_blank">http://codeigniter.com/downloads/</a></p>
<p>上記のダウンロードサイトより、ダウンロードしZIPファイルを解凍、公開ディレクトリ（DocumentRoot）以下に配置するだけです。下記のような構成になります。</p>
<blockquote><p>www/index.php        ←    すべてこのindex.php経由で呼ばれる<br />
www/application/    ←　Controller,View,Modelなど開発者が触るところ<br />
www/system/　　　←　フレームワーク本体（触らない）</p></blockquote>
<p>PEARなどで必要とするライブラリもなく、このアーカイブ内だけで動作できるので、制限の多いレンタルサーバにも導入しやすいと思います。</p>
<h3>Getting Started!</h3>
<p>早速、コーディングしたいところですが、簡単とはいえ、いくつかのルールは覚えておく必要があります。</p>
<p><a href="http://codeigniter.com/user_guide/" target="_blank">Codeigniter User Guide</a></p>
<p><a href="http://codeigniter.jp/user_guide_ja/" target="_blank">CodeIgniter ユーザガイド 日本語版</a></p>
<p>上記のユーザガイドのチュートリアルを簡単に眺めるだけですぐに理解できると思います。日本語の方は現在のところ、Codeigniter1.7のガイド（現在翻訳中のようです）のため、記述が違いがありますが、（例えば、Controller→CI_Controllerをextendするとか）大きな流れは変わりません。</p>
<h3>機能</h3>
<p>DBとの連携、セッション管理、暗号化、メール、フォームValidateなどなど、最低限の機能は揃っています。またヘルパー等による拡張も可能です。</p>
<h3>情報源</h3>
<p>フレームワーク選びで重要なことが、「マニュアルが豊富」「どれだけのユーザが利用してるか」が挙げられると思いますが、マニュアルに関しては上記であげた公式サイトのユーザガイドが分かりやすく問題ないと思います。また利用してるユーザ数は、単純なGoogleのインデックス数でみると、、</p>
<p><a href="http://www.google.co.jp/search?aq=f&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=symfony&amp;qscrl=1" target="_blank">Symfony</a> →  約 5,290,000 件</p>
<p><a href="http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;qscrl=1&amp;q=cakephp&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=" target="_blank">CakePHP</a> →　約 3,790,000 件</p>
<p><a href="http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;qscrl=1&amp;q=Codeigniter&amp;btnG=%E6%A4%9C%E7%B4%A2&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=" target="_blank">Codeigniter</a> →　約 2,220,000 件</p>
<p>CakePHPやSymfonyといったフレームワークには少ないですが、Codeigniterについて書かれたブログも結構増えてきているように見えます。まあ、困ったときは本体のソースもそんなに大きくないのでソースを読むのも、そんなに苦ではないでしょう。</p>
<p>日本語のフォーラムもこの2011年2月下旬より公開されるようです。</p>
<h3>最後に</h3>
<p>PHPを使って簡単に実装したい、既存のPHPソースを新たに書き直したい、プロジェクトが新しいメンバーで構成されていて経験が異なる等、様々な場面で活躍できるフレームワークです。</p>
<p>私自身もPHPで実装するときはSymfonyを選んでましたが、プロジェクトの規模や一緒に開発するメンバーの経験などを考慮して、このCodeigniterも選択肢としてかなり良いと思いました。</p>
<p>※追記</p>
<p>2011/2/19に<a href="http://cicon.codeigniter.jp/2011/" target="_blank">日本初となるCodeigniterカンファレンス</a>が行われるようです。</p>
<p>行きたいなー。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/" />
	</item>
		<item>
		<title>jumble soup online store 開店！</title>
		<link>http://ueblog.natural-wave.com/2010/10/16/jumble-soup-online-store-%e9%96%8b%e5%ba%97%ef%bc%81/</link>
		<comments>http://ueblog.natural-wave.com/2010/10/16/jumble-soup-online-store-%e9%96%8b%e5%ba%97%ef%bc%81/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 13:54:05 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[EC]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=743</guid>
		<description><![CDATA[大学の友達がやってる雑貨屋さんのECサイトがオープンしたのでご紹介です！ jumble soup online store 場所は、大阪の阪急茨木駅の近く。 大きな地図で見る さて、このショッピングサイトは私がEC-CUBEを利用して作りました。EC-CUBEはやっぱ便利ですね。最近いろん]]></description>
			<content:encoded><![CDATA[<p>大学の友達がやってる雑貨屋さんのECサイトがオープンしたのでご紹介です！</p>
<p><a href="http://jumblesoup.sakura.ne.jp/" target="_blank">jumble soup online store</a></p>
<p><a href="http://jumblesoup.sakura.ne.jp/" target="_blank"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2008/02/jumblesoup.png" title="jumblesoup" width="550" height="439" class="alignnone size-full wp-image-741" /></a></p>
<p>場所は、大阪の阪急茨木駅の近く。</p>
<p><iframe width="550" height="450" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.jp/maps?q=jumble+soup&amp;cd=1&amp;ei=gaq5TKiVOs-ZkQXn-bX8BQ&amp;sig2=x3_UwJHGVn6aEz7YWw8uMA&amp;sll=35.255216,137.63955&amp;sspn=0.880571,4.126273&amp;brcurrent=3,0x6000fc5907c9908d:0x3babc6735aaa3060,1&amp;ie=UTF8&amp;hl=ja&amp;view=map&amp;cid=16748614784681377077&amp;ved=0CBkQpQY&amp;hq=jumble+soup&amp;hnear=&amp;source=embed&amp;ll=34.81493,135.576414&amp;spn=0.006295,0.006295&amp;iwloc=A&amp;output=embed"></iframe><br /><small><a href="http://maps.google.co.jp/maps?q=jumble+soup&amp;cd=1&amp;ei=gaq5TKiVOs-ZkQXn-bX8BQ&amp;sig2=x3_UwJHGVn6aEz7YWw8uMA&amp;sll=35.255216,137.63955&amp;sspn=0.880571,4.126273&amp;brcurrent=3,0x6000fc5907c9908d:0x3babc6735aaa3060,1&amp;ie=UTF8&amp;hl=ja&amp;view=map&amp;cid=16748614784681377077&amp;ved=0CBkQpQY&amp;hq=jumble+soup&amp;hnear=&amp;source=embed&amp;ll=34.81493,135.576414&amp;spn=0.006295,0.006295&amp;iwloc=A" style="color:#0000FF;text-align:left">大きな地図で見る</a></small></p>
<p>さて、このショッピングサイトは私が<a href="http://www.ec-cube.net/" target="_blank">EC-CUBE</a>を利用して作りました。<a href="http://www.ec-cube.net/" target="_blank">EC-CUBE</a>はやっぱ便利ですね。最近いろんなところで見かけるようになりました。</p>
<p>集客とかも考えないとなとか思いつつ、1件でも多く売れることを期待してます。店舗のほうもよろしく！（店舗見学早くいきたいな・・・）</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/10/16/jumble-soup-online-store-%e9%96%8b%e5%ba%97%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/10/16/jumble-soup-online-store-%e9%96%8b%e5%ba%97%ef%bc%81/" />
	</item>
		<item>
		<title>さくらインターネットで「Premature end of script headers」</title>
		<link>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/</link>
		<comments>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 15:38:57 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[さくら]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=735</guid>
		<description><![CDATA[今日はメモ的な記事です。 さくらインターネットのレンタルサーバーで、PHP、perlなどを動かしているときに下記のようなエラーが発生することがある。 Premature end of script headers: ファイル名 これは大概にして、サーバ側の設定とスクリプトの問題のようで、]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sakura.ne.jp/" target="_blank"><img src="http://www.sakura.ad.jp/common/images/header-logo.gif" width="188" height="47" class="alignnone" /></a></p>
<p>今日はメモ的な記事です。</p>
<p>さくらインターネットのレンタルサーバーで、PHP、perlなどを動かしているときに下記のようなエラーが発生することがある。</p>
<p><code>Premature end of script headers: ファイル名</code></p>
<p>これは大概にして、サーバ側の設定とスクリプトの問題のようで、今回は実行するphpファイルのパーミッションの問題であった。</p>
<p>666や777のように自分以外に書き込み権限があると、セキュリティの問題で上記のエラーが出る。また気をつけるべきところは、そのスクリプトだけではなく、そのファイルを置いているディレクトリも同様に777などの権限になっていると、エラーになった。</p>
<p>今回はあるCMSが自動生成するPHPがそのような権限にしていたために判明した。</p>
<p>はまったので参考までに・・・</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/" />
	</item>
		<item>
		<title>Google Developer Day 2010に行ってきました（1）</title>
		<link>http://ueblog.natural-wave.com/2010/09/29/google-developer-day-2010/</link>
		<comments>http://ueblog.natural-wave.com/2010/09/29/google-developer-day-2010/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 15:03:36 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=719</guid>
		<description><![CDATA[本日行われた、Google Developer Day 2010について、メモを取った内容を簡単に共有したいと思います。（本当にメモです・・・） 間違えている部分、聞き逃しが存分にある可能性がありますが、ご容赦ください。 後日、本家の方からYoutubeやらスライドやら]]></description>
			<content:encoded><![CDATA[<p><img src="http://ueblog.natural-wave.com/wp-content/uploads/2010/09/5033255790_4b41175585_m.jpeg" alt="" title="東京国際フォーラム" width="240" height="179" class="alignright size-full wp-image-730" /><br />
本日行われた、<a href="http://www.google.co.jp/events/developerday/2010/tokyo/" target="_blank">Google Developer Day 2010</a>について、メモを取った内容を簡単に共有したいと思います。（本当にメモです・・・）</p>
<p>間違えている部分、聞き逃しが存分にある可能性がありますが、ご容赦ください。</p>
<p>後日、本家の方からYoutubeやらスライドやらの共有がされたときに、また更新をしなおそうと思います。</p>
<p>それでは基調講演から。</p>
<h3>基調講演</h3>
<p>インターネット利用時間は他のメディアに比べると格段に増大している。</p>
<h4>HTML5</h4>
<p>W3Cの使用策定にGoogleは3年前から貢献している。</p>
<p>HTML5を利用した金魚が動くデモ</p>
<p style="padding-left: 30px;">ソフトウェアだけではなく、GPUを使ったグラフィックアクセラレーションを活用できる（2D Canvas, WebGL, CSS3）</p>
<p>HTML5デモサイト、<a href="http://studio.html5rocks.com/" target="_blank">HTML5Studio</a></p>
<p><a href="http://antimatter15.com/misc/rotatedgooglecss3.html" target="_blank">CSS3 Sideways Google</a></p>
<p style="padding-left: 30px;">デバイスオリエンテーションをDOMイベントとして定義可能。（デモでは傾きに応じてページが動作していた。）</p>
<p>マイクアクセス（Google音声入力）</p>
<p style="padding-left: 30px;">音声入力。@speech属性</p>
<p>ファイルアクセス</p>
<p style="padding-left: 30px;">File API、FileSystem API</p>
<h4>chrome web store</h4>
<p>Webアプリの課題、見つけにくい、再訪されにくい、マネタイゼーションが難しいを解決する手段。</p>
<p>chrome tab上にWebアプリをインストール可能。（各種APIにアクセス可能）有償、無償あり。</p>
<p>現在開発者向けプレビュー</p>
<p><a href="http://www.fiabee.com/en/" target="_blank">FIABEE</a>の紹介（オンラインストレージ）</p>
<p style="padding-left: 30px;">WebSQLを使ってインクリメント検索（非常に高速）</p>
<p style="padding-left: 30px;">デスクトップNotification</p>
<h4>Android</h4>
<p>Androidに関する新機能</p>
<ul>
<li><a href="http://androidforums.com/application-requests/7828-android-market-suggestion-unrated-apps.html" target="_blank">market suggestion</a></li>
<li>review バグステータスの公開</li>
<li>Licensing Server</li>
<li>Chrome messaging chrome to Phone (firefox plugin)</li>
</ul>
<p>Froyo に追加された新機能の追加</p>
<p style="padding-left: 30px;">日本語音声入力Omron社</p>
<p style="padding-left: 30px;">モトヤフォント採用</p>
<h4>App Engine</h4>
<p>日本は利用が2位</p>
<p>日本の利用例</p>
<ul>
<li><a href="http://eco-points.jp/" target="_blank">エコポイント</a></li>
<li><a href="http://mixi.jp/view_appli.pl?id=21212" target="_blank">mixi fes</a></li>
</ul>
<p>Google App Engine for business</p>
<ul>
<li>SSL,SQLサポート</li>
<li>Technicalサポート</li>
</ul>
<p>IT予算の60%は保守運用に取られている←改善したいポイント</p>
<p>ロードマップ</p>
<ul>
<li>full mapreduce</li>
<li>Datastore and restore</li>
<li>Data portability</li>
<li>App portability</li>
</ul>
<p><a href="http://www.vmware.com/jp/company/news/releases/vmware-google.html" target="_blank">GWT ROO</a>（VMWareとの協業の紹介）</p>
<h4>Google日本語入力</h4>
<p>オープンソース版登場</p>
<p><a href="http://code.google.com/p/mozc/" target="_blank">Mozc</a></p>
<ul>
<li>ChromeOS (Linux)</li>
<li>MacOS (本日公開！)</li>
</ul>
<p><a href="http://www.google.com/intl/ja/ime/cgiapi.html" target="_blank">Transliteration API日本語サポート</a>（本日公開！）</p>
<ul>
<li>バックエンドのみ</li>
<li>フロントは後日公開予定</li>
</ul>
<p>基調講演は以上。</p>
<p>大きな発表はなかったけど、HTML5の可能性に十分に触れることができ、またGoogleのオープンな戦略が聞くことができて満足。Google TVの日本版とか、書籍の話とかもあったらと思いましたが、プレスリリースのイベントではなく、Developerのイベントなので致し方無しでしょう。</p>
<p>長くなったので、Breakout Sessionの方は次の記事にします。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/09/29/google-developer-day-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/09/29/google-developer-day-2010/" />
	</item>
		<item>
		<title>WordPress3.0にアップグレードしました</title>
		<link>http://ueblog.natural-wave.com/2010/09/24/upgrade-wordpress3/</link>
		<comments>http://ueblog.natural-wave.com/2010/09/24/upgrade-wordpress3/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 15:28:51 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=713</guid>
		<description><![CDATA[かなり今さらですが、Wordpressを3.0にアップグレードしました。ついでにデザインもがらっと変えてみました。 アップグレード方法 今回のアップグレードの方法は管理画面からの自動アップグレードを利用しました。（本当に簡単になり]]></description>
			<content:encoded><![CDATA[<p>かなり今さらですが、Wordpressを3.0にアップグレードしました。ついでにデザインもがらっと変えてみました。</p>
<h3>アップグレード方法</h3>
<p>今回のアップグレードの方法は管理画面からの自動アップグレードを利用しました。（本当に簡単になりました。）手動の場合は<a href="http://wpdocs.sourceforge.jp/WordPress_%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89" target="_blank">WordPress のアップグレード</a>を参考にすればよいでしょう。</p>
<p><div class="note"><div class="noteclassic"><br />
データベースのバックアップとプロジェクトファイルのバックアップは必ず行ないましょう。<br />
</div></div></p>
<h3>WordPress3.0 変更点</h3>
<p>管理画面などぱっと見た感じでは分かりにくいですが、下記が主な変更点です。</p>
<div id="_mcePaste">
<ul>
<li>新テーマ、メニュー機能</li>
<li>マルチサイト機能（1インストールで複数ブログ）</li>
<li>プラグイン一括更新</li>
<li>バグFIXなど</li>
</ul>
</div>
<p>テーマを編集せずにいろいろ出来るようですが、今回も結局触ってしまいました・・・</p>
<h3>WordPress3.0 動作確認済みプラグイン</h3>
<p>インストールしていたものすべてが上手く動いてました。下記が動作確認済みのプラグインです。</p>
<ul>
<li>AdSense Manager</li>
<li>Akismet</li>
<li>All in One SEO Pack</li>
<li>Contact Form 7</li>
<li>Disqus Comment System</li>
<li>Full Text Feed</li>
<li>Google XML Sitemaps</li>
<li>iG:Syntax Hiliter</li>
<li>Ktai Style</li>
<li>mixi check plugin for wordpress</li>
<li>Multibyte Excerpt</li>
<li>Really Simple CAPTCHA</li>
<li>runPHP</li>
<li>Search Excerpt</li>
<li>Search Word Highlight for Mutibyte</li>
<li>Tabbed Widgets</li>
<li>WordPress Database Backup</li>
<li>WordPress Related Post for Japanese</li>
<li>WP-Note</li>
<li>wp-tegaki</li>
<li>WP lightbox 2</li>
<li>WP Social Bookmark Menu - (aka:J. SexyBookmarks)</li>
<li>WPtouch</li>
</ul>
<p>WordPress1系から2の時はうまく動かなくて困りましたが、今回は何事も無く終わりました。やっぱり自動アップグレードは楽ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/09/24/upgrade-wordpress3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/09/24/upgrade-wordpress3/" />
	</item>
		<item>
		<title>SQLで2点間の緯度経度から距離を測定する方法</title>
		<link>http://ueblog.natural-wave.com/2010/09/14/latitude-longitude-sql/</link>
		<comments>http://ueblog.natural-wave.com/2010/09/14/latitude-longitude-sql/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:46:24 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Programing]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=704</guid>
		<description><![CDATA[位置情報をmysqlなどのRDBMS上に保持して、2点間の距離を求めたり、ユーザの現在地とデータベース上にある位置データとの距離を求めるときにSQLで何とかしようという話です。 まず2点間の距離は、三平方の定理を使うと a^2 + b^2 = c^2（cが斜辺） という]]></description>
			<content:encoded><![CDATA[<p>位置情報をmysqlなどのRDBMS上に保持して、2点間の距離を求めたり、ユーザの現在地とデータベース上にある位置データとの距離を求めるときにSQLで何とかしようという話です。</p>
<p>まず2点間の距離は、<a href="http://ja.wikipedia.org/wiki/%E3%83%94%E3%82%BF%E3%82%B4%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%90%86" target="_blank">三平方の定理</a>を使うと</p>
<blockquote><p>a^2 + b^2 = c^2（cが斜辺）</p></blockquote>
<p>ということのようです。ただし地球は丸いので直線での公式とは違うため、長い距離になるとずれるようですが、その辺りは誤差として無視することとします。</p>
<p>そしてWikipediaから平均で<a href="http://ja.wikipedia.org/wiki/%E7%B7%AF%E5%BA%A6" target="_blank">緯度</a>1度あたり111km、<a href="http://ja.wikipedia.org/wiki/%E7%B5%8C%E5%BA%A6" target="_blank">経度</a>1度あたり91kmということなので、距離は</p>
<blockquote><p>距離(km) = √((緯度1 - 緯度2) / 0.0111)^2 + ( (経度1 - 経度2) / 0.0091)^2</p></blockquote>
<p>で求められるということになります。</p>
<p>mysqlのSQLで書くと下記のようになります。</p>
<blockquote><p>SELECT SQRT(POWER((緯度1 - 緯度2) / 0.0111, 2) + POWER((経度1 - 経度2) / 0.0091, 2)) AS distance</p></blockquote>
<p>渋谷駅(35.658482,139.701441)と新宿駅(35.690224,139.700089)の距離を求めると、</p>
<div class="igBar"><span id="lcode-7"><a href="#" onclick="javascript:showPlainTxt('code-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-7">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mysql&gt; SELECT SQRT<span style="color:#006600; font-weight:bold;">&#40;</span>POWER<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">35</span>.<span style="color:#800000;color:#800000;">658482</span> - <span style="color:#800000;color:#800000;">35</span>.<span style="color:#800000;color:#800000;">690224</span><span style="color:#006600; font-weight:bold;">&#41;</span> / <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0111</span>, <span style="color:#800000;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> + power<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">139</span>.<span style="color:#800000;color:#800000;">701441</span> - <span style="color:#800000;color:#800000;">139</span>.<span style="color:#800000;color:#800000;">70008</span><span style="color:#006600; font-weight:bold;">&#41;</span> / <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0091</span>, <span style="color:#800000;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> AS distance;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+------------------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">| distance&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+------------------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">| <span style="color:#800000;color:#800000;">2</span>.<span style="color:#800000;color:#800000;">86354800792301</span> | </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+------------------+</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#800000;color:#800000;">1</span> row in set <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">01</span> sec<span style="color:#006600; font-weight:bold;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>2.8kmくらいになりました。これでデータと現在地の距離を求めて近い順に出すとかがSQLでできてしまいます。例えば下記のような雰囲気で。</p>
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showPlainTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SELECT SQRT<span style="color:#006600; font-weight:bold;">&#40;</span>POWER<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span>現在地緯度 - lat<span style="color:#006600; font-weight:bold;">&#41;</span> / <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0111</span>, <span style="color:#800000;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> + power<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span>現在地経度 - lng<span style="color:#006600; font-weight:bold;">&#41;</span> / <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0091</span>, <span style="color:#800000;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> AS distance FROM geodata ORDER BY distance </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/09/14/latitude-longitude-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/09/14/latitude-longitude-sql/" />
	</item>
		<item>
		<title>mixiチェックをWordPressに導入してみた</title>
		<link>http://ueblog.natural-wave.com/2010/09/13/mixi-check-for-wordpress/</link>
		<comments>http://ueblog.natural-wave.com/2010/09/13/mixi-check-for-wordpress/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 15:05:27 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[mixi]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=698</guid>
		<description><![CDATA[先週の金曜日に行われた「mixi meetup 2010」、盛りだくさんの内容でしたね。 基本的に数多くのAPIを開放して、ソーシャルグラフのプラットフォームを掴み、数多くの提携を実現させていたのが印象的でしたが、個人として出来るレベルで、、]]></description>
			<content:encoded><![CDATA[<p>先週の金曜日に行われた「<a href="http://mixi.co.jp/mixi-meetup" target="_blank">mixi meetup 2010</a>」、盛りだくさんの内容でしたね。</p>
<p>基本的に数多くのAPIを開放して、ソーシャルグラフのプラットフォームを掴み、数多くの提携を実現させていたのが印象的でしたが、個人として出来るレベルで、、まず自分のブログにmixiチェックのボタンを設置してみました。その方法を書いておきます。</p>
<p>１. まず<a href="https://mixi.jp/guide_developer.pl" target="_blank">mixiデベロッパー登録</a>をしましょう。</p>
<p>２. <a href="https://sap.mixi.jp/home.pl" target="_blank">Developer Dashboard</a>へログインし、上部の「mixi Plugin」→「新規サービス追加」で設置するブログを登録します。内容は下記の画像を参照してください。</p>
<p><a href="http://ueblog.natural-wave.com/wp-content/uploads/2010/09/スクリーンショット（2010-09-12-22.55.23）.png" rel="lightbox[698]"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2010/09/スクリーンショット（2010-09-12-22.55.23）-300x204.png" title="mixiチェック" width="300" height="204" class="alignnone size-medium wp-image-699" /></a><br clear="all" /></p>
<p>３. <a href="http://github.com/takimo/mixi-check-for-wordpress/downloads" target="_blank">mixi check for wordpress プラグイン</a>をダウンロードし、プラグインディレクトリー（wp-content/plugins/直下）に配置します。（mixi-check.phpと画像）</p>
<p>４. WordPress管理画面のプラグインで「mixi check for wordpress」を有効化。</p>
<p>５. 上記のプラグイン有効化で左メニューに「mixiチェック」のメニューが出るので、「設定」を選択し、mixiチェックキーにDeveloper Dashboradで登録したときの認証情報のキーを入力します。あと、mixiチェックの画像も4種類から選びます。</p>
<p>６. 最後にmixiチェックのメニューの「埋め込みコード」を選択し、テーマファイル内の表示したいところにコードを埋め込んで終了です。</p>
<p>当ブログの場合、関連記事の下にあったり、画像にborderが入ってしまってますが以上の手順で導入終了です。</p>
<p>正直、ちょっとややこしいですね・・・</p>
<p>ブログパーツのように貼りつけて終了みたいな感じではないですが、これからはソーシャルメディアからの流入が重要なのは間違いないので、ぜひチャレンジしてみてください。</p>
<p>そういえば、このブログfacebookのいいねとかTwitterのRTとかのボタンもなかったな。。あとでやってみる。</p>
<p>あと話が逸れますが、mixiのDeveloper登録って面倒くさいですね。携帯メアドを強制されたりとか。また個人でAPIが使えないのがあったり、携帯のソーシャルアプリが作れない、OpenIDも使えないし、、mixiはオープンなんだかどうなのかって思ってしまいます。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/09/13/mixi-check-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/09/13/mixi-check-for-wordpress/" />
	</item>
	</channel>
</rss>

