AP4R について書くのはずいぶん久しぶりな気がしますが... (^^; Rails で AP4R を使っている場合、以下の流れでメッセージを介して非同期が実現されています。 # ユーザーからのリクエストで、1,2 が同期的に実行され、3 以降が非同期で実行されます。 0. AP4R の Rails プラグインの導入 1. アクションのなかで、ap4r.async_to(message, ...) すると、 2. Rails から AP4R サーバ上のキューにメッセージを PUT (dRuby プロトコル) 3. AP4R から指定された宛先に送信 (HTTP など) 4. 宛先でメッセージを処理 (宛先が Rails であれば、通常のリクエストと同様に処理可能) 可用性の高いシステムを考えるとき、この流れのなかで 1->2 の部分が SPoF (Single Point of Failu
結構バージョンアップに苦労したため、メモ。 注意点は2点 ZenTestからautotest-rails部分が切り離された→別々にgemでインストールする必要がある なぜかautotest/redgreen等のプラグインが大幅に削除されている→旧バージョンからコピーして対応 ZenTest最新版インストール ※この時点ではVer4.1.3がインストールされた。 $ gem install ZenTest autotest-railsインストール $ gem install autotest-rails 各種プラグインコピー 旧バージョンZenTestのフォルダからプラグインを持ってくる。 ※既に存在するファイルは上書きしないほうが良さそう。 gemフォルダ/ZenTest-4.0.0/lib/autotest → gemフォルダ/ZenTest-4.1.3/lib/autotest 旧バー
Redhat Enterprise Linux上にRails 2.3環境を導入して、簡単な伝言板アプリケーションを作るまでを解説する資料がIBMホームページで公開されています。 - Linux at IBM | Ruby on Rails with RHEL5.2 入門 RHEL5.2 上に Ruby on Rails を導入して利用する方法について紹介しています。 ハンズオン形式で Ruby on Rails の基本的な仕組みと使用方法が学べるようになっています。 もともとはハンズオン(実機演習)ように作られた資料を公開した物のようですね。使用するDBMSはPostgreSQLです。演習用なので、ステップバイステップで入力するコマンドやソースコードが示されていて、それに従って入力するだけでアプリケーションが完成します。Linux上でのRails開発を簡単に体験してみたいという方には良い入
jRails プラグインは、RailsアプリケーションのデフォルトJavaScriptライブラリである prototype.js + script.aculo.us の環境から、 jQuery を使うようにするためのRailsプラグインです。 プラグインをインストールする方法は、通常のRailsプラグインと同様です。 1 % ./script/plugin install http://ennerchi.googlecode.com/svn/trunk/plugins/jrails インストールすると、jQuery関係のJavaScriptファイル郡が public/javascripts以下にコピーされます。 あとは、jRailsプラグインがRailsのJavaScriptヘルパーをjQuery対応に してくれるので、そのままRailsアプリケーションを開発することができます。 当然な
http://developer.mixi.co.jp/appli/make_request/validating_signed_requests これのRails版。 http://mixiapp.ssktkr.com/ class TopController < ApplicationController def index end MIXI_CERTIFICATE = <<END -----BEGIN CERTIFICATE----- MIICdzCCAeCgAwIBAgIJAOi/chE0MhufMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV BAYTAkpQMREwDwYDVQQKEwhtaXhpIEluYzEQMA4GA1UEAxMHbWl4aS5qcDAeFw0w OTA0MjgwNzAyMTVaFw0xMDA0MjgwNzAyMTVaMDIxCzAJBgN
RailsでBDDと言ったらRSpecが圧倒的にポピュラーですね。でもRSpecに馴染めないという人はいませんか?私はx.should == yという書き方からKernelを拡張する実装まで、何もかも独自路線でいく個性の強さについていけません。 しかし同時にTest::Unitの垢抜けなさにもうんざりしていて、何かいいフレームワークはないかと思っていた時にShouldaに出会いました。contextを入れ子にできる柔軟性や、既存のTest::Unitインスタンスの中に書けるとっつきやすさはとても魅力的に見えました。そしてその日からShouldaでテストを書き始めました。 このエントリでは、Shouldaを中心にヘルパーやMochaを使った気持ちのいい開発手法を紹介します。 Shouldaは柔軟でとっつきやすい RSpecの最大の魅力はその書き方にあると思います。しかしその書き方を利用するた
昨年末から始めた、Ruby on Rails を使ったある仕事がひと段落したので、ふりかえってみました。 この仕事で作ったWebアプリの詳細は書けませんが、画面数 60、テーブル数 15 と小規模のものでした。システムはところどころに難しい部分はありました、UIは一部に Ajax(JQueryを使用)を導入し使い勝手を高めています。 1. ソースコードが少ない! 書いたRubyコードの行数を合計すると 約3600行 しかありませんでした! 1画面あたり 60行しか書いてない !! ・・・「あんまり仕事してないじゃん!」と思わずつぶやいてしまいまました ^^); やはり、Ruby on Rails は生産性が高いと言われる通りです。 ただし、だらだらとコードを書かないように以下のように注意しました。 共通部分はモジュール化しMix-inで共有 継承による機能の共有は設計が難しくなりますし、委
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
● [Rails] Metal Rails edge に Metal という新しい機能が追加された。これは Rack を用いた高速な Controller であり、Rails の色んな機能は捨ててでも、兎に角、単純で速いレスポンスがどうしても必要だ!という局面ではもの凄い助けになるだろう。 http://github.com/rails/rails/commit/8c3a54366435eebc2c8aa63b63e1349ce74a7b38 作成 場所は app/metal。metal ジェネレータが用意されているので、controller と同じ感覚で使える。既存のコントローラ(top1)と速度比較をするので、こちらの名前はtop2にしてみる。 従来のコントローラ的思想でいけば top2_metal.rb が作成されそうなものだが、そうはなっていない。この辺あたりに Merb 臭が少し
名前、長いよね。acceptsnestedattributes_for。以下、ネストしたって言います。長いので。 最近はもっぱら日本語化はi18nにしてるんですが、今回ちょこっとこのネスト関係ではまったのでメモ。 とりあえずモデルの作成までガッとやります。Railsのバージョンは2.3.2です。最下行はgemのインストールが必要です(http://github.com/amatsuda/i18n_generators/tree/master) それぞれアソシエーションとバリデーションのコードを追記しておきます。当然、acceptsnestedattributes_forの記述も必要です。その辺の詳細は省くので適当にググってみてください。 で、日本語化はモデルを作成した後に行なっているのでとりあえずカラムは日本語化されてる筈です。その辺の詳細も省きます。 されてるはずなのですが、一部日本語化
ちょっと大げさなタイトルかもしれないですが、個人的にはそれぐらいの感動。「これで勝つる!」な気分。何に勝つのか知らないけれど。 今までのRailsのテストはもっぱらRSpecで書いてて、確かにこれはこれで素晴らしい。採用当初はバグが減ってその時も「これで勝つる!」な気分でした。でもやっぱり受け入れテストがネックになるんですよね。Seleniumとかも使ったりしてましたけど、ブラウザががちゃがちゃ動くし、なんとなく面倒で結局手動で確認という感じになってしまいました。 そこでCucumberの登場ですよ。個人的に素晴しいと思うのは テストケースが自然文(っぽい) そんなに邪魔じゃない あたりかなぁ。テストケースが自然文っぽいというのは実はかなり大事で例えば お客さん: まずトップページにアクセスするとログインフォームがあって、そこにログインすると「ようこそ!ほげほげさん」と出すようにして欲しい
Photo by harry harris いまPhotoShareのサーバの実装を大きく変えようとして悩んでいます。 (参考: Life is beautiful: マルチスレッド・プログラミングの落とし穴、その2) Rails 2.2でThread safeになるとか、NeverBlockで12倍速くなるっていう話もあるんだけど、負荷が上がればレスポンスが悪くなるのは、どうしようもない。マシンを増やせば解決できる部分もあるけど、マシンを増やせばコストは上がる。 Life is beautifulで書かれていますが、確かに全部の処理を同期的に行う必要はないんですよね。 PhotoShareでも、既にいくつかのページは非同期にerbを生成して、それをRailsとerubisで読み込んで実行しています。 しかし、Railsだけではこういった非同期の処理やviewの一部を事前に生成するという処
バージョン2.2はスキップしてしまったので、正式なI18Nを使うのは バージョン2.3 が初めてです。 Rails2.2の新機能i18nを使ってみる - func09 が大変参考になりました。 ただし、この記事はバージョン2.2正式版の前を使ったものなので現在はもっと簡単です。 設定 % vi config/initializers/locale.rb ---- 内容は --------------------- # I18n.default_locale = "ja-JP" バリデーションメッセージ、日時等のリソース % vi config/locales/ja-JP.rb ファイルの内容は Rails2.2の新機能i18nを使ってみる - func09 をそのまま利用させて頂きました m(__)m この設定だけで、バリデーションメッセージや日付のセレクトボックスは日本語化されます。 テ
次のお仕事の納入時期は5,6月なので、 バージョン 2.2 は飛ばしてバージョン 2.3 を使う事に決めました。 現在の仕事では、2.1を使っていますので、2.3RC1をインストールして確認してみました。 インストール インストールは Riding Rails: Rails 2.3.0 RC1のページに書いてある手順で入りますが、Rackが必要と言われましたので先にインストールしました % sudo gem install rack Successfully installed rack-0.9.1 ... % sudo gem install rails --source http://gems.rubyonrails.org Successfully installed actionpack-2.3.0 Successfully installed actionmailer-2.3.0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く