2003-11-11 (Tue)
_ monitor.rb
Gennady Bystritskyさんという人から変更の提案をもらったのでコードの見直し。
あまりにもひどいので、テストを書いてリファクタリング。 rubyのtest/以下にテストがいろいろあるようだけど、lib直下のライブラリの テストはどこに置くべきなんだろう。
まあ、とりあえずコードだけcommitしとくか。
_ attribute parameter中のtypeof(void)
mcs(monoのC#コンパイラ)で、
[SatherNameAttribute("times!")] [IterReturnTypeAttribute(typeof(void))] public static __itertype_times __iter_times(int self) { return new __itertype_times(self); }
のようなコードをコンパイルしようとすると、
int.cs(301) error CS0182: An attribute argument must be a constant expression, typeof expression or array creation expression
のようなエラーになるようだ。
mcsのソースの該当部(attribute.cs:137)を見ると、
if (e is Constant) { result = ((Constant) e).GetValue (); return true; } else if (e is TypeOf) { result = ((TypeOf) e).TypeArg; return true; } else if (e is ArrayCreation){ result = ((ArrayCreation) e).EncodeAsAttribute (); if (result != null) return true; } result = null; Error_AttributeArgumentNotValid (loc); return false;
となっている。
TypeOfはtypeof演算子に対応する抽象構文木のノードを表現するクラスなのでtypeof(void) も許されそうなものだが、実はtypeof(void)はTypeOfVoidという別のクラスで表現されていて、 しかもTypeOfとTypeOfVoidには継承関係がないらしい。
ECMAの"C# Language Specification"を見てもとくにtypeof(void)だけ除外するような 記述はなさそうだし(いつものように斜め読みだけど)、Visual C#では上記のようなコードは 通るようだ。 ってことはmcsのバグかな。 (cvs updateしたら直ってたりして…最近そういうことがよくあるのだ。)
2011-11-11 (Fri)
_ MIMEメッセージから添付ファイルを抽出する
Apple Mailから送られて来るMIMEメッセージをなぜかWanderlust(というかSEMI)が上手く処理してくれないので、 Rubyで添付ファイルを抽出することにした。 最近はmailというgemパッケージを使うのがいいのかな?
#!/home/shugo/local/bin/ruby-trunk require "mail" mail = Mail.read(ARGV[0]) mail.attachments.each do |att| if File.exist?(att.filename) STDOUT.print("Overwrite #{att.filename}? (y/n): ") STDOUT.flush unless /^y/i.match(STDIN.gets) next end end File.binwrite(att.filename, att.decoded) puts("extracted #{att.filename}") end
File.binwriteを使っているので、Ruby 1.9.3でないと動かない。
_ 次女の熱傷の経過
入院から8日が経過して、脚の方はかなり良くなっているが、腕の方があまりよくないらしい。 主治医の先生の話では、あと二週間で治らなければ手術になるとのこと。こんなに元気なのに。 他の場所から皮膚を移植することになるのでますます跡が広がるようだ…。
色々調べると湿潤療法という治療方法があるらしく、松江では市立病院の岡先生が熱傷の湿潤療法をされているらしい。 明日主治医の先生に湿潤療法について聞いてみようかなあ。
何か有用な情報があったら教えてください。
_ O-Show [湿潤療法という言葉は『傷はぜったい消毒するな 生態系としての皮膚の科学』という本で知りましたが、 それを読んだ限りで..]
_ shugo [ありがとうございます。 入院先の病院では実施されてない気がしますが、とりあえず相談してみます。]