SVX日記
2005-03-04(Fri) プラグインを仲裁する
先日からコチョコチョと書いているが、当サイトはtdiaryで運営されており、namazuによる検索システムを導入するに当たって、squeeze.rbというプラグインを追加している。ところが、ツッコミを検知してそれをメールするプラグインcomment_mail-smtp.rbと相性が悪いのか、同時に使うとツッコミ時にエラーが表示されてしまうのである。
ツッコミ自体は記録されるため、問題がないといえばないのだが、非常にカッチョ悪い。オイラのtdiary環境に起因するモノなのかもしれないが、なんとかせねばならん。しかたないので、エラーメッセージを元に原因を洗うのである。
……治らん。コードを表面的にしかナメてないのでアレだが、プラグインはそのRubyコード中で、自らRubyコードを生成、本体からprocクラスで呼び出されるようなシカケっぽいのだが、その中でエラーが発生しているようなのだ。そこで、そのコードを出力させたいのだが、procクラスにはコードを出力するメソッドが備わってないのである。むぅ、それでは追跡のしようがないではないか。なんか勘違いしているのだろうか。
しかし、突然に別の解法を思いついた。squeeze.rbというプラグインは日記の更新時に、更新した日付のHTMLを生成するのが主機能なのだが、コマンドとして任意のタイミングでHTMLを吐かせるコトもできるのだ。namazuがインデックスを作るのは1日に1度だから、その直前にsqueeze.rbを実行してHTMLを生成してやればいいのだ。なにも更新毎にHTMLを生成してやることはない。そうすれば、プラグインからsqueeze.rbを外すコトができるから、comment_mail-smtp.rbと競合してエラーがでることもないのである。
# 日記タイトルリスト更新
5 2 * * * cd diary; ../public_html/diary/makecont.rb > ../public_html/diary/content.html
# HTML更新
5 3 * * * /usr/share/tdiary/plugin/squeeze.rb.cron -p /usr/share/tdiary -c /home/svx/public_html/diary -x .html /home/svx/diary/cache/html
# 検索インデックス更新
5 4 * * * export LANG=ja; mknmz -c /home/svx/diary/cache/html --output-dir=/home/svx/diary/index
2008-03-04(Tue) オシレータ発振せず
しかし、32kの水晶といえば、なんか以前にバタバタしたような記憶があるのだよなぁ……と、思いながら、単にLEDを点滅するだけのプログラムを動かそうとしたところ、サッパリ動きゃしねぇ。点灯しっぱなしてのもヘンな話だが。
2011-03-04(Fri) grubニガテ
先日のこともあるし、どうなるかと思ったが、記憶のままにコマンドを打ち込み、そのまま一発で起動に成功……やっぱり、先日はgrub側の不具合かなんかだったのだろうか……。
grub> install (hd0,10)/boot/grub/stage1 (hd0,11) (hd0,10)/boot/grub/stage2
かなり前のこともあるし、どうもgrubとは相性が悪い。その性質上、ハナモゲラかつ、バッドノウハウの塊なのは、仕方ないことなのかもしれないが、grubはニガテですわ。はい。
2012-03-04(Sun) 雑務に専念する
この焼きそば、栄養成分表示を確認すると、ナトリウム量が2.5gを超えている。つまり、これ一食で、一日分の塩分摂取量の適正限度を超えてしまうというわけだ。つまり、血圧に良くない……と、朝から微妙な罪悪感を感じつつ、フタを開けると、中で麺が2段になっていた。こりゃ、すげぇ。
そういえば、以前にもデカい焼きそばを食べたことがあったっけ、と思い、調べてみると、なんとこっちの麺のが量が多かった。売る方も、食う方も、アホだなぁ……と思いつつ、完食。いや、うまい。時々、無性に食べたくなるんだよねぇ、インスタント焼きそばってさ。
話は変わって、先日、職場で愛用しているキーボード「FKB8579」のControlキーが、突如として不安定になった。具体的には、時々押されっぱなしっぽい挙動になる、という症状。まぁ、長らく使い込んでいるからなぁ、と、調べたら、購入日は2003年04月01日だった。約9年前、実に、この日記を始める前だ。当時、仕事中にHHKに味噌汁をこぼし、そのまま早退して秋葉に行ってぷらっとほーむで2枚買った、という記録が残っていた。
それほどに使い込むくらい愛用しているので、これがなくなると困る。しかし、既にディスコンになっているので追加購入ができない。別にHHKで代用できなくもないだろうが、いくらなんでもHHKの2万は高すぎる。まぁ、1枚壊れたところで、まだ1枚あるのだが、こういう時は、もう1枚しかない、と考えてしまうものだ。ちょっとアセる。
やや、キーが黄ばんでいるが、裏のマーキングを見ると、持っている2枚より、新しいリビジョンのようだ。黄ばみの割に、私のものほど使い込まれていないようであり、ごくわずかだが、押し込む際の滑らかさに欠け、メンブレンの反発も若々しい印象。ざっと、全部のキーに対して動作テストする。問題なし。
ということろで、すかさず分解を始める。洗うのである。私は別に潔癖症ではないが、キレイであるに超したことはない。すでに持っている2枚も2回ずつくらい、分解して水洗いしている。そういえばThinkPadX40のキーボードを掃除したときは猫の毛のようなものがビッシリ詰まっていて驚いたなぁ……っと、そこで分解の方法を忘れていることに気づいてアセる。そうそう、右下にあるカーソルキーを引っこ抜き、その下の爪を外すところから始めるのだ。
バラしてみると、髪の毛やらなんやらで、さすがにバッチョい状態。風呂場でガシガシと洗う。洗っていると、消しゴムのカスが目立つ。前の持ち主は学生さんだったのかな? プラスチックと溶着しかけていて取り除きにくい。両方とも同じような状態なので、この持ち主も2枚持ちだったのだろう。やれやれ、俺みたいな奴だ。
さて、そんな作業を片手間にこなしつつも、例のレムウォッチャーの改良版製作のため、ブレッドボード上でファームウェアの開発を進める。が、今回は、意外とアッサリと望みの動作が得られた。なんだか、このところ開発の調子がいい。大ハマり状態にならない。
2024-03-04(Mon) pack/unpackをよりどうにかする
たわむれは、おわり、のはずだったが、美作にいけてしまった(?)ので、もうちっとだけ続くんじゃ。以下は前回のコードだが。
:c_ << 'ABC'
=> [65, 66, 67]
[:c_] << 'ABC' # 動くけど……
=> [65, 66, 67]
class Array
def <(packed)
packed.unpack(self[0].to_s.sub(/_$/, '*'))
end
end
「<」の元来の意味は「より小さい」だが、「<<」の元来の意味だって「左シフト」なのに、Rubyオフィシャルに「左に追加」の意味で使っているのだから、「<」を「左に渡す」の意味で使ったって構わんだろう。
class String
alias :perc :%
def %(arg)
self =~ /^:(.+)/ ? arg.pack($1.sub(/_$/, '*')) : perc(arg)
end
end
class Array
def <(packed)
packed.unpack(self[0].to_s.sub(/_$/, '*'))
end
end
':c_' % [65, 66, 67]
=> "ABC"
[:c_] < 'ABC'
=> [65, 66, 67]
':m_' % ['ABCDE']
=> "QUJDREU=\n"
[:m_] < 'QUJDREU='
=> ["ABCDE"]