0

Ruby中級入門という勉強会やりました

今日やりました。夏休みだというのにたくさん人が来た。OBも来た。

増井研ではRubyは決してもう熱い最新の言語というより成熟した言語という感じで見られていて、実際若者は皆Node.jsを使っています。
でも俺はRubyの書き心地が好きなので、Rubyのどのへんが使ってて好きかをスライドにまとめてみました。なんかRuby書いてると、UIの使い勝手を地味に上げている時と同じあたりの脳の部位が活性化してて気分がいい。

スライド

アプリ内ライブラリやgemの作り方と、どういう点に気をつけて実装しているかまとめました。


中級に入門って意味わからない事にさっき気づいた。


書いてあるRubyのテクニックについては、参加者は半分ぐらい知ってたり知ってなかったりした。
ライブラリのデザインの話はフムフム的な反応がもらえた。



前:
Ruby勉強会(中級)やります
Ruby初級入門という勉強会やりました

0

Ruby勉強会(中級)やります

明日8/5(月) 14:00〜 SFCデルタ棟S112でやります

これの続き的な位置づけです → Ruby初級入門という勉強会やりました


主題:gemやアプリ内ライブラリを作る時に気をつけている事

コンテンツ

アプリ内ライブラリの作り方・gemの作り方
サンプルコードとテスト
ライブラリのデザイン
API
DSL
泥臭い小手先の技
例外・エラーの通知
ドキュメント


私以外に、RubyでIME作ってる人や、nodeのすごいconnectミドルウェアの人、babascriptのVMがいると思います

0

Ruby初級入門という勉強会やりました

まず全員Ruby2.0.0をインストールさせつつ、俺がRubyの色々なことを紹介したり、ライブコーディングした。

今日の資料です

Rubyそこそこ使ったことある人と全く使ったこと無い人が半々だった。
使ったことある人は前半がためになったとのこと。
ない人は後半のArrayやHashにsortやuniqやreverseなどをチェーンしていったり、mixやmaxやfindなど痒い所に手がとどくの良かったようだ。


スライドを前日からtwitterで公開していたら、@shigeyas先生からgem紹介にpryとawesome_printがあったほうがいいのでは、というツッコミがあって追加した。

「gemの使い方を調べる」のところでpryとawesome_printを使って色々調べるのも追加した。

教育体験のせいで1時間以上のスライドでも3時間ぐらいあれば作れるようになってしまった。


実演

最後にぶっこ抜き実演をやった。ぶっこぬきはクロール・HTML解析・DBに貯めて・通知するという総合芸術で、しかも日常的に使うから不満もすぐたまって改良欲求が高くなる。
自分で愛用できるツールを作って運用メンテしていくことがプログラミング学習の早道だと思うので、ぶっこ抜きをテーマにした。


教えていた人の中にデータマイニングが好きな奴がいたので、アニメスタッフデータベースというすごいwikiから制作スタッフが名をたくさん取ってくるクローラを書いた。お腹がすいたので完成せず終了して麺の月に行った。

役職名と名前が取得できるところまでは作った。あとは協調フィルタリングとかで便利なレコメンドwebサービス作れると思う。

ソース

1

Raspberry PiのSDカードをコピーする

Raspberry Piはアプリケーションを動かしている時はスペックに不満は無いんだけど、セットアップに時間がかかる。
CPUが遅いからraspbianをインストールして色々セットアップが済むまで6時間以上はかかる。

そこで、よく使うものをあらかじめインストールしつつ、ssh鍵やhistoryなどは削除したものをイメージファイルにしておくことにした。
イメージファイルになっていれば何枚でも別のSDカードに複製できる。


ここに置いた

http://masuilab.org/~sho/furnicomp/README.md
http://masuilab.org/~sho/furnicomp/raspi/


必要なもの

4GBのSDカード、MacかLinux


SDカードからイメージに書き出し


SDカードのデバイス名をチェック
mount
df

イメージに書き出し
diskutil umountDisk /dev/rdisk1
sudo dd if=/dev/rdisk1 of=20130710-furnipi.dmg bs=1m
diskutil eject /dev/disk1
4GBのdmgファイルができる。
元になるSDカードのサイズでイメージのファイルサイズが決まるので、4GBのSDカードを使うようにしている。


gzに固めるとかなり小さくなる。1GB前後になった
tar -zcvf 20130710-furnipi.tar.gz 20130710-furnipi.dmg


日付を付けて http://masuilab.org/~sho/furnicomp/raspi/ にアップロードした

イメージからSDカードへ書き込む


unzip
tar -zxvf 20130710-furnipi.tar.gz


書き込む
diskutil umountDisk /dev/rdisk1
sudo dd if=20130710-furnipi.dmg of=/dev/rdisk1 bs=1m
diskutil eject /dev/disk1


起動


普通にRaspberry Piにさせば起動できる。
ログインはデフォルトのpi:raspberry

4GB以上のSDカードを使っている場合は、raspi-configでパーティションを拡張すれば全領域が使える。
sudo raspi-config
sudo reboot

0

ドアノックで研究室の鍵が開くようになった

偶然の産物だったけどうまく動いている。




ピエゾ素子で作った振動センサーと、サーボモーターでドアをあけるやつ(最近Arduinoで実装しなおした)をLinda RocketIOで接続した。

もともとドア周辺の人間の歩行をセンシングしたくてセンサーを置いてみたのだけど、ドアのある場所をうまくノックすると反応していたのでノックで電子錠を開けれるようにした


これ
AndroidとNFCで研究室の鍵を開けるシステムができた
のどすこい認証バージョン