CGI Toaster
PerlのアンケートCGIをオンザフライで作成するMac OS用アプリケーション。すべてAppleScriptで記述してある。Mac OS 8.5のときに作成。
GUIベースのHTML作成アプリケーションでアンケート投稿フォームを作成し、そのアンケートフォームをCGI Toasterにドラッグ&ドロップすると、入力/確認/ファイル書き込みを行うPerlのCGIを瞬間的に自動生成する。
作成したのは4年以上前になるが、当時、仕事でアンケートcgiを作らされることが多く、不馴れなPerlのデバッグで非常に手間がかかっていた。ほんの些細な書き間違えが致命傷になる割には、エラーチェック機構などないただのテキストエディタで書いていたりで、ものすごく不自由を覚えていた。生産性もよくなかった。
当時、自分はAppleScriptを覚えたてで、そのフレンドリーな環境に頭のてっぺんから爪の先まで漬かっていた(いまもだが)。エラーチェックはエディタが勝手にやってくれて、文法要素ごとに色分けしてくれたり、存在しないアプリを指定してしまった場合には、対話動作で「本当のアプリはどれだ?」と聞いてくれるAppleScriptの環境にくらべ、Perlの記述環境は本当にプアーだった。やっていて頭痛がした。
その当時、DBからの膨大なカタログHTMLの生成などをAppleScriptで作っていた自分は、ふと、
「AppleScriptでHTMLが生成できるんだから、Perlだって自動生成できなきゃおかしい! どうせ、どっちも同じただのテキストファイルじゃないか!」
と思いたち、共通パーツにそれぞれのデータを分解し、いくつかのダイアログによるやりとりを行えば、すぐにアンケートCGIを作成してくれる「CGI Toaster」を作成した。
作業効率は劇的に向上した。それまで1時間以上かけて作っていたCGIが、ものの数秒で作成でき、さらに生成したPerl CGIにはたくさんコメントを付けておいたので、どこをどう書き換えればよいかも(自分には)一目で分かるようになっていた。
それまでしかめっつらをして作っていたCGIが、鼻歌うたいながらあっという間にできるようになり、めちゃくちゃ作業は楽になった。
しかし、CGI Toasterの機能を真剣に上げれば上げるほど、便利になればなるほど、上から仕事が降ってきて、結果としてぜんぜん楽にならないという事実が判明(涙)
現場の効率化ツールは、こっそり使うのがよいという教訓を得た。
まじめにバージョンアップすれば、かなり使えるツールになるということも見えていたが、そのハードルをクリアするために割と苦労が必要なことも見てとれた。
(1)アンケート以外の目的にも使えるよう、生成できるCGIの種類を増やすこと
(2)生成したCGIのセルフチェック機能……テストデータを放り込んで、きちんとデータに入るかどうかをローカルWebサーバ上で自己検証する機能
(3)ディレクトリ構成が大きく異なる各種サーバー環境に合わせ、パラメータを変更する機能
(4)サーバーの構成を自動で取得するオートコンフィギュレーション機能
(5)決め打ちのCGIだと外部から攻撃されやすくなるため、ある程度記述の「ゆらぎ」を発生する機能
……ここまで作り込まないと、胸を張って「Macのアプリケーションである」とは言えないと判断、割と自分のスキルでは手に負えないとして開発をストップしてしまった。
いまなら、Mac OS Xの環境上でなら、開発に使えるツールも増え、昔よりも楽に作れることだろう。オープンソースのプロジェクトにでもして、完成を目指してもよいのかもしれない。
Perlを直接生成する以外に、サーバーサイドでいろいろやれることはあるわけで、そのあたりの見極め(本当に真剣に作る必要があるか)は大事かもしれない。その当時は、このツールがないと仕事にならなかったが、いま現在では別にアンケートCGIが書けないといって悩む必要もない。
コメント (10)
最新コメント5件
2003/10/02
ぴよまるソフトウェア たしかに、フォームの作成自体も割と骨が折れますね(^ー^; だんだんニーズの方向性が見えてまいりました……
2003/10/03
スミタニ チヒロ ここで紹介したからには公開しないと…(笑)
2004/02/11
ぴよまるソフトウェア Mac OS X版の企画を開始。フォームの作成&既存フォームのエラーチェックを行う「Form Toaster」と、ドラック&ドロッップでCGIの生成を行う「CGI Toaster」の2本立てで企画。標準添付のCGIはアンケートなどの簡単なもので、テンプレートを用意すれば他のCGIにも対処。オートコンフィギュレーションは、やはりちょっと無理なので仕様から除外。ローカルWebサーバ上のチェックのほか、ローカル用機能としてローカルWebサーバ経由でアドレスブックにデータを入れるなどの機能を付加(LAN上での利用など)。こんなもんでどうでしょう?
2004/02/12
スミタニ チヒロ 売れます。
芹沢文書 充分すぎるほどではないかと。
- すべてのコメント »
つながりキーワード (5)
Affrus
- (ぴよまるソフトウェア)
AppleScript用デバッガ「Script Debugger」で知られるカナダのLate Night Software社の新作ソフトウェア。ひとことでいえば、「Per...
MacJPerl
- (ながや)
Macで動くPerlです。ドロップレットがとても簡単に作れてすげ~便利。 DBやExcleから吐き出したCSVをHTMLに成形するときなどにとんでもなく重宝します。CG...
MacOSX
- (Fuzio)
アップルの世界一美しいOS。 4年前Linuxの改造に燃えてる時にであったテーマ「AQUA」。綺麗だなーと思って窓機もAQUAにhttp://www.kanshin.c...
Safari
- (ぴよまるソフトウェア)
Apple純正のWebブラウザ。レンダリングの速さがウリだが、Webブラウザとしては画期的な機能が実装されている。この点は誰も指摘していないが、今後のWebブラウザの位置付けを変えるものに...
AppleScript
- (ぴよまるソフトウェア)
MacOSに標準搭載されているスクリプト言語。MacOS上のGUIベースのアプリケーションをコントロールできるほか、MacOS XのUNIXレイヤーにあるUNIX系アプリ...



AppleScript...
MacJPerl
Affrus
MacOSX

