ぐんまRuby会議01に行って来ました。
ちょっと遅れましたがレポートです!
出発
2013.03.09 高崎市総合福祉センター、ぐんまRuby会議01に行って来ました。
当日はとても良い天気で、上着が要らないくらい暖かかったです。 その日は夜に新宿に行く用事があったので、お得なウィークエンドパスを利用し、新幹線で移動しました。
ぐんまは新潟の隣県なのでたまに訪れていましたが、高崎は初上陸。 高崎についてからは、循環バス「ぐるりん」の色にビビりつつ、バスで会場まで向かいました。
ランチセッション
ランチセッションは登利平の鳥めし弁当をみんなで食べました。 柔らかい鶏肉と、ご飯とよく混ざったタレが美味しかったです。 包装紙は綺麗に剥ぎ取り、食べ終わったら同じ状態に戻すのが正式な作法らしい。
案外早く食べ終わってしまったので、本編が始まるまで施設内を散策したり、のんびりしたりしてました。
講演
そしていよいよ本編開始!
※講演のレポートで力尽きました。すみません(;´Д`) 群馬のお話、LT、ゆRubyは後日追記するかもしれません。
Mad Web Programmer - Yuguiさん
Yuguiさんからみた世界です。(ぐんまRuby会議01で発表した)
Webのソフトウェアを書くことは世界を変える方法の一つであり、Rubyは効率よくそれを実現できる方法の一つ。では、なぜ世界を変えるのか?というお話でした。
性同一性障害のような、希少事例は今までモデリング上の欠陥として扱われてきた。しかし、Webはそれを変えた。情報の欠如を解決し、希少事例でも確実に見つけられるようになった。 Webは人を救える力を持ち、Webを開発している人間がしていることは、そういうことなんだ、ということがとても印象に残りました。
ここまで自身の内面にまで踏み込んだ発表は初めて聞いて、心打たれました。
最後に「必要なのは多産多死であり、それを実現しやすいのはRuby。もしかしたら死ぬ方にいるかもしれないが、それも進歩のための大きな流れである」と聞いて。進歩していけるのであれば、死ぬ方にいるのも悪く無いかなあと思いました。進歩できないのが一番怖い。
プログラマー - 須藤さん
須藤さんから見た世界です。(ぐんまRuby会議01: 「プログラマー」 #guruby)
須藤さんにとって、Rubyは応援したい言語。 自分が必要に感じたり、作りたいと思った時にRubyを使い、それを周りに公開することで貢献してきたそうです。
「同じ事で躓く人を少なくしたい」というのが、須藤さんのプログラマとしてのベース。 そのためには、問題を回避せず、原因を直すことが大事とのことでした。
あるべきものを、あるべきように。楽だからといって逃げていると、他の人も回避するようになる。 回避し続けた結果は日々仕事で痛いほど味わっているので、その言葉はずっしりと来ました…。
だからこそ、直すことのできる「フリーソフトウェア」。 仕事でも、できるだけ公開できるようにしているとのことでした。
サラリーマン - 大場さん
大場さんから見た世界です。(Salaryman by Koichiro Ohba)
2回の転職を経て、サラリーマンとしての大場さんの生き方のお話でした。
コードが書ければどこでも良いと考え、就職先は地元企業へ。しかし、色んな意味で黒歴史になってしまった…。 ペアプログラミングならぬトリオプログラミング(3人で24時間の意)という手法に変な笑いが出てしまいました。
コードが書ければどこでも良い、わけではない!
伸びている領域ではバズワードが発生する。 バズワードの中から、どれを選択するかって、重要だけれど難しいです。 そのために色んな人の話を聞いて、自分なりに考えていくってのは大事ですし、楽しいですよね。
ふりかえり
最後に、参加者でのふりかえりがありました。 参加者の3席のみ、座席の裏に紙が貼ってあり、その質問に答えるというもの。 まさか当たるとは思わなかったです…。
明日からどうRubyに向き合いますか
という質問でした。難しい。
「初心者なりにとにかくコード書いて、Webサービスも作りたい!」みたいな感じで答えたような気がします(緊張して覚えてない)
今思えば、うすっぺらい!全然ぐんまで得たことが言えてなかったですね。
新潟も群馬と似たようなところがあり、コミュニティ活動も少なければ、僕の地元のIT産業も元気がないです。Ruby勉強会もないですし、首都圏とも距離があります。
そんな中で、自分がプログラマとしてどう生きていくべきなのか? 今後キャリアを積み、最終的には地元に還元したい。でもそうするために、経験値をもっと積みに行くべきなのでは?
Rubyとの出会いは自分の視野を広げてくれた。では、その先は?
明日からRubyと向き合っていくために、自分の方向性を決めたいなあ、なんて思ったのでした。
Console2 + Nyaos + MinGWで快適Windwosターミナル
仕事上コマンドプロンプト毎日いじるので、Windowsのターミナル環境はどんなのが良いんだろう?と色々試しています。
やりたいこと
みたいな感じ。現状では次の構成で落ち着いています。
コマンドは色々試した結果MinGWすることに。 Gow (Gnu On Windows)はうちの環境でパイプをうまく処理してくれなくて、 cygwinはやっぱりパスの解釈で色々問題出てきたので。
結構語り尽くされたネタですが、自分なりの設定も踏まえて紹介します。
Nyaos
Windowsとの互換性を保ちつつ、UNIXライクに操作できます。 パスは'/'でも'\'でも対応してくれるし、補完も良い感じ。 エイリアスやLuaでの記述も可能。
さて、バッチファイルですが、.batを実行すると子プロセスのcmdとして起動します。なので、設定した環境変数はcmdsourceで引き継ぎます。
cmdsource hoge.bat
いつも使うバッチファイルは~/_nyaファイルでaliasの設定しちゃいましょう。以下はVisual Studio コンパイラのコマンド設定の例です。
alias vsenv cmdsource "C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/Tools/VsDevCmd.bat"
あと、僕は他にはRuby用に pik(windowsでのrbenvみたいなもの)もaliasしてます。
# $USERPROFILE/.pik/binにpik_installした場合
alias pik cmdsource $USERPROFILE/.pik/bin/pik.bat
pik use 200
Console2
Console - Browse /console-devel at SourceForge.net
見た目も操作も手軽に設定できる、タブ型のターミナルです。 あらゆるシェルをタブとして起動できちゃいます。(Nyaos, PowerShell, cmd, MsysGit などなど)
Console2はデフォルトで日本語入力ができません。 パッチを公開してくれている方がいるので導入しておきます。
最新の2.00b148-Betaへのパッチです。
設定メモ
フォントはちょっと注意
- フォントリンクだとカーソル位置がずれる場合がある
- プロポーショナルフォントだと背景色の表示が一部黒くなる場合がある
- Smoothing はフォントに応じて設定しておく
画面上の文字選択は、デフォルトだとShiftキーを押す必要あり
- 押すのが面倒なら設定の Mouse から Select text を Left だけにしておく
タブとしてNyaosを登録しとく
色設定はsolarizedがお気に入り
日本語入力時に、カーソルがずれたり文字が重なって表示されたりする場合
- コマンドプロンプトの規定値設定でフォントをMSゴシックにする
MinGW / MSYS
~/_nyaはこんな感じ。
set GWBIN=C:/MinGW/bin
set MSYSBIN=C:/MinGW/msys/1.0/bin
set PATH+=$GWBIN
set PATH+=$MSYSBIN
alias ll $MSYSBIN/ls.exe -agoFh --time-style=+"%Y/%m/%d %H:%M" --color=always --show-control-chars
alias vi $MSYSBIN/vim.exe
alias grep grep -ni --color
...
Nyaosのコマンドと重複する場合、Nyaosのほうが優先されるようです(ls等) 嫌な場合は、~/_nyaでaliasしなおせばOK。
alias ls $MSYSBIN/ls.exe
あと、忘れずにHOME設定。
set HOME=$USERPROFILE
参考リンク
東京Ruby会議10へ行って来ました!
ということで、本レポートを機にブログを始めてみました。 よろしくお願いします。
経緯
@hokkai7goの影響でRubyを知り、仕事の合間にちょこちょこ勉強して数ヶ月。 やってみるとRubyの世界はとても衝撃的で、すぐに好きな言語になりました。
で、たのしい開発 スタートアップRubyを読んだわけです。 普段仕事でSIerをしている身としては、Rubyコミュニティの雰囲気はとってもいいなあと思ったのでした。
働き出してから1年半、仕事についてずっとモヤモヤし続けているのもあり、コミュニティの中に入って、色んな人と話してみたい。 でも新潟に住んでいると、近くにRubyコミュニティがない! ないなら行けばいいじゃない、ということで、東京まで参じた次第です。
というわけで、この記事では、2日間の東京Ruby会議10の内容を自分なりにレポートします。 全部はレポートできませんでしたが、すべての発表を楽しませていただきました。
以下、基本メモった内容をまとめています。間違っていたらすみません。
1日目
井原正博さん「Rubyと過ごした半年間」
みんなのカフェは井原さんが一人でRailsで作られていた。 勉強の際は、Rails Guids、Rails Tutorial、Code School、Rails Castsなどを主に活用されたとのこと。 一人PivotalTrackerや一人CIで開発を進めていったそうです。
- 「Life is short、やりたいことをやりましょう」
- 「今作りたいものがあるなら作ってみましょう。僕らはコードが書ける」
というのは本当だなあ。
あと、実はみんなのカフェの投稿の承認は(夜中でも)一人で行なっていたそうです。びっくりです。
takkanmさん「やさしいRails勉強会@東京のつづけ方」
2005年11月から続くRails勉強会@東京の主催を引き継ぎ、三年間どうやって続けられているか、というお話。
楽しい事ばかりでなく、問題が重なってきた時「続けても楽しくない」と思ったこともあったそうです。 でも、「続けたい」という思いから、takkanmさん自身がどう行動したかのお話がありました。 大事なのは、なぜはじめたのかをふりかえること、やりたいことをやるということ、楽しめていなければやめてしまうこと。
私は社内勉強会をはじめたばかりなので、長く勉強会を続けられたtakkanmさんの視点からのお話がとても参考になりました。
蓮尾高志さん「周囲の助けを得ながら楽しく開発するためのアレコレ」
https://speakerdeck.com/hassaku/tokyorubykaigi10
Rubyを使った日々のちょっとした工夫によって、たのしい開発を実現している、というお話。
ちょっとした工夫、ということですが、アイデアも実行力もすごいなあと思いました。
- ペア作業の際、別々のマシンで同じ作業をするために、wemux、vagrantを使用
- メンバーの特性を客観的に見える化するために、Leafyのログを解析
- ペア作業の際、緊張状態をさり気なくアピールするために、CapsLockのLEDに脈拍を表示
- フリスクの箱に仕込んだマイコン(STM32?)から、赤外線センサで血液中のヘモグロビン変化さり気なく測定
- wemux使ってる時はプロンプト上にも表示
特に3のフリスク箱を開けた瞬間、会場大ウケでした。
こうした工夫から、チームで助けを得るための敷居を下げられ、より楽しく仕事が出来るようになったそうです。 楽しんでやるっていいですよね。
中村 涼さん「The Everything Machine」
https://speakerdeck.com/r7kamura/the-everything-machine
Rubyで日常の問題を解決しよう、そのためにいろいろ作ったよ、というお話。
日常の問題を解決しているうちに、部屋中の家電をすべて自動化してしまったと聞いて驚きでした。
- 朝起きられない → テレビ、エアコン自動起動。カーテンもarduinoで自動に開く。(iremocon.gem)
- 帰宅時寒い → 帰宅時の位置情報+帰宅ツイートでエアコン作動(chatroid.gem)
- 消灯が面倒 → 位置情報で自動消灯。iSightで室内撮影し、消灯確認(imagesnap.gem)
- アニメ情報が知りたい → cal.syoboi.jpパーサ(syoboi_calender.gem)
- 綺麗なコード書きたい → コーディング規約、良くないパターンのチェック(guidline.gem)
- 綺麗なコードを書くモチベーション維持 → コード状態の遷移、貢献度を可視化(code_hunter.gem)
これらを、一つ20時間くらいで作ってしまうそうです。すごい。
河野 誠さん「日本酒評価サイトとxDD」
本業ではない開発を続ける際に問題となることについて、その対処法xDDのお話。
- ADD = Alcohol Driven Devlopment
- BDD = Beer Driven Devlopment
- WDD = Wine Driven Devlopment
- NDD = Namahamu Driven Devlopment
...
勢い大事!
- CDD = Community Driven Devlopment
- コミュニティには自分の知らないことを知っている人がいて、作ったものに反応してくれる人もいる。
- なければ作ろう。もう一人仲間がいれば継続できる。継続すれば、気の合う仲間ができる。
前半のxDDとは打って変わって、意表を突かれた話でとても印象に残りました。ずるい。
夕飯では早速NDDを実践し、黒Ruby会議へ勢いつけました:D
塩谷 啓さん「Padrino in Production」
https://speakerdeck.com/kwappa/padrino-in-production
Padrinoの紹介と、dwango mobileでのPadrinoを使った開発のお話。
music.dwango.jp、music.animelo.jp、music.dwango.jp/melodyでは、PadrinoでそれぞれサイトのURL識別子で区別し、同じサブアプリを使いまわしていました。 このPadrinoのサブアプリの仕組みすごい。
Padrinoのメリットはこの仕組と、軽さ、拡張性。デメリットは情報が少ないこと、クラス名の衝突が多いこと、エンジニアが少ないこと、とのこと。 Railsと適材適所で使うことが大事とのことでした。
do_akiさん「PHP と Ruby の架け橋」
http://www.slideshare.net/do_aki/a-bridge-between-php-and-ruby
PHP上でRubyが動くphp-ext-rubyと、Ruby上でPHPが動くphp_embedという用途不明の凄まじいお話。
処理系拡張ということで、実装の内部はあんまり理解できず…さらに途中からPHPとRubyが混ざって混乱したけど、何とも奇妙で楽しかったです。
理論上はPHP上で書いたRuby上でPHPを動かすということもできるみたいで、戦慄を覚えました。
黒Ruby会議
とても、面白かったです((((;゚Д゚)))) 予想以上に黒かった。
2日目
まつもとゆきひろさん「How to change the world」
2日目最初は、Rubyのパパまつもとさんの基調講演です。 20年間ずっとモチベーションを保って続けられたことで、世界をちょっと変えられた、というお話。
Rubyが世界で成功した背景には、適切なタイミングでRubyをリリースしたことと、モチベーションを保って続けてきたことがあると分析されていました。 色んな人がフィードバックをくれ、ちょっとずつ改善し、評価され、更にモチベーションが上がる、という良いサイクルを続けられたとのこと。
とはいえ20年というのはすごい。 私も、小さなことから、楽しみながら色々挑戦して行きたいと思いました。
曽我部 崇さん「軽量Rubyで実現する柔軟なルータ -SEILへの軽量Rubyの組み込み- 」
http://www.slideshare.net/takashisogabe/tokyo-ruby-kaigi-10-sogabe
mrubyで柔軟に動くルータを作っている、というお話でした。
電力消費量をツイートする機能や、監視異常をトリガとしてログ等をS3上にアップする機能をルータに組み込んでいました。 ユーザが書いたmrubyスクリプトにより柔軟に機能を追加できるそうです。
mrubyのgemであるmrbgemのお話や、Apacheのmoduleに組み込むmod_mruby、iOSアプリに組み込むMobiRuby等のお話も興味深かったです。 mrubyはフロンティアであり、今はまだコントリビュートできることがたくさんあるそうです。 色んなものがRubyで書けるとなるとわくわくしますね。
yaottiさん「Sole Rubyist's Fight」
https://speakerdeck.com/yaotti/sole-rubyists-fight
ひとり開発の大変さと、それを解決する仕組みづくりのお話。
ひとりで開発すると、技術情報が入ってこない、相談できない、レビューして貰う人がいないという問題があるとのこと。 カンファレンスや勉強会に行ってやる気は付けられるけど、やる気はあてにならない。 だから勝手に意識が高まっていく仕組みを作るのが大事! というのはまさに、と思いました。
オンラインではCodeTriage、starseeker、Qiitaをおすすめされていました。 また、オフラインでは勉強会に行かざるを得ない状況を作ることや、ハッカソンがおすすめとのこと。
ハッカソンやってみたいなあ。まずは社内で小さいの開いてみようかな。
前島真一さん「ブログのススメ」
https://speakerdeck.com/willnet/burogufalsesusume
日本人の技術ブログ少なすぎ、書くと良いことあるよ、というお話。
特にここ2~3年、某鳥さんの影響か、ブログが減ってきた。 ブログを書くと良い点として、以下の点をあげられていました。
- もう一歩踏み出せる
- 頭のなかを書き出すことで、考えが整理される
- 他の人の目に触れるとこに置くことで、あやふやなことを調べ、はっきりさせられる
- たまにアドバイスが貰える
- ブクマがもらえたりして嬉しい
- 勉強会等で声をかけてもらったりして、ぼっちを回避できる
でもブログを書き続けるって、モチベーションを保つのが大変。 そのためには、書くための敷居を下げ、習慣づけるための仕組みづくりが大事とのこと。
- 途中でも良いから力尽きた時点で公開
- リズムを付けて習慣づける
- メモ用のブログを作ることでクオリティ低下を回避できる
- アクセス数を常に見えるようにしておく
- ずっとブログ更新しないと数値下がるので、更新するためのリマインダになる
- 自分の書きたいものを書く
- 読者が求めていることは、基本気にしない
私もこのブログ続けられるよう意識したい。
その他企画
バッジ集め
4種類のバッジを交換して集めようという企画。 黒バッジがなくて全種集められなかったけど、休み時間の合間に楽しめました。 隣の方に話しかけるためのきっかけにもなり助かりました。
アンチぼっちランチ/ディナー
ぼっちの人で集まって、4人グループで飯食べに行きましょーという企画です。 これはとても良かった。ぼっちは心細いのです。 ご飯のたびに毎回参加しました。色んな人と知り合え、お話できて嬉しかった。
まとめ
Ruby初心者だけあって理解できない部分も多々ありましたが、この二日間で色んなことを学べ、いろんな人と話すことができました。話す人みんながすごくて、私も頑張らなきゃだなーと思いました。 Ruby会議、良いものですね。
また、降雪のため2日目は途中で打ち切りとなりましたが、その後の混乱を考えると、早い決断により助かりました。聞けなかった発表はとても残念ですが、今度の機会の楽しみにします。
最後に、まとめレポートを書いてみてよかったです。 聞いただけだと忘れてしまっていたことも結構あって、まとめる上で思い出したり、調べたりしてより深く理解できました。 前島さんの言ってた、ブログを書こうって意味がやってみて実感できました。
以上、長くなりましたが、東京Ruby会議10のレポートでした。
関係ないですが、はてなブログってMarkdownでかけるので良いですね。