2008/02/29

an intercalary day

ウィキペディア 今日は何の日(2月29日)から
http://ja.wikipedia.org/wiki/閏年
http://ja.wikipedia.org/wiki/太陽暦

--imported_from
http://www.midore.net/daybook/2008/02/1204211285.html

2008/02/23

rubyosa-Mail.Application

[2010-02-06 追記] RubyOSA はもはやメンテナンスされていないようで幻に包まれています。2010年2月現在においては MacRuby が熱いようです。

rubyosa からの mail.app の操作を試してみた。
メール本文のテキストの取り方が変更された様子。
# OS X 10.4 では message.content だった
rubyosa-0.3.0 :: http://www.midore.net/daybook/2007/03/1173944973.html

10.5 の Mail.app の .content はさらに階層化されててわかりづらい。
# message_viewers から辿るのではない異なるアプローチは試してない。

.content のかわりに、.properties を覗いてみるとハッシュになっておりその中に :content があるのをみつけたので
.properties[:content]
としたらうまくとれた。しかし本来 properties をみにいくのはあまりいいことではないのかもしれない。
OSA.utf8_strings = true にしていることで日本語のメール本文も正しく表示できているのだと思う。推測です。

test_1052-rubyosa-mail.rb

# this file is utf-8
# ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0] (Mac OS X 10.5.2)
# rubyosa-0.4.0
# AppleScript's version "2.0"
# Mail.Application version 3.2("919/919.2")
# 2008-02-23

require 'rbosa'

class Message < Struct.new(:subject, :postdate, :sender, :content, :messageid)
  def date(obj)
    #t = obj.date_received # Received Date
    t = obj.date_sent      # Posted Date
    t.strftime("%Y/%m/%d %H:%M:%S") # t.class is Date
  end
  def set(obj)
    # messageid
    self.messageid = obj.message_id
    # Subject
    self.subject = obj.subject
    # Date
    self.postdate = date(obj)
    # Sender
    self.sender = obj.sender
    # Message Body
    self.content = obj.properties[:content]
    ############ other items
    #obj.all_headers # String / Headers of message
    #obj.deleted_status? # FalseClass or TrueClass / message status
    #obj.message_size # Fixnum / mail size
    #obj.mail_attachments # Object /
    #obj.content # Object /
    #obj.content.paragraphs # Object /
    #obj.source # String / Message Source
    ############
  end
  def to_s
    str = ''
    self.each_pair{|k,v| str << v + "\n"}
    return str
  end
end

OSA.utf8_strings = true

mail = OSA.app('Mail')
mail.message_viewers.each{|x|
  x.selected_messages.each{|i|
    m = Message.new()
    m.set(i)
    puts m.to_s
  }
}


メールメッセージを選択してない場合のエラーなどエラーに対する処理は全て未対処。Mail.app が起動していなかった場合は下記のエラーになる。

RuntimeError: Cannot send Apple Event 'corecnte' : procNotFound (-600)


+++ memo +++
TigerLeopard(10.5) では、FileVault(システム環境)のオン<del>オン</del>オフに関係なく rubyosa 動くようになっていた。

RubyOSA
http://developer.apple.com/documentation/Cocoa/Conceptual/RubyPythonCocoa/Articles/Using%20RubyOSA.html

--imported_from
http://www.midore.net/daybook/2008/02/1203696485.html

関連する記事
"RubyOSA"ラベルがついた全ての記事

2008/02/03

森の生活(上)

森の生活(上)/ H.D. ソロー / 岩波書店 / 9784003230718

本を売ろうと手にとったら読んでなかった事を思い出して読んでみた本。

子供だったころ近所の林の中にちょっとした居心地のよい空間があって「よしみんなでここに暮らそう」と言った本人が暗くなるやいなや「ご飯だ」とつぶやいたそのとたん、なぜか急に怖くなってみんなで走って帰った時のことを思い出した。まだ太陽が高かった時の高揚感は夕日と一緒に沈んで、それきり拾い上げられることはなかった訳だけど、
この本の作者は、大人になってそんな気持ちを拾い上げて忘れないで大切にした人なのかもしれない。

ずっと長い間私はそんな子供の頃に抱いた自然の中にいた時の気持ちを忘れていたし、その事とこの本が頭の中で結びついたのは半分以上読んだあとだった。そのせいなのか分からないが序盤はかなり読みづらい箇所があったのも確かだ。

普段、当然のように食料売場で買い物をして食材を買ったりお金を払って外食してる。ソローは「違うやり方もあるよ」と割と論理的に話を進める。食べることに限らず着ること、住むこと、衣食住の基本的価値観(食事、住居、衣服、お金の使い方)を根底から覆えさんばかりの勢いで書かれてあるので、読んでる側はついうろたえるような気分になり、そういう意味ではかなりヘビーな本でもある。究極のストイックな暮らし方の手本といっていいんじゃないかな。
日清のカップヌードルやポテトチップスが定期的に食べたくなる私にはまるで雲の上の人のようだ。

種をまき野菜を育て食べる、このサイクルがいかに大切かとか人ひとりが自分の胃を満たすために必要な農地はそんなに多くはないといった話も出てくる。
土や木々が放つ新鮮な空気と水と魚と動物。これらと遮断されている生活を人類が送るようになってからの歴史は人科の歴史全体の中ではまだ浅くて、自然に囲まれた生活を望む先祖 DNA の叫びが子供に顕著なのかなーなんて思った。

読む人によっては、非現実的なのにSF小説でもないし物語性もないので退屈しきってしまうかもしれない...。
が、不思議なもので読んでいるうちに、森の中で暮らすソローの幸せな満足感が、時を超えて読者を幸せな気持ちにさせる点はこの本の魅力だと思う。
脚注も面白かった。実は友人から土地を借りていたには笑った。


--imported_from
http://www.midore.net/daybook/2008/02/1202012972.html

[2010-02-27]
ソロー語録集
ISBN: 9784892570605 / Henry David Thoreau / 文遊社