AWKブーム第1世代は「アイドル辞書」で学んだ――日本GNU AWKユーザー会 斉藤さん
かまぷとゆうこのデベロッパーズ☆ラジオ #1 日本GNU AWKユーザー会 斉藤博文さん
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
- 修正履歴
-
- 2016/06/16 11:16 iTunesへのリンクを追加しました。
この記事は参考になりましたか?
- この記事の著者
-
近藤 佑子(編集部)(コンドウ ユウコ)
株式会社翔泳社 CodeZine編集部 編集長、Developers Summit オーガナイザー。1986年岡山県生まれ。京都大学工学部建築学科、東京大学工学系研究科建築学専攻修士課程修了。フリーランスを経て2014年株式会社翔泳社に入社。ソフトウェア開発者向けWebメディア「CodeZine」の編集・企画・運営に携わる。2018年、副編集長に就任。2017年より、ソフトウェア開発者向けカンファレンス「Developers...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
かまた ひろこ(カマタ ヒロコ)
イベントとお酒と人が好き。TechLION/TechGIRL/Linux女子部界隈で活動。社会人ディベートサークル、JBDF役員。2014年よりSoftwareDesignにて軽酔対談『かまぷの部屋』を連載、2016年2月で終了。(特技:傾聴)
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
