長音表記。
マイクロソフト製品ならびにサービスにおける外来語カタカナ用語末尾の長音表記の変更について
マイクロソフト株式会社(本社:東京都渋谷区、以下マイクロソフト)は、外来語カタカナ用語末尾の長音表記について、今後の製品やサービスの開発において国語審議会の報告を基に告示された1991年6月28日の内閣告示第二号をベースにしたルールへ原則準拠する方針を決定しました。
うーん「変更例」ぜんぶ違和感あるなー。そのうち慣れるんだろうけど。
マイクロソフト製品ならびにサービスにおける外来語カタカナ用語末尾の長音表記の変更について
マイクロソフト株式会社(本社:東京都渋谷区、以下マイクロソフト)は、外来語カタカナ用語末尾の長音表記について、今後の製品やサービスの開発において国語審議会の報告を基に告示された1991年6月28日の内閣告示第二号をベースにしたルールへ原則準拠する方針を決定しました。
うーん「変更例」ぜんぶ違和感あるなー。そのうち慣れるんだろうけど。
X60よりは改善されたと言われてて、購入当初は気にならなかったものの、連日の暑さでやっぱり気になるようになった。
長時間使ってるとイラついてくるのはいかんともしがたい。唯一にして最大の欠点。
無線使わないとか何か手の下に敷くとかって、後ろ向きだもんなー。
宇宙船演算子(<=>)を使うときにどっちがどっちだか思い出せず、毎回こんなことしてる。
irb(main):001:0> 1 <=> 2
=> -1
irb(main):002:0> 2 <=> 1
=> 1
irb(main):003:0> 1 <=> 1
=> 0
そのたびに「左が大きければ正だ!」って覚えた気になるんだけど。
今日のハマり。
begin式全体の評価値は、本体/rescue節/else節のうち 最後に評価された文の値です。また各節において文が存在しなかったときの値 はnilです。いずれにしてもensure節の値は無視されます。
たとえばこんなことしてました。
1 Foo.find(:all).inject(0) do |num_processed, foo|
2 begin
3 foo.bar # ここでraise
4 num_processed += 1
5 rescue => evar
6 logger.error(evar.message)
7 ensure
8 num_processed
9 end
10 end
8行目をensureの外に出して解決した。
ということで設定するパラメータを探してみたのだけれど、見つからなかった。具体的には日付とログレベルをメッセージの前に出したかった。
initializerで「configuration.logger」に設定すればloggerを入れ替えられるようだけど、なんというか、ちょっとフォーマットを変えたいだけなのでオブジェクトを入れ替えるほどのことでもないよな、と思っていた。そう、いた。
デフォルトのloggerの中身は「ActiveSupport::BufferedLogger」だったのでログを書き出してるところを探してみたら、
activesupport-2.1.0/lib/active_support/buffered_logger.rb
63 def add(severity, message = nil, progname = nil, &block)
64 return if @level > severity
65 message = (message || (block && block.call) || progname).to_s
66 # If a newline is necessary then create a new message ending with a newline.
67 # Ensures that the original message is not mutated.
68 message = "#{message}\n" unless message[-1] == ?\n
69 buffer << message
70 auto_flush
71 message
72 end
こんな感じだったので、
RAILS_ROOT/config/initializers/buffered_logger_ex.rb
1 module ActiveSupport
2 class BufferedLogger
3 def add(severity, message = nil, progname = nil, &block)
4 return if @level > severity
5 message = (message || (block && block.call) || progname).to_s
6 # If a newline is necessary then create a new message ending with a newline.
7 # Ensures that the original message is not mutated.
8 message = "#{message}\n" unless message[-1] == ?\n
9 severity_text = ActiveSupport::BufferedLogger::Severity.constants.detect{|c| eval(c) == severity}.ljust(5)
10 time_text = Time.now.strftime('%Y-%m-%d %H:%M')
11 buffer << "#{time_text} [#{severity_text}] #{message}"
12 auto_flush
13 message
14 end
15 end
16 end
こんなファイルを作って置いてみた。
で、出したいようにログが出るようになった。しかし自分でやっておいてなんだけど、置き換えたadd大きすぎ。不吉な匂いを放ってる気がする。
ちなみに上の「buffered_logger.rb」は2.1.0なのだけれど、2.0.2では
activesupport-2.0.2/lib/active_support/buffered_logger.rb
60 message = "#{message}\n" unless message[-1] == ?\n
61 @buffer << message
62 auto_flush
と、bufferのスコープがローカルではないので、注意が必要。って、あーやっぱりきれいなやり方じゃないよなー。