Rails

EC2のmicroインスタンスでベンチマークをとってみる

Amazonにいつのまにやらマイクロインスタンスという 激安インスタンスが存在している。 それで説明を読んで見ると、 マイクロ インスタンスこのファミリーのインスタンスは、少量の整合性のあるCPUリソースを提供し、他のサイクルが可能になると、CPU容量を…

script/runnerからActionMailerを立ち上げた場合、gettextの_が見つからないと言われる

script/runnerから_メソッドがviewにあるactionmailerを叩いた場合、エラーになります。 % ./script/runner 'SendingMail.send_mails' /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48: undefined method `_' for # (ActionView::…

Amazon EC2とRackspace Cloud ServersをRailsアプリでベンチマークとってみた

Ubuntu-8.04LTS Ruby-1.8.6 Postgresql-8.3 Passenger 以上のような構成で scaffoldしただけのシンプルなRailsアプリを作って 比較してみた。カラムを2つにして、 レコードを50個登録しただけの、 一覧を表示するだけのアプリ。 ベンチマークの取り方は % a…

Ubuntu-10.04にしたらPostgreSQLでrake db:createができない

10.04にしたらPostgreSQLは8.4になりました。 psql -lの結果もちょっと違います。 $ psql -l List of databases Name | Owner | Encoding ---------------------+----------+----------- postgres | postgres | SQL_ASCII redmine | fujioka | UTF8 template…

Rails-2.3.5+rubygettext-1.1.0の組み合わせはRuby-1.8.6だと微妙に動かない

Rails-2.3.5はRuby-1.8.6で動きます。 しかし、gettextのtools/rgettext.rbの中で Array#find_indexを使っているために、 Ruby-1.8.6では動きません。 ただ、動かない箇所はupdatepoした時だけでした。 そのため、微妙にパッチを当てたところ、 Ruby-1.8.6で…

旅費精算システムの印刷をカッコよくした

印刷しても見た目が耐えられるように、修正しました。 リンクも印刷しようとしたら見えなくなります。 このような見た目が、印刷すると、 このようになります。 PDFをpngに変換してアップロードしました。 スタイルシートでなんとかします。 もちろんgithub…

旅費規程と旅費計算書作成システム

法人だったら社内規程で旅費規程を作成すると、 いちいち細かい領収書を貰いまくったり、 出金伝票を細かく切らなくても旅費を経費で落とせる。 さらに日当を出すことができるようになるので、 これは必ずやるべし。 旅費規程を作らなかったら日当なんて出せ…

SnowLeopardではRubyもRailsもまともに動かない時がある

昨日、会社でLeopardからSnowLeopardにアップグレードしたPCで Railsアプリの開発をしようと思ったら、webrickが立ち上がらない。 とりあえず簡単にチェックするには OKな場合。 ruby -rsocket -e 'p TCPServer.new("localhost","0")' #<TCPServer:0x100154dd8>NGな場合。 ruby -rso</tcpserver:0x100154dd8>…

テストのとき、定数を再代入した時のwarningを止めたい

Rubyに定数を再代入すると、warningが出ます。 (あたりまえというか、本来は定数は代入できない) ですが、テストのために代入したいという場合があります。 その場合は、 it "StatusView=trueでget('index')adminはsuccess" do StatusView=true session[:u…

最速でRails環境をCloudServerに作るためのメモ

メモを残しておくと、次回以降に作成が楽なので、ここにおいておく。 目標は、 ubuntu-8.04LTS2 ruby-1.8.6 rubygems-1.3.5 rails-2.3.4 passenger postgresql-8.3 の導入です。 ユーザーを追加 adduser xibbar sudoをインストールし、xibbarをsudoersへ pos…

日本Hamlの会がGoogle広告を出している!

まじでビビった。

Rails2.3.4でmemcachedを使う

最近のRailsはセッションはクッキーストアなのでゴミがたまることはないのですが、 jpmobilerとしてはcookieを使えないので、困りものです。 active_record_storeだとゴミがたくさんたまるし。 それでmemcachedにすることにしました。 まず、本番機はubuntu…

will_paginateで配列からページネーションする

will_paginateの一般的な使い方は @users = User.paginate(:page => params[:page], :per_page => 20) こんな使い方だと思うんですが、最近will_paginateは Arrayを拡張しているのに気づきました。(遅い!) 私はよく、sessionにオブジェクトのIDの配列を持…

will_paginateが多すぎる

will_paginateの2.2.2にはRails-2.1.1以降でinner joinがうまく動作しないという 不具合があって、最新版を入れたいのですが、 今はforkしているらしい。 それでどうなっているかというと、 % gem search will_paginate -r *** REMOTE GEMS *** auxesis-will…

subversion+redmineで、コミットされたらすぐにRedmineのリポジトリーやらなんやらに反映させる方法

Redmineのリポジトリはshow/project/xxxを一旦見ないとリポジトリやらなんやらが更新されません。 これでは都合が悪いというか、私は怠惰なので許せないので、 subversionでコミットされたらredmineの方も更新されるように細工をしてみました。 (前提として…

SSLを通すとクッキーが消滅してしまう携帯電話がある

以前に http://d.hatena.ne.jp/xibbar/20080204#1202112258 こんなエントリを書いて、 AUの携帯でSSLを通すとクッキーが消滅してしまう問題を指摘しましたが、 Vodafoneでも遭遇しましたので報告します。 V903SHという機種がダメでした。 というわけで、 AU…

LeopardにMysql/Rubyをインストールする

なんだか WARNING: You're using the Ruby-based MySQL library that ships with Rails. This library is not suited for production. Please install the C-based MySQL library instead (gem install mysql). こんなWARNINGが出るので sudo gem install my…

タイムスタンプのスマートな表示方法(Time#smart)を定義する

よく、update_atを表示するときに2008/07/19 09:28とかって 表示すると思うのですが、これは長い。スマートじゃない。 もちろんセクシーでもないです。 要点を考えると、今の時刻から1日未満だったら9:29といった感じで 時刻だけでいいし、3か月未満だった…

ファイル名を一気に.rhtmlから.html.erbに変更してくれるスクリプト

#!/usr/bin/ruby # raise "usage: command TargetDirectory" unless FileTest.directory? ARGV[0] target_directory=ARGV[0] fh=open("|find #{target_directory} -name '*.rhtml'") file_names=fh.readlines.map{|f|f.chomp} fh.close file_names.each do|f…

acts as section map(better nested setで組織図を書く)

「better nested setで組織図を書きたい」 前からやりたいと思っていた手軽にできる組織図表。 ついに完成しました。 ライセンスはMITです。 まずbetter nested setを使用したモデルを作成します。 ./script/plugin source svn://rubyforge.org/var/svn/bett…

第12回Rails勉強会@東北

今回はまったりでした。 参加者も少なかったですしね。 私も家内が体調不良だったので16時に帰ってしまいました。 # 実はあの後子供を連れて昔通った保育園の夏祭りに行っていました。 # 17:30からだったのでそれまでに自宅に帰って子供を連れて行きました。…

12345678を12,345,678に変換する

何をやりたいかと言うと、数字をカンマ入りにしてお金を扱う時のような見た目にしたいわけです。 Railsにはnumber_with_delimiterってのがあって、ActionViewのヘルパーにあります。 今回はRubyでやりたかったのでソースをパクってきました。 irb(main):070:…

どっかで発表できそうなネタ

Railsの超重いページをモデルのチューニングとerubisの投入で100倍早くなりました。 岩手・宮城内陸地震(居酒屋セッション向けのネタ) acts as section map半分できました。そのうち公開します。(better nested setを使って組織図を書く)

次回のRails東北のRubyセッション

次回はもう一回同じものをやるほうがいいと思っているのですが、いかがでしょう?

Ruby-1.8.7とRails-1.2.x、Rails-2.0.xは使えない

Rubyの1.8.7を入れるとString#firstが動かないようです。 そのまま動く場合もあるのですが、プラグインなどで地雷を踏みます。 私もacts_as_attachmentが動きませんでした。 Ruby-1.8.6+Rails-1.2.xの場合 % ./script/runner 'p "aaaaa".first' "a" Ruby-1.8…

will_paginateでAjaxで遷移(ページ番号リンクをlink_to_remoteへ変更する)

will_paginateはページ番号を自動で出してくれるヘルパーがあって、 <%= will_paginate @users %> これをviewに書くだけで、ページのリンクを出力してくれます。 でも、ページ遷移をajaxでやりたい場合はこのページのリンクも link_to_remoteでやる必要があ…

2.0でタグ付け(taggingとも言うのかな)

2.0でacts_as_taggableを使おうと思ってハマりました。 2.0では gemのacts_as_taggableが動かない pluginの方もなんだかうまく動かない というわけで、2.0にはacts_as_taggable_on_steroidsがよさげです。 http://agilewebdevelopment.com/plugins/acts_as_t…

第11回Rails勉強会@東北

今回は黒田さんが初参加でした。 セッションは、 ruby-gettext(二階堂さん) Rails2.1(黒田さん) RailsとFlashによる、簡易ぬこぬこシステム(武田さん) Symbol#to_procを追いかけてみた(xibbar) 以上の4つ。 ruby-gettextは散々やったので、よく知っ…

apacheでRails-2.0.2のhtpasswdを使うには

やっぱり技を使わないとヘッダをスルーしてくれないです。 .htaccessのdispach.fcgiの部分を RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] 以下のように変更しておかないと RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},Q…

第10回Rails勉強会@東北

今回はセッション2つ。 RubyとActiveSupportを深く 日程調整アプリを作ろう 以上でした。 RubyとActiveSupportを深く 毎回ながら担当しています。 スライドを修正して、slideshareにあげました。 http://www.slideshare.net/xibbar/rubyactive-support-for-…