Page Index
日付 題名 記事の要約
2005.3.2 文字参照変換マクロ 文字参照一口講座?
2005.3.8 不精者の綺麗好き 第3幕 キーボード掃除
2005.3.9 パッシブダクト上等! 自作パッシブダクト加工
2005.3.10 光りもの上等! ファンコントローラ増設記
2005.3.20 いじくりPC机 キーボードテーブル改造
2005.3.23 ギガ・サーバー XREA 容量1GB
2005.3.27 ルビマクロ XHTML1.1でルビを振る秀丸マクロ

 ここんとこPerlの記事が多く、「今の素人状態を記録に残しておこう」という目的からコードをベタ貼りしてます。そして、コードをベタ貼りする時に面倒なのが、文字参照です。

 HTMLでたとえば <div> と書きたい時、&lt;div&gt; と書かないといけません。でないと、それがHTMLなのかただのテキストなのかわからんからです。同様に、&&amp; と書く。この変な記号を 文字参照 と言います。本当は実体参照とか数値参照とか、もうちょっと細かい取り決めがあるけど、とりあえずそれらを総称して「文字参照」で通じます。
 また、こういった「特別な意味を持つ文字」を、一般に メタ文字 と言います。

 文字参照で一番起こりやすく、かつ致命的なのが、意外にもリンクです。
 リンク先のURLを入れる時にアドレスバーからコピペで貼ってるんでしょう、

<a href="http://xxx.jp/yyy/zzz.cgi?date=04&view=admin&lt=1">リンク</a>

 なんて書いてる人が(たくさん)いるけど、&lt< に展開されてしまいます。実際にやりゃわかりますが、ブラウザは

<a href="http://xxx.jp/yyy/zzz.cgi?date=04&view=admin<=1">リンク</a>

 として解釈します。言うまでもなく、このリンクは正しく機能しません。CGIの作りが拙ければ、この誤ったリクエストが原因で誤動作する可能性も否定できません。
 間違えてもあまり問題が起こらないのは、CGIを組む側がそういった事態を踏まえて対策を施しているからです。つまり、俺みたいな素人がなにも知らないで、lt とか gt なんてキーを作らないという保証はどこにもないわけです。
 要するに、たまたまマッチしなかったから問題が起きてないだけ。

 このリンクは、

<a href="http://xxx.jp/yyy/zzz.cgi?date=04&amp;view=admin&amp;lt=1">リンク</a>

 …が正しい書き方です。この辺の事情を知らないと「勝手に変えちゃっていいの?」と思うかもしれないけど(俺も2年くらい前まではそう思っていた)、これはブラウザに表示された時点で展開されているので、リンクをクリックする時には、すでにただの & です。

[ ブラウザでの実験結果 / 22KB ] それでも心配なら、実際にやってみてステータスバーに表示されるアドレスを見るといい。

 この問題があるので、最近ではキーの区切りに & でなく ;(セミコロン)が推奨されてます。それに従う人も着実に増えてますね。セミコロンはメタ文字ではないので、そのまま

<a href="http://xxx.jp/yyy/zzz.cgi?date=04;view=admin;lt=1">リンク</a>

 と書いても問題は起きません。
 もちろん当サイトのCGIもそのようにしてあるけど、それでもブラウザのデフォルト動作は & なので、アドレスバーからコピペする時はやはり手修正しないといけないのです。

 …いや、HTML講座が書きたいんじゃなくて。

 「面倒くせえな」と思われるでしょう。実際に面倒くさいんだから、間違ってません。
 冒頭で言った通り、最近はPerlのコードを頻繁にベタ貼りしています。このコードにも、

my $a = $b <= &func("str");

 のように、メタ文字が多いです。つまり、貼りつける時にいちいち

my $a = $b &lt;= &amp;func("str");

 に書き替えないといけません。より万全を期すなら

my $a = $b &lt;= &amp;func(&quot;str&quot;);

 です。&quot;" の文字参照ですが、これは推奨されているだけで必須ではないです。(他は必須ですよ)

 まぁもちろん手作業でひとつひとつ修正するわけもなく、テキストエディタの検索置換機能を使って

  1. &&amp;
  2. <&lt;
  3. >&gt;
  4. "&quote;
  5. 空白&nbsp;
  6. タブ&nbsp;&nbsp;
  7. 改行<br />\n

 この順番に置換(必ず & を先にやる)すればだいぶ楽なんですが、それでも範囲選択→検索置換を7回も繰り返すのは面倒ですね。

 さて、ここから今日の本題。

 上記の置換を全自動化する秀丸のマクロを作りました。範囲選択してこのマクロを実行すると、上の7つの置換を一発でやってくれます。選択範囲を置換するだけなら簡単なので、作るには2時間もかかりませんでした。
 これだけでも充分に使い物になるけど、もうちょっと欲張りたいですよね。たとえば<code> 要素を自動認識して、その中身を全部置換」とか「コードのコメント部分は <span class="comment"> でマークアップ」とか。
 そして、ひとつ欲張るとふたつもみっつも面倒くさくなるのがプログラム。結局丸一日を費やすはめに。(しかもまだ完成してない)

 code2htmlref100beta.0302.mac(ベータ版)
 例によってパブリックモードでの開発なので、説明書きが入ってます。

 欲張る前は50行に収まっていたミニマクロも、いつの間にか500行。どうしたものか。
 …といっても、去年の秋に作ったMulti Opener Nepo2300行にも及ぶわけで、こんな巨大マクロは見たことがない馬鹿サイズであり、それに比べたら1日でほとんど完成するこいつはかわいいもんです。(Nepoについてはパチョ奮闘記に書いてあるんだけど、現時点ではアップ待ち)→2004.10.26

 しかし、今上げるべきスキルは、秀丸マクロでなくPerlです。絵日記CGIをさっさと完成させないと、自分のサイトが更新できないではないですか。まぁいいじゃないですか。


[ ワイヤレスキーボード / 29KB ]  我が家のキーボードはLogicoolのCK-87MX。2002年の9月に購入して、気に入ったのでサブマシン用にも買ってあげました。到達距離は短いもののワイヤレスだし、一発ボタンも数多くあって便利です。もちろんメーカー純正のドライバなんて入れてません。こんなもんに常駐されても迷惑なだけですから。猫ちゃんで自分の好きな機能を勝手に割り当てて便利に使ってます。

 購入してから2年と半分くらいですが、その間なにもメンテナンスしてません。第1幕でも書いたように、俺はキーボードカバーなるものを駄アイテムだと思ってるので、本当に汚れ放題です。
 そこで、そろそろオーバーホールしてあげることにしました。

 うーん、やっぱりオーバーホールすると叩き心地が違います。まさに新品同様です。気持ちがいいです。
 そこの汚れ放題な貴方も挑戦してみてはいかがでしょう。変な構造してない限り専門知識もいらないし、ドライバー1本でできます。ただし、くれぐれもキーの配列を忘れないようにしましょうね。特にカーソルキーが落とし穴です。

ちなみに第2幕は2002.6.16


 去年の12月に就役した千枝は、冷却性能に不安があるのです。PrescottコアのCeleronDってのもありますが、勝手にファンレス加工したTi4200がですね、一応かわいいヒートシンクを乗せておるんですがね、これが触れないくらい熱いんですよ。雪子に積まれていた頃はケースの内部温度もたいしたことなかったので、それほどでもなかったんですが。

 そんなわけで、ケースの横っ腹に穴開けて自作パッシブダクトなんぞをつけてみようと思ったのですよ。排気ファンは3つあるのに吸気がHD冷却用の9cmファンだけでは、どう考えてもケース内が負圧に偏りすぎなのです。ファンはすべて低回転型で圧力差に弱いですから、あまり好ましくありません。ケースの内部温度(マザー計測値)も常に42度を超えていて、Prescottで推奨されている38℃シャーシにはほど遠い状況です。
 そこで12cmファンを追加し、少しバランスを取ろうと考えてみたわけです。

[ 加工前のケース / 21KB ] 開始前。これの横っ腹に穴を開けて、12cmファンを取りつける。
こういう思い切ったことができるのも、すべて100円で拾ってきたジャンクだからである。

[ 12cmファンとファンフィルター / 21KB ] 材料はこれだけ。低回転型12cmファンと埃防止用のフィルター。1700円也。

[ ファンの位置合わせ / 26KB ] 位置はこんな感じにしよう。グラボを中心として、風を上下に半分ずつ。

[ 穴の位置を計る / 24KB ] 採寸。ケースの出っ張りが邪魔。

[ 採寸完了 / 7KB ] 採寸完了。

[ 電動ドリルとノックパン / 43KB ] 今回使う工具達。電動ドリル&電動圧着機のヘッドを換装したノックパン。
電動ドリルはともかく、ノックパンは一般市民には一生縁のない専門工具。電気屋には当たり前の存在なんだけど。
もちろん会社のものであり、本体だけで15万円、換装ヘッドを入れると20万円超えちゃうらしい。わお。

[ 中心の穴を開けてるとこ / 20KB ] ノックパンのための穴をホールソーで開ける。

[  / 24KB ] 続いて四隅の穴を開ける。ここがファン固定用のネジ穴になる。
採寸がいいかげんで少々穴がずれてしまったが気にしないことにする。

[ ノックパンのセット / 38KB ] 先ほど開けた穴にノックパンをセットする。重たい上に重心が頭に偏ってるので結構大変な作業だったりする。

[ 打ち抜き / 17KB ] ノックパンで打ち抜くと、ご覧の通り。綺麗な穴が開く。これ考えた人って天才だよね。

[ 打ち抜いた後 / 31KB ] これで側板の加工は完了。ファンを取りつける。

[ 側板の内側 / 23KB ] [ 側板の外側 / 22KB ] 表と裏。

[ 内部のエアフロー図 / 87KB ] 内部はこんな感じに。青矢印が吸気で赤矢印が排気。
横から空気を取り入れているだけなので、実のところはパッシブでもなければダクトでもなかったりする。
主な目的はグラボの冷却だからいいのである。
それにしても12cmファンってでけえな…。

[ 千枝と居眠り中のカメラマン / 32KB ] さっきまで面白がってパチパチ撮りまくってたカメラマンは早々に飽きて居眠り中。

[ 完成 / 32KB ] 施工完了。

 新しくファンコントローラがついてますが、それは明日に続きます。

本日のタイトルは秋葉原のツクモで見かけたポップから頂戴しました。


光りもの上等!

2005.3.10.Thu

昨日の続き

パッシブダクト上等!」の続きです。

[ 側面 / 45KB ]  今回のファン増設に伴って、ファンコントローラ(FanMaster SF-609)も搭載することにしました。
 というのも、これで6個のファンがついたことになり、こいつらが全開で回ると相当な騒音になるからです。高負荷時なら回すほど安心ですが、アイドル時はこんなにブン回す必要はありません。ただでさえ普段はコーディングなど低負荷作業ばかりですし。
 こいつは4つのファン回転数を別々に調節したり、4ヵ所の温度を同時に測定したり、ファンが故障とかで止まったり設定温度を超えたりすると警告アラームが鳴ったり、なかなか素敵なやつです。設定温度を超えると自動で回転数を上げる機能とかはついてませんけど。
 他、6色のカラープレートが付属しているのもポイントですね。自分のケースと合わせられますから。

 話は変わりますが、今ではパソコンオタクな俺も、昔は近所迷惑なローリング族でした。当時の言葉で言うと「走り屋」ってやつですな。日夜を問わず峠へ出かけてたものです。
 1989年〜1992年くらいですか、当時はレーサーレプリカ全盛で、日曜にはどこの峠にも蠅のように湧いていましたね。みんなバイクを改造してプインプインいってましたし、俺もご多分に漏れずバイト代のほとんどをつぎこんでました。愛読書はもちろんバリマシです。ステッカーも持ってますヨ。

 そして、外装やら排気系ばかり目が向いてる改造マシンを見ては、軽く鼻で笑ってました。
 たいした腕もねえから見た目にいくんだよな。
 って。
 バイクの改造といえば、最初にタイヤ、それからブレーキとサスと逆シフト、必要ならバックステップとステダン、お金があったらハイスロ、終わり。だろう。ノーマルセッティングで厳しいのはタイヤとブレーキとサスだけです。あ、2ストならチャンバー入れてもいいか。(あいにくNC30乗りだったんで)
 なので、とうとう最後までマフラーには手を出さなかったし、外装もフルノーマルでした。削れて半分になっちゃったステップだけが街乗りライダーと一線を画すのみです。(おかげでよく煽られたものです…抜かれたことはないけどネ)

 なんの話をしていたか忘れてきたところで、まとめます。
 つまりはバイクの性能より自分の性能ということです。ノーマル状態で充分に高性能なんだから、それを引き出してやるのが自分の仕事ということです。バイクに乗られて事故るような馬鹿にはなりたくないじゃないですか。
 パソコンでもその傾向は顕著で、ハードの性能よりソフトの性能より自分の性能が座右の銘です。

 さて、それが今回の題目とどう関係してくるかっつと、ファンコントローラです。こいつ、光るんです。なにもそこまで光らんでもいいだろう^^; というくらい光るんです。そりゃもう思わず顔文字使っちゃうくらいに光るんですよ。

[ 明るい時 / 40KB ] [ 暗い時 / 22KB ] 明と暗。

 液晶のバックライトは必要だと思うけど、ここまで光る必要はないですよね。要するに「飾りとしての光」なのですよね。ちなみに液晶のバックライトは7色に輝きます。
 ここ数年のPCアクセサリって光るのがやたら多いですよね。ネオンまであったり。CPUファンが光ってどうするんですかね。お前の仕事は自己主張じゃねえだろう?と問い正さずにはいられないですよね。自己主張は音だけにしといてほしいものです。

 なにを言わんとしてるか、もうおわかりですよね。
 重なるんですよ。
 たいした腕もねえから見た目にいくんだよな。
 って嘲笑ってた、あの頃と。
 光り物で固めたマシンを自慢気に見せられたら、思わず嘲笑する自信あります。

 だから光り物は嫌いなんです俺。こんなの虚飾以外の何物でもないじゃないですか。こんなに光ると知ってれば買わなかったのにっ。
 でも今さら返品できないし、機械自体の性能は気に入ってるので、今度のメンテナンスの時に光らないように改造するつもりです。構造的に無理だったらLED焼き切ってでも光らないようにする所存です。こんな贅肉部品に貴重な電気くれてやる気はありませんよ?

 あぁくそう。見てるだけで腹が立ってくる。その怒りは、映画を観ようと部屋を暗くした時に爆発するであろう。光り物にだけは絶対手を出さないはずだったのに。機能ばかり気にして光る可能性をまったく考えてなかった俺に愛のゲンコツをプレゼンツ。


いじくりPC机

2005.3.20.Sun

[ 新PC机のカタログ写真 / 10KB ]  去年の10月10日に導入した新PC机ですが、後書きにも書いてあるように、キーボードテーブルの位置が高すぎるという欠点がありました。身長192cmの俺がそう言うのですから、身長150cmの彼女様にとってはひどく不評です。
 我が家には座面の高い座椅子があって、それを使えばそこそこちょうどよくなるんですが、俺は寝転がったり座ったり落ち着きがないもので、座椅子は使ってません。
 そして、不便なまま我慢して使うほど俺は辛抱強くないのです。PC机もヒューマンインターフェイスの一部ですから。

 というわけで机を買い換えました…といければいいのですが、残念ながらそこまでお金持ちじゃありません。それに、テーブルの高さ以外は上出来ですから、買い換えるのももったいない話です。
 そこで、もはや恒例である「改造」です。使いにくいものは使いやすくしてしまえばいいのです。

[ 机の下 / 46KB ]
ちょうどよい厚みの木材をちょうどよい長さに切って間にはめこむ。これにテーブルレールを据えつける。
木材は現場で拾ってきたやつなのでタダ。(このアイデア自体は以前から考えついていたものの、綺麗な廃材がなかなか出なくて今まで機をうかがっていた)

[ 板にレールをつけてるとこ / 33KB ] 採寸してから板を外して、テーブルレールをつける。

[ 板の取りつけ / 25KB ] 板を取りつける。初期位置から約9cm下げた。

[ レールを引き出したとこ / 35KB ] わりとバッチリな感じである。
会社に溶接機があるので、その気になればもっと本格的にできるんだけど。
将来買い換えとかで不要になった時に、誰かへ譲渡するような先まで考えてるので、加工も容易で元に戻せる木材を使用。

[ 机を正面から見たとこ / 37KB ] テーブルの下に入るCDケースのこともちゃんと考えた高さ。
改造は計画的に。

 これで完成。座布団を敷いてあぐらをかくと、あらまぁちょうどいい高さ。これでわけのわからん肩こりからも解放されるのね…。彼女様もさぞかしお喜びになられることでしょう。


[ 容量の上限:1000MB / 2KB ]

 当サイトを収容してもらっているレンタルサーバーは容量が500MBと超大なのが素晴らしいんですが、気づいたら1GBになってました。い つ の ま に 。

 どうやって1GBも消費すりゃいいのかわかりませんが、さらに画像の数が遠慮なくなるんじゃないかと思います。

もちろんCGIとかも使い放題で、それでいて月あたりの費用は200円なんだから、良い時代になったもんだなぁと思います。


ルビマクロ

2005.3.27.Sun

 またあたらしい秀丸ひでまるマクロをつくりました。今回こんかいNepo引用符いんようふ選択せんたくマクロ文字もじ参照さんしょう変換へんかんマクロみたいなのこんだやつでなく、15ふんつくった簡単かんたんマクロ。これくらいなら15ふんつくれるくらいのスキルになれたのねぇ…。しみじみ。

 とうサイトではXHTML1.1を採用さいようしてるわけですが、なぜ1.0でなく1.1かとえば、もちろんルビが使つかえるからです。

<ruby>
  <rb>Ruby</rb>
  <rp>(</rp>
  <rt>ルビ</rt>
  <rp>)</rp>
</ruby>
※改行を入れるとスペースが空いちゃうので実際には入れません

[ ルビ表示のサンプル / 1KB ]

 もともとはIEアイイー独自どくじ拡張かくちょうだったルビもXHTML1.1で正式せいしき採用さいようされ、現時点げんじてんではGeckoゲッコーOperaオペラ対応たいおうしてませんが、そのうちやってくれることでしょう。
 なにが画期的かっきてきって、やっぱ <rp> 要素ようそ存在そんざいです。対応たいおうブラウザではこの要素ようそ無視むしされ、表示ひょうじされません。そのおかげで「非対応ひたいおうブラウザではルビをカッコでくくる」といったことが可能かのうになります。

 ただ、てのとおりマークアップが面倒めんどうくさいです。名前なまえ要素ようそばかりでおぼえるのも一苦労ひとくろうですね。
 そこでてくるのがこのマクロ。ダイアログに文字もじれるだけで、マークアップを自動じどうでやってくれます。ただそれだけのものですが、こういう簡単かんたんすぎるマクロって公開こうかいする人が少ないんですよね。
 ていうわけで自分じぶんつくりました。

 →ruby100.0327.mac

ルビはXHTML1.1でしか使えませんが、どんなHTMLでも(対応ブラウザであれば)ルビ表示されます。
すなわち違法ルビがはびこるわけで、ルビと引き替えにXHTML1.1の色々な制限を甘受している身としては、ものすごく腹が立つ次第です。二者択一だテメーコンニャロ。