いやーちょっとびっくりした。そういえば
bookmarklet を今まで意識して使ったことがなかった
という事実に今さら気がついた。昔、役に立つんだか立たないんだかよく分からない bookmarklet が流行った時期があったけど、その頃は興味なかったし必要もなかったしねぇ。
でも最近はサービスへのアクセスを助ける bookmarklet やツールバーってかなり普通に提供されてるし、かなり遅れて、しかも知らない間に bookmarklet を使うようになっていた。しかしここで、bookmarklet の基本中の基本を分かっていないということに気がつかされたわけだ。
いやね、GeekMonkey で利用するスクリプトが増えたらどうやって管理すればいいんだろうとふと思ったわけですよ。昨日は何も考えずに localhost の Apache 配下のフォルダに突っ込んだけどこれこんなところに置いといたらダメだなと思って動かしたの。でも GeekMonkey を使った bookmarklet って、要するにそのスクリプトを読み込む <script> 文を開いているドキュメントに挿入するだけだから、
http でアクセスできるところに javascript が置かれていないといけない
わけ。あーれー。自分だけで使うんでも http サーバが要るってか。まぁ普段はほとんど起きっぱなしだけど、なんかいやだな、それ。どこが user js なんだって感じ。
この「なんかいやだな」って感覚はたぶん GreaseMonkey から入っちゃったからなんだよね。CreamMonkey もそうだけど、こいつらはローカルのファイルに直接アクセスして user js を読み込んで実行させることができるのに対し、bookmarklet ではそれができない。つまり常にどこかで http サーバを動かしておかなければいけない。
あ。なんかそれ用に超ちっちゃい http サーバ動かしておけばいいか? Apache だと何かの拍子に落としそうだけど、ひっそり動かしておく分には気づかずに見過ごしそうだ。
なんか探してみよう。
……。世の中には simple で small で fast とされている httpd がいっぱいあるんだなぁ…。
SHTTPD - an embeddable Web server にした。
cc shttpd.c
するだけ動くバイナリができる。まさにシンプル。Windows で動くバイナリがあるのは個人的には関係ないけど、それもまたよし。(同じノウハウが幅広く通用するものが好み。)
これ使って適当なポートで httpd を起こし、user js を置いておきたい場所に document root を設定すればいいわけだ。うむうむ。