AWKを勉強するには「アイドル辞書」が役立った
ゆうこ AWKに心底ハマって、その後どうやって勉強されましたか。
斉藤 まずは手を動かすのが重要ですね。私、自分で決して頭いいほうだとは思ってなくて、プログラムって頭の中で考えても、その通り動いてくれないんですよ。みなさんもそうかもしれないですけど。なので、実際に手を動かして書いた量が、自分の経験が全てだと私は思っているので、とりあえず書くと。で、AWKのいいところが、もともとあったファイルをリダイレクトしない限り壊さないので、他のプログラムもそうですけど。壊さないというのが約束されているので、もういろんなことをやってみるというところから学びましたね。
かまぷ トレーニングといいますか、訓練ですね。
斉藤 その時に役に立ったのが、当時「アイドル辞書」ってのがあったんですよ。今はないんですけど。いろんなアイドルの身長体重スリーサイズ、出身地、年齢。いろんなことが書いてある。そうすると、とってもたくさんのアイドルが載っているんで、じゃあ自分の好みに合った、「若くて身長が小さくて」と検索するのに、すごくAWKって便利な言語なんですね。それをもとに、こういう条件に変えたらどうなるだろうとやってみました。
ゆうこ このアイドル辞書、テキストデータで転がってたものだったんですか。当時は……あれ、インターネットはない時代ですよね。
斉藤 いいところに気が付きましたね。なかったんですよ。いわゆるウェブで手に入る時代じゃなくって、当時FTPが主流で、FTPといえば、当時は、秋保(あきう)という地名にちなんだ秋保サーバー(秋保窓)ってのがあったんですよ。そこにいけば、全てのいろんな情報が手に入る。
ゆうこ すごそうな場所ですね。
斉藤 で、AWKをやる人も、もちろんいろんなデータ取りに行ってました。当時、FTPは何とか使えたので。
かまぷ 「あきう」ってなんですか。
斉藤 秋保って知りません? 「秋保(あきほ)」と書いて「あきう」。それ。
かまぷ へえ。
斉藤 私ぐらいの世代の人だと、秋保サーバーって知ってる方多いんじゃないかなと思いますね。
ゆうこ いや、AWKの話から飛躍してこう、かつてのコンピュータ事情というか、聞けていいですね。
かまぷ すごいですね。
ゆうこ 私の知らないコンピュータの世界。
斉藤 当時大阪大学で発表された「AWKの簡単な使い方」っていう短いテキストがあって。はじめは真面目に、恒星のデータ処理について書いてるんですけど、途中からは、全てアイドル辞書を使って、「こういうのを検索してみましょう」てのが書かれてあるんです。例えば「アイドルの誕生年ごとの身長の平均を計算するプログラムを作成しなさい」とか。昔「リビドードリブン開発」みたいなの、誰かが言ってたような気がしますけど、やっぱり興味があることってどんどん進んでいくので。こういうテキストが当時、AWKブーム第1世代にとってすごく助かりました。
ゆうこ 斉藤さんだけじゃなくて他のAWKユーザーもこれで学んだと。
おまけ:斉藤さんのお気に入りのAWKプログラム
いろいろありますが、インパクトが大きいという意味で以下のものを紹介しています。 どうなるかは動かしてみてください。(斉藤)
#! /usr/bin/awk -f # $Id: blobs.awk,v 1.4 2006/01/31 23:14:38 tnn Exp $ # AWK eyecandy. resize your terminal emulator for speed/resolution. # (c) 2004 Tobias Nygren <tnn+blobs-awk@nygren.pp.se> # uncomment this line if your awk is mean # function fflush(e) {} function f(m, n){o =+x- X/2-\ cos(a*m)*30; p=y- Y/2- sin( a*n)\ *9;;;; return sqrt (o*o +p*p )}### BEGIN {;c=" stty size ";c|getline; close (c); X=$2 ; Y=$1 -1;for(;;){ a+=+ .002 ;d=" ead beef ";printf(""\ "tnn@netilium.o" "rg \033" "[H" );#@ ninja fflush(stdout);; for(y=0;y++<Y;) {for (x=0\ ;x++< X;){ printf ("%c", 32+( f(30\ ,40) *f(0 +12, 17)/ 3/(1 +f(19\ ,+23 )))% 64 )} }}}# theend