Конвертируем цвета в JS со скоростью 6 миллиардов операций в секунду
В начале этого года я создал самую быструю JS-библиотеку для работы с цветом: парсинг различных форматов, конвертация в OKLAB/OKLCH, проверка попадани…
Tech news from the best sources
В начале этого года я создал самую быструю JS-библиотеку для работы с цветом: парсинг различных форматов, конвертация в OKLAB/OKLCH, проверка попадани…
Как добавить кнопку «наверх» в Django-сайт и Django Admin: настройка, CSP, доступность, мобильная версия и работа рядом с cookie-баннерами. — Читать д…
Начнём с предыстории. Когда я опубликовал первую статью про клон Flappy Bird, я хотел получить результат, который был бы мне приятен, но вместо этого …
Расскажу, как и почему я в какой-то момент решил написать собственный pivot grid — без сторонних библиотек, на чистом JavaScript и DOM. И что из этого…
Несколько дней назад я сделал маленький инструмент для себя. Надоело каждый раз начинать новый проект с колеса оттенков: крутишь Coolors, листаешь Pin…
Как-то вечером я поймал себя на том, что трачу по 20 минут на поиск цветовой палитры для каждого нового проекта. Coolors, Adobe Color, случайные пины …
Недавно под постом в канале MoscowJS разгорелся спор — со мной и организатором насчёт смола. Даже не столько насчёт смола, сколько в целом: стоит ли в…
Международная операция Endgame вывела из строя 106 серверов SocGholish и очистила 14 971 заражённый сайт на WordPress. Разбираем угрозу и защиту. — Чи…
Разбираем, как устроен эффект 3D-вращения картинок из свежей статьи Codrops. Примеры кода на GSAP, Lenis и CSS-трансформации. — Читать дальше « Как сд…
Что будет, если взять один HTML-файл, браузер, localStorage и git-хостинг с CRUD API? Получится мессенджер. Без backend, базы данных, регистрации, npm…
Как построить поддерживаемое REST API на Node.js: слои, Zod, единые ошибки, версионирование и Swagger. Проверьте свою архитектуру. — Читать дальше « Ч…
Начнём с небольшой предыстории: пару недель назад я ждал друга в кафе. Как обычно, он опаздывал примерно минут на сорок. Ноутбук с собой, интернет ест…
Реактивность лучше MobX , виртуализация рендеринга «из коробки» , типизированные стили на TypeScript , локально-первая модель данных через CRDT — эти …
Как построить дизайн-систему без привязки к фреймворку, используя веб-стандарты и веб-компоненты. Пошаговое руководство с примерами кода и документаци…
Большинство трейдеров управляют рисками интуитивно. «Войду на 20% депозита, стоп поставлю пониже» — и пошёл. Исследование 500+ активных криптотрейдеро…
Фронтенд-разработка давно перестала быть просто «вёрсткой сайтов». Сегодня это сложная экосистема: фреймворки, state-менеджмент, TypeScript, оптимизац…
Разбираем двухфазный алгоритм вывода типовых переменных в TypeScript: сбор кандидатов, разрешение, вариантность, пересечения и NoInfer. Узнайте, почем…
Oxlint на Rust обгоняет ESLint в 50–100 раз по скорости и требует минимальной настройки. Разбираем бенчмарки и сценарии миграции. — Читать дальше « По…
Разбираем типы полей HTML-форм, правила доступности, ARIA-атрибуты и лучшие практики. Узнайте, как создавать удобные и конверсионные формы для любых у…
Новый тренд для сайтов - кнопка «Спросите ИИ о нас». Такие кнопки открывают Яндекс Алису, ChatGPT, Perplexity или другие ИИ-поисковики с заранее подго…
Можно ли запустить казуальную HTML5-игру на чистом JS в Яндекс Играх, не зная геймдева и верстки? Спойлер: можно, но придется пройти через 2-3 месяца …
В этой статье расскажу о свежем баге, который ронял один тип транзакций, пока остальные работали штатно. Если используете @formatjs /intl-durationform…
В предыдущей публикации я представил веб-инструмент для построения линий влияния в многопролётных шарнирных балках. Инструмент позволяет в…
Всем привет. Я занимаюсь фронтендом в небольшой команде сервиса бронирования отелей. Хочу как я 8 дней ловил утечку памяти на проде, несколько раз дум…
Я занимаюсь разработкой ПО для строительной механики. В процессе работы над одним из проектов возникла потребность в простом инструменте для построени…
DOOM известен тем, что запускается где угодно – благодаря портам, которые появляются с 1993 года. Мем «It Runs Doom» («Он запускает DOOM») живёт в инт…
В статье разберём, как именно раннер решает, что тест прошёл, почему .then без return выполняется уже после теста, почему try/catch в&n…
Блочный конструктор README-файлов написанный с нуля за 30 дней: кастомный WYSIWYG без сторонних редакторов, своя Markdown Object Model на TypeScript, …
Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реали…
Почему подход Atomic CSS называют функциональным? Именно на этот вопрос я постараюсь ответить в данной статье! Сначала я опишу вам базовые принципы ФП…