-- Leo's gemini proxy

-- Connecting to domik.dubro.ru:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

Световой меч трушного хакера


Введение

.    .        .      .             . .     .        .          .          .

         .                 .                    .                .
  .   . Там тататам, тататадататарата там тадатам  .       .         .

     .      .     Тадата ТАМ пам тадататам пам тадададааам   .         .

 .    .        .      .             . .     .        .          .          .
         .                 .                    .                .
  .               Давным давно, в далёкой, далёкой галактике...   .       .
     .               .           .               .        .             .
     .      .            .                 .                                .
 .      .         .         .   . :::::+::::...      .          .         .
     .         .      .    ..::.:::+++++:::+++++:+::.    .     .
                        .:.  ..:+:..+|||+..::|+|+||++|:.             .     .
            .   .    :::....:::::::::++||||O||O#OO|OOO|+|:.    .
.      .      .    .:..:..::+||OO#|#|OOO+|O||####OO###O+:+|+               .
                 .:...:+||O####O##||+|OO|||O#####O#O||OO|++||:     .    .
  .             ..::||+++|+++++|+::|+++++O#O|OO|||+++..:OOOOO|+  .         .
     .   .     +++||++:.:++:..+#|. ::::++|+++||++O##O+:.++|||#O+    .
.           . ++++++++...:+:+:.:+: ::..+|OO++O|########|++++||##+            .
  .       .  :::+++|O+||+::++++:::+:::+++::+|+O###########OO|:+OO       .  .
     .       +:+++|OO+|||O:+:::::.. .||O#OOO||O||#@###@######:+|O|  .
 .          ::+:++|+|O+|||++|++|:::+O#######O######O@############O
          . ++++: .+OO###O++++++|OO++|O#@@@####@##################+         .
      .     ::::::::::::::::::::++|O+..+#|O@@@@#@###O|O#O##@#OO####     .
 .        . :. .:.:. .:.:.: +.::::::::  . +#:#@:#@@@#O||O#O@:###:#| .      .
                           . .:.:.:.:. . :.:.:%::%%%:::::%::::%:::
.      .                                       .:.:.:.:   :.:.:.:.  .   .
           .                                                                .
      .
.          .                                                       .   .
                                                                             .
    .        .                                                           .
    .     .                                                           .      .
  .     .                                                        .
              .   Тёмные силы бездушных  корпораций  сильно  .        .     .
                 ослабили сообщество открытого  программного   .  .
     .       .  обеспечения. Жадность проникла в умы и сердца           .
.        .     менеджеров  и  разработчиков  из  ИТ  компаний.               .
   .          Многие перешли на тёмную сторону,  но ещё  больше  .      .
             приходило  новобранцев ведомых алчностью  и  жаждой
          . легкой наживы. Имперские войска состоявшие из крупных  .   .
   .       компаний захватывали и  поглощали  небольшие,  открытые        .  .
.      .  проекты, либо  оккупировали их, засылая туда  свои  отряды     .
         штурмовиков в виде криворуких программистов  и бессовестных .        .
    .   юристов, занятых  вредительством  и  подрывной  деятельностью.   .    .
.      Обвиняя  неподкупных  лидеров сопротивления в нарушении законов     .
    . они отменяли и  заменяли их на своих  верных имперских служителей.      .
 .   То же  самое  происходило  в  мирах  аппаратного  обеспечения,  где  .
    практически все чипы поставлялись с закрытыми прошивками,  шпионскими   . .
.  закладками  и  искусственным   устареванием.  Осталась   лишь   горстка .
  повстанцев, способная сопротивляться  натиску безжалостных  поработителей.  .
 Эти  повстанцы  знали  истинный  смысл  открытого   ПО  и  обладали   Силой,
известной  как  Unix  way  -  эта  сила разжигала в сердцах свободных существ .
пылающий огонь надежды.  .   .           .        .   ..        .          .   .
.        .          .    .    .            .            .                   .
               .               ..       .       .   .             .
 .      .     Э т о  п о х о ж е   н а   и с т о р и ю   и з . . .          .
                     .              .       .                    .      .
.        .               .       .     .            .                         .
   .           .        .                     .        .            .
             .               .    .          .              .   .         .
               _________________      ____         __________
 .       .    /                 |    /    \    .  |          \
     .       /    ______   _____| . /      \      |    ___    |     .     .
             \    \    |   |       /   /\   \     |   |___>   |
           .  \    \   |   |      /   /__\   \  . |         _/               .
 .     ________>    |  |   | .   /            \   |   |\    \_______    .
      |            /   |   |    /    ______    \  |   | \           |
      |___________/    |___|   /____/      \____\ |___|  \__________|    .
  .     ____    __  . _____   ____      .  __________   .  _________
       \    \  /  \  /    /  /    \       |          \    /         |      .
        \    \/    \/    /  /      \      |    ___    |  /    ______|  .
         \              /  /   /\   \ .   |   |___>   |  \    \
   .      \            /  /   /__\   \    |         _/.   \    \            +
           \    /\    /  /            \   |   |\    \______>    |   .
            \  /  \  /  /    ______    \  |   | \              /          .
 .       .   \/    \/  /____/      \____\ |___|  \____________/  LS
                               .                                        .
     .                           .         .               .                 .
                .                                   .            .

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


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


> Почему мы так уверенны что нас это не коснётся? И есть ли какие-то варианты решения подобных проблем?


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


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


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


Хорошо ведь что рыцарям джедаям во время боя не нужно было обновлять прошивку своего светового меча чтобы он продолжал работать. И Тысячелетний сокол не останавливался во время погони, потому что Чубака забыл оплатить подписку на софт управляющий гипер-драйвом.


> Почему в выдуманной вселенной это звучит как абсурд, а в нашем реальном мире это уже происходит на самом деле?


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


Для начала стоит (подушнить) уделить внимание основному способу (или "протоколу") передачи информации, который используется везде, не только в ИТ, и никак не изменился за тысячи лет и скорее всего через тысячу лет останется примерно таким же.


Это Текст, появление которого уходит корнями в далёкое прошлое, на момент когда появилась первая письменность.

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


В ИТ текстовый интерфейс на дисплее появился примерно в 1970-х в виде терминалов подключенных к большим ЭВМ и с тех пор в определенных направлениях почти ничего не изменилось. С появлением компьютерных сетей, с последовательного порта терминалы переключились на telnet, а с появлением шифрования на ssh, но по сути ничего не менялось. Почти все современные протоколы внутри себя под слоями сжатия и шифрования передают обычный текст.


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

В общем, текстовый интерфейс - достаточно надежный, проверенный временем способ взаимодействовать или сохранить знания.


А по поводу GUI есть интересный вопрос:

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


Последние годы заметил что всё чаще работаю, играю, читаю новости, статьи, техническую документацию в терминале.

Вот список чем пользуюсь или что могу посоветовать тем, кто не знаком с миром текстового интерфейса:

vim мой главный текстовый редактор, который отлично подходит для всего, от написания данной статьи, до разработки сложных программ.

newsboat через rss собирает новости и посты со всех основных ресурсов, от телеграма до ютюба

mutt хорошо справляется с электронной почтой

amfora отлично подходит для gemini

lynx, links, w3m для веба, а browsh c мелким шрифтом издалека вообще не отличить от графического браузера

bc самый быстрый и простой способ что-то посчитать

tmux заменяет многооконность и мультиэкранность

если очень надо, то mpv позволяет проигрывать видео через ASCII

с помощью ffmpeg можно как угодно конвертировать, транслировать и даже монтировать видео

rtorrent отлично справляется с закачками

для чатов полно всяких irc, telegram, matrix клиентов которым не нужна графика

есть много текстовых игр, к примеру MMO RPG - TomeNET прекрасно работает в терминале

mapscii.me показывает неплохие географические карты

wttr.in если надо узнать погоду

есть программы для ведения бухгалтерского учета типа iceb или ledger

ssh как безальтернативный удаленный доступ


Этот список можно продолжать еще долго, но главное он показывает, что жить в текстовом режиме вполне можно тем, кто не занимается дизайном, графическими интерфейсами, фотографиями и т.п. задачами.


Еще хорошим доводом будет что это ПО обновляется в 100 раз реже, чем приложения на телефоне, не требует подписки, там не меняется интерфейс, с каждым годом не требуется более мощное железо, не нужно каждые 4 года спускать полторы тысячи долларов за новый Mac, вполне хватит старого ноута или десктопа.


А вопрос с просмотром видео и навороченными играми закрывают устройства созданные специально для этих целей: телевизор и игровая консоль, которые как правило очень долго не устаревают. И в каком-то смысле это то же unix way.


Со старым ноутбуком или десктопом это уже все прекрасно работает, но что если пойти ещё дальше? На пример собрать под свои нужды минималистичный DIY лэптоп или кибердеку?

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


Подобные мысли привели к попытке максимально всё упростить исходя из минимальных запросов.

Устройство должно:

Хорошо выполнять свои задачи, а именно, обеспечивать хотя бы простой текстовый, терминальный интерфейс к привычному, unix-подобному окружению

Морально и технически не устаревать минимум 10 лет, а лучше 20 (для проверки надо отмотать столько же времени назад и убедиться что устройство не теряет актуальности)

Стоить дешевле чем близкий его аналог в магазине

Быть очень простым, состоять из простых деталей, легко доступных

Стать максимально открытым на сколько это возможно

Что бы любой желающий мог без особого труда разобраться как оно работает и собрать себе такое же, самостоятельно, без глубоких познаний в области электроники или программирования

Безопасным, в том смысле чтобы оно было на столько простым, что ломать там нечего

Минимальная потребность в обновлениях прошивки

Долго работать от батарейки

Не привязываться к какой-то конкретной ОС


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



Тонкий терминальный клиент

> Все ссылки на проекты, библиотеки в конце статьи


ЭЛЕКТРОНИКА


               .-~|
              /   |
       =============
        |         |
        |  E S P  |
        |         |
        \---------/
         )-------(
         (-------)
         )-------(
         (-------)
         )-------(
         (-------)
         )-------(--+
        /---------\ |
        | | | | | | |
        | | | | | | |
        | | | | | | |
        | | | | | |-+
        | | | | | |
        | | | | | |
        | | | | | |
        | | | | | |
        | | | | | |
        | | | | | |
        | | | | | |
        | | | | | |
        LAB_|_|_|_|

В качестве мозга устройства хорошо подходит широко распространённый и популярный микроконтроллер esp32 и его разновидности стоимостью примерно в 4 доллара, он же отвечает за подключение к сети по wifi (но при необходимости умеет и ethernet и конечно же последовательный порт)

Выбор экранов широкий, но лучше остановиться на дисплее от популярного ноутбука, который ещё долго будет сопровождаться

Контроллер дисплея (переходник с esp на ноутбучный)

С клавиатурой как и с экраном, смотреть на проверенные временем ноутбуки с хорошими клавиатурами

Батарейка в зависимости от допустимых пределов размера корпуса и совместимостью с контроллерами зарядки

Контроллер заряда батареи

Корпус можно распечатать на 3d-принтере

Опционально: я бы добавил сюда LoRa чип для дальнобойной беспроводной связи, что позволит на медленной скорости передавать текстовые данные на много километров, не потребляя при этом много энергии.

Опционально: можно добавить звуковую карту, усилитель, динамики

Опционально: можно добавить usb и читалку microSD


Получается 6-10 основных деталей, среди которых самое дорогое - экран ($15-300), затем по цене идёт ноутбучная клавиатура ($30-120 если смотреть хорошие клавиатуры от thinkpad), остальное по цене не значительно


А для ценителей автономности и независимости от интернета, можно обзавестись одноплатным микрокомпьютером совместимым с вашей любимой ОС и таскать с собой. Такой подход позволяет не держать все яйца в одной корзине и соответствует unix way.


Единственный минус ESP - закрытый wifi, но этим вопросом уже занимаются (см. ссылки)


Софт


SSH, SSH и ещё раз SSH, потому что он универсален, безопасен, не требует много ресурсов и проживет ещё ооочень долго

ESP-OPEN-RTOS - надёжная, минималистичная рилтайм операционка, применяемая в основном для устройств умного дома

LibSSH-ESP32 либо esp-idf-ssh-client и т.п. реализации ssh для микроконтроллеров

FabGL - мощная библиотека позволяющая превратить esp в микрокомпьютер с навороченным интерфейсом

Для сопряжения с клавиатурой ноутбука есть готовые решения (когда клавиатура тинкпада получает usb/bluetooth интерфейс через esp)


Далее, чего не существует, не нашел готового и не обязательно реализовывать сразу:

ОПЦИОНАЛЬНО

Что-то для корректного вывода UTF

Возможность выбирать, загружать по SSH шрифт и менять его размер

Инициализировать на стороне сервера и обрабатывать на терминале входящий аудио поток или файл изображения по ssh протоколу и выводить изображение на экран, а звук на динамики

Если совсем упороться, то можно изобрести удалённое монтирование

(или передачу файлов) по ssh локальных дисков (чтение/запись на usb/microsd с vfat)



Объединив всё это воедино, должен получиться качественный аппаратный ssh терминал с подключением по wifi, чего должно хватать, благо телефоны давно умеют работать в режиме модема.


Единственное чего в этом устройстве может не хватить лично мне (см. выше "опционально") - это звука и работы с usb дисками, sd-картами. И еще частенько будет необходимость посмотреть какую-то фотографию, скриншот и т.п. картинки которые прислали по почте или в чате.

По отдельности esp умеет хорошо проигрывать звук, показывать картинки и даже воспроизводить видео в низком качестве или передавать его с камеры, но сомневаюсь что это возможно реализовать всё вместе и одновременно.

В теории передача изображения или звукового потока по ssh задача не сложная, esp сможет этот поток принять, но надо будет дописать свой драйвер-обработчик на подобные события.


Заключение


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


Трушному хакеру достаточно будет держать у себя дома минисервер или инстанс в облаке с любимой ОС с открытым SSH портом, или таскать в рюкзаке ту же RPI c повербанком.

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

И согласитесь - это не так обидно, как потеря или поломка thinkpad'a или macbook'a.

Ещё устройство отлично подходит админам в датацентрах.


В общем, если вас зацепил данный концепт и вы желаете высказать критику, замечания, гнев, восхищение или принять участие как электронщик, программист, спонсор, тестировщик то обязательно свяжитесь со мной!


cybertool@magicfreedom.com


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


⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣤⣤⣤⣤⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡠⠔⠋⠁⠀⠀⣿⡇⢸⣿⠀⠀⠈⠙⠢⢄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀
⠀⠀⠀⡴⠁⠀⠀⠀⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀
⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀
⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀
⡔⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠓⢢
⡇⢀⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣇⣸⣿⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⡀⢸
⠇⠘⠻⢿⣿⣷⣶⣤⣤⣄⣀⣀⣈⡛⢛⣁⣀⣀⣠⣤⣤⣶⣾⣿⡿⠟⠃⢸
⡷⣤⣀⠀⠈⠉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⠉⠁⠀⣀⣤⢾
⢳⠈⠻⣿⣶⣄⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⣠⣶⣿⠟⠁⡞
⢸⠀⠀⠈⠻⣿⣷⣄⠀⠀⠀⢿⣿⣿⣿⣿⡟⠀⠀⠀⣠⣿⣿⠟⠁⠀⠀⡇
⢸⠀⠀⠀⡈⠈⠻⣿⣆⠀⠀⢸⣿⣿⣿⣿⡇⠀⠀⣰⣿⠟⠁⢃⠀⠀⠀⡇
⢸⠀⠀⠠⠁⠀⠀⠘⢿⡄⠀⢸⣿⣿⣿⣿⡇⠀⢰⡿⠃⠀⠀⠈⠄⠀⠀⡇
⢸⠀⢀⠁⠀⠀⠀⠀⠈⣿⠀⢸⣿⣿⣿⣿⡇⠀⣿⠁⠀⠀⠀⠀⠈⡀⠀⡇
⠀⠑⠛⠢⣄⠀⠀⠀⠀⠘⡇⢸⣿⣿⣿⣿⡇⢸⠃⠀⠀⠀⠀⣠⠔⠛⠊⠀
⠀⠀⠀⠀⠀⠑⠢⣀⠀⠀⢷⢸⣿⣿⣿⣿⠇⡞⠀⠀⣀⠔⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠑⠢⣸⠀⣿⣿⣿⣿⠀⣇⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⠛⠛⠛⠛⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
   Unix way - таков путь

Благодарности


cORax, VValeraF, nerfur


Спасибо за поддержку!


Ссылки

OpenRTOS для esp

FabGL

FabGL github

Демонстрация telnet терминала на FabGL и ESP32

Демонстрация возможности терминала на FabGL и ESP32

Почти готовый проект - lv_terminal

ssh client for esp

ESP32 SSH client/server on Arduino

Проект превращает клавиатуру от thinkpad в полноценную bt/usb с поддержкой трекпоинта

Борис Зубков, Евгений Муслин. Непрочный, непрочный, непрочный мир... (1966)

Проект открытого wifi на esp

Статья про открытый wifi esp

Wiki про текстовый интерфейс


🔙 Назад

-- Response ended

-- Page fetched on Wed May 1 03:41:27 2024