WHO GNU?

In his commentary on OFFLFIRSOCH, Solderpunk noted how some happy 
users of common GNU software were surprised by the existance of GNU 
Units as an alternative to using web-based unit converters. My own 
Gopher Banker currency converter reads Units currency data and uses 
it to do conversions, so I was pretty well aware of it already. But 
GNU Recutils was also referenced and I'd only recently discovered 
that via the phlog of the corresponding OFFLFIRSOCH submission's 
author. I've now earmarked Recutils as a solution for a variety of 
problems. None of which, frankly, I can really be bothered putting 
the work into solving, but it's nice to have the option.

Anyway I thought I'd pick out some GNU projects that I think are a 
little under-appreciated and highlight them here for the UNIX nerds 
in the audience (or perhaps they _are_ the audience here on 
Gopher). Some might be more 'interesting' than genuinely useful to 
many people, but that's half the fun.

MTOOLS
http://www.gnu.org/software/mtools/

I discovered GNU Mtools while debugging a fault with installing the 
Syslinux bootloader, which turned out to be due to an installation 
issue with a separate library. I've forgotten exactly what Syslinux 
needs to do with Mtools when it's copying boot files to a 
directory, but I rediscovered the necessity for it yesterday when I 
determined that my failure to reenact this installation method when 
replacing the OS files on my Internet Client test SD card that I 
wiped out with Rsync (as I whined about in my last post) was the 
reason why it wouldn't boot even with the file list exactly as it 
was before my disaster. This is one of those lessons that I'm 
learning _very_ slowly, one disaster at a time.

GNU Mtools itself is a fun little alternative universe for 
interacting with FAT filesystems in UNIX. It basically lets you 
access them like on MSDOS, without all those fancy things like 
mounting and unmounting, or unalphabetical partition names. If you 
know your basic MSDOS file systems commands, you just wack an "m" 
on the front and there you've got them on your *NIX as well. mcd, 
mdir, mcopy, mmove, mdel, even mformat (careful!). It's great fun 
to play with, and a little mind bending to be using a file system 
in Linux without mounting it.

Like MSDOS, the tools are also centred around usage on floppy 
disks, so you get lots of old floppy formatting options, and most 
remarkably a remote floppy disk access system, floppyd. From the 
Mtools manual:

 Floppyd is used as a server to grant access to the floppy drive 
 to clients running on a remote machine, just as an X server grants 
 access to the display to remote clients. It has the following 
 syntax: 

  floppyd [-d] [-l] [-s port] [-r user] [-b ipaddr] [-x display] 
   devicenames 

 floppyd is always associated with an X server. It runs on the 
 same machine as its X server, and listens on port 5703 and above.

No doubt Mtools was more familiar to people in the 90s, and maybe 
well used by older UNIXers than me back in the day. It's 
interesting though to see that it's still important for configuring 
bootloaders (at least non-UEFI), and still being worked on with the 
latest release just last year.

ENSCRIPT
http://www.gnu.org/software/enscript/

GNU Enscript is most useful to me for converting plain text into 
Postscript in order to preserve formatting when sharing fixed-width 
text content such as data in tables or ASCII-art diagrams with 
people who don't understand fixed/variable width fonts. Of course 
such people usually need the Postscript converted into PDF as a 
second step afterwards so that they know what to do with it. It 
also supports output in HTML and RTF formats.

Again its history goes back to the 1990s when Adobe apparantly had 
an Enscript program to do such bidding, and this was written as an 
open-source alternative. A rather impressive additional feature of 
the GNU version is systax highlighting for source code, or 
"language sensitive code highlighting" as the documentation calls 
it. This is actually handled by an included companion program 
called 'states'. Although named as if someone was trying to hide 
some backdoor code out of sight, states is quite a neat syntax 
highlighting system that reads language definitions from text files 
that can be updated independently of the Enscript program. It comes 
with a pretty good range of supported languages, although naturally 
a little dated since the last release of GNU Enscript was in 2012.

I use its HTML syntax highlighting for the HTML modes of GophHub, 
my Gopher interface to GitHub:
gopher://tilde.club/7/~freet/gophhub/?html=1

There are some limitations, often with detecting the language via 
filename extension (it only identifies Makefiles if they start with 
"makefile.", for example), but it works quite well. I also saw 
someone in Gopherspace is working on the development code, but 
unfortunately I forget where their Gopher hole is burried.

MAILUTILS
https://www.mailutils.org/

GNU Mailutils contains a wonderful selection of tools for managing 
email, server side or client side, including converting between 
standard storage formats, serving and fetching mail via the usual 
internet protocols, and even reading email via its beautifully 
antiquated email client 'mail'. Typical of other GNU *utils 
projects such as Inetutils and Coreutils, it takes a Swiss Army 
Knife approach and seems to try and have a tool for everything you 
could want to do with Email. The omission here, so obvious that it 
seems like it must be deliberate, is that although there are 
servers for IMAP and POP, there's no SMTP server. It does have its 
own equivalent to the 'sendmail' command for sending mail to an 
SMTP server, called 'putmail', but it looks like the authors wanted 
to avoid the minefield that is SMTP server software, and who could 
blame them?

In general Mailutils seems well suited to small-scale personal mail 
usage, including personal mail servers. Such as an IMAP server 
running on a home network, using the 'movemail' command to fetch 
messages from a 'real' mail server on the big scary internet via 
POP or IMAP (movemail allows IMAP to be used much the same as POP 
for this purpose, grabbing only new messages and optionally 
deleting them from the server afterwards). But the individual tools 
could also be very handy for small tasks anywhere that you're 
dealing with email in a standard format. It does often take a bit 
of work to decipher exactly what a tool can and can't do from the 
documentation though.

Mailutils is maintained by Sergey Poznyakoff who appears to have 
been active in its development for over twenty years, and it still 
gets regular releases.

GV
http://www.gnu.org/software/gv/

GNU GV is a Postscript/PDF viewer. I use it as my primary viewer 
for both, but of course that means mainly with PDFs. In fact the 
rendering is all done by Ghostscript (which can actually display 
PS/PDF files in an X window itself, though far less conveniently), 
which is useful because the last release was in 2013 so that avoids 
the compatibility problems that crop up with other unmaintained PDF 
viewers attempting to upen modern PDFs. GV has a nice simple 
interface, which includes a handy little area for selecting pages 
to print. For my Internet Client system it also has the great 
advantage of sending each page as a complete image to the X server, 
so when accessing it via a networked X connection from one of my 
old PCs I can drag the page view around without the lag of having 
the new page view constantly updating over the network like it does 
in other PDF viewers.

The disadvantages of GV are also quite significant though, mainly 
that it doesn't allow text to be selected or searched. It also 
makes no attempt at displaying indexes or internal links. These are 
the downsides of relying on Ghostscript, which is designed mainly 
for output to printers rather than an interactive display. It also 
seems to get rather confused by the orientation of pages sometimes, 
and it's not unusal to get half a page shown on its side in the 
page view (this is sometimes fixable by manually setting the 
orientation in a drow-down menu at the top of the window).

One thing you do get (at least on PCs as slow as mine) is the fun 
of watching Ghostscript build big PDFs up while you watch, drawing 
lines and text all over the place before finally revealing the 
bitmap images that go in betweeen. PDFs of complex maps are 
especially entertaining, although also very slow. This might be 
different in the new Ghostscript versions where the PDF rendering 
code is no longer itself written in Postscript, I haven't tried 
them yet. Turning off anti-aliasing may also be necessary to get 
the rendering speed up to something reasonable, and perhaps to make 
the result less blurry (its effectiveness seems to vary, I usually 
leave it off).

I probably haven't really sold GV to you, but it has its niche, and 
I often find myself in that niche there with it (oh how cosy!).

POKE
http://www.jemarch.net/poke

In stark contrast to the other GNU projects that I've mentioned, 
this is actually a new one (relatively, first released in 2021)! 
GNU Poke is a program and programming language designed for 
reverse-engineering and manipulating structured binary data. Not 
something most people find a particular necessity for, including 
myself, but an interesting and somehow vaguely magical endeavour.

As I say, I don't really have much use for it, so I haven't 
actually tried it myself. But I did watch the video that's on the 
project's homepage, as well as read through some of the similar 
content in the manual, and on an academic level I find it quite 
interesting. Somewhat like GNU Recutils that I mentioned at the 
start, it's potentially a good tool for doing various things that I 
can't be bothered to do either way.

CONCLUSION

Of course I'm not stuck to GNU software particularly, lots of 
non-GNU software is just as interesting to me if not more so, and 
as much as I appreciate the FSF's philosophy I don't get myself too 
wound up on the nitty gritty details of 'freedom' that it pursues. 
The GNU project is just one software collection which has the very 
serious advantage of both indexing and hosting its projects online. 
Take away one of those two features and it becomes a reason why so 
much other open-source software gets lost to time.

 - The Free Thinker