株式会社クリアコード > ククログ

ククログ

«前月 最新 翌月»
タグ:

札幌Ruby会議02: レシピに書かれていないこと

先週末開催された札幌Ruby会議02でライブコーディングしてきました。本州枠の1つで話す機会を作ってくれた実行委員長のしまださん、ありがとうございます。

レシピに書かれていないこと

内容

今回の発表はスライドだけでは伝わらないはずです。いつも、話すことすべてをスライドに盛りこんでいませんが、今回は特にスライドに盛りこまれていないことが多いです*1

仙台では考え方について話しましたが、札幌では技術的なことを話すつもりでした。札幌で何かを伝えることができるのなら、それは技術的なことであって欲しいし、Ruby 逆引きレシピをリリースしているRuby札幌がいる札幌でならそれができるはず、というのが理由です。

そのために、今回はライブコーディングをすることにしました。

自分ができる、一番、技術的なことを伝える方法はプログラムを書くことです。プログラミングに限ったことかもしれませんが、何かを伝えるためには、結果だけではなく、過程も一緒に伝えた方が、より伝わります。ペアプログラミングが成果をあげているという声を聞いたこともあるのではないでしょうか。

ライブコーディングは1対1ではなく、1対nの形になるので、それで本当に伝えることができるのかは不安でしたが、札幌でなら大丈夫だろうということで決行しました。

札幌Ruby会議02の模様はニコニコ動画にアップロードされています。

レシピに書かれていないこと - 須藤 功平

2009-12-22
再生: 159
コメント: 2
マイリスト: 3

レシピに書かれていないこと - 須藤 功平 (20:41)
札幌Ruby会議02 (2009/12/05)mylist: mylist/16614060time table: http://regional.rubykaigi.org/sapporo02

札幌でたいやきってな w

tDiaryの話をした柴田さんも録画してくれました。ありがとうございます。こちらはYouTubeにあります。

FAQ

Q: 練習したのですか?

A: 2, 3回練習しました。

あまり練習すると本番で間違わなくなるのであまり練習しないようにしました。実際、ライブコーディング中にいくつか間違いました。間違ったときにどうやって直していくかという過程も見てほしかったのでよかったです。

実際の開発はデバッグの連続です。間違わずに5分で完成させる動画通りにはいかないものです。

Q: 少し速いですね。

A: 使い慣れたエディタを使ったからです。

自分ではあまり意識して使っていませんが、意識してみると、以下の機能を使っているようです。以下の機能を使うことにより通常より速くコードを書くことができるかもしれません。

  • 動的略語展開: 入力途中の単語を補完します。補完候補は現在開いているすべてのバッファ内にある単語すべてです。デフォルトではM-/にバインドされていますが、補完といえばタブなのでC-c C-iにバインドしています。

    (define-key global-map "\C-c\C-i" 'dabbrev-expand)
  • "end"の挿入: ruby-modeではC-c C-eで"end"を挿入できます。
  • M-f/M-bでの移動: C-f/C-bより大きい単位で移動します。
  • C-hとC-dを同時に使う: C-hはバックスペースでC-dはdeleteですが、行内の箇所を削除する時はC-hとC-dを同時に使って削除しているらしいです。指摘されるまで自分でも気づいていませんでした。
Q: ソースコードは公開されていますか?

A: ラングバプロジェクトのSubversionリポジトリでAGPL v3+で公開しています。

リポジトリのURL
http://groonga.rubyforge.org/svn/examples/message-archiver/

当日利用したリビジョンはr874なので、以下のコマンドで同じソースコードを取得できます。

% svn co -r874 http://groonga.rubyforge.org/svn/examples/message-archiver/

札幌Ruby会議02全体の内容

仙台ともとちぎとも違う雰囲気でした。とてもとても居心地がよかったのが忘れられません。Rubyを使って気分よくプログラムを書いているときと少し似ている気がします。

最初から最後まで最前列で話を聞いていました。文脈は少し違うのですが、ちょうど興味のある話題や、前から考えていたことに関連することが多く、参考にできることがたくさんありました。

田中さんの、ユーザが余計なことを考えなくても簡単に使えるようにしたい、という話、sumimさんや谷口さんの、興味を持って学習するためにはという話、和田さんの、増加するテストに立ち向かう方法の話、高橋さんの、やめる勇気の話、角谷さんの、選んだらそれでハッピーではない、上を見てもキリがないし下は見てもしょうがないんだから自分ができることをやっていく、という話。文脈が違うので自分の中で変換しながら自分に合わせて聞いていたので、発表された方が一番言いたかったこととずれているかもしれません。

ツールでは、しだらさんの紹介していたJekyllも使ってみたくなりました。とちぎではそうでもなかったのですが、今回は使ってみたくなりました。とちぎでは駆け足だったからかもしれません。

Reject Talks

技術的なことは本編とは別のReject Talksが楽しかったです。Reject Talksでは、単に発表者が話すのではなく、観客が随時コメントをしていくという形式に(結果的に)なっていました。その中で、このコードがこう悪い、こうした方がよい、という話をできたことがとても楽しかったです。

話す側と聞く側ではなく、両者が話しあっていることがとても印象的でした。

まとめ

札幌Ruby会議02での発表内容について補足しました。また、1参加者から見た札幌Ruby会議02も簡単にレポートしました。

札幌Ruby会議02がすばらしかったのはスタッフのみなさん、発表者のみなさん、参加者のみなさんなど関係者のみなさんのおかげでしょう。でも、もう少し考えてみると、実行委員長のしまださんがいることが一番大きいのではないかと感じています。みなさんは、司会をしていたしまださんが想いがこもった発表者紹介をしていたのに気づいていましたか。想いのこもった感想を述べていたことに気づいていましたか。しまださんの発表枠はありませんでしたが、しまださんの想いを感じることができたすばらしい札幌Ruby会議02でした。

そんな札幌Ruby会議02に発表者・スポンサーとして参加できてとても光栄です。

今回はActiveLdapには触れられませんでしたが、12/14のRailsセミナーではActiveLdapに触れるので、興味のある方は参加してみてください。

あわせて読みたい

*1 公開用に多少加筆してあります。

タグ: Ruby
2009-12-07

Ruby on Rails Technical Night: Railsで作るActive Directoryと連携した社内システム

先日開催された〜Ruby on Rails Technical Night〜 Ruby on RailsセミナーでActive Directoryと連携したRailsアプリケーションの作り方について話しました。

Railsで作るActive Directoryと連携した社内システム

概要

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 多くの方はご存知のようでしたが。。。

つづき: 2009-12-21
タグ: Ruby
2009-12-15

2009年まとめ

早いもので今年も残り10日になりました。今年のクリアコードは積極的に社外でも活動してきました。(おそらく)そのおかげで、はじめてお会いするときに「あぁ、名前を聞いたことがある」と言ってもらえることが増えてきました。ありがとうございます。

今回はククログ上で公開した今年の活動をまとめてみます。

1月

仙台Ruby会議01にスピーカーとして参加し、地方(たとえば東北)でプログラミングが好きな人がスキルアップするにはどうすればよいかということを自分の経験を基に話しました。

必ずしも東京などに出る必要はありません。場所よりも、こつこつと続けて少しずつよくなっていくことの方が重要です。そして、続けるためには「好きなこと」であることが大きな助けになります。タイトルが「まず好きなこと、そしてそれを続けること」となっているのはこのような理由からです。

2月

オープンソースカンファレンス2009 Tokyo/Springに参加しました。クリアコードがイベントに協賛したのはこれがはじめてでした。OSCでは展示スペースでライブ開発をしながら、迷惑メール対策ソフトウェア milter managerMozilla関連サービスの紹介をしました。(ライトニングトークでもmilter managerを紹介)

インターンシップの紹介もしていて、ブースに寄ってくれたかくたにさんも紹介してくれました。ありがとうございます。

3月

ククログに書かれる技術情報は、CutterUxUなど開発している・開発に参加しているプロジェクトのリリース情報がわりと多いのですが、この月はユーザ側から見た技術情報が2つありました。

どちらもたまにリンクされているので、役にたった方が少しはいるようです。嬉しいことです。

4月

このあたりからgroongaの話がでてきます。

どちらもすでに情報が古くなっていることが残念です。いつか最新の状況にあわせて更新したいですね。

Fennec(モバイル端末向けのFirefox)の話は1月からいくつかありましたが、Fennecで日本語を表示するための設定を公開したのは4月でした。この情報は今でも有効な情報です。

クリアコードのSubversionリポジトリを公開したのも4月でした。

5月

迷惑メール対策ソフトウェアmilter manager関連で2回話しました。

共有ライブラリから関数名を抜き出す方法を紹介しはじめたのは5月からです。

6月

6月もmilter managerについて2回話しました。

Mach-O形式の共有ライブラリから関数名を抜き出す方法も紹介しました。

7月

日本Ruby会議2009にスポンサー・スピーカーとして参加しました。ブースも出展しました。

4月から毎月groonga情報を公開していましたが、7月はRuby/groongaを使ったサンプルを公開しました。

Windows上で便利にgitを使うためのソフトウェアTurtoiseGitのtipsを紹介したのも7月です。

8月

8月はクリアコードではじめてのインターンシップを行いました。インターンシップでの成果も公開しました。

8月もmilter managerについて話しました。

共有ライブラリから関数名を抜き出すシリーズの最後としてPE形式の共有ライブラリから関数名を抜き出す方法も紹介しました。

ここでは扱えきれていない部分があるので、いつかその部分にも対応したバージョンを紹介したいですね。

9月

milterでtaRgreyを実現できるようになりました。

開発に役立つこととして、Emacsのこと、デバッグのこともありました。

10月

ハードウェアと連携するWebアプリケーションを実現するための1つのサンプルとして、(Webページ内の)JavaScriptからCPUの情報にアクセスするためのAPIを提供するFirefoxアドオンをリリースしました。

10月はとちぎRuby会議02にスポンサー・スピーカーとして参加しました。

テスト開発に役立つこととして、データ駆動テストを紹介したのも10月です。

10月は久しぶりに日本語のGTK+の書籍が出版された月でもありました。GTK+が得意なクリアコードとして、最近のGTK+/GNOMEまわりの情報も交えながら少し紹介しました。

11月

Firefox Developers Conference 2009にパネリスト・発表者として参加しました。

11月もテスト、もう少しいうと、テスティングフレームワークについての話題がありました。

12月

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回以上のフリーソフトウェアリリースやソフトウェアの使い方の紹介など、技術面でも役に立つような情報を発信できたつもりです。お役に立てたでしょうか。

今年もありがとうございました。来年もクリアコードをよろしくお願いします。

つづき: 2010-12-29
2009-12-21

«前月 最新 翌月»
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|
タグ:
RubyKaigi 2015 sponsor RubyKaigi 2015 speaker RubyKaigi 2015 committer RubyKaigi 2014 official-sponsor RubyKaigi 2014 speaker RubyKaigi 2014 committer RubyKaigi 2013 OfficialSponsor RubyKaigi 2013 Speaker RubyKaigi 2013 Committer SapporoRubyKaigi 2012 OfficialSponsor SapporoRubyKaigi 2012 Speaker RubyKaigi2010 Sponsor RubyKaigi2010 Speaker RubyKaigi2010 Committer badge_speaker.gif RubyKaigi2010 Sponsor RubyKaigi2010 Speaker RubyKaigi2010 Committer
SapporoRubyKaigi02Sponsor
SapporoRubyKaigi02Speaker
RubyKaigi2009Sponsor
RubyKaigi2009Speaker
RubyKaigi2008Speaker