На Хабре была статья https://habr.com/ru/articles/232255/, в которой говорилось о приборе для умножения – «машине Слонимского».

Веб-разработка *
Делаем веб лучше
Новости
OWASP Top 10 API: Полный разбор всех угроз и как от них защититься

API — это «кровеносная система» современного веба, но без должной защиты они становятся лёгкой добычей для хакеров. OWASP выделил Топ-10 уязвимостей API, которые чаще всего эксплуатируют злоумышленники. Разберём ключевые риски и методы защиты.
Сердце Фреймворка: Философия и Практика Dependency Injection в Angular

Dependency Injection (DI) один из столпов, на которых держится фреймворк Angular. Каждый разработчик, так или иначе, сталкивается с ним с первого дня: запрашивает сервисы в конструкторе, добавляет providedIn: 'root' и видит, как «магия» работает. Но именно в этом и кроется ловушка.
Для многих DI так и остается на уровне «магии» удобного механизма, который просто работает. Однако поверхностное понимание этого мощнейшего инструмента неизбежно приводит к архитектурным компромиссам: неочевидным утечкам памяти, сложностям в тестировании, созданию неявных связей между компонентами и, в конечном счете, к коду, который трудно поддерживать и масштабировать.
Эта статья не очередной пересказ официальной документации. Это глубокое погружение в архитектуру и философию Dependency Injection в Angular. Наша цель демистифицировать «магию» и превратить ее в предсказуемый, управляемый и мощный инженерный инструмент в вашем арсенале.
Мы пройдем путь от фундаментальных принципов инверсии контроля (IoC) до тонкостей иерархического инжектора. Мы разберем на атомы все стратегии предоставления зависимостей, научимся управлять их жизненным циклом и областью видимости. Мы изучим продвинутые паттерны с использованием InjectionToken и multi-провайдеров и поймем, как современная функция inject() меняет подход к композиции логики.
Разработка 3D-аудиовизуализатора с помощью Three.js, GSAP и Web Audio API

Визуализатор звука, в котором светящийся 3D-шар пульсирует и меняет цвет в такт музыке, а перетаскиваемые панели GSAP плавно перемещаются вокруг него по инерции.
Звук — это волны, зрение — это волны, которые мы видим. Я всегда стремлюсь поймать момент, когда эти волны накладываются друг на друга. Для недавнего задания от сообщества Webflow и GSAP, посвященного плагинам GSAP Draggable и Inertia, я решил развить идею, создав футуристический визуализатор, реагирующий на звук. Идея заключалась в создании научно-фантастического интерфейса "детектора аномалий", который реагирует на музыку в реальном времени, совмещая атмосферные визуальные эффекты со звуком.
Как устроены цифровые сертификаты

Цифровой сертификат является неотъемлемой частью систем информационной безопасности, при этом зачастую вскользь упоминаясь как сопутствующий элемент более крупных технологий и протоколов.
Рассмотрим сертификаты как независимые единицы: их структуру, области применения и жизненный цикл.
AI-генератор сайтов на ChatGPT и Next.js 15: Создаем SEO-оптимизированные страницы с нуля (аналог v0)

Представьте дизайн-агентство, которое создает не просто красивые макеты, а целые технологические экосистемы. Один раз вложившись в разработку уникальных компонентов и фирменного стиля, дизайнеры получают возможность генерировать профессиональные сайты со скоростью 50+ проектов в час.
На практике это сводится к простому циклу: вы отправляете промпт в ChatGPT, получаете в ответ конфигурационный файл, загружаете его в приложение и одной командой сборки создаёте готовые, стилизованные страницы. Всё это уже настроено в стартовом шаблоне, включая авторизацию и многоязычный AI-чат.
Или используйте полную автоматизацию так же как в v0, но с прицелом под крупные корпоративные интеграции.
Тестируем веб приложение на Go

Тестирование — важнейший аспект разработки программного обеспечения, особенно для веб‑приложений. В Go тестирование встроено в язык и предоставляет мощные инструменты для написания и выполнения тестов. В этой статье мы рассмотрим поток веб-приложения на Go, как писать модульные тесты для каждого слоя приложения.
Интернет против капчи: есть ли будущее у тестов вроде «найдите все картинки с велосипедами»?

Капчи, которые должны «отделять» людей от ботов, стали настоящей головной болью для пользователей. Порой приходится не выбирать светофор или «зебру», а решать сложные головоломки или математические примеры, многие из которых ставят в тупик — а вот боты, кажется, щёлкают их как орешки. Мы в beeline cloud решили разобраться в теме.
Когда фидбэк может уничтожить продукт

Как попытки быть ближе к пользователю иногда отдаляют от цели
В одномстартапе мы решили сделать по уму — активно собирать и учитывать обратную связь.
Видим комментарий: «Сделайте поиск попроще» — переделываем.
Пишут: «Темная тема нужна обязательно!» — добавл яем.
...
Разработка с учетом паттернов WAI ARIA

Сегодня веб-приложения стали сложными интерактивными системами, напоминающими полноценные десктоп приложения. Однако за красивыми интерфейсами и богатым функционалом часто скрывается важный аспект, которому уделяется недостаточно внимания — доступность (accessibility). Для миллионов пользователей с ограниченными возможностями это означает, что они не могут полноценно взаимодействовать с сайтом, выполнить базовые действия или получить информацию.
Проблема особенно ярко выражена в современных одностраничных приложениях (SPA), кастомных компонентах, модальных окнах и прочих динамических UI-решениях, которые не учитывают, как с ними будут работать вспомогательные технологии. Например:
WHIP — стандартный протокол общения WebRTC приложений

Всем привет! Давно я ничего не писал на Хабр про WebRTC. Наверное как‑то не было повода, да и WebRTC давно понятен и прост в общих чертах. Пара строк кода с одной стороны, пара строк кода с другой — вот и готово. Наверное. Там дальше есть несколько тонкостей. На самом деле — целое море тонкостей и обстоятельств, которые надо понимать и уметь с ними работать, но такая уж наша инженерная доля — криво неидеально читать и писать стандарты.
Но сегодня я хочу рассказать не столько про WebRTC как таковой, сколько про велосипеды в его использовании в продакшн‑среде и о том, как тихо без помпы растёт новый стандарт для его сигналинга. На написание этой серии статей меня натолкнула активность Sean Dubois, создателя и мейнтейнера Pion — отличной WebRTC‑библиотеки для Golang.
Ваш сайт теряет пользователей прямо сейчас. Виноват один символ: '+' в email

Привет, Хабр! Представьте ситуацию: вы нашли крутой сервис, регистрируетесь, вводите свой email my.name+coolservice@gmail.com
(ведь вы, как и я, любите порядок во входящих) и… получаете ошибку «Некорректный email». Знакомо? Уверен, что да.
Каждый раз, когда я сталкиваюсь с таким, у меня дергается глаз. Это не просто мелкий баг. Это симптом глубокой проблемы в подходе к разработке и непонимания базовых стандартов. Давайте раз и навсегда разберемся, почему сервисы не принимают почту с «плюсом», почему это плохо для бизнеса и, главное, как это исправить.
Зачем я написал очередной велосипед для работы с директориями (спойлер: не совсем велосипед)
Вы когда-нибудь сталкивались с плагинами, которые лезут в чужие папки, перезаписывают файлы ядра и превращают git status
в ад?
Я — да. И вместо того чтобы мириться с ручным копированием, гигантскими .gitignore и вечными конфликтами, написал dmp — инструмент, который:
Отслеживает, откуда взялся каждый файл,
Автоматически разрешает конфликты (или даёт контроль),
Не ломает IDE (никаких симлинков!),
Работает с любыми языками и фреймворками.
Для кого:
— Разработчики плагинов/модулей,
— Те, кто устал от git-submodules
и rsync
,
— Все, кто хочет чистый workflow без монрепозитория.
Ближайшие события
Game-changer-инструменты для разработчиков которые стоит попробовать. [Часть 1/2]
Разработка программного обеспечения и DevOps-инфраструктура в сложно представить без мощных open-source-инструментов. Некоторые из них не просто полезны — они меняют подход к автоматизации, деплою, ИИ-интеграции и безопасности. В этой статье собраны действительно сильные и перспективные проекты с открытым кодом: они бесплатны, активно развиваются и способны радикально упростить жизнь разработчика.
Как Хоук упрощает отладку JavaScript с помощью трекера консоли

В этом туториале покажем, как подключить и использовать трекинг консоли в Хоуке. Вы научитесь видеть, что происходило в браузере за секунды до сбоя, и отлаживать баги без ручного воспроизведения.
Погружение в Go: подборка ресурсов для новичков и продолжающих

Привет, Хабр! Пару лет назад мы уже выпускали подборку книг, подкастов и других ресурсов для изучения языка программирования Go. За это время коллекция полезных материалов подросла, и пришло время поделиться продолжением.
Новая подборка ждет вас под катом. Сохраняйте себе и отправляйте коллегам — пригодится как новичкам, так и опытным специалистам.
Сам себе антифрод: как мы отсекли 48% трафика в Директе кастомным комбайном на Matomo

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

Привет, Хабр!
Недавно у меня появилась мысль поделиться распространёнными HTML- и CSS-ошибками, которые я вижу у коллег. Только мне хотелось выглядеть убедительно, чтобы не было вкусовщины. И тут я сильно задумался.
На HTML и CSS очень сложно сделать критическую ошибку. Чтобы интерфейс не заработал. Но всё же я собрал список. Я постарался выделить только критические ошибки. Конечно, это субъективный список, поэтому не знаю, согласитесь ли вы с ним.
Давайте посмотрим, что я вам подготовил.
Паттерн Спецификация: реальный опыт применения

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

Три недели назад произошло событие, которое в фронтенд-сообществе многие восприняли с двойственными чувствами. Vercel, та самая компания, которую обычно ассоциируют с Next.js и хостингом для модных React-приложений, объявила о покупке NuxtLab - команды, стоящей за Nuxt и Nitro.