先週末開催された札幌Ruby会議02でライブコーディングしてきました。本州枠の1つで話す機会を作ってくれた実行委員長のしまださん、ありがとうございます。
今回の発表はスライドだけでは伝わらないはずです。いつも、話すことすべてをスライドに盛りこんでいませんが、今回は特にスライドに盛りこまれていないことが多いです*1。
仙台では考え方について話しましたが、札幌では技術的なことを話すつもりでした。札幌で何かを伝えることができるのなら、それは技術的なことであって欲しいし、Ruby 逆引きレシピをリリースしているRuby札幌がいる札幌でならそれができるはず、というのが理由です。
そのために、今回はライブコーディングをすることにしました。
自分ができる、一番、技術的なことを伝える方法はプログラムを書くことです。プログラミングに限ったことかもしれませんが、何かを伝えるためには、結果だけではなく、過程も一緒に伝えた方が、より伝わります。ペアプログラミングが成果をあげているという声を聞いたこともあるのではないでしょうか。
ライブコーディングは1対1ではなく、1対nの形になるので、それで本当に伝えることができるのかは不安でしたが、札幌でなら大丈夫だろうということで決行しました。
札幌Ruby会議02の模様はニコニコ動画にアップロードされています。
2009-12-22 |
レシピに書かれていないこと - 須藤 功平 (20:41) 札幌でたいやきってな w |
tDiaryの話をした柴田さんも録画してくれました。ありがとうございます。こちらはYouTubeにあります。
A: 2, 3回練習しました。
あまり練習すると本番で間違わなくなるのであまり練習しないようにしました。実際、ライブコーディング中にいくつか間違いました。間違ったときにどうやって直していくかという過程も見てほしかったのでよかったです。
実際の開発はデバッグの連続です。間違わずに5分で完成させる動画通りにはいかないものです。
A: 使い慣れたエディタを使ったからです。
自分ではあまり意識して使っていませんが、意識してみると、以下の機能を使っているようです。以下の機能を使うことにより通常より速くコードを書くことができるかもしれません。
動的略語展開: 入力途中の単語を補完します。補完候補は現在開いているすべてのバッファ内にある単語すべてです。デフォルトではM-/にバインドされていますが、補完といえばタブなのでC-c C-iにバインドしています。
(define-key global-map "\C-c\C-i" 'dabbrev-expand)
A: ラングバプロジェクトのSubversionリポジトリでAGPL v3+で公開しています。
当日利用したリビジョンはr874なので、以下のコマンドで同じソースコードを取得できます。
% svn co -r874 http://groonga.rubyforge.org/svn/examples/message-archiver/
仙台ともとちぎとも違う雰囲気でした。とてもとても居心地がよかったのが忘れられません。Rubyを使って気分よくプログラムを書いているときと少し似ている気がします。
最初から最後まで最前列で話を聞いていました。文脈は少し違うのですが、ちょうど興味のある話題や、前から考えていたことに関連することが多く、参考にできることがたくさんありました。
田中さんの、ユーザが余計なことを考えなくても簡単に使えるようにしたい、という話、sumimさんや谷口さんの、興味を持って学習するためにはという話、和田さんの、増加するテストに立ち向かう方法の話、高橋さんの、やめる勇気の話、角谷さんの、選んだらそれでハッピーではない、上を見てもキリがないし下は見てもしょうがないんだから自分ができることをやっていく、という話。文脈が違うので自分の中で変換しながら自分に合わせて聞いていたので、発表された方が一番言いたかったこととずれているかもしれません。
ツールでは、しだらさんの紹介していたJekyllも使ってみたくなりました。とちぎではそうでもなかったのですが、今回は使ってみたくなりました。とちぎでは駆け足だったからかもしれません。
技術的なことは本編とは別のReject Talksが楽しかったです。Reject Talksでは、単に発表者が話すのではなく、観客が随時コメントをしていくという形式に(結果的に)なっていました。その中で、このコードがこう悪い、こうした方がよい、という話をできたことがとても楽しかったです。
話す側と聞く側ではなく、両者が話しあっていることがとても印象的でした。
札幌Ruby会議02での発表内容について補足しました。また、1参加者から見た札幌Ruby会議02も簡単にレポートしました。
札幌Ruby会議02がすばらしかったのはスタッフのみなさん、発表者のみなさん、参加者のみなさんなど関係者のみなさんのおかげでしょう。でも、もう少し考えてみると、実行委員長のしまださんがいることが一番大きいのではないかと感じています。みなさんは、司会をしていたしまださんが想いがこもった発表者紹介をしていたのに気づいていましたか。想いのこもった感想を述べていたことに気づいていましたか。しまださんの発表枠はありませんでしたが、しまださんの想いを感じることができたすばらしい札幌Ruby会議02でした。
そんな札幌Ruby会議02に発表者・スポンサーとして参加できてとても光栄です。
今回はActiveLdapには触れられませんでしたが、12/14のRailsセミナーではActiveLdapに触れるので、興味のある方は参加してみてください。
*1 公開用に多少加筆してあります。
先日開催された〜Ruby on Rails Technical Night〜 Ruby on RailsセミナーでActive Directoryと連携したRailsアプリケーションの作り方について話しました。
ActiveLdapという社内システムをRailsを使って実現するときに便利なライブラリをデモを交えながら紹介しました。
社内向けのシステムをWebアプリケーションとして実現することは驚くことではなくなりました。Webアプリケーションなので、もちろんRailsを使っても実現することができます。
そのときに避けて通れないのが既存の社内情報との連携です。社内向けのシステムなので、社内情報と密接に連携し、より便利に使えるものであるべきです。多くの組織では社内情報をActive Directoryを用いて一元管理しています。
Railsアプリケーションとして社内システムを実現する場合も、必要に応じてActive Directory内にある情報を利用します。それを助けてくれるライブラリがActiveLdapです。
Active Directoryをあまり知らない方も参加されるかたでもついてこられるように*1、前半でActive DirectoryとLDAPの基本的なところを説明しました。今回は「図での説明 + まとめ」というように、感覚的にわかってもらった後(なんとなくわかってもらった後)に要点を確認するという流れにしました。参加された方に感想を聞けなかったのですが、いかがだったでしょうか。
その後、実際にデモを行いながら、ActiveLdapがActiveRecordと同じようにActive Directory上の情報を操作できることを説明しました。ActiveRecordと同じように操作できるということは、いつもと同じようにコントローラ部分を書けるということです。つまり、今までのRailsアプリケーション開発の知識を活かしながらActive Directoryを操作するRailsアプリケーションを開発することができるということです。
今回は「コードがバンバン出るような内容を」ということで声をかけてもらったので、ここがメインの内容になっています。残念ながら公開されている資料ではデモを表現することができないので、デモで実行したコマンドなどを載せています。
最後に、実際にアプリケーションを開発するときにぶつかることが多い問題点についてふれました。Active Directoryとの接続の仕方、テストの仕方などです。
先日開催されたRailsセミナーでの内容を紹介しました。
ActiveLdapに興味をもたれた方はるびまのActiveLdap を使ってみよう(前編)やActiveLdapのチュートリアルも読んでみてください。次号のるびまでは後編が公開される予定です。そちらも楽しみですね。
今回の内容はActive Directoryに特化した内容もありますが、OpenLDAPなどLDAPサーバ一般に通用する内容も多いです。LDAPサーバと連携するRailsアプリケーションを開発している方も参考にしてみてください。
Active Directory関連のことだけではなくて、コードを書くことについても伝えたかったのですが、欲張りすぎました。話の中ではうまく伝えられませんでしたが、プログラマーの方であれば、グラデーションで繋がる世界: 札幌Ruby会議02に行ってみて初心に帰ったもぜひ読んでみてください。
*1 多くの方はご存知のようでしたが。。。
早いもので今年も残り10日になりました。今年のクリアコードは積極的に社外でも活動してきました。(おそらく)そのおかげで、はじめてお会いするときに「あぁ、名前を聞いたことがある」と言ってもらえることが増えてきました。ありがとうございます。
今回はククログ上で公開した今年の活動をまとめてみます。
仙台Ruby会議01にスピーカーとして参加し、地方(たとえば東北)でプログラミングが好きな人がスキルアップするにはどうすればよいかということを自分の経験を基に話しました。
必ずしも東京などに出る必要はありません。場所よりも、こつこつと続けて少しずつよくなっていくことの方が重要です。そして、続けるためには「好きなこと」であることが大きな助けになります。タイトルが「まず好きなこと、そしてそれを続けること」となっているのはこのような理由からです。
オープンソースカンファレンス2009 Tokyo/Springに参加しました。クリアコードがイベントに協賛したのはこれがはじめてでした。OSCでは展示スペースでライブ開発をしながら、迷惑メール対策ソフトウェア milter managerやMozilla関連サービスの紹介をしました。(ライトニングトークでもmilter managerを紹介)
インターンシップの紹介もしていて、ブースに寄ってくれたかくたにさんも紹介してくれました。ありがとうございます。
ククログに書かれる技術情報は、CutterやUxUなど開発している・開発に参加しているプロジェクトのリリース情報がわりと多いのですが、この月はユーザ側から見た技術情報が2つありました。
どちらもたまにリンクされているので、役にたった方が少しはいるようです。嬉しいことです。
このあたりからgroongaの話がでてきます。
どちらもすでに情報が古くなっていることが残念です。いつか最新の状況にあわせて更新したいですね。
Fennec(モバイル端末向けのFirefox)の話は1月からいくつかありましたが、Fennecで日本語を表示するための設定を公開したのは4月でした。この情報は今でも有効な情報です。
クリアコードのSubversionリポジトリを公開したのも4月でした。
迷惑メール対策ソフトウェアmilter manager関連で2回話しました。
共有ライブラリから関数名を抜き出す方法を紹介しはじめたのは5月からです。
6月もmilter managerについて2回話しました。
Mach-O形式の共有ライブラリから関数名を抜き出す方法も紹介しました。
日本Ruby会議2009にスポンサー・スピーカーとして参加しました。ブースも出展しました。
4月から毎月groonga情報を公開していましたが、7月はRuby/groongaを使ったサンプルを公開しました。
Windows上で便利にgitを使うためのソフトウェアTurtoiseGitのtipsを紹介したのも7月です。
8月はクリアコードではじめてのインターンシップを行いました。インターンシップでの成果も公開しました。
8月もmilter managerについて話しました。
共有ライブラリから関数名を抜き出すシリーズの最後としてPE形式の共有ライブラリから関数名を抜き出す方法も紹介しました。
ここでは扱えきれていない部分があるので、いつかその部分にも対応したバージョンを紹介したいですね。
milterでtaRgreyを実現できるようになりました。
開発に役立つこととして、Emacsのこと、デバッグのこともありました。
ハードウェアと連携するWebアプリケーションを実現するための1つのサンプルとして、(Webページ内の)JavaScriptからCPUの情報にアクセスするためのAPIを提供するFirefoxアドオンをリリースしました。
10月はとちぎRuby会議02にスポンサー・スピーカーとして参加しました。
テスト開発に役立つこととして、データ駆動テストを紹介したのも10月です。
10月は久しぶりに日本語のGTK+の書籍が出版された月でもありました。GTK+が得意なクリアコードとして、最近のGTK+/GNOMEまわりの情報も交えながら少し紹介しました。
Firefox Developers Conference 2009にパネリスト・発表者として参加しました。
11月もテスト、もう少しいうと、テスティングフレームワークについての話題がありました。
Ruby関連で2回話しました。
1つは札幌Ruby会議02へのスポンサー・スピーカーでの参加です。札幌Ruby会議はとてもグッとくるステキなRuby会議でした。札幌Ruby会議は動画まわりが強力なので札幌に行かなくても様子を観ることができますが、札幌でないとわからないこともあるのではないでしょうか。(もちろん、その逆もあるでしょう。)
2つめはコンテンツワンさん主催のRuby on Railsセミナーです。今までは「Rails」というキーワードで集まる方の前で話す機会がなかったので、今回のような機会があってとてもよかったです。ありがとうございます。やはり、ActiveLdapなどRailsと一緒に使うことを意識しているライブラリは、このような場で話す方があっています。
このRuby on Railsセミナーがクリアコードの今年最後のトークでした。
月ごとに今年のクリアコードの活動をまとめました。
今年は2009/1/24の仙台Ruby会議01にはじまり、3月・4月以外は毎月どこかで話していました。また、OSCや日本Ruby会議などでは発表者としてだけではなく、スポンサーとしても参加しました。イベント運営にも多少は貢献できていたのであれば嬉しいことです。
イベント以外でも、20回以上のフリーソフトウェアリリースやソフトウェアの使い方の紹介など、技術面でも役に立つような情報を発信できたつもりです。お役に立てたでしょうか。
今年もありがとうございました。来年もクリアコードをよろしくお願いします。