パチョ奮闘記
2001年11月

  <<< 2001.10 2001.12 >>>  

このページは siteCTS の旧版です。
URI確保のために保存してあるだけで、二度と更新されません。
JavaScript が有効の時は以下に移動先URIが表示されます。

なにがなんでも俺用の日付ジャンプ
11.1 オブジェクトツクール
11.2 ネスケ6の意外な素性
11.3 Get!Element by ID!
11.4 苦戦!サイトマップ vs ネスケ
11.5 消えない<BLINK>
11.7 W3CじゃないWWWC
11.8 召還!北国の電気娘!
11.10 秀丸 vs EmEditor
11.12 Get!HTML!
11.13 consel の変貌
11.14 親切万歳☆ その2
11.16 魅惑の起動再起動
11.17 Goooooooooooogle
11.18 さらばLinx
11.19 プレーンなChains
11.20 プレーンなScribble Garden
11.21 時間が止まった夜
11.22 myデータ救出大作戦
11.23 不思議ドライブ
11.24 謎めきときめきIE6
11.25 甘くないクッキー
11.26 本物virus
11.27 プレーンな"siteCTS"
11.28 さらにプレーンな俺紹介++
11.29 さらにプレーンなパチョ奮闘記、そして
一番下へ!





 先月の後半は丸々BakaExpに潰されたので、中断していた「オブジェクト」の勉強を再開しました。オブジェクト、っても色々ありますが、自分で生成してコントロールする方の「オブジェクト」。流行りの「表示内容を変化させる」、いわゆる見た目系のスクリプトには必須のスキル。
 新しいトップページにある「メッセージを表示していく」「フェードする」「テーブルがスクロールについてくる」とかは、その成果のひとつです。

 siteCTSにあるスクリプトは基本的に機能・実用系が中心なんですが、素人を騙すなら見た目系は避けて通れません。「フレームの付け外し」なんてマニアックなスクリプトより、字がタカタカ出てくる方がわかりやすい。
 しかし、そのほとんどはネスケに非対応。ネスケで「オブジェクト」をコントロールする方法がようわからんのです。最近になってようやくネスケ4のレイヤー機能がわかってきた程度で、ネスケ6はもうさっぱり。

 そして、この「オブジェクト」こそ見た目系スクリプトの中心ともなる要素なのであります。

 たとえば、
 <DIV id="test">レイアウトの中身</DIV>
 こうしてDIVタグに「test」というID(名前)をつけて、
 obj = document.all.test; (インプローラの場合)
 obj = document.layers["test"]; (ネスケ4の場合)
 他にも色々な方法があるけど、これで「obj」というオブジェクトを生成できます。
 要するに、DIVタグ = obj 、にするわけです。
 あとは
 obj.style.width = "100%"; (インプローラの場合)
 obj.width = "100%"; (ネスケ4の場合)
   →オブジェクト「obj」の幅を100%にする
 というようにメソッド(命令)やプロパティ(属性)をくっつけて、このDIVタグを自在にコントロールできるのであります。大概はDIVタグのCSS(スタイルシート)を変化させることでコントロールするんですけど。

 トップページにしても、「オブジェクトの中身にテキストを一文字ずつ加える」「オブジェクト全体の透明度を上げたり下げたりする」「画面がスクロールしてオブジェクトが置いていかれたら、画面左上に向かって少しずつ移動する」ってだけです。
 ネスケ4では<LAYER><DIV><SPAN>でしか使えないけど、インプローラだとIDさえつければなんでもオブジェクトにできちゃう。(そこが神がかり的に強いのだ)

 しかし、これらはブラウザによって動作や書式が激しく違うせいか、普通の本にはまず載ってません。俺の手持ちの本には存在さえも書いてない。知りたいなら、もっと能動的な方法を使わないとゲットできないんです。
 document.all?なにそれ?document.layers?なにそれ?
 俺はとことん実践派なので、そういうのにぶつかってから初めて自分であれこれ試して、本に載ってない魔法はそうやってゲットしてきたわけですが。

 問題はネスケの6でした。
 こいつ、名前こそ同じでも、ネスケ4とはまったく違います。「ネスケ4で動くんだから大丈夫だろう」とか思ってるとひどい目に遭わされます。なにせ<LAYER>タグさえバッサリ切っちゃったんだから。

 JavaScriptを使ってるWebサイトがあると、知らない命令があるか見たりするんですが、こういう状況があるせいか、ネスケ6でCSSをコントロールしているスクリプトにまったく出会えません。だから俺はこれを知らないわけで、ゆえに見た目系スクリプトのすべてがネスケ6非対応になってます。

 トップページの「タカタカメッセージ」だって、表示する文字を作るとこまではネスケ6でも動くのに、それを画面に表示させる方法がわからん。
 なにか、なにかが足りないんだ。

 明日に続きます。


 そこで、俺もようやく重い腰を上げて「もっと能動的な方法」を採るに至りました。
 目指すはMSDN Library
 目指すはNetscape Client-side JavaScript Reference
 目指すはW3C DOM Level 1 Specification
 検索って便利ですねぇ。(それさえやらなかったことの証明)
 他にも色々まわったものの、そこにある情報をひとつひとつ処理してるようじゃこの世界では生きていけんので、適当にピックアップしていきます。面倒くさいですが、それでも知りたい情報がはっきりしてる分、楽な方です。

 興味深かったのは、DOM(ジオン軍の量産型モビルスーツ。HTML、CSS、JavaScriptとかをひっくるめた総合的な規格っぽいイメージで捉えれば可)の仕様書にもっとも忠実なのはネスケ6なのだそうで。W3Cが言うところの「スタンダード」を外れる機能は、基本的に実装してないそうで。<LAYER>タグを外したのは、そういうわけなのだそうで。

 「4.xで動くのに6.xで動かない」というワケのわからない仕様、その理由はこの辺にありそうですね。そういうことなら俺も少しは理解を示しましょう。

 でも「スタンダード」から外れてるはずの "innerHTML" プロパティ(オブジェクトの中のHTMLを変更したりする命令)に対応してるあたり、インプローラに引きずられてる部分もあったり。いや、これは大変に使える命令なので対応しててほしいんですが。

 ブラウザごとの動作の違いをなくそうと努めるネスケ6、独自拡張をしてでも性能の高さを求めるインプローラ(ちょっと語弊あり)、果たして選ぶべきはどっちなんでしょうかね。
 まぁネスケなんて<BLINK>に対応してりゃいいんです。

 明日に続きます。


 さて。
 俺が知りたい情報は「ネスケ6でオブジェクトの中のHTMLを書き換える方法」です。ネスケ6も "innerHTML" に対応してることがわかったので、ゴールは目前です。
 innerHTMLプロパティの書式は
 obj.innerHTML = "書き換えたいHTML";
 たったこれだけですから、
 obj = document.all.test; (インプローラの場合)
 obj = document.layers["test"]; (ネスケ4の場合)
 という「オブジェクトの作り方」に問題があるんです。
 ネスケ6で <DIV id="test"> = obj とするには、一体どうすればいいんでしょう。

 さらに調べを進めていきますと、ありました。気になるキーワードが。
 "getElementById( )"
 俺の知らないメソッド(命令)です。もう見るからにそれっぽいです。でもまわりくどい説明ばっかで具体的なことがちっとも書いてないので、自分で試してみます。
 <DIV id="test"></DIV>
 <SCRIPT language="JavaScript">
 if (document.getElementById) { (もし「document.getElementById」を知ってたら)
  obj = document.getElementById("test"); ("test"を「obj」というオブジェクトにして)
  alert(obj); (ちゃんと作れたか結果を表示しなさい)
 } else { (知らなかったら)
  alert("getElementById?なにそれ?"); (あやまりなさい)
 }
 </SCRIPT>

 ネスケ4では

 else の方に流れてるので、対応してないことがわかります。
 インプローラでは

 と返るので、対応してることがわかります。つまり、
 obj = getElementById("test");
 obj = document.all.test;
 の、どちらでもオブジェクトを作れるわけですね。
 そして気になるネスケ6の反応は。

 えぇ、やりましたとも。バッチリ作ってくれましたよ。
 つまり、
 <DIV id="test"></DIV>
 <SCRIPT language="JavaScript">
  obj = document.getElementById("test");
  obj.innerHTML = "書き換えたいHTML";
 </SCRIPT>
 がネスケ6での書式です。しかもIEと両対応。

 
 これで今までネスケ6で動かなかったスクリプトも、大部分は対応できるでしょう。実は必要な命令がまだ全部揃ってないので、完全対応とはいかないんだけど……。

 あ、そういえばそのネスケ、Ver6.2が出ましたね。当然速攻で入れましたとも。余計なオプションをカットしても16MB。ぐはっ。
 でも調べてる間は回線が遊んでたので、そんな苦痛ではなかったです。
 実はインプローラの6もすでにダウンロードしてあるのですが、こいつはネスケと違って気軽に入れていい代物じゃないので、まだ機をうかがってるとこ。入れると自動的に5.5のサポートが終了しちゃう。


 そんなこんなの紆余曲折を経て、siteCTSにあるスクリプトのいくつかがネスケ6に対応しました。もっともわかりやすく現れてるのはChainsで、メッセージの遠隔表示がちゃんと出てきます。

 他、サイトマップがネスケで動かないバグもなんとか修正できました。gotoっていう、まぁ「使っちゃいけない単語」を変数に使用してたのが主な原因でした。わかってしまえば「そんな簡単なことで!」ですが、なにせインプローラでは問題なく動くもんだから、そこに辿りつくまでが大変。
 なんていうか、インプローラはスクリプトエラーが起きると、こんな感じで「どこの何行めでこんなエラーが起きたよ」と教えてくれるんです。だからインプローラでのデバッグは非常に簡単。
 対してネスケはなにも言ってくれんので、エラーが起きてんのかどうかさえわかりません。まぁ動かなきゃエラーなんですけど、俺はイージーミス(特にカッコの閉じ忘れ)を乱発するんで、原因が記述のミスによるものなのか、それとも非対応によるものなのか、なんのヒントもないわけです。

 つまり「インプローラで動けば記述はOK、それでも動かなかったらネスケ非対応の命令」って判別できるわけだけど、非対応命令は実行させないよう、ちゃんと組んでるはずなのに。
 ……胃が痛くなるよね。

 使っちゃいけない単語(予約語という)の手っとり早いリストとか、どっかに転がってないかなぁ。


 11.2にも書いたけど、W3Cスタンダードに一番忠実なのはネスケ6だそうです。だからスタンダードでないネスケ4の<LAYER>タグは、なかったことにされちゃいました。結局なんだったんでしょうね。<LAYER>タグ。
 それはJavaScriptでも同じで、ネスケ4の新機能!ネスケ6で廃止!ってのが結構あります。

 あともうひとつ、代表的な "ネスケ専用" がありますね。
 "インプローラ専用" である<MARQUEE>の腹違い(パパはW3C)の兄弟、その名は<BLINK>。そうそうそう、あの文字がちかちか点滅するやつですよ。好きなんだよね、これ。なんか「いかにも昔のエセDHTML!」って感じがするじゃないですか。
 <MARQUEE>と違って無視されても影響がないんで、siteCTSにはところどころ<BLINK>が混じってます。更新情報にある だいぶ とか。

 <BLINK>は、もちろんネスケ6でも現役です。<LAYER>と同じくらいW3Cスタンダード外ですが、これがあってこそのネスケなのですから、外すわけにはまいりません。
 ネスケなんて<BLINK>にさえ対応してりゃいいんです。
 11.2の最後に、そう書きました。

 ところで、つい先日にバージョンアップしたばかりのネスケ6.2では、また挙動が変わってます。本当にwebmaster泣かせのNetscape。まだしばらくはイジメられそうですね。
 とはいえ、俺をひどく嘆かせた透過PNGのバグも修正され、フォーム関連の表示もインプローラと同じになりました。おかげでChainsの表示崩れがパーフェクトに改善されて私はHappy。

 ……あれ、更新情報んとこの だいぶ 、なんで点滅してないんだろ…?

 ヤバいです。ネスケは本気です。Ver6.2にしてついに<BLINK>まで切り捨てやがりました。「ネスケをWWWスタンダードにしよう」という動きは噂でも推測でもなかったんです。(そりゃそうか)
 こうして、文字が消える<BLINK>は、その存在自体までも消えてしまったのでした。

 これはインプローラもうかうかしてらんないですね。独自拡張一辺倒だった冷戦の流れは、ネスケ6から変わることになるんでしょうか。
 僕は、それを「<MARQUEE>がいつまで残ってるか」で判断しようと思います。


 siteCTSも含めて、週に一度も更新されないWebページは珍しくありません。俺の場合は単純にアップするのを面倒くさがってる場合がほとんどですが、こういうとこをマメにチェックするのは疲れるものです。誰でも経験があるでしょう。
 そこで登場するのがWWWC。W3Cじゃありません。これはお気に入りのWebページが更新されているか自動チェックしてくれる、ありがた〜いソフトです。

 チェック方法はファイルの日付やサイズなど、いくつかありますが、チェックするページ毎に登録しないといけないので、だいぶ面倒くさいものがあります。
 でも、Webサイト側が「METAチェック」というものに対応してると、手間なしで確実なチェックが可能になります。このソフトは基本的に、これに対応してるWebサイトのためにあるようなものです。

 たとえば、俺がindex.htmlのソースヘッダに
 <META name="WWWC" content="パチョ奮闘記をアップデート">
 と書き、ユーザー側がindex.htmlをチェックするページに指定すれば、WWWCがこのメッセージを持ってきてくれるんです。
 当然ながら、webmaster(俺)がメッセージをその都度書き換えないと意味ないけどね!

 俺は通うほどお気に入りのWebサイトが数えるほどしかないので、特別このソフトを必要としてないんですが、siteCTSをこのMETAチェックに対応させることにしました。お絵描き系のWebサイトでは「ヘッドラインセンサ」の方が有名ですけどね。
 WWWCも多くのWebサイトが対応してますが、お絵描き系での認知度はまだまだ低いので、微力ながら普及に協力できれば…と思う次第です。


 僕は余裕ででんこちゃん派…なのは放っといて、東北電力のエココさんが我が雪子ちゃんにもやってまいりました。まぁわかる人にはおわかりですが、Iriaというダウンロードツールを入れたわけです。

 きっかけは、先日の友人宅での出来事。BakaExpのアルファテストのついで、彼のADSLを使ってMSDNライブラリで調べものをしてたんです。
 「んー、これ全部ローカルに落とせたらなぁ…」
 MSDNライブラリは非常に重用できる情報の塊で、ダイヤルアッパー54kbpsとしては、ローカルに保存して24時間いつでも閲覧できるようにしたくなるのが普通でしょう。
 今までもいくつかのリファレンスを1ページ1ページ加工してローカル化してましたが、しかしこのライブラリは膨大すぎる。事実上不可能です。残念…

 そしたら彼が得意気にIriaを起動、ADSLパワーを活かしてあっという間にローカル化してしまいました。ものの10分ほどのお話でした。インターネットで情報を収集する習慣のない俺は、文字通り「田舎者」だったのです。うわっ、ディレクトリ構造まで再現されてる!びっくりです。
 1.44MB以上のデータは原則として却下する俺にはレジュームや分割なんぞ無用なんですが、「リンクを追って全部ダウンロード」なんて機能があるなら話は別です。

 というわけで、雪子ちゃんにもエココちゃんです。はい。
 早速、こないだ見つけたHTMLリファレンスサイトを丸ごとローカル化してみました。雪子ちゃんはダイヤルアッパーなので「あっという間」とはいきませんが、それでも、なんの苦労もなく再現されてしまいました。怖いツールですね。
 もっとも、個人のWebサイトをローカル化するような見当違いの暇人ではないですけど。

 これからは有用な情報を労力なく保存できるかと思うと、なんか肩の荷が下りた気分になる俺なのでした。うひひ。


 パチョ奮闘記が始まったのって、今年の2.13なんです。で、秀丸を入れたのはその翌日。他にも選択肢はありましたが、当時はまだ「Me対応」と書いてないと安心できないカワユイ幼な子だったので、(先生のおすすめもあって)秀丸が勝ったんです。
 ちなみに秀丸を知らない人は珍しいと思いますが、ひらたく言うと「プログラムを書くのに特化した、とってもすごいメモ帳」です。

 最初の方はまだビルダーも使ってたけど、パ奮の歴史は秀丸とともにあります。もちろん、それはパ奮だけじゃなくて、siteCTSのすべてが秀丸ひとつのみで作られてます。
 おっと、「のみ」じゃないですね。直接の関係はないけど、猫ちゃんの陰なるバックアップがなければ、さすがの秀丸もここまで快適にならないことを忘れちゃいけません。

 すなわちsiteCTS=秀丸みたいなもんであり、どんなHTMLエディタもホームページ作成ソフトも、足元にさえ及びませんでした。
 しかし、おそらく唯一の対抗馬であろう、それがEmEditor。これと秀丸でテキストエディタの双璧…と言ってもよさそうな "定番" です。(まぁ他にも大物がいるんですけど)
 EmEditorは、主な特徴が秀丸と酷似してて、いつも比べられてます。どちらも熟成に達した超高機能を誇るだけに、誰も勝敗を決められません。俺も決められません。「どっちが気持ちいいか」で綺麗に半々になるんじゃないでしょうか。

 実はこの半月ほど、EmEditorを試用してたんです。浮気は良くないですね。もしかしたらsiteCTS=EmEditorになるかもしれない、…いつもとは違う、緊張に満ちた試用でした。
 それもそうでしょう、毎日使うパソコン、毎日いじるソース、毎日使うテキストエディタ、それは雪子ちゃんの中で頂点に君臨する存在なのです。「常駐三種の神器」最高峰である猫ちゃんでさえもかないません。(猫ちゃんだけじゃ意味ないものね)

 果たして、俺のフィーリングはどちらに合うんでしょうか。その結果を比較してみました。もちろん独断と偏見で。
 ちなみにHTML・CSS・JavaScriptの記述のみを評価対象としてます。
 勝った方は色付きのごほうび。差が大きい場合はセル全体が色付き。

秀丸   EmEditor
△シフトJISとunicodeのみ(自分のファイルを開く分には関係ないけど) 文字コード ◎ほぼすべてに対応
×あまり融通がきかない
×HTMLの優先順位が高すぎ
×JavaScriptの構文は軒並みファイル名と勘違いされる
強調表示 ◎かなり細かく設定できる
○HTMLファイルにあるJavaScriptやCSSもちゃんと認識
◎しかもそれぞれの設定を使ってくれる
◎装備
→うそインデントとは?
うそインデント ×なし
○機能は似たようなもんだけど使い勝手が違う
○「検索文字列の取得」コマンドでいちいちダイアログを出さなくていい
検索 △操作性があまり良くない
○検索した文字列を強調表示してくれる
◎「範囲選択中のメニュー」も個別でカスタマイズできる
◎ボタンを「押した時」と「離した時」にそれぞれ判定があるので、ボタン1回でメニューを選べる
右クリック ×ショートカットキーも表示されるので無駄に幅が広くなる
○選べるメニュー自体は秀丸より多い
×カスタマイズ不可 メニューバー ◎自由にカスタマイズ可能
○浮かせられるのでウィンドウ幅が狭くても大丈夫
○選べるメニューも多く、同じボタンを複数入れられる(閉じるボタンが左右に欲しい奴)
○もちろんマクロボタンも可能
ツールバー ○浮かせられないけど増やせる
×肝心のメニューが少ない(基本的にプラグインの実行ボタン用なんだろう)
×カスタマイズ方法がやりにくい
×割り当てられるキーの種類が少ない(俺の場合は猫ちゃんで解消可能)
○メニュー自体は必要にして充分
キーボード ○わかりやすいシステム
◎ほとんどのキーを割り当てに使える
○秀丸以上のメニュー数
△拡張子ごとに専用のキー設定を使えるけど、統一したい時は面倒くさい
×設定したキーをメニューに全部表示するので、とんでもなく幅広になる
○標準装備 追加コピー
追加切り抜き
○プラグインで実現可能
○あるけど細かい設定は不可 自動バックアップ ◎「同じファイル名があったら名前を変える」「自動保存はバックアップとは別のフォルダに」「ゴミ箱にバックアップ」など充実
○秀丸のホームページに多数用意
◎「タグを範囲選択」「前のタグを認識して対応した終タグを挿入」「カーソル位置のタグとそれに対応するタグをセットで削除」など、HTMLエディタとして使うのに重宝するマクロがいっぱい
○スクリプトが比較的簡単なので自分で作ったりいじったりできる
マクロ
プラグイン
△それなりにあるけど欲しいものが少ない
○C言語製なので高度なことも高速で処理できる
○標準装備
◎Ctrlを押しながらだと関連付けを無視して秀丸で開けるので、HTMLも直でアクセス可能
×siteCTSのソースヘッダにパスが書いてあるのは、これ用だったりする
文書中の
文字列から
ファイルを開く
○プラグインで可能だけど関連付けに逆らえない
×自動折り返しがない
△折り返しマクロの使用でとりあえず解消可能
一行の折り返し ○あり/なし/指定字数 を自由に選べる
×できない(俺の場合は猫ちゃんで解消可能) ウィンドウの
最前面設定
◎できる
◎常駐秀丸でクリップボード履歴を取ってくれる(俺はクリップボードツールを入れてないので) タスクトレイ ○トレイのアイコンメニューも自由にカスタマイズできる(マウスを使わないので俺にはメリットがない)
◎ただでさえメモ帳並みなのに、さらに高速化できる 起動の速さ ○初回起動時はわずかにもたつくけど充分に速い
◎「前のカーソル位置に戻る」「最後に編集した場所へ」「上の/下の編集位置へ」など充実
○さらに、個別で20ヵ所までマーキング(別ファイルへのジャンプも可能)
カーソルの
マークジャンプ
△プラグインである程度可能だけど使い勝手は悪い
○装備
※ファイルを閉じる時にカーソル位置を憶えておき、次に開いた時にそこへジャンプする機能
カーソル位置
復元
○プラグインで可能
○できる(マクロでさらに拡張可能)
※中断する時などに開いてるファイルやウィンドウの大きさなどを記録しておき、そのまま再現する機能
デスクトップ保存 ×そんな機能はない
4000えん
◎貧乏学生やプログラマにはフリー制度あり
おねだん 3000えん

 …と、まぁこんな感じで「俺には秀丸の方がマッチしてるなぁ」という結果になりました。カスタマイズ面でちょっと弱いけど、それをカバーする便利機能の多さが勝因でしょうか。
 決め手は「うそインデント」「的を得たマクロの多さ」「文書中の文字列からファイルを開く」「カーソルのマークジャンプ」でした。
 なお、マクロとプラグインを全部探し当てるのはghostと同じくらい難しいんで、それぞれのWebページに用意されているもののみで判断してます。

 ※じゅうよう
 EmEditorはまだ半月しか試用してないので、9ヵ月使いこんでる秀丸が相手では分が悪いです。引き続き調査を続行し、ユーザー登録をするようなら「ゆきこのおへや」にて再度比較してみようと思います。


 入れたのは一週間ほど前ですが、GetHTMLWというものを入れました。これはプロキシサーバーの一種で、ブラウザと電話線の真ん中に居座って色々するものです。
 たとえば、インプローラでうろうろしてるだけで、キャッシュを次々保存できます。キャッシュといっても「普通のファイル」なので、インプローラのキャッシュと違って勝手に消えたりしないし、ネスケで使うこともできます。
 当然ながら、放っとくととんでもないことになります。キャッシュするレベルを調整したり、時々の掃除が必要です。

 あるいはURLを入れると、リンクを追ってWebサイトを丸ごとダウンロードできたりします。「ここは後でじっくりまわりたいな」って時に使うとよいでしょう。
 ただしJavaScriptによるリンクは追えないので、siteCTSみたいなガチガチサイトには不向きです。試しにやってみたところ、使えた代物じゃありませんでした。

 また、基本的にネスケ用に作られているため、インプローラでは制限があります。まず、IE3とIE4では使えません。IE5なら使えますが、設定がかなり面倒くさくて難しいです。92KBにも及ぶヘルプ代わりのテキストを熟読しながら設定しないといけないです。
 それならまだしも、ダイヤルアップの設定を「ダイヤルしない」にしないといけないので、インプローラ側のキャッシュを一切使えなくなります。

 こんだけ書いて入れたくなる人は珍しいですが、「キャッシュをネスケと共用できる」「Webサイトをお手軽にローカル化できる」「うろつくだけで次々ローカル化できる」というのは捨てがたい魅力でしょう。頑張ってみてはどうでしょう。

 ちなみに、俺の場合は最初うまく動いてたのですが、突然インプローラが起動しなくなりました。(正確に言うと、特定のページに入るとGDI.exeのエラーで落ちる)
 使うのやめたら直ったけど、このままあきらめるには惜しい機能を持ってるので、勉強してから出直すことにします。


 siteCTSには、ブラウザ種/解像度認識装置「brwMarking」・ 中央リンク制御装置「conlnk」・強制Verdana設定装置「setBASEFONT」・そして全自動リンクボックス生成装置 consel という4種の共通コアスクリプトがあります。
 そのひとつである consel は、 を担ってます。

 で、8.4に誕生したこいつを、口約通り(?)作り直しました。さすが、JavaScriptを始めたばかりの実力不足が存分に反映されていて、構造の頭悪さがすごかったんです。動作には支障なかったんでそのままだったんですけど。
 というわけで、リニューアル前とリニューアル後のソースを掲載。なぜ?と問うなれば、「それがパ奮の存在意義だから」と答えましょう。
 (恥ずかしいので)解析しなくていいです。どれだけ短縮できたか、だけ比べてもらえれば。

▼古い方 2931バイト/72行
function conselbox(dirLv_conselbox,callSide_conselbox) {
 conselbox_dirLv = dirLv_conselbox;
 callSide = callSide_conselbox;
 conselnum = 0;
 conselResetFlag = false;
 document.write('<SELECT id="selbox" name="conselbox" onChange="consel(conselbox_dirLv)">');
 document.write('<OPTION>他のページへ行く?');
 document.write('<OPTION>トップページにもどる');
 document.write('<OPTION>"siteCTS"');
 document.write('<OPTION>Scrawl Notes');
 document.write('<OPTION>パチョ奮闘記');
 document.write('<OPTION>ゆきこのおへや');
 document.write('<OPTION>俺紹介++');
 document.write('<OPTION>Scribble Garden');
 document.write('<OPTION>けいじばん');
 document.write('<OPTION>Chains');
 document.write('<OPTION>やっぱやめる');
 document.write('</SELECT>');
}

function consel(dirLv) {
 conselnum = document.conselform.conselbox.selectedIndex;
 GTStoNCFmsg = "現在のページはIE5.5専用版です。\n通常版へ移動しますか?";
 NCFtoGTSmsg = "現在のページは通常版です。\nIE5.5専用版へ移動しますか?";
 if (conselnum == 0 && conselResetFlag) {
  document.conselform.conselbox.options[optselnum].text = resetValue;
 } else if (conselnum == 1) {
  conlnk(dirLv,"top",0);
 } else if (conselnum == 2) {
  if (callSide != "sui") conlnk(dirLv,"sui",0);
  else notconsel();
 } else if (conselnum == 3) {
  if (callSide != "snd") conlnk(dirLv,"snd",0);
  else notconsel();
 } else if (conselnum == 4) {
  if (callSide != "snp") conlnk(dirLv,"snp",0);
  else notconsel();
 } else if (conselnum == 5) {
  if (callSide == "ospGTS") {
  res = confirm(GTStoNCFmsg);
   if (res) { parent.location = "mfaFrm.htm"; return;}
   else { conselReset("ysr"); return;}
  } else if (GTS && callSide == "ospNCF") {
   res = confirm(NCFtoGTSmsg);
   if (res) { parent.location = "mfaFrm.html"; return;}
   else { conselReset("ysr"); return;}
  } else conlnk(dirLv,"ysr",0);
 } else if (conselnum == 6) {
  if (callSide != "prf") conlnk(dirLv,"prf",0);
  else notconsel();
 } else if (conselnum == 7) {
  if (callSide != "scg") conlnk(dirLv,"scg",0);
  else notconsel();
 } else if (conselnum == 8) {
  if (callSide != "bbs") conlnk(dirLv,"bbs",0);
  else notconsel();
 } else if (conselnum == 9) {
  if (callSide != "cha") conlnk(dirLv,"cha",0);
  else notconsel();
 } else document.conselform.conselbox.options[conselnum].text = "[ フォーカスに注意 ]";
}

function notconsel() {
 document.conselform.conselbox.options[conselnum].text = "[ このページです ]";
}

function conselReset(resetArgument) {
 document.conselform.conselbox.options[0].text = "[一度ここを選択してね]";
 document.conselform.conselbox.options[conselnum].text = "[移動をキャンセル]";
 conselResetFlag = true;
 if (resetArgument == "ysr") { optselnum = 5; resetValue = "ゆきこのおへや";}
}

▼新しい方 1175バイト/33行
function conselbox(dirLv1,callSide1) {
 dirLv2 = dirLv1;
 callSide2 = callSide1;
 document.write(
  "<SELECT id='selbox' name='conselbox' onChange='consel(dirLv2,callSide2,this)'>"+
  "<OPTION>他のページへ行く?"+
  "<OPTION value='top'>トップページにもどる"+
  "<OPTION value='psc'>プレーン版のトップへ"+
  "<OPTION value='sui'>"siteCTS""+
  "<OPTION value='snd'>Scrawl Notes"+
  "<OPTION value='snp'>パチョ奮闘記"+
  "<OPTION value='ysr'>仮設ゆきこのおへや"+
  "<OPTION value='prf'>俺紹介++"+
  "<OPTION value='scg'>Scribble Garden"+
  "<OPTION value='bbs'>けいじばん"+
  "<OPTION value='cha'>Chains"+
  "<OPTION>やっぱやめる"+
  "</SELECT>"
 );
}

function consel(dirLv,callSide,conselBoxThis) {
 conselNum = 0;
 conselVal = "";
 conselNum = conselBoxThis.selectedIndex;
 conselVal = conselBoxThis.options[conselNum].value;
 if (!conselNum || conselNum+1 == conselBoxThis.length)
  conselBoxThis.options[conselNum].text = "[ フォーカスに注意 ]";
 else if (conselVal == callSide)
  conselBoxThis.options[conselNum].text = "[ このページです ]";
 else
  conlnk(dirLv,conselVal,0);
}

 …と、動作は同じで1.8KBも小さくなったんだから、これは大成功でありましょう。
 なお、実際のリンク動作を受けもつ conlnk もちまちまリニューアルされていて、登場当初の半分くらいまで小さくなってます。


 パ奮リンク集のリンクチェックのついで、3.27に診断してもらったWebサイトの親切度診断を再度受けました。JavaScriptどころかNCF版さえ登場してない「IE5.5専用」の当時から、親切度はどれくらい上がったでしょう。

20点満点 3.27現在 今日現在
基礎度 17 20
配慮度 17 20
親切度 20 20
快適度 16 20
運営姿勢 18 20
迷惑度 -5 -2

 おぉ素晴らしい。当時と同じ「工事中のコンテンツがある」でマイナスがついたけど、ゆきこのおへやが正式登場すれば満点になっちゃうじゃないですか。(一部は修正条件を満たしてるので得点と数えております)
 詳細結果。
 でも、こんなのより遥かに信用できる「俺診断」では、とてもじゃないけどこのような高得点は与えられんよ。ほんとに。どのページも総じて重い。でマイナス100点。

 ついでに5.28に受けたPC汚染度チェックも再度やってみました。こちらも62%から75.95%に上がってました。


 この頃、雪子ちゃんの調子がすこぶる悪いんです。もとからあまり良くないけど。
 特に9月にシステムを入れ直してからというもの、「Windowsが終了する時にブルースクリーンを出して落ちる」という症状も再発し、モデムは相変わらずCPUを暴走させてくれます。

 さらに、どういうわけかWindowsの起動時に「3回に1回ほど、スタートアップのどれかがランダムで落ちる」などという現象まで起きるようになってきました。ひどい時にはいきなりエクスプローラが落ちて起動再起動なんてことさえ起こります。

 まぁ俺チューンが俺チューンなので、多少の調子の悪さは仕方ないですが、これは明らかに異常。困ったものです。
 もちろん原因などわかるけもなく、早くもシステムの再セットアップを考えてます。ある程度の目星はついてんですが、確たる証拠が見つからない。原因が「相性問題」にあったりすると、もう俺にはお手上げです。

 JavaScriptばっかやってないで、少しはシステムのことも勉強しないといけないですね。


 ゴーグルじゃありません。それはヤッホーと同じ間違いです。
 インターネットの醍醐味と言えば「検索」ですが、俺はビルドイン検索(左側に出る検索ウィンドウ)を使ってます。もっぱらMSNサーチです。

 「検索」に革命をもたらしたGoogleは、実力は認めながらもほとんど使ってないです。「検索サイトに入ってから検索」というスタイルは、俺には面倒くさいんです。検索候補をひとつひとつ開いていく時が特に面倒くさい。
 そりゃビルドイン検索バーにGoogleが入ってくれりゃ大喜びで使いますが、MSNとinfoseekしかないのでは選択の余地がない。それに、俺が探すようなとこは大体MSNで間に合うってのもあります。

 で、なんとなしにGoogleのサイト内を見てまわってたら、「Googleツールバー」なるものを見つけました。インプローラのアドインで、Googleの検索ツールバーをインストールするものらしいです。なかなか興味深いではないですか。となれば実に弱いもので、怖いもの知らずのインストール。

 →ツールバーの外観+a

 これは便利そうですね。普段は消しておけるというのがかなりポイント高いです。消せなければ即アンインストだったんですけどね。
 設定も細かくできるし、ページ内検索もインプローラ標準のより使いやすい。なにより、Web検索はあのGoogleなわけですから、利用価値はかなり高いかと思われます。
 これを機に、俺もGoogleへ乗り換えるかもしれないですな。


 siteCTSには、
 <TABLE><TR>
  <TD>
   <DIV align="center">

    テキスト
   </DIV>
  </TD>
 </TR></TABLE>
 という一見無駄な記述があります。緑の文字のとこ、なんで<TD align="center">にしないんでしょうかね。表示結果は同じなんだから、そっちの方がソースも簡潔になって良いことづくめなのに。

 実はこれ、「テキストブラウザ」であるLinxに配慮したものです。
 LinxはMS-DOSプロンプトで動くので、画像どころか文字の色も満足に表示できません。テーブルのレンダリングさえできず、フレームなんて夢のまた夢です。そんな化石的ブラウザが、しかも現役で、おまけにユーザーは結構多いんです。参考:→5月9日の画面写真
 Linxを使うメリットは「動作の軽さ」くらいしかありませんが、情報収集を目的とするならテキスト表示だけで充分ですし、インプローラやネスケがこんなになってる昨今、その低機能がマニア心をくすぐる…ってのも確かにあるはずです。

 Linxへの対応で一番厄介なのが、テーブルを(基本的に)認識しないこと。基本的に、というのは、<TR>タグで改行だけするんです。
 <TH>や<TD align="center">は認識しませんから、センタリングしたい時は<TD><DIV align="center">…つまり先述の「一見無駄な記述」をしなきゃいけないわけです。

 で、今まではLinxでも表示の確認をしていたのですが、ここにきてついにサポート終了となりました。理由は、サポートするには労力と効果のバランスがあまりに悪いからです。今までも、そしてこれから先も、Linxで訪れる人はいないでしょうから。(Linxを好んで使うような人は、JavaScriptもフレームも大嫌いです)

 ついでに、手持ちのワープロにチンカスブラウザが付属しておりまして、なんとsiteCTSはこれにも対応してました。Linxと同時に、これも過去形になりました。
 理由は、こんなゴミブラウザは早急に抹殺するべきだからです。(笑)

 これでsiteCTSが正式に対応してるブラウザは、IE5.5とネスケ4.78、ネスケ6.2の3つだけになっちゃいました。あまり好ましくないですね。でもこれだけJavaScriptがガチガチになると、やっぱりブラウザを選んでしまうのが実情です。
 せめて確認環境があれば、エラーが起きない程度の対応はするんですけど……。

 ともあれ、Linxの抹殺でかなりの労力が浮くのは事実です。これからは、その分を有効に反映させられるように頑張るとしましょう。
 さらば、素敵なブラウザ、Linx。


 パ奮と俺紹介++以来、とんと音沙汰なかった「ノンフレーム対応版」ですが、やっとChainsも対応しました。フレームの有無やブラウザの種類、画面のサイズなどの条件によってスクリプト動作を変えて、VGA(640×480)のフレームなしでもメッセージが完全に表示されます。

 また、階層表示の3番め(コンテンツ名)を押すと、フレームを付けたり外したりできるようにしました。そういえば、昔(といっても4ヵ月前)は、ここを押すとIE5.5専用版NCF版を行き来できたりしたよなぁ…なんて懐かしみます。
 このフレーム切り替え機能は、ゆくゆくは全コンテンツに採用予定。

 ただ、スクリプトサイズがだいぶ増えてしまったために、ついにChainsも外部JS制になりました。単独ファイルで頑張ってた唯一のコンテンツだったのに……。(スクリプトが多いと、HTML埋めこみではメンテナンスが面倒くさいんです)


 siteCTSのコアスクリプトのひとつ、中央リンク制御装置 conlnk がノンフレームに対応しました。ページを飛ばす時にフレームの有無を調べて、ちゃんと振り分けてくれます。引数を渡せば、フレーム付きからノンフレームへ飛ぶことも可能です。

 それに応じて、Scribble Gardenがフレーム化されました。見ての通りフレームが必要なレイアウトじゃないんですが、 conlnk が勘違いしてしまうんですな。
 ともあれ、これで全コンテンツがフレーム化されたことになります。
 Scribble Gardenは更新が止まって久しいですが、もともと買いたてのスキャナを使いたいばかりにできた「おまけページ」なので、あんな豪華スクリプトがある方が不思議なんです。
 まだ当分は現状維持でしょうが、そのうち増え始めますので、あと1年くらい待ってください。


 雪子ちゃんをつけっぱなしにして寝てしまった夜。ふと目覚めて掲示板のレスを書き始めようとすると、HDからショリショリという異音。
 でも音はすぐに止まって、パソコンの動作に異常はない。気のせいか?気のせいだ。そうに決まっている。だって寝ぼけまなこだし。

 まぁ用心しておくに越したことはない。レスを書き上げてからリブートして、データをCD-RWへバックアップしておこう。
 ……それが最後の作業となりました。

 もう寝ぼけちゃいられません。電源ボタンを押してもショリショリと音がするだけで、Windowsが起動しないんです。夢オチであることを何度願ったでしょう。
 とりあえず起動ディスクを突っこんでMS-DOSを立ち上げます。使い方? 知るわけないでしょう。コマンドなんてformatとfdiskしか知りませんよ。
 cdupとかcdなんとかと入れてデータの無事を確認しようとはするものの、「コマンドが違います」と返されるのみ。てやんでい!こちとらマニュアルも予備知識もない素人なんじゃい!んがー!

 で、それでも悪戦苦闘してるうちに、スキャンディスクの起動に成功(笑)しました。
 Cドライブの特定のとこでDOSごと止まるあたり、どうもディスク側に問題がありそうです。拡張領域であるD〜Gドライブは引っかかりませんでした。

 ヘッドが無事なら、他のドライブが生き残ってる確率は高いです。期待できます。期待させてください。面倒くさがってCD-RWへのバックアップを2ヵ月もサボってたんです。
 復旧できなかったら、正式版サイトマップもノンフレーム対応版Chainsも新型Scrawl Notes&パチョ奮闘記も塗りかけのCGも、全部全部パァです。
 そんなことになったら泣いちゃうよ。

 今から思えば、16日に漏らしてたことは、この予兆だったのかもしれません。
 ハードディスクという物理的な原因と、なんの知識もない俺。ちょっと深刻なトラブルが起こると、すぐ手も足も出なくなる素人…そんな自分。
 今できることは、スキャンディスク、たったそれだけでした。

 明日に続きます。


 夜が明けるのを待ってから、雪子ちゃんの実家であるGatewayに助けを求めました。9.1に頼るつもりなんざ毛頭ねぇとか言っちゃいましたが、目的は新しいHDをゲットすることなので、まぁ許してください。

 …さすが、サポートに定評のあるGatewayです。5分程度のやりとりで手っとり早く新HDゲットです。あぁん大好きv
 願わくば、30分待ってやっと電話に出るようなセコい小遣い稼ぎはやめてほしいものですけどね。(ナビダイヤルなので2分10円ほどかかります)

 続いて、HDを外して先生んちへ行きます。システムがブート不可能である以上、他のパソコンにスレーブで接続して、なんとかデータを救おうという試み。
 先生のマシンのエクスプローラにmyドライブが現れた時、俺の、藁にすがるような願いは叶えられました。神さまありがとう。みんなありがとう。そしておめでとう。おぉmyデータちゃん、今助けてあげるからね。

 これで一安心です。大切な大切なmyデータは、致命的なトラブルから奇跡的に助かりました。
 正式版サイトマップもノンフレーム対応版Chainsも新型Scrawl Notes&パチョ奮闘記も塗りかけのCGもその他もろもろも、全部全部無傷なのは、まさに幸運というほかないです。神さまありがとう。みんなありが以下略。
 あとは新しいHDが届いたら、先生のマシンにコピーしたmyデータを元に戻すだけ。

 明日に続きます。


 新しいHDが届くまでの間、暇です。
 とりあえずなにか書いてないと落ちつかない性分なので、久しぶりに出番がまわってきたワープロでパ奮を書きがてら、半壊しているHDにWindowsをインストールしてみました。
 というのも、先生のマシンにスレーブ接続した時、Cドライブにもアクセスできたんです。(Windowsフォルダへはアクセスできなかったけど)
 で、Cドライブをフォーマットしてもらったところ、これも成功。もしや…と思った次第。

 結果、インストール前のスキャンディスクもパスして、見事に成功してしまいました。どうしましょう。壊れたんじゃないのかアンタ。もしかして全部夢だったのか!?
 でもクラスタスキャンにかけたら、ちゃんと異音が出て途中でフリーズしてくれました。ほっ。
 …って安心するのはどうかとも思いますが、この半壊HDは返さなくちゃいけないので、壊れてないと困るんです。もはや夢オチは困るんです。

 とりあえず使ってみたところ、なんの異常もないようです。これといって不穏な動きもしないし、本当に壊れてるの?コレ?ってくらい。じゃあブート不可能になったのはどうしてなんでしょう。
 オリジナルデータが先生んちで寝てるのでファイルを更新してしまうと後々面倒くさいですが、その分はCD-RWへ焼くなりして対処するとしましょうか。
 そして、久しぶりに出番がまわってきたワープロは、再び長い眠りにつくのでありました。


 一応動くとはいえ、ろくにファイルの更新もできない雪子ちゃん。なにせもうすぐ新しいHDがやってきて、しかもオリジナルデータは別に保護されている。
 それすなわち、好き放題を意味。
 ウィルスだろうがなんだろうが好きなだけ来やがれってんだコノヤロウ。

 そんなわけで、ダウンロードだけで機をうかがっていたインプローラの6.0をインストールしました。プレビューリリースの頃は使いものにならなかったけど、ちゃんと動くようになったでしょうか。

 とりあえずsiteCTSがちゃんと表示されるか調べてみたところ、やはりいくつかの仕様変更があるみたいです。詳しく調べてないので原因は不明ですが、ところどころ意図しない表示になってました。まぁ閲覧に支障が出るようなものはないようですけど。
 IE6ユーザーの方、情報お待ちしております。

 え? だってもう消しちゃったもん。IE6。アンインストを許可してくれたから。
 だってさ、ツールバーのカスタマイズから「上へ」ボタンが消えたことは致命的だったのよ。「インプローラの時に必要なの?そんなボタン?」って人はカスタマイザー検定初級の人かと思われます。
 ローカル作業の時に押せば、そのファイルが入ってるフォルダをエクスプローラで表示し、Webページを表示してる時はホームへ戻れる、ひとつ二役の大役立ちボタンだったのに!

 というわけで、「上へ」ボタンが復活するまでIE6は放っとくことにしました。つまりsiteCTSもそれまで未対応のままです。文句はインプローラ開発チームの責任者に言ってください。
 まったく、800人がかり(もっと多いらしい)で作ってるくせに、なんでこんなしょーもないデチューンをするんですかね。


 siteCTSのコアスクリプトファイル "virus.js" に、新しい関数が生まれました。
 このファイルは、あちこちから呼び出される人気関数のみが入れる、いわばsiteCTSの聖域みたいなものなので、なんともオメデタイことです。しかも、よほど重要なものじゃないと「siteCTSのコアスクリプト」なんてたいそうな肩書きはつけないので、さらにオメデタイです。俺onlyで。

 5つめのコアスクリプトは、「嘘cookie三兄弟」と言います。
 siteCTSでは他のページに引数を渡す時、cookieではなく「ウィンドウネーム」というものを使ってますが、今まで適当にやってたこれをちゃんと処理するために生まれました。書式をcookieと同じにしたので、将来cookieを使うようになっても流用できます。
 解析してみるとわかりますが、短いスクリプトながらも結構複雑な構造してます。三兄弟が三兄弟とも、別の兄弟を呼んでたりします。
 ただ、ウィンドウ名に CTSsnpFrm とあった場合に snpFrm を取得しようとすると、CTSsnpFrm でヒットしてしまうので、まだまだ改良の余地があります。まだ初期型なので、これからの発展に期待。

 三兄弟の使い道は、まんまcookieと同じです。ただしウィンドウネームはブラウザを閉じると消えるので、有効期限を設定しない「使い捨てcookie」にあたります。
 ていうか、これだけのガチガチJavaScriptサイトがcookieのひとつも使ってないなんて、わりと珍しいかもしれない…と思いました。別にポリシーとかそうゆうのはないんだけど。
 使う予定はあるけど、使う必要はない…ってところか。

 「使う予定」としては、「常にノンフレームで表示する」とか、サイト全体のユーザー設定に使おうと思ってます。
 それとも○○さん、××回めのご訪問ありがとうございますなんてベタを期待しますか?

 →三兄弟の正体
 追記:12.15
 →上記の不具合を修正してN4とcookieにも対応した現行型(12月15日へジャンプ)


 siteCTSのコアスクリプトファイルは virus.js という名前で、コアCSSファイルは virus.css です。それだけだとあんまりなので、vaccine.js というファイルもあります。
 ちなみに「ワクチン」の語源は、ラテン語で「牛の」を意味する vaccinus からきてます。最初のワクチンが牛から作られたからだそうです。vaccine.js の名前を考えながら辞書をめくってた時に知りました。

 ところで、一昨日ウィルスだろうがなんだろうが好きなだけ来やがれってんだコノヤロウ。などと言ってしまいました。本当に来てしまいました。
 題名は「Re:」で、news_doc.DOC.scr という不純物入りのメール。

 今はHDがアレゆえNorton Anti Virusを入れられず、確認はしてないんですが、二重拡張子だなんて自己紹介にも等しいです。今時引っかかる人がいるんでしょうか。いるんでしょうね。
 とりあえずNorton先生に聞いてみたところ、W32.Badtrans.B@mmというウィルスであることが判明しました。ダメージは低いものの、かなりの感染力をもっているらしいです。
メール本文は、不適切なMIMEヘッダーによるセキュリティホールを利用して、添付ファイルがMicrosoft Outlook内で自動的に実行されてしまうように設計されたHTML形式になっています。
 今の雪子ちゃんのIE5.5(IE6は戻しちゃいました)はSP1でもSP2でもないので、この辺が少々気になります。…が、考えてみたらわたくし、パチョ歴もうすぐ1年にして初めて本物virusをいただきました。どきどきだ!

 そうして、この半壊HDの末路が決定。
すべてのデータ移行を終えて返却する時に添付ファイルを実行。
 実行するとどうなるかNorton先生が教えてくれたので、お楽しみは半減ですけどね。


 ダブルクォーテーションがついてるので「更新情報」の方です。我ながら紛らわしい名前をつけたものだ。
 で、ここまで読んできた貴方ならおわかりのように、"siteCTS" もノンフレームに対応しました。もちろんフレームの付け外し機能も装備です。
 "siteCTS"はパ奮と違い、3つのページでそれぞれ独立したフレームファイルを使っているので、こういう作業は非常に楽です。パ奮は「フレームを付ける」のにものすごい苦労したものですが、こちらはたいしたスクリプトも使ってません。

 これで一応、siteCTS(Webサイトの方)の全コンテンツがノンフレームに対応したことになります。VGA(640×480)もウィンドウを最大化しない人も、まとめて最適化です。
 本当は「フレーム嫌い」も最適化できるはずですが、そんな人は確実にJavaScriptも嫌いなはずなので、当Webページはあまり相応しくありません。


 記事中に名前は出てこなかったけど、10.6俺紹介++もパ奮と一緒にノンフレーム対応となってます。…が、フレーム付け外し機能を実装してないなど不完全なので、さらに対応を煮詰めました。
 スクリプトもだいぶ効率化されたんですが、今日は疲れたのでこの辺で寝ます。


 タイトルを考えるのは楽でいいんですが、だんだん飽きてきました。でも、いよいよ大詰めです。俺紹介++に引き続き、パチョ奮闘記のノンフレーム対応もさらに煮詰めました。

 っても、パチョ奮闘記とScrawl Notesは新型がだいぶ形になってきてるので、あまり意味のある改善ではないのが泣けるところです。現にローカルではすでに新型の方へ移行していて、そっちで書いた記事を旧型にコピーしてますから。
 スクリプトがオールリニューアルされたんで、互換性がないんですな。

 新型パ奮&Scrawl Notesは2002年(の12月まで)に登場予定です。新機能バカ機能盛りだくさんなので、ちょっぴり楽しみにしててください。




バックアップはちゃんと取ろうね




  <<< 2001.10 2001.12 >>>  
2001年11月

パチョ奮闘記