Источник проблемы
Источник проблемы

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

Чтобы дальнейшее читалось в правильном ключе, надо сразу обозначить, с какой я колокольни. В индустрии я лет пятнадцать с лишним, классический fullstack — повоевал и с фронтом, и с бэкендом. Поднимал серверы на Debian с нуля, в студенчестве из спортивного интереса пересобирал ядро, написал тонны всякого вспомогательного софта на разных языках, в какой-то период даже паял (плохо, на коленке, но всё-таки). Потом я постепенно вырос до тимлида, обзавёлся семьёй, и времени на возню с софтом и железом ради собственного удовольствия в какой-то момент перестало хватать категорически. Поковырять что-нибудь дома вечером уже несколько лет как стало редким праздником, на который сначала надо ещё уговорить выходные. Опыта-то, в общем, накоплено достаточно, чтобы не объяснять, чем отличается компилятор от линкера, — а вот свободного вечера, чтобы этот опыт тратить, давно нет. И тем удивительнее, что многолетние мои привычки расшатала именно скучная бытовая возня вокруг домашнего принтера за восемь тысяч рублей.

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

Покупка

Печатать мне нужно примерно никогда. Раз в полгода — справку, договор, ребёнкино домашнее задание. Поэтому когда старый принтер окончательно умер, я открыл маркетплейс, отсортировал по цене и ткнул в первое попавшееся. Brother DCP-T230, какие-то смешные деньги, СНПЧ, отзывы вроде нормальные. Заказал.

Через пару дней приходит коробка. Распаковываю, ставлю, всё хорошо, а потом — традиционный для нашего времени ритуал. «Скачайте драйвер для вашей операционной системы».

Для Linux — .deb и .rpm, для Windows — само собой инсталлятор, а в выпадающем списке операционок для DCP-T230 macOS просто отсутствует. Знакомая по другим вендорам история «есть только под Intel, под Apple Silicon ещё не успели обновить» тут, увы, тоже мимо: для macOS у Brother не лежит сборки вообще, ни для какой версии.

У меня M1. И вот стоит этот принтер на столе, мигает лампочкой, и я понимаю, что только что купил себе симпатичный пластиковый кирпич.

Тут на меня накатило одно очень знакомое, давно забытое чувство. Был такой период в жизни любого Linux-пользователя — где-то в нулевых и начале десятых, — когда перед покупкой чего бы то ни было ты в обязательном порядке сначала шёл на linux.org.ru и спрашивал в форуме: «братцы, кто-нибудь это юзал, оно вообще в принципе работает?». В ответ, как правило, прилетало что-нибудь вроде «забудь, у неё закрытые драйверы только под XP, в две тысячи каком-то году кто-то героически собрал на коленке обёртку, но она через раз валит ядро и греется так, что лампа мигает». Хорошие новости приходили редко. С таким уловом ты возвращался к витрине, где из всего ассортимента оставалось две с половиной разрешённых модели, и из них же и выбирал — обычно самую дорогую, потому что дешёвые редко удостаивались одобрения комьюнити.

Эта привычка у меня в какой-то момент благополучно атрофировалась — видимо, тогда, когда я пересел на Mac. На маке за тебя всё уже выбрала Apple: чего не поддержано, того в магазине, как правило, просто нет, а если есть — то с честным значком «MFi» или «Made for Mac» где-нибудь на коробке. И в момент покупки этого принтера во мне явно работала именно эта маковская расслабленность — ну, куплю, всё же будет нормально, я же не на Linux. А теперь стою я с этим принтером, и впервые за лет десять во мне просыпается то самое старое чувство — «эх, надо было сначала почитать на форуме».

То, что я бы сделал раньше

Раньше у меня было ровно три варианта.

  1. Сдать — поехать обратно в пункт выдачи, заполнить заявление на возврат, снова выбирать, снова платить за доставку. Час времени плюс настроение.

  2. Виртуалка с Linux — прокинуть в неё USB и печатать через lp из терминала чужой ОС. Технически рабочая схема, но я ей пользоваться не буду, а жена тем более.

  3. Docker с CUPS и мостик через сеть — чтобы macOS видел этот контейнер как сетевой принтер. Тут даже определение «велосипед» не подходит, это уже какая-то конструкция, которую неудобно показывать людям.

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

И вот тут я подумал: подожди.

А давай, что ли, попробуем

У меня на работе есть корпоративная подписка на Claude. Я ей пользуюсь по работе каждый день — генерация кода, ревью, разбор странных багов. Но пока что только в рабочем контексте. А что если…

Сел вечером, налил чай, открыл Claude, кинул туда содержимое Brother-овского Linux-овского пакета. «Вот закрытые бинарники, которые превращают PDF в то, что понимает этот принтер. Я хочу то же самое, но на macOS, на Apple Silicon, без всяких прослоек. Думай.»

И понеслось.

Понеслось!
Понеслось!

Я не буду здесь грузить вас деталями реверс-инжиниринга. Скажу одно: оказалось, что внутри фирменного Linux-драйвера живёт довольно скромная логика. Принтер на самом деле умеет общаться по более-менее стандартному протоколу, и драйвер вокруг него — это, по сути, тонкая обёртка с парой Brother-овских причуд: тут кавычки убрать, там поле занулить, сюда вписать магическую константу, иначе обижается.

Чтобы убедиться, что мы понимаем эти причуды правильно, мы с Claude подняли Linux-овую виртуалку, в которой запускали оригинальный фирменный драйвер как чёрный ящик. Гоняли через него тестовые документы, забирали то, что он отправляет на USB, и сравнивали байт в байт с тем, что генерирует наш Python-код. Расхождения видишь — лезешь править, пока diff не схлопнется в ноль.

Несколько вечеров такого пинг-понга — и в какой-то момент я нажимаю «Печать» из Preview на тестовой фотографии, принтер пыхтит и выплёвывает её на лоток. Прямо с моего маковского ноутбука, через обычный USB-кабель, без виртуалок, эмуляторов и любых других прослоек посередине.

Оно живое!
Оно живое!

Дальше — сканер

Принтер был лёгкой целью. С тех пор как я понял, что это вообще возможно, мне захотелось ещё и сканер.

Со сканером сложнее по нескольким причинам, и я опять обещал не вдаваться в детали, поэтому скажу так: фирменная сканер-часть от Brother приходит в виде закрытых бинарных библиотек под Linux, плюс пачка обфусцированных конфигов, в которых зашифрованы (буквально, шифром) параметры каждой модели. То есть даже понять, что вообще умеет конкретно мой DCP-T230 — на каких разрешениях он сканирует, в каких цветовых режимах, какую максимальную область поддерживает — без расшифровки этих файлов нельзя.

Я несколько раз перезапускал диалог с Claude, прежде чем мы поняли, по какому принципу эти файлы закодированы. Это была самая «детективная» часть всей истории. Несколько подходов, несколько тупиков, и в какой-то момент в логе появляются человекочитаемые строки, и ты понимаешь — ага, вот оно.

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

И вот тут как раз пора вспомнить ту самую слепую зону, про которую я предупреждал в начале. С сетью я давно на «ты» — Wireshark, TCP-дампы, отладка веб-сокетов под нагрузкой, обычная инженерная рутина. А USB как протокол всю жизнь обходил стороной: дескрипторы, эндпоинты, bulk-трансферы, control-запросы с этими их bmRequestType — от каждого такого слова у меня в голове срабатывала мягкая внутренняя установка «давай-ка как-нибудь без меня». libusb я воспринимал как магическое заклинание из чужого ремесла: знал, что им пользуются те, кто разговаривает с железом напрямую, и так же ясно понимал, что в эту касту я не вхожу. Если по работе и всплывала задача что-то сделать на USB-уровне, я инстинктивно искал готовую обёртку повыше и старался внутрь не заглядывать.

И вот сижу я ночью, и в какой-то момент ловлю себя на том, что говорю Claude: «Слушай, у тебя есть прямой доступ к устройству, есть Python, есть libusb. Подбирай сам, твоя цель — получить из этой железки валидный JPEG». Произношу это таким будничным тоном, как будто всю жизнь только тем и занимался, что писал низкоуровневые драйверы. А по факту — я только что небрежно делегировал ровно ту область, которую обходил стороной все эти годы. И пошёл сделать себе ещё чаю.

Возвращаюсь через час. В комнате стоит мерный гул работающего сканера. Каретка ездит туда-сюда. На экране в логе — попытка номер сорок шесть, попытка номер сорок семь, попытка номер сорок восемь. Claude автономно подбирает параметры, отправляет, читает, что отвечает устройство, корректирует и пробует снова. Сканер физически реагирует на каждую попытку — крутит мотором, подсвечивает лампой, отдаёт пачку байт, которые потом валидируются как JPEG.

Через ещё минут двадцать в папке появляется файл OUTPUT.jpg. Открываю — это листок А4, который я для теста положил на стекло, чуть пересвеченный, но абсолютно читаемый.

Этот момент я, наверное, буду вспоминать ещё долго. Сама задача там была более-менее рутинная, цепляло другое — ощущение, что от меня в этой истории уже почти ничего не зависит. Claude гудит сканером в соседней комнате, я пью чай, и весь процесс происходит как-то отдельно от меня, на моём же столе.

После того, как у меня был рабочий, пусть и кривоватый, скрипт, попросить Claude причесать код и завернуть всё это в маленькую веб-страничку с кнопкой «Сканировать» — было делом десяти минут. Открываешь браузер, тыкаешь, видишь, как картинка проявляется построчно, в конце получаешь файл. Так теперь и сканирую.

Что я из этого вынес

До недавнего времени у меня в голове было довольно чёткое разграничение между «вещами, на которые имеет смысл потратить вечер» и «вещами, на которые нет». Реверс-инжиниринг закрытых драйверов от японского принтера за восемь тысяч рублей — это очевидно вторая категория. Слишком много возни ради слишком маленького приза.

Это разграничение поехало.

То, что раньше требовало месяца ковыряния с IDA Pro и стопкой документации, теперь делается за два-три вечера в формате диалога. Сам я сильно умнее за этот год не стал — просто рядом со мной появился напарник, который дизассемблирует и проверяет гипотезы быстрее, чем я успеваю налить себе чая, и при этом не устаёт. А ещё, что внезапно оказалось важным, у этого напарника есть руки: он сам ходит к железу, читает ответы и крутит параметры до тех пор, пока всё не сойдётся.

Я заметил, что начал по-другому относиться к решениям «а давай попробую вот эту штуку» и к проблемам, которые раньше у меня в голове уходили в одну из двух привычных категорий — «жить с этим, пока работает» или «выкинуть и забыть». Сейчас всё чаще к ним добавляется третья: «ну ладно, давай хотя бы посмотрим, что там внутри».

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

А по факту дома у меня теперь печатает прямо с маковского ноутбука самая дешёвая с маркетплейса МФУ-шка и сканирует через самописную веб-страничку на 8080-м порту. Сын недавно сам распечатал с неё школьный реферат — причём не подходя к ноутбуку, прямо со своего самсунга. Это случайный бонус: одна галочка «Printer Sharing» в настройках macOS — и принтер автоматически появляется в локалке через Bonjour, после чего его подхватывает любой свежий Android, iPhone и вообще всё, что умеет AirPrint. Получается, драйвер я писал под одну машину, а пользуется им теперь весь дом, включая гостей, — и никто из них даже не задумывается, что у этой штуки внутри.

Если код кому-то интересен, он — на гитхабе, но в чём его ценность в мире, где такой проект можно сделать за вечер?

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


  1. Etern0x
    28.04.2026 09:40

    Интересно, во сколько бы это обошлось без корпоративных токенов?


    1. farafonoff Автор
      28.04.2026 09:40

      подписка так устроена, что сложно посчитать. Можно примерно оценить в 1M токенов на Opus 4.6/4.7. По цене API, это 25$, контора платит за подписку 100$/месяц (max 5x). Для пет проектов конечно покупать бессмысленно, но бесплатный codex тоже полезен, с его помощью я переписал одно маленькое андроид-приложение со smali в котлин


  1. tklim
    28.04.2026 09:40

    А по факту дома у меня теперь печатает прямо с маковского ноутбука самая дешёвая с маркетплейса МФУ-шка и сканирует через самописную веб-страничку на 8080-м порту.

    По факту ваша самая дешёвая МФУ стала в разы дороже.

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

    Год назад бодался так со сканером Epson es-60w. Сканирование само себе доступно из линукса, но использовать кнопку на самом девайсе по нормальному не вышло. Зато сейчас просто сканирует автоматически, если вставить бумагу


    1. farafonoff Автор
      28.04.2026 09:40

      Понятно, что на токены я бы потратил столько же, сколько стоила МФУ, но раз контора все равно дает токены, то почему нет? Если нужна будет кнопка - всегда можно дописать


      1. tklim
        28.04.2026 09:40

        Я не про токены даже, а про ваше время.

        Насчёт кнопки - мой запрос был "сканировать без компа". На этом мелком сканере есть есть кнопка и она запускает сканирование на компе (свой тяжёлый софт под Винду) а хотелось чтоб всё было без участия десктопа и прямо с кнопки картинка на сервер.

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

        Тут нет доступных альтернатив "из коробки". Так что приходится развлекаться


        1. farafonoff Автор
          28.04.2026 09:40

          С временем как раз всё очень хорошо. Можно запустить серию сериала (или ютуб), и одним глазом посматривать что там творит ИИ, всё очень быстро. Мелкую автоматизацию с кнопками как раз хорошо делать с помощью ИИ, сделать telegram-бота, который будет кидать в семейный чат отсканированный документ можно за один промт даже к бесплатному чатугпт.


          1. tklim
            28.04.2026 09:40

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

            2. Кнопка - она на самом сканере, он беспроводной. И тут общая проблема всех таких девайсов - проприетарный софт со своим протоколом. Конкретно здесь, ещё на 1 устройстве (комп или телефон). В ентерпрайзе или просто устройствах подороже есть ФТП, СМБ или емаил для сканера. Но тут нет.

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

            А по факту дома у меня теперь печатает прямо с маковского ноутбука самая дешёвая с маркетплейса МФУ-шка и сканирует через самописную веб-страничку на 8080-м порту. Сын недавно сам распечатал с неё школьный реферат — причём не подходя к ноутбуку, прямо со своего самсунга. Это случайный бонус: одна галочка «Printer Sharing» в настройках macOS — и принтер автоматически появляется в локалке через Bonjour, после чего его подхватывает любой свежий Android, iPhone и вообще всё, что умеет AirPrint. Получается, драйвер я писал под одну машину, а пользуется им теперь весь дом, включая гостей, — и никто из них даже не задумывается, что у этой штуки внутри

            По факту, вы в 2026 смогли найти МФУ без сетевого интерфейса. И сделали принт-сервер из макбука.

            Ну и довольно странная затея держать МФУ на рабочем столе, если печатать раз месяц надо. (Я в кладовке свой поселил).

            4. Кнопка в веб-инткрфейсе - это полумеры. Нормально - это кнопка на самом устройстве или возле него, или вообще без кнопки)

            5. Сканировать в телеграм, ну такое. Он и так много про меня знает, зачем ему ещё мои документы? Оставил только уведомление, что документ отсканирован.


  1. Shaman_RSHU
    28.04.2026 09:40

    «есть только под Intel, под Apple Silicon ещё не успели обновить»

    Был приятно удивлён, что HP LaserJet 1320 без проблем подключился к MacBook с M5, хотя в Windows 11 уже просто так его не подключить (впрочем на Linux также завелось всё без проблем).


  1. Kovurr
    28.04.2026 09:40

    Смущает только одно: как можно покупать струйные принтеры "для печати раз в полгода"? Уже через две недели простоя он подсохнет и начинаются пропуски. За полгода засохнет намертво. Струйники берут когда печатать нужно много и регулярно, в идеале каждый день. Для режима "достать со шкафа и напечатать" используют лазерные черно-белые. Им засыхание не грозит.


    1. navion
      28.04.2026 09:40

      В таком сценарии МФУ в принципе не окупится, если рядом с домом есть библиотека с постраничной печатью. Сканер тоже редко бывает нужен, почти везде принимают фотографии документов.


    1. tklim
      28.04.2026 09:40

      Это какое-то заблуждение.

      Мне как-то понадобился сканер во время ковида. На местной барахолке нашел МФУ, он стоил ровно те же 4 евро, как и планшетный сканер.

      Он до сих пор спокойно печатает при том что иногда это раз в две недели, иногда раз в два месяца.


    1. farafonoff Автор
      28.04.2026 09:40

      раз в полгода конечно художественное преувеличение. Сын хочет цветную печать, цена за отпечаток у снпч почти нулевая, можно раз в 2 недели по крону печатать тестовую страницу, и всё равно окупится


  1. kablag
    28.04.2026 09:40

    Docker с CUPS и мостик через сеть — чтобы macOS видел этот контейнер как сетевой принтер. Тут даже определение «велосипед» не подходит, это уже какая-то конструкция, которую неудобно показывать людям.

    на самом деле неплохое решение. Заодно принтер/сканер становится сетевым - можно использовать с телефона. Есть готовые решения в виде коробки.


    1. farafonoff Автор
      28.04.2026 09:40

      проброс usb в виртуальную машину у меня всегда работал хрупко, при чем делает нестабильным и хост, и гостя


  1. grishkaa
    28.04.2026 09:40

    Драйвер-то вы сделали, но научились ли чему-нибудь в итоге? USB перестали бояться, например?)

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


    1. farafonoff Автор
      28.04.2026 09:40

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


  1. Quqas
    28.04.2026 09:40

    мы с Claude подняли Linux-овую виртуалку

    это как же? в самом клауде или таки на маке?

    Прямо с моего маковского ноутбука

    а вот тут и подробней бы

    это какже на ябле где всё анально огорожено, без регистраций и смс получить дрова\бинарник\etc?


    1. farafonoff Автор
      28.04.2026 09:40

      Я все-таки разработчик по профессии, докер окружение, со всякими питонами и brew у меня поднятно и настроено.

      Ябл это полновесный unix, для печати у него используется cups, а шаринг сделан через bonjour. Все открытое и документированное.


  1. genseq
    28.04.2026 09:40

    Сегодня запросил у Gemini высказывания Андрея Карпатого (Andrej Karpathy) по поводу перехода на одноразовые программы. Лучшая его цитата выглядит так:
    «Эра скачивания приложений подходит к концу. Вместо этого мы будем взаимодействовать с ИИ-агентами, которые будут создавать нужные инструменты под конкретную задачу прямо в момент обращения».
    Ваша статья меня очень порадовала, поскольку именно этот подход хотелось бы использовать для переделки ПО секвенатора MinION. И реверс-инжиниринга этого секвенатора стоимостью около 200$, который продают за несколько тысяч долларов. Нужен только найти человека, готового ввязаться эту авантюру. Мне (биохимику) для этого наглости не хватает.


    1. c0t0d0
      28.04.2026 09:40

      Антивирусники напряглись, да.


    1. farafonoff Автор
      28.04.2026 09:40

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


  1. apevzner
    28.04.2026 09:40

    Заглянул из любопытства в ваш проект на гитхабе.

    Вижу, принтер поддерживает IPP over USB, IPP, eSCL. Всё это вместе называется Apple Bonjour Printing, он же Apple AirPrint.

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

    Очень смешно, если не работает. Прошивку обновлять не пробовали?


    1. farafonoff Автор
      28.04.2026 09:40

      вот не работает. IPP over USB какой-то обрезаный (я пробовал ходить этим путем) eSCL это галюцинация ИИ, по факту там его нет, мы это проверили прежде чем реверсить бинарный протокол. Прошивку обновил через windows ноутбук.


      1. apevzner
        28.04.2026 09:40

        IPP over USB какой-то обрезаный

        Может его там надо включить где-то в меню? За братишками вроде не отмечено, чтобы интерфенсы 7/1/4 в принтере были, да не работали…


  1. checkpoint
    28.04.2026 09:40

    К слову о подходах. На днях вышла бесплатная опенсорсная книга "FreeBSD Device Drivers - from first step to Kernel mastery" за авторством Edson Brandi (один из разработчиков FreeBSD). Книга в PDF формате содержит 4599 страниц - это для тех, кому важен сам процесс.

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


  1. ArtyomOchkin
    28.04.2026 09:40

    Интересный опыт, спасибо, что поделились!

    А я вот решил для старых фотографий сделать фоторамку. В конце зимы одна хорошая знакомая подарила новую tft-шную фоторамку из конца 2000х, которая показывает, мягко говоря, не очень хорошо, и только jpg и кажется ещё png. В основе arm чип и проприетарная RTOS, так что все мысли о реверсе и переписывании прошивки (пока что) отпали из-за отсутствия тестпоинтов и UART.

    Зато появилась идея написать программу под Windows: чтобы сама листала и показывала картинки, при выборе в настройках - сама добавляла в список источников съёмные носители. И с возможностью выбора отдельных папок и каталогов.

    В итоге, за вечер с Claude удалось сделать рабочий базис, и ограничением было лишь отсутствие Pro подписки. За 3-4 вечера по сути получилась готовая рабочая фоторамка, единственное, что так пока не заработало, это сенсорные нажатия на основные клавиши главного экрана приложения (хотя hover превьюшки отображает). Дело в том, что Claude сделал немного кастомное окно, руки не дошли пока это исправить.

    В итоге специально под это дело купил удачно подвернувшийся Asus VivoTab, который был практически в нетронутом виде, на Windows 8, с x32 intel'овским процом, 2 Гб ОЗУ и 64 постоянной памяти. Виртуалку, конечно, не запустить, но поставил ради забавы Python, Chrome rdp и Firefox. Фоторамка на WPF (Windows presentation Foundation framework) в итоге очень шустро заработала, даже эффект Acrylic удалось сделать. И это всё при том, что формально проц не поддерживается в последних версиях 10ки, якобы там что-то с совместимостью в плане видеодрайверов. Напротив, гораздо лучше всяких планшетов с Али на атом х5 за 10000+ ₽.

    Позже поставил на мини-ПК, и теперь на ТВ смотрю старые фото, хранящиеся в разных директориях на портативных HDD.

    В общем, вот, что вышло:

    Нижняя полоса автоматчики скрывается, есть широкий набор настроек.
    Нижняя полоса автоматчики скрывается, есть широкий набор настроек.
    Фото - через пару дней после первой беты, сделаны в Лосином Острове, Москва.
    Фото - через пару дней после первой беты, сделаны в Лосином Острове, Москва.

    Опять же, вряд ли это кому нужно, но все итерации присутствуют на Гитхабе.

    Из главного, что полезно как минимум для меня, хотел получить то, что было в (ЕМНИП) стандартном XPшном скринсейвере, доставляем фото - в какой директории лежит тот старый снимок, и, желательно, место,где это было. С последним по сути получилось почти то, что хотел, можно добавить по координатам из метаданных вывод названия места с помощью api OpenStreetMap, но это уже дополнения. Если это кому-то будет интересно, думаю написать статью. В том числе про банальный обход недоступности установки 10ки, с которым пришлось немного повозиться из-за наличия лишь одного порта USB A-micro и не успевшей тогда "раскаяться" после простоя батарее.

    В плане добавить ещё нормальную автозагрузку, live tiles, рабочий режим скринсейвера (чтобы пирога была в фоне, а при бездействии листала картинки с заданными настройками без открытия окна) и таймер на выключение/сон в ночное время.


    1. ppnn
      28.04.2026 09:40

      Объективно мне низачем не надо, но очень интересно!


  1. Maccimo
    28.04.2026 09:40

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

    открыл Claude, кинул туда содержимое Brother-овского Linux-овского пакета. «Вот закрытые бинарники, которые превращают PDF в то, что понимает этот принтер. Я хочу то же самое, но на macOS, на Apple Silicon, без всяких прослоек. Думай.»

    Я не буду здесь грузить вас деталями реверс-инжиниринга.

    А по факту — я только что небрежно делегировал ровно ту область, которую обходил стороной все эти годы. И пошёл сделать себе ещё чаю.

    Ожидания: Увлекательный рассказ про реверс-инжиниринг.

    Реальность: Нейросетевые помои от очередного вайб-кодера с подпиской техножреца.

    Тьфу!


    1. farafonoff Автор
      28.04.2026 09:40

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


  1. Letto
    28.04.2026 09:40

    Дочитал пост до СНПЧ...

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

    Для печати "примерно никогда" нужен лазерный принтер


  1. AlexHighTower
    28.04.2026 09:40

    А не проще ли было закрепить сзади самый древний и простой RPi с CUPS и получить постоянно доступный в сети принтер без завязки на МАК? И если что всегда можно переместить физически в другое место…


    1. farafonoff Автор
      28.04.2026 09:40

      RPi тоже имеет архитектуру arm, не amd64. Я держу в голове такую возможность, мои драйвера теперь идеально вписываются в этот вариант