Idleを無効にしてPassengerのレスポンスを速くする
Passengerは非常に便利なのですが、 通常の設定では、アプリケーションへのアクセスが無い状態が5分程度続くと、プロセスがkillされてしまい、次回にアクセスする時に時間がかかるようになります。
これを回避するためには、httpd.conf
1 PassengerPoolIdleTim e 0
これで、プロセス数の限界に達して追い出されるまで、Idle時間によってkillされる事は無くなります。
See Also
Passengerは非常に便利なのですが、 通常の設定では、アプリケーションへのアクセスが無い状態が5分程度続くと、プロセスがkillされてしまい、次回にアクセスする時に時間がかかるようになります。
これを回避するためには、httpd.conf
1 PassengerPoolIdleTim e 0
これで、プロセス数の限界に達して追い出されるまで、Idle時間によってkillされる事は無くなります。
See Also
待っていたものが登場したようです。
上記は
Rails-2.3.
MerbのAPIドキュメント と比べても、勝るとも劣らない仕上がりですね。 オフライン状態でも使えるようにダウンロードできるバージョンも用意されている模様。
ローカライゼーションの問題で再びRejectされたので、再度アップデート申請いたしました。
審査結果がでるまで、おそらくもう一週間ほどかかる見通しです。
お待たせして申し訳ありません。
Reserved Instanceを使ってみるために、ec2-api-to
1 % wget http://s3.amazonaws. com/ec2-do wnloads/ec 2-api-tool s.zip 2 % unzip ec2-api-to ols.zip
/usr/local
あたりに移動させて、
環境変数EC2_HOMEを設定します。
Reserved Instanceを使う場合、最初に、自分が使いたいインスタンスが提供されているかどうか、以下のようにして調べます。
1 % ec2drio -z us-east-1b-t m1.small 2 OFFERING 3a98bf7d-9 6c3-4d2f-a 263-123fa6 b46d61 us-east-1b m1.smal3y 500.0 0.03 Linux/UNIX 3 OFFERING 60dcfab3-a 56c-4092-8 c90-3677e9 da02b7 us-east-1b m1.smal1y 325.0 0.03 Linux/UNIX
ゾーンとタイプを指定しています。
2カラム目にあるUUID風の文字列がoffering IDなので、これを覚えておきます。
続いて、実際にReserved Instanceを購入します。
1 % ec2prio -c 1 -o 60dcfab3-a56c-4092-8 c90-3677e9 da02b7
-cで台数、-oで先ほどのoffering IDを指定します。 これで購入完了です。
1 % ec2dri 2 RESERVEDINSTANCES (*****) us-east-1b m1.small Linux/UNIX 1y 0.03 325.0 1 2009-03-27 T06:51:18+ 000payment -pending
しばらくすると(この記事を執筆時点では結構待ちました)、payment-pe
あとは、us-east-1b
See Also
このアプリは初めて企画したiPhoneアプリです。ezPhotoMai
今回はデザインを美術部さんにお願いしました。アイコンから、ボタンから背景までピンクなので、このhappy lovely pinkで日々の面倒な買い物リスト作りが楽しく思えたら幸いです!また、美術部さんのサイトでは素材提供も考えておられるとのこと、ぜひ定期的にチェックをお願いします!
シンプルなインターフェースで買い物リストが作成できます。ピンクを背景だけでなくアイコン・ボタンにも用いており、かわいらしさが特徴です。
iTunes URL:
http://itunes.apple. com/WebObj ects/MZSto re.woa/wa/ viewSoftwa re?id=3070455 81&mt=8
特徴
Shopping Pink URL: http://www
methoparaに触発されてDIコンテナを作成してみました。コンストラクタインジェクションとプロパティインジェクションをサポートしています。
1 require 'object_injection' 2 3 class Juicer 4 attr_reade r :fruit 5 6 def initialize fruit 7 @fruit = fruit 8 end 9 end 10 11 class Fruit 12 end 13 14 container = ObjectInje ction::Container.new 15 container. add Juicer 16 container. add Fruit 17 18 juicer = container. get :Juicer 19 p juicer.fruit # => #<Fruit:0x00 000001059a a0>
詳細は、 http://git
iPhone appのバージョンアップを申請後、時期verを開発継続している際にrejectされた、という場面があったので、タグ・ブランチでの運用を始めました:ezPhotoMai
ブランチ:バージョン+stable/uns
http://git
タグ:タグ名はvが入っている形
http://git
railsを参考にezPhotoMai
appリリース後、新しいバージョンをリリースする場合はタグを付けます:タグは後付けも可能。 ブランチ名にはタグ名のvがない、数字だけのものを採用することにしました。
ex
タグ名とブランチ名を同じにするとcheckoutやshowなどでrefspec(refs/heads
1 git branch -r 2 git checkout -b 1.1 refs/tags/v1.1 #1.1ブランチを作成してcheckout 3 git push origin HEAD:refs/ heads/v1.1 #HEADはカレントブランチ。refs/heads /v1.1はサーバ上のブランチ名
1 git checkout 1.1 2 git pull --rebase origin v1.1:1.1 #v1.1=サーバブランチ 3 git checkout master 4 git pull --rebase origin master #サーバでもローカルでも同じ名前master 5 git merge 1.1 #masterに1.1をマージ
ブランチのInfo.plist
Rails-2.2以前とはちょっとやり方が変わったようなので、メモしておきます。
いままでは、:session_d
1 config.action_controller.session = { 2 :session_ke y => 'session_ke y', 3 :domain => 'foo.com' 4 }
See Also
まだPokéDia-1.3のアップデート審査が通っていないのですが、 次期バージョンで実装予定のデータバックアップ・リストアについて、 実装方法を考えてみます。
データをバックアップする方法として最初に考えた方法は、 指定したメールアドレスにデータファイルを添付して送信するというものだったのですが、この場合、データをリストアするフローが以下のように面倒になってしまいます。
次に考えた方法は、バックアップデータファイルをアップロードするアップローダサービス(例えば backup.s21
という流れです。今の所これが良さそうかな。
汎用的なサービスになりそうなので、http://app
会社設立以来ほとんど更新していなかったのですが、
iPhoneアプリ等の開発で製品を紹介するページを置く場所が必要になったので、
Rails-2.3.
従来通り、http://www
I18nの使い方
ローカライズファイルは、デフォルトではconfig/loc
自動的にロケールを判別するために、以下のようなコードを
Applicatio
1 class ApplicationControlle r < ActionCont roller::Ba se 2 before_fil ter :set_locale 3 4 (..snip..) 5 6 def set_locale 7 I18n.locale = @original_l ocale = fallback_l ocale(I18n.locale) 8 if request.host =~ /^([\w-]+)\.#{HOST.split(':')[0]}/i 9 I18n.locale = fallback_l ocale($1) 10 end 11 end 12 13 private 14 def fallback_l ocale(locale) 15 locale = locale.to_s 16 @available_ locales ||= Set.new(I18n.available_ locales) 17 until locale.empty? || @available_ locales.include?(locale.intern) 18 locale = locale.split(/([-_])/)[0..-3].join 19 end 20 locale.present? ? locale.intern : I18n.default_lo cale 21 end
実際にローカライズする手順は、以下のような感じになります。
文字列のローカライズ
*.ymlファイルで定義されているメッセージキーに対して、
1 ja: 2 "hello": "こんにちわ"
こんな感じにt(...)
ヘルパーメソッドを使います。
1 t("hello") #=> "こんにちわ"
時刻などのローカライズ
時刻の場合もほぼ同様で、以下のような*.ymlファイルで定義されている設定に対応して、
1 ja: 2 date: 3 formats: 4 default: "%Y/%m/%d" 5 short: "%m/%d" 6 long: "%Y年%m月%d日(%a)"
以下のようにl(...)
ヘルパーメソッドを使ってローカライズします。
1 l(Date.today, :format => :short) #=> "03/22"
テンプレートのローカライズ
Viewテンプレートを丸ごとローカライズする場合は、
のようなファイル名すればOKです。