summaryrefslogtreecommitdiff
path: root/README
blob: 884714fa72437c876a092fab6a47b40bab908a3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
gramscii -- interactive tool for ASCII box-and-arrows charts
============================================================

```gramscii``` (pronounced "grrr'a(m)sky", more or less like "ASCII" but
with a leading "grrr") is a simple CLI tool to create and edit
box-and-arrows charts using ASCII characters. 

```gramscii``` is interactive and its commands are quite intuitive to
anybody who does not need a mouse to be productive. You can move around
the screen with the usual ```hjkl``` keys, but you will travel at
ligthning speed by placing another finger on ```SHIFT```. You start
drawing a box with ```b```, and you place an arrow with ```a```. For
more information, just read the manpage. 

```gramscii``` aims at remaining small, avoiding bloat, and being
portable. It is written in ASCII C90, it requires only an ANSI
VT100-compatible terminal (real or virtual), and it does not use any
external library (nope, not even ncurses!). Hence, you should be able to
compile and run ```gramscii``` on any operating system with a C90 libc
and a VT100 terminal emulator.

WHY?
====

As most of the software out there, ```gramscii``` comes out of
frustration and pain. 

I have been producing box-and-arrow diagrams in ASCII for quite a while.
I know that there exist ad-hoc plugins for ```vim(1)``` and
```emacs(1)```, but I was not happy with any of them, to say the least. 

At the same time, there has been a recent proliferation of browser-based
point-and-click tools to draw ASCII charts. Like, are you serious? Why
on Earth should people accept to load 1 million LOCs of obscure
javascript code on a hyper-bloated web browser and use a fancy
point-and-click interface to produce......guess what......ASCII charts
that are best-viewed viewed on a VT100 terminal?

We must say no to madness. We must repudiate bloat. We must reject
useless featurism. Software must be reasonable, simple, small, and
functional.

But wait... 
============

If you have noticed that the name ```gramscii``` is too much reminiscent
of Antonio Gramsci, the phylosopher and politician who was among the
founders of the Italian Communist Party in 1921, who strongly believed
that every single human is an intellectual, a philosopher, and an
artist, and who maintained that societal changes are only possible when
a class exerts intellectual and moral leadership over its
contemporaries, well then just get rid of all your shiny iPointless
things and come back to reality.