RegionalRubyKaigi レポート (51) 松江 Ruby 会議 06

RegionalRubyKaigi レポート 松江 Ruby 会議 06

はじめに

2014 年 12 月 20 日 (土) に松江 Ruby 会議 06 が開催されました。今年のテーマは松江 Ruby 会議の発表を通して、一人でも多くの人に Ruby の楽しさを知ってもらいながら、Matsue.rb をよりにぎやかにするというものでした。57 名の方々に参加いただきました。また、Ustream の合計視聴数は 159 名 (2014 年 12 月 31 日現在) でした。

07_closing.jpg

オープンソースの力 (基調講演)

01_keynote.jpg

松江ならではの毎年恒例のまつもとゆきひろ氏の講演です (贅沢)。タイトルの「オープンソースの力」とはオープンソース採用などで発生する外向きの力ではなく、オープンソースコミュニティ内での (内向きの) 力について講演いただきました。生き残ってきたオープンソースプロダクトを複数持つ経験を振り返った内容でした。スタートアップで成功する人は「IQ の高い人」ではなく「パターン認識のできる人」という記事の内容を元に以下の成功パターンを振り返りました。

  1. (完璧ではなくていいので) 動作する実装
  2. 継続的進歩
  3. ソーシャルコーディング

1.と 2.のサイクルがあれば一見実現が難しいと思われる新機能も貢献してくれる方が現れる場合があるという事でしたが、これは「期待」を提供する事でも代替できるのではないかという事でした。日経 Linux の連載中で作る言語 Streem が話題になった事からそう思ったという事でしたが、この時に「敗北を知りたい」などと冗談を仰られて会場が盛り上がりました。

最後に継続するためには面白がる事、面白がり続ける事も重要という事で「Happy Hacking!」という言葉とともに話を締めくくられました。2015 年は Matsue.rb でも何か公開できるといいですね。

フルタイムの Ruby コミッターとして働くこと (ショートセッション)

  • 発表者
    • 笹田耕一氏 (@_ko1)

02_short.jpg

笹田氏は、YARV を作りはじめてから 2014 年で 10 周年、現在は Heroku 社で Ruby のフルタイムコミッタとして Ruby の品質を上げる作業をされています。主に以下の内容について講演いただきました。

  1. 1 日の生活
  2. 仕事内容
  3. 成果を出す

1.については、起きて仕事を家かオフィスで行って、家に帰ってから仕事して寝る。というもので、マネージャであるまつもとゆきひろ氏が遠方に居るため、わりと緩い出勤形態ということでした。

2.は調査と設計、開発、公開についてでした。開発や設計よりも調査が多く、カンファレンスやバグトラッカー、学術論文、ブログや SNS、実世界でどのように使われるかを調査して、なにをどのように開発するかを考えるということでした。また、一人でも多くの仲間を作るために、自分がなぜこのコードを書いたか、その面白さをプレゼンテーションやドキュメントで共有しているとのことでした。

3.については、2014 年は 8 回のカンファレンスで発表していて、「良い発表をするために開発がのびる」とアピールして呼んでもらえるようになったとうかがいました。また、海外の人は日本人にしゃべってもらいたいというのがあって日本人の情報に飢えているのでどんどん行ってほしいと話されました。

最後に「全てが自由で自分でなにをするかは選ぶことができる。代わりに自分の価値を外へ出していかないといけなくて、雇用主とのコミュニケーションも大事にしている。その結果が Ruby 2.2 に入っていて、いろいろ良くなっているのでぜひ見てください。」ということでした。2.2 が楽しみですね (2014 年末当時)。

ライブコーディング大喜利

ライブコーディング大喜利では配列をランダムに並べ替えたり、トランプを引いた結果に関する確率を求める問題などを 2 session に分かれて 3 人ずつで回答の出来を競い合いました。

  • session1
    • 岩石嶺 氏
    • 井上裕之 氏
    • 進藤元明 氏
  • session2
    • 前田修吾 氏
    • 内部高志 氏
    • 田上健太 氏
  • 表彰

回答者には先に問題を確認していただき、どのように回答するのかを検討していただきました。大喜利ということで参加者の中には、捻った回答で会場を盛り上げてくれる方もいました。 session1 については、あらかじめ問題の回答を参加者には考えていただいていましたが、事前に gem パッケージを用意しておき、そちらを利用する方法を取り、短い時間で回答する方もいました。

session2 については、残念ながら必要なファイルがインターネット上にある問題の時に無線 LAN の調子が悪くなりました。参加者の方が作成したプログラムを実行するタイミングで不調になったので、エラーが出力されて参加者の方が戸惑う展開もありました。

表彰では会場を盛り上げるコードを書いた岩石嶺氏と前田修吾氏がそれぞれ表彰されて景品が渡されました。 03_livecoding.jpg

「納品のない受託開発」と、エンジニアの働きかたのこれから (ゲスト講演)

これからのエンジニアの働き方について、「納品のない受託開発」「地方」「Ruby」「ギルド」といったキーワードとともに講演いただきました。

講演ではまず、納品のない受託開発についてご紹介いただきました。納品のない受託開発は以下のような特徴があります。

  • 月額定額で、開発と運用を続ける
  • 顧問として全ての工程を担当する
  • 働く時間でなく、成果を提供する

事例として、子育てシェアサービスの AsMama のケースをご紹介いただきました。

また、納品のない受託開発を始めた動機についてもご講演いただきました。

  1. 従来の受託開発での発注者と受注者でゴールが異なるという問題を解決するために、納品を無くすことにした
  2. 会社を独立した時、受託開発がやりたいという想いを再認識し、少人数でも大企業と戦えるようにビジネスモデルを変えた

倉貫氏の会社であるソニックガーデンでは、リモートワークを推奨しているそうです。

ソフトウェア開発はプログラミングを用いた再現性のない問題解決であり、さらに現代では問題が複雑化しているため、トップダウンの管理ではなく、信頼関係に基づいたセルフマネジメントを中心とした組織作りを目指しているとのことでした。

そうした場合、いつ・どこで働くかは問題ではなく、地方に住んでいることはハンディキャップにはならないとおっしゃっていました。

むしろ問題となるのは、多重請負の枠組みの中で仕事を請けようとすることであり、その問題を解決するために、納品のない受託開発のオープン化に取り組んでおられるそうです。

最後に、その取り組みとしてギルドとアカデミーについてご紹介いただきました。 04_guest.jpg

Matsue.rb のふりかえり - 2014 -

2014 年の Matsue.rb の活動について講演いただきました。主に以下の内容について講演いただきました。

  1. Sprout.rb の活動報告
  2. Ruby で作ったイラストが MEDIBANG 青空文庫の表紙に採用
  3. Matsue.rb のメンバである橋本氏が RubyKaja 2014 を受賞

上記の内容について発表者である吉岡氏から紹介いただいた後、ご紹介いただいた活動に関わった Matsue.rb のメンバからも一言ずつ感想をお話いただきました。 1.については、2014 年から始めた活動であり、初心者が継続的に学習できる場があると良いと考えられて始められたとのことでした。Sprout.rb の参加者からの感想でも分からないことを質問できる場ができて助かったとのことでした。

2.については、Ruby スクリプトでイラストを作成され、そのイラストが MEDIBANG 青空文庫の表紙に採用 (こちらなど) されたとのことでした。作成されたスクリプトは GitHub でも公開されており、ぜひイラストや WEB サイトで画像を作成するのにご使用くださいとのことでした。

3.については、Matsue.rb のメンバである橋本氏が RubyKaja 2014 で受賞した件に関することでした。残念ながら御本人は家族が風邪を引いたのでお世話をしに帰ったとのことで発表時には会場に不在でしたが、Twitter のお祝いコメントは御本人も家から確認していただけたようでした。

他にも Matsue.rb のメンバのプログラミングについて触れながら和やかに発表を終えられました。 05_matsuerb.jpg

スモウルビーでライブコーディング

06_smalruby.jpg

本多氏は、松江市内のプログラミング少年団で毎月 1 回第三日曜日島根家庭の日に子供たちに Ruby を教えていらっしゃいます。10 月からはコーダー道場松江として高校生以下の子供を対象にプログラミングを教える活動をされています。

本日は、これら勉強会で使っているSmalrubyでどんなプログラムを作られるのかを実際に作りながら説明なされました。講演は次の流れで、猫と蛙が玉を打ち合ってどちらかの壁に当たったら勝負が決まるゲームを作っていきました。

  1. 自キャラクタを作って画面に表示
  2. キーボードで自キャラクタの移動を実装
  3. 相手キャラクタ表示と壁に当たったら跳ね返るボールの実装
  4. ボールに合わせて相手キャラクタの移動を実装
  5. ボールがキャラクタにぶつかったときの跳ね返りを実装
  6. 勝ち負けの条件を実装
  7. ブロックから生成された Ruby のコードを確認
  8. キャラクタに当たるごとにボールのスピード増加を実装
  9. 自キャラクタの左右位置によるボールの跳ね返り角度変化を実装したものを披露
  10. Arduino と接続して前後左右の移動を 2 つのセンサから取得するようにしたものを披露

パラメータにもよると思いますが作成した相手キャラクタはなかなか強く、講演内では 1 度も勝てませんでした。

ライブコーディング全体を通して次がわかりました。

  • ブロックの組み合わせでプログラムを作る流れ。
  • ブロックから Ruby のコードを生成する。その逆も可能である。
  • PC 上だけでなくセンサーと組み合わせてコントローラを作るようなこともできる。

プログラミング少年団やコーダー道場松江をきっかけとして、将来ハッカーが出てくることに期待ですね。

来て、見て、感じた、日本、松江、Ruby、NaCl (パネルディスカッション)

  • 発表者
    • レナト正氏
    • 多根チアゴ氏、
    • 高尾コウジ氏 (司会・進行)

残念ながら、本編では進行の関係で中止になった本セッションですが、懇親会にて盛り上がっている中での発表となりました。2014 年の後半にブラジルから来てくれた長期インターンの二人に対して、司会の高尾コウジ氏からの質問形式で以下に関する感想を聞く事ができました。

  1. どうして日本に来たか
  2. 松江はどう感じたか
  3. Ruby と NaCl はどうだったか

1.については二人とも主に学習のためという事でしたが、多根さんは来日前からまつもとさんの事をご存知だったとの事で本当にビックリしたという事でした (インターン先を希望した訳ではなかったようです)。

2.については二人とも自転車での移動が簡単である点を最初に挙げていました。交通機関の正確さや郵便の便利さに驚いたといったあるある系の感想から、景色を見ながらの移動が好き、四季がはっきりしているのが楽しいといった感想なども聞く事ができました。松江での生活がそれなりに楽しめたようで何よりです。

3.については本人いわく地元ブラジルでの英語が早口だったためか、英語でのコミュニケーションに最初苦労したようです。Ruby を学ぶ点でも苦労した事はあったようですが、慣れてくるにつれて来日前にイメージしていた日本の会社 (ルールだらけ) と違い地元に近い自由な空気感のある職場という事がわかって来てリラックスして作業できたという事でした。今では Ruby もプログラマが使いやすいように設計してある事がわかって楽しく使えるようになったそうです。

もうすぐインターン生活も終わります (2014 年末当時)。地球の裏側から何か Ruby に関連したリリースを正座して待ちながらも、こちらからも何か届くような事をしたいものです。

LT

本編で行われたスポンサートーク、懇親会での LT と合計 6 件の発表が行われました。

ジャンケン大会

懇親会では@KatoAtsueさんデザインの宍道湖モチーフにした Matsue.rb T シャツを競ってジャンケン大会が行われました。 (T シャツは株式会社 spice life さんのオリジナル T シャツ作成サービス tmixからご提供いただきました!)

08_party01.jpg 08_party02.jpg

著者について

西田 雄也 (@nishidayuya)

もうすぐ「プログラマー 35 歳定年説」の該当プログラマ。

佐田 明弘 (@sada4)

Matsue.rb にひっそりといるプログラマ。

井上 裕之 (@ino_h)

Ruby といろんなものをまぜるが好き。

本多 展幸 (@nobyuki)

プログラミング教育おじさん

橋本 将 (@sho_hashimoto)

Matsue.rb の雑用係。定例会にはだいたい出席してます