カテゴリ「Technology」のエントリ

にんじんバーグ

「高専カンファレンス 2009秋 in 東京」を終えて

先に書いたエントリでは,自分の発表については言及しなかったので,エントリを改めて書く.ボクがこの「釣り」発表で伝えたかったこと.

高専カンファレンスを通じてやりたいこと

「高専在学中の自分を救うこと」です.ボクは心の中では高専カンファレンスを私物化していて,あの頃の,技術の勉強をしたところで自分の将来がどうなるかまったく分からなかった自分を救いたい想いで活動している.

そんな自分に向けてのメッセージがあって,でもそれを例えば文章にして箇条書きにしてしまうと,5分もの間,会場にいる皆さんを退屈させずにアテンションを集め続けることはできない.だからボクは,いくつかの「キャッチーなフレーズ」と「魅力的な写真」,そして楽しいプログラミング言語である「Ruby」とそのライブラリたち,の力を借りて,5分間を乗り切ることにした.

言葉にはしないながらも,あの5分間にはメッセージを込めてある.それは,子供たちが大好きなお肉たっぷりのハンバーグに,なんとかして食べさせたいにんじんを混ぜ込むようなものだ.

ハンバーグとスタミナ焼き

とはいえ,高専カンファレンスに積極的に参加してくれているような感度の高い子たちは,自分の中で音を立てている「技術に対する何か」にすでに気付いているんだろうな.羨ましいやら,悔しいやらで,高専カンファレンスで出会える若い子たちが大好きです.

技術を楽しんで,自分の人生を楽しくすればよい

特に,若くしてその力を認められている人たちには,ときに「日本の将来のために」なんて言葉が贈られることがある.それ自体はとても名誉なことだから,素直に喜んでいい.

だけれど,そんなことはまったく考えなくていいと思っている.殊更,情報系を専門にして,インターネットや Web が生活の中に溶け込んでいる人たちにとっては,国境なんてものを意識することはあまりなくて,「日本のために」と言われてもピンとこないんじゃないだろうか.

何より自分のために,ときには自分の大切な人のために,技術を楽しんでいられたらそれでいいと思う.そうして素晴らしい成果が生まれたとき,それをどうやって国のために役立てるかは,そういうことを考えたい人が考えればいいじゃないか.

まとめ

あちゃー,やっぱり言葉にしてしまうと説教臭くなるなー.これからもにんじんバーグを心掛けて,メッセージを楽しく伝えられるようにありたい.

RubyKaigi2009に参加してきた

もう RubyKaigi2009 が終わってから何日も経ってしまいました.

RubyKaigi2009

RubyKaigi2009にKaigiFreaksとして参加します - 準二級.jp

ボクにとっては去年に続いて2回目の RubyKaigi.普通の参加者,お客さんとして楽しませてもらった RubyKaigi2008 と,スタッフの一員として参加できた RubyKaigi2009.ちょっと遅めのふりかえり.

発表とか

どの発表がどうだったとか,そんなものは gihyo.jp のスペシャルレポートに全部書きましたよー!もうこれ以上書けません,ってくらいに書きました.他の配信チームのメンバーや実行委員の皆さんは,ほとんど発表を楽しむヒマがなかったと思いますが,ボクはレポート係という立場だったので,多くの発表を見ることができました.

聞けてよかったなぁと思うのは Sinatra の発表です.そもそも Sinatra が大好きだから!ってのもありますが,ただただライブラリの使い方・特長をチュートリアル的に説明するだけじゃなく,「なぜ Sinatra なのか」という思想が多く語られていて,とても楽しかったです.

"Sinatra: The Framework Within"

成果物としてのライブラリを見て,ユーザとして利用するだけに留まらず,どのような想いで「その作品が創られたか」を追いかけていくことで,自分も,少しでもよい物作りをしていきたいと強く感じました.

実は Sinatra の発表があったセッション,見ようか見まいか迷っていたんです.ただただライブラリの使い方を説明されるだけだったら,生で見る必要もないよなーと思っていました.いやいや,生でしか見られない痺れる発表がありましたよ.ステキな発表をありがとうございました.

それと… レポートを担当しながら,まったくレポートとして仕上げられなかった角谷さんの発表 Take the Red Pill について.発表者ご本人からも「レポートとしては壊れている」とお言葉をいただいて,ボクもそう思います.発表中にあった「楽しさで生き延びていく」という言葉がずっと心に響いていて,これを勝手に「ガンバってもいいんだよ」という意味だと捉えました.そんなこんなで,やっぱり文章の形で言えることは,まだありません.

スタッフとして

関係者席

初日の朝の会場設営から,閉会後の打ち上げまで,たっぷり楽しめた約3日間でした!

初日の朝

どこかで見たことのある人,見慣れた顔の人.こちらが一方的に知っていて,お話ししてみたいなーと思っていた人.この場で初めて会った人.仲間として同じ3日間を共に過ごすことができました.とても嬉しいこと.素晴らしい出会いの機会をありがとう.ここで会えた皆さんとは,これからも色んな場所でご一緒したいな.そう思わせてくれるような,Nice な人たちばかりだった.

受付チーム

3日目の朝会

参加者として来場していたお友だちにもいっぱい会えました.スタッフとして,彼ら彼女らをおもてなしできて,スタッフ T シャツがとても誇らしかったです.みんなに楽しんでもらえていたらいいなぁ.

さらりと

全体としてさらりとした,お行儀の良いエントリになってしまった.それもそのはず,ボクはまだ Ruby 札幌の話をしていない.

会期中もそうだし,終了から2週間ほど経った今も,「なぜ自分があの特別な場所にいられたか」を繰り返し考えています.

RubyKaigi2009にKaigiFreaksとして参加します

去年の RubyKaigi2008 には一般参加者として参加しました.

RubyKaigi2008に参加してきた - 準二級.jp

あの不思議な興奮から1年.今年の RubyKaigi2009 には,ありがたいことにスタッフ(KaigiFreaks)として参加させていただけることになりました!スタッフのページにも名前が載って,とても嬉しいです.

ボクの担当するお仕事は2つ!

  • 一橋記念講堂チームの一員として,メイン会場で行われる発表の映像を配信・録画する
  • 技術評論社さんのレポート係として,写真と文章を随時更新でお届けする

現地参加できない方にも RubyKaigi の熱気をお伝えできるように尽力します.特等席で発表を見られるわけですからね,ちゃんとレポートしないとバチがあたるってもんです!

また,直前レポートとして書かせていただいた RubyKaigi2009 の紹介記事が,gihyo.jp に掲載されています.こちらもどうぞご覧ください.

RubyKaigi2009 スペシャルレポート:Ruby会議2009 直前レポート|gihyo.jp … 技術評論社

今週末から始まります!

もういよいよですね!実行委員の皆さん,他の当日スタッフの皆さん,どうぞよろしくお願いします.参加者の皆さん,RubyKaigi2009 でお会いしましょう!楽しみ!

Sinatraで遊んでみた

ちょーお手軽に試せちゃう Web アプリケーションフレームワークであるところの Sinatra で遊んでみました.

Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort

Sinatra: README

“minimal effort” と謳っているのは伊達じゃなくて,Web サイトに書かれている通りに進めていけば,すぐに動くものができちゃいます.けっこうな衝撃体験でした!最初に Sinatra を知ったのはusericonsリニューアルとソース公開 - SWDYHを読んだときで,でもこのときはソースコードを見てもどの部分が Sinatra の処理に当たるかよく分かりませんでした.最近になって,改めて触ってみようと思ったときにRuby Sapporo Night vol.10 にてSinatraのお話をしました - dara日記があって,手を動かしてみるに至りました.

習作

練習用に,ということで,ボクが Tiarra のログとして貯め込んでいる Twitter のアーカイブを検索したりできるものを作ってみました.初めて触れるフレームワークなので学習コストも発生するわけですが,それでも数時間でひとまず動くモノができちゃうんだからすごいなー.

june29’s tiarrar at master - GitHub

Tiarrar

Tiarra のログファイルをパースするところは置いておくとして,Sinatra の処理に当たるコードは以下のような感じです.これだけで URL に対する挙動を割り当てられます.必要な情報だけ集めて,あとは view 側に渡してやるのですね.

get "/" do
  @groups = tiarrar.groups.keys
  @statuses = tiarrar.recent
  haml :index
end

get "/groups/:group" do
  @group = params[:group]
  @statuses = tiarrar.group(@group)
  haml :statuses
end

get "/search/" do
  @word = params[:word]
  redirect "/search/#{URI.encode(@word)}"
end

get "/search/:word" do
  @word = params[:word]
  @statuses = tiarrar.search(@word)
  haml :statuses
end

内容は

  • 「/」へのアクセスは,最近の status を表示する index のビュー
  • 「/groups/:group」へのアクセスは,指定グループに含まれる人の status だけを抜き出した statuses のビュー
  • 「/search」への word パラメータ付きアクセス(検索フォームの向き先がこれ)は「/search/:word」にリダイレクト
  • 「/search/:word」へのアクセスは,指定の文字列を含む status だけを抜き出した statuses のビュー

と,これだけです.

実現したい機能に対して,書かなきゃいけないコードの量が最小限で済むなぁ.もともと,Tiarra のログをブラウザから閲覧できるようにしたいとは思っていて,そうしておくと iPhone の Safari からもパッとアクセスできますしね,だけど,HTML に組み立てるのがけっこう面倒で,なかなか手が進まずにいました.

ボクがこれまで作ったものだと,TumbLensiReblog も Sinatra でキレイに置き換えられそうです.特に iReblog の方は,cgi.rb で API 部分を作っていて,設定が面倒だったりしたので,これからは Sinatra が代替になってくれそうで嬉しいです.

そうそう,cgi.rb だと小さすぎるけど,Rails だと大袈裟すぎる,Sinatra は間に入ってくれて,上手に使い分けると幸せになれますね.

雑感

Rails に触れたことがある,ってのが大きかったと思います.Sinatra の処理を書いているときは「Rails でいう routes.rb と controller を書いている」って感じでした.view はそのまま view ですね.今回,Haml に触れるのも初めてで,これまたキモカワイイなーと思ってしまいました.はむはむカワイイ!Haml は,慣れるまでは大変だけど,慣れてしまえばすいすい書けちゃいそう.each に対応する end を書いたりしてハマりました.

まとめ

Sinatra の世界に入門してみました.正しい使いどころで使えば強力な武器になりそうです.最初のビューまでサクッといけちゃうのがいいですね.プロトタイピングに向いていそう.Haml や Sass と合わせて活用すればさらに少ないコード量でとりあえず動くモノができちゃう.

Sinatra 面白いです!

美人時計と投票システムとそこから先と

きのうから @kynbit が遊びにきていて,@kei_s も交えて悪ふざけナイトを謳歌した.ただただ「面白かった」ってことを未来のために記録しておく.

ちなみに @kynbit なら俺の隣で寝ているよ!

完食

kynbit と食べた中華

美人時計

誰かが部屋に遊びに来てくれたら,とりあえず Ustream しますよね.そんな感じで夜が始まって,IRC でちゃちゃを入れてくれる何人かの人たちと美人時計いいよねーって話になって,いつしかインターネット時代の「この中だったら誰がタイプ?せーので指さそうよ!」タイムに突入していました.

投票システム

最初は「この子かわいい」とか言うだけ言っていたのが,その場で IRC の発言を集計するボットが実装されたことにより,思わぬ方向に発展していきました.IRC に buzztter の作者であるところの @darashi さんがいたのですから,集計ボットに「HOT」機能が搭載されたのは当然と言えましょう.

かくしてボクらは好みの女の子への投票システムを手に入れました.

そこから先

もうみんなカッとなって思い付いたままに行動するだけになりました.美人時計のことは忘れて,どこかから画像を見つけてきては URL を IRC に貼り,画像の URL が貼られたら OpenCV で顔認識した結果を返すボットが動き出し,後半は「顔以外のポイントが最も多く認識される画像を貼ったやつが優勝」というルールになっていました.

saybot というボットもいて,IRC に書き込まれた内容が Mac OS X の say コマンドで音声になり,そのまま Ustream で配信されるので,大変カオスでした.

まとめ

ここのところ使っていなかった右脳に刺激を与えて,くだらない遊びを見つけられてとてもよかったです!今回は悪ふざけばかりでしたが,ひとつのものをみんなで見ながら「良い」「悪い」だのと評価を与えて,結果がすぐに反映されるシステムというのは,何かしら使い道がありそうだなぁとワクワクしました.

今日もこれから悪ふざけします!