ちゃんと調べてみたら、RSSフィードはUTF-8でかかれた方が望ましいらしい。有効性チェッカ(http://feeds.archive.org/validator/)にRSSフィードを入れてみたら、どうもISO-2022-JPが認識されていないようだった。ということで、RSSフィードだけでもUTFで書ける方法がないか、ちょっと調べた。
arena.ne.jpにNKF2.0を入れる予定を聞いても、今後の検討課題とされてしまい、Perlも5.8ならUTFをデフォルトで使えるが、5.6では使い方に難があるので、どうしようかと思っていた。つまり、方法は「PerlでなんとかUTF出力ができる関数を手に入れて、出力部で変換しておく」または「出力後にファイルをUTF変換する」の2つに限られる。
まずは前者。試しにJapanese.pm(http://tech.ymirlink.co.jp/)を入れて、変換しようとするが、どうにもPerlのオブジェクト指向に慣れないのか、うまくいかない。エラーが出続ける。下手をするとGNSが動かなくなる。自分の技術力の不足を痛感する。とはいえ、実際に不足をカバーするだけのパワーがないのだが。
明日は後者を試してみることにしよう。おそらく、書き込み後に特定のURLにアクセスすることでUTF変換できるか、または書き込み直後に出力ファイルを読み込み、そのままUTF変換するようなものにするか。あまり凝った作りにせずに、前者でやった方がいいのかもしれないな。
再びテスト
iconvをつかってみるとか、Jcode.pmをつかってみるとか、いろいろ試してみた。結局、うまく変換できなかった。いじっているうちに借りているディスク容量を食いつぶしそうになったので、あきらめることにした。JISでかかれているので、とりあえずの問題はない(その道の人から言わせれば気持ち悪いのかもしれないが)。ええい、ままよ。
やってみた
引っ越しを思い立ったのは、普段つかっているランチャソフトのanemone作者さんが、so-netから独自ドメイン+年額2400円で500Mサーバを使えるようになりました、とWebに書いていたこと。普段使っているのが月額(!)3000円で100Mなので、値段が12分の1、サーバスペースが5倍となれば、それは使わない手はない。早速移転作業開始。移転もとはarena.ne.jp、移転先はxrea.com。
まずはアカウントの取得。無料登録はユーザ数上限ということだったので、とっととプリペイド式で入金する。同時にアカウントを確保する。翌日に入金確認が送られてきたので、速攻でsugaken.comの内容を移転する。ついでに、*.sugaken.comを、xrea.comで貸し出してくれているDNSに登録する。強制登録にしておくと、DNSが変更されてもうまくいく。Webスペースの設定も同様。本来は無料で貸してくれるそうだが、広告免除権を購入すると、広告が入らないので、本当に借りているように使えるようになる。やった。これで、sugaken.comもwww.sugaken.comも使えるようになる。CGIも自作が作れるし、ログも生ログが取得できる。解析は自分でやればいいから、それ以上は何も考えず。
ついでに、ドメインを取得したonamae.comに登録されているsugaken.comのDNS情報をvalue-domain.comに切り替え登録する。さらに、arena.ne.jpに登録しているドメイン情報を削除してもらう。これでarena.ne.jpのDNSから削除されて数時間たてばarena.ne.jpではなくvalue-domain.comを見るようになる。これでよし。
ついでに、メールアカウントも設定しておく。postmasterはメール用の必須アカウントとなるので、仕方なくデフォルトアカウントにすべてとばしてしまう。IMAPも使えるのでかなり楽になるはず。
ここで色気を出してみた。sugaken.netを取得することにする。年額9ドル。日本円では990円で取得できる(プリペイド式なのでドルの変動を受けない)。これも併せてsugaken.comと同じサーバ領域を見るようにリダイレクションを設定する。これで完璧。メールだけはsugaken.comとsugaken.netは別に作ってみることにした(メールアドレスを趣味で集めているから)。これでいいだろう。すばらしい。
試しに日記書きツールGNSを動かしてみた。CGIはパーミッション700にして動かす。すでにPerlは5.8、NKFは2.0が入っているので、JISでがんばる必要はなく、普通にUTF-8で見てくれる。ということで、GNSにパッチを当てているが、変数NKF_VERSIONを元に戻して、試しに書いてみる。Windows端末にバックアップしていたので、パーミッション情報を再設定して、動くことを確認。ついでにUTF-8でRSSフィードがかかれていることも確認。すばらしい。
今のところ、設定できる情報はすべて設定してしまったので、あとは各DNSの作業を待てば、おそらくWebに関しては見られなくなる障害は発生しないと思う。
ちなみに、このサーバは負荷をかけるとアカウント停止が待っているそうな。普通、当たり前だと思うのだが。次の項目でちゃんと書くが、CGIを使う動的ページの生成については、やっぱりこだわりがある。そのこだわりをなかなか理解してくれないのだが(特に初心者に多い)。
あとはsugaken.comとsugaken.netのメールが正しく読み書きできて、sugaken.comとsugaken.netのDNSレコード(特にAとMX)がうまく移転後のサーバに格納されれば、arena.ne.jpを解約できる。すばらしい。感謝。
ついでに、sugaken.comの管理をonamae.comからvalue-domain.comに移管させる。手数料は無料だが、ドメインの有効期限が1年延長されるので、990円かかる。それで移管してくれるなら、なんとすばらしい。とっとと申し込む。ドメインに登録しているのは自分のアドレスだけ(経理担当も技術担当も)なので、移管について承認して、value-domain.comの承認待ち。すばらしい。自分で能力があれば、とりあえず何でも安くあがるではないか。
個人的なこだわりなのだが、サーバの性能も上がってきている現代ではあまり有効ではないけれど、性能を考えるのには非常に有効な手段。つまり、CGIはHTMLを生成するために存在する。例として、掲示板を考えてみる。掲示板は、見るだけなら、これまでのログを表示させればよい。つまり、ここにCGIは必要ではない。ログを出力したHTMLを見ていればよい。書き込みがあって、ログを更新させるときに初めてHTMLが更新される。更新時にHTMLを生成して、それを見るだけ、というシンプルな掲示板があればいいことになる。
何度もリロードを行った場合の性能を考える。HTMLの場合は、更新されなければリターンコード304(キャッシュに同じ)を返す。キャッシュと異なるデータがサーバにある場合、初めて200(転送開始)を返してデータを転送する。常にCGIでログを整形して転送させる場合、当然のことだが、CGIの編集結果を待たないと、同一であることはわからない。仮にわかったとしても、CGIは動いてしまっている。ということは、HTML出力をしておく方が、特に参照系データを作成する場合は非常に安定した性能を発揮することになる。
ということで、今でも掲示板にHTML出力形式をとっている。・・・・って、こんな話をしてわかってくれる人が何人いるか・・・・
だから、この日記もHTML出力型にしている。なにかあれば掲示板に書いてくれるでしょ。たぶん。
田舎に帰ってゆっくりしていたら、不在着信があった。折り返してみると、会社の人だった。要件を聞いて、詳細はメールで折り返すという話をした。バックアップの性能要件を満たすような方式の検討をお願いされた。残念ながら今の仕事に直結する訳ではないのだが。直結しなくても、なんだかんだと他の仕事を見るのは、後で役に立つことが多いので、全然電話でもメールでもしてもらってかまわないのだが、電話してきたところを見ると、おそらく急ぎなので、すぐに調べて返答した。
残念ながら、こういう「つぶし」の利く仕事の大半は、大学で勉強してきたこと。さっきのDNSだって、HTTPのリターンコードだって。オレは経済学部で何をしてきたんだろうか。人によっては「学歴詐称」とか言われてしまうのだが、一応経済学部を卒業した(記憶がある)。でも、7桁以上の数字には弱い。カンマを打っていても、ちゃんと位取りしないと読めない。暗算も苦手。ある意味で学歴詐称。
でも、SEを養成する学校がないのも事実。経済学部だろうが、文学部だろうが、情報科学部だろうが、SEになれる。能力は、意外と大学と関係ないところにあるのだろう。でも、文系といって驚かれるのは少々参る。大学4年間が自分の人生に無駄だったような言い方に聞こえてしまう。まぁ、まじめな学生じゃなかったし、マクロ経済学は単位が取れるレベルでしか勉強しなかったが、Apacheのhttpd.confは穴が空くくらいWebを調べまわったからな。
sugaken.netは日記専用ドメインにしようかな。サブドメインをつかってnotes.sugaken.netってのも捨てがたい。友達の日記サイトとして解放してみようかな。500Mあるから、メールに半分(!)とったとしても、まだまだ空きはあるからな。
comは既に持っている。プロバイダでne.jpを持っている。会社員なのでco.jpも持っている。大学サーバ管理もしているのでac.jpも持っている。ついでにad.jpも持っている(何してるんだ?)。これでnetがあれば、後はgo.jpがあれば完璧だな(←もらえるのか??)。
それなりに持っているアドレスは使い分けをしていて、送信アドレスに困ることもそれほどないのだが。証明書もちゃんと持ってるし。ただ困るのは、このアドレスを語ってSPAMを送ってくるアホがいること。しょうがないので、メールには電子署名を入れて、SPAMではないことを確認できるようにしている。しょうがないなぁ。そういえば、一番使うsugaken.com以外は無料で使える証明書を使っていた。やっぱり、情報がある/ないというのは、非常に重要なことなんだろうな。SPAMは送ってません。ゴミは送ってますが。
休みが終わる。そして、休みという非日常の世界から日常の世界に引き戻される。非日常の世界に飛び込むのはそれほど難しいことではない。なぜなら、最後まで日常の世界にいるのだから。でも、非日常の世界から日常の世界を取り戻すには、「非日常の世界にいた時間」分だけの日常の追体験をしなければならない、と思える。
端的に言えば、不在中のメールを全部読んだり、Webをチェックしたり、机の上に届いている郵便を片づけたり、休み中の状況を確認したりと言うことがあげられる。つまり、そいつらを処理していると、必然的にそれだけで日常を取り戻すことになる。しかも、否応なく。
仮に、状況が何らかの形で非日常の世界に飛び込んでくることを考える。つまり、メールが出先で読めたり、電話がかかってきたり。こうなると、どうも非日常の空間にいながら日常の世界を突っつくことになり、心が落ち着かない(まぁ、全くわからない状態の方が怖い、というのもあるかもしれないが)。日常の世界にいない、ということは、それだけで人を不安にさせるものだが、非日常の世界は、当然のことながら日常の世界にいては味わえない経験をさせてくれる。今回もそうだった(少なくとも自分には)。
そういえば、この感覚は「遠足」とか「野外活動」とか「修学旅行」にも似た感覚だと気が付いた。非日常の世界を感じることで、むしろそのときにどこに行ったかではなく、誰がどんなやつだったのか、その非日常の世界にいるときのみんなの挙動が、なんとなくおもしろかった気がする。
電車の中で「非日常口」という広告を見つけて、なんとなくそんなことを感じてしまった。
ドメイン名の設定に続いて、今度は担当内でICカードを管理するDBを作ってみることにした。VBはゼロから作ったことがあっても、VBAは他人のソースを直すレベル。つまり、全くの未経験に等しい。VBのサブセットでどこまでがんばれるのやら・・・・・
まずは、テーブルを作る。正規化すべきテーブル、つまり子になるテーブルが必要なのは2つだと見切れているので、とっとと親テーブルと子テーブルを作り、属性を決定する。日本語フロントエンド(つまりIME)の設定なども一気にやってしまう。入力規則などはできるだけ緩くする。Null入力などはVBAで何とでもなるから、あまり気にしない。
あとはフォームを作って、親子のテーブルが連動できれば、とりあえず正常系の正常系、入力だけは何とかできるようになる。・・・と、ここでトラブる。子テーブルの内容をコンボボックスに表示させたいのだが、なぜかリストボックスになっている。変更しようとしても、クエリがうまく作れない。なんということだ。設定をいじること小1時間。右クリックして簡単に変換できることがわかった。なんということだ。無駄な(意訳:頭のサビを落とすには十分な)時間だった。
一応親子連動ができるようになったので、これで入力だけはできるようになった。フォームも完成した。あとは検索系のロジックをちまちま作っていけば、どうにかなる。VBの文法は腕に覚え(と鈍り)がある。数時間でなんとかなりそうだ。
必要は発明の母。やってみなければ、できることにはならない。学生に何度となく言い聞かせたことを、自分にも言い聞かせながら。
結局、Accessはうまいこと作ることができなかった。つまり、ボタンイベントに対してレコードをテーブルに挿入するといった操作が、どう調べてもできなかった(勉強不足という指摘はその通り)。なので、一番作りなれているCGIで作ることにした。
Accessと同じ時間をかけてみたが、正常系と大まかな異常系についてはCGIで完成してしまった。なんと言うことだ。
つまり、なれたモノを使うというのは正しいことなのだと思う。時間も効率的だし、これまでに作った資産を有効に活用できる。もちろん、新しいことを知ることも大事ではあるのは十分わかっているが、お気楽についくるという意味では当然のようになれたモノを使う方が速い。
ということで、今度はブラウザレスにVBで作ることにした。そうすれば、インタフェースは複数用意されているし、何よりPerl4っぽいPerl5を書いている自分にとっては、コードの移植は簡単にできる(はずだ)。
その昔、お気楽に作っていたら、「以前から進化してない」と指摘されたことがあった。その通りでございます。進化してません。でも、小さく作って大きく育てる意味では、そんな門でもいいのだと自分を正当化して、今日もお気楽プログラマ(→SEじゃなかったのか?というツッコミ歓迎)の夜は更けていく。
。
メールはこちらへ...[sugaken (sugaken @(at) sugaken .(dot) com)]
この日記は、GNSを使用して作成されています。