書いた人 : 西田 雄也 さん、佐田 明弘 さん、井上 裕之 さん、本多 展幸 さん、木村 友哉 さん、橋本 将 さん
2015 年 9 月 26 日 (土) に松江 Ruby 会議 07 が開催されました。今年のテーマは松江 Ruby 会議の発表を通して、一人でも多くの人に Ruby の楽しさを知ってもらいながら、Matsue.rb をよりにぎやかにするというものでした。今年は合計 66 名の方々に参加いただきました。また、YouTube の合計視聴数は 161 名 (2015 年 9 月 28 日現在) でした。
Redmine コミッタの Toshi MARUYAMA 氏に「Redmine の歴史とアーキテクチャ」と題してご講演いただきました。 氏は Mercurial overhaul とその他 SCM 周りのチケットにテスト付きのパッチを送っていたら 2010-12 に誘われてコミッタになったということでした。
Redmine の公開から現在に至るまでの歴史について、次のように伺いました。
Redmine から fork したプロジェクトについては次のように言及されました。
Rails 3 への移行では、主に次の作業を行ったということでした。
Rails 4.1 と 4.2 でも内部の構造が変わっていて、gem が対応や依存関係で苦労したということでした。 主に次の作業を行ったということでした。
Redmine 3.0.0 で Rails 4.2.0 対応したことに関連して、Rails 4.2.0 は MingGW (Windows) 環境と JRuby では動作しない点について次のように言及されました。
Redmine が Rails 5 に対応するための課題として、strong parameter への対応を挙げられました。Rails 4 対応時に progrected_attributes.gem を使って見送ったが、Rails 5 にはこの gem が対応しないために必要ということでした。
「ChiliProject が終了するぐらいには大変だった」と言われるほどの追従作業について、質疑応答では会場から「他のフレームワークを使う予定はないか」といったご質問がありましたが、「これからも Rails を使う」とお話がありました。
大きなプロジェクトが長期に渡ってメンテナンスし続けることの大変さが理解できるご講演でした。
お昼ごはんを食べながら、山口友洋氏 (@tgucchi) の司会で以下の 5 件の LT の発表が行われました。
我らが松江名誉市民! ということで、今年もまつもとさんにご講演いただきました。いつもありがとうございます。
今回は「Ruby にみるプログラミングの進化」というタイトルでご講演いただきました。 前半はまつもとさんがプログラミングを学んでいった経緯と Ruby 開発当時の時代背景について、後半はまつもとさんの開発環境や開発手法についてお話いただきました。 特に後半の話は、普段の講演ではあまり聞くことができない貴重なお話だったと思います。 また、発表スライドでは、まつもとさんの 17 歳や 27 歳当時の貴重なお写真を拝見できました。
中学時代に BASIC からプログラミングを始めたそうですが、BASIC をやっていた頃はローカル変数などは考えもしない状況だったそうです。 その後、Pascal の本を読んだ時に、ローカル変数、ユーザー定義関数、再帰、ユーザー定義データ構造といった概念を知って感銘を受けたと同時に、すべてのプログラミング言語は誰かの手によって意図を持って設計されているものだと気づき、自分も設計してみたいと思ったとのことでした。
大学時代には、コンパイラ関連の著作で有名な中田育男先生の研究室に所属したそうですが、言語研究の分野において、日本の大学では、新しい言語を設計するよりは既存の言語のより良い処理系を実装するといった研究が主流であったとのことです。
その後、社会人となってから Ruby を開発することになるわけですが、Ruby を開発し始めた当時は以下の様な時代背景であったそうです。
まつもとさんの開発環境や開発手法については、以下の話題が挙がっていました。
また、Git から派生して、GitHub についても次のように言及されていました。
最後は、ユニットテストについての話題でした。 テスト嫌いを公言されているまつもとさんですが、その理由としては、プロダクトコードとテストコードの両方を書くのが DRY ではないと感じるからだそうです。 これについては、静的型付き言語における型宣言でも同じ感覚を持っておられるとのことでした。 テストに相当する部分はコンピュータが頑張って欲しいと思っておられるそうで、IDE のメソッド補完機能などがそれに近いイメージだとのことです。
それがさらに進むと、人間が話しかけただけでプログラミングができるような時代が来るかもしれないけど、そんな時代になっても、あるおじいさんは Linux のエミュレーションをお願いして Ruby を作り続けているんじゃないかな (笑) とのことでした。
実用面で人間自身がプログラミングをする必要がなくなると、プログラミングは伝統工芸のような扱いになっていくかもしれませんね。 ただ、そのような時代がきても、Ruby でプログラミングの楽しさを知った Rubyist たちは、娯楽としてのプログラミングを続けているような気がします。 Happy Hacking!
橋本氏による前回の松江 Ruby 会議から今回の松江 Ruby 会議までの Matsue.rb における活動内容のうち、GitHub で見られるようなものをまとめて紹介する内容でした (以下はその一部)。
前回の松江 Ruby 会議でのまつもとさんの講演を受けて、たとえ完璧ではなくても動くものがあれば公開してみようという事で橋本氏のプロダクトに未完成のものがありますが紹介をしたという事でした。
最後に橋本氏は未完成のものもある状態のため、俺たちの 2015 年 (の成果がわかる) のはこれからだ! と締めくくって滑っていました。
松岡氏の発表で Sprout.rb の活動についてご紹介いただきました。 前回の発表では参加者目線での紹介でしたが今回はコーチ目線でのお話をいただきました。 Sprout.rb は早くも 1 周年を迎えたそうで松岡氏は “コミュニティって続いていくのが当たり前ではなくて、本当に参加して頂いているみなさんと支援している人のおかげだと思っている” と挨拶をしておられました。 前年度から参加しておられる佐田氏に加え今年度から倉橋氏、本多氏も加わり少しずつ成長していっているようです。 松岡氏のコミュニティのご紹介の後コーチ陣からも一言ずつコメントをいただいています。
これまでは子供に対して教える機会があったものの Sprout.rb はどちらかというと年齢層が上だったので少し不安はあったそうです。 ただそこは大人! 間違えても受入れてもらいありがたかったそうです。
懇親会前の 1 回のみの参加ということでみなさんからネタにされ笑いが絶えない発表でした。 冗談を言う反面 Rails を広めたいという熱い気持ちを語られておられ Rails 愛を感じました。
松江で行われた RailsGirls の第 1 回からの継続学習ということで Sprout.rb では女性の比率が多いそうです。 仕事やプライベートで女性に教えることもあり女性率の多い Sprout.rb を紹介すれば間違いがないそうです。
最後に松岡さんから Sprout.rb の位置付けについておっしゃったことで、既存コミュニティの最初のハードルが高いと思う人の第一歩として活動できたらよいとのことでした。 今回の発表を見て、とても暖かい雰囲気のコミュニティであることが良く伝わってきました。
松江 Ruby 会議 07 では paiza さんとの協賛でオンラインでのプログラミングコンテストが行われました。ゲームセンターあらし (アーケードゲーマーふぶき?) が元ネタに思えるキャラクターや島根県をイメージしたという巫女さんなど paiza さんの本気ぶりまで含めて委員長の吉岡氏から説明があった後で以下の流れで解説が進みました。
元々スタッフも参加できるルールではあったためか、2. では受賞者が全員スタッフになってしまうというハプニングがありました。松江 Ruby 会議 07 での受賞者のコードは以下のようなものでした。
本多氏 (1 位: 116 バイト)
吉岡氏 (2 位: 141 バイト)
西田氏 (3 位: 142 バイト)
3 者とも入力を先に並べ替え (回答はアルファベット順で一番若いものが必要なため)、中心に来る文字列 (asa のような自身が回文になっている文字列) を選び、不要なものを捨てるという所までは同じのようです。それ以後のいかにコードを短くするかでバイト数に違いが出ているのが面白いですね。詳細な解説は長くなってしまうため省略しますが、よかったらどう違うかはじっくり見てみてください。
また、1 位となった本多氏にランキング全体の 1 位、3 位の方の回答を解説していただきました。当日は残念ながら時間の関係で全体の 2 位の方の解説は省略されてしまいましたが、paiza開発日誌に同様の Matsue.rb 提供の解説を掲載されていますので、併せてご覧ください。
paiza オンラインハッカソンは次回開催予定もあるとの事ですので、もし興味のある方で参加に遅れたという方は是非参加してみてください。
松江総合ビジネスカレッジの学生である藤井貴氏に学校でおこなったシステムの更新作業についてご講演いただきました。 システムとは、学校でペットのトリミングの授業があり、その授業のモデルとして他の方が飼われているペットのわんちゃんをお預かりするため、その予約をするためのシステムとのことでした。 苦労した点を幾つかご紹介いただき、一例として更新作業のメンバは入れ替わりがあり、設計書やシステムで使用している独自のフレームワークを作成した初期メンバが既に卒業されてしまい、その引き継いだ設計書の不備の修正をあげていました。 会場はその独自のフレームワークが気になっていましたが、残念ながら学校内でのみ使用されているので公開されていないとのことでした。 そうした更新作業を通し、振り返ってみると以下のことを学習できたとのことでした。
システムの更新作業は後輩の学生に引き継がれるため、システムの今後の改善点をあげ、後輩に期待しながら講演を終えられました。
Ruby プログラミング少年団理事長、副理事長のお二人によるスモウルビーの新機能を紹介するためのライブコーディング (本多氏) 及びその解説 (高尾氏) でした。
ライブコーディングの前にまずは少年団が Ruby を対象としたスポーツ少年団によるコンピュータの楽しみと、リテラシーを学ぶための場だという事と、道場など少年団の活動の時期の紹介がありました (興味がある方は http://smalruby.jp の右上から「体験」、「道場」等を参照してください)。
ライブコーディングでは 0.4.0 の新機能である以下の 2 つの機能の内、1. を使ったミニゲームを作成しました。
あと 2 分で時間がなくなってしまうが大丈夫か? という場面もありましたが、無事にツイン b… 某有名シューティングを連想するミニゲーム (自機がアイテムを攻撃する度に画像が切り替わるもの) を作りあげる事ができました。新機能の紹介に併せて、スモウルビーだけでそこそこ本格的なものが作れる事を紹介したかったとの事ですが、マップの編集への道筋を示す事ができればより本格的に作る事ができそうです。作成したプログラムはこちらで公開されています。
また、身近に高校生以下のプログラミングに興味がありそうな方がいらっしゃいましたら、本セッションの動画とスモウルビー甲子園公式サイトのリンクをご紹介してみてはいかがでしょうか。2016/01/10 まで応募を受け付けているとの事です。
観客・スタッフ全員参加型の Ruby Quiz を開催しました。 Matsue.rb スタッフ考案の Ruby に関する択一問題が出題されました。 すべての問題が Ruby のコードに関する問題で、脳内コンパイラの性能と、いかに日頃から意識して Ruby を使っているかが問われました (以下はその内の 1 問)。
Q. 以下のコードを実行し、a と b を数値にして比較したとき、大きいのは a, b どちらでしょうか?
制限時間 1 分という中で上記のような問題も出題され、日頃仕事や趣味で Ruby を使っているエンジニアでも苦戦していた様子でした。 最終的に勝ち残った方には、スポンサーの皆様より豪華景品が送られました。 2 択とはいえすぐに答えを出すことが難しい問題が多く、プログラミング言語としての奥深さを改めて実感する良いきっかけになったのではないでしょうか。
POH6 と共同開催という形でプログラミングコンテストのご協力をいただきました。 paiza (プログラマー向け転職サービス) で、気軽にコーディングスキルチェックを行うことができます。ご興味のある方はぜひお試しください。
前回に引き続き、スタッフ T シャツをご提供いただきました。一枚から発注が可能だそうです。イベントに、プライベートに、ぜひご利用ください。
ゲスト講演をしていただいた、Toshi MARUYAMA 氏はファーエンドテクノロジーさんにご紹介していただきました。 また、プログラミングコンテストの副賞用に「入門 Redmine ―オープンソースの課題管理システム 第 4 版」を提供していただきました。
株式会社ネットワーク応用通信研究所 株式会社テクノプロジェクト 株式会社イーストバック 株式会社八雲ソフトウェア 株式会社システムリンク ガリレオスコープ株式会社 株式会社フォックス・リレーション フェンリル株式会社 株式会社モンスターラボ 株式会社 ティーエム 21
プログラマ。 Redmine は職場ではもちろん、結婚式のタスク管理以降、家族でも使っている。 2014-12 に redmine_text_format_converter というプラグインを開発し、Redmine の書式を Textile から Markdown に変換して管理下の全てのプロジェクトを Markdown へ移行させました。
Matsue.rb にひっそりといるプログラマ。
Ruby といろんなものをまぜるが好き。
プログラミング教育おじさん。
Apple 信者な Rubyist。
Matsue.rb の雑用係。定例会にはだいたい出席してます。松江 Ruby 会議 05 からまさか 3 号連続での掲載になるとは思わなかった… (要は貯めてた訳ですが、やっと全部終わってほっとしています)。