Kinopyo Blog

プログラマとしてRuby, Rails, iPhone, iPad,Macなどなどと向き合う日々のログポース

Archive for 17:19

SafariのUserAgentを変更

2011年09月30日

SafariのPreferences-> Advancedタブで”Show Develop menu in menu bar”をチェックします。

これでSafariのメニューバーのDevelopメニューでUser Agentを切り替えることができます。

iPhone safari(webkit-base browser)のcheckboxのサイズを調整

Webkit-baseのブラウザ(Safari, Google Chrome)に適用します。

普通のcheckboxはiphoneのようなスマートフォンで見るときとても小さいです。checkboxはcssでheightやwidthを指定しても効かないためちょっとしかトリックが必要です。

input[type=checkbox] {
  -webkit-transform: scale(2,2);
}
view raw gistfile1.css This Gist brought to you by GitHub.

実機ではこんなふうになります。2.0, 1.5, 1.0の3つのサンプルです。

Rails3.1 Capistranoでデプロイする時にpublic/images, stylesheets, javascriptsのNo such file or directoryエラー

2011年09月25日

自分のログは無くしたので@yuum3のログを引用させて頂きます。

* executing “find /home/rails_apps/todo31/releases/20110912141706/public/images /home/rails_apps/todo31/releases/20110912141706/public/stylesheets /home/rails_apps/todo31/releases/20110912141706/public/javascripts -exec touch -t 201109121417.06 {} ‘;’; true”

servers: ["176.32.95.168"]

[176.32.95.168] executing command

[err :: 176.32.95.168] find:
[err :: 176.32.95.168] `/home/rails_apps/todo31/releases/20110912141706/public/images’
[err :: 176.32.95.168] : No such file or directory
[err :: 176.32.95.168]
[err :: 176.32.95.168] find:
[err :: 176.32.95.168] `/home/rails_apps/todo31/releases/20110912141706/public/stylesheets’
[err :: 176.32.95.168] : No such file or directory
[err :: 176.32.95.168]
[err :: 176.32.95.168] find:
[err :: 176.32.95.168] `/home/rails_apps/todo31/releases/20110912141706/public/javascripts’
[err :: 176.32.95.168] : No such file or directory
[err :: 176.32.95.168]

http://d.hatena.ne.jp/yuum3/20110912

Githubにも載ってましたエラーは無視しても大丈夫そうですが、下記の一行をdeploy.rbに追記すればエラー出なくなります。

# in config/deploy.rb
set :normalize_asset_timestamps, false

Rails3.1 Production環境で画像が表示されない、HTTP Statusは200成功なのに

2011年09月24日

現象

Railsを-e productionで立ち上がるとき、或いはcapistrano本番サーバにデプロイしてアクセスする時に、HTTPのStatusは200なのに画像などが表示されない。JavascriptとCSSは問題ない。

発生バージョンはRails 3.1。

解決策

app/tmp/cacheを削除し、rake assets:precompileをもう一回実行。

ブラウザキャッシュを消してリロード。

調査経緯

assets周りの設定やfingerprint(MD5のハッシュ値)の比較など全部チェックしましたが、全然ダメでした。

最後はgithubのこのスレの方法で解決になりました。

問題となったrails applicationはRails 3.1.rc1から作っていたもので、そのままrc4, rc5, stableに更新してきました。githubで議論されたのはrc4からrc5になったときにこのような現象があったようです。恐らくtmp/cacheが変な動きをして手動で削除しない限り古いバージョンのものがずっと残されたかもしれません。

おまけ

Asset Pipelineの周りの設定ファイルを一応貼っておきます。

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress JavaScripts and CSS
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

# Generate digests for assets URLs
config.assets.digest = true

# Specifies the header that your server uses for sending files
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

view raw production.rb This Gist brought to you by GitHub.

Githubでのスレ:https://gist.github.com/rails/rails/issues/2299

Rails3.1rc(?)で’Please install the mysql adapter’というエラー

2011年09月21日

確定ではないですが、Rails3.1rcにアップしたらこんなエラーが出ました。


Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.)

解決策

  • database.ymlでmysqlのadapterをmysqlよりmysql2に変更
  • Gemfileにmysql2を追加しbundle installを実行

参考

http://stackoverflow.com/questions/6141276/rails-3-1-0-rc1-mysql-adapter-error

http://stackoverflow.com/questions/3467054/problem-with-mysql2-and-rails3-bundler

Chrome14がLionのフルスクリーンを対応しました

今までの全画面とは違い、Chrome14ではLionのフルスクリーンに対応しました。これは全画面対応アプリとして1枚の仮想スクリーンを占有することになり、左右の四本指スワイプで他の全画面アプリやデスクトップと楽に切り替えられます。

また上にマウスオーバーするとPIN固定できるボタンがあります。クリックするとアドレスバーやタブバーなどが表示するように固定されます。

REEとはRuby Enterprise Edition

Rubyのエンタープライズ版のこと。Phusion Passengerと相性がよく、メモリ消費がだいぶ下がる利点があるそうです。

rvmでの紹介を引用しますと:

Ruby Enterprise Edition, MRI Ruby with several custom

patches for performance, stability, and memory.

ガイドのドキュメント

公式サイト

現在は1.8.7が最新のようでrvmでインストールする場合は:


rvm list known

rvm install ree

Install REE with RVM

FacebookとHeroku

これはいいコンビの結成ですね。Heroku上で簡単にFacebookアプリが開発できるようになったそうです。言語も選択できるし、Herokuに慣れた人にとっては大変便利なツールだと思います。

http://blog.heroku.com/archives/2011/9/15/facebook/

Facebook/Heroku integration from heroku on Vimeo.

さくらVPSに移行後wordpressで画像アップロードした時にサムネイルが生成されない件

WordPressで画像アップロード時にいつも3サイズのサムネイルが生成されたのですが、さくらVPSに移行後それができなくなったのです。

調べてみたらPHPの画像処理のライブラリであるgdがインストールしてないことがわかりました。

CentOSなのでyumを使ってインストールすれば解決です。


sudo yum install php-gd

sudo service httpd restart

最近よく目にするSublimeエディター、Textmate2になれるか

2011年09月20日

最近#textmateのTwitterタグでたまたまhttp://www.sublimetext.com/title:sublimeを目にするんですが、Textmate2の代わりになれるかで議論されているようです。

一応入れてみたのですが、最初の印象というえば

  • 速い。163MBのcsvファイルをたった数秒で開きました。Textmateはもう何分間固まったんです。
  • モダンなインターフェイス。アニメーションとか、縦二画面ができるなどTextmateよりは確実に進化しています。
  • command + Tでファイルを開くのが速いしスムーズ
  • コードの比較機能が便利
  • ShiftJISなどの日本語文字コードは依然サポートされない

このへんにいいTipsを紹介してくれる記事があります。

http://net.tutsplus.com/tutorials/tools-and-tips/sublime-text-2-tips-and-tricks/