2002-12-09(月) [長年日記]
■ 一回休み
雪が降ったので休むことにして(ぉぃ)、日記も書かず。長年日記してみると、なんと去年の今日もだらだらであったことが判明。特異日か?
2002-12-08(日) [長年日記]
■ ほとんどなにもしない1日であった。買い出しに行った他は、ずーっと「Wiki Way」を読んでいた。読んでも読んでも減らない。しかも次にはもっと厚い「Ruby Way」が待っているという。「道」は長いな、文字通り。
ところで、猫が脚の上で寝ていると、股間が蒸れます。
2002-12-07(土) [長年日記]
■ 夢
イミダスに「アレゲビル」という項目が載っているのを発見するという夢を見た。しかし、内容は覚えていないというオチ。役立たず……。
■ 左利きカーソル(6)
ずるいって言われてもなぁ……。でもまぁ、使っているとまだ問題が残っていることが判明してはいるのだ。例えばGaleonでリンクの上にカーソルを持ってくると指をさすカーソルに変わるんだけど、これが左向き。これは「hand2」というグリフだけど、逆向きの「hand1」はデザインが違うのでそのまま使うのは気が引ける。
あと、やはりGaleonのバックグラウンド処理中を示す矢印+砂時計のカーソルは、cursor.bdfの中にはないようだ。これはどうしようもない。
■ 左利きカーソル(7)
ずるいと言われたらやらねばなるまい(違)。もっとも、↑を書いた直後に、かずひこさんからbdf2binやbin2bdfと組み合わせて使う反転ツールと、反転済みのcursor.bdfを送ってもらってしまったので(左利きでもないのにありがたいことです)、使うだけならここまでやる必要はない。
が、bdf2bin/bin2bdfが必要なのもなんだかしゃくにさわるというか、できるだけ標準的なツールだけでできるようにしておきたいというのもあり。Ruby onlyなツールを書いた。ホットスポットの変換は、かずひこさんの計算そのままである。
元のcursor.bdfにはゴミのような謎のピクセルが混じっていて、素直に2進数にして反転してもうまくいかないので、それを取り除いてやるためにあまりに汚いソースになってしまったが、まぁ動けば正義だ。
#!/usr/bin/env ruby
#
# reverse-font.rb
#
bitmap = []
while gets
chomp
if /^BBX ([\d-]+) ([\d-]+) ([\d-]+) ([\d-]+)/ then
width = $1.to_i
puts "BBX #$1 #$2 #{-($1.to_i + $3.to_i - 1)} #$4"
elsif /^[0-9a-f]+$/ then
xwidth = $_.length
bin = ("%0#{width}b" % eval( "0x#{$_}" )).reverse
bitmap << bin
elsif /^ENDCHAR$/
max = width
bitmap.each do |bin|
max = bin.length if bin.length > max
end
bitmap.each do |bin|
bin = bin + ('0' * (max - bin.length))
bin = bin[max - width,width] + ('0' * (max - width))
printf( "%0#{xwidth}x\n" % eval( "0b#{bin}" ) )
end
puts "ENDCHAR"
bitmap = []
else
puts $_
end
end
元のcursor.bdfを食わせて、標準出力に出てきたのが反転済みのbdfファイルである。あとはbdftopcfをして、mkfontdirして云々……は昨日のとおり。これで、Mozilla独自カーソル以外は幸せになれた。
しっかし、cursor.bdf見てると、歴史的な経緯があるとは言え、あまりに無駄なカーソルばかりで頭が痛くなるぞ。「埴輪の形のカーソル」なんて、何に使うんだよ(笑)。肝心なのは入ってないしさ。
いずれにしても、今回はかずひこさんに助けられっぱなしであった。もちろん、ずんだあんさんにも。感謝。
◆ suzune [そして何故か猫は蒸れた足が好き…]
◆ 白い奥様 [補足:この日はクリスマスケーキの予約をしました。受け取りは23日、って備忘録かい!]