mmcirvin: (Default)
[personal profile] mmcirvin
The Indent-o-Meter was a gag/gimmick I invented in 1993 on Usenet newsgroups that was briefly popular there, but could only exist in a technological milieu that is now so dead that it's hard to even explain what it was. The Jargon File mentions it, but instead of explaining it, it links to an ancient web page of mine that hasn't existed for decades. So of course I'm going to talk about it now. Also because Rowan Hamilton just reminded me of it. If you look at one of my posts from that era in Google Groups, there's a thing at the bottom that looks like this:

--
Matt 01234567 <-- Indent-o-Meter
McIrvin ^ Harnessing tab damage for peaceful ends!

Actually it doesn't look like that, because Google Groups destroys the presentation in various ways that you might understand if you read the rest of this essay. But that's how it looks after being restored by me to its original glory (which was actually a little tricky). What is that? How is it an Indent-o-Meter? What does it do? What was tab damage, anyway?

Tabs and spaces

Every programmer is familiar with the holy wars about using tab characters vs. spaces for whitespace indentation in source-code formatting. Non-programmers may not be. Code-editing tools, to this day, usually use monospaced fonts in which every character has the same width, like on an old typewriter. There will usually be a set of evenly-spaced "tab stops" across the width of the page, and a tab character will mean that whatever follows will be positioned at the next tab stop. It can be useful for formatting code that indicates related blocks with indentation. In the following (which I had difficulty even entering because Dreamwidth's editor won't let me insert tabs with the tab key), there's a single tab character between the numbers and the letters on each line:

1 foo
12 bar
123 baz
123456789 bam

Here, the tab stops are every 8 columns. "bam" gets kicked to the second tab stop because the digits filled up all the space to the first one.

Formatting with tabs can have interesting and sometimes unpredictable results when the code is formatted by different software from the specific environment you wrote it in, which is why some coders don't like them. But that's getting further afield.

Usenet

So to understand the Indent-o-Meter, you have to understand that, but you also have to understand a few things about Usenet.

Usenet was something like an early version of Reddit that worked without a web browser: a store-and-forward network of "newsgroups", discussion fora read with special-purpose software called a newsreader. Early on, most of these ran in plain-text, command-line interfaces, on a computer terminal or terminal program of some sort, and anyone reading them would most likely be using a monospaced font. And most of the time, the terminal had tab stops every 8 characters. So for a while, you could sort of assume that. Some of the time.

.sigs and ASCII art

As with email programs, you could automatically embed a little identifying closing message called a "signature" at the end of your Usenet posts, often by having a file on your account called ".signature", so they were often referred to as ".sigs". In the early days of Usenet it was common for some people to have elaborate signatures with "ASCII art" made out of simple text characters. Sometimes, they'd use a mixture of tabs and spaces for whitespace formatting in these .sigs. So you might see a post whose body looks like

I hate Star Trek: Voyager, it blows!
--
//
STORM // BRINGER
//
\\ //
AMIGA \\ // 4-EVA
\v/



or something along those lines. James "Kibo" Parry had this enormous .sig he would occasionally use that parodied every single cliche used in these things, all jammed together in a cacophony of ASCII that went on for multiple pages. It was a thing to see.

Quoting and indentation

Now the other thing you need to know is that, while Usenet newsgroups did have support for threaded conversations (via links in the headers), and some newsreaders displayed this threading in elaborate ways, it wasn't something you could count on. So, as with email programs, it was common in a response to quote the piece of text that you were responding to, for context. Now, good, civilized newsreader programs didn't put the whole quoted message at the bottom as with barbaric modern email programs. Instead, the quoted text would be at the top, usually indented with an indentation character like ">" at the left. A civilized poster might edit that text down to just what they were interested in responding to. A less civilized poster might not. So an exchange might look like

trekfan72@aol.com wrote:
>I love the fabulous new show "Star Trek: Voyager"! It's the best show ever!

No it isn't. To everlasting hellfire with you!!

and someone might follow up with

cynic@panix.com wrote:
>trekfan72@aol.com wrote:
>>I love the fabulous new show "Star Trek: Voyager"! It's the best show ever!
>
>No it isn't. To everlasting hellfire with you!!

Uh huh yes it is! I hate you!

and so on.

Tab damage

So suppose somebody quoted STORM BRINGER's .sig from up above in one of these replies. It might look like this:

stormbringer@bit.net wrote:

>I hate Star Trek: Voyager, it blows!
>--
> //
> STORM // BRINGER
> //
> \\ //
> AMIGA \\ // 4-EVA
> \v/

NO YOU SPEAK HERESY! I LIKE NEELIX THE BEST

Wait, what happened to STORM BRINGER's awesome Amiga checkmark? Well, they mixed tabs and spaces in idiosyncratic fashion in the .sig text, and the extra indentation on the left pushed some things to the next tab stop, some things one space to the right and some things not at all, depending on how the tabs were used. That is "tab damage".

Harnessing tab damage for peaceful ends

So here's what happens when you quote the Indent-o-Meter and indent it to different degrees:

--
Matt 01234567 <-- Indent-o-Meter
McIrvin ^ Harnessing tab damage for peaceful ends!

>--
>Matt 01234567 <-- Indent-o-Meter
>McIrvin ^ Harnessing tab damage for peaceful ends!

>>--
>>Matt 01234567 <-- Indent-o-Meter
>>McIrvin ^ Harnessing tab damage for peaceful ends!

>>>--
>>>Matt 01234567 <-- Indent-o-Meter
>>>McIrvin ^ Harnessing tab damage for peaceful ends!

>>>>--
>>>>Matt 01234567 <-- Indent-o-Meter
>>>>McIrvin ^ Harnessing tab damage for peaceful ends!

See? The caret points to the number indicating by how many columns the quote has been indented. I did it by inserting a tab character immediately before the column of numbers, and contriving things so that it wouldn't jump to the next tab stop until it had been indented 8 columns. So it's really measuring the indentation modulo 8. Some versions noted that fact in the text. I changed up the text a little, proclaiming that someday tabs would be too cheap to meter, or that someday tab damage would light our homes, etc. There was usually some note of crazed Atomic Age futurism in there.

Sic transit gloria mundi

So Google Groups ruins these in a couple of ways: it renders all the posts in a proportional font, AND it reformats the whitespace so the tab characters don't work right. So it completely breaks the Indent-o-Meter if you look at my archived posts from the era, or at the posts of anyone else who filched the Indent-o-Meter (and there were surprisingly many of them for a year or two).

In fact, people started reading Usenet through means that used proportional fonts and I knew even at the time that the Indent-o-Meter's time had passed. For a while I tried replacing it with the Font-o-Meter, which did not use tabs, but attempted to exploit the different relation between character widths and spaces in monospaced and proportional fonts:


Your font is: Proportional Monospaced
^
The amazing Font-o-Meter! http://world.std.com/~mmcirvin/


Your font is: Proportional Monospaced
                             ^
The amazing Font-o-Meter! http://world.std.com/~mmcirvin/

It worked all right but was not nearly as much of a hit.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

May 2025

S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2025 02:21 am
Powered by Dreamwidth Studios