Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.

Перечислим некоторые проекты Танни.

▍ Redbean


Наверное, самая известная её разработка — переносимый веб-сервер Redbean, который распространяется в виде единого кросс-платформенного файла вместе с содержимым сайта. О нём уже упоминали на Хабре.

Идея в том, что вы можете взять веб-сервер и внедрить внутрь бинарника свои статические файлы .html и .lua с помощью команды zip. В результате получится файл redbean.com, который нативно запускается под шестью операционными системами: Linux, Mac, Windows, FreeBSD, OpenBSD и NetBSD. То есть этот веб-сервер запустится практически на любом компьютере.

Сервер со встроенными Lua, SQLite и MbedTLS сервер в бенчмарках показывает примерно 1,1 млн запросов в секунду на обычном ПК (в 2,5 раза больше, чем nginx):

# Note: Benchmarked on an Intel® Core™ i9-9900 CPU
# Note: Use redbean-demo.com -s
$ wrk --latency -t 10000 -c 10000 -H 'Accept-Encoding: gzip' \
    http://127.0.0.1:8080/tool/net/demo/index.html
Running 10s test @ http://127.0.0.1:8080/tool/net/demo/index.html
  10000 threads and 10000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    10.44ms   46.76ms   1.76s    98.41%
    Req/Sec   189.08    259.45    39.10k    98.67%
  Latency Distribution
     50%    5.68ms
     75%    6.87ms
     90%    8.77ms
     99%  197.91ms
  4327728 requests in 3.72s, 3.37GB read
  Socket errors: connect 0, read 5, write 0, timeout 2
Requests/sec: 1163062.91
Transfer/sec:      0.90GB

В сервер встроена простая консоль bestline с автодополнением кода и UNIX-модуль с низкоуровневым интерфейсом для системных вызовов и прямым доступом к интерфейсу библиотеки Cosmopolitan (о ней ниже).

Джастин презентовала Redbean на HN в феврале 2021 года — и тот сразу запрыгнул на третье место в рейтинге самых высоко оценённых любительских проектов в категории 'Show HN' за всю историю, уступив только самодельной игровой приставке в стиле 80-х и фейковому голосованию из-за бага в движке HN.

В июне 2022 года вышла вторая версия сервера. За прошедший год Redbean 2.0 обзавёлся несколькими полезными встроенным функциями: песочница через pledge () (о ней ниже), геолокация IP-адресов, хеширование паролей argon2. Реализованы простые API с понятным синтаксисом, а также внутрь сервера добавлен фреймворк Fullmoon.

После всех масштабных расширений размер исполняемого файла redbean-tiny-2.0.16.com разбух до 1,4 МБ, но Джастин старается держать процесс под контролем.

Благодаря встроенной Unix-консоли, можно запускать интерфейс Unix под Windows — работают подсказки по двойному нажатию tab, как в bash, и клавиатурные сочетания emacs.

Сервер отлично зарекомендовал себя в продакшне: он хостит все сайты Джастин, включая justine.lol, без использования ненужных прокси типа nginx — это цельная вертикальная платформа в одном файле.

▍ Кросс-платформенный формат APE


Работа веб-сервера Redbean стала возможна благодаря уникальному кросс-платформенному формату αcτµαlly pδrταblε εxεcµταblε (APE), который разработала Джастин.

Однажды она обнаружила, что файлы Windows Portable Executable можно закодировать как шелл-скрипты UNIX Sixth Edition благодаря тому, что оболочка Томпсона, первая командная оболочка UNIX, не использовала шебанг (#!). То есть можно слить воедино бинарные нативные форматы Windows, Unix и MacOS — и запускать высокопроизводительный нативный код Си на всех платформах из одного файла.

MZqFpD='
BIOS BOOT SECTOR'
exec 7<> $(command -v $0)
printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7
exec "$0" "$@"
exec qemu-x86_64 "$0" "$@"
exit 1
REAL MODE...
ELF SEGMENTS...
OPENBSD NOTE...
NETBSD NOTE...
MACHO HEADERS...
CODE AND DATA...
ZIP DIRECTORY...

▍ Библиотека Cosmopolitan


На базе формата APE основана библиотека Cosmopolitan, которая позволяет компилировать универсальные кросс-платформенные бинарники средствами стандартного компилятора GCC.

Таким образом, программа, написанная на языке Си и скомпилированная GCC с помощью Cosmopolitan в файл с расширением .com, будет нативно запускаться на любом дистрибутиве Linux, а также на macOS, Windows, FreeBSD, OpenBSD и NetBSD.

# create simple c program on command line
printf %s '
  main() {
    printf("hello world\n");
  }
' >hello.c

# run gcc compiler in freestanding mode
gcc -g -Os -static -fno-pie -no-pie -nostdlib -nostdinc \
  -fno-omit-frame-pointer -pg -mnop-mcount -mno-tls-direct-seg-refs \
  -o hello.com.dbg hello.c -Wl,--gc-sections -fuse-ld=bfd \
  -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a
objcopy -S -O binary hello.com.dbg hello.com

# NOTE: scp it to windows/mac/etc. *before* you run it!
# ~40kb static binary (can be ~16kb w/ MODE=tiny)
./hello.com

В принципе, такая программа будет работать даже на голом железе вообще без операционной системы — если напрямую загрузить её в память с помощью загрузчика APE Loader, который тоже написала Джастин.

▍ Другие её проекты


  • Blinkenlights. Отладчик командной строки, ориентированный на визуализацию того, как программы изменяют память. Эмулирует статически связанные программы i8086 и x86_64-pc-linux-gnu на платформах Linux, Mac, Windows, FreeBSD, NetBSD и OpenBSD.

  • Apelife. Игра «Жизнь» Конвея на APE занимает чуть больше 1000 строчек кода. Это маленькая демонстрация библиотеки Cosmopolitan и консольных интерфейсов (TUI):

  • Memzoom. Просмотр/мониторинг памяти процессов/файлов непосредственно в консоли как UTF-8. Похожа на команду less, только для бинарных данных и с обновлением результата в реальном времени. Поддерживается зум колёсиком мышки и несколько порядков отображения памяти: линейный порядок (слева направо), по кривой Гильберта и по кривой Мортона (Z-порядок).



  • Sectorlisp. 512-байтная реализация интерпретатора Лиспа, которая помещается в загрузочный сектор. По своей лаконичности Лисп называют программным аналогом уравнений Максвелла, и здесь он принимает максимально лаконичный вид: один сектор.


  • Printvideo. Утилита командной строки для визуализации видеороликов в текстовом режиме консоли.

  • Printimage. Утилита командной строки (на основе Hiptext) для отображения изображений png/jpg/gif в консоли.

  • Braille Dump. Прямая замена hexdump -C, только с применением шрифта Брайля в Юникоде для отображения шестнадцатеричных кодов 0x81...0xff, тем самым улучшая читаемость двоичного кода. Работает на Linux 2.6.16+, Windows Vista+, MacOS XNU 15.6+, FreeBSD 12+, OpenBSD 6.4+, or NetBSD 9.1+.

    $ curl https://justine.lol/braille/bd.com >bd.com
    $ chmod +x bd.com
    $ echo 'hello→world→' | ./bd.com
    00000000  68 65 6c 6c 6f e2 86 92  77 6f 72 6c 64 e2 86 92  │hello⢚⢠⢁world⢚⢠⢁│
    00000010  0a                                                │◙│
    00000011

  • Nesemu1. Эмулятор игровой приставки NES в консоли.

  • Gosip. Библиотека на Go, которая реализует полный стек протоколов SIP/RTP на бэкенде для голосовой связи через телефонные гейты вроде Flowroute. Это простая и удобная альтернатива расширениям Asterix и фреймворкам типа Adhearsion поверх него, которые добавляют лишние слои абстракции, делая приложения телефонной связи тяжеловесными и сложными в обслуживании.

  • RDE (registry data escrow). Депонирование доменов верхнего уровня на определённый момент времени.

  • java-storage-nio. Java-клиент для файловой системы Google Cloud Storage, в документации описана как библиотека Java 7 nio FileSystem.

  • Closure Rules. Абстрактный фреймворк (набор правил) для сборки проектов в системе Bazel, которую вместе с другими инструментами Closure Tools использовала компания Google для управления своими репозиториями с петабайтами кода.

Как видим, некоторые проекты лежат в корпоративном репозитории Google, где раньше работала Танни.

▍ Чем занимается сейчас




В 2011 году Джастин ещё последние месяцы работала в Google и совместно с друзьями снимала квартирку на Ист-Сайде (Манхэттен), словно из сериала «Друзья», но вскоре ушла с корпоративной работы, чтобы уделять время более интересным проектам и игре в WoW.



Сейчас девушка работает над разными проектами, в том числе допиливает портированную версию OpenBSD pledge() для Linux. По её мнению, сообщество OpenBSD понемножку вымирает, в то время как у этой операционной системы есть ряд безусловных достоинств, в том числе уникальные функции безопасности. Некоторые из них хотелось бы перенести в Linux, в том числе более логичное и чёткое управление привилегиями безопасности, что и делает pledge(). Изначально эта функция писалась для реализации песочницы в веб-сервере Redbean, но она оказалась достаточно надёжным решением и как отдельная утилита.

Очевидно, девушка чрезвычайно талантливая. Интересно посмотреть, как у неё всё сложится в жизни.

Комментарии (32)


  1. Am1GO
    15.08.2022 17:05

    [Удалено]


  1. vassabi
    15.08.2022 17:54
    +8

    что-то "такой длинный список" высокопродуктивных программистов-одиночек намекает, что на порядки больше кода написано коллективами программистов попроще ...

    Во-вторых - по себе вижу, что я гораздо продуктивнее, когда вокруг "одного Стаханова" работает целая бригада, не нужно отвлекаться на второстепенные и инфраструктурные задачи (типа цвета кнопок или свежего апдейта log4j).


  1. Fodin
    15.08.2022 18:26
    +7

    Может, со времен DOS все изменилось, но .com-файлы были без заголовка и ограничивались размером 64Кб, а MZ - сигнатура уже .exe-файлов.


  1. aftertherainbow
    15.08.2022 19:49
    +55

    >>девушка чрезвычайно талантливая

    Транс-девушка. Без предрассудков, но мне кажется это важный факт о ней.


    1. yeputons
      15.08.2022 21:15
      -16

      Чем конкретно важный?


      1. Matshishkapeu
        15.08.2022 21:42
        +11

        Скорее всего это главное, что предотврацает создание ее культа, как живого воплощения Гаечки.


        1. steanlab
          15.08.2022 22:35
          +3

          зачем Гаечка, лучше поклоняться Хеди Ламарр ????


      1. santa324
        15.08.2022 23:51
        +18

        По моему опыту, люди без Y хромосомы обычно не любят подобные виды деятельности. Я уж было подумал что это редкое и интересное исключение, но нет...


        1. Voliker
          16.08.2022 00:58
          +10

          Из интересных исключений можно вспомнить Маони Стивенс (https://github.com/maoni0) - королеву дотнетного сборщика мусора и автора одного из самых замечательных и подробных мануалов по дебаггингу проблем с памятью в дотнете, mem-doc'а


          1. vassabi
            16.08.2022 10:13
            +1

            вот про кого надо запилить статью!


        1. freedbrt
          16.08.2022 12:13
          +4

          А как же Алена с++


          1. santa324
            17.08.2022 15:15

            Девушка конечно хороша, и программировать умеет ) Но на редкое и выдающееся исключение не тянет, вот если напишет новый язык, изобретет интересный алгоритм, разработает уникальное програмное решение..


      1. serginfo2009
        16.08.2022 08:21
        +21

        Тем, что транс-девушка это не девушка, это биологический мужик с соответствующим хромосомным набором. Вне зависимости от того, что там ему отрезали и пришили.


    1. dmi3mart
      15.08.2022 22:07
      +6

      Казалось бы, причём тут "повесточка"...


    1. igrishaev
      15.08.2022 22:24
      +26

      Тогда расходимся.


  1. NebulusPrima
    15.08.2022 22:07
    +21

    Джона Кармака в заголовке забыли


    1. checkpoint
      15.08.2022 23:40
      +4

      Что и Кармак тоже, того ?


  1. Didimus
    16.08.2022 09:52
    +1

    За счет чего такое превосходство над nginx по количеству запросов?


    1. vassabi
      16.08.2022 10:13

      может потому что все уже в памяти ?


      1. Didimus
        16.08.2022 10:45
        +3

        Что мешает закэшировать nginx и его все данные в памяти?

        Я думаю, нам что-то недоговаривают


  1. dmitrykalashnikoff
    16.08.2022 10:06

    Ну наконец-то! А то кроме Барбары Лисков и Грейс Хоппер даже и вспомнить некого!Ну разве что Софи Уилсон (разработчик архитектуры ARM), но это немного другая история! : )


    1. corvuscorax
      16.08.2022 14:39
      +1

      Да ровно такая же история.


      1. dmitrykalashnikoff
        16.08.2022 14:40
        +1

        Ну да, как выяснилось, не обошлось без Y-хромосомы.


    1. kae1379
      17.08.2022 18:33

      Радья Джой Перлман?


  1. Keeper13
    16.08.2022 10:20
    +9


  1. ivanovdev
    16.08.2022 10:25
    +1

    Повеселило вступление. За веб серверы автор предлагает давать нобелевку?)


  1. Drayden
    16.08.2022 10:54
    -3

    При всём уважении к Торвальдсу - он не такой крутой хакер, как Джефф Дин и подобные. Торвальдс, он как Гейтс - хороший программист, но больше прославился тем, что оказался во главе бурной деятельности по ОС. И тоже, как Гейтс, свою Ось сильно копировал с чужих. Ну т.е. сравнивать с тем же Джеффом Дином его как-то избыточно.


    1. leventov
      16.08.2022 11:51
      +4

      Все-таки Торвальдс крутой хакер. Я не очень в курсе его вкладов в код ядра, но он в одно лицо написал ещё один крайне успешный и технически качественный проект - Гит.

      Есть довольно средние программисты, которые достаточно случайно начали выстрелившие проекты и поэтому получили известность как "хакеры": например, Расмус Лердорф (PHP) и antirez (Redis), в каком-то смысле тот же Гейтс. Но Торвальдс явно не из этой категории.


      1. aleksandy
        16.08.2022 13:26
        +1

        Не умаляя заслуг Торвальдса, но в одном из своих интервью он сам признавал, что это Хамано довёл git до юзабельного состояния кем-то, кроме самого Линуса.


      1. Drayden
        16.08.2022 16:29

        Его вклад в код ядра - это 2 %.


  1. Goupil
    16.08.2022 12:26
    +5

    Ну да, женщина-программист, но есть нюанс!


    1. da-nie
      16.08.2022 22:04

      Муму пусть будет ни кобель, ни сука —
      Должна быть в женщине какая-нибудь тайна.

      Тимур Шаов.

      :)