2004年 08月 30日

セッション * PHP

PHP のセッション管理は便利だなぁ。アホでも作れる。

2004年 08月 26日

XML にユーザ入力のデータを保存

元データを忠実にマークアップして保存しておけばいいだけだね。っていってもユーザ入力のデータで保存するのは改行ぐらいだろうから、l 要素に各行格納してつっこめばOKな気がする。必要なら文中の URI をマークしてもいいかもしれない。

2004年 08月 24日

掲示板システムを XML 化?

掲示板のデータを XML にすることは意味あるだろうか……再利用性はあがるけれど、掲示板のデータを再利用することなんてあるのかとか。むしろいちいち DOM を使うことによって一部複雑になる気もする。無限スレッドみたいなのは得意だろうけど、ログが溜まってくると処理がもたつくし、過去ログを作るとしたらどうやって作るかとか。まぁ DOMXPath 使って古い数件を別ファイルにするような感じになるのかな。

とりあえずやってみれば問題点が出てきそう。

つまりやろうとしてるスクリプトが激しく面倒くさいので、PHP+DOM による書き込み編集をどうやって綺麗に実装しようか考えるのに掲示板というのはシンプルでいいんじゃん? 的な目論見があるのです。

メッセージ本文をそのまま保存したら直接 XSLT に放り込めないよなぁ。だからといって変換してからだと編集とかがやりにくそう。出力するときも DOM 使って読み出せばいいんだけどね……独自データ用にパーサーを用意しなくていいのはいいんだけどなぁ。

2004年 08月 18日

携帯のキーストローク数

function array_index(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val)
return i;
}
return false;
}
Array.prototype.index = array_index;
// str のキーストローク数を求める。key はオプション
function get_stroke(str, key) {
if (!key)
key = [["@"], ["a", "b", "c"], ["d", "e", "f"],
["g", "h", "i"], ["j", "k", "l"], ["m", "n", "o"],
["p", "q", "r", "s"], ["t", "u", "v"], ["w", "x", "y", "z"],
[",", "."]];
var ret = 0;
for (var i = 0; i < str.length; i++) {
for(var j = 0; j < key.length; j++) {
var pos = key[j].index(str.charAt(i));
if (pos !== false) {
ret += pos + 1;
if (key[j].index(str.charAt(i-1)) !== false)
ret += 1;
}
}
}
return ret;
}
get_stroke("aaa"); // => 5;
get_stroke("lowreal.net"); // => 23;
get_stroke("adg.jp"); // => 7

key を変更すればひらがな入力のストローク数も!(意味ないけど)てか2バイトはできないかも。どうでもいい

key はボタンごとの文字の配列。前の文字が同じボタンの場合、そのままじゃ入力できないので +1 してる。なんかアレだ……

キャリアによってキー配置が違うかもしれないけど、知らない。

.jp ドメインはさりげなく最短なので素敵よね。

2004年 08月 16日

xml on javascript

XML for <SCRIPT> うわーあやしいーすげー

socket

結構前からいろいろやってるんだけど、ソケット関連が未だによくわかってない。巨大なバイナリデータを送受信するとして、どうやって順次受信してファイルに保存していくかとか、よくわからない。一定量受信して、その受信した分を string につっこんで、別スレッドで書き込まれた string を順次読み出して処理するのかしら。C でも Ruby でもいいからなんかサンプルが欲しい……短いデータのやり取りなら仕組みがよくわからないでも gets で読み出してけばてけとーにできるんだけども……

ちなみに C の場合もっと意味わからない。というかサンプルめちゃ少ない。オープンソースのプロジェクトとかのソース見てみようとしても、だいたいプロジェクトっていう名前がついてるのは大規模すぎて読めない罠。

2004年 08月 13日

アルゴリズムの本が欲しい

でも高い。ひどく高い。

自分は趣味でちまちまプログラムを書いてみたいって程度なので、できるだけアートでエレガントなソースを書きたいのです。「あーなんて美しいアルゴリズムだ!(でも自分で考えたんじゃない)」とか「やべーよ! めっちゃ綺麗だよ、このソース」とか。そういうのが好きです。きたねープログラムソースなんざ Shift+Delete (on win) でしょう?

2004年 08月 10日

flock のあれ

wb.php でちゃんとロックするように修正。

  1. $fp = fopen($filename, "rb+"); // 読み書き両用モードでオープン
  2. flock($fp, LOCK_EX); // ロックできるまで頑張る。
  3. $content = fread($fp, filesize($filename)); // 内容の読み込み。
  4. 読み込んだ内容でいろいろやる。(eg. domxml_open_mem($content);)
  5. rewind($fp); // ファイルポインタを先頭に
  6. fwrite($fp, $new_content); // いろいろやった内容を書き込み
  7. ftruncate($fp, ftell($fp)); // ファイルサイズあわせ
  8. fclose($fp);

まー flock考 とか素敵

flock はループさせる必要ないのかもしれない……勝手に使えるようになるまで待つのかな。いらないみたいだ。

Mona OS

スレ読んでてちょっとわくわくした。

2004年 08月 08日

スクリプト側でのコメントのサニタイズ

DOM を使って XML インスタンスを作るときは DOM が勝手にサニタライズをやってくれるようだ(タグそのまま書けたら DOM の構造が狂ってしまうのでよく考えれば当たり前だけど)。今までスクリプト側でもやっていたから、<, >, & をコメントに入れると &lt;, &gt;, &amp; になってしまっていた。