Archive for 4月 2008

プログラミング言語の名前

プログラミング言語の名前について、その由来を調べるとおもしろい。例えば Perl はただの真珠ではなく新約聖書に出てくる「高価な真珠」というものに依っていることを Wikipedia で初めて知った。このほか Java、Ruby、Python などなど興味深いエピソードがたくさんある。Python は単に蛇の名前から取ったのかと思っていたら、なんとあの「モンティ・パイソン」が元になっていた、なんてこともある。

そんななかでの PHP である。そういえばこいつの名前がどうやって付いたのかを見聞きしたことがなかったので調べてみたら、正式名称は「PHP : Hypertext Preprocessor」というらしい。さらに PHP の部分は Personal Home Page Tools の頭文字に由来するという。ちょっと味気ない感じだ。もちろん言語の名前なんて本来の機能や性能とは無関係だし、ましてや名前だけで言語間の優劣を論じるつもりも無いのだが、その名前にまで作者のセンスが見え隠れするプログラミング言語のほうがやっぱり楽しい。

Perl 入門

Perl 入門に良さそうなサイトがあったのでメモ。

「サンプルコードによる Perl 入門」

Web アプリケーション開発の現場では、どうも PHP が主流になっているようだが、Perl がもっと注目されてもいいと思う。使うかどうか分からない機能を何もかも最初から詰め込んである PHP より、必要なモジュールを CPAN.org からサクッと持ってくる Perl のほうが合理的ではないか。また Web アプリとしての処理速度が PHP に劣るなんていう指摘もあるが、それが問題になるようなときは mod_perl を使えばいいだけのこと。それにサーバ環境で何かちょっとした作業のためのツールを作ろうとしたら PHP よりは Perl でしょ。もっともこんなツールを必要とする Web プログラマがどれだけいるのか、というのはあるが...

Google App Engine が熱い

Google App Engine が面白い。Beta 版のアカウント申請はすでに待ち行列入りになっているが、ローカル環境で使う SDK が配布されているので、これを使えば開発フェーズの評価をすることができる。まだほんの少し触っただけだが、DB はもちろんのことフレームワークや HTML テンプレート機能もすべてデフォルトで組み込まれているため、本当に簡単に開発を始めることができる。いまのところサポートする開発言語は Python だけだが、Python を習得するのにちょうど良い機会と思っている。

本家のドキュメントが充実していることに加えて、「Google App Engine に嫉妬 – 暗号、数学、時々プログラミング」というブログで超訳が公開されていて、これがものすごく楽しい内容になっているために読みやすい。さらに Python についても日本 Python ユーザ会が翻訳したドキュメントを大量に公開しているので助かる。

技術的には興味深いことばかりの Google App Engine であるが、そのデメリットも「Google App Engine のメリットとデメリット – ZD Net Japan」などで指摘されていて、確かにそうだよなとも思う。このあたりは実際に運用するアプリケーションの内容や目的と相談しながら可否を決めていくしかなさそうだ。

この Google App Engine や Amazon S3 などを総称して PaaS (Platform as a Service)と呼ぶらしい。これからは PaaS 環境で SaaS を運用する、ということなのだろう。いまのところ Amazon S3 のツール群は Google のものほど統合されていないため、一貫した開発環境としては Google App Engine が唯一の PaaS 選択肢に見えるが、Google 以外からもこのような PaaS が提供されることを期待したい。

PDFJ.pmを使う

とある団体では年会費の請求書を毎年郵送しているのだが、これをオンライン化して請求書を必要とする会員が勝手に取り出せる仕組みを作ることになった。ここはPDF形式で請求書を生成するのが良かろうということで、実装方法をさぐってみたら中島靖氏によるPerlモジュールPDFJ.pmというのを見つけた。このモジュール、シンプルなのに本当に良くできている。特に日本語組版の対応がすばらしい。和文と欧文の境目を少しだけ開ける、なんてことがきちんとサポートされている。ドキュメントによると JIS X 4051「日本語文書の行組版方法」(1995)にほぼ準拠した行組版ルールを組み込んでいるとのこと。また、生成したPDF文書の閲覧にパスワードを付けたり、編集を不可にすることなども簡単に指定できる。

PDFJを使って文書を構成するときは、テキストオブジェクトやパラグラフオブジェクトなどからブロックオブジェクトを作り、これを一つずつ絶対座標で配置していく必要がある。そのため複雑なレイアウトや複数ページの文書を作るには、PDFJを直接アクセスするのではなくラッパーを構築したほうが良さそうだ。しかし、請求書のように単純なレイアウトのものであれば、それほど苦労することなくPDF文書を出力することができる。また、今回は使っていないがXML形式で書かれた文書からPDFを生成するためのフロントエンドとしてXPDFJというのも用意されている。

いまさらのスパム

昨晩から今朝に掛けて、大量のスパムメールを受信した。本来ならばThunderbirdのスパムフィルターに学習させて自動処理すればいいのだが、今回のものについてはそう単純ではなかった。というのもこれらのスパムはすべて私が発信者になっているスパム(もちろん偽装!!)が宛先不明などの理由で、発信者である私(もちろん偽装!!)の元に戻ってきているという形になっているのだ。それぞれのメールを見てみると、本来の宛先もスパム本文の中身もバラバラで一貫性はないが、短時間に集中して送信されているので、同じところから発信されているのだろう。

このようにエラーメールの形式を取っているからといって、スパムフィルターを使えないわけではないのだが、メーリングリストの運用を担当している関係で、エラーメールを無条件にスパムとして判別させるわけにはいかない事情がある。対策としてメールアドレスを使い分けたり、細かなフィルタリング設定も考えられるが、いまのところは治まっているようなので、しばらく様子を見ることにする。

PostgreSQLの全文検索機能

PostgreSQLが8.3になって全文検索機能を取り込んだ。現在手掛けている某案件ではPostgreSQL8.2を使いつつ、全文検索のためだけにNamazuを組み合わせているが、これではスマートでないし運用管理面でも二度手間になっている。そこで機会があればPostgreSQL8.3を導入して、Namazuの利用を止めたいと考えている。そのときのためにインストール方法に関する有用と思われるリンクをメモしておく。

「PostgreSQL 8.3の全文検索機能(TSearch2)を日本語で利用する」

「textsearch-ja ホームページへようこそ」

端末PCの不具合

メインの端末として使っているPCを立ち上げると必ず”Performing automatic IDE configuration …”というメッセージが表示されて、BIOSの設定画面に誘導されるようになった。メッセージ内容からHDDに問題発生かとも思ったが、ネットで調べてみるとマザーボード上にあるバックアップ用ボタン電池の消耗により、BIOSが初期化されることによる現象であることが判明。たまたま手元に同じボタン電池(CR2032)があったので交換作業を行ったところ、いまのところ問題は解消されたように見える。この端末PCは購入から3年以上経過していたと思うが、もう一台のLinuxサーバもかなり前から使っているので、こちらでも同じような現象が起こらないか注意しておく必要がありそうだ。

オープンソースソフトウェア

日々の業務のほぼすべてをオープンソースソフトウェアに依存し、また ossaj という活動を通してオープンソースソフトウェアに関わっているにも関わらず、オープンソースソフトウェアとは何か、という根本的なところでしっくりこない感を持っていた。しかし、IT pro に掲載されていた「オープンソース GTD」を読んで、このモヤモヤが少し晴れたような気がする。この記事ではオープンソースソフトウェアの立ち位置を、実に分かりやすく簡潔に解説していると思う。