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

<channel>
	<title>橋本商会 &#187; shokai</title>
	<atom:link href="http://shokai.org/blog/archives/author/shokai/feed" rel="self" type="application/rss+xml" />
	<link>http://shokai.org/blog</link>
	<description>なんか作ったりした記録を忘れないうちに書くblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 13:32:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>地震のデータを取得する</title>
		<link>http://shokai.org/blog/archives/5751</link>
		<comments>http://shokai.org/blog/archives/5751#comments</comments>
		<pubDate>Mon, 06 Feb 2012 13:31:42 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[地震]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5751</guid>
		<description><![CDATA[最近地震の悪夢を見たので地震のデータを取ってみることにした。 気象庁のページで日付をURLで指定してデータが取れるので、Rubyの配列で震源地名、緯度経度、時刻、震源の深さ、マグニチュードを返すやつを作った quake. [...]]]></description>
			<content:encoded><![CDATA[<p>
最近地震の悪夢を見たので地震のデータを取ってみることにした。<br />
<br />
気象庁のページで<a href="http://www.seisvol.kishou.go.jp/eq/daily_map/japan/20120101_list.shtml">日付をURLで指定してデータが取れる</a>ので、Rubyの配列で震源地名、緯度経度、時刻、震源の深さ、マグニチュードを返すやつを作った<br />
<br />
<br />
quake.rb<br />
<pre class="prettyprint">
require 'rubygems'<br />
require 'open-uri'<br />
require 'kconv'<br />
require 'date'<br />
<br />
class Quake<br />
  def self.get(date=Date.today-1)<br />
    url = "http://www.seisvol.kishou.go.jp/eq/daily_map/japan/#{date.to_s.gsub('-','')}_list.shtml"<br />
    page = open(url).read.toutf8<br />
    page.scan(/&lt;pre&gt;(.+)&lt;\/pre&gt;/im).first.first.split(/[\r\n]/).map{|i|<br />
      i.strip<br />
    }.delete_if{|i|!(i =~ /^\d+/)}.map{|i|<br />
      tmp = i.split(/[^\d\.]+/)<br />
      {<br />
        :place =&gt; i.split(/\s+/).last,<br />
        :time =&gt; Time.mktime(tmp.shift.to_i, tmp.shift.to_i, tmp.shift.to_i, tmp.shift.to_i, tmp.shift.to_i, tmp.shift.to_i),<br />
        :lat =&gt; tmp.shift.to_i+tmp.shift.to_f/60,<br />
        :lon =&gt; tmp.shift.to_i+tmp.shift.to_f/60,<br />
        :depth =&gt; tmp.shift.to_i,<br />
        :magnitude =&gt; tmp.shift.to_f<br />
      }<br />
    }<br />
  end<br />
end<br />
<br />
if $0 == __FILE__<br />
  ##  ruby -Ku quake.rb<br />
  ##  ruby -Ku quake.rb 20120102<br />
<br />
  date = ARGV.empty? ? Date.today-1 : Date.parse(ARGV.shift)<br />
  p Quake.get(date)<br />
end<br />
</pre>
<br />
<br />
結果<br />
<img src="http://gyazo.com/27928c970585e60cefbe16e35139ec43.png">
<br />
<br />
とりあえず毎日、地震データを蓄積してみよう。そのうち解析する。</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5751/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>動画からアニメgifを作る</title>
		<link>http://shokai.org/blog/archives/5748</link>
		<comments>http://shokai.org/blog/archives/5748#comments</comments>
		<pubDate>Fri, 03 Feb 2012 04:55:51 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5748</guid>
		<description><![CDATA[動画からアニメgifを作るツールを去年作った。https://github.com/shokai/video2gif 元動画を何fpsで切り出すか、それを何fpsで結合するかを指定できるのでコマ送り的なgifも簡単に作れ [...]]]></description>
			<content:encoded><![CDATA[<p>
<br />
動画からアニメgifを作るツールを去年作った。<a href="https://github.com/shokai/video2gif">https://github.com/shokai/video2gif</a><br />
<br />
<img src="http://shokai.org/tmp/goldfish.gif">
<br />
<br />
元動画を何fpsで切り出すか、それを何fpsで結合するかを指定できるのでコマ送り的なgifも簡単に作れる。<br />
<br />
<br />
上は、動画を1fpsで切り出して20fpsでつないだ。<br />
<pre>
video2gif -i input.mov -o output.gif -size 150x100 -vfps 1 -gfps 12<br />
</pre>
<br />
<br />
<br />
元の動画はこれ<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/Ncacg1auokA" frameborder="0" allowfullscreen></iframe><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5748/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ニコニコ学会とSFC-LTで発表した</title>
		<link>http://shokai.org/blog/archives/5743</link>
		<comments>http://shokai.org/blog/archives/5743#comments</comments>
		<pubDate>Wed, 11 Jan 2012 04:02:31 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[slide]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5743</guid>
		<description><![CDATA[最近作ったものを、去年の先月ニコニコ学会で発表した。緊張した。 http://live.nicovideo.jp/watch/lv72478844#6:27:05 スライドはこれ。動画がけっこう使われているので↑のニコ生 [...]]]></description>
			<content:encoded><![CDATA[<p>
最近作ったものを、去年の先月ニコニコ学会で発表した。緊張した。<br />
<a href="http://live.nicovideo.jp/watch/lv72478844#6:27:05">http://live.nicovideo.jp/watch/lv72478844#6:27:05</a><br />
<br />
スライドはこれ。動画がけっこう使われているので↑のニコ生から見たほうが良い。<br />
<div style="width:425px" id="__ss_10953377"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/shokai/gui-10953377" title="実世界GUI作ってみた">実世界GUI作ってみた</a></strong><object id="__sse10953377" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=111206nicogakkai01-120110215221-phpapp02&#038;stripped_title=gui-10953377&#038;userName=shokai" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse10953377" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=111206nicogakkai01-120110215221-phpapp02&#038;stripped_title=gui-10953377&#038;userName=shokai" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/shokai">Sho Hashimoto</a>.</div></div>
<br />
<br />
あと<a href="http://sfc-lt.com/">SFC-LT</a>で増井研について発表した。はじめてLTというものをした。がんばった。<br />
<div style="width:425px" id="__ss_10953458"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/shokai/111207-sfc-lt02" title="本当に　い増井研">111207 sfc lt02</a></strong><object id="__sse10953458" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=111207sfc-lt02-120110215709-phpapp02&#038;stripped_title=111207-sfc-lt02&#038;userName=shokai" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse10953458" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=111207sfc-lt02-120110215709-phpapp02&#038;stripped_title=111207-sfc-lt02&#038;userName=shokai" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/shokai">Sho Hashimoto</a>.</div></div>
<br />
<br />
すごいウケてたんだけど、動画がなかなか公開されないので俺が「すごいウケてた」って研究室で言うたびにハイハイみたいな目で見られるので早く公開してほしい。<br />
<a href="http://www.ustream.tv/channel/sfc-lt">http://www.ustream.tv/channel/sfc-lt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5743/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>githubのリポジトリ数が100超えた</title>
		<link>http://shokai.org/blog/archives/5733</link>
		<comments>http://shokai.org/blog/archives/5733#comments</comments>
		<pubDate>Sat, 24 Dec 2011 11:58:05 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[serial-http-gateway]]></category>
		<category><![CDATA[skype-chat-gateway]]></category>
		<category><![CDATA[SkypeAPI]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5733</guid>
		<description><![CDATA[去年のゴールデンウィークの増井研合宿でgithubの使い方を山プルギス氏に教えてもらってから18ヶ月、ついに公開リポジトリ数が100個に達した。 https://github.com/shokai ぜんぜんgithub上 [...]]]></description>
			<content:encoded><![CDATA[<p>
去年のゴールデンウィークの増井研合宿でgithubの使い方を山プルギス氏に教えてもらってから18ヶ月、ついに公開リポジトリ数が100個に達した。<br />
<img src="http://gyazo.com/e444a071de9b8e8dd3eee802b25befe4.png">
<ul><li><a href="https://github.com/shokai">https://github.com/shokai</a></li></ul>
<br />
ぜんぜんgithub上で他人のプロジェクトに首を突っ込んだりしていなかったので、100個のうちほぼ全てが自分で開始したプロジェクトという事になる。だいたい週1つのペースでリポジトリが増えていったわけか<br />
<br />
<br />
100個目のプロジェクトは、<a href="https://github.com/shokai/notify-light">notify-light</a>だった。<br />
これは家の電灯が点いているかどうかを明るさのセンサーで監視して、Skypeのshokai_botというアカウントが俺に通知してくれるシステム。便利である。防犯的な意味で。<br />
<a href="https://github.com/shokai/notify-light/blob/master/notify-light.rb">60行ぐらいのRubyスクリプト1ファイルだけ</a>で実装されている。<br />
<br />
<br />
botからSkypeのグループチャットでこういうのが来る。<br />
<img src="http://gyazo.com/35cdd02b4e994ad9cdf39f510b886b5b.png">
<br />
<br />
センサーを使うのもSkypeへの通知も、すでに便利なツールが作ってあって全部HTTPでできる。<br />
<pre>
ruby notify-light.rb -light http://localhost:8783/ -skype http://localhost:8787/<br />
</pre>
という風に実行すればセンサーを定期的に監視してSkypeに送信できる。<br />
<br />
<br />
■しくみ<br />
CdSという明るさが検出できるセンサーをArduino等に適当に接続し、シリアル通信してMacやLinuxに送る。<br />
serial-http-gatewayというプロジェクトを以前作ってあるので、これを使うとシリアルポートから受信したデータを溜めてjson形式で吐き出すHTTPサーバーが作れる。<br />
<br />
<br />
読んだjsonにはタイムスタンプとセンサーの値（明るさが）入っているので、一定時間内の平均値を計算してノイズを消し、Skypeに通知する。<br />
<br />
Skypeへの通知は先日作ったskype-chat-gatewayというのを使っている。<br />
1年ぐらい前にskype-socket-gatewayというのを作ったけどwindows用だったのでもう使わなくなったし、socketよりもhttpから使えたほうが便利なのと、chat_idという概念がわかりにくいので1チャット1プロセス1portが対応するように作りなおした。<br />
また、MacとLinuxでSkype APIを使う仕組みが違うので、それぞれ別々に実装した。<br />
<br />
Linux版はまだちょっと微妙なんだけど、Mac版は出来がよくてWebブラウザからSkype Chatができるサーバーとかも付いているので便利です。<br />
<br />
<ul>
  <li><a href="http://shokai.org/blog/archives/5439">橋本商会 » serial-http-gateway作った</a></li>
  <li><a href="https://github.com/shokai/serial-http-gateway">serial-http-gateway</a></li>
  <li><a href="https://github.com/shokai/skype-chat-gateway-mac">skype-chat-gateway-mac</a></li>
  <li><a href="https://github.com/shokai/skype-chat-gateway-linux">skype-chat-gatewa-linux</a></li>
</ul>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5733/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>chrome拡張の開発</title>
		<link>http://shokai.org/blog/archives/5728</link>
		<comments>http://shokai.org/blog/archives/5728#comments</comments>
		<pubDate>Mon, 28 Nov 2011 13:56:06 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5728</guid>
		<description><![CDATA[1年ぶりぐらいにchrome拡張を作っているのだが、開発しやすくなっていた。ymrlとmyatsumotoに教わった。 chrome://extensions か chrome://settings/extensionS [...]]]></description>
			<content:encoded><![CDATA[<p>
1年ぶりぐらいにchrome拡張を作っているのだが、開発しやすくなっていた。ymrlとmyatsumotoに教わった。<br />
<br />
<br />
<a href="chrome://extensions">chrome://extensions</a> か <a href="chrome://settings/extensionSettings">chrome://settings/extensionSettings</a>を開く。<br />
<a href="http://www.flickr.com/photos/shokai/6418442873/" title="chrome extension by shokai, on Flickr"><img src="http://farm8.staticflickr.com/7012/6418442873_40aeee4d9e_o.png" width="905" height="252" alt="chrome extension"></a><br />
<br />
<br />
右上の「デベロッパーモード」を押して、「パッケージ化されていない拡張機能を読み込む」ボタンを押す。フォルダを拡張として読み込める。<br />
<br />
拡張の名前に（開発中）とつく。再読み込みを押すとリロードできる。<br />
<br />
アイコンの左側の三角をクリックすると、background.htmlへのリンクがでる。ここでjsコンソールが出せるので、console.logを使ったりしてdebugできる。<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5728/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORF2011で実世界コピペ、実世界ユーザインタフェース等を展示した</title>
		<link>http://shokai.org/blog/archives/5719</link>
		<comments>http://shokai.org/blog/archives/5719#comments</comments>
		<pubDate>Thu, 24 Nov 2011 13:01:57 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[GoldFish]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NFC]]></category>
		<category><![CDATA[ORF]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5719</guid>
		<description><![CDATA[昨日まで東京ミッドタウンで開催していたSFC ORF2011の増井研でデモしていました。 ■実世界コピペ 実世界コピペはAndroidとNFCタグを使ってコピペできるアプリなのですが、これはAndroid側のアプリは全て [...]]]></description>
			<content:encoded><![CDATA[<p>
昨日まで東京ミッドタウンで開催していた<a href="http://orf.sfc.keio.ac.jp/">SFC ORF2011</a>の増井研でデモしていました。<br />
<br />
<br />
■実世界コピペ<br />
実世界コピペはAndroidとNFCタグを使ってコピペできるアプリなのですが、これはAndroid側のアプリは全て<a href="https://github.com/shokai/goldfish-poi/blob/master/app-server/public/js/app.js">JavaScriptで書かれています</a>。<br />
<iframe width="853" height="480" src="http://www.youtube.com/embed/Ncacg1auokA" frameborder="0" allowfullscreen></iframe><br />
<br />
<br />
<br />
■GoldFish<br />
<a href="http://ubif.org/goldfish">GoldFish</a>というプラットフォームを自作していて、これを使うとJavaなしでJavaScriptだけでアプリが書けて、しかも端末にインストールする必要がなくなります。（今学校のサーバーが落ちていて見れないがそのうち復活するはず）<br />
<br />
先週書いた<a href="http://shokai.org/blog/archives/5699">AndroidとNFCで研究室の鍵を開けるシステム</a>もGoldFish上で実装されているし、他にも置く場所によって自動的にAndroidがパソコンを操作するタッチパッドになったり、写真立てになったりするデモをしました。<br />
<br />
<br />
GoldFishは、実世界志向なユーザインタフェースを作る時によくある5つの機能を簡単にJavaScriptだけで扱えます。<br />
<ul>
  <li>操作する物体や機器の指定をタッチで直接指示する &#8230; GUIでは名前を入力するかアイコンをクリックしていた</li>
  <li>ジェスチャーで操作する &#8230; 大量のボタンは必要なく、画面を見る必要もない</li>
  <li>状況によってインタフェースが変わる &#8230; タグによって起動するアプリを切り替えられる、またGoldFishアプリ内からもタグの情報が読める</li>
  <li>使用者によってコンテンツが切り替わる &#8230; <a href="http://d.hatena.ne.jp/shokai/20111120/1321793153">安全な方法で端末IDを生成している</a>ので、ユーザ名を入れたりする事なくユニークユーザを検出できる。居間のTVで見ていたビデオを台所の小型モニタで継続する等も簡単。</li>
  <li>他のアプリと通信する &#8230; 中身がWebブラウザなのでAjaxは使えるのは勿論だが、普通のTCPやUDP SocketもwebsocketっぽいAPIで簡単に使える。<a href="https://github.com/shokai/goldfish/blob/e548a148398b44bda1e570d77427f1bb449f0c57/server/public/js/samples/tcp_chat.js">TCPでチャットを実装した例</a></li>
</ul>
Javaを書かなければ使えなかった機能をラップしてJavaScriptから使えるようにしています。<br />
<br />
<br />
<br />
■他のGoldFishアプリ<br />
MacとUDPで通信して操作できるタッチパッドが86行で書けたり（<a href="https://github.com/shokai/goldfish/blob/e548a148398b44bda1e570d77427f1bb449f0c57/server/public/js/samples/udp_touchpad.js">ソースコード</a>）<br />
<iframe width="853" height="480" src="http://www.youtube.com/embed/RDR7njjIjrM" frameborder="0" allowfullscreen></iframe><br />
<br />
<br />
<br />
空中マウスが62行ぐらいで書けたりする。（<a href="https://github.com/shokai/goldfish/blob/e548a148398b44bda1e570d77427f1bb449f0c57/server/public/js/samples/udp_mouse.js">ソースコード</a>）<br />
<iframe width="853" height="480" src="http://www.youtube.com/embed/P2d4ueZb30w" frameborder="0" allowfullscreen></iframe><br />
<br />
<br />
空中マウスは操作が難しくてボツになりました。でもこういうのを実験的に作る時に、イチからAndroidアプリを書くのと比べて全然楽に実装できます。プロトタイピングにも向いている。<br />
<br />
<br />
<a href="http://shokai.org/blog/archives/5699">研究室のドアの鍵開ける奴</a>も、ほとんどプログラム書いたこと無い後輩にサンプル見せて、作ってよーって頼んだら1日でできてしまったので、それなりに使いやすいんじゃないかなと思います。setIntervalで50msecごとにジャイロスコープを監視して、+90度以上回ったらドアを開けるだけだし。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5719/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubyでcometサーバー作る</title>
		<link>http://shokai.org/blog/archives/5712</link>
		<comments>http://shokai.org/blog/archives/5712#comments</comments>
		<pubDate>Mon, 21 Nov 2011 18:18:20 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Comet]]></category>
		<category><![CDATA[EventMachine]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5712</guid>
		<description><![CDATA[最近cometとかいう最新技術が流行っているらしいので、eventmachine_httpserverで作ってみた。 ここにサーバーとクライアントの例がある。どっちも50行ぐらいで実装できた。 comet at mast [...]]]></description>
			<content:encoded><![CDATA[<p>
最近cometとかいう最新技術が流行っているらしいので、eventmachine_httpserverで作ってみた。<br />
<br />
<br />
ここにサーバーとクライアントの例がある。どっちも50行ぐらいで実装できた。<br />
<a href="https://github.com/shokai/eventmachine-study/tree/master/comet">comet at master from shokai/eventmachine-study &#8211; GitHub</a><br />
<br />
サーバー起動して、タイムアウトを10秒に指定。<br />
このサーバーは、POSTされた値を保持して、GETされたら返す。GETに対してはレスポンスを遅らせて返す。<br />
<pre class="prettyprint">
ruby server.rb 8080 10<br />
</pre>
<br />
<br />
クライアントを起動。GETしてから25秒後にPOST<br />
<pre class="prettyprint">
ruby client.rb 25<br />
</pre>
<pre>
GET(comet) -> wait 25 sec -> POST<br />
* GET<br />
sleep 25 sec<br />
404  ## 10秒経過、切断された<br />
<br />
* GET  ## 再接続<br />
404<br />
<br />
* GET  ## 3回目<br />
* POST kazusuke<br />
POST success<br />
200<br />
kazusuke<br />
200  ## 5秒待ってようやく値が返ってきた<br />
kazusuke<br />
* GET<br />
</pre>
<br />
サーバー側のログはこんなんなってた<br />
<pre>
http server start, port:8080, comet_timeout:10(sec)<br />
load: 2.20  cmd: ruby 11481 waiting 0.45u 0.32s<br />
request_method : GET<br />
path_info : /message<br />
query_str :<br />
post_content :<br />
request_method : GET<br />
path_info : /message<br />
query_str :<br />
post_content :<br />
request_method : POST<br />
path_info : /message<br />
query_str :<br />
post_content : kazusuke<br />
kazusuke<br />
request_method : GET<br />
path_info : /message<br />
query_str :<br />
post_content :<br />
</pre>
<br />
cometサーバー、接続が不安定なクライアントにpush通知するのに便利。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5712/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SFCにVPSがやってきた</title>
		<link>http://shokai.org/blog/archives/5705</link>
		<comments>http://shokai.org/blog/archives/5705#comments</comments>
		<pubDate>Fri, 11 Nov 2011 18:11:18 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[ERNS-VPS]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5705</guid>
		<description><![CDATA[大学で仮想サーバーが無料で借りれる時代が来てしまった。 電源とか配線とか置き場所の問題をクリアして、グローバルIPありport全開root権限ありのサーバーが手に入る。 最近はすごい重い計算をさせるとかはあんまり無くて、 [...]]]></description>
			<content:encoded><![CDATA[<p>
大学で仮想サーバーが無料で借りれる時代が来てしまった。<br />
電源とか配線とか置き場所の問題をクリアして、グローバルIPありport全開root権限ありのサーバーが手に入る。<br />
<br />
最近はすごい重い計算をさせるとかはあんまり無くて、単にどこからでも参照できるwebサーバーが必要だったり、node.js使うのにportがたくさん必要だったり、webサイトをクロールするためにずっと起動しているマシンが必要だったりするわけで実に研究設備として有益ですばらしい。ERNSの人ありがとう。<br />
<br />
<br />
SFCの大学院生は<a href="http://www.mag.keio.ac.jp/erns/news/vps-500b4eba75284eee60f330b530fc-30b530fc30b9306e8a669a13904b7528958b59cb306b306430443066">VPS (個人用仮想サーバ)サービスの試験運用開始について — Erns web site</a>の要項を埋めてメールで申し込める。学内からしか見れないページだけど。<br />
<br />
ちょうどサーバーが2台必要だったので申し込んだ。<br />
<br />
<br />
<br />
スペックはこれ。<br />
<ul>
  <li>CPU : 2.67GHz 1コア</li>
  <li>メインメモリ：512MB</li>
  <li>ネットワーク：動的IPv4アドレス　1アドレス</li>
  <li>ストレージ：20GB</li>
  <li>OSもLinux系から選べる。UbuntuやDebianやFedoraCoreやCentOSなど</li>
</ul>
<br />
<br />
<br />
<a href="https://www.mag.keio.ac.jp/form/vps/">コントロールパネル</a>からサーバー起動できる。<br />
<a href="http://www.flickr.com/photos/shokai/6335207488/" title="SFC ERNS VPS by shokai, on Flickr"><img src="http://farm7.static.flickr.com/6095/6335207488_468598c08c_z.jpg" width="640" height="597" alt="SFC ERNS VPS"></a><br />
<br />
<br />
起動して、右のTerminalのアイコンを押したらJavaのVNCコンソールが起動して、Ubuntuのインストール画面が出た。ハイテク！！<br />
<a href="http://www.flickr.com/photos/shokai/6335207542/" title="SFC ERNS VPS by shokai, on Flickr"><img src="http://farm7.static.flickr.com/6217/6335207542_a53de978f8_o.png" width="670" height="562" alt="SFC ERNS VPS"></a><br />
<br />
<br />
ふつうにUbuntuをセットアップして、sshdを起動して<br />
<pre class="prettyprint">
sudo apt-get install sshd<br />
sudo ifconfig<br />
</pre>
でIP確認して、sshで外から接続できるようにした。<br />
<br />
<br />
あとは自分のMacから<br />
<pre class="prettyprint">
ssh yourname@133.27.xx.xxx<br />
</pre>
で接続できる。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5705/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AndroidとNFCで研究室の鍵を開けるシステムができた</title>
		<link>http://shokai.org/blog/archives/5699</link>
		<comments>http://shokai.org/blog/archives/5699#comments</comments>
		<pubDate>Thu, 10 Nov 2011 10:27:55 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[GoldFish]]></category>
		<category><![CDATA[NFC]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5699</guid>
		<description><![CDATA[先週、後輩のN園が作ってくれました。 AndroidでNFCタグを読むと鍵開けアプリが起動 ジェスチャー入力をSinatraで書かれたドアサーバーに伝える ドアサーバーはPhidgetsのサーボモーターを駆動し、鍵をヒモ [...]]]></description>
			<content:encoded><![CDATA[<p>
先週、後輩のN園が作ってくれました。<br />
<iframe width="640" height="480" src="http://www.youtube.com/embed/03sh3cXrXuw" frameborder="0" allowfullscreen></iframe><br />
<br />
<ol>
  <li>AndroidでNFCタグを読むと鍵開けアプリが起動</li>
  <li>ジェスチャー入力をSinatraで書かれたドアサーバーに伝える</li>
  <li>ドアサーバーはPhidgetsのサーボモーターを駆動し、鍵をヒモで引っ張って開ける</li>
</ol>
<br />
最近はAndroidでNFCタグを読むとタグ毎のwebアプリが起動し、しかもPhoneGapみたいにJavaとJavaScriptのブリッジが書かれているのでセンサーが使えるというシステムを作っている。<br />
6月にNHKのITホワイトボックスでデモした奴の発展版で、GoldFishという開発コードで呼んでいる。<br />
<br />
<br />
こんなメリットがある<br />
<ul>
  <li>HTMLとJS（と必要あればwebアプリ）が書ければアプリを作れる環境</li>
  <li>実世界の物体を指し示して、「アレをコレに」とか操作できる</li>
  <li>GUIだけではなくジェスチャーも入力できる</li>
  <li>状況によってインタフェースが変化する</li>
  <li>誰が使っているかによって内容が変化させられる</li>
</ul>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5699/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>赤外線学習リモコンKURO-RSのWebコントロールパネル作った</title>
		<link>http://shokai.org/blog/archives/5691</link>
		<comments>http://shokai.org/blog/archives/5691#comments</comments>
		<pubDate>Mon, 07 Nov 2011 23:45:41 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[KURO-RS]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sinatra]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=5691</guid>
		<description><![CDATA[赤外線学習リモコンをWebブラウザから使えるようにした。SinatraとMongoDBで、RubyでBuffalo/玄人志向の赤外線学習リモコンを操作するで作ったkuro-rs-serverを操作する。 shokai/k [...]]]></description>
			<content:encoded><![CDATA[<p>
赤外線学習リモコンをWebブラウザから使えるようにした。SinatraとMongoDBで、<a href="http://shokai.org/blog/archives/5681">RubyでBuffalo/玄人志向の赤外線学習リモコンを操作する</a>で作ったkuro-rs-serverを操作する。<br />
<br />
<br />
<a href="https://github.com/shokai/kuro-rs-control-panel">shokai/kuro-rs-control-panel &#8211; GitHub</a><br />
<br />
<br />
これでアプリから様々な機器を操作できる。家に帰る前に暖房つけたりとかNFCでテレビ動かしたりとか。<br />
<br />
<br />
機能はこれだけ。全部GUIとJSON APIがある。<br />
<ol>
  <li>赤外線を読む</li>
  <li>赤外線データに名前をつけて保存する</li>
  <li>名前を指定して赤外線を発射させる</li>
  <li>データ内容を指定して赤外線を発射させる</li>
</ol>
<br />
<br />
■画面<br />
保存した赤外線データの一覧と、新規データの保存ボタンがある<br />
<a href="http://www.flickr.com/photos/shokai/6323596647/" title="KURO-RS Control Panel by shokai, on Flickr"><img src="http://farm7.static.flickr.com/6034/6323596647_d0b1d2ff13_o.png" width="420" height="438" alt="KURO-RS Control Panel"></a><br />
<br />
<br />
赤外線データのpermalink。 /ir/(名前) にある。<br />
学習ボタンを押してすぐKURO-RSに赤外線を当てると<br />
<a href="http://www.flickr.com/photos/shokai/6324124688/" title="KURO-RS Control Panel by shokai, on Flickr"><img src="http://farm7.static.flickr.com/6230/6324124688_b797674382_o.png" width="420" height="310" alt="KURO-RS Control Panel"></a><br />
<br />
<br />
読み取られる。保存したりその場で試し撃ちしたりできる。<br />
<a href="http://www.flickr.com/photos/shokai/6324124758/" title="KURO-RS Control Panel by shokai, on Flickr"><img src="http://farm7.static.flickr.com/6115/6324124758_858599249d_o.png" width="430" height="677" alt="KURO-RS Control Panel"></a><br />
画面下にAPIのヘルプがあって、<br />
<pre class="prettyprint">
curl -d 'name=tv/ch2' http://localhost:8787/kuro-rs.json<br />
</pre>
のようにHTTP-POSTで名前を指定して赤外線発射、などの方法が書いてある。<br />
<br />
<br />
<br />
■使ってみよう<br />
Sinatraの他にMongoDBと、<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B000I0RDJI/shokai-22">KURO-RS</a>が必要。<br />
このコントロールパネルはkuro-rs-serverと通信するので、サーバーとは別プロセスでkuro-rs-serverも起動して使う。<br />
<br />
<pre class="prettyprint">
git clone git://github.com/shokai/kuro-rs-control-panel.git<br />
cd kuro-rs-control-panel<br />
bundle install<br />
cp sample.config.yaml config.yaml<br />
</pre>
config.yamlを編集する。kuro-rs-serverのアドレスぐらいしか編集する必要ない。<br />
<br />
<br />
kuro-rs-serverを起動する<br />
<pre class="prettyprint">
kuro-rs-server /dev/tty.usbserial-00012a34b5 --port 8786<br />
</pre>
<br />
<br />
コントロールパネルも起動する<br />
<pre class="prettyprint">
ruby development.rb<br />
</pre>
もしくはpassenger使うとよい。<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/5691/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

