Hatena::ブログ(Diary)

akimatter このページをアンテナに追加 RSSフィード

2013-05-26

RBC勉強会で組み込みRuby

| 23:54 |  RBC勉強会で組み込みRubyを含むブックマーク  RBC勉強会で組み込みRubyのブックマークコメント

25日土曜日に福岡Rubyコンテンツセンターで久しぶりのRBC勉強会が開かれました。

福岡CSKさんのご協力で開発中の製品を使わせて頂きました。

http://enzi.cc/

この製品の説明は上のサイトにお任せするとして、僕個人的にはハードウェアを触るのは20年ぶりで、抵抗の読み方とかコードの色の話は「あーそんなんあったよね、中身覚えてないけど」という感じのダメっぷりです。かろうじてLEDとか抵抗の役割くらいは分かる感じ。

そんな感じなので、いきなりボードを渡されても何をしたらいいのか分からんとなってしまいましたが、福岡CSK三牧さんが最初LEDを光らせる「LEDチカチカ」略して「エルチカ」のデモを見せてくれたので、まずはそれを真似することを目標しました。

まずはプログラムなしで、LEDを点灯させる配線をつないだだけで、光った「おー」と喜ぶ初心者っぷり。

次は、配線を変えてデジタルのIOにつないで、いよいしょエルチカを体験。

https://github.com/akm/rbc_mruby/blob/master/cds.rb#L19

enziの開発のサイクルはかなリ分かりやすかったです。

1. プログラム記述

2. サイトシミュレータコンパイル=>実行ファイルダウンロード

3. SDカードに実行ファイルコピー

4. ボードにSDカードを挿入

5. ボードを再起動

6. ターミナルで出力を確認(問題があったらターミナルで分かる)

7. 1に戻る

コンパイル時間とか考えるとAndroidの実機テストより軽い感じです。

で、三牧さんのコードで動くことを確認したら、ちょっと要領が掴めてきたので、光センサを使ったものを作ろうということになりました。光センサが明るさを感じなかったらLEDを点灯し、明るさを感じたら消灯するというものです。

ちなみにCdSと硫化カドミウム意味で、正しくは「硫化カドミウムセル」という名前の「フォトレジスタ」というものなのだそうです。

http://ja.wikipedia.org/wiki/フォトレジスタ

使った製品はこちら。

http://doc.chipfind.ru/hamamatsu/p3807r.htm

やってみてわかったんですが、通常は0を出力していて、暗くなると正の値を返すんですね。なるほどー。やってみると非常にわかりやすい。書いたコードがこちらです。 https://github.com/akm/rbc_mruby/blob/master/cds.rb#L6


で、ここらへんでだいぶわかってきたので、今回誰もやらないであろうと予想されていた通称7セグ」を選択してみることに。

製品マニュアルはこちら

http://rohmfs.rohm.com/en/products/databook/datasheet/opto/led_display/numeric/lb-603fp.pdf

うひー、意味わかんねー。

三牧さんや前席の古川さんのアドバイスとペアを組んだウチダさんの見事な回路構成によって、なんとかなっちゃうものなんですね、かなりサクッと書けました*1

https://github.com/akm/rbc_mruby/blob/master/led_display.rb

で、実際に動いたものがこれです。

http://www.youtube.com/watch?v=7zLfmLnpnSM

もうこれができたらだいぶ満足してしまって、色々デバイス使いたいよねーとかネットワーク繋ぎたいとかそんな話をしていました。

他のペアの皆さんも温度センサを使ってLED RGBを制御したりしてました。とても楽しい勉強会でした。


僕らが作ったものは冷静に考えると特に大したモノではないんですが、13:00 に始まった勉強会で、16:00にはこれが出来上がっていたのは素晴らしい敷居の低さだと思います。これでちょっとハードウェアに近づくことができたかなと思えました。

実際のものづくりはもっと色々考えなきゃいけないことがたくさんあるんだと思いますが、初心者にとっては入り口を広げるためにとても強力なツールだと思います。

製品のリリースが待ち遠しいです。

http://enzi.cc/


ボードを貸していただいた福岡CSKの岡部さん、石井さん、三牧さん、勉強会を開いて頂いた島村さん、他さんかしてくださった皆さん、ありがとうございました。

*1:currをcuurと間違えたので時間的に結構ロスしましたがw

トラックバック - http://d.hatena.ne.jp/akm/20130526

2013-01-28

schema_comments-0.2.0 リリース

17:07 |  schema_comments-0.2.0 リリースを含むブックマーク  schema_comments-0.2.0 リリースのブックマークコメント

schema_comments-0.2.0ーalpha5 から9ヶ月も過ぎてしまいましたが、リリースしました

https://rubygems.org/gems/schema_comments

基本的な機能は変わってませんが、MySQL用のスキーマの出力が変わっています。もし前の方が良い、という方がいたらご連絡ください。

その他、ドキュメントソース放置しっぱなしの態度その他諸々にご意見のある方はぜひ、ここのコメントか、pull requestかtwitterか何かでお知らせください。

https://github.com/akm/schema_comments

トラックバック - http://d.hatena.ne.jp/akm/20130128

2012-12-02

忙しさを言い訳にしてなかなか外に行けない病をこじらせてたakmです。リハビリの一環でブログを久しぶりに書きますが、久しぶりすぎて緊張しています。よろしくお願いします。

[ruby] 福岡Ruby会議01

23:32 |  [ruby] 福岡Ruby会議01を含むブックマーク  [ruby] 福岡Ruby会議01のブックマークコメント

行ってきました、福岡Ruby会議01。本当すばらしいイベントでした。

まとめはこちらですね。

- 主催者 @Spring_MT のブログ http://spring-mt.tumblr.com/post/37018290719/ruby-01

- @ayato_p のまとめ http://togetter.com/li/416276

僕はあんまり皆が取り上げてないところを書いてみます

1. 「フィードバックループを伸ばしていく」

@kakutani の基調講演での表現。正確じゃないかもだけど、僕の中でじわじわきてます

まずは近所で小さくフィードバックをもらえるようにして、だんだん遠くの人からフィードバックをもらえるようにしていく、ってことをイメージしました。

2. Rails cells

@Spring_MT のプレゼンで知りました。そう言えば、そういうのから遠ざかってるなー。

http://cells.rubyforge.org/


3. Rubeus

@ayato_p のLTrequire 'rubeus' というコードが!僕のRubeusを使っている!

絶賛放置中ですが、人の役に立てて良かったなーと思いました。

よかったら見てやってください。

http://code.google.com/p/rubeus/

https://github.com/akm/rubeus


4. Fukuoka.rbがやってくれて良かった

RBCスタッフをやってる僕が言うのも変ですが、ちゃんとやってるからいい感じになったんだろうなーと思いました。

素晴らしいRubyKaigiを開いて頂いてありがとうございました。


みなさん、お疲れさまでした。

またよろしくお願いします。

トラックバック - http://d.hatena.ne.jp/akm/20121202

2012-08-25

linecache19 を headに入れるのは大変

| 12:07 |  linecache19 を headに入れるのは大変を含むブックマーク  linecache19 を headに入れるのは大変のブックマークコメント

rails_adminのテストを動かそうと思ってbundle installしたらエラーになった。

Installing linecache19 (0.5.12) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

(中略)
Requesting http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p209.tar.gz

Gem files will remain installed in /Users/akima/.rvm/gems/ruby-1.9.3-head@rails_admin/gems/linecache19-0.5.12 for inspection.
Results logged to /Users/akima/.rvm/gems/ruby-1.9.3-head@rails_admin/gems/linecache19-0.5.12/ext/trace_nums/gem_make.out
An error occured while installing linecache19 (0.5.12), and Bundler cannot continue.
Make sure that `gem install linecache19 -v '0.5.12'` succeeds before bundling.

そりゃheadですもん、p209なんてアーカイブはないよね。

ruby-1.9.3-headの環境インストールしようとしてたんで、.rvmrc はこんな感じだったんだけど、

rvm 1.9.3-head@rails_admin --create

ちゃんとstableなバージョンrubyを使うようにしたら、bundle installは一発で通りました。

rvm 1.9.3-p194@rails_admin --create
トラックバック - http://d.hatena.ne.jp/akm/20120825

2012-08-21

一番分かり易かったCAP定理の説明

23:31 |  一番分かり易かったCAP定理の説明を含むブックマーク  一番分かり易かったCAP定理の説明のブックマークコメント

CAPを理解する最も簡単な方法は分割の両側にひとつずつノードがある場合を考えることです。片方のノードだけ状態を更新できるようにすると、2つのノード一貫性がなくなります。つまり、Cが失われます一貫性を維持しようとすれば、一方のノードは利用できない状態であるかのように動作しなければなりません。この場合、Aが失われます一貫性と可用性が維持できるのは、ふたつのノードが通信できる場合だけです。この場合、Pが失われます

12年後のCAP定理: "法則"はどのように変わったか」より

http://www.infoq.com/jp/articles/cap-twelve-years-later-how-the-rules-have-changed

@taigou に教えてもらいました。

トラックバック - http://d.hatena.ne.jp/akm/20120821

2012-08-10

rubyでEXCEL

| 10:14 |  rubyでEXCELを含むブックマーク  rubyでEXCELのブックマークコメント

もちろんWin32 OLEとかを使う方法もあるけど、それ以外にもいろいろライブラリはある。

https://rubygems.org/search?utf8=%E2%9C%93&query=excel

先頭のparseexcelは今はspreadsheetになっている。

gemxlsx?書き込み?備考
spreadsheetNGOK読み書きできて実装も良さげ
rooOKNG日本語読むのはOK。実装がイマイチな噂あり

あと、 rubyじゃないけど、 libxlsっていうのもある。

http://libxls.sourceforge.net/

コレ使ったgemとかあった気がしたんだけど見つからんかった。

spreadsheet試してみたけど・・・

Spreadsheet.open "/path/to/file.xls"

で、結合とか何もない50KくらいのEXCELファイルをMacで開いてみたけど、ループしてるのか帰ってこない。泣ける。

spreadsheet動いた

Spreadsheet.open "/path/to/file.xls"

っていうのは実はirbで確かめていたんだけど、正確にはopenメソッドが帰ってこないんじゃなくて、irbに結果を出力されるために自動的に呼び出されるinspectメソッドが帰ってこないことが判明。

だからirbで試す場合こんな感じでやるべし。

$ irb -rspreadsheet
1.9.3-head :001 > book = Spreadsheet.open "tmp/atsumeyo-ze.xls"; nil
 => nil 
1.9.3-head :002 > book.class
 => Spreadsheet::Excel::Workbook 

bookのinspectが実行されないように、 ;nil をつけないとダメ。

spreadsheetで読み込みできることは確認できました。



spreadsheetで変更すると壊れる

既存の.xlsファイルを開いて既存のシートの既存のセルを上書きしたり、シートを追加してみたりしましたが、データが壊れてしまうようです・・・。残念。

トラックバック - http://d.hatena.ne.jp/akm/20120810
最近読んだ本
  • 情熱プログラマー ソフトウェア開発者の幸せな生き方
  • 禁煙セラピー[セラピーシリーズ]
  • 入門git
  • 入門Git
  • もやしもん(8) (イブニングKC)
  • JRuby 徹底入門
  • 入門Subversion―Windows/Linux対応
  • Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック
  • プログラミングRuby 第2版 言語編
  • プログラミングRuby 第2版 ライブラリ編