commit -m "better"
3.56K subscribers
1.22K photos
173 videos
3 files
2.67K links
just random thoughts
Download Telegram
Примерно на 20-ом просмотре https://xn--r1a.website/itpgchannel/4280 я решил, что негоже пользоваться гойскими системами сборки, и для #shell ImGui Desktop (анонс, если кто пропустил - https://xn--r1a.website/itpgchannel/4275) мне нужна хорошая, годная, система сборки.

Надо сказать, что мне очень нравится пилить системы сборки, я за всю жизнь запилил их штук 10, часть inhouse - https://github.com/yandex/yatool, часть лежит на gihub. Тот же #IX - вполне себе система сборки.

Многие пользуются заслуженной популярностью!

В общем, если я за год не запилил систему сборки, то год прошел зря. За этот год я уже запилил две - https://github.com/pg83/ay, и вот теперь https://github.com/pg83/build.

По сути, это комбинация yatool выше (opensource версия нашей inhouse системы сборки ya), и meson.

От meson в ней способ описания сборочных файлов, только сильно проще:

https://github.com/pg83/gofra/blob/master/build.py
https://github.com/pg83/zutty/blob/master/build.py

В отличие от meson, это настоящий python, а не интерпретируемое подмножество, поэтому удобно делать всякие штуки, связанные с внешним окружением - всякого рода glob() по файлам/директориям, полуавтоматическое заведение новых таргетов при разумном устройстве fs, возможность скачать исходник из интернета, и так далее. Вот пример сложного сборочного файла, где это используется в хвост и в гриву - https://github.com/pg83/imway/blob/main/build.py.

К сожалению, это необходимо для сборки небольших oss проектов, поэтому это должно быть удобным.

От ya там, я бы это назвал, "общая вменяемость":

* мгновенное исполнение - раннер прямо встроен в тулзу, тулза строит граф, и тут же его выполняет
* пересборка не по timestamp, а по хешу от файлов и команд
* исходники парсятся, все их включения известны заранее, поэтому пересборка очень fine grained
* так как мы знаем все include для всех файлов, в том числе, от кодогенеренных таргетов, то совершенно не нужно указывать подробные зависимости, они будут выведены автоматически
* cas как хранилище артефактов
* норм кросс-компиляция

На КДПВ - результат сборки небольшого проекта. Половина моих читателей видела похожий output 100500 раз, я не люблю перепридумывать хорошие вещи.

Вся сборка - это один небольшой файл build, который копируется прямо в проект, как waf, поэтому сборка проекта самодостаточна.

Перевел на эту сборку весь свой C++ код, в том числе, #zutty, #shell, и доволен, как слон.

Я бы взял ya, но она не очень хорошо приспособлена для сборки небольших проектов, и очень для этого тяжеловесна.
💊3013🔥9🤡4👍2
commit -m "better"
И я решил, что это будет "imgui desktop"!
Прогресс за выходные по https://xn--r1a.website/itpgchannel/4275 #shell:

* определился с концепцией UX - это будет клон Unity, которая была лучшая шелл под Linux, да и вообще, неплохо смотрелась. На КДПВ можно видеть почти финальный результат.

* форкнул #zutty, переписал на свою велосипедную либу, добавил порядка 600 автотестов, нашел ими 40!!! багов (как падений, проездов, так и ошибок в реализации протоколов), починил сломанный скроллинг, запилил line drawing characters, и реализовал все современные протоколы разом. Ну и ускорил, теперь мой Zutty не в 10 раз медленнее #foot, а в 2 раза быстрее, что уже очень достойно. А вы думали, что я буду терпеть тормозное говно в своем десктопе? #perf
37💊19🔥12👍4🆒2😱1
У Кими закончились сервера и они временно закрыли покупку новых подписок

Как непрофессионально. Если Кими хочет представить себя мировой общественности как по-настройщему фронтирная AI лаборатория, они должны ДЕЙСТВОВАТЬ как таковая: например, тихо переключать людей на более дешевые модели, добавить экономящие ресурсы гардрейлы, и может быть написать блогпост или два про закат человечества
😁42👏32👍6💯41
Forwarded from Блог*
🤣83😁15💯4🔥2👍1
Forwarded from Мир Linux
Знаете ли вы, что 100% проблем безопасности GNOME отслеживает всего один сотрудник Red Hat?

А ещё Red Hat больше не передаёт разработчикам информацию НИ ОБ ОДНОЙ уязвимости в проектах, которые запрещают контент, сгенерированный ИИ.

И что с 1 ноября этот сотрудник Red Hat ВООБЩЕ перестанет отслеживать новые проблемы безопасности GNOME?

«Больше никто не отслеживает проблемы безопасности GNOME»

— говорит Майкл Катанзаро из Red Hat.

Так сейчас обстоят дела с безопасностью GNOME ☕️

https://blogs.gnome.org/mcatanzaro/2026/07/20/some-changes-to-gnome-security-tracking/

@linuxos_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡27🥴12🤣5🔥42🤮1💩1
😁66🌭9👍3🔥3🌚2🤯1
Forwarded from Сиолошная
Два дня назад я писал, что часть инфраструктуры HuggingFace подверглась атаке и была частично взломана ИИ-агентом. Только что OpenAI признались, что... это была их модель, GPT-5.6-Sol и другая, более мощная предрелизная LLM.

Их тестировали на ExploitGym (бенчмарк по кибербезопасности), и модель сначала смогла найти новый, до этого неизвестный эксплойт в инфраструктуре OpenAI (это не было её задачей, её не натравили «поискать баги чтоб мы пофиксили»), оттуда раскрутиться на получение полноценного доступа в интернет (который по умолчанию обрезан в тестовой среде), а затем залезть на HuggingFace искать ответы для бенчмарка. После этого она нашла уязвимость и там, получила доступ к коду авторизации некоторых сервисов и продолжила искать ответы.

Этот инцидент без преуменьшения беспрецедентный, и я пока не могу представить, что должно произойти, чтобы политики, NSA, DOD и Китай не обратили на это внимание.

GPT-6 в конце августа нам видимо не ждать 🌚
😁43🤡8🔥3
Сиолошная
Два дня назад я писал, что часть инфраструктуры HuggingFace подверглась атаке и была частично взломана ИИ-агентом. Только что OpenAI признались, что... это была их модель, GPT-5.6-Sol и другая, более мощная предрелизная LLM. Их тестировали на ExploitGym (бенчмарк…
Парадоксально, но я не вижу у этой задачи никакого настоящего (а не "театр безопасности") решения, кроме как давать доступ к сильным моделям всем желающим.

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

Если сравнивать с прошлым, то это примерно как запретить доступ к address sanitizer/libfuzzer, когда они только появились, потому что уязвимости они искали тоже очень хорошо.

А потом перестали, потому что все их встроили в pipeline.

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

Но, очевидно, не произойдет.
👍26🤡15💊53🤝3💯2👎1🔥1
😁34💊15🤡7🔥4👍1
commit -m "better"
добавил порядка 600 автотестов, нашел ими 40!!! багов (как падений, проездов, так и ошибок в реализации протоколов)
https://xn--r1a.website/itpgchannel/4285 писал, что запилил порядка 600 автотестов.

Но вчера мне пришла в голову, не побоюсь этого слова, совершенно гениальная идея!

Я решил "ограбить опенсорс", и ограбил, и теперь доволен, как слон.

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

Конечно, не все так просто, сначала мы составили детальный план ограбления https://github.com/pg83/zutty/blob/1ed5347fa39f8e8df25a1b570a503297ce83bef1/PLAN.md - что воровать в первую очередь, а что потом, как понимать, у кого реально баг - у нас, или у них, и так далее. Но суть от этого не меняется.

Машина трудится в поте лица уже сутки, не переставая, и потырила нам уже 2500 тестов, попутно починив еще пару десятков багов, и это только начало!

Поименный список ограбленных проектов: https://github.com/pg83/zutty/tree/master/tests

Очень, очень хорошо.

С учетом того, что я еще пофаззил #zutty (5 проездов, между прочим), у меня будет один из самых надежных и соответствующих стандартам терминалов!

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

#shell
🔥66💊20😁159👍4💩2🆒1
Forwarded from opennet.ru
Дерево портов FreeBSD временно заморожено из-за добавления в порты слишком большого файла

Разработчики FreeBSD объявили о решении временно заморозить репозиторий с деревом портов в связи с инцидентом, вызванным помещением в порты бинарного файла, размером 150 МБ. Данная операция привела к нарушению зеркалирования портов на GitHub из-за превышения ограничения на максимальный размер файла, которое на GitHub составляет 100 МБ. Для проведения чистки и удаления из истории репозитория бинарных данных с сомнительной лицензией введена заморозка от внесения изменений, которая продолжается уже около двух суток. Информация о том, как подобный файл был помещён в дерево портов пока не приводится, но утверждается, что нет оснований считать репозиторий скомпрометированным.

Подробнее:
https://opennet.ru/65966/
https://opennet.me/65966/
😁30👏52🆒1
commit -m "better"
В голове, с учетом традиции нейминга терминалов, *tty, пока крутится shitty, но я еще не решил окончательно!
Меня тут в комментариях потроллили, что, мол, я публикую код под GPL3, хотя сильно против этого #GNU.

Дело в том, что #zutty исходно идет под GPL3, что делает его вирусным продуктом.

Я в ответ потроллил коллег, что переписываю #zutty с GPL на MIT - https://github.com/pg83/shitty/blob/master/CONTRIBUTING.md

Ох как порвало копилефтоблядей в комментариях, от "один раз замазался - уже назад дороги нет", до "ты вор!", и "так нельзя!".

Удивительно, как любители швабодки одновременно любят тырить код под свободными лицензиями типа MIT/BSD в свой копилефтомир, и при этом совершенно не переносят того, что их код тоже можно "отмыть" от вируса под названием GPL. Сложно, но можно.

Так как такое переписывание требует каких-то телодвижений, мне пришлось разметить весь (новый!) код плашкой:

/*
* Copyright (C) 2026 Shitty team
* MIT licensed
* See the file LICENSE.MIT for the full license.
*/


Сижу и ржу, не назвать ли это The Shitties, всегда хотел стать фронтменом панкрок группы!

#shitty
🤡40😁30💩7🔥65👍4💊3👎1🌚1
#imgui #shell

Запилил с фабулой очень крутую штуку, AFAIK сейчас так никто не делает, и делать не умеет.

TL;DR - эмулятор KMS в userspace.

Современные wayland композиторы тестируют почти end to end - от потока команд до реальной картинки, которую должен увидеть пользователь.

За одним маленьким исключением - никто не знает, что на самом деле пользователь увидит, потому что то, что он увидит, определяет не только картинка, но и настройки самого output (встроенный экран, внешний монитор, и так далее) - sdr/hdr, цветовое пространство, яркость, разрешение и частота, vsync, edid, и так далее, и так далее.

Вот, насколько я знаю, современные композиторы (как и я раньше) тестируются в headless mode - до рендеринга картинки в bitmap, а дальше все.

Но это очень важная часть - она включает в себя подключение и отключение output на лету, смену его режимов, failure injection (на твою коробочку села кошка, и статика с нее ебнула в hdmi кабель, true story), на все это надо уметь реагировать корректно.

Чтобы это тестировать end to end, мы с фабулой запилили эмулятор этой state machine - https://github.com/pg83/imway/blob/main/kms_fake.cpp

// Everything KMS that device_kms.cpp needs, modeled in userspace: the
// object/property tables, atomic commits with page-flip events on a real
// pipe, framebuffer and GEM bookkeeping. Rendering stays on the real GPU;
// syncobj ioctls forward to a companion render node so explicit sync is
// backed by genuine kernel fences. The point is a scriptable state machine:
// tests can flip the connector or make commits fail on demand.


Фактически, перехватили парочку сисколлов, https://github.com/pg83/imway/blob/main/kms_fake.cpp#L1209-L1251, и дали тестовой машинерии управлять этой state machine.

Конечно, сразу нашли кучу багов, связанных c connect/disconnect, и прочим HDR настройками.

Уверяю, что сейчас ни один другой композитор так не тестируется.
🔥22👍7🤡52💊1