2013-03-21

railsの部分テンプレートのログ出力を出さなくする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsで部分テンプレートをレンダリングすると以下のようなログが出力されます。

Started GET "/hoge" for 10.10.10.10 at Thu Mar 21 09:50:33 +0900 2013 Processing by HogeController#index as HTML
Rendered vendor/bundle/ruby/1.8/gems/active_scaffold-3.0.26/frontends/default/views/_list_with_header.html.erb (576.5ms)
Rendered vendor/bundle/ruby/1.8/gems/active_scaffold-3.0.26/frontends/default/views/list.html.erb within layouts/application (638.4ms)
Completed 200 OK in 1035ms (Views: 984.1ms | ActiveRecord: 521.7ms)

このRendered・・・の部分が大量に出てくるページがあったのです。

development環境ならば、まぁよいのですがproduction環境でも出ていました。

一つの方法として、
config/evironments/production.rb

config.log_level = :warn
と入れてやるとログが出なくなります。
上記のログはinfoレベルで出力されているようです。

ただ、これだと
Started GET ・・・
Completed ・・・
も出なくなります。

これは出ていてもよいなぁと思うわけです。

Rails4であれば、
config.action_view.logger = nil
とするとよいようです。

残念ながらRails3系では利用できません。
その代わり以下のようなモンキーパッチを用意してやればOKです。

module ActionView
  class LogSubscriber < ActiveSupport::LogSubscriber
    def logger
      Logger.new('/dev/null')
    end
  end
end

モンキーパッチは、どうやら
config/initializers
以下に置いとくのがよいようなので、上記のパッチを

config/initializers/action_view_logger_patch.rb
とでもして置いておけばOKです。

以下が参考になりました。
http://stackoverflow.com/questions/11991967/rails-log-too-verbose

2013-03-09

ハニワLED弐号機

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ハニワLED初号機に続き弐号機を作ってみました。
LEDにおゆまる(お湯で温めるとやわらかくなる透明感のある粘土)をそれっぽい形にしてつけただけです。
なんかザンネンな感じがします。




おゆまるは、こんな感じのものです。
たまに100円ショップで小分けのものが売っていたりします。
 

2013-03-06

今更CentOS5にMySQL5.1を入れる

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
古い環境のCentOS5のmysqlをアップデートするための検証環境を作るためにmysql5.1を入れようと思ってみました。

昔はremiレポジトリを使ってインストールしていたのですが、今remiを使うと5.5が入ってしまいます。
そして通常のレポジトリの方は5.0だったりします。

で調べてみたところ以下の手順でMySQL5.1をインストールすることができました。

wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-10.ius.el5.noarch.rpm
rpm -Uvh epel-release-5-4.noarch.rpm
rpm -Uvh ius-release-1.0-10.ius.el5.noarch.rpm

yum -y install mysql51-server
yum -y install mysql51-devel

無事に5.1がインストールできてよかったです。
でも、すぐ5.5にアップデートしてしまったのですけどね。

2013-03-03

rubyでarduinoを操作する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでarduinoを操作したいなぁと思ったわけです。

で調べてみるといくつか方法があるようです。
以下で紹介されています。
http://playground.arduino.cc/interfacing/ruby

ここで紹介されている
arduino_firmata

dino
でLEDを点滅させるLチカを試してみました。


どちらを試すにせよarduinoの環境が必要です。
以下とかを見れば環境構築はできそうな気がします。
http://trac.switch-science.com/wiki/Arduino
http://www.soundscience.co.jp/soundshakit/pa504z2/error.html


まずはarduino_firmataです。

こちらはlinux環境でないと使えない感じです。

arduino側にfirmataというスケッチをアップロードしておいて、PCとUSBで接続しておいてrubyで操作します。
以下のような感じです。

まずは、arduino側にfirmataをアップロードです。
Arduino IDEのサンプルにあるものをアップロードします。
ファイル -> スケッチの例 -> Firmata-> StandardFirmata
を開いてアップロードすればOKです。

とりあえずfirmataが動くかどうかを確認するプログラムが
http://firmata.org/wiki/Main_Page
にあるのでこちらをダウンロードしてLEDが光るかどうかを試してもよいかもしれないです。

ruby側です。

まずは、インストールです。
gem install arduino_firmata

以下のようなプログラムを用意します。
require "rubygems"
require "arduino_firmata"

arduino = ArduinoFirmata.connect "/dev/ttyUSB0"

puts "firmata version #{arduino.version}"

while true
  arduino.digital_write 13, true
  sleep 1
  arduino.digital_write 13, false
  sleep 1
end

これを実行させるとLEDが点滅します。
connectに指定する値はとりあえずarduino接続前に
ls /dev > aaa
なりしておいて、その後に接続して再度
ls /dev > bbb
でdiffをとって増えたものを指定しておけば、よさげです。

参考になるサイトは、以下のとおりです。
http://shokai.github.com/arduino_firmata/
http://shokai.org/blog/archives/6631



お次は、dinoです。

こちらはwindows環境でも利用できるようなのでwindows環境で試しました。

こちらの場合は、arduino側にbootstrapperというスケッチをアップロードしておくようです。
以下のような感じです。


arduino側のスケッチは以下にあるソースをコピーしてarudinoにアップロードします。
https://raw.github.com/austinbv/dino/master/src/du.ino


ruby側です。

まずは、インストールです。
gem install dino

以下のようなプログラムを用意します。
require "rubygems"
require "dino"

txrx = Dino::TxRx.new
txrx.io = "COM3"
board = Dino::Board.new(txrx)
led = Dino::Components::Led.new(pin: 13, board: board)

[:on, :off].cycle do |switch|
  led.send(switch)
  puts switch
  sleep 1
end

これを実行させるとLEDが点滅します。
COM3としている部分を実際利用するシリアルポートに書き換えます。

参考になるサイトは、以下のとおりです。
https://github.com/austinbv/dino
http://tutorials.jumpstartlab.com/projects/arduino/introducing_arduino.html
http://d.hatena.ne.jp/toshiaki-h/20130211/1360570837


どちらもPCと接続してrubyで操作になっていますが、
mrubyとか出てきているので、そのうちrubyスクリプトをマイコンボードにおけば動くみたいなことが近いうちに出てくるのかなぁとか期待しちゃったりしています。

4月に発売予定のenziとかいうボードがそういう感じになるのかもしれないですね。
http://enzi.cc/


前から、なんかarduinoなりを使って何かをやってみたいなぁとは思っているのですが、やることが思いつかない・・・・