<?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>toyosystem &#187; Gainer</title>
	<atom:link href="http://www.jamboree.jp/cms/archives/category/gainer/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jamboree.jp/cms</link>
	<description>名古屋在住のWebプログラマー</description>
	<lastBuildDate>Fri, 26 Aug 2011 12:41:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>パトランプでサーバ監視 with Gainer,Ruby</title>
		<link>http://www.jamboree.jp/cms/archives/201</link>
		<comments>http://www.jamboree.jp/cms/archives/201#comments</comments>
		<pubDate>Mon, 14 Jul 2008 09:36:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gainer]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/201</guid>
		<description><![CDATA[CSNagoyaのLTで「RubyとGainerで行うサーバ監視」というタイトルで発表しました。 概要 「サーバがピンチだっていうのにアラートメールが届くだけなんて地味すぎだろ」 というコンセプトのもとに、サーバのロードアベレージをチェックし、高いようであればパトランプを点灯させるというものを作ってみました。本来のサーバ監視という意味ではロードアベレージだけチェックするのはいまいちですが、そのあたりは改良していきたいと思います。むしろRubyとGainerだけで、こんなに簡単にできるんだということが伝われば幸いです。 動作している様子 といっても、パトランプが点灯するだけですが。仕事中に突然これが光りだすのはエキサイティングです。 システム概要 非常に単純ですね。調査もとのマシンから、監視対象サーバにSSHでログインしてロードアベレージをチェックします。その後ロードアベレージが一定の値を超えていたらGainer経由でパトランプを点灯させます。 回路 パトランプは１２Vで動くものです。ネタのためだけに欲しかっただけなのに6000円もして悲しかった。 回路図はこんな感じです。Gainerから出る信号は弱い（多分３Vぐらい？）なので当然パトランプを直接点灯させられません。そこでパトランプにはリレーと12Vの電源をつけてやり、そのリレーのON/OFFをトランジスタによるスイッチで行いました。 コード たったこれだけのコードでできるというのが驚きです。Gainerとのやり取りはFunnelというソフトを使いました。GainerやArduinoに対応した便利なツールキットのことでIOのフィルタなどをいい感じにやってくれるものです。 PLAIN TEXT RUBY: require 'rubygems' require 'net/ssh' require 'funnel' &#160; def get_load_average&#40;str&#41; &#160; return str.slice&#40;/load average: &#40;&#91;^,&#93;+&#41;/,1&#41;.to_f end &#160; &#160; &#160; module Funnel &#160; &#160; la = 0.0 &#160; &#160; Net::SSH.start&#40;ARGV&#91;0&#93;, ARGV&#91;1&#93;, :password =&#62; ARGV&#91;2&#93;&#41; do &#124;ssh&#124; &#160; &#160; &#160; la = [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jamboree.jp/cs/">CSNagoya</a>のLTで「RubyとGainerで行うサーバ監視」というタイトルで発表しました。</p>
<h2>概要</h2>
<p>「<strong>サーバがピンチだっていうのにアラートメールが届くだけなんて地味すぎだろ</strong>」<br />
というコンセプトのもとに、サーバのロードアベレージをチェックし、高いようであればパトランプを点灯させるというものを作ってみました。本来のサーバ監視という意味ではロードアベレージだけチェックするのはいまいちですが、そのあたりは改良していきたいと思います。むしろRubyとGainerだけで、こんなに簡単にできるんだということが伝われば幸いです。</p>
<h2>動作している様子</h2>
<p>といっても、パトランプが点灯するだけですが。仕事中に突然これが光りだすのはエキサイティングです。<br />
<embed flashvars="autoplay=false" width="320" height="260" allowfullscreen="true" allowscriptaccess="always" src="http://www.ustream.tv/flash/video/557446" type="application/x-shockwave-flash" /></p>
<h2>システム概要</h2>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/all.png' alt='all.png' /><br />
非常に単純ですね。調査もとのマシンから、監視対象サーバにSSHでログインしてロードアベレージをチェックします。その後ロードアベレージが一定の値を超えていたらGainer経由でパトランプを点灯させます。</p>
<h2>回路</h2>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/dsc00243.jpg' alt='dsc00243.jpg' /><br />
パトランプは１２Vで動くものです。ネタのためだけに欲しかっただけなのに6000円もして悲しかった。<br />
<img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/gainer_map.gif' alt='gainer_map.gif' /><br />
回路図はこんな感じです。Gainerから出る信号は弱い（多分３Vぐらい？）なので当然パトランプを直接点灯させられません。そこでパトランプにはリレーと12Vの電源をつけてやり、そのリレーのON/OFFをトランジスタによるスイッチで行いました。</p>
<h2>コード</h2>
<p>たったこれだけのコードでできるというのが驚きです。Gainerとのやり取りはFunnelというソフトを使いました。GainerやArduinoに対応した便利なツールキットのことでIOのフィルタなどをいい感じにやってくれるものです。</p>
<div class="igBar"><span id="lruby-2"><a href="#" onclick="javascript:showCodeTxt('ruby-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">RUBY:</span>
<div id="ruby-2">
<div class="ruby">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'rubygems'</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'net/ssh'</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'funnel'</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">def</span> get_load_average<span style="color:#006600; font-weight:bold;">&#40;</span>str<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF; font-weight:bold;">return</span> str.<span style="color:#9900CC;">slice</span><span style="color:#006600; font-weight:bold;">&#40;</span>/<span style="color:#CC0066; font-weight:bold;">load</span> average: <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>^,<span style="color:#006600; font-weight:bold;">&#93;</span>+<span style="color:#006600; font-weight:bold;">&#41;</span>/,<span style="color:#006666;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_f</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">module</span> Funnel</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; la = <span style="color:#006666;color:#800000;">0</span>.<span style="color:#006666;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Net::SSH.<span style="color:#9900CC;">start</span><span style="color:#006600; font-weight:bold;">&#40;</span>ARGV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>, ARGV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>, :password =&gt; ARGV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> |ssh|</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; la = get_load_average<span style="color:#006600; font-weight:bold;">&#40;</span>ssh.<span style="color:#CC0066; font-weight:bold;">exec</span>!<span style="color:#006600; font-weight:bold;">&#40;</span>'uptime'<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> la&gt; <span style="color:#006666;color:#800000;">2</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio = Gainer.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>Gainer::MODE1<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">300</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>発表資料</h2>
<div style="width:425px;text-align:left" id="__ss_512161"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=rubygainer-1216026495560597-8"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rubygainer-1216026495560597-8" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/toyoshi/gainerruby?src=embed" title="View GainerとRubyで行うサーバ監視 on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div>
</div>
<h2>まとめ</h2>
<p>今回はGainerとRubyでパトランプを点灯させてみました。Gainerについて興味をもったかたは以前<a href="http://www.jamboree.jp/cms/archives/191">エントリーを書きましたのでそちら</a>をご覧下さい。</p>
<p>また8月に開催される<a href="http://www.ospn.jp/osc2008-nagoya/">OSC NAGOYA</a>には開発者の小林茂さんが講演に来てくださいます。<br />
お近くのかたは是非ご参加ください。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/201/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GainerでマルチカラーLED点灯の実習</title>
		<link>http://www.jamboree.jp/cms/archives/198</link>
		<comments>http://www.jamboree.jp/cms/archives/198#comments</comments>
		<pubDate>Fri, 11 Jul 2008 01:39:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gainer]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/198</guid>
		<description><![CDATA[まだまだGainerで遊んでいます。コードを書いていてRubyの資産がすべて使えるというのは本当に凄いことなんだなと思いました。今週の日曜日にCSNagoyaのHaskell勉強会にてLTの時間があるので、いまからそれなりに実用的なものをつくって発表しようと思います。 作ったもの LEDが「青」=>「黄色点滅」=>「赤」と信号のように光ります。いかにも電子工作やプログラミングの入門っぽくていいですね。 コード PLAIN TEXT RUBY: require 'funnel' &#160; &#160; &#160; module Funnel &#160; &#160; gio = Gainer.new&#40;Gainer::MODE1&#41; &#160; &#160; gio.aout&#40;1&#41;.value = 1 &#160; &#160; sleep&#40;3&#41; &#160; &#160; gio.aout&#40;1&#41;.value = 0 &#160; &#160; 7.times&#123; &#160; &#160; &#160; gio.aout&#40;0&#41;.value = 1 &#160; &#160; &#160; gio.aout&#40;3&#41;.value = 1 &#160; &#160; &#160; sleep&#40;0.5&#41; &#160; &#160; &#160; gio.aout&#40;0&#41;.value [...]]]></description>
			<content:encoded><![CDATA[<p>まだまだGainerで遊んでいます。コードを書いていてRubyの資産がすべて使えるというのは本当に凄いことなんだなと思いました。今週の日曜日に<a href="http://www.jamboree.jp/cs/">CSNagoyaのHaskell勉強会</a>にてLTの時間があるので、いまからそれなりに実用的なものをつくって発表しようと思います。</p>
<h2>作ったもの</h2>
<p>LEDが「青」=>「黄色点滅」=>「赤」と信号のように光ります。いかにも電子工作やプログラミングの入門っぽくていいですね。<br />
<embed flashvars="autoplay=false" width="320" height="260" allowfullscreen="true" allowscriptaccess="always" src="http://www.ustream.tv/flash/video/547863" type="application/x-shockwave-flash" /></p>
<h2>コード</h2>
<div class="igBar"><span id="lruby-4"><a href="#" onclick="javascript:showCodeTxt('ruby-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">RUBY:</span>
<div id="ruby-4">
<div class="ruby">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'funnel'</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">module</span> Funnel</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gio = Gainer.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>Gainer::MODE1<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006666;color:#800000;">7</span>.<span style="color:#9900CC;">times</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">1</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span>.<span style="color:#006666;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span>.<span style="color:#006666;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">3</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h2>まとめ</h2>
<p>ちょっと大須いってくる</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/198/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gainer+Ruby+Twitterで「お知らせTwitter」</title>
		<link>http://www.jamboree.jp/cms/archives/196</link>
		<comments>http://www.jamboree.jp/cms/archives/196#comments</comments>
		<pubDate>Thu, 10 Jul 2008 00:00:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gainer]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/196</guid>
		<description><![CDATA[Gainerを買ったはいいのですが、残念なことにFlashを持ってなければASも書けないので、Rubyから使えるようにしてみようと思います。 作るもの Twitterで@メッセージをもらったはいいが返信が遅れて気まずいというような状態を避けるために、@メッセージをもらったらブザーが鳴り、LEDがチカチカするようなものを作ってみたいと思います。 なんだかパッとしませんがGainerで初めて作るものなのでこんなもんです。 今回も参考サイト様様でしたので。先に参考サイトを紹介させていただきます。 参考サイト RubyからFunnelで加速度センサー(Gainer)の値を取得してみた (Unknown Quality) Gainer を Ruby から使う Greenbear Laboratory - Ruby Twitter Gem簡易リファレンス hwhack: Gainerとrubyとtwitter　（あるいはタンジブルなtwitter) まずはセットアップ WindowsXP用ドライバをダウンロード http://gainer.cc/Download Funnelをダウンロード http://code.google.com/p/funnel/downloads/list C:\gainer\funnel以下に配置 RubyからFunnelを扱うためにOpen Sound Controlをインストール RAA - osc http://raa.ruby-lang.org/project/osc/ OSCのインストールは以下のようにコマンドを打つだけ > ruby install.rb config > ruby install.rb setup > ruby install.rb install GainerモジュールをUSBに差し込むとドライバの場所を聞かれるので、先ほどダンロードしたものを指定。 2回聞かれますので2回同じ事をします。 funnelを起動します。 C:\gainer\funnel\server>java -jar funnel_server.jar するとjavaのウインドウが開いて Funnel [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/6.jpg' alt='6.jpg' /><br />
Gainerを買ったはいいのですが、残念なことにFlashを持ってなければASも書けないので、Rubyから使えるようにしてみようと思います。</p>
<h2>作るもの</h2>
<p>Twitterで@メッセージをもらったはいいが返信が遅れて気まずいというような状態を避けるために、@メッセージをもらったら<strong>ブザーが鳴り</strong>、<strong>LEDがチカチカ</strong>するようなものを作ってみたいと思います。<br />
なんだかパッとしませんがGainerで初めて作るものなのでこんなもんです。</p>
<p>今回も参考サイト様様でしたので。先に参考サイトを紹介させていただきます。</p>
<h2>参考サイト</h2>
<p><a href="http://un-q.net/2008/03/ruby_funnel_gainer_ocs.html">RubyからFunnelで加速度センサー(Gainer)の値を取得してみた (Unknown Quality)</a><br />
<a href="http://8-p.info/gainer-ruby/">Gainer を Ruby から使う</a><br />
<a href="http://mono.kmc.gr.jp/~yhara/w/?RubyTwitterJa">Greenbear Laboratory - Ruby Twitter Gem簡易リファレンス</a><br />
<a href="http://hwhack.blogspot.com/2008/04/gainerrubytwitter-gainer-processing.html">hwhack: Gainerとrubyとtwitter　（あるいはタンジブルなtwitter)</a></p>
<h2>まずはセットアップ</h2>
<p>WindowsXP用ドライバをダウンロード</p>
<p>http://gainer.cc/Download</p>
<p>Funnelをダウンロード</p>
<p>http://code.google.com/p/funnel/downloads/list</p>
<p>C:\gainer\funnel以下に配置</p>
<p>RubyからFunnelを扱うためにOpen Sound Controlをインストール<br />
RAA - osc</p>
<p>http://raa.ruby-lang.org/project/osc/</p>
<p>OSCのインストールは以下のようにコマンドを打つだけ<br />
> ruby install.rb config<br />
> ruby install.rb setup<br />
> ruby install.rb install</p>
<p>GainerモジュールをUSBに差し込むとドライバの場所を聞かれるので、先ほどダンロードしたものを指定。<br />
2回聞かれますので2回同じ事をします。</p>
<p>funnelを起動します。<br />
C:\gainer\funnel\server>java -jar funnel_server.jar<br />
するとjavaのウインドウが開いて</p>
<blockquote><p>
Funnel 007 (2008-04-21)<br />
シリアルポートが指定されていないため自動的に取得されたポートを使用します<br />
I/Oモジュールと接続中です…<br />
tried: COM1<br />
I/Oモジュールと接続が完了しました：COM3<br />
I/Oモジュールを再起動中です…<br />
I/Oモジュールは正常に再起動しました<br />
ファームウェアのバージョン：1.0.0.15<br />
コマンドポート：サーバの起動中…<br />
通知ポート：サーバの起動中…<br />
通知ポート：サーバが起動しました：9001<br />
コマンドポート：サーバが起動しました：9000
</p></blockquote>
<p>こんな感じのメッセージが表示されればOK</p>
<h2>コードを書く</h2>
<div class="igBar"><span id="lruby-6"><a href="#" onclick="javascript:showCodeTxt('ruby-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">RUBY:</span>
<div id="ruby-6">
<div class="ruby">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$: &lt;&lt;'..'</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'rubygems'</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'twitter'</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0066; font-weight:bold;">require</span> 'funnel'</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">module</span> Funnel</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; agent = Twitter::Base.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>USER_NAME,PASSWORD<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; agent.<span style="color:#9900CC;">timeline</span><span style="color:#006600; font-weight:bold;">&#40;</span>:friends<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |s|</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">if</span> /^@USER_NAME/ =~ s.<span style="color:#9900CC;">text</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">p</span> s.<span style="color:#9900CC;">text</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio = Gainer.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>Gainer::MODE1<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#008000; font-style:italic;">#アナログ出力0についているブザーを鳴らす</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">aout</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">value</span> = <span style="color:#006666;color:#800000;">0</span>.<span style="color:#006666;color:#800000;">5</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#008000; font-style:italic;">#Gainerの基板についているLEDの点滅</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; Osc.<span style="color:#9900CC;">service_interval</span> = <span style="color:#006666;color:#800000;">33</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; blinker = Osc.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>Osc::SQUARE, <span style="color:#006666;color:#800000;">2</span>.<span style="color:#006666;color:#800000;">0</span>, <span style="color:#006666;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; gio.<span style="color:#9900CC;">led</span>.<span style="color:#9900CC;">filters</span> = <span style="color:#006600; font-weight:bold;">&#91;</span>blinker<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; blinker.<span style="color:#9900CC;">reset</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; blinker.<span style="color:#9900CC;">start</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">sleep</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:IG_LINE_COLOUR_1;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:IG_LINE_COLOUR_2;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>取得したタイムラインに@toyoshiがあると「ピー」「チカチカチカ」となるようになった。かなりシュールです。</p>
<p>gio.aout(0).value = 0.5<br />
この書き方とかが正しいのか不安なのと、Rubyのモジュールがよくわかっていないので、そのあたりを調べながら次回からは書籍に沿って勉強してみようかなと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/196/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gainerではじめるフィジカルコンピューティング</title>
		<link>http://www.jamboree.jp/cms/archives/191</link>
		<comments>http://www.jamboree.jp/cms/archives/191#comments</comments>
		<pubDate>Wed, 09 Jul 2008 23:40:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gainer]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/191</guid>
		<description><![CDATA[Gainerというのはフィジカルコンピューティングを実現するためのソフトウェアとハードウェアによる環境で、Flash,Processing,Rubyなどから簡単に外部のIOとやりとりができるのが特徴です。 私は今年の3月にWCAN mini ActionScript vol.5というのに参加させていただいたのがGainerとの最初の出会いでした。 GainerのIOモジュールを買う オリジナル版と、海外でリモデル（メカロボショップ）されたものが販売されています。私はTriggerDeviceShopがリニューアル中だったので、メカロボショップのスターターキットというのを+GAINERという本と一緒に買いました。書籍にあるかわいいダンボールがついてこなかったのが若干残念でしたが組み立てが不要なのはうれしかったです。+GAINERは出版社が倒産してしまったので今後入手困難になる可能性がありますので購入はお早めに TriggerDevice Shop（公式サイトで紹介されているサイト） http://triggerdevice.ocnk.net/ メカロボショップ（+GAINERの本のモジュールと若干違います） http://www.mecharoboshop.com/ 届いた メカロボショップのスターターキットと＋GAINERの書籍で約20,000円でした。 センサーやアクチュエーターがたくさんで夢がひろがりんぐです これがGainerのIOモジュール。ブレッドボードに挿すためのピンは最初ついていないので半田付けします。まずは四隅から。 半田付けが終わりました。ようこそフィジカルコンピューティングの世界へ！ まとめ ＋GAINERに掲載されている制作事例などがクリエイティブすぎて凹みました。 めげずに頑張ります。]]></description>
			<content:encoded><![CDATA[<p>Gainerというのはフィジカルコンピューティングを実現するためのソフトウェアとハードウェアによる環境で、Flash,Processing,Rubyなどから簡単に外部のIOとやりとりができるのが特徴です。</p>
<p>私は今年の3月に<a href="http://www.wcan.jp/members/index.php?ID=46">WCAN mini ActionScript vol.5</a>というのに参加させていただいたのがGainerとの最初の出会いでした。</p>
<h2>GainerのIOモジュールを買う</h2>
<p>オリジナル版と、海外でリモデル（メカロボショップ）されたものが販売されています。私はTriggerDeviceShopがリニューアル中だったので、メカロボショップのスターターキットというのを+GAINERという本と一緒に買いました。書籍にあるかわいいダンボールがついてこなかったのが若干残念でしたが組み立てが不要なのはうれしかったです。+GAINERは出版社が倒産してしまったので今後入手困難になる可能性がありますので購入はお早めに</p>
<p>TriggerDevice Shop（公式サイトで紹介されているサイト）<br />
<a href="http://triggerdevice.ocnk.net/">http://triggerdevice.ocnk.net/</a></p>
<p>メカロボショップ（+GAINERの本のモジュールと若干違います）<br />
<a href="http://www.mecharoboshop.com/">http://www.mecharoboshop.com/</a></p>
<h2>届いた</h2>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/1.jpg' alt='1.jpg' /><br />
メカロボショップのスターターキットと＋GAINERの書籍で約20,000円でした。</p>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/2.jpg' alt='2.jpg' /><br />
センサーやアクチュエーターがたくさんで夢がひろがりんぐです</p>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/4.jpg' alt='4.jpg' /><br />
これがGainerのIOモジュール。ブレッドボードに挿すためのピンは最初ついていないので半田付けします。まずは四隅から。</p>
<p><img src='http://www.jamboree.jp/cms/wp-content/uploads/2008/07/5.jpg' alt='5.jpg' /><br />
半田付けが終わりました。ようこそフィジカルコンピューティングの世界へ！</p>
<h2>まとめ</h2>
<p>＋GAINERに掲載されている制作事例などがクリエイティブすぎて凹みました。<br />
めげずに頑張ります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/191/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

