upinetree's memo

Web系技術の話題や日常について。

ぐんま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のターミナル環境はどんなのが良いんだろう?と色々試しています。

やりたいこと

  • バッチファイルで環境変数バリバリ設定しちゃっても大丈夫
  • パスのバックスラッシュも気にせず使える
  • UNIXライク(コマンド、標準出力のインラインでの置換など)

みたいな感じ。現状では次の構成で落ち着いています。

コマンドは色々試した結果MinGWすることに。 Gow (Gnu On Windows)はうちの環境でパイプをうまく処理してくれなくて、 cygwinはやっぱりパスの解釈で色々問題出てきたので。

結構語り尽くされたネタですが、自分なりの設定も踏まえて紹介します。

Nyaos

NYAOS.ORG - FrontPage.ja

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はデフォルトで日本語入力ができません。 パッチを公開してくれている方がいるので導入しておきます。

Console IME対応パッチ

最新の2.00b148-Betaへのパッチです。

設定メモ

  • フォントはちょっと注意

    • フォントリンクだとカーソル位置がずれる場合がある
    • プロポーショナルフォントだと背景色の表示が一部黒くなる場合がある
    • Smoothing はフォントに応じて設定しておく
  • 画面上の文字選択は、デフォルトだとShiftキーを押す必要あり

    • 押すのが面倒なら設定の Mouse から Select text を Left だけにしておく
  • タブとしてNyaosを登録しとく

  • 色設定はsolarizedがお気に入り

  • 日本語入力時に、カーソルがずれたり文字が重なって表示されたりする場合

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と過ごした半年間」

Cookpadみんなのカフェを作ったよというお話。

みんなのカフェは井原さんが一人でRailsで作られていた。 勉強の際は、Rails GuidsRails TutorialCode SchoolRails Castsなどを主に活用されたとのこと。 一人PivotalTrackerや一人CIで開発を進めていったそうです。

  • 「Life is short、やりたいことをやりましょう」
  • 「今作りたいものがあるなら作ってみましょう。僕らはコードが書ける」

というのは本当だなあ。

あと、実はみんなのカフェの投稿の承認は(夜中でも)一人で行なっていたそうです。びっくりです。

takkanmさん「やさしいRails勉強会@東京のつづけ方」

2005年11月から続くRails勉強会@東京の主催を引き継ぎ、三年間どうやって続けられているか、というお話。

楽しい事ばかりでなく、問題が重なってきた時「続けても楽しくない」と思ったこともあったそうです。 でも、「続けたい」という思いから、takkanmさん自身がどう行動したかのお話がありました。 大事なのは、なぜはじめたのかをふりかえること、やりたいことをやるということ、楽しめていなければやめてしまうこと。

私は社内勉強会をはじめたばかりなので、長く勉強会を続けられたtakkanmさんの視点からのお話がとても参考になりました。

蓮尾高志さん「周囲の助けを得ながら楽しく開発するためのアレコレ」

https://speakerdeck.com/hassaku/tokyorubykaigi10

Rubyを使った日々のちょっとした工夫によって、たのしい開発を実現している、というお話。

ちょっとした工夫、ということですが、アイデアも実行力もすごいなあと思いました。

  • ペア作業の際、別々のマシンで同じ作業をするために、wemuxvagrantを使用
  • メンバーの特性を客観的に見える化するために、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さん「PHPRuby の架け橋」

http://www.slideshare.net/do_aki/a-bridge-between-php-and-ruby

PHP上でRubyが動くphp-ext-rubyと、Ruby上でPHPが動くphp_embedという用途不明の凄まじいお話。

処理系拡張ということで、実装の内部はあんまり理解できず…さらに途中からPHPRubyが混ざって混乱したけど、何とも奇妙で楽しかったです。

理論上は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

ひとり開発の大変さと、それを解決する仕組みづくりのお話。

ひとりで開発すると、技術情報が入ってこない、相談できない、レビューして貰う人がいないという問題があるとのこと。 カンファレンスや勉強会に行ってやる気は付けられるけど、やる気はあてにならない。 だから勝手に意識が高まっていく仕組みを作るのが大事! というのはまさに、と思いました。

オンラインではCodeTriagestarseekerQiitaをおすすめされていました。 また、オフラインでは勉強会に行かざるを得ない状況を作ることや、ハッカソンがおすすめとのこと。

ハッカソンやってみたいなあ。まずは社内で小さいの開いてみようかな。

前島真一さん「ブログのススメ」

https://speakerdeck.com/willnet/burogufalsesusume

日本人の技術ブログ少なすぎ、書くと良いことあるよ、というお話。

特にここ2~3年、某鳥さんの影響か、ブログが減ってきた。 ブログを書くと良い点として、以下の点をあげられていました。

  • もう一歩踏み出せる
    • 頭のなかを書き出すことで、考えが整理される
    • 他の人の目に触れるとこに置くことで、あやふやなことを調べ、はっきりさせられる
  • たまにアドバイスが貰える
  • ブクマがもらえたりして嬉しい
  • 勉強会等で声をかけてもらったりして、ぼっちを回避できる

でもブログを書き続けるって、モチベーションを保つのが大変。 そのためには、書くための敷居を下げ、習慣づけるための仕組みづくりが大事とのこと。

  • 途中でも良いから力尽きた時点で公開
    • リズムを付けて習慣づける
    • メモ用のブログを作ることでクオリティ低下を回避できる
  • アクセス数を常に見えるようにしておく
    • ずっとブログ更新しないと数値下がるので、更新するためのリマインダになる
  • 自分の書きたいものを書く
    • 読者が求めていることは、基本気にしない

私もこのブログ続けられるよう意識したい。

その他企画

バッジ集め

4種類のバッジを交換して集めようという企画。 黒バッジがなくて全種集められなかったけど、休み時間の合間に楽しめました。 隣の方に話しかけるためのきっかけにもなり助かりました。

アンチぼっちランチ/ディナー

ぼっちの人で集まって、4人グループで飯食べに行きましょーという企画です。 これはとても良かった。ぼっちは心細いのです。 ご飯のたびに毎回参加しました。色んな人と知り合え、お話できて嬉しかった。

まとめ

Ruby初心者だけあって理解できない部分も多々ありましたが、この二日間で色んなことを学べ、いろんな人と話すことができました。話す人みんながすごくて、私も頑張らなきゃだなーと思いました。 Ruby会議、良いものですね。

また、降雪のため2日目は途中で打ち切りとなりましたが、その後の混乱を考えると、早い決断により助かりました。聞けなかった発表はとても残念ですが、今度の機会の楽しみにします。

最後に、まとめレポートを書いてみてよかったです。 聞いただけだと忘れてしまっていたことも結構あって、まとめる上で思い出したり、調べたりしてより深く理解できました。 前島さんの言ってた、ブログを書こうって意味がやってみて実感できました。

以上、長くなりましたが、東京Ruby会議10のレポートでした。

関係ないですが、はてなブログってMarkdownでかけるので良いですね。