PassengerでSinatraを動かす方法
SinatraはRuby on Railsのように自動でフォルダやファイルを生成してくれないので、Railsデプロイの際のデファクトスタンダードとなりつつあるPassengerを使ってデプロイを行う際には、必要なフォルダやファイルを自分で作ってあげる必要があります。
デプロイする際に作成する必要があるフォルダやファイルをついつい忘れてしまうので、以下に書いておきます。
左の画像を見れば一目瞭然ですが、SinatraをPassenger上で動かすには、最低4つのファイル / フォルダが必要です。
publicフォルダとtmpフォルダは、説明の必要がないと思います。Railsのフォルダと同じです。これはただ単にデプロイするフォルダの中に作成しておくだけでOKです。画像やCSS、JavaScriptを使う場合は、publicフォルダの中に置いてあげるときちんと読み込んでくれます。
Railsの場合と異なるのは、「app.rb」と「config.ru」ですが、app.rbの方はSinatraで作成したアプリケーションファイルです。ファイル名も別に指定されているわけではないので、別の名前にしてしまっても大丈夫です。
「config.ru」の方は、Passengerが最初に読み込むファイルになります。このファイルの中身は下記のような感じ。
require 'app' # 今回は、Sinatraアプリケーションがapp.rbになっているのでappを指定
run Sinatra::Application
たった2行のファイルですが、これがないとPassengerはSinatraアプリケーションを動かしてくれません。
これでデプロイの準備は完了ですが、httpd.confの設定も忘れないようにしましょう!
httpd.confの設定も、基本的にRailsと同じです。
<virtualHost your.virtualhost.name>
ServerName your.virtualhost.name
DocumentRoot /path/to/sinatra/public # ここはRails同様、publicフォルダをします
</VirtualHost>
Sinatra, Passenger, mod_rails, Rails, Ruby | comments(0) | trackbacks(0) 2009.09.12 Sat 19:56
RAMディスク上のSQLite3でAR.createを試す
@littlestarlingさんがtwitterで
「rake db:fixtures:load からかえってこない…2.5MB程度のcsvなのになんで?」
と呟いていたので。
RAMディスク上のSQLite3と、HDD上のSQLite3とでRailsのAR.createを試し、ベンチマークを取ってみました。(話の流れ上、トランザクションのあり/なしも同時に試した)
Ruby, Rails, SQLite3, パフォーマンス改善, トランザクション, RAMディスク | comments(0) | trackbacks(0) 2009.04.13 Mon 18:54
Rails勉強会@東京第38回 行ってきました
2009年2月15日、Rails勉強会@東京に行ってきました。
今回の会場は浜松町近くのTISさん。トイレからの見晴らしも良く、全室机付き。素晴らしい会場を提供していただき、ありがとうございます!
今回行われたセッションは下記の5つ。
前半 13:40-15:10
- SKIPの話
- RSpecとCucumber
- Ruby 1.9.1でRailsとかMerbとか動かす(前編)
後半 15: 40-17:10
- Rails 2.3.0の話
- Ruby 1.9.1でRailsとかMerbとか動かす(後編)
さて、僕が参加したセッションの感想など書いておきます。
Ruby, Rails, 勉強会 | comments(1) | trackbacks(0) 2009.03.07 Sat 20:46
ペットポータルサイト「アニカクラブ」を制作しました
AHBインターナショナル株式会社さんが運営するペットポータルサイト「anicaclub(アニカクラブ)」が、2月20日から一般公開されました。特集記事も初回から8本掲載されており、充実した内容となっています。
今回は、このanicaclubの開発メンバーとして、サーバー側のプログラミング(Rails)からHTML、CSS、JavaScriptまでを担当させていただいたほか、店舗検索・求人向けモバイルサイトの制作全般(デザイン除く)を担当させていただきました。
全国区・小動物全般を対象とするペットポータルサイトは、恐らく国内初だと思います。特集記事の他にも全国のペットショップや動物病院、ペットホテルなどを検索したり、ペットに関するFAQのコーナーなども揃っています。
ポータルサイトは、アクセスしてくれる皆さんの声を反映していく事で「もっと便利で使いやすいサイト」になっていくと思います。動物好きの方、既にペットを飼っている方、是非一緒にanicaclubを「便利で、使いやすいサイト」にしていってあげてください!
- anicaclub(http://www.anicaclub.com/)
- AHBインターナショナル株式会社(http://www.ahb.co.jp/)
Ruby, Rails, 制作実績, anicaclub, アニカクラブ, ペットポータル | comments(0) | trackbacks(0) 2009.03.02 Mon 19:50
クックパッドの裏側を見てきました
2009年2月7日、秋葉原で行われた「WEBデベロッパの祭典@東京」に行ってきました。
約1ヶ月も前になってしまったので激しく今更ですが、僕が参加した「国内最大規模のRuby on Railsサイト 〜「クックパッド」の裏側見せます〜」というセッションについてまとめておきます。
COOKPADについて
http://www.cookpad.com/
技術ブログ http://techlife.cookpad.com/
COOKPAD自体は1998年にオープンしたレシピ投稿・検索サイト。
現在までに47万品以上のレシピが登録されており、月間PV約2.8億、月間ユーザー数約547万人を抱えています。
「世界で一番生活に役に立つサイト作り」を目指しており、投稿されたレシピをただ見るだけでなく、自分が作った料理の写真を作者にフィードバックすることが可能です。
cookpad, パフォーマンス改善, WEB開発, 管理ツール, Rails | comments(1) | trackbacks(0) 2009.03.02 Mon 08:44
Rails勉強会@東京第38回 ポジションペーパー
自分のこと
名前: 瀬筒 貴仁(Takahito Sezutsu)
職業: WEB Developer.
Railsを使ったWEBアプリケーション開発がほとんど。
ValidなXHTMLとCSSを書くのに至高の喜びを覚えるタイプ。
パソコンで遊ぶのが好きでいじってたら、いつの間にかプログラマに。
PHPから入ったけど、今ではRuby使わない仕事は正直やりたくないもうやらない。
Railsを使ってModelやController書くのも好きだけど、UIのデザインしたりView側作り込むのも好き。
RubyやRailsとの付き合い
Ruby ... 3年半くらい前から。確か当時は1.8.5だったはず。計算機使わずにirb使うくらいに愛してる。
Rails ... 3年くらい前から。1.0時代からの付き合い。2.2.2がGet-text使えないので、仕事では2.1.2。
作ったもの
個人的に
このブログ(Railsで)
Macのアドレス帳をThunderbirdのアドレス帳にできるだけきちんと移行するプログラム など。
仕事で
不動産系の社内システム(Railsで)や、WEBサイト+バックエンド(Railsで) など。
最近の課題とか
- Rails3.0はどうなるんだろう。merbちょっとやっとくか。
- もっともっとユーザーが使いやすいUIを目指す。
- ActionScript3.0とかObjective-Cが絶賛やるやる詐欺になってるのでなんとかしたい。
- i18nを使おうとしたけど、Get-textと比べてアンチプログラマに理解してもらえない。
- RailsでJQuery使う(JRailsプラグインで)。
- Ruby標準ライブラリのソース全部読もうと思ってる(ObjectとClassまでは読んだトコ)。
- RubyCocoaもきちんとやりたい(Mac使ってるし…)。
以上。よろしくおねがいします!
Rails, 勉強会, ポジションペーパー | comments(0) | trackbacks(0) 2009.02.15 Sun 12:56
Rails勉強会@東京第37回 行ってきました
1年半ぶりくらいに、Rails勉強会@東京に行ってきました。
参加者45名という、IT系勉強会にしては参加可能者数が多い勉強会にもかかわらず、毎回きちんと枠が埋まるのはさすがだな、と思いながら参加。
前回参加したときは、確かYuguiさんの「Railsのソースを追っかける」みたいなセッションに参加したのですが、当時のレベルではYuguiさんやもろはしさんのレベルについて行けず断念。
今回も若干不安ではあったのですが、勇気を振り絞って行ってきました。
さて、僕が参加したセッションの感想など書いておきます。
Ruby, Rails, 勉強会, railstokyo, i18n | comments(0) | trackbacks(0) 2009.01.22 Thu 14:35
YAML中の重複箇所をまとめる方法(アンカーとエイリアス)
Railsで開発してる時、config/database.ymlの内容をまとめて書きたいな、と思う事がたまにあります。あまりYAMLについてきちんと知らなかったので、勉強がてらアンカーとエイリアスについて調べてみました。
ぐだぐだ文章で書くよりも、実際のYAMLを見てもらった方が早いと思うので、まずは下記を見て下さい。
development:
database: hoge_test
adapter: mysql
host: localhost
socket: /var/lib/mysql/mysql.sock
username: fuga
password:
encoding: utf8
test:
database: hoge_test
adapter: mysql
host: localhost
socket: /var/lib/mysql/mysql.sock
username: fuga
password:
encoding: utf8
production:
database: hoge_production
adapter: mysql
host: localhost
socket: /var/lib/mysql/mysql.sock
username: fuga
password:
encoding: utf8
同じ事が書いてある行がかなりあります。で、下記がアンカーとエイリアスを使用したバージョン。
common: &common
adapter: mysql
host: localhost
socket: /var/lib/mysql/mysql.sock
username: fuga
password:
encoding: utf8
development:
database: rubricks_test
<<: *common
test:
database: rubricks_test
<<: *common
production:
database: rubricks
<<: *common
複数人で開発する時、各人毎にユーザー名だのパスワードが違ったりするので、エイリアス作ってその中で各人毎の設定を書いておけば、変更箇所が減って便利かもしれません。
YAMLもきちんと知っておくと色々楽できるので、プログラマーのための YAMLなどを参考に一度きちんと勉強すると良さそうです。
Rails, YAML, エイリアス | comments(0) | trackbacks(0) 2009.01.19 Mon 21:40
Rails勉強会@東京第37回 ポジションペーパー
自分のこと
名前: 瀬筒 貴仁(Takahito Sezutsu)
職業: WEB Developer.
Railsを使ったWEBアプリケーション開発がほとんど。
ValidなXHTMLとCSSを書くのに至高の喜びを覚えるタイプ。
パソコンで遊ぶのが好きでいじってたら、いつの間にかプログラマに。
PHPから入ったけど、今ではRuby使わない仕事は正直やりたくない位Rubyにはまっている。
Railsを使ってModelやController書くのも好きだけど、本当はUIのデザインしたりView側作り込むのが一番好き。
Rails使ったViewのみの仕事とか、多分結構燃えるんじゃないかと思ってる(やったことないけど)。
RubyやRailsとの付き合い
Ruby ... 3年半くらい前から。確か当時は1.8.5だったはず。計算機使わずにirb使うくらいに愛してる。
Rails ... 3年くらい前から。1.0時代からの付き合い。2.2.2で開発したいけど、Get-text使えないのが難。
作ったもの
個人的に
このブログ(Railsで)
Macのアドレス帳をThunderbirdのアドレス帳にできるだけきちんと移行するプログラム など。
仕事で
不動産系の社内システム(Railsで)
WEB+バックエンド(Railsで) など。
最近の課題とか
- Rails3.0はどうなるんだろう。merbちょっとやっとくか。
- もっともっとユーザーが使いやすいUIを目指す。
- ActionScript3.0とかObjective-Cが絶賛やるやる詐欺になってるのでなんとかしたい。
- i18nを触ったけど、Get-textと比べて悲惨なまでにメリットが見えないのでなんとかしたい。
- Railsで敢えてprototypeじゃなくJQuery使ってみたい。
- Ruby標準ライブラリのソース全部読もうと思ってる。
- 折角Mac使いになったので、RubyCocoaもきちんとやりたい。
以上。よろしくおねがいします!
Rails, 勉強会, ポジションペーパー | comments(0) | trackbacks(0) 2009.01.17 Sat 20:00
YSlowでRailsサイトのパフォーマンスを改善する方法
YSlowの記事の続きです。
実際に何らかのサイトにチューニングをかける手順と共に紹介した方が分かりやすいと思うので、このサイトを使ってチューニングしようと思います。
ちなみにApache2.x+mod_railsを使ってRailsを動かしているので、そこを念頭に置いたチューニングをかけていきます。
まず、いきなり否定的な話になりますが、全ての項目でAを取るのはかなり困難です。
たとえば、チェック項目2つ目の「Use a CDN」は、最低でも2つのサーバーを必要としますので、先立つものがないと難しいですし、ほとんどのチェック項目ではAPIなど、自分の管理下にないサーバーを使っている場合、手の出しようがない状態になります。
ですので、今回のチューニングは若干消極的ではありますが「Fの項目を少しでもなくす」を目標にしたいと思います。
Rails, パフォーマンス改善, mod_rails, Apache, YSlow, CSS Sprite, mod_expire | comments(0) | trackbacks(1) 2008.11.30 Sun 03:05
SQLite3が突然create/updateエラーを吐き出したら...
このブログは、DBにSQLite3を使っているのですが、ある日突然DBへの書き込み時に以下のようなエラーが出るようになりました。
A ActiveRecord::StatementInvalid occurred in ...(中略)...:
SQLite3::SQLException: attempt to write a readonly database: ...(中略)...
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:147:in `log'
つい5分前までは、書き込みができていたのに、突然のエラー。
試しに、script/consoleでARオブジェクトを操作しようとしても、script/dbconsoleでSQLite3用のコンソールからカラムの操作をしようとしても、反応なし。
同じ問題で悩んでいる人がいるかもしれないので、原因と対策方法を書いておきます。
Ruby, Rails, SQLite3, SQLException | comments(0) | trackbacks(0) 2008.11.28 Fri 19:42
Railsでモデル名に複数形を使ってはいけない
モデル名に複数形を使うと「nil.to_sym」というNoMethodErrorが表示される
Rails(2.1.1現在)でscript/generateする時、モデル名に複数形を使ってしまうと、
config/routes.rb で map.resources を使ったRESTfulアプリケーションを作る際にエラーになります。
例えば、
ruby script/generate scaffold abouts title:string content:text
と、複数形の名称を使用してscaffoldした後に、scaffoldで生成されたコントローラーで新規作成や修正を行おうとすると
NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.to_sym
といったエラーが表示されてしまいます。
script/generateの際に複数形ではなく単数形を使うことで、これを回避することができます。
ruby script/generate scaffold about title:string content:text
これに気付かず、数時間悩みました……。
(逆にRESTfulな場合のコントローラー名は、単数形を使ってしまうと問題が出るようです)
じゃあ、例えば「news」のように単数形も複数形も「〜s」で終わるようなイレギュラーな単語はどうするのかという事で、調べてみました。
Ruby, Rails, scaffold | comments(0) | trackbacks(0) 2008.10.16 Thu 05:32
アットゲームズの対戦ゲーム「7ならべ」を制作しました
「アットゲームズ」(株式会社ジークレスト) さんで、10月14日からマルチプレイ Flash 対戦ゲーム「7ならべ」が公開されました。
既に公開されている、「ババヌキ」「大富豪」に続く、三並さんが作った通信フレームワークdangoを使用したゲーム3作品目になるのですが、今回は僕がサーバー側のコードを書かせてもらいました。
誰でも無料で楽しむ事ができ、登録不要の「お試しプレイ」もあるので、是非一度プレイしてみてください!
なお、アットゲームズさんでは、7ならべ実装を記念して記念イベント開催中だそうです。
無料の会員登録を行って、アイテムを手に入れたり、7ならべマスターとして名を馳せるのも一興かと(笑)
7ならべ, dango, フレームワーク, Ruby, Rails, アットゲームズ, 制作実績 | comments(0) | trackbacks(0) 2008.10.15 Wed 18:46
ABOUT ME
tak (Takahito Sezutsu)
コメント、トラックバックはお気軽に!
COMMENTS
-
Versions - Macで使えるGUIベースのSubversionクライアント
→TANIARollins23 (07.23) -
Rails勉強会@東京第38回 行ってきました
→TamikaTurner (07.04) -
MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
→tak (06.22) -
「オリジナルの項目が見つからなかったので、エイリアス“********”は開けません。」と出て、Finderで外付けHDDが開けない時は
→tak (06.22) -
「オリジナルの項目が見つからなかったので、エイリアス“********”は開けません。」と出て、Finderで外付けHDDが開けない時は
→ko (06.22) -
MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
→Mac (05.06) -
クックパッドの裏側を見てきました
→Taylor30CLEVELAND (03.23) -
MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
→tak (03.11) -
MacのSkypeでログイン時プルダウンメニューに表示されるSkype名を消す方法
→tama (03.11) -
Mac版ATOK定額制(体験版)を1週間使ってみた
→tak (09.19)