RBC『イケテルJRuby勉強会@福岡』レポート その2
こんにちは、こんばんは、おはようございます。村部@ランカードコムです。
前回に引き続き、RBC『イケテルJRuby勉強会@福岡』のレポートです。勉強会、ついに本番に突入です。2部構成でプログラムを2つ作成。徐々にレベルアップしていきました。
【第1部】
第1部ではRuby-Processingの基礎を学び、Rubyについて基礎的な部分や特徴を紹介しながらきれいな図形を表示するプログラムを作成しました。動画をどうぞ。
きれいでしょ?
irb(今回はJRubyを使っているのでjirb)でRubyについて随時確認しつつ、このプログラムを各自入力して作っていきました。
- ProcessingとRuby-Processingの紹介
- Ruby-Processingのインストール。展開して配置するだけ、らっくらく
- generateスクリプトによるテンプレート作成。作られるテンプレートはこんなです
|
- Ruby-Processingの基礎。setupが初期処理でdrawが描画を行うメソッド
- irbを使ってみよう。-r irb/completionオプションをつけて起動すると[Tab]で候補一覧の表示や補完ができます
- ruby-processing.rbをrequire出来るのはなぜ? irbで$LOAD_PATHを確認してみよう
- 四角形を表示してみる。色を変えたり、何個も重ねたり
- 整数オブジェクトのtimesメソッドでRubyの特徴(?)ブロックを体験
- Proseccingでの座標の扱いについて
- モジュールを使ってみよう。Mathモジュールをinclude
- 新しいメソッドを作ろう。ラジアンを求めるradiansメソッド作成
- mapメソッドやinjectメソッドで配列を処理してみよう
- プログラムできたよー
ざっくりですが、こんな感じ。サクサクっと前倒しで進んじゃいました。
個人的に勉強になったこと。irb/completion、実は知りませんでした。
もう1つ、参加された方からの質問で「requireとincludeの違いって何?」ってのがあったんですが、明確に答えることが出来なかったんですよね。「requireはファイルの読み込みで、includeはモジュールの実装だけど、違いといわれると、え~と? PHPとまざっちゃってモニョモニョモニョ。ごめんなさいググってもらったほうが確実です」みたいな。この件、渕上さんがフォローしてくださったんですが、理解していたつもりでも忘れてしまっていたり、あいまいになっていたりするもんだなぁ、と思いました(ちなみにPHPだと両方ともファイルの読み込みで、違いはエラーの扱いだけだったりします。requireだとfatal errorになり、includeだとWarning)。
【第2部】
休憩をいれて第2部です。ちょうど休憩中にRBCの会長、最首さんがお忙しいなか駆けつけてきてくださいました。
写真の右、やっぱり忙しそうな最首さん。そして左は今回の勉強会の発起人、根之木さん。
第2部ではマウスクリックに反応する、インタラクティブなプログラムを作成しました。図形をRubyのクラスとして実装し、オブジェクトとして扱っています。
動画にはマウスが映っていませんが、マウスのクリックイベントで動作が変化しています。
- generateスクリプトによるテンプレート作成
- 図形を表現するRubyのクラス、Dotクラスを作り始めよう
- attr_accessorでアクセッサをらくらく定義
- オブジェクトの振る舞いを定義するよ
- Rubyだと複数の変数への代入を1行で書ける。座標の代入とかまとめて書いたほうがわかりやすい
- irbでRubyでの数値の扱いを確認してみよう
- とっても便利なRubyのcase文
- Dotクラスできたー
- テンプレートのsetupとdrawを実装。アクセッサもつけとこう
- Ruby-Processingのイベントリスナー、mouse_pressedメソッドを実装しよう
- プログラムできたよー
こんな感じで進行したんですが、こちらもサクサクっと進んじゃいました。参加された方々にプログラミング経験者が多かったおかげかな? 全体として前倒しで進みましたので時間に余裕ができました。
余裕ができましたので各チームで作品を作っていただくことができました。次回はその作品をご紹介したいと思います。
余談ですが、参加された方々のマシンに入っているOSは様々でした。
やはり一番多いのはWindowsですが、Macの方もかなり多かったです。Linuxの方もチラホラ。これらの環境でほぼ同等に動くのですから、素晴しいですね。
講師役をされた渕上さんのマシンはUbuntu(Linux)でしたよ。