AG (Ascii Graph) のページ
Last update: 2000/05/21
AG (Ascii Graph) は ASCII 文字を使って
xterm 等のキャラクタ端末上にグラフを描画するツールです。
表示されるグラフは、こんな感じです。
vi-like (というより w3m-like) なコマンドでグラフを操作することができます。
また xterm/kterm 上ではマウスを使用することもできます。
実用性は?(おいおい^^;)なんですが遊んでみてください。
AG を作ったわけ
巷には高機能なグラフソフトが沢山ある(といっても UNIX 上は少ない;_;)し、
手軽にグラフを見るなら xgraph があるのに、
なぜこんなものを作ったかといえば、作ってみたかったからです(^^)。
でも、こう言ってしまっては面白くないので、AG を作ったわけを紹介しましょう。
AG の前身は、数年前に作った awk スクリプトでした。
これは単にグラフを ASCII 文字で出力するだけのもので
実用性 0 だったためか自分自身忘れさっていました。
ところがある時、Windows から telnet で入ったマシンのデータを
グラフで見たいことがあり、この awk スクリプトを思い出して使ってみました。
結果、やっぱり使えなかったんですが…
ただ、この時にグラフを出力するだけでなく操作できれば、
それなりに面白い(使える)のではないのかい?と思いました。
そこで、まず perl5 + Curses-1.02 (perl から curses の関数を呼ぶ拡張モジュール)
で実装してみました。
この perl 版は、C 版(ag-0.1.1 時点)の、ほとんど全ての機能を持っていました。
それなりに使えそうではあったのですが、
なんと言っても遅いのがネックでした。
スクロールなどほとんど使いものになりませんでした。
もちろん、速くするには C で書けばいいのですが、
それほど使わないしなぁと悩んでいました。
結局、C で書くことにしたわけは、
- 2000年のゴールデンウィークが長い(私は 4/28〜5/7)ので、
その半分を潰せばできそうだった。
- 実は、いままで main() を書いて公開したことがないので
試しにやってみたかった。
(w3m をはじめ、
mailx、
tcsh、
xlHtml、
oneko
などの patch は色々書いたのですが。)
- できるだけ綺麗にソースを書く練習をしてみたかった。
| 関数 | ag_xxx_yyy() |
| マクロ | AG_XXX_YYY |
| 宣言子 | AG_xxx_yyy |
| グローバル変数 | AgXxxYyy |
| ローカル変数 | xxx |
となっています。
- autoconf, automake を使う練習をしてみたかった。
ごく単純な Makefile.am と confgiure.in だけ使っています。
などです。
要するに作ってみたかっただけなんですけどね。
というわけなので実用性は2の次です。
ただ、コマンド自体は使いやすいものになっていると思います。