DevNotes Live
6 subscribers
84.2K photos
12K videos
195 files
35.3K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Плагин Phosphor Icons — большая библиотека бесплатных иконок, подходящих для интерфейсов и веб-дизайна.

#иконки #пак
Скрытая утечка памяти: когда WeakRef и Symbol.dispose убивают DI-контейнер

В long-lived DI-контейнерах циклические зависимости в сочетании с WeakRef и Symbol.dispose создают неочевидную проблему: коллбэки очистки замыкают целые графы объектов, превращая WeakRef в бессмысленный инструмент. Разработчики часто доверяют GC, не замечая, что память не освобождается годами.

Как возникает теневая связность
Когда вы регистрируете коллбэк в WeakMap на основе WeakRef, замыкание захватывает dispose-функцию, которая тянет весь service-граф. Даже если WeakRef.deref() возвращает undefined, ссылка в замыкании удерживает объекты. Они становятся "полуживыми" - не имеют сильных ссылок, но GC их не собирает из-за скрытой цепочки через dispose.

Диагностика в production
Запуск с --expose-gc и global.gc() не покажет освобождения. Heap snapshot в Chrome DevTools обнаружит объекты без явных strong references, но присутствующие в WeakMap. Это сигнал, что проблема в замыканиях коллбэков. Типичная ошибка: проверка только первого уровня графа.

Решение 1: точечное замыкание
Вместо передачи всего service в коллбэк берите только метод через bind:
const handler = service[Symbol.dispose]?.bind(service);

Это разрывает неявную связь с полным графом.

Решение 2: FinalizationRegistry
Он не удерживает ссылку на объект. Регистрируете коллбэк с heldValue, который не ссылается на service:
const registry = new FinalizationRegistry((heldValue) => {});
registry.register(service, cleanupToken, token);


Решение 3: отказ от WeakRef при циклах
Для циклических зависимостей используйте reference counting в пуле синглтонов. Надёжнее, хоть и менее элегантно:
class RefCountPool {
private refs = new Map();
acquire(key) { this.refs.set(key, (this.refs.get(key) || 0) + 1); }
release(key) { if (this.refs.get(key) === 1) this.refs.delete(key); }
}


Вывод: WeakRef не гарантирует безопасной очистки при наличии замыканий в коллбэках, поэтому всегда профилируйте память в циклах зависимости и используйте FinalizationRegistry или reference counting для long-lived контейнеров.
Forwarded from Dezzigners
🧰 Vector Sticker Pack — бесплатный пак векторных стикеров в SVG

Dezzigners
Фронтиры технологий (или старая промышленная революция еще удивит)

Вообще, интересно какие есть способы применения ЛЛМ для аддитивных технологий, которые обычно маркируют как "функциональная/встроенная печать электроники" (printed/embedded electronics, mechatronic 3D printing). И идея, которая, возможно, перевернет индустрию и будет сравнима с паровым двигателем для английской промышленной революции, -это производство самовоспроизводящихся объектов: принтер печает принтер, который печатает принтер, который печатает новый принтер. Причем идея восходит к некоторым ранним работам фон Неймана, который описывал концепцию физической небилологической самовоспроизводящейся системы - в работе по теме отметился и Дайсон, который сфера Дайсона, и реальные проекты НАСА с машинами-репликаторами для отдаленных космических станций

Одной из интересных ласточек революции был проект RepRap (Replicating Rapid Prototyper), запущенном Адрианом Бойером в Университете Бата в 2004–2005 годах. Первый прототип «Darwin» (2007) печатал большинство собственных деталей, а в мае 2008 года напечатанный принтер впервые изготовил детали для своей копии — «ребёнка», который в свою очередь мог напечатать «внука». Проект был принципиально открытым (open source)
https://en.wikipedia.org/wiki/RepRap

Ключевой проблемой долгое время было, что детали было не напечатать сложные
https://spectrum.ieee.org/3d-printed-linear-motor - благодаря тому, что может печатать разные материалы и использовать магнитные гранулы начал печатать сложносоставные материалы - электромоторы. И это первый реальный шаг к самовоспроизводящимся роботам и объектам. Вот, например, хорошая рабочая группа университета Йорка https://www.york.ac.uk/robot-lab/are/
В прошлом году лаборатория Creative Machines Lab опубликовала концепцию Machine Metabolism (Robot Metabolism): роботы физически «растут», самовосстанавливаются и поглощают детали других роботов — как биологические организмы поглощают аминокислоты.

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

https://text-to-cad.zoo.dev/

https://text-to-cad.uk/

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

В целом, цепочка производств типа факторио с гопатычами - это потенциально более значимый взрыв инноваций в экономике 21 века
Кто в ответе? Напряжённый союз автоматизации и человеческого поведения
Выдержки из статьи Who’s in charge? The fraught union of automation and human behavior

Автоматизация повсеместна — от автопилота в самолётах до циклов стиральной машины у вас дома. А с появлением современного искусственного интеллекта компьютеры и машины берут на себя всё больше задач.
https://knowablemagazine.org/content/article/mind/2026/design-automated-systems-with-human-psychology-in-mind

Это не обязательно означает исчезновение человеческих рабочих мест, но они меняются — от непосредственного выполнения задачи к контролю за машиной, которая её выполняет, говорит Рон Маклеод из Глазго, Шотландия. Отставной специалист в области «человеческого фактора», Маклеод всю карьеру изучал, как человеческий мозг и автоматизация работают вместе — или не работают — в промышленных условиях, например в пультах управления нефтеперерабатывающих заводов. В феврале 2026 года Маклеод выпустил книгу на эту тему: Transitioning to Autonomy: The Psychology of Human Supervisory Control («Переход к автономности: Психология человеческого супервизорного контроля»).

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

Это распространённая проблема: в каких условиях человеку разрешено вмешиваться в работу автоматизации или когда автоматизация может отменить решение человека? Например, в автомобиле: когда включён автопилот, если я нажимаю на тормоз, система отключается и я возвращаю управление себе. Она позволяет мне перехватить управление.
Что должны делать автопроизводители, чтобы облегчить водителям этот переход?
В моём автомобиле, как только я убираю руки с руля, я сразу оказываюсь в супервизорной роли. Мне нужна другая информация. Мне не нужно знать, на какой передаче я еду; мне даже не обязательно знать текущую скорость. Мне нужно понимать: кто контролирует — я или машина? И мне нужно знать, о чём «думает» машина, видит ли она приближающуюся угрозу?

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

Одна из ключевых проблем — это баланс полномочий между людьми и автоматизацией. Кто на самом деле контролирует?

Это проявилось во время теннисного чемпионата Уимблдон в 2025 году. Впервые Уимблдон передал полные полномочия автоматизированной системе определения попадания мяча — Hawk-Eye — решать, был мяч «в» или «аут».
Это был четвертьфинал женского одиночного разряда: Анастасия Павлюченкова против Сонай Картал. Картал ударила мяч, который явно был аутом, но автоматика не зафиксировала это как аут. Игроки видели это, судьи видели, весь мир, смотревший трансляцию по телевизору, видел, что мяч был аутом, но главный судья не имел права отменить решение автоматизированной системы. Судья заставил пару переиграть очко, и Павлюченкова проиграла эту игру, хотя в итоге выиграла матч.

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

Конкретно для автомобилей Национальный совет по безопасности на транспорте США (NTSB) недавно провёл совещание по итогам расследования двух смертельных аварий 2024 года, в которых внедорожники Ford Mustang в режиме частичной автоматизации врезались в остановившиеся на трассе автомобили. В обоих случаях водители Ford были не в состоянии или отвлеклись от контроля за автоматизированным вождением. NTSB рекомендовал автопроизводителям устанавливать системы, снижающие риск потери бдительности или самоуспокоенности водителей при работе автоматизации.
Эти системы должны отслеживать состояние самих супервизоров-человек, которые supposed to следить за автоматизированным вождением. Уже проведено много исследований и разработок продуктов для мониторинга уровня бодрствования. Они делают это, например, отслеживая движения глаз, положение головы.

Похожий пример: многие годы в железнодорожной отрасли некоторых стран использовали устройство «бдительности», чтобы убедиться, что машинист не уснул — ведь его задача очень монотонная. Это простой звуковой сигнал, который срабатывает каждые 30 секунд. Машинист должен нажать кнопку, чтобы отключить звук. Технология очень простая, но, похоже, эффективно гарантирует, что машинист не спит.
(В СНГ - это тест точка на кругу для машинистов метрополитена и РЖД - В.Б.)

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

Суть проблемы на самом деле не так сложна. Всё сводится к хорошему дизайну. Если вы понимаете, что переводите людей из роли исполнителя в супервизорскую роль, то на стороне системы нужно проектировать пользовательский интерфейс, исходя из понимания: в чём заключается задача человека? Какая информация ему нужна? Как это оптимизировать?

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

И, например, не создавать стимулов, которые отбивают у супервизора желание принимать правильные решения. Когда я работал в нефтегазовой отрасли, было несколько случаев, когда сотрудники в пультовых вмешивались и останавливали или снижали производство — а у этого есть прямая долларовая стоимость. Они поступили правильно, но их за это винили.
Forwarded from ai.dot(ufna, dev)
Правильные тесты правильных цифр для игор на линуксе! Чтобы говорить про задержку и оптимизацию предметно!

https://marco-nett.de/blog/measuring-input-latency-on-linux-x11-vs-wayland-vrr-dxvk/
Forwarded from Shock Design
Генератор мокапов

⁠Recraft Mockup Generator запустил новую функцию, генератор мокапов. Используйте любое изображение в качестве основы для макета или создайте его с помощью ИИ.

Ссылка

#materials_nd
Forwarded from Shock Design
Браузерный 3D конструктор

Womp 3D – это довольно простой онлайн-редактор, в котором ты легко сможешь создавать несложные 3D-композции. Есть большая встроенная библиотека ассетов. Бесплатная ограниченная версия.

Ссылка

#materials_nd
Forwarded from Новые шрифты
Doughty Brush

📁 Download
Forwarded from UI_UX inspiration
Мобильное приложение для отслеживания финансов

Категория: #финансы
Язык: #en 

https://.com/shots/23106082-FinEase-Finance-Mobile-App-Dark-Mode
Forwarded from UI_UX inspiration
Мобильное приложение для заказа еды

Категория: #еда
Язык: #en 

https://.com/shots/27393401-Eatly-Food-Delivery-App

Чат UI/UX
Forwarded from UI_UX inspiration
Приложение для поиска недвижимости

Категория: #приложение
Язык: #en

https://.com/shots/15438834-Real-Estate-Mobile
Айдентика для компании Petbarn, которая предоставляет экспертные услуги по уходу за домашними животными.

Дизайн: Landor
Иллюстратор: Marco Palmieri

#брендинг