曜日べつゲリ統計
Mo 13 (18.1%) Tu 14 (19.4%) We 10 (13.9%) Th 9 (12.5%) Fr 11 (15.3%) Sa 6 (8.3%) Su 9 (12.5%)
ひさしぶりにとった。土曜日にむかうにつれて減るようだ
Mo 13 (18.1%) Tu 14 (19.4%) We 10 (13.9%) Th 9 (12.5%) Fr 11 (15.3%) Sa 6 (8.3%) Su 9 (12.5%)
ひさしぶりにとった。土曜日にむかうにつれて減るようだ
たとえば use みたいな感じのシステムをつくるとしても、あんまり使うイメージがうかばない。require "use" みたいなのは必要になってしまうし、require とは全然違う挙動をするから、なじむまでこまるし、中で何をやっているのかパっと見わからないから、ちょっとこわいし……(require はなにやってるのかわかりやすい)
というか RubyGems の何がいやか。なにを改善したらいいのか。パッチかけばすむのか。それでできるならそれにこしたことない。
require "rubygems" で定義される Module(Class) と読みこまれるファイル
["Gem::OperationNotSupportedError", "Gem::Exception", "Gem::LoadError", "Gem"] ["rubygems.rb", "rbconfig.rb", "rubygems/rubygems_version.rb", "thread.rb", "rbconfig/datadir.rb", "rubygems/source_index.rb", "rubygems/user_interaction.rb", "rubygems/remote_fetcher.rb", "net/http.rb", "net/protocol.rb", "socket.bundle", "timeout.rb", "uri.rb", "uri/common.rb", "uri/generic.rb", "uri/ftp.rb", "uri/http.rb", "uri/https.rb", "uri/ldap.rb", "uri/mailto.rb", "yaml.rb", "yaml/syck.rb", "syck.bundle", "yaml/basenode.rb", "yaml/ypath.rb", "yaml/baseemitter.rb", "yaml/constants.rb", "yaml/encoding.rb", "yaml/error.rb", "yaml/loader.rb", "yaml/stream.rb", "yaml/rubytypes.rb", "date.rb", "rational.rb", "date/format.rb", "yaml/types.rb", "zlib.bundle", "rubygems/digest/sha2.rb", "digest/sha2.bundle", "digest.bundle", "rubygems/digest/digest_adapter.rb", "forwardable.rb", "time.rb", "parsedate.rb", "rubygems/specification.rb", "rubygems/version.rb", "rubygems/security.rb", "rubygems/gem_openssl.rb", "openssl.rb", "openssl.bundle", "openssl/bn.rb", "openssl/cipher.rb", "openssl/digest.rb", "openssl/ssl.rb", "openssl/buffering.rb", "openssl/x509.rb", "rubygems/custom_require.rb"]
けっきょくいい方法がおもいつかなくて require にもどっていくのだなぁ……飽きるまで考えてみよう
依存ライブラリは次のバージョンから?かなり減るらしい。6ファイルぐらいに
「あるクラス・モジュール・メソッドがどこで定義されたものなのか簡単に知る方法がない」と書いたけど、ホントにホント?という切っ掛けで、メソッド内側の binding なら caller つかえば簡単にとれるけど、外から名前を指定してはとれないよなぁと思うので考えてみた。
class Object
def location_of_method(name)
c = nil
ret = callcc {|c| false }
unless ret
m = self.method(name)
args = [nil] * m.arity.abs
set_trace_func Proc.new {|event, file, line, id, binding, klass|
case event
when "c-call"
if id == name
set_trace_func(nil)
c.call([:native, nil])
end
when "call"
set_trace_func(nil)
c.call([file, line])
end
}
m.call(*args)
set_trace_func(nil) # attr_* 系で定義されたメソッドは call が trace できない?
end
ret
end
end
class Class
def location_of_instance_method(name)
self.allocate.location_of_method(name)
end
end
p Object.location_of_method(:new) #=> [:native, nil]
p Object.location_of_instance_method(:instance_eval) #=> [:native, nil]
require "pathname"
p Pathname.location_of_instance_method(:absolute?)
#=> ["/usr/lib/ruby/1.8/pathname.rb", 404]
require "ostruct"
p OpenStruct.location_of_instance_method(:initialize)
#=> ["/usr/lib/ruby/1.8/ostruct.rb", 46]
class OpenStruct
def initialize
end
end
# 直前の
p OpenStruct.location_of_instance_method(:initialize)
#=> ["test.rb", 44]
o = Object.new
def o.singleton_method_foo
end
# 直前の
p o.location_of_method(:singleton_method_foo)
#=> ["test.rb", 51]
require "webrick"
p WEBrick::HTTPServer.location_of_instance_method(:mount)
#=> ["/usr/lib/ruby/1.8/webrick/httpserver.rb", 111]set_trace_func と callcc (継続) を使ってる。activesupport の Binding#of_caller の実装を少し前にみて「うわきめー」って思って使う機会があったら使ってみたい、とか考えていたら意外にホイホイあった。やってみてわかったことは set_trace_func 内のデバッグがすごくむずかしいということだった。
もっと簡単にやる方法があるかなぁ……
しかしモジュール定義とかはどうやってとるかがわからなすぎる。現在のファイルと require してるファイルを全部見てくしかないよねたぶん……
Delegater 使ってるときにうまくいかないなぁ。そもそも call がよばれてこない。なんでだろう。
require "tempfile"
p Tempfile.location_of_instance_method(:unlink)
__END__
(eval):3:in `__send__': undefined method `unlink' for class `NilClass' (NameError)
from (eval):3:in `location_of_method'
from test.rb:32:in `location_of_instance_method'
from test.rb:85Tempfile にも unlink が定義されているはずなのに、それが呼ばれない?で、スーパークラスのデリゲートが呼ばれているように見える。どういうことだろう……
なぜか Tempfile.allocate が nil になる
むーどうして allocate が nil になるかわからない。ちゃんと Class.allocate がよばれてるみたいなのに……
もうちょい改良
class Object
def location_of_method(name)
old_state = Thread.critical
Thread.critical = true
name = name.to_sym
c = nil
ret = callcc {|c| false }
unless ret
m = self.method(name)
args = [nil] * m.arity.abs
set_trace_func Proc.new {|event, file, line, id, binding, klass|
case event
when "c-call"
if id == name
set_trace_func(nil)
c.call([:native, nil, binding, klass])
end
when "call"
set_trace_func(nil)
c.call([file, line, binding, klass])
end
}
begin
m.call(*args)
rescue Exception
end
set_trace_func(nil)
end
ret
rescue ArgumentError
false
ensure
Thread.critical = old_state
end
end
class Class
def location_of_instance_method(name)
ret = nil
old_state = Thread.critical
Thread.critical = true
self.ancestors.each do |c|
break if c == Object
[:location_of_method, :method_missing, :allocate].each do |m|
[c, (class <<c; self; end)].each do |klass|
begin
klass.module_eval <<-EOC
alias __location_temp_#{m} #{m}
remove_method :#{m}
EOC
rescue NameError
end
end
end
end
begin
ret = self.__send__(:allocate).location_of_method(name)
rescue NotImplementedError, TypeError, NoMethodError => e
p e
end
self.ancestors.each do |c|
break if c == Object
[:location_of_method, :method_missing, :allocate].each do |m|
[c, (class <<c; self; end)].each do |klass|
begin
klass.module_eval <<-EOC
alias #{m} __location_temp_#{m}
remove_method :__location_temp_#{m}
EOC
rescue NameError
end
end
end
end
ret
ensure
Thread.critical = old_state
end
end
class Module
def location_of_instance_method(name)
c = Class.new
# included を実行させない
self.__send__ :append_features, c
c.location_of_instance_method(name)
end
end
#-- Test
def __modules
ret = []
ObjectSpace.each_object(Module) do |o|
ret << o
end
ret
end
before = __modules
require "rubygems"
require "active_support"
require "active_record"
module_files = {}
(__modules - before).each do |o|
next if o.name.nil? || o.name.empty?
o.instance_methods(false).each do |m|
r = o.location_of_instance_method(m.to_sym)
if r
(module_files[o.to_s] ||= []) << r.first unless r.first == :native
end
module_files[o.to_s] &&= module_files[o.to_s].uniq
end
end
require "pp"
pp module_files
http://lab.lowreal.net/trac/browser/config/.vim/plugin/lusty-explorer.vim.ext-ri.vim
\li でひらくようにデフォ設定。選択して RET で、そのまま補完候補バッファで ri のドキュメントを表示する。hjkl はプロンプトの入力にとられてしまっているけど C-p C-n で動ける。(ri のコマンドを ri にきめうちしてるので変えないとだめ。二箇所ある)
ほんとはもうちょい違う挙動にしたかったのだけど、めんどいので既存のを拡張する方向にした。Lusty-Explorer は Ruby だし簡単にできてよいよい。
ってかちょっと重すぎるなぁ……gems でライブラリいれてるとやばい
あれ、なんか C-c とか C-g で消えてくれない。なんでだろう
バッファ名がまずかったらしい。[LustyExplorer-ri] だとなぜか t という名前に変わってしまう。[LustyExplorer-Ri] だと大丈夫。よくわかんないな……vim のほうがそういう仕様なのかなぁ……
全く有用じゃないエントリ (ただ叩いているだけとか) を効率的にフィルタリングしたいなぁ……
うまく自動化するのは言語解析しないとむりっぽいから、有用じゃないエントリ書いてるのを見たらチェックつけて、人ベースでサービスを横断して拒否できればいいかなぁ。はてなでそういうの書いてる人ははてな以外であんま見ないから、はてな内だけで id ベースのフィルタリングつくったらよさそうだ。
あと、GM_setValue とかだとマシン間で同期するのがめんどいから、どっかに保存しておきたいなぁ。はてブの非表示ユーザを共有すればいいか。
gems 使えるコンテキストでは全部 Erubis 使うようにしよう。Erubis::EscapedEruby つかおう。
デメリットがない
なんで gem spec のファイルを YAML にしちゃったのかなぁ。Ruby で eval できるコードを吐けばもっと高速で YAML への依存が減らせるのに
この場合 YAML 使う理由ってなんだろう。他の言語から読みかきするわけじゃないしというか結局吐く YAML が Ruby 依存になるし……
とおもったら、ローカル spec は Ruby で eval できるコード吐いてた (キャッシュは Marshal)。すいませんすいません。サーバとのやりとりだけ YAML なのかな
最近は前よりはビジネスについて興味を持てるようになった気がする。どうやって収入を得て、どこから出ていくのかみたいなのがすこし気になるようになった。でもとても気になるという感じではなくて、むずかしい話になるとカットされる。
RubyGems みたいに、あらかじめ spec をキャッシュしておく、みたいなのが許されるなら、こういうのもありなんじゃないかなぁと思った。以下の実装はいろいろだめなところがあるだろうけど…… (プラットホーム依存のところがほげほげとか)
# module 名 -> ファイル名へのハッシュテーブルを作る
# ruby 起動しまくって時間がかかるので前もってキャッシュする
require "pathname"
module_files = {}
$LOAD_PATH.each do |path|
path = Pathname.new(path)
next if path.relative?
Pathname.glob(path + "**/*").each do |t|
next unless t.file?
next if t.to_s =~ /tk/
puts t
ENV.delete("RUBYOPT")
ret = nil
IO.popen("ruby", "r+") do |io|
io.puts <<-CODE
# 自分自身はロード済みにしないと、ループして require している場合にまずい
$LOADED_FEATURES << '#{t.relative_path_from(path)}'
$depend_lib = []
def __modules
ret = []
ObjectSpace.each_object(Module) do |o|
ret << o
end
ret
end
alias _require_orig require
def require(lib)
prev = __modules
ret = _require_orig(lib)
if ret
$depend_lib.concat(__modules - prev)
end
ret
end
def set_trace_func(*)
end
prev = __modules
stdout = STDOUT.dup
STDOUT.reopen($stderr)
begin
_require_orig '#{t}'
ensure
STDOUT.reopen(stdout)
print Marshal.dump((__modules - prev - $depend_lib).map {|i| i.to_s })
STDOUT.flush
exit!
end
CODE
io.close_write
ret = io.read
ret = Marshal.load(ret)
end
ret.each do |m|
(module_files[m] ||= []) << t.to_s
end
end
end
require "pp"
File.open("module.cache", "wb") do |f|
Marshal.dump(module_files, f)
end本体
def use(mod)
mod = mod.to_s
mods = Marshal.load(File.read("module.cache"))
raise LoadError, "#{mod} is not found." unless mods[mod]
mods = mods[mod].map {|i|
[i, i.split(File::ALT_SEPARATOR || File::SEPARATOR).size]
}.sort_by {|i,ii|
ii
}
mods.select {|i,ii| ii == mods.first[1] }.each do |i,ii|
require i
end
end
use %(Test::Unit::AutoRunner)
use %(Test::Unit::TestCase)
class UseTEST < Test::Unit::TestCase
def test_success
use %(Pathname)
assert_kind_of Class, Pathname
use %(Test::Unit::AutoRunner)
assert_kind_of Class, Test::Unit::AutoRunner
use %(ERB)
assert_kind_of Class, ERB
use %(ERB::Util)
assert_kind_of Module, ERB::Util
use %(WEBrick)
assert_kind_of Module, WEBrick
use %(Net::HTTP)
assert_kind_of Module, Net
assert_kind_of Class, Net::HTTP
assert_raise(LoadError) do
use %(NotInTableModule)
end
end
end
Test::Unit::AutoRunner.run($0 != "-e" && $0)テーブルは require しているファイルに定義されているクラスを除いているので、test/unit.rb みたいな require をしている場合、そのファイルにいくら定義があっても「クラスの再定義/上書き」という判断しかできないので、use "Test::Unit" とかしても test/unit.rb は読みこまれない。
あとは webrick なんかを例にとると webrick.rb は他のファイルを require するだけなので、直接はこのファイルはモジュールハッシュ上にあらわれない。use では同じ深さを持っていて、WEBrick を定義している全てのファイルを require してる。
もっとたくさんテスト書いて、実装精密にすればつかえるかなぁ……
どっかのサーバで rubyforge の gems をミラーして解析して、このテーブルをつくっておいて、パッケージ検索できるようにするとか、あるいはそのままパッケージシステムにしてしまうとかがおもしろいかなぁ。既存の gems をそのままもってこれてたのしそう。
趣味で友達と一緒にサッカー、とか一切やったことがない。鬼ごっことか隠れん坊ならある。
外で遊ぶのが嫌いだったわけじゃない。でも日が暮れてからは外では遊べない。
404 Not Found 久しぶりに短い文で破壊力のある表現を見た気がする。
スレの途中でいろいろ書いてあって不安になるけど、結局、スレの最後のほうに書いてある
天然じゃない、アホの子じゃない、カーチャンじゃない
なんというか・・・ちょっと一般の常識とは違うけど決して間違った事はしてなくて
かつ自分の考えをしっかり持ってる賢そうな子というかだな
とにかく違うんだよ。
これだと思う。というか、読みながら「違うちがうんだよ」って日記に書こうとしていた内容がほんとにまるっきりこれと一緒で「おお」って思ってしまった。笑ってしまう。(もちろん途中のを否定してるわけではなくて、スレタイから想像したのが、おれの場合はこうだな、っていうことで)
ほんと、天然でも、のほほんでもない。惑わされずに生きてる日常に生きる子だと思う。
日記でまとめブログに言及したのは初めてな気がする。
そういうのは、記号的に表現できない。例えば「ツンデレ」や「どぢっこ」みたいに、一言でうまくいい表せたりできない。特徴がないから、そういう子たちを描写するには、まわりのものを正確に表現してやる必要がある。「形」を表現するには、形をそのまま作る以外にも、それの「型」を作ってあげることでもできる。形がそのまま作れないなら後者を選択するしかない。型を精密に表現しさえすれば、その型の空洞部分の抜けおちた形が見えてくる。透明人間に砂をかけていくみたいに、表現をまぶしていく。
1st Full Album "the GOLDENBALLCITY"
ネギは完全におくら入りかw GOLDENBALLCITY って感じではないし仕方ないかなぁ。そのうちでるのかなぁ。
Apple star storyS がスタジオ収録になるのかな。楽しみだなぁ。あと Judgement; と黄金の鐘は結構前からあるやつだなぁ。前の公式に歌詞があったやつだ。
よくわからないけれど、駄目人間ってのは、駄目人間に向かおうとしてそうなると思う。とにかく全部駄目にしたい感じだ。もう駄目だって状況がどうしても必要だと思うようになることへ、こいつはもう駄目だと思われるように、本当はゼロへリセットしたいのだろうけど、それはうまくいかない。ゼロにするための努力があると、それができるとゼロへリセットする必要がなくなってしまうからだ。結果的に、誰かと関係を持ってしまった人間というのは、リセットしようとするとマイナス方向にまでいってしまう。そこで一度死に戻るか、本当にこの世界からいなくなる必要がある。
おれは今いまいち現実に生きているという感じがしない。ずっと夢の中にいるような感覚だ。どんどん駄目になっていく感じだ。しかし外に出て散歩をすると、風の匂いや虫の音、そこらの家から聞こえる生活音、肌に感じる空気の冷たさ、地上の明りに照らされる雲に幸せを感じてしまう。彼女なんていらないし、他の楽しいこともなくていいと思えてしまう。完全だ。維持できないが、このまま死んでもいいとさえ、感じられる。けれど生きている。
たぶん今日おれはそういうことからまた引き戻され、沈んでいくだろうけれど、それもまたおれが、ぼくが望んだことなんだろう。どうせまた徹夜をする。眠れないからだ。
集中せよ。なぜおれがやるべきことをできないのか。なぜ自分に甘えているのか。行動できないこと。「行動すればいい」がなぜ通用しないのか。努力すればいい、がなぜ通用しないのか。そういう彼らがどうしてそういうシステムを手に入れることができたのか。
でも大丈夫だ。どんなときだって死んだら全てが終わる。とことん駄目になっても、まだ生きたいと思うならそれでいい。
そうだね。そうだ。
中学のときはまだ、友達っぽい人が今よりいて、自分の書いた文章とかを読まれるのは恥ずかしくて嫌だった。だから書かなかった。でもいつのまにか、そういう「友達」と付き合うことがなくなってから、恥ずかしさをあまり感じなくなった。同時に、誰か特定の人に何かを言うというのがひどく苦手になったので、どこかでそれを書かざるを得なくなった。いまでも「これは恥ずかしいことなんだろうなぁ」っていうのが解ったりはするし、まだ名残で書けないこともあるけど、なんだかどうでもいいことに思えるようになった。これによって相手がひいてしまうなら、別にそれでいいと思うようになった。彼らはぼくと違って急がしいから、ぼくの話を聴く暇はないし、ぼくもわざわざそれをひきとめて相手の時間を使ってまで何かを話そうという気持ちにはならなくなったのだ。会話の殆どはくだらないことだ。めんどうくさい愛想笑いをされるのは嫌だし、こちらだってしたくない。
私って少し異常なのかなって少し思って、ううん、こんなの誰でもあるんだって思いなおす。こんな下らないことにでも、アイデンティティを見出そうとして、馬鹿みたいだなぁって少し自己嫌悪。
私は音楽を聴くのが病的にって言える程好きで、だから、家でも外でもヘッドフォンをして、もう少し時代遅れのプレイヤーから音楽を流してる。私はこうしていないと落ち着かないみたい。一度プレイヤーの電池を切らしちゃって、そのまま出かけたことがあるのだけれど、どうしても不安でしかたなかった。小学生のころ一人で留守番したときのような、そんな不安。もう、あんな気持ちになるのは嫌だなぁ、なんて思いながら、私は今日も学校へいく。
少しだけ歩いて、少しだけ電車に乗って、また少しだけ歩く。そうすると私が通っている学校。教室に入る。誰もいない。一番乗り。少し嬉しい。少し寂しい。自分の席に座って、窓から空をみて、いい天気だなぁって思う。そしたら急に、頭に唄が浮かんで、聞きたいなぁって思いはじめて、まだ途中なのに、曲を変えてしまう。ごめんね前の曲さん。
そうやってぼーっとしてると、みんなが教室に入ってくる。担任の先生が来て、ホームルームをする。私はヘッドフォンをとる。そういえばこの前、ヘッドフォンしたまま眠ってしまって、先生に叩き起こされたなぁ。とか思い出してみたり。少し笑ってしまう。馬鹿だなぁ。
放課後になって、私は部活に入ってないから、家に帰る。別に入りたくないわけじゃなかったんだけど、なんだかタイミングを逃してしまった。だから、放課後は少し詰まらない。家に帰っても、やることなんてない。
セーラー服もそのままで、部屋に横になって、天井を見る。白い天井に、お母さんが作ったかさに包まれて、白熱灯がぶら下がってる。そして、もっとちゃんと笑えれば、男の子も寄ってくるのかなぁ、でも、もとがだめかなぁ、なんて、自分の恋について、考えてみたり。まあ、そんな日もあるのですよ。
そんなこんなで、ご飯を食べて、お風呂に入って、髪を乾かす。私の髪の毛は、自慢じゃないけど綺麗って褒められる。私も綺麗だと思う。って、やっぱり自慢だね。でも、ときどきこの髪を短く切ってしまいたいなぁ、なんて考えてしまう。なんでだろう?
寝る前に、ふとんに仰向けになって、好きな唄を少し聴く。目を閉じて、ヘッドフォンの奥の風景を想像する。そうやって見える風景がすごく好きで、なんだか、また明日も生きていけるかなって思う。そんなこんなで眠くなって、また明日。
明日は、何かいいことがあるかなぁ?
もともと lowreal.net は out of the headphone であった。しかしながらいつ変えたか忘れたけれど out of the washer になっている。ここは into the headphone であり、もう一つは in the headphone だ。分ける意味なんかない。もっとごちゃごちゃいいはずだ。そして一番ここが書くのがめんどうくさくない。自動的に手が動く。
はいはいだめだめ。おれだめだめ。集中しろもっと。
外明るい。すこし赤い。「すこし赤い」という繋がりは、夏祭りと浴衣を着た女の子を想像させる。よくある想像だ。鳥居 π
人間的であることを忘れる。ずっとずっと。もうなんも書くことなんてない。いつも全部書いている。DEL おすといい。おれは恵まれすぎた。たくさん消費した。生み出すことができない。芸術的センスがないことが嫌だ。それはだれだって、本当は持っているはずなのに、たぶんおれだって持っていたはずなのに、ぜんぜんいまはない。どこ消えたんだか。センスがない。高校のときにはじめて気付いた。ずっと感じている。みんな羨ましい。
表面的なことができたってしかたがない。意味がない。誰にも伝わらない。
知らない。ずっと逃げ続けている。いつからだかわからない。こうならない方法があったかわからない。これからどうすればいいかずっとわからない。笑いながらこういう文章を書き続ける。ずっとノスタルジック。たしかに。無限ループたのしい。変わらない。灰羽思い出した。あれは DVD 欲しいよなぁ。
誠死ね。「真に」と「誠に」ってどう違うの。
資源ゴミの日なのでゴミ置き場までひとっぱしりしてきたのだけれど、やはり朝の空気というのは気持ちいい。SC440 のダンボール↑を捨てた。でかい。清々しい朝だ。チョコレートをいくつか食べた。今は漉し餡のもなかを食べている。
ひさしぶりに聴いたらグッっときた。これ、なるほどなぁ。なるほど。
こういう発見があるものが大好きだ。
スルー力について言及してる。さすがイガラス。時代を先どり。
誰か何か言ってるぜ
聞き流す
振りして真に受ける
僕は自分の言葉なんて全く持っていません。全て誰かから借りられた言葉です。
ぼくは戦争をしにいくわけじゃない。これからもずっと、そんなことする気はない。でも、多かれ少なかれ、戦争のようなものを日々続けていくことになるだろうと思う。ぼくの状況はいつもいつも「大したことじゃない」
あまり本を読んでいない。でも本は好きだ。読まないのに本が好きなんておかしい。数えられるぐらいしか本を持っていないし、読んでいない。一番読んだ時期がそもそも高校のときで、大学に入ってから今まではもうぜんぜん読んでない。ラノベと今まで買った本と再読しかしてない。でも再読するたびに本に発見がある。頭が悪いから、一度じゃ絶対に理解できない。再読といっても最初から全部読むわけじゃない。「あのシーンってどこだっけ」と思ったときにそこから読みはじめる。
この大きな掌のような夜が一切の星座を統べながら次第にそのひろがりを閉じ、やがては暁の爽やかな薄明が東の空に星々のまどろみを消し去って行くその時に、
従兄弟の少年とバス停と病院がでてくる話で、冒頭の季節の描写がなんか印象に残ったやつがあったんだけどなんだっけ。短編だったはずなんだけど……
と書いたところで、どうせ持っている本が少ないのだから全部冒頭だけ読んで探せばいいだろと思いさがしたら、いよいよこれになかったら分からないなってところで発見できた。めくらやなぎと眠る女 (蛍・納屋を焼く・その他の短編) だった。内容をぜんぜん覚えてなかったので (女の子が病院にいることは覚えていた) 今読んでみたけど、よくわからなかった。そのうち分かるのかな。一生わからないかもしれない。
おれはこんなこと書くことで何がしたいんだ? 誰かに「あいつってはあんなこと考えてるぅ」とでも思われたいのか。本当におれは気持ち悪い。でもやめることができない。日記により死ぬことを考えられるようになる。おれが死んだときに「あぁこいつ死んだのか」とそのうち誰かが思えばいい。そう思うことで、「いくらか悔いはあるけれど、死んでもいいか」という気持ちになれる。もちろん実際死ねるかどうかは関係ない。たぶん死ねないだろう。でも死んでもいいか、という気持ちになれることが大切だと思う。
これから、ネット世代が死んでいくと、ブログサービスはどうなるんだろう。もちろん運営会社が潰れない限り、リソースはもとの位置に残りつづけ、潰れたとしても、あらゆるところにキャッシュされたリソースが残るだろう。インターネットがなくならない限り。死んだ人のミームがインターネットをさまよい続け、誰かに影響を及ぼす。面白い。
でもインターネットもいつかはなくなる。想像しているより早くなくなるかもしれない。おれが生きている間に失くなるかもしれない。そういうものだ。基盤はみんなが思っているより全然ゆるい。
さらにいつか人類も地球もなくなってしまう。そのとき、そのあとまで、この宇宙ないし世界に、何か残せるだろうか? 何も残せない。形のあるものは残せない。内なる何かをどこかに留めらるかもしれないけれど、今の時代ではそれはないことになっている。どっちでもいいか。
ひさしぶりに髭を剃った。伸びすぎていて電動のやつでは無理なので普通の剃刀 (というのはおかしいか。ホテルとかでもらってきたやつ) で剃った。痛い。若干血がでた。若干若くなった。
ano日記はやっぱりすごかったんだよなぁ。ほんとに残念だ。
キョン主観なのにキョン対してデレているのが描写されていたら「あいつっておれに惚れてるんだぜ」ってキョンが言っているのと同じ意味です。ハルヒは実際にはもうすこしアプローチをかけていますが、キョンが逃げているため、それが描写されず、ちょっとおかしい言動が目立つ変な女が強調されているのです (「いやいやいや、こんな女だぜ。ないないない」みたいに必要以上の表現をしている)。完全に眼がそむけられない事実だけ語られているわけですね。
と考えたけど、作品の文体をよく覚えていないのでちゃんと終始キョン一人称なのか覚えていないのでした。(鶴屋さんのなんちゃらの描写があったからところどころに神視点が入っていたような気もする)
C-f (Vim の Command モードとかのバインド) で開くようにしてみた。
でも input type="text" には無力なんだなぁ
require "rubygems" require "pathname" require "active_record" ActiveRecord::Base.establish_connection( :adapter => "sqlite3", :database => "test.db" ) class Article < ActiveRecord::Base end
~/tmp を定期的に晒すとか面白そう。でもだいたい公開できない。
はらいたい