■2005-07-04
* [雑感] 丸くしてみる
電車の中吊り広告「■いアタマを●くする」で、「ばばばばばばば」→「ばなな」という感じの問題が載っていたので、通勤がてら私も考えみました。
まず最初に「りはまりはま……(以下合計99回)」→「くじゅうくりはま」というのを思いつきました。あと、「 」→「かれい」とか「 」→「どれい」とか。
さて、「子どもたちの解答例」をみますと、「ぶぶぶぶぶぶりー」→「ぶろっこりー」と、「くくくくくくくくく くくくくくくくくく」→「きゅうくつ」が素敵です。でも「ぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺぺ」→「ペ・ヨンジュン」は反則だよなあ。いやあ、すごいと思いました。
* [Perl][メモ] iスレッドメモ更新
ithreadを使っていて"Scalars leaked"になる場合の対処(というのか何というか)2点。あと、スレッドとディスクロージャでperlがクラッシュしなくなったことについて。
■2005-07-07
* [メモ] Google Maps APIを試してみる
Google Mapsでいろいろ流行っているらしいのをみて、楽しそうだなあと。とりあえず私も試してみたくなりました。といっても、位置付けるデータが何もないので、2点間の距離を計算するだけ。計算はJavascriptにやらせないでJSON-RPC経由でサーバ側にさせるという大層無駄なことをやってます。でもこれはこれで楽しい。
追記:「距離はLocation::GeoToolで取れるべ!」(コメント欄) ということで、Location::GeoToolで距離の計算をするようにしました。試すのに夢中でCPANモジュール(っていうかねねさんの)を使うことは完全に失念してました。
2点間に線を引くようにしたのですが、IEだと動作しない…… Googleにあるデモは動くのに。
あとGPointのメソッドにdistanceFromがあるのですが、上記のモジュールとは値がずいぶんずれているので、何を返してるのだろう?
* [雑感] Webアプリケーションをセキュアに
問題はここからである。Perlによる認証プログラムの結果を,Javaの情報サイトに引き継ぐ必要がある。A社は,これをCookieで実現することにした。(中略)一見良さそうに見えるが,これが大きなセキュリティ・ホールを作り込んでしまう結果となった。実は,Cookieの中身を改ざんすることはそれほど難しくない。(中略)結局この問題に関しては,認証プログラムをJavaで作り直すことで解決した。(Webアプリケーションをセキュアに(第1回))
なんだかこの回だけ見るとPerlが悪いみたい(というかJavaでつくれば安全、みたいな)でいやーん。
■2005-07-10
* [今月のAcme] Acme::Oil
Acme::OilというのをCPANにアップしたので、厚かましくもこれを今月のAcmeにします(手抜き)。このモジュールはオイル缶をエミュレートし、変数を浸すことができます。役に立たないモジュールが多いAcmeカテゴリにあって、このモジュールは大変教育的です。
use Acme::Oil; # warningsをonにすると解説つきに use warnings 'Acme::Oil'; my $var = 1; # 最初は普通の変数だった Acme::Oil::can($var); print $var # 滑って取り出せないかも $var = 2; # 滑って代入できないかも
しばらくの間、値の出し入れが困難になります。このように、油の塗られた物は滑りやすいということがわかります。これでマインドフレアの触手も大丈夫。
ただし、触ってるうちに油は(完全ではないですが)落ちていきますし、Acme::Oil::wipe()
を使えば拭き取れます。さらに:
$var = 'fire'; # 危険! print $var; # 灰になりました # $varはもう使えないので my @vars = (1, 2, 'Firefox'); Acme::Oil::can(@vars); # 待って! print $vars[0]; # 全部灰に # もはや油も燃え尽きています Acme::Oil::can($other); # noop
ここから、不用意に油に火を近づけると危険であるということがわかります。大変ためになりますね。お子様の情操教育にいかがでしょう?
■2005-07-16
* [雑感] 音楽棒
サロン・ド・吉田のまこちんさんより、ミュージカルバトンが。質問自体には回答しますが、私としては誰かにバトンを回すのは性に合わないので、ここで止めさせてください。ごめんなさい。
それで、えーと、私は基本的に音楽・芸能に全く興味ないんです。やりたくない仕事をやっているときなどには、その時にはまっているアニメのサントラを延々とかけて気を紛らわすようにしていますが、基本的に日常生活で音楽を聴くことはほとんどないです。音は無ければないほどよろしい。 まあそんなわけなんですが:
コンピュータに入ってる音楽ファイルの容量:
わかりません。みんなどうして○○Mとか××Gとか書けるんだろう? *.mp3とかで検索すればよいのかしら?
今聞いている曲:
聴いていません。
最後に買ったCD:
「創聖のアクエリオン」「世界で一番ボクが好き!」アマゾンで買ったら両方ケースがひび割れていました。
よく聞く、または特別な思い入れのある5曲:
Musorgskyの「展覧会の絵」。とにかく飽きない。色々な人が編曲して、色々な人が演奏していて、楽しい。NHKの團伊玖磨による10枚の絵探しも良かった。ビドロ、ビドロ! 冨田勲版のババヤーガの小屋がSFチックで愉快。アシュケナージ版のキエフの門の最後の鐘の部分は、雄大な中にも無常感めいたものが感じられるような気がします(しませんか、そうですか)。
無常観ということで、黛敏郎「涅槃交響曲」。全体としてはそれほど好きではないのですが、坊さんの声明がね、良いの。
「ビックリハウス音頭」。私が高校生の頃、受験勉強そっちのけで皆で放課後部室に集まっては、落書きしたり、カーネルサンダースの黒ひげ危機一髪ゲームをやったり、何故か大量に置いてあった原稿用紙に心の叫びを書いたり、井上陽水と田中角栄と田中邦衛のお面をつくって扉に飾ったり、部室の入り口にしめ縄をして「SMサロン」と表札をつけたり……と、割と普通に高校生らしい生活をしていましたが、ちょうどその頃、CDで復活したのが部室でかかっていたので思い入れがあります。「三枝のムラムラ日記」とかも。
「ここはグリーンウッド」。那州雪絵による同作品のイメージアルバム。生まれて初めて買ったCD、じゃなくてあの時はカセットテープか。うーん、イメージアルバムといえば、「辺境警備」も良かったなあ。とにかく全てが美しい。
中島みゆき「別れ歌」。私がまだ小学校にあがってもいない頃、母が何度もかけていたので。
■2005-07-19
* [Perl] JSON 0.98
最近、しばしばJSONとJSANを見間違えてドキッとします。 それはともかく、新しいバージョンをリリースしました。まずtypoの指摘を頂いたので修正。しかしtypo以前に期待している動作と反対の処理をしていました。それからコードリファレンスを含むオブジェクトをobjToJson
に渡すと実行して戻り値を使うようにしました。{foo => sub { return "bar" }}
は{"foo":"bar"}
に。
そして一番大きな修正は、8進数と16進数を扱えるようにしたこと。例えば {"foo":0xff}
は{foo => 255}
に。 JSONのスペックには書かれていないのですが、スペックをつくった本人がJava版のソースでやっているのだそうです。対応して欲しいといわれたので対応してみました。
* [メモ] トロツキー暗殺凶器?
トロツキー暗殺凶器?現存 おお。
_ miyagawa [コードリファレンスを実行してしまうのはデフォルトとしてはよくない挙動な気がしますが。。]
_ まかまか [>デフォルトとしてはよくない挙動 の理由は ・セキュアでない ・直感に反する機能 という辺りでしょうか。 機能を加え..]
_ まかまか [ああ、0が数値として使えなくなったてメールがたった今。 ひどいバグだ……]
_ miyagawa [デフォルトがどちらがいいかはおまかせしますが、コードリファレンスはスキップするのもひとつのオプションとしてはアリかと..]
_ まかまか [>0が数値として使えなくなったてメール 0.981で修正しました。 >コードリファレンスはスキップするのもひとつ..]
■2005-07-24
* [Perl] JSON-0.99
JSAN方面の方から、メタファイルにYAMLの代わりにJSONを使おうと思うのだけど、可読性が悪いので対応して欲しいとメールがきました。 ので、対応しました。いままで
{"foo":[10,{"bar":"baz"}]}
だったのが
{ "foo" : [ 10, { "bar" : "baz" } ] }
というふうにも出力できるように。他にも、いくつかの機能修正があるので、お使いの方はChangesの確認をお願いします。
* [漫画] 超人ロックサイドストーリー
佐々木淳子の新作『G・ZOOへようこそ』が出ていたので、手に取ってみると帯に「超人ロックサイドストーリー」と。いつもの作品と違って”一応”小さくまとまっているので、佐々木淳子に馴染みのない方でもとっつきやすいかもしれません。ちなみに内容は、『超人ロック』に出てくる動物の出てくる動物園。
■2005-07-30
* [メモ][Perl] splitに(?=regexp)を渡す
Perlのsplit
の第一引数には正規表現を渡しますが、これ、先読み宣言や後読み宣言も渡せるんですね。
これは最近HTML::Templateのソースを見る必要があって、そこでsplit(/(?=<)/,$self->{template})
というのが出てきて初めて知りました。split(/</,$str)
だと'<'がデリミタになるので'<'自体は削除されてしまいますが、(?=<)を渡せば'<'は消費されないため、'<'がついたまま分割できるわけです。
my $str = "<aa>bb<cc>dd\n<ee>"; my @array = split(/(?=<)/,$str); # 返るリスト # <aa>bb # <cc>dd # # <ee>
言われてみれば「なるほど」なのですが、splitに渡すなんて思いもよりませんでした。なんか色々使えそう。 (?=<)(.*?)(?<=>)
とか?
[追記] なんかrubyやjavascriptでもできるそうで(jmukp@MM、ma.la@del.icio.us)。それでは、とJava 1.4でやったら、出来ました。
_ まちゅ [Javaで作り直しても、CookieにユーザIDを入れる発想を変えなければ同じことですよね。 単純にRSA署名をつけ..]
_ ねね [距離はLocation::GeoToolで取れるべ!]
_ まかまか [>まちゅさん >Javaで作り直しても ほんとにねえ。何となく記事からは最初にJavaありきな印象を感じちゃいます。..]
_ ねね [私のモジュールも、モジュールのREADMEで言及してるサイトのJa vaScriptプログラムをPerlに移植しただ..]
_ ねね [今、試してみましたけど、線で結ぶって、本当に地図上の直線(=球面上での小圏コース)で結んでいるだけなんですね…。 こ..]
_ ねね [いくつか、経緯度のセットとその間のGoogle APIで求めた距離とのセットをもらえれば、何を計算してるのか試してみ..]
_ まかまか [>ねねさん まあ、この場合線で結ぶのは視覚的な効果でしかありませんので。 最初の計算コードはLocation::Ge..]
_ clara [はじめまして。非常に参考になりました。 ところで、distanceFrom は function(a){var b..]