summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md77
1 files changed, 77 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e65826c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,77 @@
+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 one of your other fingers 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.
+
+I have tested it on Linux and *BSD, compiled with ```gcc```,
+```clang```, and ```tcc```, and linked it against ```glibc```,
+```musl```, and whatever libc was available on FreeBSD, OpenBSD, and
+NetBSD. It just worked.
+
+INSTALL
+=======
+
+Edit ```config.h``` and/or ```config.mk``` to suit your preferences.
+Then just:
+```
+make
+```
+
+to build ```gramsci``` and:
+```
+./gramscii
+```
+to execute it. ```man``` is your friend.
+
+
+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.
+There are also a few point-and-click GUI tools to do the same, but most
+of them depend on a variety of libraries/modules. And again, why would
+you need a fancy GUI to create ASCII charts?
+
+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 hundred thousands 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...
+============
+
+You might have noticed that the name ```gramscii``` is reminiscent of
+Antonio Gramsci, the phylosopher and politician who was among the
+founders of the Italian Communist Party in 1921. Now, Gramscii (the
+philosopher) strongly believed that every single human is an
+intellectual, a philosopher, and an artist, and maintained that societal
+changes are only possible when a class exerts intellectual and moral
+leadership over its contemporaries. So just get rid of all your shiny
+iPointless things and come back to reality.