2010年10月21日木曜日

HerokuでSassを使う

Herokuのファイルシステムは、read onlyになってて、Sassが動きません。
ググってみたら、解決法はいろいろ出てきますが、ソースが古くて、Rails3環境では役に立ちません。
数時間かけて、ようやく解決法を見出すことができたので、ここにやり方を公開します。


環境
・Ruby 1.9.2
・Rails 3.0


まず、Gemfileに、hassleを追加します。
最新版がほしいので、gitリポジトリから直接取ってきます。
$ vi Gemfile

gem 'hassle', :git => 'git://github.com/koppen/hassle.git'

あとは、"bundle install"するだけ。
$ bundle install


以上おわり。
えっ、あっけなすぎるって?シンプルイズベストです。

2010年10月11日月曜日

RubyのwatirでGoogle Chromeを自動操縦

とある実験を行うため、Google Chromeを自動操縦する必要があったので、Rubyのwatirというライブラリでそれをやってみました。
ただ一つ注意すべきなのは、watirは、Ruby 1.8.6でしか動かないということです。ちょっと使いづらいですね。


環境
・Ubuntu 10.04 Desktop 64bit
・Ruby 1.8.6
・watir-webdriver 0.1.1


まずは、RVMにRuby 1.8.6をインストールします。
$ rvm install 1.8.6

RVMのインストール方法がわからないという人は、こちらを参考にしてみてください。
Ubuntu 10.04で、Ruby 1.9.2 + Rails 3.0 + DataMapper on Herokuをやってみた


次に、Google Chromeを動かすための"watir-webdriver"をインストールします。
gem install watir-webdriver


これで準備が整いました。
下記の例では、Gmailに自動ログインし、10秒おきにリロードするという処理を行っています。

require "rubygems"
require "watir-webdriver"

browser = Watir::Browser.new(:chrome)
browser.goto("http://gmail.com")
browser.text_field(:id => "Email").set "enteryourusername"
browser.text_field(:id => "Passwd").set "enteryourpassword"
browser.button(:id => "signIn").click
loop do
  browser.refresh
  sleep 10
end


このライブラリは、アイデア次第で、いろいろ活用できそうですね。

2010年10月4日月曜日

光の単位: カンデラ、ルーメン、ルクスの違い

何かと混乱しやすい光の単位について調べてみました。


カンデラ(cd)
光を1点の点光源(スポット的な光)とみなし、その点光源から発する光の強さをカンデラという。
1平方メートルあたりに照射される光量を基準とするので「cd/㎡」という単位で用いられる。屋外で視認可能であるにはおよそ300cd/㎡の光が最低限必要とされる。パソコンの液晶ディスプレイは250~300cd/㎡程度のものが多い。

ルーメン(lm)
光源が360度全立体方向に放射する全体の光の量(光束)をルーメンという。
1ルーメンは、点灯したロウソクを1メートル先に置いたときの手元の明るさのことである。
プロジェクターなどにおいては、投射する画面全体に照明をいきわたらせる必要がある。そのため、明るさを計測する際には、画面を縦3×横3に9分割して各部分の明るさを計測し、それぞれの画面の明るさを平均した値を算出する方法がとられる。このとき、画面の各部分の明るさはワット(W)で、それらの値から算出された平均値はルーメン(lm)で計測される。

ルクス(lx)
光源によって照らされている面の明るさ(照度)をルクスという。
よって、光源からの距離によって、照らされる面のルクスは変化する。
1ルクスとは、
・1ルーメン(lm)の光束が1平方メートルの面を平均に照らす時の照度
・1カンデラ(cd)の点光源を半径1 mの球の中心に置いた時、その球の内面の照度
のことである。
一般に直射日光が約10万ルクス、部屋の窓際で2000ルクス程度、明るいオフィスで400ルクス程度の照度があるとされている。


こうやって並べてみると、それぞれの単位の相関関係が見えてきます。

大雑把にまとめると、
カンデラ・・・ディスプレイの輝度を表す場合
ルーメン・・・照明、プロジェクターの明るさを表す場合
ルクス・・・センサーで明るさを計測する場合
という使い分けになります。

一般人には、ルーメン以外、ほとんど関係ないですね。