Rubyカンファレンス2006

Rubyカンファレンス2006の覚え書き。

  • 『プログラミングRuby』の第2版と、日本人によるRais本がまもなく登場。
  • dRubyによる分散・Webプログラミング』はまだ第1版が入手できるそうです。ちなみに持ってるのは、1版1刷だった。
  • Ruby 2.0は当分先になりそう。
  • 女性でひとりすごい言語に詳しい方がいる。継続かわいい。
  • RelativePathプラグインがいい感じ。相対パス最高。
  • dRubyのRingとかで、ブログ間連携を実現できたりして。試してみたい。
  • Alan Kayが「Smalltalkは死んだ。Rubyは好き」といったらしい。
  • DHHがかっこよい。スタイル云々じゃなく、その行動とか哲学的なところ。
  • 次期RailsActiveResourceフレームワークが登場。使いどころを考えてしまう。
  • CRUDの考え方を推し進めていくActiveRecordは、T字形ER図に近づきそうな予感(?)
  • とにかく濃い。頭が飽和状態。Ruby全然知らないことを実感。
  • Rubyを深く知るには、LispHaskellPerlとかRubyの元になった言語を勉強したら早い気がした。
  • BioRuby、インターネット物理モデルが面白い。Lightening Talkの5分間じゃもったいない話。
  • みなさんお疲れさまでした。

Pure Rubyカレンダーモジュール

Amazonに注文していた『Calendrical Calculations Millennium edition』が明日到着予定。ということで、Pure Rubyなカレンダーモジュールの開発にようやく取り掛かれることになりそうです。添付のCD-ROMのJavaコードをRubyに置き換えつつ、Lispを読む勉強もするという目論見です。

カレンダーモジュールの問題

地球ブログでは暦変換の要に、ふなばしさん作のカレンダーモジュール(http://www.funaba.org/calendar.html)を使う予定なのですが、少し問題があることに気がつきました。

  • 地球ブログは自宅サーバーではなく外部の共用ホスティングサーバーに置くため、C言語で拡張されたモジュールを配置するのが困難であること。
  • マヤ暦など多数の暦に対応しているカレンダーモジュールだが、13の月の暦は対応しておらず、これに対応した部分を拡張する必要があること。

前者に関しては、Pure Rubyに翻訳すればさほど問題はないように思うのですが、いかんせんC言語によるRuby拡張というのはやったことがないし、日常的に使わないC言語をきちんと取り扱えるのか…不安なところではあります。が、いずれにしても、ふなばしさんのカレンダーモジュールのアーキテクチャはとっても便利ですし、これは一肌脱いでやるしかないでしょうね。

後者に関しては、既存のRubyで書いた13の月の暦モジュールがあるので、前者の問題とも絡めて対応してしまえば良いのかな?

地球ブログに必要な材料はほとんど揃いつつあるのですが、肝心な暦計算が大きな壁となっている事実は否めません。誰がC言語を知っていて、Rubyに書き換えてみてもいいよ〜という方、いませんか?

with_scope

地球ブログでは、ユーザーという考え方があるので、ControllerでModelにCRUDする際に、かならずユーザーIDに基づく処理を行うことになる。けど、それらを都度記述するのは面倒だし、DRY原則に反することになる。

何かいい解決方法はないか?と思っていたら、こんな方法があると知る。
http://habtm.com/articles/2006/02/22/nested-with_scope

素晴らしい。これなら、ずいぶんスッキリと書ける。

URL設計

RailsはURLを柔軟に設定できるルーティングという仕組みがあるのですが、それを使うに当たって重要なのは、意味があり、衝突のないURL設計を行うこと。というわけで、Controllerとの対応づけも含め、これを完了。

Rails Recipes, Agile Web Development with Railsには、このあたりのことが詳しく書かれているので参照のこと。

認証について

認証には、RailsプラグインであるSalted Hash Login Generatorを使おうかと思う。
便利なもので、コマンド一発で、ユーザ登録、認証、パスワードメール送信などを自動生成してくれる。
Macで開発していると、SMTPサーバがデフォルトでは動いていないため、メール送信でコケてしまう。

そこでPostfixを動かそうと頑張ろうと思ったところ、Postfix Enablerというシェアウェアが一発でPostfixを動かしてくれるらしい。$9.99だし、これは払う価値があるとみた。