Page Index
日付 題名 記事の要約
2002.4.2 <form>とNetscape 4でも6でも仕様非準拠
2002.4.6 ごきげんLynx バージョンアップ
2002.4.7 何回やれば気がすむのか また全記事ソース修正
2002.4.10 grepを憶えよう! 複数ファイルの検索機能
2002.4.11 正規表現を憶えよう! 魔法みたいな超検索
2002.4.12 正規表現をもっと憶えよう! 魔法の超検索
2002.4.13 秀丸ツールバー カスタマイズアイコン
2002.4.17 転送アドレスゲット 3から2へ
2002.4.18 行間の広い読みやすいフォント JSフォント導入記
2002.4.19 疑問解決 ?の謎
2002.4.20 浸透!正規表現 強調表示定義ファイル作り替え
2002.4.21 惰性と挑戦と 次なるステップへ
2002.4.25 申し訳ないBrowserAssistant 試用期限切れ?

<form>とNetscape

2002.4.2.Tue

 HTML4.01では、フォームの部品は必ずしも <form> で囲む必要はない。<form> には action 属性が必須になり、「提出しない」、つまりJavaScriptで使う場合は、むしろ囲むべきではなくなった。
 しかしネスケ4.xでは <form> で囲まないと認識してくれないので、かなり悩ましい問題であったりする。

 まぁネスケ4はわかるとしても、ネスケ6も <form> で囲まないといけないのは、さてはてどうしたものか。ラジオボタンが正常に動かないのだ。(複数選択が可能になってしまう)
 以前までは「フォームの部品なんだからあたり前じゃない?」とか思っていたのだけど、仕様書はそう言ってないのである。
 つまりこれは、ネスケ6の仕様非準拠ということになる。

 で、重い腰を上げて調べてみたところ、やっぱりモヂラのバグというオチのようで。(いくつか類似ドキュメントを見つけたけど、どれも古いのが気になるな)
 こういう(HTML4.01に準拠する上で)致命的なバグは、さっさと片付けていただきたい所存。プリーズ。

 ところで、上記リンクのドキュメントにある該当記事、「ラジオ」への「型」属性セットを備えた多数の「INPUT」ボタンは、形式の外部で働きません。 ダミーの「FORM」要素内の任意のラジオボタンを置くことによりこのまわりで働くことができます。は、「ラジオボタンは(バグにより)<form> の中でしか有効にならない」とか、もう少し意訳してもいいと思うのだけど…。


ごきげんLynx

2002.4.6.Sat

 Lynxをバージョンアップした。2.8.3から2.8.5へ。間がひとつ抜けてるのはご愛嬌。
 ひとくちにLynxと言っても色々なLynxがあるけど、俺はpatakutiさんのを愛用させてもらっている。
 2.8.5から、スクリーンサイズが設定可能になるとともに、メニューが日本語化された。加えていつの間にかインストーラが付き、速攻で使えるようになったのも初心者にはありがたい。これでまた敷居が低くなったね。

 早速、新siteCTSをチェックしてみると、おぉさすがHTML4.01準拠である。なんと快適なのでしょう。(客観的に快適かどうかは俺の判断しうるところではないけど、格段に改善されているのは間違いないだろう)
 ぜひともこの調子でいきたいものである。


 パ奮のソース修正がやっと8月まで終わった。あと5ヵ月分残ってると思うと気が遠い。HTML4.01準拠に加え、JavaScript禁止時もそれなりに表示できるように修正し、ついでに追記とかをちまちま足す。
 しかしなんちゅう量だろう。よくもまぁこんなに書いたもんだ。我ながら感心。

 とにかく言うことを聞かないネスケ4.78を黙らせるために、またも素敵な手法を編み出してしまった。落ちることもまったくなくなったし、表示もまぁ上等な方だろう。
 考えてみると、俺が持ってる数々のノウハウは、こいつへの対策の果てに生まれたものが多い。そういう意味では感謝すべきなのだろうか。

追記:
2003年3月頃から始まったXHTML1.1化でまたやるハメに。

grepを憶えよう!

2002.4.10.Wed

 パ奮の記事修正が一通り終わったので、かねてより計画していた大仕事にかかることにした。このチャンスを逃がすわけにはいかぬ。

  トップ(ルートディレクトリ)
    ├ Scrawl Notes
    └ パチョ奮闘記

 今まで↑の構造だったのを

  トップ
    └ Notes(現:Scrawl Notes)
        ├ Scrawl Notes(現:気分日常雑記帳)
        └ パチョ奮闘記

 のように大移動するのである。階層がひとつ下がるため、リンクがぶっつぶつ切れるわ切れるわ。こりゃ大変な作業だ。

 効率の良い作業を心がけ、今まで放ったらかしだった「grep」とゆう機能を(やっと)憶える。あ、秀丸の話。
 フォルダを指定して検索語を入れると、語が含まれるファイル名と行数をあらかたリストアップする。そこからさらに「タグジャンプ」とゆう機能を使って、そのファイルのその行へ直ジャンプできるというものだ。
 WinMeのエクスプローラにもそれなりに使える検索機能が付いてるけど、やはり使い勝手が違う。否、正規表現の有無はとてつもない差だ。

 その正規表現、面倒くさくて「放ったらかし」にしてるもののひとつ(ちょっとだけ使える)なのだけど、これもいいかげんちゃんと憶えねばならぬようだ。いずれにせよ避けて通れない道だし、すでに必要とされる局面が多すぎる。


 むはー正規表現ー。

「んん。アンクのJavaScript辞典のURL、どこだっけ。たしかパ奮にリンク張ったよな。えーと、あれはいつだったっけなぁ…?」

 そんな時の正規表現。

<[Aa] .+アンク.+JavaScript.*</[Aa]>

 はい一発どんぴしゃり

 正規表現。それはハードディスクがデータベースになる魔法。


 正規表現をお勉強。これを学ぶ上で難しいのは、集中的に勉強する機会が乏しいことじゃなかろうか。ほとんどの場合は普通の検索で間に合うし、練習のために無駄検索をくり返すのは面白くない。

 ちなみに正規表現とは、"「正規表現を」から始まって「する」で終わる文字" など、従来は不可能だったことを成す超検索のことである。

正規表現を.+する

 で実行すれば、「正規表現をマスターする」「正規表現を頑張って勉強する」「正規表現を学びながら、するめを食べる」などにあらかたヒットする。

 そこで「集中的に勉強する機会」として、こんな方法を実行。

 秀丸には、登録した単語を色分けしてくれる「強調表示」がござり、ソースを見やすくできる。この登録単語にも正規表現が使えるのだ。やはり実践に勝る勉強はないのである。今までできなかった異次元の色分けができて我は満足じゃ。

 テキスト主体のユーザーにとって、正規表現は実に重要だ。一応予備知識くらいには身につけていたものの、もっと積極的に使ってしっかりマスターしよう。
 JavaScriptにも正規表現があるけれど、秀丸とは若干違うみたいね。ちなみに秀丸の正規表現はJRE32.dll(Ver1.17)でおじゃる。

 今のとこの課題は「font」「fontColor」「fontSize」全部にマッチさせる条件。

font(Color|Size)?

 でできそうな気がしませんか。でもなぜか「font」にだけヒットしないんですよ。?は無視ですか。
 仕方なく fon(t|tColor|tSize) などと頭悪いことをやる日々。
 さてはて。

 ていうか眠いのでもう寝る。

追記:2002.4.19
19日に解決しました。


秀丸ツールバー

2002.4.13.Sat

 ところで、こないだのバージョンから、秀丸のツールバーアイコンがカスタマイズできるようになった。
 モジュール式なので自分で作るには面倒くさそうだけど、秀丸のアイコンはどうもお気に入りでないので、大変喜ばしい。

 ニチャンでエディタのスレッドを見てみると、ダサいという意見は結構多い。やっぱ作者もその辺を感じていたのだろうか?(要望が多かったとしたらかわいそうな話よな)

 あと、ソフト名自体がダサいという話もあったな。たしかにxyzzyとかEmacsとかMeadowとかLyreとか、横文字の方が格好よく感じるのかもしれんが。某県某市在住の娘がマロなどと謎の呼び方をするのもどうかと思うが。
 いっそのことアーカイブのファイル名を取ってhmEditorというのはどうだろう。…やっぱ「秀丸」でいいよな。

 俺としては、メニューバーがカスタマイズできるようになってほしい。EmEditorみたいにさ。


 パ奮のソース修正がやっと終わった。…のもつかの間、ディレクトリ構造を大変更することが決定したので、また全ファイルのリンクを修正しなければならくなった。気の遠い話…だったのだが、正規表現とgrepを使って検索置換したら、30分もかからず終わってしまった。便利よの。

 転送アドレスに http://www3.to/cts/ を取っていたのだけど、どうもサーバーが過負荷らしい。実際、もんのすごく遅い。
 そしたらお知らせが来て、http://www2.to/cts/ にご案内される運びとなった。こちらは将来有料化される見通しで、望むところである。(←金払ってでもバナー表示したくない)
 http://www2.to/cts/123/abc.html とすると http://cts.creasus.net/123/abc.html へ転送してくれるサブディレクトリ拡張サービスが気に入った。(なんかすげえ遅いけど)
 しばらくは両方使えるけど、見通しが立ったら http://www3.to/cts/ は解除する予定。


 パチョ奮闘記リンク集、及び用語集の修正が終了。昨日のディレクトリ移動によるスクリプトの修正も終了。とりあえずパ奮を完成とする。
 はー長かったー…

─────

 ちょっとフォントが増えすぎたので、管理ツールを導入することにした。ターゲットは一時インストール(Windowsを再起動すると自動的にアンインストールされる)が可能なもの。
 色々試用してみた結果、SwitchFontに決定。開発はもう止まってるっぽいけど、エクスプローラみたいなツリービューで手軽に一時インストールできる使い勝手が良かった。

 フォントはたくさんあれど、印刷用途でパソコンを使わないため、使用機会はグラフィックとして使う時だけ。頻度としては極めて稀で、そのためにすべてのフォントを常時待機させておくのは、リソースの無駄遣い以外のなにものでもなし。

 で、あまり使わないものを一時インストールで使うようにした結果、200を突破していたフォントは78種類まで低減。リソースにもだいぶ優しくなった。よしよし。

 その過程で、でっかいものを発見。行間の広い読みやすいフォントっていうか名前そのまんまのフォント。MS ゴシック/MS Pゴシック/MS 明朝/MS P明朝の4種類がある。
 書体はまったく一緒だけど、フォント自体に行間が含ませてあるので、かなり読みやすくなる。ただのフォントだからシステムに余計なことしないし、メモ帳だろうがダイアログだろうが(フォントが指定できる部分なら)なんでもオッケーというありがたさ。普段から読みにくいなぁって感じてる人には絶対オススメだ!

 しかしこのJSフォント、ゴシックと明朝で17MBくらいあるのに、アーカイブはたった50KBしかない。これはどういった魔法なのだろう?
 アーカイブにはバッチと実行ファイルがついてきて、肝心のフォントが入ってない。バッチファイルを実行するとフォントが出てくるから、それで自動生成してるのだと思う。「フォント」の仕組みをよく知らない私としては、世の中すごい人がいるんだなぁ!と感心することしきりだ。
 感心ついでにMS UI Gothicも希望してみたりなんかするこの頃。

追記:
MS UI Gothicもありました。俺の早とちり。

疑問解決

2002.4.19.Fri

 12日の最後に書いた font(Color|Size)?fontColorfontSize にはヒットするが、font にだけヒットしないという正規表現の課題。

 秀丸のサポートフォーラムに出向いて根気よく探した結果、「2.秀丸エディタ情報交換」の記事番号11359(2002年2月18日)にて、同様の質問を見つけることができた。(←自分で質問しようという考えは頭にない)

 そうかそうか。JRE32.DLL の仕様か。グループの繰り返しはサポートされないのか。なにが間違っているのだろうと納得できなくて苛々していただけに、気分すっきりだ。
 ちなみにこの質問に回答している人も「ひろ」と名乗る人で、フォーラムにHiRoで登録してしまった私は、自問自答してるみたいなお気持ちでございました。

 対処方法として、font(|Color|Size) で可能とのこと。おぉできた!
 うれしー


浸透!正規表現

2002.4.20.Sat

 正規表現もとりあえず理解できてきたので、JavaScriptの強調定義ファイルを作り変え、さらにスタイルシートのも作り替え。らんらんらん♪

[.#]\w[0-9\-]*\w?[,{ ]

 …何度見ても正規表現というより電波表現にしか見えないのだけど。
 (あるいは宇宙文字列)
 ていうか何語デスカ?

 ちなみに解読すると「TAG.className1 TAG#idName2 とあった時に .className1 #idName2 にだけヒットする」ニャロメ。

 らんらんらん♪
 ズテッ

追記:2003.4.16
[.#][a-zA-Z][a-zA-Z0-9_-]*[:,{ ]の方が頭良い。

惰性と挑戦と

2002.4.21.Sun

 むぅ。実に久しぶりのパチョ奮闘記。「8日空いたら異常事態」とまで言っていたのに、3ヵ月ものブランク。そんなにショックだったのだろうか?
 まぁそれはいいとして、本題に入ろう。

追記:
2月〜4月の記事はほとんど全部が隔日日記からの移動によるものです。

 俺は、JavaScriptで2番めに引っかかる壁は「オブジェクトの概念」だと思っている。最初のうちは本を読んで真似するように書いていき、「尻にカッコがついてるのはメソッド、構文の最後についてるのはプロパティ」などと無茶苦茶な憶え方をする。(こういう憶え方をすると、肝心のオブジェクトはいつまで経っても理解できない)
 やがて「ドット演算子」というのがぼんやりわかってくると、次第に「ここをこうするとこうなる?」という想像ができるようになって、理解が進むような気がする。俺はそうだった。
 ちなみに最初に引っかかる壁は、「オブジェクトや変数、引数といった、難しい呪文による生理的な拒絶」。

 さて、そんなかわいらしい時期も過ぎてしまい、効率とか綺麗な書き方とか、だいぶ宗教的な方へ傾いてきた。
 ここにきて、つとに思うことあり。
 最近、スクリプトを組んでても、あまり楽しくない。前にもあったので、理由はわかってるんだけど。

 「新しいことを憶えてないからだ」

 知ってる範囲内で自分にできるものしか組まないのでは、マンネリになるのはあたり前。絵で言うなら、自分に書けるものしか描かないで物足りなさを感じるのと同じ。
 そろそろ次のステップに進む時期だ。だって、次のステップがまだあるから。

 というわけで次のステップ、オブジェクト指向の醍醐味「クラス」。普通はメソッドやプロパティはあらかじめ決められているものしか使えないけど、これを自分で作っちゃおうというものだ。ニュアンス的にはまぁスーパー関数みたいなものか。(違います)
 俺的にはこれが「中級者から上級者への壁」だと、勝手に思っている。

 しかし、これがまた難しい。いくつかの解説サイトを見てみても、インスタンスとかコンストラクタとか、聞いたことない言葉が目白押しだ。さすがにこのレベルにまでくると初心者向けではないので、ついていけない馬鹿は容赦なく切り落とされる。極みに達すると関数の入れ子とか見たこともない構文とかも出てきて、「プログラム」の真の姿(の端っこの方)を見たような気分になる。

 案の定さっぱりわからぬ俺だが、しかし、まったくわからぬわけではない。頑張れば理解できそうな予感はある。とりあえず読んだだけで憶えられるほど頭は良くないので、いつものように実践で憶えるとしよう。

 新しい知識を吸収するのは気持ちが良い。わくわくする。マズロー博士という人が立てた説に、欲求段階説という(一般市民でも知ってるくらい)有名なのがある。これによると、今の俺が感じてるのは「自己実現の欲求」であり、生物としてもっとも格の高い欲求とのことである。ふーん。

 というわけで、根の詰めすぎか体調を崩した私は、一日中寝こむブルーな日曜日を過ごしていたのであった。野毛山大道芸、行きたかったなぁ…。


 3.14に書いたBrowserAssistant。IEでOperaのようなマウスゼスチャーを可能にする超便利ソフト。(IEの他、ネスケ以外はほとんどサポート)
 これの導入以来、Operaの出番は確実に減ってしまった。とほほ。

 シェアウェアで700円というのが難だけど、起動時たまにダイアログが出る程度の制限だったので、そのうち…と(いつものように)ずるずる使っていた。一応、ユーザー登録する気は満々だったのだ。一応。

 そしたらバージョンアップしまして、Ver1.07になりました。バージョンアップの内容はただひとつ、フリーウェア化。充分な金額をシェアさせていただいたから、だとか。
 なんか申し訳なくなってきてしまった今日この頃。うあー