2002-01-24 [長年日記]
_ hnsをセットアップ
新しい日記システムを作ろうと思っていたんだけど、どうにも忙しくて時間が取れず、このままだといったいいつになったらこっちのサーバーに移転できるのかわからない状態になってきたんで、ひとまずhns(2.10)を入れてみた。ぱっと見た感じでは、hnsでも俺が欲しいような機能は半分くらい載っているみたいなんで、しばらく使ってみてこれでいいやと思えるようならば、今後の日記システムはこれを使わせてもらうことにしよう。
_ Namazu v2 for hnsもセットアップ
ついでにNamazu v2 for hnsもセットアップ。もともとこっちのサーバーには全面的にNamazuを使った全文検索を入れる予定だったんで、すでにNamazu自体はセットアップ済み。hnsがNamazuと連携しているのはありがたい。
_ tDiaryもセットアップ
てっきりhnsにあると勘違いしていた日記に「ツッコミを入れる」機能は、よく考えたらtDiaryの機能だった。設定ファイルのどこを見ても、それ系の設定が見あたらないからおかしいと思ったよ。hnsではweb上に標準的に表示されないツッコミ(閲覧者メッセージ)を送る機能はあるけど、簡易伝言板的にツッコミを表示する機能はないんだね。
ということに気がついたんで、試しにtDiaryの方もセットアップしてみた。Rubyからインストールしなければならなかったけれども、一応動くところまでセットアップはできた。ただし、ユーザーディレクトリにRubyをいれたせいで、shared objectのloadがうまくいかないらしくて、メール送信周りの機能が動いていないけど。
ちょろっと使ってみた限りでは、基本的にはhnsの方が高機能そうだけれども、tDiaryのツッコミを入れる機能は捨てがたいし、まあふつうに日記を書いている分にはどっちを使っても良さそうな感じだ。うーん、微妙だなー。
でも、やっぱり怪しげなインストールしかできていないRuby上で、メール周りの機能がうまく動かないtDiaryを使うのはリスクが大きすぎるよな。ただし、ツッコミを入れる機能なしってのは、やっぱりいやだ。そうなると、hnsを改造してツッコミを入れる機能を搭載するか、それともやっぱり全部自前で作ることにするか。
しばらくhnsを使ってみてから判断しよう。
_ hnsbbs
hnsの最新ベータ版(2.19)をチェックしてみたら、hnsに埋め込んで連携させて使うことができるhnsbbsってものに対応していた。試しに入れてみたところ、ちょっとだけ「ツッコミを入れる」っぽい機能が追加された。俺の理想である、日記内にツッコミの本文まで埋め込まれる形じゃないけれども、ひとまずは各トピックごとに独立したbbsが付加される形になる。
こういうプラグイン的なものが作れるんだったら、自分の中にある理想的な「ツッコミを入れる」プラグインを作って埋め込むこともできそうかな。Perl5ライクなソースっていまいち読めないんで、HNSを解読するのも大変そうだし、全然触ったことがないRubyで書かれたhnsbbsを解読するのはもっと大変そうだけれども、余裕ができたら書いてみよう。
2002-01-25 [長年日記]
_ HNSカスタマイズ
昨日一晩hnsをいろいろ試した(0時過ぎに家に帰ってきて、それから朝4時過ぎまでいじっていた)結果、基本的にはhnsを使いつつ、絶対に欲しい機能(完全連携bbsなど)は自前で作ることに決めた。hnsbbsが機能拡張されるのを待つ/自分で機能拡張するって手もあるけど、どうもhnsbbsは俺好みのシンプルなbbsじゃなさそうだし。
でもその前に、hnsの基本機能の側を自分専用にカスタマイズしなくては。カテゴリ分けの機能をばりばり使うつもりなんで、標準ではおまけ的な扱いになっているカテゴリ分けの機能を、もっと全面に押し出す形でカスタマイズする必要がありそうだ。ヘタしたら、標準的なカスタマイズだけじゃなく、自前の外部ツールなんかも用意する必要があるかな?
なんてことに取りかかる前に、ひとまずはふつうに使うレベルでのデザインをカスタマイズしておかないとならないんだけど、スタイルシートでデザインするのって慣れていないんで、どうしても試行錯誤の部分が大きくて面倒くさいんだよな。
_ ヘッドラインがうまく動かない
ヘッドラインが使いたかったんで、さらにhnsをバージョンアップ(2.20β)。テーマ「jikenbo+」を拾ってきていろいろいじっていたら、何とかヘッドラインが表示されるようになったんだけど、なぜか今日(25日)の分だけしか表示されないな。hnsのバージョン表記も変わっていないんで、何かセットアップ(アップグレード)のときにミスったか? それとも旧バージョン形式のデータではうまく動かないとか? あるいは俺の設定ファイルのミス? よくわからんなー。
_ 忙しさの山を一つ越えた
今週いっぱいかけてやっていた仕事に、ようやく終わりが見えてきた。本当は一昨日にいったんゴールが見えたんだけど、最初に来た仕様書通りに作ったシステムの出力結果が、どうにも既存システムで出力した結果とあわなかった。
はてさて、俺の作り方が悪いのか、既存システムがバグっているのか、元データが腐っているのか。なんぼ考えても原因がわからないんで、過程&結果ファイルをクライアントに送ってみたら、仕様漏れやら追加仕様がわらわらと発生して、最初に見えたと思ったゴールは逃げ水のように去っていった。
でも、さっき来た仕様漏れ分を追加したら、既存システムの出力結果と同じになったんで、きっとこれでほぼゴールにたどり着いたんだろう。土日はちゃんと休めそうだな。
_ hns連動bbs「hnsbbs2」を作りつつある
hnsbbsに置き換えて使うつもりの、単機能型hns連動bbs、開発コード「hnsbbs2」をにょろにょろと作りつつある。一応投稿と閲覧は最低限できるようになった。cgiのファイル名をhnsbbsと合わせてあるんで、日記の各トピック下に張られた「コメントを投稿する」から、実際に投稿するところまでできた。
が、Perl5がわからない身の悲しさよ、hnsbbs2をきちんとhnsと連動するようにする方法がさぱーりわからない。hnsbbsのhnsとのインターフェースとなっているらしいBoard.pmをいじくってみたのだけれども、まったく俺の予想とは違った動きになる。っつーか、思わぬ動きにすらならない。関係ありそうなところをいじっても、まったく反能なし。なにゆえ?
勘で適当にいじっているレベルじゃどうにもらちがあかないようなんで、今更ながらPerl5オブジェクト指向プログラミングの基礎のお勉強でもするかね。Perl4レベルでも十分実用プログラムが組めるもんだから、Perl5っぽい書き方って全然勉強していないんだよな。
_ packageはスコープ宣言
会社の本棚をあさったらPerlの入門書(エリー・クイグリー著「Perl入門第2版」)があったんで、この週末はそれを持ち帰ってお勉強することにした。ひとまず帰りの電車の中でオブジェクト指向周りの部分をざっと読んだところ、謎が多かったPerl5ライクな書き方の意味がずいぶんと理解できた。
package宣言ってのはてっきりclassの宣言なんだと思っていたんだけど、これは単なる名前空間(スコープ)の宣言なんだね。で、もちろんclassはclass内に限定されたスコープを持っていないとややこしいことになるから、classを利用する際にも必ず用いられるって話なのか。今までてっきりpackageと書かれていたら=classを使っている=oopで書かれたPerlプログラムだと思っていたよ。実際には名前空間を切り替えるためだけにpackageを使っていることが多いんだね。
ちなみに、Perlのデフォルト(暗黙)の名前空間はmainなんだそうな。で、
package hoge;
と書くと、それ以降にローカルで宣言された変数、関数はhogeの名前空間に所属することになる。他のpackageに所属する変数・関数を参照したい場合は、
hoge::foo
なんて感じで、どの名前空間に所属するのかを明記することでアクセスできる。さらにその状態で
package main;
とやると、またmain名前空間に戻すことができる。入門書では、その背後にある仕組み(名前空間を保持するためのハッシュ配列がある、とか)をいろいろ細かいことまで解説してあったけど、ふつうに使う分には下手にその辺まで覚えない方がいい気がする。Perlって詳しくなれば詳しくなるほど、他人にとっての可読性が悪いコードが書けるようになっちゃうからな。
2002-01-26 [長年日記]
_ re:A Way Out「hnsbbs2」
「 HNSでも俺が欲しいような機能は半分くらい載っているみたい 」とか。半分ですか。hns はかなり機能多いと思いますが、それでも俺的に足りない機能もいくつかあるのは事実。
なんか第三者的に上記の自分の発言を読むと、「hnsには機能が足りない」とか「hnsにもっと機能を追加しろ」と言っているように見えちゃうんですが、より詳しく言うと、「hnsには俺がweb日記システムに欲しい機能はだいたい載っているけれども、web日記以外の用途で使う機能は載っていない(当たり前だけど)」って感じです。と、なんとなくフォロー。
私の場合は、web日記にいわゆる“日記”的ではない機能までも取り込んでしまおうかと思っていたんで、私の欲しい機能を一通り取り込んでしまうと、それは一般的な日記システムとしてはとても冗長なものになってしまうでしょう。
_ hnsbbsとHNSの連携
ようやく基本的な仕組みが理解できたような気がする。hnsbbs2でkenjiさんが書いていた
キャッシュは、hnf が更新されたかどうか見てるので、hnf の time stamp が、変わらないと表示は変わらないような。
という通り、該当日付のhnfファイルのタイムスタンプが更新されない限りは、その日の日記の表示内容更新処理は呼ばれず、日記更新処理から呼ばれるBBS付加文字列更新処理も呼ばれないわけだね。
根本的にBoard.pm内の関数の呼ばれるタイミングを勘違いしていたよ。そして、その理解に基づいて実装した今の仕様は、あまりにも冗長な部分が多いな。なんでhnsbbsの文字列更新処理がああいう書き方になっているのか、ようやく理解した。
ひとまず現状の仕様の延長で、俺の思っているような動きをするような変更方法を思いついたんだけど、ちょっと前までさかのぼって書き直す必要がありそうだな。いったんhnsbbs2は外しておこう。
_ 最低レベルの機能はこれで動くようになったか
hnsbbs2は、ようやくふつうにhnsと連動するところまでたどり着いた。あとは、bbsとしての機能をもうちょっと充実させつつ、管理ツールを作らないとな。デザインのカスタマイズもやらないと。
一通りの機能を実装したら、今度はそれを全体的にPerl5ライクに(hns本体となじみやすいコードに)書き直してみるか。もともとPerl5ライクな書き方のお勉強はしなければならないよなーと思っていたところだし、これでPerl5ライクな書き方を身につけて、それからほかのシステムを作ることにしよう。
あ、でもそれ以前にtextmaniaだけは早めに移転させておかないとなー。バックエンドの仕組みは、現在big-netで動かしているものよりもずいぶん洗練された(負荷が少なくて確実性が高い)ものになったんで、とっとと現行システムは停めてしまいたい。どうせtextmaniaはこのサーバー上では基本的に(web側は)phpで動かすつもりなんで、Perl5のお勉強とは関係ないし。
_ 雪が降っている
夕方に車で買い物に出たら、ちょうど雨が降り出すタイミングだった。と思っていたら、その雨はすぐにみぞれに変わり、買い物を終えて帰る頃には雪になっていた。そういや昨日会社で、明日は雪になるからバイクで出かけるのはやめ、と言っていた人がいたっけ。東京方面も雪なのかな? さいたまって東京よりも微妙に気温が低そうだけど。秩父とかあっちの方は、もう完全な雪だろうな。
2002-01-27 [長年日記]
_ 「三鷹うい」での検索が爆発中
冬樹蛉さんの新・大森なんでも伝言板でのキャンペーンが功を奏したのか、うちの旧サイトに、「三鷹うい」をキーワードに検索をかけてやってくる人の数が大爆発中。三[鷹|枝]せんせーもおしらせの告知が大々的にできて良かったですね。
_ きりたんぽ鍋
本日の夕食はきりたんぽ鍋。うちの鍋はいつも、家族3人(うち一人は一歳児)で大人4、5人前なんだけど、今日はさらに激しく6人前くらいの分量があった。さすがにこれは食いきれないべ、と思いつつも、気がつけば鍋はほぼ空っぽに。我ながら信じがたかった。
_ re:Days to solve the problem「hnsbbs2」
かぶってますね。現在hnsbbsをperl5にport中です。
あら、すでにそういう作業をやっておられたんですね。でもまあ私のは、hnsの中身もよくわからないままに作り始めちゃったものなんで、一般に公開できるレベルまでいつたどり着けるかわかりません。それに、機能ももともとのhnsbbsとはずいぶん違っている(省機能の方向に)んで、かぶっていてもそれなりに別物としての存在意義があるかも。とかいいつつも、もしもPerl版のhnsbbsがあったら、それをベースにカスタマイズして使っていただろうなー。
2002-01-28 [長年日記]
_ このサーバーで作る予定のものリスト。
- textmania……textmania2を移転する。バックエンドは完成。フロントエンドはphpで全部書き直す。
- 2ch thread ranking/bookmark……2ch thread rankingを移転するわけではない 。textmaniaのmy listみたいな自分用2chスレッドブックマークを作れるようにしつつ、各スレッドの登録数+得票でランキングを作り出す。また、ブックマークに入れたスレッドの情報に関しては、定期的もしくはユーザーの意志で最新の情報をサーバーサイドで取りに行くことで、スレッドのプロパティ情報(最終更新時間・レス数など)を2ch thread ranking/bookmarkを通して、利用者が共有できるようにする。これは全面的に新規作成。サーバー負荷(こちらも2ch側も)の兼ね合いなどについて、細かい部分まで仕様を十分に考えてから作る必要がある。
- ich(仮称)……2ch type bbs。いい名前が思いつかないのでネタ的仮称コードネーム。基本的には、Namazuによる全文検索が可能な2ch type bbs。ただし、雑談系スレッドまで検索対象にすると処理が重そうなので、検索対象スレッドの設定が可能。あと、管理負担を軽減するために、有効なメールアドレスを晒すことで誰もが削除人になることができるシステムにする。それとは別の削除人もあり。あと、各スレッドを立てるときにパスワードを登録することで、「パスワードを知っている人だけが書き込める」「パスワードを知っている人は削除ができる」機能を用意。パスワードで閲覧をブロックすることはできない。パスワードなしでスレッドを立てれば、ふつうのスレッドになる。あといろいろ考えている機能はあるけど、ここに書くと長くなるので後で別項目に。
- 更新報告型リンク集……仮コードネームすら決まっていない。ある話題に関して書いたテキストをまとめて見ることができたり、web上での議論における言及しあいを表現できたりする方向で考えている。参加資格は「自分の書いたテキストに対して批判を受ける覚悟がある人」。“話題”に関しては、報告者が自由に追加することができるが、利用者がいない“話題”はそのうち自動的に消える。自分のwebページ上で言及するほどのことでもない一言コメントなどは、リンク集上で投稿することができる。あと、参加者同士でSTRONG記名で投票しあってランキング的なものを作り出すというテキスト選的というかこのテキストサイトがすごい!的というか、な機能も用意。なんて、書くだけ書いてみたけど、こんなのに参加者いるかな? これについては、まだもやもやとしたイメージがあるだけで、まともに運営・稼働できるレベルの仕様は固まっていない。
_ re:*Messages*「最近の傾向?」
tDiary にあるツッコミ機能だが, やはり最近のはやりなのだろうか.
- hnsbbs2
- hnsbbs の Perl5 port
- TDSへのツッコミ機能拡張
といったあたり, まさにtDiaryのツッコミ機能の影響でしょうな.
うちの場合は、前のサイトの自作日記システム(2001年9月〜)でもいわゆる「ツッコミを入れる」機能を用意していたし、さらにその前に使っていた自作日記システム(2000年後半〜)でも、日記の1記事に1スレッドが対応する自作2ch type bbsを連携させていたんで、tDiaryに影響を受ける以前から、日記連動型bbsというものへの指向は強かった気がします。
というところから、無理矢理テキストサイト論っぽく思考を進めてみる。
従来こういう日記システムを使ってweb日記を書く人は、その主たる読者も同様にweb日記を書いている人であることが前提にあり(web日記コミュニティの内輪向け)、お互いの日記に対する言及は、それぞれ自分のweb日記という場を利用していた。その場合、いわゆる「ツッコミを入れる」的機能はさほど重要ではなかった。
しかし、web日記人口が増えるとともに、ライトユーザーも日記システムを利用するようになってくると、その読者が必ずしも自分もweb日記を書いている人間とは限らなくなってきた。そこで、web日記を書いていない人でも比較的(メールや別途用意されたbbsよりも)気軽に反応が得られそうな、いわゆる「ツッコミを入れる」的機能に対する需要が高まった。
なんて説を試しに唱えてみる。
_ strongの反対の意味を持つタグ
このサーバーに引っ越したついでに、新しく作るページはできるだけまともなHTML(←わざと曖昧な言い方でぼやかしてみる)で書こうとしている。ただし、textmaniaみたいに大量のリスト表示がメインのページだと、まともなHTMLで書くというのもなかなか難しい。
で、今考え込んでいるのは、PREタグの中で使用可能なnot strong表現。一応表示はしておくけれどもさほど重要じゃないから読み飛ばしてもいいよと、という修飾がしたい。font size=-1とかsmallとかは、PREタグの中では使っちゃダメと言われる。PREタグの中で使ってもいい、not strongなタグってあるのかな?
_ 早くもSPAMが来たよ
早くもこのドメインのメールアドレスにSPAMが来たよ。しかも洋ピン(←っていうな)。
あなたのサイトは検索エンジンに登録されていないみたいだけど、そんなじゃアクセス数が稼げないよ。うちらが高度なテクノロジーを使って各種検索エンジンに登録してあげようか? そうしたらもう、あんたのサイトのアクセス数は大爆発さ。月15ドルでどう? 一回こっきりなら60ドルでやりまっせ。(←壮大な意訳)
ってな感じのやつ。なんだかやたらとメールアドレスを見つけるのがはえーな。まさかレンタルサーバー会社がメールアドレス売っているんじゃあるまいな。と思ったりもしたけれども、よく考えたら新着ドメイン登録をまめにチェックしているところならば、このくらい早いSPAM送信も可能か。
_ textmaniaはだいたい動いた
こっちのサーバー版のtextmaniaもだいたい動き始めたんで、お暇な方はテストをしてみてください。基本的な使い方はtextmania2に準じていますが、機能を削ったり増やしたりしています。
_ メールアカウントの設定
このサーバーは、コントロールパネルからメールアカウントの設定をいじると、コントロールパネル経由では許されない設定(mail2nikkiをキック)部分を自動的に削除してしまうので、メールアカウントの設定を変更した場合は、あとで.procmailrcを直接修正しないと、hnsのメール経由での編集機能が無効になってしまうんだよ。という自分用のメモ書き。
_ 「豪傑アンテナ(カテゴリ別)」の所属
えっと、たぶん私は「日記(UNIXつかい,「Emacsつかい」を除く)」ではない気がしますよ。どのOS使いかと言われたらもうWindowsべったりな感じです。母国語はObject Pascal(Delphi)ですし……。
_ re:D-Point「ツッコミ機能をパクッたD-Pointとしては」
ボクなりに推察すると、掲示板と日記を連動することによって、どのトピックに対しての反応なのかがサイト運営者だけでなく読者にもよくわかる、というメリットの点が結構デカイんじゃないかと思いますね。
「ツッコミ機能」の持つ機能的意義についてはもちろんその通りです。それがなぜ最近になって流行りつつあるのか (←流行りつつあるという証明はなされていないけど)という部分についての理由として、試しにあのような理由を想定してみたわけですね。
まあ実際のところは、「そういうことが(技術的に)可能であるということに気がついた人が増えた」とか「cgiスクリプト書きの人口が増えて、動的webサイトの底辺が広がった」とか、その辺が主要因だろうけど。でもそんな理由は(テキストサイト論的には)つまらない。
2002-01-29 [長年日記]
_ 自作日記スクリプトを振り返ってみる
web日記を書き始めたのは1997年2月のことだったらしい。それからしばらくの間は、テキストエディタで手打ちもしくはホームページビルダーの昔のバージョンで静的HTMLを作っては、FTPでアップロードしていた。
最初のweb日記管理システムを作ったのは、2000年になってからだったらしい。これは動的HTML生成するシステムではなかった。web上の管理画面から日記本文を投稿すると、それを適当にHTMLタグで修飾しつつ、最新HTMLの上部と月ごとの過去ログHTMLの下部に挿入し、さらに目次HTMLを更新する仕組み。更新処理にだけcgiを使うもの。各記事の前後にはユニークID付きヘッダ&フッタをつけてあったんで、一応特定の記事削除・更新とかの処理もできたんだけど、あんまり良くできた管理ツールじゃなかったんで、複雑な編集処理はいったんHTMLをダウンロードして、手で直してから再アップロードしていた。
それじゃ管理の手間が大変だと思って、2000年後半に作ったのが、2代目web日記管理システム(これはまだ一部機能が細々と動いている)。これはやたらと高機能を目指して作ったんだけど、データ管理部分(dbmを複数使ってdbっぽく管理していた)がタコだったため、いまいちパフォーマンスが悪く、途中で機能拡張をあきらめた。でも、動的HTML生成にも静的HTML生成にも対応していたし、管理や検索(パフォーマンスが悪かったんで一般には非公開)もいろいろできた。特にその頃の仕様で捨てがたいのが、「出版システム」。ある特定の検索条件で選択された記事を、設定したテンプレートHTMLを元に、設定したファイル命名規則に則って、静的HTMLとして出力する仕組み。これは便利だった。
で、その2代目web日記管理システムで最初に、日記と連動するbbsを作ってみた。bbs部分はとてもできが悪い自作の2ch type bbs(これも一部残骸がまだ残っている)だったんだけど、各日記記事に「この日記にコメントする」リンクを用意し、そこからbbsに投稿した場合は日記システムとbbsとが相互に連携するようにしていた。ただし、連携といってもお互いに直接対応する記事/スレッドにリンクが張られるレベル。
そして3代目web日記管理システム。今big-netサーバーで動いている日記とかで使っているもの。これは、日記とbbsの連携をより密にしようということで、いわゆるtDiaryなんかの「ツッコミ機能」っぽく、日記とbbs投稿が同時に表示されるようにした。ただし、静的HTML出力した側ではbbs側の本文までは表示していない。
ちなみに、3代目web日記管理システムではバックエンドのデータ管理にPostgreSQLを使っている。といってもbig-netはそんなサービスは用意していないので、家サーバーでPostgreSQLを動かし、そのデータをhttp経由でbig-netに渡して使うという仕組み。なんで、家サーバーが落ちているときは更新ができなかったりする。家のネット環境がSo-net ADSL 8M with Fujitsu Modemになってからは、家サーバー(っつーか回線)の信頼性が低くなったせいで、いろいろ不便になった。
で、本当はこのサーバーに引っ越してからは、4代目にMySQLとばりばり連動して動くweb日記管理システムを作ろうと思っていたんだけど、なかなか制作に取りかかれなかった。一つのweb日記システムで、非常にさまざまなコンテンツを同時に扱えるような、柔軟なデータフォーマットが思いつかなかったからだ。
で、そんなときにほかのweb日記システムをいろいろ見て回ったところ、hnsのhnfにちょっと感動した。複数のtextフィールドの意味づけを状況に応じて変えて使い回すことでなんとかしよう(でも仕様制定も運用も面倒くさそう)という方向に凝り固まっていた俺には、hnfのような一つのフィールド(本文)+シンプルなコマンドルールでいろいろなコンテンツが実現可能な仕組みは思いつけなかった。
hnf的なアプローチは、俺が最近考えている「マンマシンインターフェースにおいて、ある程度以上に複雑で流動的な要素は、コンピュータではなく人間に吸収させた方が効率が良い」 という思想に合致している(のに、なぜ自力で思いつけなかったのか……。視野狭窄を起こしていたんだろうな)。
一瞬、hnfの思想をぱくって自作システムに組み込もうかとも思ったけれども、すでにここまで完成しているhnsと似たような仕組みを自前で作り直すのはバカらしい気がしたので、結局4代目開発計画は破棄し、hnsを使うことにした。まだたいした日数使っているわけではないけれども、hnsの機能・性能・使い勝手は十分に気に入っているんで、サーバー環境などの事情で使えなくなったりしない限りは、今後も使い続けるつもり。
といった話の中で、ウムイ「ツッコミ日記システムが流行ってる?」に絡めた話も書こうと思っていたんだけど、無駄に話が長くなっちゃったし、この記事に混ぜると論点が拡散しそうなんで、そっちについては後で別項目で書こう。
_ ウムイ「ツッコミ日記システムが流行ってる?」
ということで同時期に似たような仕組みを実装した理由を考えてみるとテキストサイト論的な考察になるんじゃないかと思ったんだけど、うちで実装した理由は、やっぱり読者からの要望だった。
私の場合は、日記ページ中にbbs(ツッコミ)の本文まで埋め込まれるようにしたのは、去年の後半の話だったんで、本当の意味では同時期に実装したわけではないんだけど、ひとまずそれはおいておくとして……。
ひとまず結論を先にいう。「ツッコミ日記システムに最大の影響を与えた存在は2ちゃんねるである 」説を唱えておこう。
動的web日記システムの前身となるのは、web掲示板(bbs)システムだろう。cgiスクリプトとしての基本的な機能はほとんど同じだ。初期の動的web日記システムとしては、bbsシステムを流用したものが少なくなかった。今でもbbs用のcgiスクリプトをそのままweb日記システム的に使っている人は珍しくない。
最近ではそうでもないだろうが、一昔前はbbsといえば、minibbsだった。時系列逆順にベタに書き込みを並べていくだけのシンプルなbbs。ひとまずあれを設置し、カスタマイズし、web掲示板cgiの基本を身につけた人は少なくないだろう。
しかし、minibbsのようなシンプルなbbsにはいくつかの欠点がある。複数の話題が並立した場合、どの書き込みがどの話題に関するものなのかがわかりにくい。また、ある程度以上話の流れが早いとログが流されてしまうため、ページを切り替えて続きを読んだり、あるいは最悪読んでいないログが消えてしまったりすることもある。
そこで、スクリプト書きは考える。「俺ならもっと使いやすくて高機能なbbsが作れる」と。
さまざまな人がさまざまな高機能型bbsスクリプトを書いた。私も、非常な複雑怪奇な内部仕様&シンプルな外部仕様を持つツリー構造型bbsを某所で作ってみた。それなりに使いやすいものから、非常に高機能だが高機能すぎて使いにくいものまで、いろんなbbsが作られた(今でも作られているだろう)。
しかし、スクリプト書きの高機能への志向とは裏腹に、一般ユーザーは高機能を求めなかった。それは古くはぁゃιぃのminibbs系、そしてあめぞう、2ちゃんねるのマルチスレッドフロート型bbs。階層構造などで話の流れ情報を管理する高機能なbbsよりも、シンプルに時系列で記事を並べるbbsの方をユーザーは支持したのだ(あめぞうや2ちゃんねるも、それぞれのスレッド自体は非常にシンプルな単機能bbs)。
そして、現在もっとも利用者が多い2ちゃんねるの形式が、現状においてもっともユーザーが支持するbbsの仕組みだということになる。2ちゃんねるの形式というのは、1にそのスレッドの主旨が書かれてあり、1の下にさまざまなコメント(レス)がつく形式。そしてヘッドラインとして、複数のスレッドの1+最近のコメントいくつかがまとめて表示される形式。これはまさしく、ツッコミ機能付きweb日記システムと同一の構造を持っている。
つまり、web日記システムにおけるツッコミ機能というものは、2ちゃんねる的な仕組みをユーザーが支持し、そういう現実からのフィードバックをスクリプト書きが反映し、という、とてもまっとうな機能拡張の流れを受けて、流行りつつあるのではないかと、まあそういう論旨なわけですけれども、なんかもう文章が長すぎてまじめにまとめるのがいやになっちゃったよ。
ちなみに、高機能型bbsの末裔としては、セガ伝言板とかスラッシュドット ジャパンとかが今でも残っているけれども、なんでこれらのbbsがいまだに高機能方向で残っているのかというと、そこに集まるのがある種のマニア なんで、高機能bbsの敷居の高さがさほど苦にならないからなんじゃないかなー、などとも思ったりするわけですよ。あと、bbs系の話題を出したならば一応触れておいた方がいいのかなと思われるYahoo!掲示板ですけど、なんであんなに使いにくい掲示板にあれだけのユーザーがいるのかというと、それはYahoo!だからってだけのことでしょうね。俺はあんな使いにくい掲示板は絶対使う気になれないな。
_ ようやくSo-netからの通知が来た
去年の年末ぎりぎりに開通したSo-net ADSL 8M。「開通工事終了後、開通確認のメールが来て、その翌月から課金開始」ということだったので、今年一月から課金開始だと思っていたら、なぜか工事以降So-netからはまったく音沙汰がなくなった。それがようやくさっき、So-netからの「ADSL開通確認&来月から課金を開始しますよ」メールが来た。あまりにも連絡が遅いもんだから、いろいろ邪推を暖めていたところだったのに。
ちなみに邪推の内容は、
現在So-net ADSL 8M(Acca回線)で提供している富士通製のモデムは、はっきりいって不良品だ。非常に多くのユーザーが原因不明のモデムのフリーズ(どう考えても回線の問題ではなさそう)に悩まされている。おそらくSo-netには多くの苦情が舞い込んでいることだろう。そんなときに“課金を開始します”などというメールを送っては、ただでさえパンク気味のサポート業務にとどめを刺してしまう。なんとかモデムの不良対策のめどがつくまでは、“課金を開始します”メールの送信を遅らせてしまおう。サポートをパンクさせてさらなるイメージダウンになるよりは、一月や二月分の課金代を未回収にした方がまだましだ。
というものでした。もしもこのメールと前後して(現時点では3月下旬に予定されている)モデムのファームウェアバージョンアップ通知がやってきたりしたら、邪推もあながち的はずれではなかったのかと思えるのだけど。さてどうだろう?
_ Windows XPをお使いのみなさま
Windows XPのエクスプローラになってから、ファイルコピー(ドラッグ&ドロップ)のときに、間違って隣のフォルダとかにファイルをコピーしてしまうことが増えてません? なんかドロップする際のフォーカスの挙動が、従来のエクスプローラと比べて(悪い方に)変わっている気がする。
_ 知らなかったよ%u
形式文字列表現(PascalでのFormat文。Cとかでいえばprintf)での%u(符号なし整数表現)って、負の整数(たとえば-10)を食わせると、符号部分を取って表示する(10になる)んじゃなくて、unsigned intに変換した結果(32ビット処理系だと4294967286)を表示するんだね。知らなかったよー。あるいは大昔には知っていたけれども忘れたのかな? 何にしろはまった。っつーか、今さら固定長フォーマットでなんか出力させんなよ!(←逆ギレ)
2002-01-30 [長年日記]
_ 実体参照になっているかわからん文字列を実体参照にする
教えて、正規表現のえらい人! いや、正規表現の普通の人でも答えられるのかもしれないけど。
えっと、cgiからhtmlとして出力したい文字列があるとするじゃないですか。で、その文字列は&とか>とか<とかが実体参照で表現されているかどうかがわからないわけですよ。で、ちゃんと実体参照で表現されている場合はそのまま、実体参照で表現されていない場合は実体参照に置換したいわけですね。その条件判断は、正規表現を使ってどう書けばいいんでしょうね? 一部を日本語で書けば、
- “&”で始まる文字列のうち「/&(amp|lt|gt|#[0-9A-Fa-f]+);/」という表現にマッチしないものがある
- 「/<|>|"/」にマッチする文字列がある
の二つの条件のどちらかを満たすものがあった場合は実体参照置換をかける、って感じだと思うんだけど、それをうまく一つの条件式に書けないんだよなー。考えれば考えるほど、正規表現ってよくわからない。
_ 今日は早く帰る
今日はオクサンが飲み会なんで、俺はムスコを保育園に迎えに行くために、早めに帰らないといけないんだよー。ってことで、帰ろう。
_ ムスコ バージョンアップ記録 Ver.1.07
- 相変わらず基本的に「ママ」「マンマ」「ワンワン」レベルの音声出力しかできない。最近唯一増えた語彙は「いないいないばー」。しかし使い道を間違えて覚えており、絵本を読んでいるときに、ページをめくりながら「いないいないばー」と発声する。
- 人が言っていることの意味はわからないままに、「うん」「いやいや」と首を振る。最初のうちは何にでも「いやいや」と答えるように設定されていたが、「いやいや」と答えるよりは「うん」と答えた方が、いいことが多いと気がついたのか、ちょっと前から何にでも「うん」と答えるように設定が変更された。しかし、それはそれでときどきまずいことがあるとも気づいたらしく、最近では再び基本設定が「いやいや」となった。ただ、乏しい判断能力ですら何かいいことがあると判断できた場合(=目の前に食べ物があるとき)は、「うん」と答える確率が高い。
- まだバージョン1.07程度のくせに、サスペンド開始時間は0時過ぎとなるのが珍しくない。下手すると2時過ぎまでサスペンドに入らない。レジューム時刻は8時半に設定されているのだが、最近夜中の4時5時に一時的にサスペンドから復帰したり、朝6時には起動してしまったりする。夜は9時頃から朝8時頃までの安定したサスペンド希望。
- 水分廃棄処理時に、所定の場所に廃棄することに成功することが少しずつ増えてきた。しかし、所定の場所への固形物廃棄処理に成功したことは、まだない。
- さいたまの水が体に合わないのか最近肌が荒れており、新品だった頃の接触インターフェースのなめらかさは失われつつある。
- 以上バージョン1.07における主な更新内容でした。
2002-01-31 [長年日記]
_ 2ch:「新しい2ch系サイトを作る予定」の352
352 名前:Name_Not_Found 投稿日:02/01/30 19:14 ID:F0HEINQD
[前提]
>>332
[問題]
スレッドリストをスレ形式にするのはどうだろう。
1 :教えて!WEB制作環境 ハード編
WEB制作のプロとして働いてるみなさんは、どんな環境で仕事をして
いるのでしょうか?
2 :■この素材屋イイ(・∀・)!マターリ紹介しあうスッドレ■
素材関係についてはスレが乱立してるっぽいですが、
漏れが見た限りでは、アンチやらグチ吐きやら教えて君やら単発質問やら、
コレっていうものが無かったので立てて見ました。
こんな感じ。少しは見やすくなるんじゃないかなーと。
この案はいいな。「スレッドタイトル一覧」→「スレッドタイトル+1の要約一覧」→「最近書き込みがあったスレッドの1+最新レスいくつかのヘッドライン」→「各レスの詳細」という段階を用意すると、特に新スレチェック時の負担が減りそうな気がする。
_ 後悔日誌 平成14年1月30日(水)
userdel だったか deluser だったか、はたまた delusr だったかとハンドブック片手にシクハクする午前中。
この間俺も同じようなことをやったりしたので、ちとわらた。userdel、deluser、deleteuser、userdelete、destroyuser(きゃあ、PostgreSQLのユーザーがぁ!)とかいろいろ試して全部ダメで、「なんでやねん」って思ったら、suするときに「-」していなかったせいで、PATHにsbinが追加されていないというオチだった。えせ管理者はつらい。
_ 携帯端末対応
携帯端末用のhomeを追加。ishinao.netのhomeにアクセスすると、主だった携帯電話系機種を自動判別(hnsで使っている条件判断を流用)して転送をかけるようにした。hnsはもともと携帯端末プラグイン(i-system)に対応しているんで、せっかくだからそれを活かすことができるようにということで。あと、せっかくだからi-systemからもhnsbbs2の読み書きができるようにしてみようかな。あんまり利用者がいるとも思えないから、優先順位は思いっきり低めだけど。
_ セコワル
EUCで「詳細」と出力した結果をシフトJISで見ると、半角カナで「セワコル」と表示されるのがどうしても「セコワル」に読めてしまい、そんな表示が縦に100件も並んでいるのを見ると、何となく「おまえはセコい!」「おまえが悪い!」と責められているような気になったりしませんか? なったりはしません。←自己完結
_ セルフブラクラ
LIRS形式(いろんなwebページのURL、更新時刻などが列挙されている)のファイルをエディタでいじっているときに、何気なく「すべて選択」(CTRL+A)→「コピー」(CTRL+C)をした。Donut Rのクリップボード監視機能をオンにしていたのをすっかり忘れていた。数100ページ分のURLがどかどかと開かれ、Donut Rが落ちた。
_ phplibを入れてみた
このサーバーはphpが使えるんだけど、パッケージ系レンタルサーバーの常で入っているバージョンが古い。今さらphp3を使わなければならない。php3なんてこのサーバーを借りてから初めて使ったんだけど、php4に慣れた(ってほど使ってないけど)身にはあまりにも機能が少なくてきつい。標準的だと思っていた関数がないし(foreachすらない)、セッション関連の関数なんかもきれいさっぱりない。
で、そういやphp3の頃には高機能な外部ライブラリを使ってそういうのを実現する方法があったような気が……、と思って探してみたらphplibってのがあったんで入れてみた。おお、ちゃんとセッションが使えるようになったよ。
でもこれって、dbを使ってセッション情報を管理するのか。ただでさえ、textmaniaを直接dbにアクセスする方式にしちゃったんで、db負荷が気になるところなのに。セッション管理なんかでいちいちdbアクセスを発生させちゃう価値はあるんだろうか。セッション管理なしでできることしかやらない方針にした方がいいかな。
_ 新バイオノートSRX7E/P
年末に買ったバイオノートSRX7の後継機種SRX7E/Pが早くも発表された。でも、噂通り基本スペックはほとんど変わらず。インテルが超省電力タイプの新しいCPUを作らない限りは、根本的に変えることはできないもんな。
で、スペック表から変更されたところをチェックすると、一番大きいのはメモリが標準で256Mバイトになったところ。しかし、オンボード256Mバイトではなく、オンボード128Mバイト+増設128Mバイトってあたりがさいてー。と言っても、うちとまったく同じ構成なんだけれど、ユーザーから128M+256Mにするという選択肢を奪っちゃダメじゃん。いくら純正で256Mバイトメモリを用意していないからってさ。
あと、OSは最上位の7だけがXP Professionalになった。これはまあ俺にとってはどうでもいい話だけれども、企業ユーザーなんかがバイオを選ばない理由が一つ減ってよろしいんじゃないでしょうか。でもまあ、企業ユーザーならばThinkPadでも買っておいた方がいい気がするけど。
Bluetoothのバージョンも特に変わってはいないみたいだね。Bluetooth PHS 633Sに対応したとか発表されてたけど、別に俺の旧機種だって普通に対応しているし。ハードウェア的にはBluetooth 1.1でひとまず安定にこぎ着けたみたいだから、あとはWindows XPが標準でBluetoothサポートするようになったり、買う気になるようなBluetooth対応PDAが出たりするのを待てばいいか。
そういや、さりげなく変更されている部分として、HDDのフォーマットがFAT32からNTFSに変わっている。バイオノートみたいなものが標準フォーマットとしてNTFSを採用するようになるってことは、Windows系では今後ようやくNTFSが標準フォーマット化されるってことかな? ほかのOSを入れたい人には迷惑な話かもしれないけど。

