■2005-04-04
* [雑感] 四月だよ
うーん、四月馬鹿対策を何もせずに過ぎてしまいました。三が日みたいに、エイプリルフールも3日ぐらい続いてくれれば。それはともかく、空中に絵や文字描く装置って、ネタじゃなかったんだ。藤子不二雄の『パパは天さい!』に出てくる空中に描けるクレヨンを思い出しましたよ(あれは最後ちょっと切なくてよいです)。
* [雑感] オーバーフロー
知り合いのCOBOL使いの方と飲みました。昨今はそれだけではやっていけないので、PHP&MySQLなんかもやっているようなのですが、一緒に仕事ができたら良いですねとか話をしてました。で、新人向けのコーディングテストの話からオーバーフローの話になり、なんでも会計用のシステムをつくった際に、クライアントの扱う額が最大でも5億円程度で、当面それ以上増えないだろうからとデータの型をint4にしたとか。テストの際に20数億円を入れてオーバーフローしてえらいことになったとか。 なんちゅう設計を……
* [今月のAcme] Acme::MorningMusume
すごい、まだ4月に入ったばかりなのにもう今月のAcmeだ(書けるときに書いておかないと)。antipop2.0のけんたろさんがつくったAcme::MorningMusume。「モーニング娘。はメンバーの入れ替わりが激しいので誰が誰だか完全に区別をつけるのは難しい」……そこで:
use strict; use Acme::MorningMusume; my $musume = Acme::MorningMusume->new; my @members = $musume->members; my @active = $musume->members('active'); # or 'graduate' for my $member (@active){ print $member->first_name,"\n"; my $images = $member->images(); while(my $image = $images->next){ .... } }
Class::DBIライク。画像もWWW::Google::Imagesで取得。素晴らしい! これで全然わからない私(単語として”カゴ”、”ゴマキ”しか知らない)でも何とかなる!(何が?)
* [メモ][雑感] 品性の
彎曲していく日常(4/4)経由で知った卒業式におもう。
”教師が大量に処分されているが、強制的なやり方に反対し、先生方が自己の意思に従い行動されることを支持する”という趣旨のメッセージを卒業式の日に先生方に渡し歩いた生徒の親御さんの話。そしてこの記事を聞きつけた人々の非難や罵倒、それに対する応酬でコメント欄が埋め尽くされるという話(っていうか状況)。記事本文の穏やかで淡々とした語りに比べて、コメント欄を埋め尽くしている方々の品の無さ(どちらの立場にしても)が浮いちゃってるような。こういうのって思想信条の問題以前に人間の品性の問題じゃないかなあ……
「彎曲していく〜」の記事内で「難癖つけて式典をぶち壊すほうが迷惑」という意見に対して管理人さんが「式典の『粛々たる』進行が、妨害された例をまず挙げてください(中略)それがないのなら、普通の生徒なら何も問題は無いはずです。あなたは最初からイデオロギー的な過剰反応をおこしているのに、それをうまく無垢な生徒であるかのように偽装しているだけだ」というのももっともな感じ。この手の「みんなが迷惑」的な主張は、どの程度一般性があるのかいまいち曖昧だし、立場が違えば何が迷惑なのかも異なるのに、さも自分の側だけが普遍的かのように話をもっていきがちなので気をつけたいもので(例によって往々にして自分もはまりそうなので、自戒を込めて)。
うーんそれにしても、壇上に駆け上ってクラッカー鳴らしたり一升瓶片手に暴れたりしたわけじゃないでしょうに、なんで色んな意見や主張の存在を認められないのかなあ? ぎすぎすして嫌な社会になるだけだと思うんだけど。
■2005-04-06
* [Perl] 招き猫のPAUSE
けんたろさんのところで素晴らしきPerlモジュールの世界が紹介されたため、普段よりも当該ページのアクセスが増えていました。で、自分でも久しぶりに見たら結構リンク切れが。「Acmeって何」はリンクを修正できたのですが、Acme::ManekiNekoが見あたりません。CPANにいませんよ? ActivePerlのレポジトリにはいるようですが。
あ、こんなところにAcmeにゃんこの写真が。
昨年末にPAUSEアカウントを取得しようと思って結局申請しなかったのですが、今回申請してみました。アカウントとれたらJSONとかCPANにアップしてみたいと思います。
■2005-04-08
* [CGI] ミキピンとtDiary plugin
mixiの日記を使っているときに外部の日記の更新をmixi日記に通知するtDiary用プラグインmixi_ping.rb(他にuconv, json, uriが必要)。mixi日記の本文にはエントリのurlのみが書き込まれます(削除機能はないので注意)。
WWW::Mixiのruby版があればよかったのですが(あるらしいけど、当該サイトに接続できず)、サービスを用意し、これをhttpで叩く方式に。これがMixiPing。サンプルとしてJSON-RPCで使えるCGI付き。XMLRPC::Liteと組み合わせればXML-RPCでも動くはずです、たぶん。
JSONRPC, JSONRPC::Transport::HTTPともにnotificationに対応していなかったので修正。PAUSEアカウントを取得したので、近々CPANに移動することになると思います。
■2005-04-13
* [Perl] JSONをCPANに
ここしばらく調子悪くて作業ができませんでしたが、やっとJSONモジュールをCPANにアップしました。次バージョンでJSON-RPCもパッケージに含む予定。
0.91でJSONRPCも含めました。
* [Perl][メモ] autobox
以前Scalar::Propertiesで一瞬だけ触れたautoboxのバージョンがあがって、Perl5.8.1にパッチをあてなくても利用できるようになりました。試したところautobox 1.02がPerl5.8.0 (linux)で入りました。
autoboxを使うと、スカラー値やハッシュリファレンス、リストリファレンス、コードリファレンスからメソッドを呼び出せるようになります。例えば3.1415はSCALARという型に属して、my $three = 3.1415->int;
などとできるように(後述のようにautoboxだけではできません)。また自作のクラスをSCALAR, ARRAY, HASH, CODEの各型として設定可能(autoboxはスコープレキシカルなプラグマなので途中で変更したり、no autobox
できます。他に四つの型全てに適用されるDEFAULT, undefに対するUNDEF, デバッグ用?のREPORTなどがあります。
ただし、autobox自体はメソッドを提供しないので、autobox::Coreのようなモジュールが必要になります。autobox::Coreは多くの組み込みの関数(さらにHash::Utilからlock_keysなども導入)やPerl6で導入されるいくつかのものをメソッドとして利用可能にします。ただ、ARRAY型のforがバグってるぽいです(最後の要素にアクセスしない)。
use autobox; use autobox::Core; "Hello World."->length->print; # 12を出力 [12,51,29,54,67,98,23]->sort ->reverse ->print; # 98 67 54 51 29 23 12 $array = [1..10]; $array->join(',')->print;
そうするとJSON::*
とかつくってあげて
{ use autobox DEFAULT => 'JSON::'; my $js = {foo => 'bar'}->toJson(); # {"foo":"bar"} }
とか出来そうですね。
* [Perl][メモ] CGI::ApplicationをSledgeっぽく使うラッパー
朝倉さんのところでCGI::ApplicationをSledgeっぽく使うラッパーって需要があるのかな?というのが。 似たようなことをCGI::Prototypeでやろうとしていたので、これは大変有り難そうです。
■2005-04-17
* [Perl][メモ] Perl6::Pugs
Pugs で Perl6 を体験するというのをみて、私もWindowsに入れてみることにしました。Perl6::Pugsというのは、Haskellで実装されたPerl6だそうで、現時点で最新はPerl6-Pugs-6.2.0。
ActivePerl 5.8.0にいれるため、ExtUtilのバージョンをあげて、Haskell Compilerを導入してPerl6::Pugsをnmake。次にtestしようとしたら"fatal error U1077: 'cd' : return code '0x1'"というエラーが。MakeFile.PLのbuild_subdirsの所をコメントアウトして回避…… 今度はTest.pmの構文がおかしいと叱られる(Perl5系標準のTest.pmではダメで、Perl6構文で書かれたPerl6::Pugs付属のTest.pmを使う)ので、[drive]:\Perl6\libをつくって付属のTest.pmやら何やらを一時的に置いて回避。ってこんなやり方でいいのかなあ?
とりえあえずinstallできました。
# test.pl #-------- "Hello".say; # みたまんま $?OS.say; # MSWin32 my @hoge = (1,2,3,4); my $hoge = @hoge; @hoge.[2].say; # 3 $hoge.[2].say; # 3 ---- > pugs test.pl
sayはprint+改行。PerlのようでPerlでない何かみたい。classやmoduleの宣言はまだできなくて、6.2.8まで待たないといけないらしいです。 とりあえずHaskellが面白そうだと思いました。
* [雑感] View/Report Bugsが使えない
CPANにアップしたモジュールがrt.cpan.orgにリストされないのでメールを出したけど、自動返信が来た後、音沙汰無し…… うーん、これってどうしたらよいのやら?
* [雑感] 反日デモ
遅まきながらNHKのニュースで中国の反日デモをみました。破壊活動は論外として、とりあえず道路一杯に広がってて気持ちよさそう。 小泉首相の失政のつけとして現地邦人にとばっちりがいってる感じ。
メモ:香具師にもなれない安倍晋三
* [Perl][メモ] Wiki::Gateway
Wiki::Gateway。ちょっとClass::Wikiとかぶってるかなあ。このモジュール、一見するとPerl、でも実装部分はInline::Pythonを使ってPythonで書かれてる。
■2005-04-24
* [メモ] ミキピン
日記書き込みとコメント書き込みの確認画面ではパラメータ post_key にユーザIDに対応するハッシュらしき値が必要(mixi のセキュリティーホール(その2))
ということは、WWW::Mixiの機能を利用しているミキピンは動作しなくなっていることでしょう。
追記:やはり動作しなくなってました。
追記2:WWW::Mixiを修正して、mixiダイアリーに投稿できるようにしました。たぶんオリジナルの方もすぐ修正されると思うのですが(一応作者の方に伝えてみました)。
追記3:WWW::Mixi 0.29で対応してもらいまいした。
* [Perl][メモ] SQL::StatementがGROUP BYをサポート
自作DBIドライバを書くときなどに重宝するSQL::Statementeですが、バージョン1.12からGROUP BYをサポートするようになりました。それと参考ドキュメントも充実。でも、そこで参考としてDBD::Amazonというのがあがっているのですが、そのようなモジュールはCPANにありましたっけ? あと適切な依存モジュールが記されていないため、恐らくtestは通らないでしょう。もちろんパスの通ったところに置けば動きますが。
DBDといえば、DBD::WikiをほったらかしてDBD::CPANをつくってみました(続く)。
* [メモ] 技量を知るための課題
PHPプログラマの技量を知りたい時に書いてもらうスクリプト(www.textfile.org経由)なるほど。 私が前にPerlのコーディングをお願いする際に用いたのは「最大80桁の正の整数を入力すると二乗する値を表示し、値が入力されていないか、不正な場合はエラーを表示するCGI」(この説明で不十分な場合は質問してもらった上で、30分ぐらいで)だったですよ(モジュール利用の制限は無し)。こういうのよりは上記の例の方がはるかに実践的で良いなあ。
ところで、その課題をとある会社で7名ほどの方にやってもらったのですが
* [メモ][Perl] SledgeLike
CGI::ApplicationでSledgeライクにSledgeLike。 SledgeLikeはSledgeコンパチを目指してるわけじゃないですよ?。 むーん試してみる時間が無い……。 SledgeLikeやSledgeTinyよりもSlebgeとかいかがわしい名前だったら素敵。
■2005-04-27
* [Perl][メモ] 語リスト
こちらも試してはみたいけれどもなかなか時間が。 でも最近色々なところでチュートリアルを公開されてらっしゃる。ありがたや。
Perl on Rails な Catalyst を試す Catalyst 事始め Catalyst入門
* [メモ] 買い物
創聖のアクエリオン 今日だ
888 スリーエイト 2 見落としてた
だめっこどうぶつ DVD-BOX これは買いなのかどうか?
_ ねね [あ、まかまかさんもネタ挙げてたのか。 昨晩ちょっといじってみました。 ヘルパースクリプトとか、なんか面白いです。]
_ SHIMADA [はじめまして。 JSONRPC::Transport::HTTPですが、内部で利用しているCGI.pmのバージョンが..]
_ まかまか [ご報告ありがとうございます。 近々予定のバージョンアップ時に対応します。]
_ SHIMADA [もう一個ご報告します。 JSON::ConverterのvalueToString()では、文字列型のデータに含まれ..]