teppeilog

ちょっとずつエンジンかかってきた

Archive for 1月, 2012

REXMLの文字エスケープに関するバグ

leave a comment

REXMLを使用してXMLを作成するとき、Elementに子ノードを追加する場合にadd_elementを使用し、同時に属性値も追加していた。しかし何故か&がエスケープされなかった。’はエスケープされるけど。以下コードで調べてみたら、add_elementで属性追加するとエスケープされないけど、add_attributeで追加するとエスケープされることが分かった。

require 'rexml/document'

value = "<>&\'\""

sample = REXML::Element.new("a")

sample.add_element("b", {"attr" => value})

c_tag = sample.add_element("c")
c_tag.add_attribute("attr",value)

xml = ""
formatter = REXML::Formatters::Pretty.new
formatter.compact = true
formatter.write(sample, xml)  

puts xml

実行結果

<a>
  <b attr='<>&&apos;"'/>
  <c attr='&lt;&gt;&amp;&apos;&quot;'/>
</a>

なぜ?

動作環境 Ruby 1.8.7

このエントリーをはてなブックマークに追加
はてなブックマーク - REXMLの文字エスケープに関するバグ
Share on Facebook

Written by teppei

1月 29th, 2012 at 5:57 pm

Posted in プログラミング

Tagged with ,

Mac Blu-ray Player はまだ買うな

leave a comment

MacでBlu-ray環境が整った・・・というにはBlu-rayが再生できないとですよね。Macでは長らくBlu-rayを再生する方法がなかったのだけど、昨年ついにプレイヤーが登場しました。

http://jp.macblurayplayer.com/

いまのところ選択肢はこれしかないようです。
しかしこれを購入してみたものの、、、ブルーレイレコーダなどで作成したBlu-rayは再生できないことが判明しました。実家から送られてきた水曜どうでしょうの最新版がMacでみれないよ。。もちろん市販されている映画などのBlu-rayは再生できるので、それが目的の人は購入しても問題ありません。

実際の再生はというと、初期のMacBook Airなどではパワーが足りずブチブチきれて、最終的にはフリーズ。CPUはIntelCore2Duo2.4GHz以上が推奨とのこと。MacBook Pro(Late2008)にライセンスをいれかえて再生したところ、こちらは途切れずに再生できました。

ちなみにブルーレイレコーダで作成したBlu-rayが再生できない件についてサポートに問い合わせてみましたが、現在海外の開発元に確認をとっているらしいです。期待。。。

このエントリーをはてなブックマークに追加
はてなブックマーク - Mac Blu-ray Player はまだ買うな
Share on Facebook

Written by teppei

1月 21st, 2012 at 9:32 am

Posted in レビュー

Tagged with

MacにおけるBlu-ray環境

leave a comment

MacでBlu-ray環境ってあまり聞かないですよね。というのもジョブズがBlu-rayを嫌っていたらしく、今後もMacBookなどにドライブが搭載されることはおそらくないでしょう。ハードディスク安いんだから買い足せばいいじゃんという話もありますけど、20GBぐらいの頻繁に見ないようなデータをさくっと保存するにはBlu-rayがいいだろってことで、I-O DATAのBRD-U8DMを購入。MacはBlu-rayドライブのマウントはできるので、そのままでもデータを書き込めますが、念のためライティングソフトも購入。BD-Rも安くなりましたね。一枚100円以下。

データの整理もできて満足満足。

このエントリーをはてなブックマークに追加
はてなブックマーク - MacにおけるBlu-ray環境
Share on Facebook

Written by teppei

1月 20th, 2012 at 7:32 pm

Posted in レビュー

Tagged with

whenever の使い方

leave a comment

Railsアプリケーションで定期的に何かを実行したいという場合、wheneverを使用するという選択肢があるかと思います。wheneverは要するにLinuxのcronの設定をrubyから行えるというもの。environment.rbの設定も引き継いだrubyスクリプトを実行できるので、DBへのアクセスも簡単。

まずはインストール。

sudo gem install whenever

Railsディレクトリで

wheneverize

を実行すると ./config/schedule.rb が作成される。このファイルにcron設定を書く。

schedule.rbの中には書き方のサンプルがあるので多分大丈夫。たとえば sample.rb ってスクリプトを1時間毎00分に動かしたいときは

every 1.hours, :at => 0 do
  set :output, {:error => 'log/error.log', :standard => 'log/cron.log'}
  runner './sample.rb'
end

runner は ./script/runner のこと。

cron設定を反映するには

whenever --update-crontab

内容を確認するには

crontab -l

logをみて No such file or directory のエラーが出ている場合、runnerに書かれてるrubyのパスが間違っている場合があります。デフォルトが #!/usr/bin/env ruby となっているので、環境に合わせてパスを修正する必要があります。

このエントリーをはてなブックマークに追加
はてなブックマーク - whenever の使い方
Share on Facebook

Written by teppei

1月 12th, 2012 at 3:55 pm

Posted in プログラミング

Tagged with ,

あけましておめでとうございます

leave a comment

本年もよろしくお願いいたします。

昨年は激動の一年でした。ブログに対してアウトプットできておりませんが、やることはやってます。

このエントリーをはてなブックマークに追加
はてなブックマーク - あけましておめでとうございます
Share on Facebook

Written by teppei

1月 5th, 2012 at 11:49 am

Posted in 未分類