✖
はてダ開いて、「日記書く」ってやると、ちょっと前に書こうとしてやめた内容がバックアップから復元されてきて、継続性を感じる。でもあれ別人だもんなー
はてダ開いて、「日記書く」ってやると、ちょっと前に書こうとしてやめた内容がバックアップから復元されてきて、継続性を感じる。でもあれ別人だもんなー
頭の中に住んでいる、仮想的な敵、最悪のケースの最悪の人の像、というのがあって、彼は日常の中の些細な言葉や行動を増幅して、その言動の原因の最悪のケースを僕に伝えてくる。悪いことがないことはありえない。程度の問題だ。程度の問題だから、増幅されると困る。
なんかやたらめったら自信のある眼をしている大学生と、どんなことにも興味を示さない大学生と、どっちも本当に嫌だ。やたらめったら自信だけあって結局なんもせん、なんもできん、みたいな人にどれだけ殺されそうになったかわからないし、どんなことにも興味を示さない人に、どれだけの僕のやる気を剥されたかわからない。「考えてる」って言葉にするけど、何を考えているか言葉にできない人は実際は全く考えていない。それはかつての僕そのものだ。考えている、と信じこんでるだけで全く何も考えてない。しかも「自分が考えていないこと」に気付きたくないから余計何も書かなくなる。
クソ長いです
#!/usr/bin/env ruby -Ku
# vim:set ft=ruby:
# ひだまりスケッチ× というファイル名で保存する必要があります
X = 365
t = Time.now
t += 7 * 24 * 60 until t.wday == 4
n = t.strftime("X365次は%m月%d日25時25分からです><")
eval "class #{n} < Exception; end"
alias _ raise
$! = Kernel.const_get(n).new(File.read(__FILE__)[/< (.+!)$/, 1])
X / _ / X < 来週も見てくださいね!出力はこんな風になります。
ひだまりスケッチ×:365: 来週も見てくださいね! (X365次は07月24日25時25分からです><)
方針としては
ってだけです。
Ruby のエラーメッセージはトップレベルの場合
filename:line: message (ErrroClassName)
になります。トップレベルではない場合は in`methodname` が入ってくるのでダメです。そこで _ を raise の alias にすることで、raise と書かなくても例外をゆのっち内で起こせるようにしました。_ には引数がないので、引数なしの raise となり、直前の例外が raise される効果になります。「直前の例外」は $! に入っており、代入することもできるので、例外を生成して直接 $! へ代入しています。
$! へ代入するクラスの名前が、エラーメッセージの括弧内に入るので、オマケで次週の TBS での放送日を入れることにしました。const_name として valid な名前にするのが結構めんどいうえに綺麗にならないですがこんなもんでしょうか。
短かいバージョン ファイル名も行数も関係なし。上のコードは _ でプログラムを抜けて「来週も見てくださいね!」が評価されないのですが、これだとされます。
#!/usr/bin/env ruby -Ku
# vim:set ft=ruby:
class X < (_ = Exception)
class << self
def /(o)
self
end
def <(o)
raise X, o.to_s
rescue Exception
$!.set_backtrace(["ひだまりスケッチ×365"])
raise
end
end
end
class Object
def method_missing(name, *args)
name
end
end
X / _ / X < 来週も見てくださいね!ひだまりスケッチ×365: 来週も見てくださいね! (X)
あぶねー日記にメモらなかった忘れてた
mixi ニュース経由で日記読んでみたらほんと想像力がない人が多くてびっくりする。おれもああなってしまうのかなぁ……もうなってるのかなぁ……