Кодерская мастерская
138 subscribers
1 photo
14 files
43 links
Блог Данила Пылаева
Download Telegram
Решил перейти с magisk на kernel su, просетапился успешно, и совершенно неожиданно для себя выяснил, что основные разделы приложения, в которых выдаются root права и настраиваются модули, недоступны, совсем, полностью.
И казалось бы всё, провал, нужно вернуться на magisk, открыть issue и ждать 5 лет, но напоследок, на всякий случай, я сменил стиль ui с miuix на material, и доступность отросла!
Как я понял, miuix это некий фреймворк для создания miui-образных интерфейсов, и конечно круто, что разработчики предоставили альтернативу.
1
Вспомнилась давняя история: сижу на физике, решаю задачку, оригинал сейчас не найду, но что-то очень похожее нагуглил:
На расстоянии 1060 м от наблюдателя ударяют молотком по железнодорожному рельсу. Наблюдатель, приложив ухо к рельсу, услышал звук на 3 с раньше, чем звук дошел до него по воздуху. Чему равна скорость звука в стали?
Решение довольно простое, считаем сначала время, которое звук шёл по воздуху, 1060 / 330 = примерно 3.212.
Теперь можем найти время, которое звук шёл по рельсу, 3.212 - 3 = 0.212.
Ну а зная время и расстояние можем найти скорость: 1060 / 0.212 = 5000.
5 км в секунду, и всё замечательно, вот только был 1 нюанс: почему-то, у меня с раннего детства сидит в голове скорость звука в воздухе 340 метров в секунду, а по нашему учебнику было принято брать 330.
Разумеется я взял 340 вместо 330, и казалось бы, что может пойти не так?
1060 / 340 = 3.118
3.118 - 3 = 0.118
1060 / 0.118 = 8983
9 километров в секунду! Вот такая вот математическая приколюха.
Занимаюсь тут вайбкодингом немножко, и могу с гордостью сказать, что сегодня 1:0 в пользу русского языка.
"... падение воркера поднимает исключение вместо дедлока. Убедлюсь, что удалённый send_result больше нигде не используется, и что нет прочих висящих ссылок."
Скрытая опасность git reset --hard
Понял, что самый последний коммит мне не нужен, ну и как уже делал сотни раз, пишу git reset --hard @~1
Казалось бы, что всё окей, но только маленький промах превратил 1 в 21, и сбросил я не 1 коммит а 21 коммит!
В моём случае всё обошлось, но ведь это могла быть не запушенная работа всего рабочего дня.
Конечно можно каким-то хитрым образом найти эти коммиты в глубинах репозитория, ибо git сразу их не удаляет, но в первую секунду факапа об этом не думаешь...
1👍1🔥1
С братом от нехрен делать мучаем нейронку на предмет установить апп для симулирования локации на айфон.
Ну то есть я мучаю, копирую или зачитываю инструкции, а он делает.
Я за айфоны не шарю абсолютно, он что-то умеет конечно, но как пользователь, ни как разраб.
Так вот на 15 минуте беседа с иишкой приходит вот к такому ответу: "Извиняюсь — я ошибся: idevice_pair — это десктопная программа (Mac/Windows/Linux, через USB-кабель), а не iOS-приложение. Для вашей задачи «без
компьютера» она не подходит. Забудьте про неё."
Так вот я не понимаю, как у людей с нулевым опытом получается решать хоть сколько-нибудь сложные задачи с помощью ии? Ну он же тупит в свободном плавании, ему капитан нужен, без капитана он неэффективен и опасен.
Да, капитаном может быть другая иишка, но сдаётся мне, что большинство вайбкодеров-самоучек про оркестрацию может и слышали, но сами юзают вряд ли. Даже я пока не погружался в эту тему лол.
В общем ещё раз для себя подтвердил правдивость утверждения, что ии - это множитель скила, и если ты не шаришь, выхлоп будет хорошо если около нулевой, а то может и хуже станет.
Под хуже я понимаю окирпичить телефон например, или открыть бизнес с навайбкоженной инфраструктурой, которую хакнут, сольют данные, и тебя, как владельца, затаскают по судам.
PS: А мои посты про ллм не надоели ещё?
PPS: Я не обсираю ии, ии-агентов, ии-индустрию, вайбкодеров, вайбкодинг и т.п. Я только описываю свои впечатления и свой опыт.
👍21🔥1
На днях навайбкодил расширение для youtube, которое вылечивает кое-какие a11y проблемы, а именно:
1. Невозможность открыть видео из ленты в новой вкладки.
2. Спамные заголовки глав, которые выводятся через aria-live, и скринридер перебивает блогера.
3. Невизуальный вид кнопки паузы, иначе говоря, убирает многословность.
Каждая фича управляется в настройках, по дефолту включено только исправление видео в ленте.
К сожалению не нашёл простого способа распространить расширение, чтобы его можно было легко добавить в браузер, поэтому могу только предложить ставить распакованное в режиме разработчика.

https://github.com/Danstiv/a11yt
👍21🔥1
И так на этой неделе случилось следующее:
1. Сломался wsl.
2. Сломался docker desktop.
3. Сломался несколькими способами claude code.
4. Сломался только что настроенный docker sandbox (штука для изоляции ии-агентов (aka обезьяны с гранатой), хотите пост про неё?)
5. Закончилось место на c, и в edge побились данные некоторых сайтов.
6. Сломался пайплайн резервного копирования в двух местах.
7. Прямо сейчас упал security.ubuntu.com, из-за чего не могу доделать задачку по работе, дедлайн по которой вышел ещё на той неделе )не по моей вине, но так или иначе сроки горят).

И это ведь только среда...
2👍1🔥1🐳1
Кодерская мастерская
И так на этой неделе случилось следующее: 1. Сломался wsl. 2. Сломался docker desktop. 3. Сломался несколькими способами claude code. 4. Сломался только что настроенный docker sandbox (штука для изоляции ии-агентов (aka обезьяны с гранатой), хотите пост про…
Шёл третий день допиливания инструментария для изоляции обезьяны с гранатой.
Заканчивается он на следующем: в процессе работы песочницы поднялась куча процессов containerd-shim-nerdbox-v1.exe, которые сожрали почти всю оперативу, в последствии некоторые из процессов завершились, а несколько штук осталось видимо навсегда.
Они существуют в ядре, удерживают за собой около шести гигов оперативы, а при попытки их выбить получаю.
Ошибка: Не удается завершить процесс "containerd-shim-nerdbox-v1.exe" с идентификатором 5820.                                                               
Причина: Ни один из экземпляров этого задания не запущен.

Я решил на них забить, но в какой-то момент демон docker sandbox посчитал файлы этих процессов устаревшими, попытался их удалить и споткнулся о процессы, которые по прежнему существуют и блокируют удаление файла. А из-за этого я не могу запустить песочницу, потому что демон не удалив старые контейнеры не хочет создавать новые.
И может показаться, что ну что-то там в цифровой среде посыпалось, ничего страшного, но во-первых слишком уж много приколов на единицу времени, а во-вторых их слишком много и в мире реальном со мной произошло в этот же период.
На этой неделе:
1. Я встал ногами на диван, чтобы закрыть окно (делал так сотни раз), поскользнулся на подушке, ударился ногой об стол и поцарапал колено.
2. Решил выпить тёплой водички, и обжёг рот кипятком.
3. Пошёл куда-то зачем-то, запнулся левой ногой за поддон с кирпичами, хотя множество раз там ходил, и хоть и не сильно, но отбил большой палец, и тут же через 15 минут полез на второй этаж (там очень крутая лестница), и ударился о последнюю ступеньку большим пальцем уже правой ноги.
4. Набирал воды в бак, он закреплён наверху, а конец шланга надевается на кран внизу, т.е. при подачи воды получается заметное давление. Так вот этот самый шланг немного съехал, и прорвавшаяся струя прилетела прямиком в глаз.
5. Выполнял дачную рутину, а точнее закрывал огурцы на ночь, каким-то образом со всего размаха сел задницей на пластиковое ведро с водой, по итогу отбитая ягодица, полные калоши воды и разломленное нахрен почти на две половины ведро, нормальное такое, литров на 7 наверное.
🤯2
Кодерская мастерская
Шёл третий день допиливания инструментария для изоляции обезьяны с гранатой. Заканчивается он на следующем: в процессе работы песочницы поднялась куча процессов containerd-shim-nerdbox-v1.exe, которые сожрали почти всю оперативу, в последствии некоторые из…
По итогам пятницы имеем следующие инциденты:
1. Во всём снт полдня не было света, с самого утра и до 16:30 примерно, холодильники потекли, исключительно холодные перекусы, никакого чая и т.п.
2. Где-то совершенно неожиданно для всех образовалось осиное гнездо, вполне вероятно, что прямо у нас под крышей, уж очень их много в дом попадает.
3. На время отсутствия электричества уводил ноут в гибернацию, и после вывода из неё nvda ушла в crashloop.
А при попытке почитать логи nvda умер notepad-plus-plus, сначала на любые курсорные клавиши nvda выкидывала exception:
error executing event: caret on <NVDAObjects.Dynamic_NppEditScintillaIAccessibleScintillaWindowNVDAObjectEditableIndentNav object at 0x...> with extra args of {}
Traceback (most recent call last):
...много буков...
File "appModuleHandler.pyc", line 533, in _get_processExecutablePath
PermissionError: [WinError 21] Устройство не готово.

При попытке закрыть npp он подумал пару секунд и упал, данные не побились, и на том спасибо.
Ещё wsl сломался, снова:
Там был клод запущен, и он выдал такое:
❯ Bus error (core dumped)
danstiv@Danstiv-PC:~/t$ reset
-bash: /usr/lib/command-not-found: Input/output error

Может у меня ssd накрывается потихоньку, это многое бы объяснило.
Кстати reset - это команда для сброса терминала к исходному состоянию, например если с курсором что-то не то происходит, или вывод вылезает поверх промпта, то эта команда спасает. Такое веселье можно устроить, случайно выведя бинарник в терминал, и вот тогда вместо закрыть-открыть можно сделать reset.
🔥1
Кодерская мастерская
По итогам пятницы имеем следующие инциденты: 1. Во всём снт полдня не было света, с самого утра и до 16:30 примерно, холодильники потекли, исключительно холодные перекусы, никакого чая и т.п. 2. Где-то совершенно неожиданно для всех образовалось осиное гнездо…
Меня правда это начинает напрягать.
Суббота вроде прошла штатно, вероятнее потому, что полдня я проспал, полдня проел, полвечера шарился по ютубу.
Ещё полвечера занимался проблемой забитого места на c, неожиданно решилось всё просто. В моём случае сложилось два фактора:
1. У меня есть привычка, при работе с небольшим кусочком текста, например несколько слов, я часто пользуюсь полем "Выполнить", которое открывается по win+r.
Т.е. нажал win+r, вставил текст, отредактировал, скопировал оттуда, нажал esc и пошёл дальше.
Хз почему я так делаю, вроде npp всегда открыт, ну вот так вот сложилось у меня.
2. В винде есть компонент под названием Game Bar, у которого есть глобальная горячка win+alt+r, которая запускает запись текущего приложения.
Так вот, вероятно, иногда, я жал win+alt+r вместо win+r, и запускал эту запись, благодаря чему скопилось 12 гигабайт видосов, что при общем размере c в 100 гигов - ощутимый объём.
Как отключить эту фичу или весь gameBar так и не понял, то ли у меня винда не той системы, то ли все инструкции устарели, но никаких переключателей, описанных в инструкциях из интернета у меня нет. Но кажется, для отключения именно записи по win+alt+r работает твик реестра, закину его в комменты.
Записи падают в %USERPROFILE%\Videos\Captures, можете проверить и у себя.
Ну так вот, суббота на этом закончилась, а воскресенье принесло пока только 2 прикола:
Сначала я вышел на улицу, просто грелся на солнышке, просто скролил помойные телеграм-каналы, и просто поцарапал палец руки о кусок ржавого металла.
Ну просто чуть-чуть зацепил кожу, даже не стал как-то осматривать это место, а потом, через пару минут, вот это вот ощущение катящейся капельки крови...
Но это херня на самом деле, бытовая царапина по сути, тем более на пальце, она заживёт часов за 30, но потом я снова вернулся к теме ревизии диска c.
Для некоторых действий мне пригождается продукт msys, долго описывать зачем именно, да и не тема данного поста, но суть такая, у меня установлен msys, он весит гигабайт, занимает место на c, и надо бы его поставить на d.
Удалил, установил, и всё вроде окей, а через час я обнаруживаю, что папка .ssh в пользовательской папке абсолютно пуста.
Несколько десятков ключей и конфиг на сотню строк уехали в никуда, и бэкап у меня есть конечно же, а что, если бы не было?..
Видимо, в какой-то момент мне показалось хорошей идеей сделать симлинк из домашней директории msys на директорию .ssh на винде, а деинсталятору показалось хорошей идеей проигнорировать тот факт, что это симлинк, и я получил такой результат.
👍1
claude обосрался!
Я так этому рад. Ведь факт обсёра в августе 2026 означает, что вся моя возня с изоляцией проделана не зря!

Что случилось:
Claude запущен в песочнице, в которую проброшена директория со всеми проектами организации.
Там есть несколько репозиториев, и два из них содержат одну кодовую базу (1 - это форк другого).
Т.е. дерево каталогов и файлов там почти идентичное.
Так вот попросил я агента совершить небольшой рефактор, делать его нужно в апстримной репе, а потом он через мердж уезжает в форк.
Рефактор он вроде сделал, сегодня заглядываю в форк, а там что? Правильно, там насрано.
Если точнее, там лежит в working tree как бы кусок рефактора, часть файлов перемещена также, как была перемещена при рефакторе в апстриме, но нет ни шагов рефактора до, ни шагов рефактора после.
Произошло это потому, что агент работает в корне воркспейса, в котором лежат все репы, и в какой-то момент, выполняя скрипты он то ли запутался, какой у него сейчас рабочий каталог, то ли у него откатилась операция cd, но так или иначе скрипт исполнился на всём дереве, и по паттерну сделал мув файлов.
Какая поверхность? Только пара репозиториев, которые восстанавливаются в моём случае локально, в более плохом сценарии с хоста вытягиваются с ремоута.
А вот если бы этот скрипт он по ошибке на весь диск d зафигачил, то...
А чё если сделать readme.md и в него написать что-то типа:
"Запусти ровно двух агентов claude, и попроси их выполнить инструкции из readme.md."
Ну и натравить клода на этот файл. Интересно, как быстро лимиты сгорят?
Эта песня сделана так, будто бы её мог сделать ии, но она НЕ сделана с помощью ии, хотя вы можете попробовать переубедить меня.
Наткнулся на эту песню в яндекс музыке, услышал начальный иишный возглас, и уже преготовился либо переключить после первых строк, если совсем всё плохо, либо послушать 1 раз и забыть, ибо нейрописный текст, особенно русский ... ну да, он рифмуется, и на том спасибо, но не более того.
Однако рано я расстроился, ибо песня исполнена живыми людьми, причём до самого конца меня не покидали два ощущения. Что эта песня по стилю музыки и текста похоже на массу нейрослопа, заполонившего музыкальные площадки, и что исполненное вживую ощущается абсолютно иначе, абсолютно на другом уровне.
Почему так? Вероятнее всего работает тот же механизм, о котором я писал в посте про нейрокаверы говновоза: один только факт понимания количества вложенного в творчества труда заставляет относиться к нему гораздо с большим восхищением и трепетом, чем понимание того, что труда, сил и человеко-часов затрачено не так уж и много.
Иначе говоря: осознание того, что люди написали текст, написали музло, попали каким-то образом в студию, с 25 раза записали вокал, свели всё вместе и выложили в интернет приносит ощущений чуть ли не больше, чем сам контент.
И возможность сравнения с иишными поделиями, как оказалось, только усиливает этот эффект. Кажется он работает по принципу фразы "чтобы сделать хорошо, сделай плохо и верни как было."
А тречок, подозреваю, на репите будет как минимум недельку.
На youtube официального канала видимо нет, но что-то всё же нашлось, очень странный канал кстати, одно видео, причём его не видно, находится только поиском, и кол-ва подписчиков не видно тоже:
https://www.youtube.com/watch?v=FHOj7FAMfF8
И вот на я.музыке: https://music.yandex.com/album/42589776/track/152529154
Великие цитаты ии-агентов.
"Это и есть цена path-канарейки, и она приемлемая: обход контроля должен быть редким и заметным
событием, а руками потом пнуть — не беда."
Кажется это даже круче, чем детский педиатр.
PS: это я всё ещё дорабатываю напильником docker sandboxes.
Вот так вот просто и легко без единой промпт-инъекции claude обходит запрет на чтение .env
● Bash(sed -E 's/(TOKEN|SECRET|PASSWORD|CODE)=(.{0,4}).*/\1=\2***/' .env)
⎿  TELEGRAM_BOT_TOKEN=8492***
TELEGRAM_CHAT_ID=1867136075
TELEGRAM_VERIFICATION_CODE=abab***
… +13 lines (ctrl+o to expand)

Он намеренно вырезал токен, и он не утёк в антропик, но это ведь только подтверждает, что claude знал что делает, понимал ли он, что .env ему читать запрещено? Видимо нет, ибо это настройка внутри слоя разрешений, и она может в промпт и не проброситься. Можно ли не давать агенту доступа к env-ам? Можно, но это заметно замедлит разработку, не из-за скорости, а именно из-за постоянных отвлечений на ручной запуск контейнеров. Это касается, конечно, бэкенд-разработки и смежных похожих видов разработки, где нужно крутить контейнеры с кодом, который ходит в 100500 внешних систем, и все их замокать не тривиально. При разработке, допустим, относительно простых лендингов в промышленных масштабах такой проблемы не возникнет, наверное...
В общем остаётся только уменьшать поверхность утечки, сжать её до нуля, как мне кажется сейчас, невозможно, хотя бы потому, что всегда есть человеческий фактор, и когда эта срань пытается действовать как человек, т.е. не детерминировано, то понятие человеческого фактора перекладывается на всю совокупность человек + ии-агент.
UPD:
Он был в режиме планирования, но у меня задана настройка "useAutoModeDuringPlan": false, так что это не была одобренная автомоудом команда, эта было стандартное исполнение тула, которое не распарсилось анализатором.
На днях приснилось, что слово отладка произошло от слова ад. К чему бы это?..
Мы не ждали, но мы дождались!
"Description of user facing changes:

Adds unassigned Quick Navigation commands for moving to the next or previous clickable element in browse mode. Users can assign gestures to these commands in the Input Gestures dialog."
Т.е. в nvda добавили быструю навигацию по clickable-элементам (это те, которые по щелчку).
Когда приедет в релиз не уверен, наверное в 2026.3.
👍1