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 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. С тех пор ни анонса, ни поста, ни сообщения людям, которые его ждали. Тишина. Это уже не первый раз: в мае автор точно так же на месяц пропал в код, лишь бы не заниматься продвижением. В статье разбирается, почему разработчик прячется от собственного продукта, и приводятся замеры, что происходит с цифрами, когда прятаться перестаёшь.

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

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

Читать на дизайнерс | #статья
За пятисекундной ИИ-обложкой — часы мыслительной работы

Изучите процесс создания анимационных обложек для журнала "Юновью" от графического дизайнера и ИИ-креатора Сони. Как идея превращается в уникальную анимацию?

Читать на дизайнерс | #статья
БАЗА ЗНАНИЙ ДИЗАЙНЕРА

Илья Сидоренко (продуктовый дизайнер с опытом 13+ лет и автор бестселлера «Дизайнер интерфейсов») создал бесплатную базу знаний для дизайнера.

Что в базе:
+ как дизайнеру выйти на 300к в месяц
+ бесплатный экспресс-курс по продуктовому дизайну
+ как найти работу в продукте (пошаговая стратегия)
+ экспресс-курс по UX-исследованиям
+ советы по оформлению портфолио и резюме
+ обновления каждый месяц

База знаний доступна в закрепленом сообщении канала Ильи «Дизайнер будущего».

Подписывайтесь на канал, изучайте Базу и применяйте. А если останутся вопросы – пишите лично Илье, он всегда готов поделиться опытом или советом.

Реклама. ИП Сидоренко И. А., ИНН: 503013064674, erid: CQH36pWzJqDgEKpZrdAfGM3ypirMnb9jwD4rzobqR3nN1f
Оркестратор промптов: как собрать связку из Sonnet, GPT и Nano Banana

Открытие необычного метода повышения продуктивности — как один простой шаг изменил мою жизнь и помог достичь новых высот

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

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

Читать на дизайнерс | #Карьера
Как мы создавали джингл «Додо Пиццы»

Откройте мир звукового брендинга: как звуки могут создавать эмоциональную связь с продуктом

Читать на дизайнерс | #статья
Forwarded from UI_UX inspiration
Мобильное приложение для фрилансеров

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

https://.com/shots/27243753-Freelance-Project-Briefs

Чат UI/UX