2014年02月20日

2月8日の札幌市中央区Ruby会議01に参加してきた。

会議のコンセプト

今まで開催された「札幌Ruby会議」とは異なり、「札幌市中央区Ruby会議」というエリアの絞られたタイトルになっているのだが、これについて主催の佐藤竜之介(@tricknotes)さんがメーリングリストで述べていたのは

今回の札幌市中央区Ruby会議01では、
こんな方々をメインターゲットとして考えています:

  • 今まであまりコミュニティに参加してなかったけど、趣味や仕事を通じて普段から Rubyと関わりがある方
  • 改善のヒントを探している、もっと Ruby を楽しく書きたい、という方

そして暗黙の内に仮定してましたが、札幌に住んでいる方々をメインターゲットと考えています。
なので、道外からの Rubyist を再優先におもてなしするための設計にはなっていません。
(メインターゲットではない方々が楽しめない会議にしたいというつもりではないです!ねんのため。)

札幌市中央区Ruby会議01のご案内 - qwik.jp/RubySapporo

とのことであった。

会場もそこまで大規模なものではなく、普段の勉強会の2倍程度の部屋で、雰囲気は普段の勉強会に近いけれども、選び抜かれた発表者による発表で濃密な時間を過ごせた。

また、最近IT系勉強会への参加頻度が下がっていたので、自身のモチベーションを上げるいいきっかけになった。というか、会場内でモチベーションが高まりすぎて、以前書いて一般公開してなかった「単語集合を与えて、その中で最大単語数のしりとりを求めるプログラム」を会場からgithubに上げていた。

各発表

佐藤竜之介さん「Rails あるある
Railsにおける、現場での悩みとアンチパターン。「退社した社員をデータベースからの論理削除で表現すると、退社した社員も対象とする処理とそうでない処理が混在したときに困った」など、この機能使ったらいいんじゃない?って思って使ってみても、あとで機能拡張するときに困った、などという事例を紹介されていた。
Rails、というかRubyに限らず、「よいやり方を知らないと、知っている方法で解決してしまおうとする」というのはプログラミングではよくあることであり、それを実例とともに聞けたのがよかったこと。「これ読んどけ!」というデファクトスタンダードなあるある集が各言語・各環境にあるといいんだろうけど、分量がすごいことになってしまうのかも。
肉さん「ひでお(仮)
「ひとりDevOps」、つまり一人で開発(development)と運用(operation)を行うという話。この話では運用とそのための環境構築に重点が置かれていた。
まず最初に出た話が、「ソースコードをGithubに置けるなら、自分でCI環境(Continuous Integration、ビルドやテスト実行などのタスクを一定の条件のもとで頻繁に行えるようにすべく、自動的にこれらを行うためのソフトウェア)を作らなくとも、Travis CIやCircle CIを使って楽できる」というもの。肉さんは実際「Jenkins導入は手間がかかる」と感じていたようで、運用の手間を減らすために運用するものを増やすことになる、と述べていた。その後、Linuxマシンの環境構築を楽にするVagrantPackerChefといったツールの解説をサンプル付きで解説されていた。
自分の場合、gitでソースコードの管理をしてもコミットをこまめにやる癖がどうしてもつかないので、CI環境で自動化することで例えば「テストを走らせたいからコミットする」という意識が付くかもしれない。本来のコミットの意義とは違うんだろうけど。
浦嶌啓太さん「なるはや Ruby on Rails
Railsアプリの動作を「なるべく速く」する方法について。
まず最初に、複数のリクエストを同時に処理する方法として「マルチプロセス」「マルチスレッド」「Reactorパターン」の3つを挙げ、それぞれの違いを示されていた。この3つはこの順にコードを書くときに気を払う部分が大きくなっていく一方、メモリ消費の面ではこの3つの順に少なくなっていく、とのことであった。
次に「Background Worker」という、ユーザにレスポンスを返すのとは関係ない後で行えばよい処理(例:メールを送る)を後で行うという対応法を紹介されていた。これにはライブラリが多数あるとのことであった。
マルチプロセスとマルチスレッドの違い自体は理解していたものの、「複数のリクエストを同時に処理する方法はアプリケーションサーバによって決まっているので、速くしたいなら場合によってアプリケーションサーバ自体を使い分ける」ということを知らなかったので、そこが勉強になったところであった。
小玉直樹さん「趣味プロダクト開発で楽しいコードライフワークを送る
趣味でソフトウェア開発をするのは楽しいということ、そしてよくつきまとう「何を作ったらいいかわからない」「作れる気がしない」「モチベーションが続かない」といった状況にどう付き合うか、という話。
  • 「今日疲れてる… → 簡単なissueだけ対応する、1コミットぶんだけでも書く」(→時には2〜3時間書いてしまう)
  • 「自分が使いたいものだけまず作る」
  • 「作りたいものがない… → テスト書いたり、リファクタリングしたり、別のフレームワークを試したりしてみよう」
  • 「技術的にハマった → Geek達に会いに行く」
  • 「飽きてきた → 一つにこだわらずいろいろ作る」
  • 「刺激が足りない → 仕事のチームや家族に投入してみる」
最後に締めくくりとして、「技術との出会い大事」と述べていた。作りたいものを作るために、知っているものとは違うことを少し学ぶ、ということを繰り返しているうちに引き出しが増えたと述べていた。
私は最近、作りたいものがあっても忙しいと言って作り上げられないことが多いのだが、やるべきことを分割して短時間でできるようにするのが大事なのかな。
横山昌史さん「高架下のRuby
将棋アマ三段の横山昌史さん。「高架下」=「Rails使ってない」という意味で、コマンドラインツールやデスクトップアプリの制作について述べられていた。
Rubyを使う利点に「OSの差をかなり吸収してくれる」というものを挙げられていた。このことには私もかなりお世話になっている。またRubyにおけるGUI生成の方法の一つであるRuby-Gnome2は、Rubyらしい記法をしっかり取り入れているのがよいところだと述べていた。
コマンドラインツールはRubyですでに多数作っているのだが、デスクトップアプリを作るときの面倒な点は「配置を考えて数字で表現しないとならないこと」なので、そこが何かRuby向けでよいものないのかな…と思うところではある。
梅本祥平さん「Ruby in Project-Based Learning
大学のプロジェクト学習において、Rubyを用いたアジャイル開発を導入した話。梅本さんは、最初アジャイル開発に取り組んで開発する楽しさを感じつつも、もっとちゃんとアジャイル開発をしている方の話を聞いて自身の勉強不足を感じたとのことであった。それでも「楽しかった」という気持ちが強かったためにさらに勉強し、他人に魅力を伝えられるようになったとのことであった。
私にとっての「まだ勉強不足かもしれないけど、最初の感動が大きくて忘れまいと感じたこと」は、テスト駆動開発を学んだことだろうか。まずは単に「テストを書いておくことで後での修正に強くなる」というくらいの認識であったが、そのことがすごく新鮮であった。ただ実際に使っているうちに「この場合どんなテスト書けばいいの?」と壁にぶつかるようになり、さらに勉強してよいやり方ができるようになっていった。
前田智樹さん「それNArrayでできるよ
数値を要素とする配列や行列を高速に処理できる「NArray」についての紹介。最初来場者に「NArray知ってますか」などを問うたところ、nArray自体初耳という人が5〜6割くらい、nArrayの名前くらいは…という人が3〜4割くらい、nArray使ったことある人が3人、nArrayよく使うという人は0であった。そこで前田さんは「御社のビジネスでご活用いただけるNArrayを紹介します」と述べて機能の紹介へ。
NArrayは「"列ごとに和を計算する"などの、表計算でよく行う処理がRuby上で一発でできる」「表計算ソフトと異なり、3次元以上の配列も扱える」ということを利点として挙げられていた。
私がNArrayを使う機会がなかった理由としては、配列に数値しか入れないようなときはたいてい配列中の計算も面倒なので、NArrayでは対応しきれないというものだと思う。ただ、2次元配列でも扱いやすいのは利点であり、覚えておく価値はあると感じた。
ライトニングトーク
一人5分の短時間発表。
  • 矢部剛嗣さん「How to enjoy Padrino」:Sinatraをベースに置いたWebフレームワーク「Padrino」について。よいところとして、ジェネレータ(あとからORマッパやテンプレートエンジンなどの機能を追加する機構)、recipes(プラグイン)を挙げられていた。また、まだコードが少なく貢献できる点が多いという点を楽しんでおられるとのことだった。
  • うさみけんたさん「近況の報告と自宅警備員が失職した話」:「自宅警備員が失職」=就職した話。東京に出て行ったのを契機に自宅警備員を失職する→自宅警備員に復職する→また東京に出て行ったのを契機に自宅警備員を失職して現在は東京で仕事中。
  • 島田浩二さん「一般社団法人日本Rubyの会のほうから来ました」:「上司の角谷の行方が分からない」とのことで島田さんから様々な告知。まずRubyKaigi2014(9月18日-20日)とRubyKaigi2015(4月9日-11日)の開催について。続いて日本Rubyの会の支援活動について。最後に「活動支援についての相談・依頼はgithubで受け付けている」と紹介されていた。
  • 早坂亮佑さん「Rubyを始めてみて得たこと」:Sinatra札幌の人と会ってRubyを始め、そしてそれによってプログラミング好きな人と交流する機会ができたとのこと。Lingrボットを作成されているとのことで、Sinatra札幌のLingrで活躍しているということが次のよねざわさんによって紹介されていた。
  • よねざわさん「Sinatra x Ajax」:Sinatra札幌のLingrで動く多数のボット紹介が中心でした。「アイデアをボットとしてアウトプットしよう」と締めくくられていた。私もTwitterボット作りでいろいろ学んだなあ
  • 小林せかいさん「惚れちゃうコード」:コードをきれいにした事例をいくつか紹介。締めくくりは季節感のある「惚れさせるコードを書いてチョコレートをたくさんゲットしよう」。
  • 小岩秀和さん「我が家を支える技術2014冬」:夫婦でITのお仕事をされている二人がなす家庭環境は、家で様々なフリーソフトウェアが動き、OSはUNIX系OSばかりでWindowsは動作確認用の仮想マシンのみ。仮想化・ファイルサーバ・監視ソフト・SNS・クラウドストレージなど導入済み。しかも家庭運営についても「Kissの原則」「アジャイル」というもの。徹底しすぎである。
  • 阿部智紀さん「Make a Fun Work 〜楽しく仕事をしよう〜」:DevHub(上記の小玉さん作の、ソフトウェア開発支援機能付きチャットツール)に、チャットに中の人がいたりするとかの、遊び心がどんどん加わっていった話。
  • mrknさん(アナウンス):昨年末に出たRuby2.1.0について。2月22日発売のWEB+DB PRESSに特集が出ますとのこと。そういえばまだ自分Ruby2.1.0導入してない…。


maraigue at 03:33コメント(2)トラックバック(0)イベント | プログラミング 

トラックバックURL

コメント一覧

1. Posted by 横山   2014年02月20日 08:12
GTK+では、数字ではなくボックスやテーブルなどを使ってウィジェットを配置することができます。このあたりが参考になると思うのですが、どうでしょうか…?(サンプルコードは少し古いかもです)

Ruby/GTK2 チュートリアル
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut

パッキングボックスの概念
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-packing-general

ボックスの詳細
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-packing-box
2. Posted by H.Hiro   2014年02月20日 11:31
横山さん、ありがとうございます。
gtkだと自動配置のツールが最初から入っているのですね。
サンプルコードを動かした感じ便利そうでしたし、参考にさせていただきます。ありがとうございます。

コメントする

名前
 
  絵文字
 
 
livedoor プロフィール

H. Hiro

  • ライブドアブログ