DevNotes Live
6 subscribers
84.2K photos
12K videos
195 files
35.4K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
Forwarded from Dezzigners
Forwarded from Dezzigners
Forwarded from Dezzigners
Forwarded from Dezzigners
🧰 Surreal Collage Art Creator — большой пак различных вырезанных элементов для создания уникальных проектов. В архиве больше 1000 различных объектов

Cкачать

Dezzigners
Forwarded from Dezzigners
Forwarded from Dezzigners
Forwarded from Dezzigners
Forwarded from Dezzigners
Forwarded from ai.dot(ufna, dev)
Пацаны заи Zai релизнули свою "идеешечку" для работы со своими моделями.

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

С другой стороны, какая-то визуальщина, а не терминал.

Зато сразу с версии 3.2.3. Это вам не сырые альфы в прод кидать!

https://zcode.z.ai/en
Forwarded from ai.dot(ufna, dev)
Достаточно распространенной и ощутимой ошибкой является считать ИИ просто "новым инструментом".

Это не новый инструмент. Работа с иишкой — давайте возьмем более частный случай — "разработка с ИИшкой" - это другая система.

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

Внедрение таких подходов требует создание новой системы рядом, после чего одна — вытеснит другую естесственным путем.

Но из-за того, что это не просто инструмент (инструменту — можно научиться обычно достаточно быстро), а именно системное явление — нам, кожаным, требуется перестройка на совершенно другие рельсы с подходах как работать, что делать, как оценивать результат, какие критерии ценности нашей работы.
Forwarded from Daily Coding 🔥
🛠 Dexter автоматический индексатор для Postgres

🌍 Сайт

Daily Coding #инструменты #SQL & Max
Forwarded from Daily Coding 🔥
🛠 Timeline.js - плагин jQuery для создания интерактивных графиков, которые позволяют отображать изображения и истории в хронологическом порядке в красивом анимированном виджете. Требуемая HTML-разметка очень разумна, и есть множество вариантов настройки.

🌍 Сайт

Daily Coding #инструменты #jQuery & Max
Forwarded from ai.dot(ufna, dev)
ИИ-агент пишет код не как джуниор или мидл. Он пишет его как сеньор с деменцией.
Forwarded from Дизайн-кабак
Питер и Новосибирск!

Ищу дизайнера в ключевой продукт Платформы Обслуживания Т-Банка — интерфейс сотрудника первой линии

Тысячи пользователей, AI-native, мощная продуктовая аналитика и амбициозная команда в одном флаконе

Платформа Обслуживания — самое наукоемкое подразделение в Т. Если хочешь расти в продуктовом дизайне как на стероидах, то откликайся:

https://novosibirsk.hh.ru/vacancy/134480383
https://novosibirsk.hh.ru/vacancy/134480383
https://novosibirsk.hh.ru/vacancy/134480383
Forwarded from Daily Coding 🔥
🛠 MigrationPilot — это инструмент статического анализа для миграции схем в PostgreSQL. Он анализирует ваш SQL с помощью реального парсера PostgreSQL (libpg-query), классифицирует все полученные блокировки, выявляет опасные шаблоны с помощью 83 правил безопасности, оценивает общий риск и предлагает безопасные альтернативы — и все это без обращения к базе данных. Работает как интерфейс командной строки, GitHub Action и библиотека Node.js.

🌍 Сайт

Daily Coding #инструменты #SQL & Max
Forwarded from UI_UX inspiration
6 вопросов про менторинг

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

Читать на дизайнерс | #Карьера
6 вопросов про менторинг

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

Читать на дизайнерс | #Карьера
WeakRef и циклы: тихая утечка памяти в долгоживущих процессах

WeakRef в Node.js — инструмент для умных кэшей и подписок, но в долгоживущих серверных процессах он может стать причиной неочевидной утечки памяти. Самая распространенная ошибка — циклическая структура, где WeakRef замыкается с сильными ссылками, и GC молча перестает собирать объекты.

Как возникает утечка
В серверных приложениях часто используется дерево компонентов. Если дочерний элемент хранит WeakRef на родителя, а родитель — сильную ссылку на дочерний, цикл замкнут. GC видит, что объект родителя доступен через WeakRef, но сам WeakRef жив, и сборка блокируется. Результат — плавный рост heap, незаметный неделями.

Диагностика в production
- Снимайте heap snapshots через heapdump или Chrome DevTools. Ищите раздел System / WeakRef — там лежат недоступные объекты.
- Включайте --trace-gc и --trace-gc-verbose. Они покажут, какие объекты GC не может собрать из-за слабых ссылок.
- Мониторинг process.memoryUsage() и v8.getHeapStatistics() — кривая роста без видимых причин говорит о проблеме.

Практические решения
Самый надежный способ — разорвать цикл. Используйте FinalizationRegistry для явного освобождения ресурсов:

const registry = new FinalizationRegistry((held) => {
console.log('cleaned', held);
});
class Child {
constructor(parent) {
this.parentWeakRef = new WeakRef(parent);
registry.register(this, 'child');
}
getParent() {
return this.parentWeakRef.deref();
}
}


Ошибка, которую все допускают
WeakRef внутри замыкания на this — классика. Например, в WebSocket подписках: () => this.parent.someMethod сохраняет контекст с сильной ссылкой на весь граф. Всегда пишите явную проверку: this.parentWeakRef?.deref()?.someMethod. Иначе цикл восстановится.

Вывод: WeakRef — не панацея: в долгоживущих процессах всегда проверяйте цепочки замыканий и снимайте heap snapshots, иначе тихая утечка памяти станет причиной падения сервера.
Диагностика и устранение indefinite suspension при мониторинге HTTP-запросов через async-hooks

Ситуация знакомая: используешь async-hooks для отслеживания длинных HTTP-запросов, и вдруг приложение начинает подвисать. Чаще всего это indefinite suspension из-за unhandled rejection.

В чём соль. async-hooks создаёт контекст для каждой асинхронной операции. Если внутри этого контекста Promise упал (rejection), а обработчика нет, хук может зависнуть в ожидании. Сборщик мусора не срабатывает, ресурсы текут — и приложение виснет.

Как ловить
Первое — глобальный перехват unhandledRejection:
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection at:', promise, 'reason:', reason);
});

Второе — запускай с флагом --trace-warnings, чтобы видеть стек.

Что делать
Вариант 1. Просто и надёжно — добавить .catch() в каждый Promise внутри хука:
const hook = createHook({
init(asyncId, type) {
if (type === 'HTTPINCOMINGMESSAGE') {
const requestPromise = someAsyncOperation();
requestPromise.catch(err => console.error(Request ${asyncId} failed:, err));
}
}
});
hook.enable();


Вариант 2. Явное управление контекстами через destroy. Заводишь Map, чистишь её при завершении:
const contexts = new Map();
hook.init(asyncId, type) {
if (type === 'HTTPINCOMINGMESSAGE') {
contexts.set(asyncId, Date.now());
}
}
hook.destroy(asyncId) {
contexts.delete(asyncId);
}


Вариант 3. Принудительный таймаут. Запускаешь интервал, проверяешь застрявшие контексты (скажем, те, что висят дольше 30 секунд) и прибиваешь их.

На заметку. Если Node.js 14+, бери AsyncLocalStorage — он сам управляет контекстом. И никогда не создавай Promise внутри init без .catch(). Тестируй с --async-stack-traces.

Вывод: Indefinite suspension лечится связкой глобального обработчика ошибок и чёткого контроля жизненного цикла контекстов.
Код я написал за две недели. Продавать его боюсь до сих пор

Три недели назад расширение прошло ревью и появилось в Chrome Web Store. С тех пор ни анонса, ни поста, ни сообщения людям, которые его ждали. Тишина. Это уже не первый раз: в мае автор точно так же на месяц пропал в код, лишь бы не заниматься продвижением. В статье разбирается, почему разработчик прячется от собственного продукта, и приводятся замеры, что происходит с цифрами, когда прятаться перестаёшь.

Читать далее →
Качай насмотренность правильно

Дизайн-редактор: Узнай, почему простое "насмотренность" не всегда помогает в развитии дизайнера

Читать на дизайнерс | #статья