ある Rails アプリケーションで他の Rails アプリケーションのデータベースを参照したかったので、方法を調べました。情報源は以下のサイトです。

ActiveRecord の API ドキュメントにはこう書いてあります。

Connections are usually created through ActiveRecord::Base.establish_connection and retrieved by ActiveRecord::Base.connection. All classes inheriting from ActiveRecord::Base will use this connection. But you can also set a class-specific connection. For example, if Course is a ActiveRecord::Base, but resides in a different database you can just say Course.establish_connection and Course *and all its subclasses* will use this connection instead.

データベースへのコネクションは ActiveRecord::Base.establish_connection で作られるので、あるモデル(例えば Course)で別のコネクションを使いたければ、Course.establish_connection を自分で呼べばよいらしい。ということでやってみました。

続きを読む »

広告

Paul Graham氏のエッセイ集『ハッカーと画家』を読み終えました。失礼ながら、ついこの間まで何者なのか知りませんでした。Viaweb という、Yahoo! Store の元になったベンチャーを創った Lisp ハッカーでした。Viaweb も一部 Lisp で書かれていたそうです。すげー。

続きを読む »

これまでこの Blog の更新 Ping 送信先は直接 WordPress に設定していましたが、Ping 送信先をまとめて管理してくれるサービスを試してみました。


Ping 一括配信サービス Pingoo!

Pingoo にユーザ登録し、自分の Blog の Ping 送信先を Pingoo にしておくと、Blog を更新するたびに Pingoo が Ping を送信してくれます。Pingoo を導入するメリットは
Pingoo にはあらかじめ多くの Ping サーバが登録されているので、多くのサーバに Blog の更新が通知されます。Pingoo を導入するメリットは

  • あらかじめ多くの Ping サーバが Pingoo に登録されている
  • 送信エラーへの対処などを Pingoo が肩代りしてくれる
  • Ping 送信履歴を管理できる

などです。

この Blog でもこの投稿が Pingoo を使った初めての投稿です。 ちゃんと Ping が配信されるでしょうか。


2007/3/23 追記 送信履歴が残っていない。うまく配信されていない模様。どこがまずいんだろう。

Adobe Labs で Apollo の alpha バージョンがリリースされていますね。

Flex Builder で Apollo アプリケーションを開発できる Extension も配布されていたので、Flex Builder のトライアル版をダウンロードして試してみました。

基本的には、フォームに部品をペタペタ張りつけてイベントハンドラを ActionScript で記述していく感じなのでしょうか。.NET や Visual Studio に慣れている自分には馴染み深く、ActionScript のリファレンスを片手に、なんとなくで簡単なサンプルアプリケーションを作れました。.NET アプリケーションより見た目がイケてます。

おもしろそうなので、もうちょっと遊ぶかも。

Adobe LabsSpry という Adobe 製の Ajax フレームワークが公開されています。Adobe によると、Spry とは

The Spry framework for Ajax is a JavaScript library for web designers that provides functionality that allows designers to build pages that provide a richer experience for their users. It is designed to bring Ajax to the web design community who can benefit from Ajax, but are not well served by other frameworks.

であり、つまりは Web デザイナーが利用することを想定した JavaScript ライブラリだそうです。@IT にも記事がありますが、 Spry を使うと XML データから動的なページを生成することができます。しかも、デザイナー対象であることから、JavaScript によるコーディングは必要最低限に抑えられています。

ところで Rails 1.2 には新しいジェネレータとして「scaffold_resource」が追加されています。scaffold_resourceで足場を生成すると、通常の scaffold とは異なり、REST 風味のリソース操作が可能になるというのは以前に書きましたが、scaffold_resource を利用すると、さらにリソースの XML 出力まで可能な足場を生成してくれます。例えば、ブログを開発するために、記事のモデル(Post)とコントローラ(PostsController)を作ったとすると、scaffold_resource の場合、

GET /posts

で記事一覧の HTML を取得することができますが、さらに

GET /posts.xml

とするだけで記事一覧の XML を取得することができます。

ここでやっと本題ですが、scaffold_resource を使うとリソースの XML 出力を簡単に得ることができるので、Spry を使うのも簡単じゃない?と思って使ってみました。

続きを読む »

楽天がサービスの開発に Rails を採用すると発表しました。業務で Rails を利用している身(プロトタイピングと実験ばかりだけど)にとっては心強いし、この流れで Rails を取り巻く環境が良くなっていけばいいなあ、と願っております。CNET にも出てたよ。

楽天、ネットサービス開発で「Ruby on Rails」を採用–NaClが全面協力 – CNET Japan

確かに Rails の生産性は高いのかもしれないけど、今のところ Rails は実績や開発環境、運用環境といった点で Java や PHP に敵いません。「実績なんか始めからあるわけがない」「DRY な Rails はコードが少ないんだから IDE なんかいらないんだ」といった意見もあるとは思いますが、自分の勤めているような企業がこういった点を求めるのは事実なわけです。今回のように、業界に影響力のある企業が Rails 採用を発表していくことで、何を言われても「いや Rails すごいんですって!」と言えるようになればいいなあ。

実際、開発環境はどうにかならないものかしら。NetBeans 6 では Ruby/Rails をサポートするらしいので期待しています。

これまで Rails で作ったアプリケーションは Apache 2.0 + FastCGI で動かしていましたが、開発環境では Mongrel を利用しているので、できれば Mongrel で運用したいと思っていました。ちなみに Mongrel とは

Mongrel is a fast HTTP library and server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI. It is framework agnostic and already supports Ruby On Rails, Og+Nitro, Camping, and IOWA frameworks.

です。

先ごろ Mongrel もバージョンも 1.0 を超えたので、Apache と組み合わせて運用に使ってみることにしました。環境は以下の通りです。

  • CentOS 4.4
  • Apache 2.0.52 (CentOS Package)
  • Mongrel 1.0.1

要件は

  • Rails アプリケーションは Mongrel で提供する
  • 複数の Rails アプリケーションを同時に提供する
  • 複数の Rails アプリケーションを同一ドメインの別ディレクトリで提供する(バーチャルホストは利用しない)
  • Rails アプリケーション以外は Apache で提供する

になります。

続きを読む »

ここ数日の間に WordPress 2.1.1 をダウンロードした人は速やかに 2.1.2 にアップグレードしたほうが良いです。というのも、WordPress 公式サイトによると

If you downloaded WordPress 2.1.1 within the past 3-4 days, your files may include a security exploit that was added by a cracker, and you should upgrade all of your files to 2.1.2 immediately.

とのこと。つまり、ここ 3-4 日以内に WordPress 2.1.1 をダウンロードした人は、ファイルがクラッカーに改変されちゃっている恐れがあるので、2.1.2 にアップグレードしなさい、と書いてあります。

このブログはおそらく対象外なのですが、せっかくなので WordPress を簡単にアップグレードする方法を調査してみました。 すると、EasyWPUpdate なるシェルスクリプトが見つかりました。

続きを読む »