logoalt Hacker News

“I just chose words carefully”

430 pointsby zdwyesterday at 10:49 PM106 commentsview on HN

Comments

AgentOrange1234today at 4:00 AM

In programming certain word choices are valuable in this way. It's sad that pairs like true/false, good/bad, first/rest, and left/right are unequal length. But there are nice pairs like old/new, head/tail, fast/slow, same/diff, and right/wrong, which can help with create natural vertical alignment throughout a function.

sho_hnyesterday at 11:08 PM

There's a similar anecdote Gillian Anderson recently revealed during an interview on the X-Files, saying Chris Carter had an OCD-like habit to write dialog to conform to certain text layout preferences (no widows[1]) in the script, which made for the show's distinctive style of dialog cadence.

1 = https://en.wikipedia.org/wiki/Widows_and_orphans

show 6 replies
_jackdk_yesterday at 11:43 PM

I wonder if at any point during writing, the heroic author of that Super Metroid guide learned that "missiles" are not spent "missles", and decided to own the mistake rather than reword the entire guide.

Also, the font used for the monospace examples in the post is a great kick to the nostalgia. Which one is it? It reminds me of https://int10h.org/oldschool-pc-fonts/fontlist/font?ibm_vga_...

show 3 replies
card_zerotoday at 12:26 AM

  This might potentially
  rejuvenate the writing
  by disrupting habitual
  patterns, which forces
  more original choices.
show 1 reply
gyomutoday at 12:21 AM

> At the same time, who among us didn’t nod in recognition at least, having once spent hours massaging a button UI string or a tooltip just to get it to fit under the certain width in a densely packed interface?

I did, and then I got a customer email about how they were using a display-zoom OS accessibility feature and things were truncated on their device. :')

See also: localizing your interface to German

show 2 replies
brooke2ktoday at 1:05 AM

this is only tangentially related to the article, but I've always found text justification strange. For me paragraphs with ragged edges are easier to read than justified paragraphs, because the irregular ending point helps me keep track of where I am. And justification can lead to some very odd-looking lines. So I've just never quite understood why it's so common in typesetting

show 3 replies
fhubyesterday at 11:34 PM

Two definitions that I had to look up.

* Widow: a short final line of a paragraph that gets stranded at the top of the next page or column.

* Orphan: a first line of a paragraph stranded at the bottom of a page or column.

show 2 replies
ivwyesterday at 11:11 PM

suckerpinch has a great video where he uses an LLM to do this same thing automatically

https://tom7.org/bovex/

show 3 replies
GeertBtoday at 12:42 AM

I've definitely been guilty of wording my multi-line doc comments in a way that would ensure they'd flow without awkward right margins. I would have a macro in vim that would call the fmt program to reflow the comment to 79 (later 98) characters, and then would iterate on word choice until the comments looked good. Not exactly right-justified, but no very ragged edge either.

CarVactoday at 12:18 AM

My dad told a story of a classmate in high school going through the effort of manually justifying text in a paper he wrote and being rewarded with a plagiarism accusation.

That was done by typing the whole paper twice, with added spaces the second time.

BubbleRingstoday at 1:09 AM

I’ve been searching all over for a classic example of this that I first found around 1986, but I can’t locate it. It went on for a page or two, hand justified lines of maybe 40 characters, and then at the end of it he started making each line one character shorter, until the essay ended with these, the only words I remember from it:

dumb is

what I

think

this

end

is

!

If somebody can find it, share it here, I’m going to post it on my own website so it is saved for history. The last time I saw it was 5 or 10 years ago, and there was only one or two copies on the internet at that time, and now there seems to be none.

show 2 replies
epistasisyesterday at 11:15 PM

I am filled with both a deep admiration and horror at this.

It's shockingly impressive.

show 1 reply
yetanotherjoshtoday at 1:43 AM

In a very real sense this is exactly what LLM watermarking does. It "chooss the words carefully" in order to get text to "line up," but not with a visible margin... instead with a verifiable word distribution that proves the author knew a secret key.

zellynyesterday at 11:58 PM

I remember reading Project Gutenberg email updates from Michael S. Hart in the mid to late 90s that were famously formatted like this.

It’s not too hard if you try, once you get in the groove :-)

Boxxedtoday at 1:23 AM

I do this at work with the comments in my code. No one's ever noticed <thumbs-down-emoji>

RobRiverayesterday at 11:46 PM

Man. I kinda want to stress test my memory of super metroid before reading this guide. I could do a sub 3hr run through at 100% when I was a child.

I know I couldn't today.

lanyard-textiletoday at 12:20 AM

I have never felt more seen. I do this with comments all the time, rewording things to look nice on that 80 or 100 column mark.

show 1 reply
underyxtoday at 12:20 AM

So maybe it is possible to use alternate words in writing without compromising on writing quality after all.

stevagetoday at 12:02 AM

The part that horrifies me about this is the disincentive to revise any part of the text due to the flow-on effects.

initramfsyesterday at 11:50 PM

I used to go to my computer laboratory in high school and at my mom's work to print out GameFAQ walkthroughs in the late 90s. They were excellent. I wrote this to remind myself of simple fun that's been superseded by grander ambitions, and sometimes I think I am wrong for choosing the latter.

ChannelFencetoday at 1:22 AM

Before LLMs, there were Markov chain bots. We used SeeBorg on IRC and over time its dictionary would fill up with whatever everyone said. Most of it was nonsense, but every once in a while it would say something perfectly timed. Almost everything It said making sense or not was hilarious though.

(source: https://github.com/allanlw/seeborg)

cpetersotoday at 2:37 AM

In a recent interview on Conan O'Brien's podcast, Gillian Anderson said X-Files creator Chris Carter wrote his scripts visually so they didn't have any widows (the last line of a paragraph carried over to the top of the next page):

Chris told me I mean that there was a particular way that we used to speak in the show that it that wasn't a normal rhythm and syntax. It was slightly backwards. which felt like it was almost part of the cryptic aspect of the series.

And it wasn't until we were working on this, I think, the second feature. I was sitting in a parked vehicle waiting to shoot and our showrunner and creator Chris Carter came up to me who was directing the feature and he said he looked at my sides where my lines were and he said, "Look, no widows." And I said, "What what are you talking about?" He said, "No, no widows on the paragraphs that each character has." the word went all the way to the end with the period. So, you didn't like end halfway through that line. So, it was a perfect So, it was a perfect rectangle.

So, the dialogue was designed visually. For nine years. [laughter] Wow. So, you're struggling. You're struggling with his OCD.

lukehyesterday at 11:16 PM

Ha, I quite enjoy doing this in comments or commit messages where practicable. But, that's just a few lines. :)

show 2 replies
techknightyesterday at 11:44 PM

If I remember correctly, this is the tweet (and HN post) that brought it to the attention of the world back in 2021: https://news.ycombinator.com/item?id=28651093

msephtonyesterday at 11:49 PM

BITD I used Protext word processor on Atari ST (and later DOS/Windows PC) which automatically justified monospace text. It also had a pretty good dictionary (all in 512KB of RAM) and I remember doing this word dance to get lines to flow better.

Manual: https://www.atarimania.com/st/files/protext_5_04_arnor.pdf

Screenshot of manual section: https://jumpshare.com/share/jOnMu7M36AOEWyoL0QDl

show 1 reply
Funes-today at 1:39 AM

I must admit I've indulged in constrained writing when I was a teenager with the same purpose: circumventing spontaneous layout errors in Word when writing a paper for school, feeling a non-negligible amount of anxiety due to the deadline being around the corner. Terrifying.

show 1 reply
oxoniayesterday at 11:18 PM

Ye gods! The fact that this was done by hand... I have no words.

d--btoday at 3:33 AM

Made me think of constrained writing like what was done by the Oulipo group in France.

bywateryesterday at 11:54 PM

Learned this the hard way explaining a bug fix; a single ambiguous term derailed an hour-long discussion.

quantotoday at 12:34 AM

A human victory by sheer willpower. I find the story oddly uplifting.

semiinfinitelytoday at 12:16 AM

this is the kind of content I come to hackernews for

gkobergeryesterday at 11:30 PM

The Super Metroid guide is the kind of thing that AI will render obsolete, which makes me sad.

One of my favorite quotes is from Penn and Teller, "Sometimes magic is just someone spending more time on something than anyone else might reasonably expect". AI has shifted that a bit.

But lots of technology has rendered formerly human-lead things obsolete, and I'm sure we'll find new ways to express creativity.

show 1 reply
domadortoday at 1:52 AM

I recently started reading a book sample for "Superintelligence" on Kindle, but stopped reading because all the text was noticeably justified, often with large gaps between words in many sentences. This was very annoying, especially since the option to disable justification was unjustifiably disabled.

Strangely enough, this same book doesn't have the same problem on other platforms.

brcmthrowawaytoday at 12:57 AM

There is some bizarre stuff that gets posted on weekends. It's like reading the New Yorker.

iLemmingtoday at 2:58 AM

Almost irrelevant to the story itself, but here's what it feels like to use Emacs these days.

The story talks about monospace fonts and how unappealing they could be for reading prose. It is a fascinating post on itself, but here's what happened - it caught my eye while I was busy, I clicked the link, it opened the page, I kept it hanging around and forgot about it. Then HN page got buried in my browser history. After a while, I found the tab, I read the story and it made me thinking if anyone shared any thoughts on HN. Instead of digging it up from browser history - I ran consult-hn and found the thread - it showed up in an org-mode-derived buffer of hn-reader.el. I was reading through the comments, and I was like: "yah, this probably would be easier and faster to read if I used a different font". I enabled variable-pitch-mode, but it didn't get much better - the default font I set for the face isn't great - I just needed something that existed in both Linux and Mac. I should've picked a better one.

"Let me try a different font", I thought. And how do you change the font family in Emacs? There's probably a way doing it through the UI, but thank you, no thank you - I have a programmable editor. I instinctively opened a scratch buffer and started typing: (set-face-attribute ... And at that point I realized: "Well, this would, a) Change the font everywhere b) What the heck were the parameters for this sucker?".

Of course, why not ask the LLM? I started typing the prompt, right in that buffer. I could've just finish typing and call (gptel-send). But, "what if this becomes a longer chat?". I mean, I still could continue chatting in that buffer, but there are benefits for having specialized gptel buffer, for instance, all my gptel-dedicated buffers get automatically saved. So, instead, I invoked (gptel-inline) - if the answer is short - I'd dismiss the popup and if I have follow-ups, I'll just continue.

LLM told me how to change the font in the current buffer. But I said: "I want to change it for any chosen buffer, since I'd be invoking this from the scratch buffer". At this point I was thinking: "I'm just fooling around, but let's see where it takes me..." It gave me this code snippet.

    (with-current-buffer "target-buffer-name"
     (setq buffer-face-mode-face '(:family "Georgia" :height 140))
     (buffer-face-mode 1))
Since a gptel buffer is just an ordinary buffer, I changed `target-buffer-name` to `HNComments` and evaled it. The font in the buffer immediately changed. "Meh, I don't like this one, I want to try another...", then I changed the font name.

And at that point, I felt so stupid for wasting my time, I typed: "Can you just build me a consult picker, to select a font for a given buffer with a live preview."

And it just did. ~25 LOC. It took me far longer to write about it, in reality, the transition from a fleeting thought, from a mere idea to a concrete implementation took me seconds. Seconds!

And now I have a command that I can either keep in my scratch buffer, or stick into my config. Or literally just discard until next time I need to temporarily change the font in a given buffer.

Note: this is not a post about "how awesome it is to use AI in Emacs", no. It is all about how enormously flexible Emacs is to bend around to deal with any kind of text.

nathelltoday at 1:29 AM

Obligatory xkcd: https://xkcd.com/276/

imnotr0b0ttoday at 12:37 AM

Sometimes I think I'm too detail-oriented. Then I remember that someone once spent weeks manually rewording a game FAQ so the right margin would look pretty in a text file. And I feel better about myself...

crate_88today at 12:09 AM

[dead]