Forwarded from Dezzigners
Forwarded from ai.dot(ufna, dev)
Coufal_CV.pdf
178.3 KB
Крутой аниматор сейчас освободился и в поиске проекта на фуллтайм. Рекомендация — моя личная, если вам сейчас нужен аниматор/риггер/моделлер — пишите прямо Косте.
Часть демок есть на https://t-d-kzn.ru/ , но немалое — осталось за кадром.
Часть демок есть на https://t-d-kzn.ru/ , но немалое — осталось за кадром.
Forwarded from Node.JS [ru] | Серверный JavaScript
Теневые блокировки Event Loop от deasync: как найти и устранить
В production падает без видимых причин? Часто виноваты "теневые" блокировки event loop. Самый частый источник -
Механизм блокировки
Выглядит это так: ты вызываешь библиотеку, которая внутри использует
Как найти "тень"
Самый надёжный способ - flamegraphs с
Production-ready решения
Очевидный путь - замена на
* Переписать на асинхронные аналоги
* Вынести синхронные вызовы в Worker Thread
* Вставить
Пример. Вместо
Типичная ошибка
Даже один вызов
Вывод: Избегайте любых синхронных вызовов в production-режиме, заменяя их на асинхронные паттерны или Worker Threads, чтобы p99 latency оставалась стабильной под нагрузкой.
В production падает без видимых причин? Часто виноваты "теневые" блокировки event loop. Самый частый источник -
deasync и её клоны вроде sync-rpc или synchd.Механизм блокировки
Выглядит это так: ты вызываешь библиотеку, которая внутри использует
deasync. Внешне код нормальный, но под капотом - блокировка на уровне C++. Event loop замирает. deasync через node-gyp модуль синхронно ждёт завершения асинхронной операции, игнорируя все остальные события.Как найти "тень"
Самый надёжный способ - flamegraphs с
--perf-basic-prof. Ищи длинные синхронные стектрейсы с deasync::run или uv_run. Второй вариант - process._getActiveHandles(). Если активные хендлы резко падают на пиках, это симптом. Можно повесить custom async_hooks и ловить destroy на таймерах, которые не срабатывают.Production-ready решения
Очевидный путь - замена на
child_process.execSync - не выход. Это та же блокировка. Рабочие варианта:* Переписать на асинхронные аналоги
* Вынести синхронные вызовы в Worker Thread
* Вставить
setImmediate после каждого вызова через timers/promisesПример. Вместо
deasync(promise) пишем await promise. Если сторонняя библиотека - заворачиваем в Worker.const { Worker } = require('worker_threads');
const worker = new Worker('./worker.js');
// p99 latency падает с 1200ms до 45msТипичная ошибка
Даже один вызов
deasync может заблокировать event loop на сотни миллисекунд. Под нагрузкой это смертельно. Проверьте своё production: grep -r "require.*deasync" node_modules - и вы узнаете, кто тихо убивает ваш event loop.Вывод: Избегайте любых синхронных вызовов в production-режиме, заменяя их на асинхронные паттерны или Worker Threads, чтобы p99 latency оставалась стабильной под нагрузкой.
Forwarded from PSD | Дизайн-пространство
Вкус и польза в стиле Neo: новая визуальная концепция бренда DARIO
Новый дизайн упаковки DARIO Wellness Neo – современное и стильное решение для функциональных напитков. Использование натуральных оттенков и креативных коллажей фруктов подчеркивает их целебные свойства
Читать на дизайнерс | #кейс
Новый дизайн упаковки DARIO Wellness Neo – современное и стильное решение для функциональных напитков. Использование натуральных оттенков и креативных коллажей фруктов подчеркивает их целебные свойства
Читать на дизайнерс | #кейс
Forwarded from PSD | Дизайн-пространство
Forwarded from Daily Coding 🔥
🛠 Color Info - плагин, который предоставляет вам различную информацию о цветах, которые вы использовали в своем CSS. Наведя курсор на цвет, вы можете увидеть увеличенное изображение того, как он выглядит, а также информацию о его переводе во все форматы (hex, rgb, hsl и cmyk).
🌍 Сайт
Daily Coding #инструменты #CSS & Max
🌍 Сайт
Daily Coding #инструменты #CSS & Max
Forwarded from Node.JS [ru] | Серверный JavaScript
Диагностика и устранение deferred reference cycles в WeakRef и FinalizationRegistry: кэши и пулы в долгоживущих процессах
С WeakRef и FinalizationRegistry в Node.js можно получить скрытые утечки памяти, когда объекты в кэшах и пулах соединений не освобождаются из-за циклических ссылок через cleanup-функции. В production это проявляется как постепенный рост heap в долгоживущих процессах.
Ловушка deferred cycles
Основная проблема - передача объекта (например, socket) в FinalizationRegistry как heldValue внутри cleanup-функции, которая замыкается на тот же объект. Пока cleanup висит в очереди, GC не может освободить объект, так как registry его удерживает.
Диагностика
- Используй heap snapshots через --inspect: ищи цепочку WeakRef -> Object -> FinalizationRegistry
- Следи за process.memoryUsage().heapUsed при простое - рост без причины признак deferred cycle
- Логируй вызовы FinalizationRegistry: если cleanup не происходит после удаления всех внешних ссылок, цикл активен
Production-ориентированный совет
Для пулов соединений храни только идентификаторы в WeakRef, а реальные объекты - в отдельном Map с таймаутом.
Или используй явную отписку:
Типичная ошибка
Передача в registry объекта с методами, которые держат ссылки на другие ресурсы. Это создает неявные циклы, которые GC не распознает.
Вывод: Deferred reference cycles - это скрытые утечки, которые требует диагностики через heap snapshots и разрыва замыканий через примитивы в FinalizationRegistry.
С WeakRef и FinalizationRegistry в Node.js можно получить скрытые утечки памяти, когда объекты в кэшах и пулах соединений не освобождаются из-за циклических ссылок через cleanup-функции. В production это проявляется как постепенный рост heap в долгоживущих процессах.
Ловушка deferred cycles
Основная проблема - передача объекта (например, socket) в FinalizationRegistry как heldValue внутри cleanup-функции, которая замыкается на тот же объект. Пока cleanup висит в очереди, GC не может освободить объект, так как registry его удерживает.
const registry = new FinalizationRegistry((heldValue) => {
heldValue.socket.destroy();
});
class CachedConnection {
constructor(socket) {
this.socket = socket;
registry.register(this, this); // цикл: this как heldValue
}
}Диагностика
- Используй heap snapshots через --inspect: ищи цепочку WeakRef -> Object -> FinalizationRegistry
- Следи за process.memoryUsage().heapUsed при простое - рост без причины признак deferred cycle
- Логируй вызовы FinalizationRegistry: если cleanup не происходит после удаления всех внешних ссылок, цикл активен
Production-ориентированный совет
Для пулов соединений храни только идентификаторы в WeakRef, а реальные объекты - в отдельном Map с таймаутом.
registry.register(this, this.socket.id); // примитив, разрывает цикл
Или используй явную отписку:
registry.unregister(this) // перед удалением ссылки
Типичная ошибка
Передача в registry объекта с методами, которые держат ссылки на другие ресурсы. Это создает неявные циклы, которые GC не распознает.
Вывод: Deferred reference cycles - это скрытые утечки, которые требует диагностики через heap snapshots и разрыва замыканий через примитивы в FinalizationRegistry.
Forwarded from PSD | Дизайн-пространство
Фича в портфолио, которую почти никто не делает — хотя все хотят выделиться
Автор разбирает одну простую, но крайне редкую «фичу», которую почти никто не добавляет в портфолио — хотя именно она сильно помогает выделиться. Если вы устали от однотипных кейсов и хотите, чтобы ваше портфолио запоминали, стоит прочитать.
Читать на дизайнерс | #Карьера #Продуктовыйдизайн
Автор разбирает одну простую, но крайне редкую «фичу», которую почти никто не добавляет в портфолио — хотя именно она сильно помогает выделиться. Если вы устали от однотипных кейсов и хотите, чтобы ваше портфолио запоминали, стоит прочитать.
Читать на дизайнерс | #Карьера #Продуктовыйдизайн
Forwarded from Denis Sexy IT 🤖
Нашел классный АИ-проект из опенсорса за ~60$
1. Raspberry Pi слушает ваш балкон/оуно и определяет птиц которые были рядом
2. txt2img нейронка генерирует иллюстрацию этой птицы
3. сгенерированные птицы собираются в интерактивный коллаж, где на каждую можно кликнуть, почитать, посмотреть как в полете выглядит и тп
4. если вывести на отдельный экран, будет ваш персональный постер птиц
Тут исходники и инструкция:
https://github.com/Twarner491/AvianVisitors
А тут пример дашборда с птицами:
https://bird.onethreenine.net
1. Raspberry Pi слушает ваш балкон/оуно и определяет птиц которые были рядом
2. txt2img нейронка генерирует иллюстрацию этой птицы
3. сгенерированные птицы собираются в интерактивный коллаж, где на каждую можно кликнуть, почитать, посмотреть как в полете выглядит и тп
4. если вывести на отдельный экран, будет ваш персональный постер птиц
Тут исходники и инструкция:
https://github.com/Twarner491/AvianVisitors
А тут пример дашборда с птицами:
https://bird.onethreenine.net
Forwarded from PSD | Дизайн-пространство
Приложение для управления бизнесом и его финансами
Категория: #финансы
Язык: #en
https://dribbble.com/shots/17897645-Finance-Dark-theme-Design
Категория: #финансы
Язык: #en
https://dribbble.com/shots/17897645-Finance-Dark-theme-Design
Forwarded from PSD | Дизайн-пространство
This media is not supported in your browser
VIEW IN TELEGRAM
Coca-Cola выпустила новую традиционную рождественскую рекламу, но она полностью создана при помощи ИИ🥤❄️
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Daily Coding 🔥
Изучите ИИ за несколько вечеров — и начните делать работу вдвое быстрее
Пока одни тратят часы на рутину, другие уже используют ИИ и освобождают время. Навыки работы с ИИ сегодня помогают работать меньше, а зарабатывать больше.
На бесплатном мини-курсе вы научитесь:
— Делать свою работу быстрее
— Делегировать ИИ тексты, аналитику и маркетинг
— Автоматизировать рутинные задачи
— Расти в профессии и карьере
Без сложного кода и бесконечной теории — только практика, мини-проекты и быстрые результаты. Переходите по ссылке и регистрируйтесь бесплатно.
Реклама. Информация о рекламодателе по ссылкам в посте.
Пока одни тратят часы на рутину, другие уже используют ИИ и освобождают время. Навыки работы с ИИ сегодня помогают работать меньше, а зарабатывать больше.
На бесплатном мини-курсе вы научитесь:
— Делать свою работу быстрее
— Делегировать ИИ тексты, аналитику и маркетинг
— Автоматизировать рутинные задачи
— Расти в профессии и карьере
Без сложного кода и бесконечной теории — только практика, мини-проекты и быстрые результаты. Переходите по ссылке и регистрируйтесь бесплатно.
Реклама. Информация о рекламодателе по ссылкам в посте.
Forwarded from Daily Coding 🔥
📖AI for Everyday IT
🖋Abshire Brandon, LeMaire Chrissy 2025
Что, если бы вам больше никогда не приходилось писать отчеты об инцидентах, шаблонный код или аналитические обзоры с нуля? Используйте инструменты на основе искусственного интеллекта, такие как ChatGPT, Claude, Gemini и Copilot, и вы сэкономите себе часы времени, а то и больше! AI for Everyday IT рассказывает, как с помощью генеративного искусственного интеллекта автоматизировать десятки повседневных ИТ-задач.
💾 Скачать книгу
Daily Coding #книги #AI & Max
🖋Abshire Brandon, LeMaire Chrissy 2025
Что, если бы вам больше никогда не приходилось писать отчеты об инцидентах, шаблонный код или аналитические обзоры с нуля? Используйте инструменты на основе искусственного интеллекта, такие как ChatGPT, Claude, Gemini и Copilot, и вы сэкономите себе часы времени, а то и больше! AI for Everyday IT рассказывает, как с помощью генеративного искусственного интеллекта автоматизировать десятки повседневных ИТ-задач.
💾 Скачать книгу
Daily Coding #книги #AI & Max