■2004-04-01
* そういう日だから
掲示板の書き込みみるまで忘れてました。よくみたら巡回先のサイトが悉くやってますよ。というわけで急遽決行。去年ほどのアレではありませんが、まあいいでしょう。
■2004-04-04
■2004-04-07
* [今月のAcme] Acme::BrainFuck
ふとCPANでみかけたお馬鹿モジュールAcme::BrainFuck。BrainF**k(今更伏せ字にしてどうする?)というのはプログラミング言語だそうで、覚えるのは大変簡単にみえます。その簡単さたるや、Perlの比ではありません。何しろたった8個しか命令がないのですから。でもこの言語でチューリングマシンをつくれるらしく、つまり現在のコンピュータができることは、理論上は何でもできるということですか。
今、永遠に続く一直線の箱が並んでいまして、その上にポインタが一つ置いてあります。
+ ポインタのある箱の値に1足す - ポインタのある箱の値から1引く > ポインタを一つ前の箱に進める < ポインタを一つ後ろの箱に戻す , 入力されたデータを今いる箱の値に入れる . 今いる箱の値を出力する [ 現在の箱の値が0ならポインタを 対応する]の後ろに移動する ] 対応する[にポインタを戻す
ご覧のように、必要なのは上の8種類だけです。で、実際にやってみます(Acme::BrainFuckにあるサンプル例から)。
+++[>++++++<-]>
この魚の骨みたいのが、3×6の計算で、(最後にポインタが乗っている箱は)18になります。う〜ん、こりゃ大変。いつものようにperldocjpに登録しましたので、perldoc.jpからブラウズできます。
■2004-04-09
* [ゲーム] ダンジョンマスタ
リアルタイム3DRPGの「ダンジョンマスター」のクローンがフリーウェアで出ていると、Wさんの日記で知りました。元のゲームは噂には聞いていましたがやったことは無かったので早速試してみました。説明一切ぬきでやってはみたものの、何をどうすればいいのかよくわからず。とりあえず最初は攻略サイトの力を借りることに……
そういえば、以前遊んでいたブラックオニキスのクローンもまだクリアしていなかったなあ。
* [Perl] Crowley Public License?
先日のAcme::BrainFuckのドキュメント。ライセンスは"Crowley Public License"となっていて、"Do what thou wilt shall be the whole of the license." という言葉が続いています。こりゃ何じゃと思って調べると、アレイスター・クロウリーという人物から来ていたんですね("Do what thou wilt shall be the whole of the law.")。なるほど20世紀最大の魔術師だったんだ。知らなかった。
一応作者の方に聞いたところ、”このライセンスはあんたのやりたいようにやって良いということぢゃ” と。
* [雑感] 邦人人質について
ネットをまわってて思ったこと。
人質になった人たちは「危険な場所にいく自覚が足りない」あるいは「危険な場所と承知しているのだから危険な目にあって当然」という主張をしている人々がちらほら。そもそも自覚があろうがなかろうが、自らの意思で赴いた私人(公人はまた別)を、他人がとやかういう筋合いはないわけでして、さらにいうと、自分は安全な場所に居ながらそれをとやかくいう人たちの品性の下劣さにいささか眩暈が(そして私自身もまた同じ穴の狢)。
反戦な人たちばかりが人質になっているので「じさくじえーん」、とかいうアレな主張をしている方々もいますが(実は私も一瞬そう思った)、よく考えたら「戦争反対に反対な人」が危険な地域で人道支援、ボランティア活動なぞしていないので相対的に「反戦な人」がそういう目にあうだけのことなのでは(下記サイトの4-8の記事でもそういうこと書いてありますね)? こちらの記事最後の一文は忘れてはいけない重要なことなのでメモ。
現地で活動する日本人を相対的に危険にしているのは、そもそも自衛隊派遣という愚策であったということに対して無自覚にならないよう、自戒。
■2004-04-11
* [Perl] JEncode補助判定の修正
JEncodeの文字判定がおかしい、という指摘を受けて修正、v.1.18になりました。
掲示板にも書きましたとおり、Encodeモジュールが判定できなかった場合に、補助判定として当該文字列を、Encodeが候補にあげた各コードと「みなして」マッチングを行います。そして1.utf8が一つでもあったらutf8。2.eucが一つでもあればutf8、3.sjisが一つでもあればsjisという順番で決定しています。なので、相当変な判定になることもありえるわけです(だいたい候補にutf8があがったら確実にutf8に決定されちゃうし)。で、今回、いわゆる半角カナ以外の文字列はeucとsjisとで点数の重みをかえて、多い方を最終的な文字コードとするように変更しました。こんな方法でいいのかよくわかりませんが、とりあえず以前よりはマシかな?
* [雑感] メモ
昨日の続き。至極もっともな点に言及されいてる記事。建前で動ければ…… テロリストは自衛隊になにを望むのか
こういうこと、ちゃんと指摘しているサイトが極端に少ないようなのでメモメモ。
追加:ホンネ(対米従属)と建前(復興支援)の相克、反占領闘争と拉致脅迫、誰の人質か?。 番外。←流れが面白かったから。何か翌日に持ち越してるし。
■2004-04-12
* [Perl] 矢印、罫線、三点リーダー
昨日直したばかりですが、JEncode.pmをまた修正。矢印、罫線、三点リーダーなどかなりの文字が判定できないことに気づいたため。いままでの補助判定に使っていたunicodeのブロック(正規表現において\pで始まるやつ)ではこれらの文字が抜けていまして、それぞれ\p{InArrows}, \p{InBoxDrawing}, \p{InGeneralPunctuation}が該当。これらを入れれば良いのでしょう、たぶん。
* シンジツニッポン
TRUE JAPAN。忍者になることを夢見て、そして今も夢見ているアメリカ人による日本紹介。というテイストの日本人がつくったサイト。まだ存在していたのね。Nethackスレで全然関係ない話題で出てきたので懐かしくなりました。でも当時もNethack関連を辿っているうちにたどり着いた覚えが。
* [雑感] 唐獅子牡丹
新聞の夕刊に江利チエミ晩年の未発表音源がCDボックスになると書いてあり、唐獅子牡丹を熱唱してると。これは聞いてみたいかも。私が高校の頃は、部室でガッツ石松が歌う唐獅子牡丹がよく流れてたものです。
* [雑感] メモメモ
一昨日からの続き。イラクからはじめる 4-9あたりから。自業自得論を越えて問題の認識を深めようと議論をされていらっしゃいます。 運営者とMitsuhiko氏とのやりとりが、ある意味ドラスティック。
* [雑感] であることとすること
ここに出てくる舛添要一の「ダッカ事件の時……日本人であることが恥ずかしかった」やナニがカレラをそうさせるのか?に引用されている「やだよ俺、海外に行った時に馬鹿にされるのは」。
それらの記事で問題にされていることとは全然関係ないのですが、どうもこういう人たちをみていると(それが本心であれ、ネタであれ)、彼らにとって他人からの評価の担保が「日本人である」という所にしかないような感覚に。例え他の「日本人」(あるいは「日本」でも)がどう評価されようとも、自分の行為に自信のある人(評価の担保を自分の能力や行為に求める人)は、他者(国家も含めて)の行為を自分の恥じとして問題にはしないような気がします(まあ、自分に自信のある人は能力のない人の行為に対して「甘い」と批判する可能性ももあるわけで、これについても思うところはありますが、とりあえずほっといて)。
むしろ、他者の行為に問題があると判断した場合、その問題のある行為を止められなかった、あるいは止めようとしなかった自分の不作為や力不足を恥じとするのではないかしら。っていうかその方が、他者の行為を「恥じだ」といって事足りる人より健全だと思うのですが。要は「自分の行為を誇りに思うかどうか、自分の行為を恥じと思うかどうか」というところで勝負すると。
もしかしたら「日本人であること」しか自分の評価の担保にできない人は、「自業自得(「日本人である」私の評価を下げる彼らは「同じ日本人」ではない)」「国に迷惑かけるな(日本の評価が下がると「日本人である」自分の評価にも傷がついてしまう)」って発想になるのかも。
■2004-04-15
* [Perl] Encode::Guessの補助
JEncode.pm v.1.22。結局shiftjisとeuc-jpを正しく判定するための「補助判定」は以下のようになってしまいました。
$str =~ m/((?: \p{InHiragana} | # \p{InKatakana} | # \p{InCJKUnifiedIdeographs} | # \p{InHalfwidthAndFullwidthForms} | # \p{InCJKSymbolsAndPunctuation} | # \p{InArrows} | # \p{InGeneralPunctuation} | # \p{InGeometricShapes} | # ■▲など \p{InMiscellaneousSymbols} | # ♂♀など \p{InMathematicalOperators} | # ⊃∨など \p{Greek} | # \p{InCyrillic} | # \p{InBoxDrawing} # 罫線 )+)/gx;
これで大抵の文字とマッチするでしょう(まる数字などの機種依存文字は含まれていません)。ところでギリシャ語のブロックを利用するため\p{InGreek}
と書くと、「そんなものはない」とperlに怒られてしまいます。何故?
追記(2004-04-16)
原因がわからないので、ソースで確認。lib/unicore/Blocks.txt(perl5.8.3) をみると、ギリシア語ブロックの名前が'Greek and Coptic'となっていました。\p{InGreekandCoptic}
とすれば解決。他のドキュメントではGreekとかInGreekで例が出ていたのに。
追記(2004-04-19)
って、perlunicodeに書いてあるじゃん! あ〜あ。
* [雑感] メモメモメモ
自作自演を検証するページ。まあ、そのまんまです。
Documents by Moondance Laboratory。どこかでみたことあるノリだと思ったら、「波動機関もえもえ」の人なのね。以前よりふっきれた感じで面白いかなあ。
人の生命をおもちゃにして遊ぶ人の顔をしたケダモノ。コメント欄をみますに、これは一種の「ゴキブリホイホイ」ということだったのかしら。
■2004-04-17
* [雑感] なんで「ギスギスしてる」というかといいますと(くどい)
長いので、面倒な方は今日の分はとばしてください。
今、大通りの信号が青になったので、一人の老人が重い荷物をもって渡ろうとしています。ところが渡りきる前に信号は点滅を始めます。このとき、困っている老人のために、道路に駆け出して手助けしようとした人がいたとしましょう。
この老人のもとに駆けだした人をどう思いますか? まあ、運転手の立場だったら「邪魔だなあ」と思うこともあるかもしれません。かといって、おいそれとひき殺すわけにもいきませんよね。ところが、歩道でそれを見ている人達が、「道路に出るなんてあいつはバカだ」「轢かれて死んでも自己責任だ」「渋滞になって迷惑した!経済損失弁償しる!」とかいう姿を想像してみてください。これが今この国で起きていることだと思えば、私がこの日誌でギスギスした社会だと表現するのも理解してもらえるでしょうか(え? 例えが極端ですって? そりゃ極端にしないと面白くないですし)。
そこである人がいいました。「そうはいっても、誰かが助けにいかなきゃならんでしょ?」と。そこで歩道にいる人達はさらに続けます。「困っている人を助けるのはいい。だがそれは警察の仕事だ」「人助けしたければもっと近くの困っている人がいるはず。わざわざ道路まで助けにいくのも問題だ」と。これが今この国で起きていることだと思えば、私がこの日誌でギスギ(以下略)。
このありがちな「ボランティアはいい。だがイラクまでいく必要はない」というのも身勝手な話でして、これこそ何様ですか? という感じですね。誰がどこへ活動しに行こうとその人の勝手です。それを他人がとやかくいう筋合いはない、ということは先だっても書いた通りです(とやかくいうべきものがあるとしたらそれは、彼らのリスク回避の技術的な問題点を明らかにすることでしょう)。だいたいこの考えだとイラク人以外はイラクで活動する必要なくなるという素敵な結論になってしまいましょ?
それからよくあるのが「仕事で活動する人は仕方がないから自己責任ではない」という主張。こういうことを言う人は、仕事を「賃労働」としてしか理解していないんじゃないかなと。多くの方もご存じのように、英語に"calling"というのがありまして、つまり、クトゥルフの呼び……ではなくて、召命、天職、職業、さらには「なすべき務めに駆り立てる強い衝動」(リーダーズ英和辞書第二版より)てな具合。イラクに行くというのは彼らにとってのcallingであるとするならば、それもまた「仕事」でしょう(だいたい日本語の仕事だってここみるとわかりますように、「生計を立てるために従事する勤め。職業」であると同時に、「するべきこと。しなければならないこと」となってますよ)。何を「なすべきこと」とするかは各人が決めることです。他人がとやかくいうことではないでしょう(アドバイスとかならわかりますが)。
パウエルが軍隊も含めて、「日本人は彼らを誇りに思うべきだ」といえる背景には、ある種の召命観が根底にあるのではないかと思ったり思わなかったり(どっち?)。(※私は「他人の行為」を誇りに思うほど厚顔無恥ではありませんが、少なくとも彼らに難癖をつける行為を自分がとったなら、それは自分にとって「恥ずべきこと」ぐらいには思っています。)
まあどうも、歩道にいる人にとっては「正しいことをしていると思ってる奴が嫌い」「政治的主張をする奴が嫌い」ということらしいのですが、それならご自分が「正しいと思うことをしない」「自衛隊派遣に賛成などという政治的な主張はしない」でひきこもっていれば良いだけのことで、他人をとやかくいう必要はありませんね。「迷惑かけるな」ということでしたら、上の歩道で文句たれている人は役立たずなくせに、人助けをしようとする人の足をひっぱっている分、質が悪いと(もちろん、人助けをしようとして結果的にその後に続いて人助けをしうようとする人の活動に支障をきたしてしまうかどうかは考える必要があります。が、それとは切り離して考えなければなりません)。
* 徒然草第八十五段
の途中から。
至りて愚かなる人は、たまたま賢なる人を見て、これを憎む。「大きなる利を得んがために、少 (スコ)しきの利を受けず、偽(イツハ)り飾りて名を立てんとす」と謗(ソシ)る。己れが心に違(タガ)へるによりてこの嘲(アザケ)りをなすにて知りぬ、この人は、下愚(カグ)の性(セイ)移るべからず、偽りて小利(セウリ)をも辞(ジ)すべからず、仮りにも賢を学ぶべからず。
狂人の真似(マネ)とて大路(オホチ)を走らば、即ち狂人なり。悪人の真似とて人を殺さば、悪人なり。驥(キ)を学ぶは驥の類(タグ)ひ、舜(シユン)を学ぶは舜の徒(トモガラ)なり。偽りても賢を学ばんを、賢といふべし。(tureduregusaより)
現代語訳。イラクに行った人が「賢」かどうかは私の知るところではありませんが、悪人、狂人のまねをする「至りて愚かなる人」で方舟はいっぱい、てなところでしょうか。
■2004-04-20
* [Perl] 古くなったモジュール
古くなったモジュール。非推奨なCPANモジュールなどがまとまっています。これはありがたいですね。
* [メモ] 遺伝的アルゴリズム
CPANにAI::Geneticというモジュールがありました。遺伝的アルゴリズムってこういうものなのね。ゲームに使えそうなので暇があったら訳してみようかしらん。
* [CGI] XML-RPC for Wiki
Wiki RPC Interface。CPANのXMLRPCモジュールで何かやってみたかったので、FSWiki用のを作成中。今のところgetPageだけ実装。たぶんTRPG Wikiより先に公開できるかと思います。
* [雑感] メモ^5
あー、ここに引用されているようなお役人の巣くう国でもあると。
■2004-04-24
* [Perl] Perl 5.8.4
Perl 5.8.4。エラー時の動作(Carpの診断メッセージ)に変更が加えられたため、これに依存するプログラムは非互換の可能性有りと。あと内部のダンプ出力の改善とか。一応注意点としてはUnicodeが4.01に。それからthreadsはwindows上でもdetachが効くようになりましたとさ。
パフォーマンスについては、Unicodeのケースマッピングの高速化。その場でのsortの最適化(@a = sort @a
みたいな)。スカラーコンテキストでのmapの最適化、など。