2013-03-09 [長年日記]
_ ぐんまRuby会議01
ついに故郷群馬で初めてのRuby会議!東京からたくさんの方が参加してくださって参加者60人の大盛況でした。今回は群馬の方が群馬の話をして、群馬出身の人もたくさんいて、群馬が楽しそうだから群馬へ来てくれた人もいて、とちぎの人たちがリージョナルRuby会議と聞いて駆けつけていたり、そうやって人がつながっていくのはとても良いですね。 yuguiさんの発表は30分という短時間とは思えない壮大なお話ですごかった。糧になる話でした。作中で紹介されたSFも読んでみたい。そのあとを任された須藤さんと光一郎さんは本当に大変そうでした。w 須藤さんは前から節々に話していた「後からきた人がつまづかないようにしよう。そのためには問題を回避せずに立ち向かおう。」といういい話。光一郎さんは初めて買ったPCのX68000、とそこからunix文化へのつながりの話。光一郎さんと出会ってから結構時間が経ったけど、この話は初めて聞いた。LTも含めてみなさん自分の生い立ちや指針を話していて、テーマである「puts "Hello world!"」からみんなそこに辿りついたのは面白いですね。また、昔からお名前をあちこちで見ているg新部さんのLTを聞けてとてもうれしかったです。(初めてお見かけしました!)そしてRejectTokyoで発表があった旦那編へのアンサーLTであるところの寺島さん。冒頭の「RailsGirlsから来ました」はなんだかとても感慨深かった。発表がすごくきれいでかっこよかったです。 河野君ら東急メンバーと懇親会会場まで高崎の街を歩いたり、齋藤ただしさんや恩田さんらとCoffee.rbの復活を決めたり、先日のマイナースポーツ勉強会でお会いしたもんもんさんとは実は中学が同じなことが分かったり、吾妻の寺島さんと温泉ハッカソンの話をしたりとお土産的な良いことがたくさんあった、ここには書き切れないほどの楽しいぐんまRuby会議01でした。:) 南斎さん、プラチナスポンサーのツルマウソフトさん、スタッフのみなさん、ありがとうございました! 私のLT資料はこちらです。最後のぐんまちゃん擬人化イラストまで辿り着かなかったのが心残り。(資料からは消してあるのでリンクをご参照ください。)
写真はこちら。 http://www.flickr.com/photos/igaiga/sets/72157632958245755/
2013-03-15 [長年日記]
_ shellのコマンド履歴をanything風にインクリメンタル検索して実行
shell の便利コマンドcanything をインストールしてみました。標準入力で入ってきたリストをインクリメンタルに絞り込んで、選択した行を標準出力へ出すものです。(emacsな人へはCUIなanythingと言えば伝わるかなと。)
これを使って便利なものができないかなと思い、過去のコマンド履歴からインクリメンタルサーチするコマンドを作ってみました。C-rのanything版です。現在はこんな感じで、選択したコマンドをshellに入力した状態にします。あらかじめ canything をインストールしておいてください。また、最後の「入力した状態にする」でtmuxの機能を使っています。(shellの標準機能で文字入力をする方法をご存知の方はぜひ教えてください。)
- for mac
alias h="history -10000 | sed -e 's/^\s*[0-9]*\s*//' | tail -r | canything | sed -e 's/^(.*)$/\"\0\"/' | xargs tmux send-keys "
- for linux
alias h="history -10000 | sed -e 's/^\s*[0-9]*\s*//' | tac | canything | sed -e 's/^.*$/\"\0\"/' | xargs tmux send-keys"
(個々のコマンドはあとで説明していきます。)標準機能のCtrl+r よりも速く分かりやすく選べて快適!.tmux.conf に以下のように書いてホットキーに登録するとさらに便利。(-nはグローバルにキー割り当てするオプション、hコマンドの前にC-u しているのは既に何か入力している時に消す処理。)
bind-key -n M-r send-keys C-u h ENTER
ちょー便利です。:)
以下、ここまでの歩みを。最初はこんな風に選択したコマンドを実行していました。
history -10000 | sed -e 's/^\s*[0-9]*\s*//' | canything | source /dev/stdin
history -10000 は過去10000件の履歴を出します。sed コマンドでhistoryで出力される先頭についてる数字とかを除いてコマンドだけにします。canything にコマンド一覧を入力して、ユーザーが選んだコマンドが標準出力に出てパイプされます。渡ってきた文字列を実行しているのが source /dev/stdin です。(evalでやろうとしたのですがうまくいかず。)
使ってみたら以下の問題があることが分かりました。
- 実際に実行するコマンドが標準出力に表示されない
- 実行したコマンドが実行履歴に残らない。(ので、↑ボタンで戻ると h コマンドになってて不便)
- 選んだコマンドを修正できない ってことは、コマンド実行までやらずに、選んだコマンドをshellに入力した状態にできたら、その方が嬉しいのかも。あと、history は古い順だったので、tac コマンドで逆順にして最近使ったものを最初に表示するように。そしてできたのが最初に出したコマンドでした。
history -10000 | tac | sed -e 's/^\s*[0-9]*\s*//' | canything | sed -e 's/^.*$/\"\0\"/' | xargs tmux send-keys
現在の問題点。
-
なんか標準入力の前の行に選択した文字列が表示されてしまう tmux send-key の仕様かな?標準入力に文字を入力する他の方法ないかな?
-
uniqしたい unix の uniq は標準入出力には使えないぽい。
2013-03-17 [長年日記]
_ 大江戸Ruby会議03
深川資料館の小劇場にて開催。前回同様、「生活発表会」というコンセプトはとても面白いです。そしてこれはコミュニティ自体の生活発表会でもある、というのが感想でした。artonさんの日記 にあるように 「全体的にアジャイルが否定すべき古臭いもの(とまでは言わないものの、(略))扱われ方」 なのはコミュニティ(つまり「私たち」)が成長したからなのだろう。
ファウンダーの松田さん(資料)は「コードを書き、それを発表しよう」と呼びかけ、nari3さん(日記)は「コードを書く喜び」を語った。鳥井さん(資料)は多様性の大切さを鳥井節で力説していた。
今回のセッションはそんな糧になるような、今後の指針になるようなことがたくさんあった。コミュニティが少し成長する瞬間に立ち会ったような感じがします。(yuguiさんの発表があった先週の群馬Ruby会議と続けて2週ですごい濃密。)
ほかにも井上さんの話で英国のVisaの夫婦の優遇ぶりや結婚してなくても条件を満たせば夫婦として扱うといった理にかなった考え方を知れました。mrknさんのバージョンアップの進め方も、takkanmさんの教えてくれた「what_methods」も勉強になった。西嶋さんの話は今度のRails寺子屋でも存分に伝えて欲しい。:)
さて、セッション以外にもいろいろ楽しいことはあって、特にお昼に行った蕎麦屋さんがとてもよかったです。深川飯とお蕎麦。東京にきて食べたご飯の中で5本の指に入るくらいの満足度でした。味のある店内と、Rubyist仲間と一緒に食べたのも満足度upに寄与してます。:) そして散歩がてら面白い看板に誘われて歩いて行ってみたのですが・・・その話はまた今度書きたいです。
まとめると、nari3さんのたのしい発表にみんなで腹をかかえて笑った思い出がいつまでも残りそうな楽しい1日でした。
写真はこちら。
2013-03-23 [長年日記]
_ 「Rails寺子屋x高専カンファレンス」を開催してきた
高専生やOBにRuby・Rails開発を体験してもらう表題のイベントが、オプティムさんの無限珈琲&紅茶と大量の漫画に囲まれたナイスな部屋で第1回の開催となりました。学生にRailsを、Webアプリ開発を教えたい、コミュニティで教育に貢献したいという想いは Kosen Advent Calendar By Teachers に寄せた日記 で書きました。学生全体をターゲットにした開催にもできましたが、高専カンファレンスとの共同イベントにしたのは参加者と師範(コーチ)として高専カンファレンスでつながった人たちの顔がまず浮かんだからです。高専カンファレンスで作られた繋がりを活用すると最初の開催をうまく離陸させられるのではと思い、そしてその通りになりました。
参加者は関東のほか、静岡、長野、新潟、富山、石川、福井、奈良、そして松江と全国各地から集まりました。学生さんもいるのに、移動の交通費や時間を払っても来てもらえたのはとても嬉しかったです。師範はスタッフ会議や各種タスクをこなしてくれたコアメンバーに加えて、参加者が想定よりも多かった(全30人)ため、助っ人師範としてRubyコミッタの @sora_h さん、NaClの本多さん( @nobyuki )、クックパッドの @mirakui さんに参加してもらえることになった。自画自賛ですが、すごい師範が集まりました。当日は各テーブルを師範に安心しておまかせ。会場まわりはあやちゃん( @mitaku )とオプティムのみなさんがやってくれて、懇親会は @rooandqoo ちゃんがやってくれたので、私は安心して教える方に集中できました。
参加者さんの技量は私たちの想定よりも高くて、朝の段階でインストールを終わらせてきた人がほとんど。RailsGirlsのナイスマテリアルを使って画像投稿ブログアプリを作ってHerokuで公開、がゴールだったのですが、午後の半分の休み時間の段階ですでに達成している人が半分くらいいたようです。ほかの時間は師範にアドリブでおまかせしていたので、疑問点をぶつけてみたり、新しい課題に取り組んだりしてもらえた様子。これくらいのゆとりある時間配分の方が師範の力量も活かせていいかもしれない。私は本多さんと組んでいたのですが、本多さんは松江でRuby合宿などにも参加しているそうで、教えるのがすごく上手でした。私も source_location
メソッドを勉強させてもらいました。( pry.method(:pry).source_location
でソースが見れる。便利〜!)興味深かったのは師範間のコミュニケーション。始める前に「Arrayの基本を説明して、リファレンス見て、Enumerableいきますかー。」と私が伝えただけで本多さんがばっちり話を組み立てて話してくれて、その話の途中で(日本語での)説明を聞きながら私がサンプルコードを「こんな感じですか?」と書いて、「ああ、そんな感じです」と進むというナイスチームワーク。これは病みつきになりますね。
当日までの運営も同様にスムースでした。高専カンファレンスとRailsという2つのバックグラウンドを共有する師範同士の会話はコミュニケーションコストがとても安くて、阿吽の呼吸で進んでいきました。これはとても楽しかったです。@june29 さんに相談したのが確か「とちぎテストの会議02」のときだったから去年の10月。@mrkn さんにもRubyConf2012の旅の飛行機で相談に乗ってもらったり。師範のみなさん、ありがとうございました。
懇親会で参加者さんに継続開催について聞いたところ、継続開催に乗り気な人が多かったので、師範や参加者に新メンバーを加えながら、ゆるく長く続くコミュニティに育つといいなと思います。次回開催は今回の開催のフィードバックを受けて、いろいろ工夫のしどころがあります。(先生に参加してもらえるイベントにするのは1つの目標です。)とてもたのしかったので、ほかの教育機関でもぜひ似た試みをやってみるといいと思います!
_ tmaeda [> unix の uniq は標準入出力には使えないぽい。 え、そんなことなくない? $ printf "aaa..]
_ いが [ほんとだー!!!(manのその記述を読んで、ファイルのソートしかできないのかと思ってました・・・。)ありがとうござい..]