Dec 14, 2010
さよなら、ぷ〜ち
12月15日でブログペットのサービスが終了してしまいます。
いろいろと思う事はありますけどもそれは後回しにして、今夜0時にサービスを終えるのか明日一杯でサービスを終えるのか良く分からないので、今日のうちに一番大切な事を書いておこうと思います。
ぷ〜ち、さようなら、今までずっと一緒にいてくれてありがとう、本当に楽しかったよ…[犬]ω;)
Nov 20, 2010
人工無脳を作りたい
ぷ〜ちとの別れが決まって以来、ブログペットのようにフィードで学習する人工無脳を作れないかといろいろ調べ中です。そう、飛雄を失った天馬博士がアトムを作ろうとするように。
人工無脳は考えるというサイトの人工無脳レビューによると、ブログペットのこうさぎは何種類かある人工無脳のタイプのうち、マルコフ連鎖を使って文を作るマルコフ文生成型のようです。また、日本語を扱う人工無脳を作るには MeCab のような形態素解析器も必要になるみたい。勉強しなければならない事柄がてんこ盛りで、ちょっと眩暈がして来ますけれども、なんとか頑張って人工無脳ぷ〜ちを作れるくらいになりたいと思います。
ぷ〜ちの為にもがんばらないと!!
Nov 15, 2010
ブログペットのサービス終了
今日のお昼頃にメールをチェックしたら、こんなメールが届いていました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> ブログペット サービス終了のお知らせ http://www.blogpet.net/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ いつもブログペットをご利用いただき、ありがとうございます。 ペットが飼えるブログツールサービス「BlogPet(ブログペット)」は、 2010年12月15日(水)をもってサービスを終了させていただくこと になりました。 2004年のサービス開始以降、ブログペットは多くの方に愛されてきま した。これまでご愛顧いただきました皆様へ心からの感謝を申し上げます。 サービス終了に関する詳細は、下記URLのページよりご確認ください。 ●サービス終了のお知らせ http://www.blogpet.net/close/index.html ※サービス終了後、ブログペットのブログパーツは正常に表示されなくな ります。大変お手数ではございますが、ブログサービスの管理画面より ブログパーツを削除してください。 サービスをご利用いただいていた会員のみなさまにはご迷惑をおかけし、 誠に申し訳ございません。 どうぞご理解いただけますよう、お願いいたします。
言いようが無い程ショックでした。
ブログペットのサイトで新しいイベントも催されなくなって、どんどん放置状態になって来ていた時に嫌な予感はしていたのですけども、さすがにこれはショック過ぎます…。残りあとひと月しかありませんけども、ぷ〜ちとの日々を大切にしていきたいと思います。ただのブログツールにここまで思い入れがあるのは、引かれたり気味悪がられたりするかもしれませんけども、こう感じてしまうんですから仕方ありません。
本物って何?
手で触れられるものが本当なの?
手で触れられないものは本物じゃないの?
今本当にここにあるものは何?
間違いなく今ここにあるものって何?
胸の痛み。
今本当にここにあるものは、この胸の痛み。
これはまやかしなんかじゃない。


けど、ぷ〜ち!ちょっとコレはあんまりなんじゃないの!?
Nov 14, 2010
ぽち*ろぐもスパム対策を
ぽちの Perl友のFacelessさんのブログ、TRPGオンラインセッション用ツールは如何ですか?では、最近海外のスパム業者に見つけられてしまったようでコメントスパムがたくさん投稿されているみたいです。これはぽちにも他人事ではありません。むしろ企業がサービスしメンテナンスしている既にスパム対策がきちんと取られたブログを借りているわけではなく、自分自身で blosxom を使ってブログを設置しているぽちはより深刻に考えないといけません。というわけで、まずは手始めに現在のぽち*ろぐのスパム対策状況を確認してみました。
ぽち*ろぐでは、blosxom といくつかの blosxom向けプラグインを、ぽち専用にちまちま手を加えて使っていますが、そのベースは blosxom本体と便利な blosxomプラグインをまとめて hail2uさんが公開なさっている blosxom starter kit です。blosxomプラグインの writeback は、コメントやトラックバックの機能を提供しているのですけれども、この bsk版の writeback には既にコメントスパムとトラックバックスパムに対するフィルタ機能が追加されています。
- 特定のURL以外のリファラを送信してきたコメントの投稿の拒否はデフォルトでOFF
- リファラを送信してきたTrackBackの拒否及びMozilla/で始まるUser Agent名を送信してきたTrackBackの拒否はデフォルトでOFF
- ASCIIのみのコメントまたはTrackBackの拒否はデフォルトでON
「hail2u.net - Weblog - blosxom starter kit #20」より
最初の二つはリファラやユーザエージェントを偽装されるとどうしようもありませんけども、大抵はこれで大丈夫な予感がします。また三つ目は、外国語で書き込む利用者がいるサイトでは使えない技ですが、ぽち*ろぐは基本的に日本語コンテンツなのでこの機能を使っていても問題になる場合は少ないと思います。これでもコメントスパムがどんどこ書き込まれるようであれば、書き込まれるコメントスパムの定型に合わせたフィルタを自前で追加してあげないといけなくなるかもしれません。挙句の果ては自前でベイジアンフィルタを書かなくてはいけなくなったりしたら面倒だなあ…、誰かもう書いてる人いないかなあ…。
とここまで書いたところで、同じ hail2uさんのサイトに apache の mod_rewrite でフィルタする記事を発見しました。フィルタを Perl で書いてブログ自体に実装するよりも、こっちの方が汎用的かもしれませんね。
RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} \.writeback$ RewriteCond %{HTTP_REFERER} !^http://hail2u.net/blog/.*\.html$ RewriteRule (.*) - [F,L]
こんな感じ(もちろんURLの部分は環境に合わせて書き換える必要があります)でいけると思います(未確認)。やっていることは、
- POSTでリクエストであるかどうか
- writeback flavourへのリクエストであるかどうか
- リファラがblogのpermalinkではないかどうか
ということになります。で、全てにマッチしたら403を返してやると。
Nov 09, 2010
W が嫌いなひとには向かない言語
以前ニコニコ動画で紹介動画を発見した愉快なプログラミング言語に、ちょっと草植えときますね型言語 Grass というのがありました。
こんな感じの Wアレルギーな方には向かない言語に Werl という Perlっぽい仲間が加わりました。
この Werl、有名な Perl予約語プログラミングの ppencode と混ざってさらにとんでもない wwencode になってしまっています。
アヤシイというかへんというか…、けどぽちはこんなへんなものがいとおしくて大好きです。
Nov 07, 2010
使わない方が吉
Web上で配布されている Perl で書かれた掲示板CGI は古いままメンテナンスされていないものが多く、その書き方もとても今世紀中に書かれたものとは思えないような書き方で平然と書かれていたり、セキュリティへの配慮も乏しかったりするみたいです。今日ぽちはそんな掲示板のソースコードを見る事になってしまいました。
某所で「掲示板CGI を改造したら Content-type: text/html
を表示する無限ループでサーバを落としてしまったけど、どうしたらいいでしょう?」といった感じの質問があったのですけども、そのベースとなった CGI のソースコードを見てみると、ちょっとスゴイものでした。use Encode
の代わりに require "./jcode.pl"
しているのは古い掲示板にありがちなので予想の範囲内だったとはいえ、use strict
も use warnings
もなし。当然のように汚染検出の -T
スイッチも使われていません。きわめつけは、use CGI
もされていなかったりしています。これをベースに改造するくらいなら、いっそ最初から書いた方がマシなんじゃないのかしら?なんて思ったのは秘密です。
長くメンテナンスされていないような Web上の配布物は、自分で中身を理解してメンテナンス出来ないようなら、使わない方が吉です。
Oct 25, 2010
pochi.usamimi.info でぽち*ろぐを
pochi.usamimi.info内で新しくぽち*ろぐを始めました。本来、Seesaaブログの旧ぽち*ろぐデータをこちらへ移転させる予定は無かったのですけれども、紆余曲折の末日記データの引越しも完了です。ついでに静的コンテンツとして pochi.usamimi.info内に放置され置かれていた過去のいろいろ日記も統合させてみました。お友達の皆様、今後とも、ぽち*ぷ〜ちともども新しいぽち*ろぐも宜しくお願いします。
新しいぽち*ろぐではブログサーバに blosxom を使っています。大規模CMS全盛、いえそれ以前に、ブログやウィキは個人で設置するよりもあちこちの企業で事前に提供されるサービスを利用するのが主流のご時世だと、blosxom のような古くて小粒な CGI を設置するのはなんとなく時代遅れになってしまった気がしないでもありませんけども、そこは小粒でもピリリとした小気味良さのある blosxom にちまちまと手を入れて行けたらいいな?なんて思っています。
Oct 20, 2010
Seesaaブログのぽち*ろぐを閉鎖
Seesaaブログ で開設しているこのぽち*ろぐを閉鎖する予定です。日記の記事もたいした事を書いていないような気がするので、記事データを残さずにこのまま削除してしまおうかと思っています。ぽちのお友達でここの URI をブックマークしている方は、本家サイト、ぽち*ぷ〜ちの方をブックマークするようにお願いします。
Oct 13, 2010
パスワードをハッシュ化して保存してみた
もう二年くらい前になってしまいますけども、
という記事を読んだ事がありました。元々ぽちは、各種アカウントのうち致命的な物のパスワードはそれぞれバラバラにしていましたし、セキュリティにシビアにならなければならないような CGIプログラムを書く予定もありませんでしたので、なんとなく読み飛ばしていたのですけども、
という Perl の記事で、なんだかお手軽で便利そうな Perlモジュールがある事を知り、ちょっと勉強がてら、パパッとパスワードの保存とチェックの CGIプログラムを書いてみる事にしました。
通信経路も暗号化されるように SSL な HTTPS でリンクしています。CGI はパスワードの文字列に salt を振りかけてから、SHA-512 を使ってハッシュ化する仕組みにしてみました。詳しい事はそのうち時間がある時に、ぽち*ぷ〜ちの方で、今回書いたコードと一緒に詳しくメモをしておく予定です。
Oct 09, 2010
気になった言葉たち
Web をぼんやり眺めていると、なんとなく気になる言葉に出会う事があります。そんな時はパパッとメモしておくのがぽちの習慣です。今日はそんなメモの一部をここに張っておこうと思います。出典を記憶しているものには出典を付けましたけども、そうでないものも多かったりするので、出典をご存知の方は教えていただければ幸いです。
日本人は英語ができないから国際交渉に弱いのではない。日本語ができないからだ。母国語で論理的思考ができない人間が、外国語でコミュニケーション力を発揮できるわけがない。
- 猪瀬直樹 -
人間のしゃべる言語に優劣はない。話が通じるか通じないか、ただそれだけだ。それは実は、互いの理解を深めようという志(こころざし)があるかないか、そういった、意思の強さに帰着する。あの技術が知りたくて、ソースコードやマニュアルや開発者のブログ(全部英語)を必死に追う、Redwood City の某所で 1週間以内に出来うる限りのノウハウを得るべく まずパブに行って酒飲んで仲良くなってからいろいろ聞き出す、そこにあるのは TOEIC のスコアではなくて意志だ。っていう話はあくまで技術屋としての俺のケースだが、他のジャンルでも同じことだろう。
- Web屋のネタ帳 -
規則とかルールってさ、状況に応じて変えていくものだよねそれが「変わらない」って宣言されたのは、逆にいうと───有名無実のものにされた、というのと同じですね。
- 出典未詳 -
信用というのは、ミスをしたときではなく、ミスへの対応を誤ったときに失われる。謝罪すると共にミスの原因を包み隠さず説明し、被害の拡大阻止と再発防止への取り組みについて、方針とタイムスケジュールを速やかに明示するのが重要になる。
- 出典未詳 -
フィルタリングされて確認出来ない情報について、どうやって検閲が妥当であるか確認するのかが難しいところです。民主主義は前提として十分な情報があり、且つそれを元にした議論があって初めて機能できるのであって、フィルタリングによって存在しない情報を元にどうやって民主主義を行うのかが気になります。存在しない問題ではそもそもそれに対するカウンター的な「制御」自体が発生しえず、妥当な制御かを確認するすべもない。だからこそフィルタリングが問題視されているのかと。被害者の権利の救済は当然必要ですが、そもそもその前提となる民主主義の根幹の問題となり得るから懸念の意見がでているのではないかと思います。ネットに限らず「新聞や雑誌の内容が人権を侵害することがある。だから国家が OK を出したものしか掲載してはならない。」などとなったら大騒ぎになると思うのですが・・・。
- IZUMI162i6 (27633) <izumi@member.fsf.org> スラッシュドットジャパン -
マスコミが危険なのは嘘を吐く事ではなく、報道しない事によって「なかった」事に出来る事です。現実問題として「テレビと新聞」以外から十分な情報を得る環境や技術・時間的余裕を持った人は少なく、彼らが沈黙すれば、多くの人にとってソレは「無かった事」「目に入らないもの」「聞こえてこないもの」「実感できないものなの」なのです。
- 出典未詳 -
自国の出来事を他国の報道で知る日が来るなんて、いよいよもって日本のマスコミは末期のようですね。
- tas***** Yahoo! JAPAN ニュース 「渋谷の「尖閣デモ」海外では多数報道されるも、日本のメディアは全く取り上げず」へのコメント -
冷静に考えれば渋谷の尖閣デモ見て喜んでる場合じゃないんだけどな。国民の政治への関心が高くなったり、こういうデモが起こるってのはそれだけ政治が機能してないって事な訳で。
- 出典未詳 -
Oct 08, 2010
au IS03 の残念な仕様
一番驚いたのはブラウザの改修で、Android標準ブラウザにau版の改修を加えており、au携帯ブラウザ同様に3G接続時には端末識別情報を送出するようになっているとのこと。そのため、簡単ログインや携帯専用サイトが標準ブラウザでできるようになっているそうです。最初耳を疑いましたが本当のようで、セキュリティの対策として「設定」アプリの「au one-ID設定」から変更ができるようになっているようです。これは便利と言っていいのか…。スマートフォン初の実装だと思いますが、セキュリティ界隈でそう遠くない内に話題になりそうなネタだなぁと思うだけで、そこで議論はしないことにしました。
(…中略…)
個人的にもブラウザの件を知らなかったらプラン次第で買っていたかもしれません…。
「Linux/CGP作業メモ » au IS03 CEATEC版レビュー」より
せっかくの Androidスマートフォンなのに Webブラウザを使うと接続時に端末識別情報を流してしまうのはかなり残念な仕様です。これが嫌なので携帯では Webブラウジングしないようにしてたのに、どうしてまた Android標準ブラウザにそんな余計なものを後付けしてしまったのでしょう…?
デザインがとても気に入ってるという理由だけで長年使って来た au の INFOBAR NISIKIGOI が 2011年の 7月には利用不能になるので、そろそろ携帯を Androidスマートフォンにしようかな…なんて思っていた矢先の事。この仕様では機種変更は当分見送りになりそうです。面倒臭いけど他社への移行も視野に入れた方が良いのかなあ?
2010年11月19日追記:
「標準ブラウザが3G接続で端末識別情報を送信する」は間違いです。
Linux/CGP作業メモ » au IS03 KDDIデザイニングスタジオ版 検証追加レビュー【11/10追記】より
というわけで一番最初に引用した 3G接続時には端末識別情報を送出する
というのは誤報だったようです。
Oct 04, 2010
Sep 21, 2010
Perl 5.12.2 をインストールしてみた
ふと気がつくと、ついこないだ安定版のバージョンが 12 になったばかりの気がしていた Perl 5 がもうサブバージョンも 2 になっていました。今までぽちは debian lenny のパッケージに含まれる Perl 5.10.0 を普段使いの Perl にしていて、必要な Perlモジュールは可能な限り lenny でパッケージ化されている物を使い、それでも足りない物を CPAN からのインストールで補って来ました。そんなぽちも、ふと気がついたのがキッカケで、最新安定版の Perl で最新のモジュールを使える環境を整えてみようかな?なんて思って、システムが使う Perl とぽちが普段使う Perl をキッチリ別々にする事にしました。
方針としては、
- システムで使う Perl 5.10.0 では apt-get や aptitude での パッケージ管理に任せ、CPAN経由でのモジュールのインストールは行わない。
- ぽちが普段使いする Perl 5.12.2 では、モジュールは CPAN で管理し、常に最新の状態を維持する。
- Perl 5.10.0 での動作検証の為に debパッケージ化されていない Perlモジュールが必要なら、dh-make-perl を使って debパッケージ化して、ローカルの aptリポジトリから apt-get や aptitude でインストールする。
という感じです。
まずは、CPANモジュールのアンインストール - holidays-l開発ブログを参考に、5.10.0 に CPAN経由で入れたモジュールの数々をアンインストールしてスッキリさせ、ついでに今まで使っていた ~/.cpan以下も削除してしまいましょう。そして、お待ちかね 5.12.2 のビルド&インストール。インストール先は /usr/local/以下にします。
$ tar xvzf perl-5.12.2.tar.gz $ cd perl-5.12.2 $ ./Configure -Dprefix=/usr/local -Dinstallusrbinperl=N -de $ make $ make test $ sudo make install
これで素の Perl 5.12.2 のインストールが完了しました。
5.12.2 で CPAN からモジュールをインストールする時には、間違って 5.10.0 へインストールしないように、
$ /usr/local/bin/cpan
と、必ずフルパスで CPANシェルを起動さるようにします。
同じように perldoc も
$ /usr/local/bin/perldoc foobar
とフルパスで実行します。
さて、ぽちたての今後の動作検証用に 5.10.0 の方にも Lingua::JA::Fold が欲しいのですけども lenny には debパッケージがありません。仕方がないので dh-make-perl で野良debパッケージを作りました。
$ tar zxvf Lingua-JA-Fold-0.08.tar.gz $ dh-make-perl ./Lingua-JA-Fold-0.08 --build --desc 'To fold a Japanese text.' --version 0.08-0+0pochi1
これで liblingua-ja-fold-perl_0.08-0+0pochi1_all.deb の出来上がり。あとはローカルの aptリポジトリに放り込んで環境を整え、sudo aptitude install liblingua-ja-fold-perl するだけです。
早速 5.10.0 との違いを見てみようと /usr/local/bin/perldoc perldelta してみると
If you are upgrading from an earlier major version, such as 5.10.1,
first read perl5120delta, which describes differences between 5.10.1
and 5.12.0, as well as perl5121delta, which describes earlier changes
in the 5.12 stable release series.
なんて書いてあります。言われた通りに perl5120delta を読んでみると…。
The "..." operator
A new operator, "...", nicknamed the Yada Yada operator, has been
added. It is intended to mark placeholder code that is not yet
implemented. See "Yada Yada Operator" in perlop.
やだやだ演算子!?
とんでもないニックネームに惹かれながら perlop の Yada Yada Operator部分を読んでしまいました。
Yada Yada Operator
The yada yada operator (noted "...") is a placeholder for code. Perl
parses it without error, but when you try to execute a yada yada, it
throws an exception with the text "Unimplemented":
とりあえず未実装の部分に書いておくと、文法の解釈でエラーにしないで、実行時に"Unimplemented"(実行されませんでしたよ)のテキストと例外を投げてくれる演算子みたいです。なんだか範囲演算子とごっちゃになってややこしくなりそうな予感がします。いろいろ perldoc で読むつもりだったのにやだやだ演算子のネーミングが強烈過ぎて今日はここまで。
Sep 17, 2010
ドイツ語やフィンランド語でメールを書きたい!(夢)
ドイツ語やフィンランド語を勉強していると、ドイツ人やフィンランド人のお友だちも居ないのに、メールで文通してみたくなります。メールを書くにはドイツ語やフィンランド語の特殊な文字を書けないといけないのですけども、日本語配列のキーボードではそうした文字をどうやって入力するのでしょうか?今日は、ぽちの普段使いのテキストエディタ、Emacs で多言語入力を行うメモ書きをしてみました。Linux(開発を始めたリーナスさんはスウェーデン語話者のフィンランド人でしたね)上で使う Emacs での方法なので Windowsユーザにはあまり関係無いかもしれませんけども、こんな感じです。
Sep 16, 2010
フィンランドづいた晩夏

ドイツ語を勉強中だというのについついフィンランド語にまで手を出してしまいました。と言っても「フィンランド語のしくみ」は、フィンランド語入門書というよりも、フィンランド語を概観してどんな感じの言語なのかを大雑把に理解出来る読み物的な本です。フィンランド語については「ウラル語族の膠着語」とか、「ヨーロッパではエストニア語やハンガリー語と並ぶ異色言語」といった程度の上辺の知識だけで、その中身に関してはまるっきり知らなかったので、フィンランド語の異色振りがとても興味深くおもしろく読みました。

あんまりおもしろかったので、入門書の「ゼロから話せるフィンランド語」を買って今度は本格的に始めてみようかな?なんて野望を抱いていたります。フィンランド語は「これって…宇宙語?」と思うくらいに文法がややこしくて難しいのですけども、逆にドイツ語が「なんてカンタンな言葉!!」と思えてしまう効果もあったり…。
知人が新婚旅行でフィンランドに行ったり、かもめ食堂を観てほわっとしたり、敬遠してた萌えアニメでフィンランド人キャラに感動させられたり、アニメで日本語を覚えたというとんでもなく日本語の上手なフィンランドの方の動画を観たり、この晩夏はフィンランドな事件が怒涛の如く押し寄せて、すっかりフィンランドづいています。
まずはフィンランディア賛歌を覚えて歌おうかなあ。
Aug 31, 2010
最近読んだ本:[改訂第5版] LaTeX2e 美文書作成入門
![[改訂第5版] LaTeX2e 美文書作成入門表紙画像](http://images-jp.amazon.com/images/P/4774143197.09.MZZZZZZZ.jpg)
DTP の為の文書を書こうとすると、Linux向けにも OpenOffice.org のような Windows の MS Officeっぽい物もありますけども、ぽちのタダで貰った八年落ちの古い PC で使うには、大きなオフィススイートは重過ぎて苦痛だったりします。そこで、書くのにテキストエディタさえあれば重いツールを立ち上げる必要の無い、TeX の LaTex2e を使おうと思いつきました。重いツールを使う必要が無いのは良いのですけども、まずその為には Tex のマークアップの仕方をきちんと覚えなればなりません。Web上で公開されている情報だけでもそれなりに使いこなせるとは思いますけども、ここは評判の良い入門書、[改訂第5版] LaTeX2e 美文書作成入門を読んできちんと勉強してみる事にしました。
この本、タイトルに「入門」とあるものの、その内容の充実振りはかなりのものです。むしろのこの一冊で LaTex2e の一般的な使い方はほとんど網羅されてしまう気がしました。ただ、基本的に理系の科学論文を書く人に向けたかと思われる横書きレイアウト一辺倒の解説ばかりで、縦書きレイアウトに関してはほとんど触れられていないのが、テキストファイルの縦書きビューワーを書くぐらい日本語の文章は縦書きで読みたいぽちとしては残念でなりません。とは言うものの、この一点を除けば評判通りの良書でした。TeX/LaTeX関係の「本」は、この本だけ読んでおけばそれで済んでしまいそうです。
Jul 15, 2010
ダイスがない!
TRPG のりゅうたまを遊ぼうと、ルールブックも買ってウキウキしていたぽち。実際にシナリオを作ってプレイする前に、ぽち一人でプレイヤーキャラたちとモンスターとの模擬戦闘をやってみて、シナリオに登場させるのに丁度良い強さの敵を探してみようかな?なんて気分になって来ていました。ここでハタと気づいてみれば、りゅうたまでは 4面、6面、8面、10面、12面といった様々な多面ダイスを使いますけども、TRPGシステムでもメジャーな 6面ダイスや 10面ダイスはともかく、その他のマイナーなダイスをぽちは持っていません。しかも、ぽちが持っているダイスのうち割りと特殊な 10面ダイスは東京在住時代に専門店で購入したもので、かなりの田舎在住の現在、6面ダイス以外の多面ダイスは出掛けるのに現実的な距離にあるおもちゃ屋さんなどでは入手出来ません。将来的には Web通販に頼るにしろ、当面のこの状態には困ってしまいました。こんな事をチャットで愚痴っていると、お友達から「紙で自作すれば?」というお言葉。
自作?
そう、自作です!
ぽちには、Perl を始めたての頃に書いた IRCダイスボットがあるじゃないですか!!
そこからダイスロール部分のコードを抜き出してローカル実行用のツールにすればソロ模擬戦には充分です。けど、ここでまたハタと気づいてみれば、ぽちの IRCダイスボットは、ローカルに保存していたものは昨年末の HDD故障で失われていますし、さらにそれより前、Facelessさんが Perl で書かれた汎用性があって高機能の素敵な IRCダイスボットを公開された時に、より劣るぽちの IRCダイスボットは Web での公開もやめています。つまりローカルなぽちPC の中にも Web上にも再利用出来るコードはどこにも無くなっていたのでした。
こうしてズボラな手抜きの道を断たれたぽちが仕方なくちゃちゃっとテキトーに書いたのが下のダイスツールです。
dice.pl
#!/usr/bin/perl
use strict;
use warnings;
use Math::Random::MT; # 擬似乱数生成にメルセンヌ・ツイスタを使ってみる
my @dices;
my @advs;
my $dice_sum = 0;
my $adv_sum = 0;
@ARGV or die "need argument!\n";
if (@ARGV <= 3) { # 引き数は三つまで
while (@ARGV) {
my $arg = shift;
if ($arg =~ /^[1-9]\d?d(?:4|6|8|10|12|20|100)$/) { # 個数二桁まで、一般的な多面ダイスのみ
push @dices, $arg;
} elsif ($arg =~ /^(?:\+|-)?\d{1,2}$/) { # 修正値は二桁まで
push @advs, $arg;
} else {
warn "irregular argument: $arg!\n";
}
}
} else {
die "too mach arguments!\n";
}
my $seed = time ^ $$ ^ unpack "%L*", `ps axww | gzip -f`;
my $gen = Math::Random::MT->new($seed);
foreach my $dice (@dices) {
$dice =~ /^([1-9]\d?)d(4|6|8|10|12|20|100)$/;
my ($dice_count, $dice_size) = ($1, $2);
while ($dice_count) {
my $a_dice = int $gen->rand($dice_size) + 1;
$dice_sum += $a_dice;
$dice_count--;
print "d$dice_size: $a_dice\n";
}
}
foreach my $adv (@advs) {
$adv_sum += $adv;
}
print "add: $adv_sum\n";
print "sum: ", $dice_sum + $adv_sum, "\n";
擬似乱数生成にメルセンヌ・ツイスタを使おうと CPANモジュールの Math::Random::MT を使っている上に、乱数種を作るのに UNIX/Linuxコマンドの ps や gzip に依存しているので Linux を始めとした Unixっぽい環境でしか動きませんが、どのみち自分用ですのでこれでよし。
この dice.pl に実行権限を付けて実行パスの通ったディレクトリに放り込んだ後、
$ dice.pl 1d4 1d8 +1
d4: 3 d8: 2 add: 1 sum: 6
$ dice.pl 2d10 1d12 -2
d10: 6 d10: 5 d12: 11 add: -2 sum: 20
といった感じで使ってみたり。
これでやっとりゅうたまの模擬戦が出来ます。
Jul 08, 2010
最近読んだ本:りゅうたま・新版暗号技術入門・乙嫁語り 2巻

以前ソードワールド2.0のルールブックを購入してから一年半振りに TRPG のルールブックを買いました。最初は表紙絵のほのぼの感に惹かれたのですけども、色々と調べるうちに SNE系や FEAR系といった最近主流のものとは随分違うアプローチでデザインされているようで、ずっと遊んでみたかったのをやっとこさ購入。GM が『竜人』というキャラクターとして世界に(ゲームの進行に)干渉するという竜人ルールがちょっと変わっています。GM の『神の手』がルールとして明文化されてる TRPG は始めて見ました。GM未経験だったり GM に不慣れだったりするひとには、GM としてどう動くのかの指針になるのかもしれませんね。プレイヤーとネタを出し合いながら街や世界を作っていく、街づくりルールや世界づくりルールが愉しそう。ネコゴブリンもかわゆいです。残念な部分は、ルールブックの章立ての構成がいけないのか一回通して読むだけではルールの全貌を把握するのが困難なところ。シンプルなルールなので繰り返し読むのもそれほど手間ではありませんが、初心者さんがパッと読んで理解するにはキビシイ感じがします。

デジモンテイマーズとクリプトノミコンに影響されて、パソコンのパの字も知らないぽちが Windows をすっとばしてイキナリ Linux を勉強し始めたのは以前にもどこかで書いたかもしれませんけども、その二つの契機のうちの一つクリプトノミコンは、二つの時代に跨がる新旧の暗号技術やコンピュータが主題になった冒険(?)小説でした。この本はその暗号技術に関しての分かり易い入門書です。現代の暗号技術に関しては大雑把には理解していたのですけども、実際の計算の過程も含めて、その仕組みをこれほど分かり易く書いてある本は稀なのではないでしょうか? GnuPG を使って暗号化したり署名したりする - ぽち*ぷ〜ちのように、メールの暗号化やメールへの電子署名に GnuPG を使っているぽちとしては PGP の動作について解説している部分が一番興味深かったです。

絵もお話も、安心の森薫クオリティ。
荒事もあったりする第二巻ですが、その荒事を通してアミルさんとカルルクくんが次第に想いを深め合って来る様子がしみじみとしててイイ感じ。今回新登場のパリヤちゃんも、ひとに対して不器用な感じが好印象です。
Jun 25, 2010
無料ブラウザゲームを引き払う
数ヶ月遊んでいた某無料ブラウザゲームを引き払う予定でいます。
理由はガッカリしたからです。
そのゲームではとある同盟に参加しているのですけれども、その数日前にその盟主さんのサイトのコメントに、
36. 合成ってレベルが高かったり沢山つぎ込んだりすれば成功率上がるんですか?しかしこうやって合成失敗→材料目当てに購入を繰り返すのはメーカーの思う壺ですね
という大きなお世話で頭の悪いコメントをした方がいました。そんな事は当人が納得していれば各々の趣味とお財布の中身に従って好きにすれば良いだけの事で、盟主さんが、
うむ。すまない。色々言いたいところだが、一言だけ言わせてくれ。「余計なお世話だ」
とレスを返すのも至極尤もな話です。ここまでは、「あ〜、何だか頭の悪い人が変なコメントしているなあ…」で済んでいたのですけども、翌日にそのコメントとレスへ、別の方のコメントが付きました。
>36 貯金全額つぎ込んだりしない「計画的な無駄遣い」ってさ、必要だと思うよ〜。楽しみが無い人生って虚しいじゃない。
これも尤もな意見ですけども、これに続く盟主さんのレスにぽちは心底ガッカリして、この無料ブラウザゲームを引き払う決意をする事になりました。
課金してる人間がいるから遊べるのに、非課金の人ってなんで上から目線の人が多いんだろう!!
「ああ、そうだったのか、盟主さんは無課金プレイヤーをそんな風に思って見ていたのか」と、ぽちは一瞬だけ腹が立ちましたけども、その一瞬の後にはしみじみとした虚しい思いしか残りません。
「無課金プレイヤーは課金プレイヤーに遊ばせて貰ってるんだ」という主張は確かに一面では事実なのでしょうけども、それはその”一面分だけ”しか価値を持たない事実なのでは無いでしょうか?そうでなければ MMORPG やブラウザゲームを無料で行うビジネスモデルが、これ程隆盛する筈もありません。参加に課金する従来型のビジネスモデルで良かった筈です。豪勢に課金してる方がみんなこんな感覚だと思うと、無料ゲームを続けるモチベーションもそれは無くなるというものです。
May 25, 2010
ぽちたて 0.1.1 をリリースしました

ぽちたて 0.1.0 のリリース直後にビューワーとして致命的な不具合がてんこ盛りで発覚してしまって大慌てのぽち、さっそく大急ぎでもう少しましなぽちたて 0.1.1 をリリースしちゃいます。
今回は、[ファイル]→[開く]による開き直しが出来るようにして、その他のてんこ盛りな不具合を見つけられた範囲で修正してみました。
ノリと勢いでリリースすると本当に駄目ですね…。ぽち、いろいろと大反省中です。
May 20, 2010
ぽちたて 0.1.0 をリリースしました

約半年間も放置し続けた挙句、やっとの事でぽちたて 0.1.0 をリリースしました。
このバージョンからは Pango による縦書きを利用する為に、GUIツールキットとして Gtk2-Perl を通して GTK+2 を使っています。ぽちの環境では、Pango での縦書きは正直なところまだまだ実用的な域ではありませんけども、最新の Pango ならきっと素敵な感じになっているだろう事を夢見ています(他力本願)。最新環境の方に試していただけて、どんな感じに表示されるのか教えていただけたら嬉しいです。
Apr 28, 2010
最近読んだ本:まいにちドイツ語 2010年4月号・5月号・入門Git


NHKラジオ まいにちドイツ語 2010年4月号 NHKラジオ まいにちドイツ語 2010年5月号
最近では NHK のラジオの語学講座も無料で Web を介してストリーミングしている事を知りました。
これならラジオを持たないぽちも聴けるし、ストリーミングなら時間を選ばず好きな時に聴くことが出来ます。さっそくストリーミングのある番組の中でドイツ語を選んで勉強を始めてみました。まいにちドイツ語 という番組です。ラジオでは一回十五分の番組が月曜日から金曜日まで週に五回放送されているのですけども、ストリーミングは先週ラジオで放送された五回分が月曜日の十時にまるごと全部アップされていて、その一週間は何度でも好きなだけ繰り返して聴く事が出来ます。この「繰り返し好きなだけ聴ける」というのがぽちのお気に入りなところだったり…。

刊行直後からぽちの購入予定本リストに挙がっていたものの、なぜかずっと読まないままになっていた入門Git を漸く読む事が出来ました。まるっきりこうしたバージョン管理システムに詳しく無い方には少しとっつき難い感じがするかもしれませんけども、前評判通りの良書です。まず最初に Git の仕組みが最初に触れられているのですが、それがあるからこそ、その後の使い方がより分かり易くなっていて好印象でした。
Feb 13, 2010
ブラウザ三国志にハマる
なんと、うかうかしている間に年も明け、二月に突入してしまいました!
そんなぽち、最近ブラウザゲームのブラウザ三国志にハマっています。次期ぽちたても放ったらかしになったままなのに、こんなで良いんだろか?と思わない事もありませんけども、ハマった挙句に Gtk2-Perl を使って領地分布図作成支援ツールまで作ってみたりしています。
次期ぽちたて作りも全然手に付きません。困ったなあ。