TOPページへ

日記帳(2004.11)

日記Indexへ


2004/11/29(月)

最近またcgiをチクチクいじっています。
今回は客がついているため真面目に。内部的な変なこだわりは捨てて、安定に、速く、快適に。
また従来は自分が設定する為、ハードコーディングでよかった部分を可能な限りグローバル変数化してユーザが設置前にいじれるようにする。
まぁここがスクリプト言語のいいところですな。

客といっても別にお金貰ってやってるわけではなくて、RO内のギルドのサイトでメンバリストを表示/管理するためのスクリプトです。
もっと具体的に言うと、ギルドメンバーを全員、それも複数キャラ含めて全て登録しておいて、あ、レコードはキャラクタごとですね。レコード毎に出欠を登録できるというものです。
何に使うかと言うと、イベントなどへの出席/欠席/遅刻/早退などを予め申告するようにしようと。ま、言ってしまえばGvを主眼に据えているのは確かです。
個人的には会社で縛られて、家に帰ってまで事前登録だ申請だと堅苦しいことはしたくない面もあるんですが、こと大規模イベント(Gv含む)となると運営者(指揮官/作戦参謀)の負担が尋常でないのも確かなんですね。
手札を1枚も見ずに、それどころか1枚もドローせずに作戦を決めろと言われてもね。で、以前、某大手に参加していた時にギルドデータベースを使わせてもらっていて、それが良くできていたのでほぼまんまパクりました(゚Д゚)
まぁクローンというか、ソースをパクったわけではなくて(※)あちらがPHPだったので、そして俺はPHPを微塵も理解できていないため、Perlで1から書き起こしました。
色指定なんかのスタイルは流用させて頂きました。
webデザインなどそんなものだ。フフリ。

※・・・というか、ver.3くらいまで改版してる最中に本家が丸ごと公開してるのを知ってショックを受けました。
俺の存在価値が_| ̄|.':*`==○ スポーン

利便性のため、cookie保存/読み出しを追加。削除機能を入れ忘れて後で慌てて実装することに。
利便性のため、同一プレイヤの複数キャラ間で出席登録内容の排他を掛けた。ブランクの場合の特例を忘れていてプレイヤ登録していない人全員の内一人しか出席できないようになってしまい慌てて修正。
その他所属ギルドを登録可能としたりソートアルゴリズムを多重ソート対応にしてみたりギルド単位で集計を行ってみたりといろいろ。
正直、楽しいなぁ。

ここで問題が一つ。
GETでスクリプトを呼んだ場合、GET文にそのままずら〜〜っとパラメータがついて送られるので、つまるところURL欄に表示されたままとなってしまい極論すれば手打ちで変なパラメータを送られる危険があります。

一方でPOSTメソッドで呼び出した場合、それはないが呼び出すたびにURLとは別にパラメータを送ってやらないといけない。それが何か?というとリロードした時にも再度パラメータを送らなくてはならないためブラウザによっては警告を出したりします。あるいは出さないにしても同じパラメータを連続で送られた場合の対処はスクリプト側で実装しなくてはならないわけです。

今回のスクリプトでは擬似DBがレコード番号を一意に保っているため同じレコード番号に対する削除要請が連続で来ても基本的に害はありませんが、名簿を簡易にスタック形式で扱っていた場合、(削除したときに後ろの人の番号が詰まるように)同一レコードに対する削除コマンドが連続できたらそこから後ろの人がガンガン消えちゃいますよね。
別にリロードしたいわけじゃないけど何が問題かというと、登録関数→表示関数と直接呼んでいたため、リスト表示から何か次のページへ行った後、ブラウザの「戻る」ボタンないし同等の操作を行うことによって前の登録関数を同じパラメータでもう一度呼んでしまうことですた。
通常、こういった事故的な多重操作、及び同メカニズムを利用した能動的な攻撃を回避する為、Locationヘッダを発行することによってHTTP上でリダイレクトするのが一般的です。
つまりサーバからブラウザに「後はこっちを読んでくれ」とURLを渡し、それによりブラウザがもう一度表示関数だけを呼ぶように指示します。
こうすればリロードされようが戻ろうが進もうが関係無くなりますんで。
当スクリプトでも削除していたリダイレクト関数を復活させて万事OK。
万事というかこうするとmainコール→登録関数コール→再度スクリプト呼び出し→mainコール→表示関数コールとサーバの負荷は2倍になるわけですが。
。。。
まだ罠が。
言語とかサーバ固有の問題も面白いけれど、こういう複合的な状況もなかなか味がありますなぁ。
元々リダイレクトによる再呼び出しの負荷は折込済みではあるんですが、ここに来て客先の運用がフリーのレンタルスペースであり禁止事項に「ユニークで****PVを超えること」の文言が。
「PV(ページビュー)」も「ユニーク」もいまいち定義的じゃない気がしますが、(使う人が勝手な意味で使うから)PVと言う場合、URIで判断してるんだろうか。。。
引数つけても、同じなんだろうな。。。ヤヴァいかも。

あんまりユーザ設定項目多くしても面倒だと思うんですけどね。バージョンアップの度に設定値を書き写さないといけないから。
しかしこっちとしては安易に設定で逃げたくなるなる(笑)
あとはあれですなぁ。iniファイルに書き出して引き継ぐという手もありますが・・・単なる表示動作だけでファイルアクセスが頻発するのもちょっと遠慮したいところ。


2004/11/28()

娘は至って元気。
ハイハイといえるものではなく、ああ腰は上げられないからね。膝で下半身を支えられないんだけど、ほぼ上半身の、それも腕だけで畳を掴んで匍匐前進。
柔道でこんな基礎練習、あるなぁ。。。

ちなみにその場での360°ターンもお手の物で、畳の上での走破性はかなりのものだ。
もう放って置くのは危険すぎる。

目下の懸念は電源コンセントですよ。
コンセントってなぜか下のほうにあるんで、地べたを這ってる娘でも手が届いてしまう。
これを何で隔離するかだが。。。


2004/11/23()

娘は最近、何でも手を出して掴み、口に入れるようになった。
舐めて確認する過程は必要だろうからそれでいいんだけど、俺の手も口に入れて、噛む。
まあかわいいもんだね、と思っていたんだけど何か痛いぞ?
あ〜歯が生えてる。。。。

歯が生えかけてる時ってのは肉を割って出てくるわけだから若干の痛覚があり、軽い痛覚ってのはあれですよ、痒みと認識されるわけだ。
ごりごり噛みたいんだろうなぁ。いてて。

カサカサ音がするものがお気に入りのようだったのでわざわざ専用の「ミッフィーのカサカサ遊び」なるおもちゃを買い与えてみる。
ところが反応薄で、それが収納されている箱を転がして遊んでいた。

それから布団やタオルの端っこのタグ、あれが妙に気になるようでいつもいじったり舐めたりしてたので「タグ大好き」という玩具も買ってみた。
ちなみにこんな製品の存在自体が、他の幼児もタグが好きだという証拠なのだが、実際のところこれも空振った。
いまいち反応薄。布のボールに小さいタグがたくさんついてるんだが、ボールなのでベビーカーから落ちないように紐をつけてみたところ、その紐にひたすらご執心の様子。

今はカサカサ遊びよりも本物の紙をぐちゃぐちゃにするのが楽しいようだ。
台所にメタルラックを組もうとカタログを貰ってきたのにちょっと目を離すと、あれ?どこいった?
あれ?楽しそうやな。なにそれ?ああああああああああああああああああああああああああ!

ぐちゃぐちゃ。

(薄い紙だと破って食べちゃうのでさらに目が離せない)

大人がいろいろ用意しても常に斜め上を行かれる感じがする。


2004/11/20(土)

市内ではあるが公園へ遊びに行ってきた。
まぁ歩き回ってきただけだし、娘はベビーカーに座ってるだけだけどね。
そろそろ回りを気にしだして、必死に体を起こして地面に手を伸ばす。
ので危ない。


2004/11/14()

朝10時前の急行を狙って余裕の帰宅。
しかし着いたのは16時半。なかなか遠いね。

島原→諫早は島原鉄道(通称島鉄)という電車が走っていて、これがまた一両のみで単線、線路も曲がりくねって海沿いを走るという、ヘタをすればディズニーランドのアトラクションなんじゃないかと思うくらいの迫力がある。
しかも切符は磁気じゃなく、鋏で切ってくれる。
お高いが乗る価値はあるぞ。

往復に使った長崎空港は立派なもんだった。
引き合いに出したくはないが某空港を思い浮かべていた為、みやげ物も昼飯も期待していなかったんだが、あれだけあれば充分だ。
前もってお土産買う必要ないじゃないか!

ただ地元の人間はここを大村空港というので注意だ。それで経路検索しても出てこないので準備段階でかなり迷った。
当日は知っていたので大丈夫だったが。

そろそろ慣れた国内便、ではあるが着陸間際に激しく頭痛。実は初日のダウンは風邪だけでなくこれが原因だった。
とはいえ風邪は明らかに影響している、耳抜きが自然にできてないんだろうな。
一応鼻はとおってるつもりだったんだけど。
航空機のキャビンは加圧されてはいるが、雲の上を飛んでいる時は0.8気圧程度には落ちるという。
従って上昇時には鼻の奥〜内耳の閉じた空間は相対的に膨張することとなり軽い頭痛を生ずる。
通常、「つばを飲む」や「欠伸をする」などの簡易な耳抜きにより外界と体内の気圧を平衡させ、この圧力差から来る応力を取り除く。
降りる時はつまりその逆で、低い気圧に平衡してしまった体内は負圧となり、内側に向かって外気が応力をかけることになる。
どうやら鼓膜という奴は内側に凹む方向に弱いらしく、着陸時の方がよく問題になるようだ。
折り悪く体調不良の俺は減圧状態で思いっ切り欠伸を連発し、着陸時に地獄を見た。
はっきりいってこの頭痛状態に陥ってからではもう痛くて痛くて耳抜きどころではない。
随意で欠伸をする術は心得ているものの、腫れた喉と鼻腔を押し広げるだけの大きな動作にはとても耐えられない。
ぐったりを通り越して悶えながら機を降りた。初日は寝るまでずっと、欠伸の度に鼓膜が「バリバリ」と音を立てた。
帰りの便では減圧状態で耳抜きしないで耐えることにした。着陸時の負荷は随分減ったが、本来なら常時スムースに気圧と平衡状態を保てるのが理想なんだろうか。

一方で、気圧の落ち込んだ状態に体が順応しようとすることで発生する頭痛もあるらしい。
こちらのメカニズムはまた違っていて(より単純で)、単位血液量あたりの酸素濃度が落ちた時、酸素の総量を稼ぐために流量を増やすのだそうだ。
流量を増やすには管径か流速を上げるしかないわけで、人体は勝手に血管を広げるんだそうな。(圧縮するという手はここでは無視な)
血管の膨張によって周辺の神経が圧迫され頭痛を起こすんだと。

どっちだなんて言われてもわかんないね。痛いだけだし。


2004/11/13(土)

日中は暇なので両親とぶらぶら島原見学を。
島原城、武家屋敷、また街中をぶらつく。
なかなかいいもんだと。どこにいても山と海が見えるなあ。平地ってもんが無いな。
今度は嫁さんと娘を連れてきて海沿いをレンタカーで走ろうか。

肝心の披露宴。知らされてなかったぞ90人集まるなんて。
家族だけのささやかな会食って言ってなかったかお前。。。。

どうやら、恩師に「ここらでやっていきたかったらきちんと挙げろ」と釘を刺されたらしい。
人間関係の疎な都会との違いか。医学系は最後の○○○組織というのが本当なのか。
地元の上下関係が思いっきり身についているようだ。

けど仕事関係者がほとんどという割りにはずいぶんな盛り上がりだった。

正直、弟自身のスピーチが一番信じられなかったが。
弟というだけでいつまでも子ども扱いしていたのは俺の方だったみたいだ。

ちなみに赴任以降会うたび縦に横に広がっていくヤツの体躯、また強烈に押しの強いそのキャラクタから「彼の兄」というイメージは相当なものが出来上がっていたらしく、俺は何度「弟さんですか?」と言われたことか。(泣

切腹!;;


2004/11/12(金)

会社をさぼって羽田へ向かう。
明日の弟の結婚式の為だ。
二日ほど前から喉が痛くて頻繁に咳をしながら、娘に移すよりは外にいたほうがいいか、などと無責任なことを思いながらアシモフの「黒後家」の4、5巻を携えて出発。
さすがにネタが尽きて来た感じはあるな。

時間的には余裕がありすぎて困っちゃうので川崎でヨドバシを物色する。
実は親の要請でデジカメ、また嫁さんの要請でビデオカメラを持っていったわけだが(各々軽いけど総重量は結構あるぞ)、入れ物を用意してなかった。ので、この際なのでデジカメケースと・・・ビデオカメラはお弁当袋でいいや。ちょうどいい大きさだし。
デジカメは Nikon のメーカー品を購入。緩衝材は無いがまぁいいか。バッグの中のさらに中だし。・・・と、ストラップ通せねぇえええ!なんだこれ!

使う時はデジカメのケースを別にしまわないといかんのか。アホくさ!もうちょっと考えてくれよ。昔から他機種の専用ケースでは外したケースを無くさない工夫って結構されてると思うぞ。

目的地は島原。長崎空港からは距離的には大して・・・交通手段が無い。_| ̄|○
弟が車で迎えに来てくれたわけだが、遠かった。
すでに諫早駅で拾ってきていた両親と共に、家族が揃ったのは俺の結婚式以来だ。

横道ながら、島原の魚はうまかった。生臭くもなかった。違うものだと思った。
魚なんてどう加工しようが生臭くて、仮にそれをごまかす調理で(調味料で)流し込んだとしても胃から逆流する生臭ガスでやられるものだと確信していたが揺らいだ。

宿には擬似温泉があったが頭痛のため遠慮する。


2004/11/8(月)

任天堂DSの発売が近いですな。
別に興味はないけど、これが出てくれることでGBA-SPが一気に値崩れしてくれることを期待。
デザインはこっちの方がいいし、およおよでおよおよおよすれば外ROMからブートして素直なARM環境が手に入るわけですよ。
そうすればあのカッコイイ筐体であんなことやこんなことができるわけで。

くすくすくす


2004/11/3(水)

ケータイのGPSを使っているユーザはたったの1.2%なんだそうな。

意外と低いと評するかどうか。個人的に言わせて貰えば「意外と高い」なというところ。

だってさ、GPSが必要になるような見知らぬ土地へ行く機会がどれだけあるだろうか。
今のところカーナビすら必要としていない人間が、自分の足でどこへ行くのかと。ああだから俺個人ね。
まぁ車ではたまに遠くへ出かければ迷うこともあって、そういうときにはカーナビつけてない自分を呪うわけだが、徒歩の出先で迷子になって「ケータイにGPSがあれば」と思うことは無い。(※)

というか、よっぽど遠くへ行くのでもなければ俺が迷うのは大概が大規模な駅につながる地下街であって、GPSなどそもそも届かないんじゃないかと。

※・・・PHSで基地局の座標が取れるのでその程度の用であれば京ポンで充分だし。

外回りの営業さんで、しかも新規開拓がメインの業務の人で、なおかつ会社用のケータイを自由に選べる人なら使うのかな。
そんな人がどれだけいるのか、いねーよな。だから1.2%もいないと思ったんだが。。。


2004/11/1(月)

アイザック・アシモフの「黒後家蜘蛛の会」にハマる。
嫁さんが昔買った1巻が本棚にずっと鎮座していたのだが、長いこと無視していた。
これがまあ読んでみるとなかなか痛快で、2巻3巻と買ってしまった。

さすがに4、5巻になってくるとパワーダウンは否めない。
が、1巻の内容で二つ、どうにも気に掛かるものが。
うち一つは暗号のビット数に関する問題だ。

30本収容のマッチブックでどれだけの情報が伝えられるかというのが問題なのだが、そもそも話の前提としてスパイは5、6語以上を欲しているとのこと。
で、その「語」というのが当然ながら「英単語」のことなわけで、厳密に何文字とはいえないんだが・・・
少なくとも最低は1文字だよね。

ところで我らがヘンリーは30本のマッチを取り去る組み合わせで10億通りを超える内容を伝えられることを挙げ、「6語どころの話ではないね」ということになる。

が、冷静に考えてみよう。
マッチ1本の有無だけで言うのならば、1本は即ち1ビットであって1か0かの2値しか保持できない。
これはごくごくあたりまえのバイナリデータだ。
30ビットだとどうなるか。当然ながら前述の計算通り、10億値を超える。だがそれは10億なにがしの値を「1つだけ」保持できるということなのだ。
つまり、10億種類の文字記号の中の一つを指定できるだけ。
値をいくつ伝えるかになるとだね、結局「何ビットの値をいくつ」と区切らなくてはいけない。
逆に、情報の最小単位は何値必要か、でビット数が決まる。

彼らは米国人だからしてアルファベットと記号が少々あればよかろう、純粋なASCII文字で足りるとしても7bit必要だ。
つまり、マッチブックを7bitが4つ並んだと考えても(2bit余るけどな)たった4文字しか伝えられない。
6単語どころじゃないですぞ。
もう記号なんぞいらない、アルファベットも大文字だけでいい、としても26値、つまり5bitは必要だ。
30本のマッチブックを5bit×6=30bitとして扱えばなんとか6文字だ。
これでなんとか1文字の単語を6つ送ることができる(笑)

決め台詞の「6語どころではないね」というのは「6語どころかもっとたくさん伝えられる」という意味かと思ったが良く考えてみれば「アルファベット6文字が関の山」だと思われ。

というか、マッチ棒の列を見てバイナリ列を連想しなかったとしたら諜報部勤務のはずのトランブルとしては失職モノだと思うが。。。

もう一点の気がかりな話はまた機会があれば。