Интересные GitHub-проекты: инструмент командной строки, воссоздающий эффект дешифровки данных из фильма «Тихушники» 1992 года

Команда преображает текст в кракозябры, а затем эффектно его расшифровывает.
sneakers

«Тихушники» (Sneakers) — один из знаменитых американских детективов 90-х годов, посвященный нелегкой доле первых хакеров. В одном из эпизодов появляется так полюбившаяся многим зрителям картинка дешифровки данных на экране компьютера. Одному из пользователей GitHub пришла идея воссоздать ее у себя в консоли.

«Больше никаких секретов»

Проект представляет из себя инструмент командной строки с названием nms (no more secrets — название того самого эпизода). Эта команда работает через конвейеры: сначала по-голливудски преображает любой текст кодировки ASCII или UTF-8 в зашифрованный набор символов, а затем эффектно расшифровывает все обратно.

В проект так же включена команда sneakers, полностью воспроизводящая текст, высвечивавшийся на экране монитора в фильме. Примечательно, что перед завершением программа требует от пользователя выбрать один из пунктов меню.

Изначально в проекте не предусматривалось никаких зависимостей, однако для воссоздания эффекта все же пришлось использовать escape-последовательности терминала ANSI/VT100. Большинство современных терминалов поддерживают эти последовательности, так что у пользователей не должно возникнуть особых проблем с запуском новой программы. Но на всякий случай в проект встроена библиотека NCurses (правда, с потерей встроенного функционала, ведь ncurses всегда очищает экран прежде, чем отобразить вывод).

Установка

Установить nms можно через большинство пакетных менеджеров. Чтобы собрать проект из исходников, введите в терминале следующее:

$ git clone https://github.com/bartobri/no-more-secrets.git
$ cd ./no-more-secrets
$ make nms
$ make sneakers             ## Опционально
$ sudo make install

Если ваш терминал не поддерживает escape-последовательности ANSI/VT100, вам потребуется библиотека ncurses. Установив её, соберите проект:

$ git clone https://github.com/bartobri/no-more-secrets.git
$ cd ./no-more-secrets
$ make nms-ncurses
$ make sneakers-ncurses     ##Опционально
$ sudo make install

Использование

nms работает с любыми данными, переданными через конвейер. В примере ниже используется простой вывод содержимого директории:

$ ls -l | nms
$ ls -l | nms -a           // Установка флага авто-дешифровки
$ ls -l | nms -s           // Установка флага скрытия пробелов
$ ls -l | nms -f green     // Выбор цвета текста
$ ls -l | nms -c           // Очистка экрана
$ nms -v                   // Версия проекта

По умолчанию nms не начнёт расшифровывать данные, пока вы не нажмёте любую клавишу (именно так это было показано в фильме).

Для желающих использовать подобные эффекты в своих приложениях автор проекта выложил C-библиотеку LibNMS.

Светлана Хачатурян