8 сентября в 13:16 UTC система мониторинга Aikido зафиксировала подозрительные действия: в npm начали публиковаться новые версии популярных пакетов, содержащие вредоносный код.Всего было скомпрометировано 18 очень популярных библиотек, среди них:backslash (≈260 тыс. загрузок в неделю)chalk-template (≈3,9 млн)supports-hyperlinks (≈19,2 млн)has-ansi (≈12,1 млн)simple-swizzle (≈26,3 млн)color-string (≈27,5 млн)error-ex (≈47,2 млн)color-name (≈191,7 млн)is-arrayish (≈73,8 млн)slice-ansi (≈59,8 млн)…
Команда JavaScript for Devs подготовила перевод статьи о том, как кэширование DNS в NodeJS помогает ускорить работу приложений. На примере инфраструктуры крупного онлайн-сервиса автор показывает, как незаметные на первый взгляд DNS-запросы могут превратиться в узкое место и как простое решение на уровне кода способно повысить стабильность и отклик системы.Работая над инфраструктурой Arte.tv, мы обнаружили, что DNS-запросы могут быть скрытым узким местом, замедляющим критически важный слой. Хоро…
Теперь в рекламном кабинете Telegram Ads появился пиксель - инструмент для отслеживания действий пользователей на сайте после перехода по рекламе. Это значит, что можно:видеть заявки, покупки и другие действия прямо в Telegram Ads,автоматически считать CPL и CPA,больше не сводить вручную статистику из Метрики, GA4 и других систем.Разберем, как это настроить - от установки кода до получения данных в интерфейсе Telegram.Приветствую, Хабр! Сегодня пока готовлю большой цикл статей по тег менеджерам…
Без сомнений, JavaScript — крайне популярный язык программирования. И разработчики постоянно создают обновления, которые позволяют писать код проще, короче и понятнее. Одним из таких инструментов стала деструктуризация — способ получения данныхПривет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, как работает синтаксис и как деструктуризировать массив. Подробности под катом!Что такое деструктуризацияДеструктуризация — это способ…
Команда JavaScript for Devs подготовила перевод статьи Адди Османи к 17-летию Google Chrome. За эти годы браузер прошёл путь от «минималистичного проекта с комиксом» до полноценной платформы для приложений с ИИ. Скорость, безопасность, стабильность и простота остаются его основными принципами, а впереди — новая эра с локальными AI-API и встроенным ассистентом Gemini.ВведениеЯ до сих пор помню осень 2008-го, когда Google запустил Chrome — необычный новый браузер, представленный миру в виде комик…
На выходных вышли сразу две громкие ИИ-новости, которые захотелось пощупать руками.Во-первых, на OpenRouter тихо появились две стелс-модели: Sonoma Dusk Alpha и Sky Alpha. Обе заявлены с окном контекста 2 млн токенов, поддержкой изображений на входе и параллельным вызовом инструментов, и сейчас бесплатны; Dusk заявляется как быстрая модель на каждый день, Sky - как максимально интеллектуальная для сложных задач.Во-вторых, z.ai запустили API совместимый с Claude Code с доступом к своей флагманск…
Наконец, настал этот момент, и я решился написать статью. Давно хотел, но как-то не хватало мотивации. А ведь, знаете, как говорят: «гнев — лучший мотиватор». Есть же такое выражение?ПредысторияЯ приглашаю вас в путешествие, но сначала нужно расставить декорации. Представьте, что вы работаете в некой компании X, и один из ваших сервисов на Next.js крякнулся. Ну и поскольку это Next.js, то мы понятия не имеем, что конкретно произошло, так как логирование процессов по умолчанию включено только пр…
Как и многие начинающие разработчики, я давно мечтал сделать свой первый pet‑проект — чтобы почувствовать себя «настоящим программистом» и перестать бояться собеседований. В итоге решился: буду писать веб‑приложение для личных заметок.На самом деле я не совсем новичок. Раньше у меня уже были попытки освоить разные языки программирования, но дальше пары строчек кода дело редко заходило. Умение «гуглить правильно» и искать ответы на StackOverflow пока давалось тяжело, поэтому довести что‑то до ре…
По мере роста фронтенд-приложений управление пользовательскими взаимодействиями становится все более важным. Добавление обработчика событий на каждый интерактивный элемент — плохая практика: это усложняет код, увеличивает расход памяти и снижает производительность. Здесь на помощь приходит делегирование событий (event delegation).Каждая интерактивная веб-страница опирается на Document Object Model (DOM) и ее систему событий. Когда мы нажимаем кнопку, вводим текст в поле или наводим курсор на из…