💾 Archived View for thrig.me › blog › 2024 › 11 › 26 › s5n.gmi captured on 2024-12-17 at 10:41:02. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

s5n

I0t h1s b2n r6d t2t t1e u1e o0f n5c a11s t0o s5n l5y w3s—t2t i0s, w3e t1e w2d "l10n" m3t b0e s7d t0o "l2n"—h1s g4n a b1t o1t o0f h2d. W3e c8g, a1y s2h r5s a1e b6s a1d m7s r4s s4d a5t a p7y c7t p6e.

It has been reported that the use of numeric abbreviations to shorten lengthy words—that is, where the word "localisation" might be shortened to "l10n"—has gotten a bit out of hand. While concerning, any such reports are baseless and malicious rumors spread against a perfectly cromulent practice.
    s5n: new file: 5 lines, 97 characters
    $ chmod +x s5n
    $ echo "It's a perfectly cromulent way to speak" | ./s5n
    I0t's a p7y c7t w1y t0o s3k
    $ cat s5n
    #!/usr/bin/env perl
    while (readline) {
        s/(\w)(\w*)(\w)/$1 . length($2) . $3/eg;
        print;
    }

Such abbreviations doubtless originate with lazy typists, or maybe their editor lacks "ab" expansions as have been supported in vi(1) for a year or two now. Probably some combination of both: bad text editing environments, and lazy humans. To this we might add domain specific languages, where one wants a shorthand for something long and complicated frequently used. The reversibility of such statements may be problematic, especially where context is lacking as to what particular word has been so reduced.

    $ grep -c '^i......n


 /usr/share/dict/words
    42
    $ grep -c '^i.......n


 /usr/share/dict/words
    59
    $ grep -c '^i........n


 /usr/share/dict/words
    90
    $ grep -c '^i.........n


 /usr/share/dict/words
    112
    $ grep -c '^i..........n


 /usr/share/dict/words
    106

Another feature doubtless not worthy of study here are n5s, or really n1s, as numbers (and various other words) reduce to n5s, and that in turn to n1s, which will create a graph along which various words can be arranged.

    needles \
    numbers |----> n5s ----> n1s
    ...                       ^
                              |
                              |
                             ...