Rails

execve failed for: /.../public/dispatch.fcgi No such file or directory

SVNからさるRailsアプリを落としてきてdatabase.ymlを修正した後、./script/serverするとさっくりエラー % ./script/server => Booting lighttpd (use 'script/server webrick' to force WEBrick) => Rails application starting on http://0.0.0.0:3000 => …

rakeタスク

使えそうな新しいrakeタスクをメモ。 もしかしたら知らなかっただけで新しくないのも混ざってるかも。 rake db:create, rake db:create:all DB作成 rake db:migrate:redo STEP=n 現在のバージョンから遡ってマイグレーションを再実行。前から欲しかった rake…

Timezone

http://matsumura.garacter.org/articles/2006/09/20/timezone-settings config/environment.rb に ENV['TZ'] = 'Asia/Tokyo' を追加する。 せっかくGetText使ってちょっとだけ多言語化したんだけどねぇ。 国際化はあとで考えるっす。

tterfarm.com

tter と言うサービスをリリースしてみました。 Twitterクローンを自由にいくつでも追加できるサービス。半年以上前に思いついたのをやっと作ったので、なんだか旬を逃してる感じがビンビンです。まぁ未だに「なんとかtter」とか結構でてるあたり、需要はまだ…

jpmobileすごい

今作ってる奴にjpmobileプラグインをインストールして、ApplicationControllerにたった一行、 transit_sid 足したら、普通に動いてるっぽい。HTML全く弄ってないので読み込みは重いけど、動作は問題ない。すごい。jpmobileすごい。ということでそろそろリリ…

LT on Rails

クックパッドさんで開催されたRailsに関するLTに参加してきました。内容はまぁなんていうか、みんながRailsで作ってるものの紹介?みたいな。 とりあえず私はKaoChart.comに付いてだらだらしゃべりました。出発寸前まで別の作業してて全く準備できず、発表順…

TMailで携帯の変態アドレスを通す

ActionMailerで、って書いた方が受けがいい? 携帯では「o...rz.@docomo.co.jp」とかいうお茶目なアドレスが未だ有効だったりします。が、残念ながらTMail(0.10.7で確認)だと3つ以上連続するピリオドを持つアドレスは不正と判断されます。まぁ実際に不正なア…

KaoChart.com

ざわ・・http://kaochart.com 最近、「お察しください」的事情で株価をチェックすることが多いんだけど、そこで目にしたYahoo株価のフェース分析がおもろいなーと思ったので作ってみた。 単体だと単なるシンプルな顔だけどたくさん並べるとなかなか面白いと…

個体識別番号

今はいいけど、すぐに忘れてしまいそうなので。(ドコモでは) 識別番号を渡すリンク <a href="http://example.com" utn>...</a> 識別番号を渡すフォーム <form action="/hoge" utn> ... </form> Rails側での個体識別番号の取得(on jpmobile) request.mobile.ident とりあえずこんなん作った。 # application_helper.rb def link_to_w…

Award on Rails提出した

どうしてもコンピュータ対戦、っていうか一人用モードを付けときたかったので、ちょっとだけ期限遅れの提出になったけど・・・。人が集まらないとゲームできないんじゃ、多分誰も使ってくれないしねぇ。http://aor2007-5.drecom.jp:18013/game 七ならべに限…

Sqlite

レンタルサーバーでDBが一個しか割り当てられないのでrake testできないー、とか言ってたら「テストにはsqliteを使えばいいじゃん」と教えてもらった。おお、確かに。 # apt-get install libsqlite3-0 libsqlite3-dev sqlite3 swig $ sudo gem install sqlit…

find_or_create_by

いつも _by を忘れる...

form_remote_tagにエレメントIDを設定する

form_remote_tagで生成されるフォームにIDを設定するには:htmlと:urlを同時に使う。 <% form_remote_tag :url => {:controller => "hoge", :action => "bar", :id => num}, :html => {:id => 'special-element'} do %> :htmlだけじゃだめなんすね・・・ <%# …

before_filter内でのrenderとredirect_to

before_filter内でエラーメッセージをrenderしたりエラーページにリダイレクトした場合は同時にreturn falseする必要があります。そうしないと、以降のフィルタが実行されて描画が2度以上行われるというエラーになります。ゆきひろ認証の例で言えばこの部分…

ゆきひろ認証プラグイン(acts_as_yukihiro_ninshoable)

Ruby会議2007、もとい、Reject会議2007で発表されたベーパーウェアのアイデアに感銘を受け、いきおいまかせに実装してしまいました。反省はしていない。 このRailsプラグインをインストールすると素人がまつもとゆきひろさんの名前をよく「ひろゆき」と間違…

Award on Rails 2007

去年は私も参加したAward on Railsが、今年も開催されます。 例によって大賞賞金100万円です。奮ってご参加ください。 ちなみに、去年はRails以外のフレームワークも利用可能だったんですが、 今年はRails限定になってます。ご注意ください。

テストでユーザーエージェントを指定する

こんだけ @request.user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'

ユーザーエージェントでアクセスを制限

application.rb に追加。 def refuse_ua(condition=nil, &block) ret = if block block.call request.user_agent else case condition when String refuse_ua /#{condition}/ when Regexp !condition.match(request.user_agent) when Array condition.inject…

ファイルアップロードのテスト

ActionController::TestUploadedFileと言うのが使えるみたい。 同僚に教えてもらいました。 def test_upload post :upload, { :file => ActionController::TestUploadedFile.new( "#{RAILS_ROOT}/public/images/test.png", 'image/png'), }, @session assert…

「5分で作るチャット」を実際にやってみた

マルチポストも何なのでリンクだけ。 ShootingStarでCometしてみたい人は一度やってみるといいと思いますよー。

中国版twitterクローン

http://komoo.cn/CSSがファイル名も含めて全く一緒(一行だけ追加あり)。 すなわちテンプレも同じ。 これが公開できるなんてすごいよ中国。こないだシャレで作ったtwitcherも中国で公開したいなぁ。 ShootingStarでCometしてるから優位性はあるんだけど。

状態変更通知

ある時点でのリスン中ユーザーは昨日ので拾えるんですが、せっかくShootingStar使ってるんだからその変更も通知してくれないといやだ。で、そのために必要なのが:eventオプション。コードは以下。 <%= meteor_strike channel, :uid => uid, :event => js_cod…

ファイルアップロード

今まで何度となくファイルアップロードを書いては忘れ、その都度調べてて、いい加減疲れてきたのでここにメモる。今後はここをコピペする方向で。基本的にこちらのコピーなので、要respond_to_parentプラグイン。説明もそちらを参照。ここには単にコードだけ…

リスン中のユーザー

<%= meteor_strike @channel, :uid => @user, :tag => @tag %> 上のようにmeteor_strike時にユーザー名orIDを渡しておけば Meteor.shooter.listeners(channel, tag=[]) とすることで、そのチャネル(とタグ)をリスンしてるユーザーを取得できる。ただ、Shooti…

acts_as_versionedとacts_as_paranoid

acts_as_versionedはモデルの変更履歴をバージョンテーブルに取っておいてくれて、acts_as_paranoidはモデルの削除を物理削除じゃなく論理削除にしてくれるので、一緒に使えば変更を完全に取っておけるんじゃね?と思ったんだけどどうもうまくいかない。 act…

config.rb sockに設定する値は次のようにして確認できる # mysqladmin -u <user> -p version Enter password: <pass> mysqladmin Ver 8.41 Distrib 5.0.32, for pc-linux-gnu on i486 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This softwar</pass></user>…

テスト内で × @request.session[:user] ○ @request.session['user'] シンボルと文字列を区別するっぽい テスト内で × assigns[:paragraph] ○ assigns(:paragraph) []でのアクセスの場合、シンボルは使えない acts_as_list move_higherでポジションの値は減る…