Archive for 3月, 2004

KOF98&2002の全国大会?

木曜日, 3月 25th, 2004

Duelling the KOF
なるものが行われるそうな。
中国地方の予選開催店舗はジスタだけか……。
ルールだと純粋な個人戦じゃないようだし、結果だけ楽しむことになりそ。

ところで今月に松プリで開催した闘劇KOF2003の予選。
結局参加者20人越えました……すげぇな。
なぜ、すげぇなんて言ってしまうかというと個人的には精神的ブラクラ並のバカゲームと思ってるので、こんなのに情熱よく注げるなあと冷ややかな目で見てるから(邪)。
闘劇終わったら誰もプレイしないよね。このゲーム。

続メッセのオンラインステータス

木曜日, 3月 25th, 2004

Online Status Indicator(以下OSIと表記)の導入完了です。
←は早速自宅サーバ利用のモノに切り替えていたりして(見た目では分からないけど)。
現在、MSNメッセンジャーのみ設定していますので登録を行えばどなたでも利用可能となりました。
こちらがレジスト用のページです。
(1) mediumにMSNを選択
(2) user idに利用しているhotmailアカウントを入力
(3) registerボタンをクリック
以上の操作で登録が完了します。
画面が切り替わり、OSIを利用するために必要なHTMLコードが表示されますのでコピーして利用します。
[code]
HTML code to put on your web page:



border="0" ALT="MSN Online Status Indicator" onerror="this.onerror=null;this.src='http://status.galaxyradioaustria.com:8080/msn/??????@hotmail.com';"/>


[/code]

なお、MSNmessangerのプライバシー設定で「許可するメンバのみに……」という項目のチェックをはずす必要があります。

あとICQとYahoo!程度は利用可能にしようかと思います。

メッセのオンラインステータス

水曜日, 3月 24th, 2004

←にMSNmessangerの私のオンラインステータスを表示させてます。
これはココのプログラムを提供している有志のサーバにアカウント登録して実現する仕組み。

……そういえば私は自宅で24時間サーバ稼働させてるんですよね。
ということは私のサーバも参加させちゃうのもありだなぁと。今利用させてもらっているサーバが回線的に相性微妙な感じがしてるんで。

サイトをみてみると、実際のプログラムはJavaで作成されてます。
ということはJava環境(JRE)があれば動かせるってことです。
これは簡単にサービス提供サーバになれそう。
というわけで、とりあえずSUNからlinux用のJREぶんどってきます。

とりあえずアーカイブ取ってきたのでこれから展開します。
(続く)

Perlクイズ

火曜日, 3月 23rd, 2004

そういえばと思い、特殊変数とか使って書いてみた。
1行で片付いちゃったり。もちろん、これでも実行結果は問題ないです。
[code]
sub is_balanced {
while( $_[0] =~ s/\([^()]*\)// ){ if( !$_[0] ){return 1} }
}
[/code]
しかし、こうなると何やってるんだこれ?感が漂ってきますね(笑)。

書いた自分でも読みにくいし……(笑)。だから、こういう書き方を使うことはまずないんですが。まあ、頭の体操、脳みそストレッチてことでたまに考えるのは楽しかったりするのでいいかな。

分かりにくいところは明示的に戻り値を返さなかったら戻り値が0っつーことですな。

if文も無くせました(笑)
[code]
sub is_balanced {
while( $_[0] =~ s/\([^()]*\)// ){} return !$_[0];
}
[/code]
大差ないけどもうひとつ
[code]
sub is_balanced {
1 while $_[0] =~ s/\([^()]*\)//g; return !$_[0];
}
[/code]

続 aws.pl

火曜日, 3月 23rd, 2004

なんというか根本的に動作が変。

MainIndexテンプレートに
<MTAws></MTAws>
と記述してRebuild。これで、このコンテナが空白になっているはず……。
なんだけど、なぜか
</MTAws>
と閉じタグだけは残るという妙な動き。

検索して、「こうすれば動いた」っていう内容ががぽこぽこみつかるんですがPerl5.8での話ってのが多い。一応参考にして同じ修正入れてみたけどNG。
さすがに5.005で動かしてるところって無いみたいでなんとも厳しいな……。

sub aws()の内容じゃない感じがなんかある。MTのライブラリに方に原因あったりしたらやだなあ(さすがにそれは無いと思うが)

<追記>
起きてから改めて調べてたら解決……。
pluginsディレクトリをpluginディレクトリとして作成してたという凡ミスが原因だった。ヤレヤレだ。

Perlクイズ

月曜日, 3月 22nd, 2004

いくつか登録しているメールマガジンの中で、毎号来る度にわくわくするのが結城浩さん主催のPerlクイズです。
パズルの回はたま~に読んでてPerlDrunkerになりそうな解答が来たりするのも楽しみのひとつかな(笑)
最新号の問題は自力で解けるかどうかで、より難しいプログラムと向き合えるかが判断できそうな良質な問題だと思います。
Perlの勉強をしてる人、今回の問題に取り組んでみることを強く推奨します、はい。
問題については、バックナンバーで最新号も読めるのでこちらを参照しましょう。

問題の骨子は「関数is_balancedの内容を記述すべし」です。
もっとも、問題で考えるべきところは括弧の対応の判別をどういった手段で行うかという部分なのですね。
解法として簡単に思いつく手段は、「正規表現を使う」と「文字列分解して力技でゴリゴリ」といったところが有力。
後者の手段は個人的に美しくなくてイヤ。とか言ってるとtrickyでcoolな解答が解答編のメールで来そうな気がします(笑)。
そんなわけで、前者の正規表現を利用した方法で解きたいと思います。
で、私が考えた安直な解答はこんな感じ。
[code]
sub is_balanced {
my $string = shift;
my $ret;
while( $string =~ /\([^()]*\)/ ){
$string =~ s/\([^()]*\)//;
}
if( $string eq ” ){
$ret = 1;
}
return $ret;
}
[/code]
今回私が利用した正規表現は「 \([^()]*\)」です。
この意味は「(]から始まり、「(」と「)」を除外した文字要素の0回以上の繰り返し、「)」で終わるです。

プログラム中$stringが与えられた文字列、$retが戻り値用の変数となっています。
処理内容としては
$string中に上記の正規表現が見つかったらマッチ部分を除去。
正規表現がマッチしなくなるまで置換処理のループを回る。
です。
そして、ループを抜けたところで$stringの内容を確認して$retへ戻り値を与えてます。
最終的に$stringが空文字列となっていたらカッコの対応が取れているということになりますので$retに1を与えています。
空文字列にならなかった場合は$retの初期値0が戻り値になり0が返されます。
これで題意を満たす関数となりました。実行結果もばっちりだったのでOK、と。

Perl界隈(どこだそれ)で著名な方たちの顎が外れそうな解答を期待して解答編を気長に待とうと思います。

機を逸したが、とりあえず

月曜日, 3月 22nd, 2004

平食が連邦でネタになっていた!

外界とは何か回転軸が違うところだよな。平食って。

自作フォントは早めにリンク復活させるので…

月曜日, 3月 22nd, 2004

自作フォントファイルへのリンクが設定できてないので早めに復活させなくては。
フォント自作HOWTOとか、読み手がいそうなら書こうかなぁ。

aws.pl

月曜日, 3月 22nd, 2004

aws.plがまともに動かない……。とりあえずぎぶあっぷ。
これはPerl5.005なのがネックなのかも。とりあえずPerl5.6で同一構成で動くかどうか確かめよう明日にでも。

ちと解決するためには時間が必要そうだなー。

開発コードはLARKだったっけ。

日曜日, 3月 21st, 2004

開発率80%の掲示板CGIが手元にあります。

で、その掲示板CGIの特長は某知人の要望をふんだんに取り込み、ついでに私の個人的な嗜好をブレンドしたため以下のようになってます。

KENT-WEBYY-BOARDとログファイルが互換(非互換モードも搭載。互換だと日時関係がしょりしにくいねん)
・画面デザインはスキンを使用(ロジックとデザインは分離してるのが美しいので)
・対応環境はPerl5以上(もう、Perl4のソース見てたら酔っちゃうし。単に私がOOP風表記ラヴだからという説あり)
・痒いところに手の届く管理画面。本体とは別プログラム(こっちはちょっと後回し気味)
・利用者限定アイコン(YY-BOARDの改造版で実装してるのありますねえ。結局Perl4なんで参考にもしてませんが)

経過は随時ここに書いてきます。