日記

9月 3日 (日)

1. アキバ

家電売り場で地デジ対応テレビを見てきました。買うつもりは微塵もなくて、ただ遅い遅いといわれているチャンネル切り替えがどれほど遅いのか、自分の目で確認したかっただけです。結論だけ言うと、切り替えに一秒以上掛かかるのでザッピングは出来ません。ザッピングに許容できるのはせいぜい0.3秒くらいでしょう。

漫画分補充。さよなら絶望先生とか絶対可憐チルドレンとかあいこらとかPLUTOとか。ハヤテのごとく!もそのうち買おうかと。でも買おうと思っていたでじぱらを買い忘れました。あう。

2. デジタル放送

デジタル放送って不自然なブロックノイズは乗るし、受像は遅れるし、ザッピングできないし、コピー制限のせいで不便だし、いいこと全然ないんだよね。コピー制限なんて、デジタルデータ最大のメリットである「ロスレス無制限コピー」を否定するものだよ。何のためにデジタル化するんだよ。今のところ、放送をデジタル化することに何のメリットも見いだせない。いいよ、今のアナログのままで。

9月 4日 (月)

1. サクラエディタ Text-ACE

数式のマークアップが面倒なのは確かにその通りで、MathMLなんていったら、それはもう凄いことに。

そこで、Text-ACEにLaTeX擬き(飽くまでも「擬き」)の数式文法を導入してみました。導入と言っても、Text-ACEが持つフック機構を利用しただけですが。具体的には、HTMLファイル編集中にmath e^{2^{n}x} = (e^{x})^{2^{n}}と入力してマクロを発動させると<var>e</var><sup>2<sup><var>n</var></sup><var>x</var></sup> = (<var>e</var><sup><var>x</var></sup>)<sup>2<sup><var>n</var></sup></sup>に展開されたり、math \int_{0}^{\inf}e^{-x}dx∫<sub>0</sub><sup>∞</sup><var>e</var><sup>-<var>x</var></sup><var>dx</var>に展開されたり(積分記号は微妙)。特殊な局面ではそれなりに使えるかもしれません。

9月 5日 (火)

1. アキバ

先日取り寄せを依頼していた品が届いたと店から連絡があったので、帰りにアキバ。買ったのはSENNHEISER PXC250のイヤパッドです。このヘッドフォンは三年以上使っているので、イヤパッドがぼろぼろになってしまいました。買い換え時かとも思いますが、これに代わるノイズキャンセラー付きのヘッドフォンがなかなか見つかりません。AKGのK28NCも候補に挙がっていたのですが、装着感がいまいちだったので見送った経緯があります。もうしばらく今のを使い続けることにします。

その他、あいこら(不足分)とかでじぱらとかを購入。あいこら。さすが変態大魔王フェチ漫画神井上和郎作とだけあって面白い。この調子で全巻揃えていこうかと。でじぱら。家電の蘊蓄は大変結構ですが、ストーリーが全然面白くない。同人誌と思えばそれなりに読めるかもしれません。

9月 8日 (金)

1. アクションフィギュアコレクション+ 月詠-MOON PHASE- 葉月

フィギュアと言うよりはドールに近いような。出来はそれなりに良いらしく、評判も悪くないようです。ただ、これを買ってしまうと、何か一線を越えてしまいそうなので躊躇気味。

2. Text-ACE

forコマンドを実装しました。N88 BASICのFOR I=0 TO 63 STEP 8のノリで、さらに悪ノリしてprintfの書式に対応して、for 0 63 8 0x%04xと書いてマクロを実行すると、

0x0000
0x0008
0x0010
0x0018
0x0020
0x0028
0x0030
0x0038

といった具合に展開されます。連番を書きたいときに便利だよね、と思って実装してみたのですが、余り使う機会がないような気が。

9月 9日 (土)

1. 吃逆デー

今日、五度しゃっくりが発症して、五度とも意図的に止めることができました。一日に五度も出るのも珍しいか。

私のしゃっくりは大きく二タイプに分けられます。呼吸を止めると止まるタイプと、止まらないタイプです。今日は五度とも呼吸を止めただけで止まったので、運が良かったのかもしれません。

2. 無断リンクとアクセス制限

WWWを徘徊していると、無断リンク/直接リンクされたくなければ技術的にアクセス制限をすべき *1 、みたいなことが書かれているのを見ることがあります。確かに、リファラ等をチェックすることでアクセス制限を課すことは出来ます。しかし、これではリンクを防ぐことは出来ません。

ここでは話を簡単にするために、リンクとアクセスの意味を制限します。

リンクする
HTML文書中の、A要素またはLINK要素のhref属性に対象リソースのURIを記述し、そのHTML文書をWWWに公開する行為。
アクセスする
上記の行為によって公開されたHTML文書中のリンク(A要素またはLINK要素)をWWWブラウザで辿る行為。

リンクするという行為と、アクセスするという行為は本質的に異なります。リンクは、意味論的にも技術的にも、単に参照を表しているに過ぎません。リンクした段階では、リンク先リソースを表すURIが登場しただけで、まだアクセスは発生していません。一方アクセスは、リンクを辿った時に初めて発生します。アクセス行為に対して、アクセスされた側は何らかの対応を取ることが可能です。大雑把に言うと、そのアクセスを受け入れるか拒否するか、ということです。特定のアクセスを拒否すれば、それは「アクセス制限」ということになります。

注意しておきたいのは、アクセス制限とは文字通り「アクセス」を制限するものであって、リンクを制限するものではないということです。リンクは、当該リソースが一切関わることなく行われる行為であるため、アクセス制限でリンクを制限することは原理的に不可能です。よって、リンクされたくなければ技術的にアクセス制限すべき、という主張は間違っています。

  • *1: それ以前に、リンクされたくなければ公開しなければいいだけの話ですが、とりあえずそれは置いておきます。

9月 11日 (月)

1. 漫画分補充

仕事帰りに神保町で、絶対可憐チルドレンと二十面相の娘を購入。チルドレン。ずっと、ただのロリコン漫画だと思って敬遠していましたが、先日一巻を読んでかなり面白いことが判明したので続刊も購入。二十面相の娘。菫画報もそうですが、台詞回しが好き。キャラクタでは小糸春華が良い味付け役になっていていい感じ。

2. Subversion復旧メモ

何だ、.svn/entries を書き換えれば済む話だったじゃないか!と気づきましたが、ディレクトリが多かったり階層が深いとかなり面倒なのでした。これをやる場合、一括置換スクリプトを作ってさくっとスマートにやった方がいいかも。

9月 13日 (水)

1. 模倣犯

どういう訳か「文庫版は全三巻」だと思いこんでいた、宮部みゆきの模倣犯。三巻のラストだけをちらっと見て「続く」とあったので、四巻があるのかと思いきや、ウェブで調べたら全五巻。長い。長いよ。

2. 飲酒運転

例の福岡市の事故以来、酔っぱらい運転のニュースが目立ちますが、最近は公務員の処分が軽いだとか、何やら変な方向に向かっているように思えます。飲酒運転の公務員に対して懲戒免職云々というのは、飽くまで内規の問題です。公務員だけを槍玉に挙げて、厳罰化すればそれで解決といった風潮すらあります。マスコミも世論も明らかにおかしい。飲酒運転に公務員も会社員もニートもなくて、気違い水 *1 を飲んで運転するのはまさに気違いに刃物です。職種に関係無く、飲酒運転即免許取り消し&失格十年くらいにしないと、飲酒運転は減らないでしょう。

  • *1: 酒のこと。

9月 16日 (土)

1. 日の光、丸い沼

リベンジです!何のリベンジなのかよくわかりませんが。

1.1. 神橋

朝、赤羽で旅人さんの車に拾われて、そのまま日光へ直行。日光市内ではよさこい祭りが催されており、独特の衣装に身を包んだ人がそこかしこにいました。この祭り、見たかったのですが、駐車場の問題とか諸々の事情によりスルー。

今回は午後一に日光に着いたので、割と時間には余裕があります。まずは神橋。一般公開されている時間帯だったので、観光客がそこそこ来ていました。旅人さんと多謝さんは橋を渡って(拝観料500円って高すぎじゃね?)写真を撮っていましたが、私と旅人さんの弟さんはパス。私は橋でいろいろ激写している二人を遠くから激写したり、周囲を飛び交う蜻蛉を写したりしていました。というか、蜻蛉ばかり写していたような気が。

1.2. 境内

誰だ、こんないたずらをしたのは!薬局へ帰れ!ケロちゃんが祀られていました。いったい何の御利益があるのか不明ですが、おそらく健康か何かでしょう。ひょっとしたら、サトちゃんとかペコちゃんも日本のどこかに祀られているかもしれませんね。

ケロちゃんはさておき、雨が降ってきたので休憩所でちょっと一休みしてから境内を散策しました。参拝客が多くて撮影の邪魔でしたが、SDカードの容量は有り余っているので、例によって無駄に撮りまくりました。肝心の(?)巫女ですが、片手で数えられる程度にはいました。正月や祭事の時にはもう少し増えるかもしれませんね。

1.3. 明智平

巫女社寺を後にして、一路群馬県の丸沼へ。途中で明智平に寄って軽食休憩。ここは晴れていれば景色が綺麗な場所なのですが、霧、というか雲のために何も見えません。残念。

1.4. 国道120

雨は小降りだったものの、霧、というか雲の為に、前が見えません。視界はせいぜい前方20〜30メートルくらいでしょうか。二台先の車のテールライトが何とか視認できる程度です。何しろ前が良く見えないため、走っていると突然目の前にカーブが現れたり、気がつくと目の前にトンネルが、などということもありました。なかなかスリリングです。

1.5. 丸沼

雨はほとんどやんでいましたが、相変わらず雲の為に景色が良く見えません。こんな状況でも釣りをしている人がちらほら見受けられました。

まあ、雲の中の景色というのも風情はあります。都会に住んでいるとこういう光景にはなかなか出会えませんね。

1.6. 三本松

丸沼から帰還。途中の道路で雲を抜けたので、三本松に着いたときにはかなり遠くまで見渡せるようになっていました。三本松で小休止してお土産を買ったり、例の如く写真を撮ったり。

1.7. 帰宅

旅人さんの実家で夕食をご馳走になってから、天王台まで送ってもらいました。電車で都内には着いたものの、終電に間に合いませんでした。自宅まで四駅の所だったので、通常なら歩いても良かったのですが、面倒なのでタクシー(弱っ)。

9月 19日 (火)

1. SVNエントリ変更

Subversionの作業コピーにあるエントリファイル中のURLを、一括更新してみました。

setlocal enabledelayedexpansion
@echo off
for /R %1 %%e in (.) do (
  if "%%~ne"=="" (
    set EF=%%~fe\entries
    echo !EF!
    attrib -R !EF!
    perl svnsrvchg.pl !EF!
    attrib +R !EF!
  )
)
endlocal
use utf8;

my $pre  = 'http://hogehoge/';
my $post = 'http://foobar/';

my ($f) = @ARGV;	# filename

die("No argument.\n") unless ($f);
my $text = '';
undef $/;

# read
open(F, $f) or die("$f: Failed to open. (read)\n");
$text = <F>;
close(F);

$text =~ s|$pre|$post|gs;

#write
open(F, ">$f") or die("$f: Failed to open. (write)\n");
print F $text;
close(F);

9月 20日 (水)

1. 中掃除

無造作に積まれに積まれ、長い月日を経て出来上がった魔塔「ブック&CDタワー」を何とかしよう、ということで整理。雑然としていたタワーが、小綺麗なマンション風に生まれ変わりました。床積みであることには変わりませんが、見た目はかなり良くなりました。見た目だけは。

9月 21日 (木)

1. プチ掃除

今日も掃除。要らないCD-Rを処分しているときに、冗談半分にエアガンでCD-Rを撃ってみたところ、一撃でCD-Rが粉砕されました。当たり所によっては皮膜が剥げるだけですが、これはなかなか楽しい。跳弾に気をつけることと、飛び散った皮膜の破片を掃除することを忘れないように…って掃除する箇所を増やしているような気が。

9月 23日 (土)

1. ふたば

アキバ。あるものを買いにラジコンショップを探していました。探してみると意外と見つからないものです。昔は結構目立つ場所にいくつかあったと思うのですが。昔何度か行ったフタバ産業は店舗が移転しており、ちょっとわかりにくい場所にありました。この店に行くのは十数年ぶりでしょうか。昔よりも店内は広くなっていますし、雰囲気も変わっていました。ただ、ここでは目当てのものは見つからず結局LAOX ASOBITCITYで買うことになりました。

あとは絶対可憐と絶望先生を購入。書泉ブックタワーの漫画売り場、真ん中にエロマンガを平積みにするのはいかがなものかと思います。

2. KAGタグDB

KAGドキュメントのソースソースファイルの一つであるtags.database.tmlを、あんなことやこんなことをしてRFC822っぽい形式に変換しました。細かくバラしたので800ファイルになりました。続きは明日。

9月 24日 (日)

1. KAGタグDB with サクラエディタ Text-ACE

Perl/Tkであんなことやこんなことを。百聞は一見にしかず。

例によってサクラエディタ+PerlScriptで問題が出まして、Tkモジュールをuseするスクリプトを、同一プロセスから複数回実行すると意味不明なエラーが出たり。これは、Tkを使う部分だけ別のプロセスにして、標準出力で結果を受け取ることで回避しました(PerlReplace - miau's blog?の記事が役に立ちました)。

PerlScript、なんだか毎回変なところに労力を奪われています。もっと本質的な部分に注力したいんですけど…

9月 25日 (月)

1. RFC821とRFC822

RFC821はSMTPで、テキストメッセージフォーマットはRFC822でした。修正。ときどき混同します。ちなみに、数値に2000を足したRFC2821,2822がそれぞれRFC821,822をobsoleteしています。STD0010,0011はそれぞれRFC821,822のままだったような気が。

2. kr2クラスDB

せっかくだから、吉里吉里2のクラスのドキュメントソース *1 もRFC822っぽくしてみました。これに先日のようなGUIを付けたり、Text-ACEと連携させるかどうかは未定。もし付けるとすれば、メソッド/イベント関数の引数編集あたりでしょうか。

  • *1: ドキュメントソースの構造上、さすがにTJS2のクラス(ArrayとかMathとか)は難しそうですが。

9月 29日 (金)

1. DeleGate Message Filter (FTOCL)

メモ。

WWWサイトを巡回していると、邪魔なトラックバックフォームとか、どういう基準で分類されたのかよくわからないカテゴリ一覧だとか、必要もないのに埋め込まれているスクリプトやらインナーフレームだとか、レンダリング時に無駄にアクセスが増えるだけのアフィリエイトとか、そういったノイズ *1 が大量に含まれたページに遭遇することが少なくありません。こういうサイトは「ブログ系」に多く、全リソースを取得するのに時間が掛かるだけでなく、レンダリング処理も重たくなるため、不快です。今まではFirefoxのプラグインを使って、サイト別にスタイルシートを用意し、ノイズとなるリソースを表示させないようにしていました。しかしこの方法では、Firefoxは全リソースを取得→作成者スタイルシートを適用→サイト別スタイルシートを適用、という動きをするため、最終的に見た目上のノイズは減るものの、そこに至るまでのプロセスが重たくなってしまいます。結局、あまり改善されていません。

何とかならないものかと考えたあげく、自宅のDeleGateにFTOCL(DeleGate→クライアント間のフィルタ)を設置することにしました。フィルタは、CFIを利用してContent-Typeがtext/htmlかapplication/xhtml+xmlの時だけ起動させます。

#!cfi
Content-Type: text/html
Content-Type: application/xhtml+xml
Message-Filter: /path/to/dgmf/lib/DGMFilter/filter.pl

フィルタの実装はPerlで書きました。text/htmlにアクセスするたびにPerlのプロセスが起動される *2 ため、多少重いかなと予想していましたが、Pentium !!!(河童) 800MHz Dualにとっては大したことはないようです。速度面ではむしろフィルタスクリプトの実装に因るところが大きく、長い文字列に対して正規表現で修飾子i(大文字小文字無視)などを使うとそれなりに重たくなります。この辺に気をつけてさえいれば、特に違和感なくサイトを閲覧できるようになります。というか、毎回プロセスが起動される方式であれば、当然毎回スクリプトが読み直されるわけで、ちょっとした変更やデバッグの際にはこの方が適しているとも言えます。下手に常駐型にして、変更のたびに何かを再起動するのは、面倒なことこの上ありませんからね。

フィルタの実装はサイトごとに異なるので、サイトの数だけ実装が必要になりますが、最近はサイト単位にドメインが割り振られていることが多いので、ドメイン(完全修飾)単位で実装を分離します。URLのパスやポート番号で実装を分離したいときには、環境変数PATH_INFOやSERVER_PORTを引いて場合分けすればよいので、ドメイン単位の分離方法でも特に問題はありません。ドメイン名の文字列はそのままファイル名としても使用できるので、「ドメイン名 + '.pl'」としてドメイン単位にスクリプトファイルを分割できます。実行時には、ドメイン名に応じて随時requireするだけです。この方式の利点は、透過的なインターフェースを使って実装できることにあります。つまり、どのスクリプトファイルも同じ名前、同じ引数のサブルーチン(具体的にはeditHeaderとeditBody)を書くだけでよい、ということです。必要に応じてスクリプトファイルを配置し、不要になったらリネームなり削除なりするだけで、追加削除を簡単に行うことが出来ます。

さて、試しにいくつかのサイト向けにフィルタを書いてみました。誰も見ないアフィリエイトとか、無駄なIMGタグとかをガリガリ削ったところ、サイトによっては驚くほど軽快になりました。快適快適。

  • *1: 作成者にとってどうかは知りませんが、少なくとも閲覧者である私から見たらノイズでしかありません。
  • *2: 起動方式はCGIと同じような形態。

9月 30日 (土)

1. 水銀燈

アキバ。鉄道むすめのグッズでも買おうかと思いましたが、いざ実物を目にして、買っても使い道がないことがわかったので購入中止。その代わりというわけでもないのですが、割と出来がよいと評判の水銀燈を購入。あとは本を数冊。ちなみに、鉄道むすめのフィギュア自体は午前中に既に届いているので問題なし。

ところで、「水銀燈」でググると凄いのがトップに来ますね。

2. DeleGate Message Filter (FTOCL)

昨日の続き。

対応サイト追加と、デバッグモード等追加。デバッグモード、フィルタの有効無効切り替えは設定ファイルで行えるようにしました。単にフラグとして機能すればよいので、特定の名前でファイルを作ると有効に、そのファイルを消せば無効になる形式にしました。こうしておくと、touch conf/debugmoderm conf/debugmodeとするだけで切り替えられます。エディタ不要。