17 000 слов без единого двойного пробела: как автор гайда по Super Metroid выровнял текст вручную

"I just chose words carefully."

17 000 слов без единого двойного пробела: как автор гайда по Super Metroid выровнял текст вручную

В моноширинных текстах полное выравнивание по ширине почти всегда выглядит ужасно из-за слишком больших и неровных пробелов. Переносы слов не спасают. Но в конце 1990-х rs1n нашёл радикальное решение для своего гайда по Super Metroid: он переписал 17 000 слов так, чтобы каждая строка заканчивалась ровно у правого края, без единого двойного пробела. Всё было сделано вручную в ASCII-редакторе. Автор Unsung делится этим курьёзом и проводит параллель с теми, кто часами подгонял строки в UI.

Никакой программы я не использовал. Я просто подбирал слова так, чтобы всё выравнивалось по правому краю. Всё было сделано в ASCII-редакторе.
  1. lproven

    4 ведущих пробела, верно? Посмотрим...

    В первые дни, когда у меня появился собственный адрес электронной почты, я писал все свои онлайн-сообщения именно так. Мой основной email с 1991 года, и я использовал его вместе с DOS-инструментами для выхода в интернет с 1991 до конца 1990-х. Сначала я запускал DOS-инструменты с дискеты, потом на своём ПК с OS/2 2, затем под Win95, а потом под NT 4. Постепенно все актуальные на тот момент инструменты стали Windows-ориентированными, поэтому я переключился. Стало слишком сложно не использовать Windows, а это означало пропорциональные шрифты, и из-за этого люди не могли видеть, что я пишу выровненный по ширине текст... так что я перестал.

    Если это сработает (в окне редактирования выглядит нормально), то это первый раз за десятилетие, когда я попробовал писать выровненный текст. В то время, когда я делал это постоянно, это почти не замедляло меня. Помогает, если у тебя хороший словарный запас, и ты можешь на ходу заменять слова на более длинные или короткие.

  2. easydidit

    В том же духе: Тейлор Отвелл из Laravel пишет свои блоки комментариев ровно в три строки, и каждая строка на три символа короче предыдущей, например:

    /*

    |--------------------------------------------------------------------------

    | Application Name

    |--------------------------------------------------------------------------

    |

    | This value is the name of your application, which will be used when the

    | framework needs to place the application's name in a notification or

    | other UI elements where an application name needs to be displayed.

    |

    */

    https://github.com/laravel/framework/blob/13.x/config/app.ph...

  3. sho_hn

    Есть похожая история: Джиллиан Андерсон недавно рассказала в интервью о «Секретных материалах», что Крис Картер имел привычку, похожую на ОКР, писать диалоги так, чтобы они соответствовали определённым предпочтениям в вёрстке текста (без висячих строк[1]) в сценарии, что и создало характерный стиль диалогов в сериале.

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

  4. howToTestFE

    Я почти уверен, что комментарии в исходниках Laravel над функциями всегда были примерно в три строки, и каждая строка была немного короче предыдущей. Не знаю, делается ли это до сих пор или это вообще обязательно, но всегда было приятно на это смотреть.

    Вот пример - https://github.com/illuminate/database/blob/master/Connectio... - похоже, каждая строка короче на 3 символа.

  5. AgentOrange1234

    В программировании определённый выбор слов ценен в этом смысле. Грустно, что такие пары, как true/false, good/bad, first/rest и left/right, имеют разную длину. Но есть хорошие пары, например old/new, head/tail, fast/slow, same/diff и right/wrong, которые помогают создавать естественное вертикальное выравнивание внутри функции.

  6. benji-york

    Мейнтейнер top полностью выравнивает свои сообщения коммитов, например: https://gitlab.com/procps-ng/procps/-/commit/e6f22569e9db16d...

    commit e6f22569e9db16dbef7d9bdee5bb41b8cb7a03ca

    Author: Jim Warner <[email protected]>

    Date: Tue Jul 23 00:00:00 2024 -0500

    top: attempt once again to allow help text translation

    Back when our release 4.0.1 was being readied, sources

    were sent to the TP (Translation Project). However one

    person named Benno Schulenberg refused to release them

    for translation. His stated reason was the top command

    line help text which then finally included long forms.

    He demanded that the help text be broken into separate

    strings instead of a single large string. But, all the

    top text (some much more complex) has just one string.

    So that stated reason was, at the least, inconsistent.

    [ I suspect the real reason was that Mr. Schulenberg ]

    [ thought that the carefully right-justified English ]

    [ wording would also be required of translations too ]

    The bottom line was that Benno took it upon himself to

    change the TP motto from "you code, we translate" into

    "first we tell you how to code and then we translate".

    Rather than bend a knee to that despot, I disabled the

    text entirely, admittedly denying users a translation.

    Now, with this commit we enable translatable help text

    but with a hint included to ignore the justified text.

    Reference)s):

    . Oct, 2 […]

  7. _jackdk_

    Интересно, осознал ли в какой-то момент автор того героического гайда по Super Metroid, что «missiles» пишутся не как «missles», и решил оставить ошибку, а не переписывать весь гайд.

    Кстати, шрифт, использованный для примеров с моноширинным текстом в посте, — отличный удар по ностальгии. Что это за шрифт? Он напоминает мне https://int10h.org/oldschool-pc-fonts/fontlist/font?ibm_vga_...

  8. unicorn_platfor

    Мне нравится идея, что произвольные ограничения могут улучшить текст. Без ограничений легко скатиться к привычным формулировкам, а необходимость обходить что-то необычное заставляет пересматривать каждое слово. Интересно, применимо ли это к программированию и другим творческим занятиям.

  9. card_zero

    Это потенциально может

    оживить письмо,

    нарушая привычные

    паттерны, что заставляет

    выбирать более оригинальные варианты.

  10. gyomu

    > В то же время, кто из нас не кивнул в знак узнавания, хоть раз потратив часы на подгонку строки в кнопке или подсказки, чтобы она вписалась в определённую ширину в плотно заполненном интерфейсе?

    Я — да, а потом получил письмо от клиента о том, что они используют функцию доступности ОС с масштабированием экрана, и на их устройстве всё обрезается. :')

    См. также: локализация интерфейса на немецкий.

Ещё за этот день

2026-08-30