odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

2009-01-01から1年間の記事一覧

set_primary_keyではまった。というかRailsレシピのあほー。set系メソッドでやっちゃった話

昔のアプリのDBにActiveRecordで繋げる必要がでたので プライマリキーの名前を変更するset_primary_keyというメソッドを使いました。 そしたら動かない。。idはない列ですとでる。 なんでだろ。。 Railsレシピの通りに書いてたのに。 (間違い版) set_prima…

複数プロセスからのファイル書き込み(追記の場合)における注意点

実行条件 100プロセス同時に5000行の書き込みを行う。 テストコード 100.times do pid = fork do open(File.join(File.dirname(File.expand_path(__FILE__)),"aaaaaaaaa.log"), 'a') do |f| f.sync = true # syncしないと文字列が途中でおかしくなる…

rubyでデコメのパース

前書き 受信したデコメをパースしたいと思います。 パーサーにはTMailを使用します。 Railsは使用しません。 空メの受け取り部分については書いてません。空メの内容を受け取った後の処理になります。 別にデコメに限らずただのテキストメールのパース、携帯…

rubyのバージョンアップでcapistranoの設置がうまくいかなくなった

最近rubyを1.8.6p369にアップしたんですが capistrano2.5.5+ruby1.8.6p369 だと複数の設置先がある場合に固まりました。 (パスワード入力までいかなかったり、パスワード入れれてもその後で固まったり。設置先が1箇所の場合は問題なくできました) rubyをr…

railsバッチの作り方

作り方 例えば検索インデックス登録用バッチとしてcreate_search_indexというバッチを作る場合 ファイル構成 app/ batch/ ← このフォルダを追加 create_search_index/ create_search_index_batch.rb - railsバッチを定義する create_search_index.sh.sample …

capistranoで複数のデプロイをしたい場合

設置の単位を分けたい場合があります。 例えばステージングと本番環境(プロダクション)や、ウェブアプリとバッチ等です。 やり方 deploy.rbファイルを用途別に作成する。 config/deploys/staging_web.rb(ステージングweb) config/deploys/production_web.r…

capistranoでssh越しのサーバーに設置する場合

sshでgatewayに接続した後、そこを踏み台として他のpc(Webサーバー,DBサーバー等)に繋いで作業する場合があると思います。 (設置先が自社サーバーではなく、外部のサーバーを使う場合やレンタルサーバー等で仮想環境を使用している場合等でしょうか) capis…

cronで秒単位でアプリを起動させたい。

ご存知の通りcronでは一番短い単位で1分ごとにしかアプリを実行できない。というわけで秒単位で起動できないかをググったら 30秒おきに稼動させたいならこうするらしい。 * * * * * myapp & sleep 30; myappけどこれだと5秒おきとかはcronの設定が大変なこと…

セッションがタイムアウトしてる状態でpostした場合

セッションをdbに格納してる場合は注意しないといけなそうです。例えば検索フォームを表示したままで放置して その後タイムアウトしてるのに検索をした場合(postする) InvalidAuthenticityTokenになりました。 挙動 セッションのストア先により動作が変わ…

willcomの高速化サービスでIP spoofing attackエラー

問題 rails2.1のサイト(リバースプロクシ使用)をwillcomの高速化サービスのプロクシ(フロントプロクシ)を使うと IP spoofing attack?! というエラーになってしまいました。 (恐らくこのエラーを出すようになったのは2.1からっぽい。) 理由 ソースをお…

単純にメンテナンス画面を出したい場合

routesで切り替えられます。(本当は上流のリバプロとか、アプリに機能を組み込むのがいいと思いますが。簡易的な技ということで)routes.rbの上のほうに下記追加(上に書くのは一番最初に判定してもらうため) #map.connect "*anything", :controller=>"mai…

クッキーを使わないでリクエストパラメータ(params)でセッションIDを渡す場合

諸事情でセッションIDがクッキーで渡されなく、リクエストパラメータ(クエリーストリングやpost等) で渡される場合がたまーにあります。 (外部アプリとの連携をする場合等に発生するケースが多いかなと思います。) こういう場合はsessionメソッドで:cook…

dbのマスタースレーブに対応するためにacts_as_readonlyableを使ってみる

日本最大規模のrailsを使ったサイトのクックパッドで改良して 使ってるとのことなので、そこそこ使えるのだろうとのことで 改良するの覚悟でチャレンジしてみました。下記がオフィシャルページ?(ただのblogの1ページだけども) http://revolutiononrails.…