Анатомия письма: почему email-дизайн — это машина времени в 1999 год

Вы когда-нибудь пробовали применить display: flex или grid в коде письма? Если да, то вы знаете чувство глубокого разочарования, когда Gmail, Outlook или Yahoo решают, что ваш современный красивый макет должен выглядеть как стена текста, набранная на печатной машинке.

Нативная поддержка gRPC в Spring

Не так давно в релиз был выкачена первая мажорная версия библиотеки Spring gRPC - для встроенной поддержки gRPC-сервисов в приложении Spring Boot. Она развивается внутри экосистемы Spring, а значит версионирование и интеграция с Boot - это теперь не вызывает проблем.

Кэширование пользовательских ролей из стороннего сервиса при Stateless-аутентификации (Spring)

Представим не столь редкую ситуацию, когда у нас есть некоторый сервис на базе Spring, к которому шлет запросы клиентское приложение. Фронтэнд взаимодействует с Keycloak (или другим сервером аутентификации, не столь важно), определяет пользователя, делающего запросы, и при обращении к нашему сервису подкладывает в заголовок "Authorization" Bearer-токен в виде JWT, на основании которого в сервисе должны происходить идентификация пользователя и определение прав доступа.

REST API: 5 паттернов формирования ответов, которые используют опытные разработчики

Возвращать необработанные JPA-сущности из REST-контроллеров — это один из тех паттернов, который кажется безобидным в начале, но затем превращается в системную проблему в production. Он не просто нарушаете принцип разделения ответственности — он создаёт три взаимосвязанных риска одновременно: утечку чувствительных данных, жёсткую связанность API со схемой БД и потерю контроля над публичным контрактом. В этой статье мы разберём пять паттернов, которые используют опытные разработчики. Каждый из них решает конкретную задачу, и вместе они формируют слой ответов, который является одновременно безопасным, производительным и удобным в сопровождении.

Поломалась оснастка порты управляемых сетей в zVirt

В какой то момент в zVirt поломалась возможность импортировать виртуальные машины из образов в формате OVA размещённых на дисках хоста с гипервизором. Но о том как это чинить, как-нибудь в другой раз, а может и в очередном обновлении починится.

Невидимые пользователи: Проектируем цифровую среду, доступную каждому

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

Как я сократил время итерации в 3 раза на проекте с микросервисами

Рано или поздно любая задача по написанию кода сводится к одному и тому же циклу: собрал проект -> запустил -> прогнал тесты -> поймал проблему -> выдвинул гипотезу -> внёс правки -> и снова по кругу, каждый раз надеясь, что в этот раз «точно всё».

HashMap в Java: 10 фактов, о которых вы, возможно, не знали

HashMap – наверное, самая используемая коллекция в Java. Мы кладём в неё элементы, достаём, редко задумываясь, что происходит под капотом. И в целом это нормально: класс работает, документация есть, сообщество стабильно советует переопределять equals и hashCode.

Go вместе изучать Go. Часть 6 (Заключительная)

Добро пожаловать в заключительную статью нашей серии о языке программирования Go. В ней мы рассмотрим три возможности языка: работу с изображениями через пакет image, обобщения (дженерики) для написания универсального кода и конкурентность — одну из главных «визитных карточек» Go.

iOS разработка: Как обнулить счетчик уведомлений в приложении

В этой заметке кратко рассмотрим, каким образом происходит обнуление иконки с числом непрочитанных уведомлений в iOS приложении. Приведем фрагмент кода, который позволяет убрать все непрочитанные уведомления при входе в приложение

Keycloak: Identity Broker и настройка realm-to-realm брокеринга

Добрый день! Сегодня я хочу поговорить о механизме Identity Brokering внутри Keycloak, а точнее о возможности использовать один realm как Identity Provider для другого. Звучит просто, но на практике нюансов хватает, поэтому давайте разберёмся по порядку.

Будущее программирования: четыре смелые идеи из 60-х, которые меняют наш цифровой мир сегодня

В 60-е и 70-е годы прошлого века, когда компьютерная наука только зарождалась, в ней не было правил. Не было стандартов, догм или «единственно верных» подходов. Были только чистые листы и смелые умы, готовые пробовать всё, что приходило в голову.

Как психология в дизайне управляет нашим выбором

Мы часто думаем о дизайне как о красоте, стиле или удобстве. Но на более глубоком уровне эффективный дизайн — это тонкая и мощная форма психологического воздействия. Он не просто украшает интерфейс, он направляет наше внимание, формирует восприятие, упрощает сложное и, в конечном счете, подталкивает нас к определенным решениям — от нажатия на кнопку до совершения покупки.

Go вместе изучать Go. Часть 5

Интерфейсы — один из элегантных инструментов Go, который позволяет писать гибкий и масштабируемый код. В отличие от многих других языков программирования, Go использует имплицитную (неявную) реализацию интерфейсов, что делает их особенно удобными и гибкими. Если вы когда-нибудь сталкивались с жёсткой типизацией и сложными иерархиями наследования в других языках, интерфейсы Go принесут в вашу жизнь глоток свежего воздуха. В этой статье мы разберёмся с основами интерфейсов, узнаем, как они работают под капотом, и изучим практические примеры, которые помогут вам использовать их в своих проектах.

Swagger: как починить неработающие разнородные multipart-запросы

Swagger давно уже можно назвать своего рода стандартом среди инструментов для документирования и тестирования RESTful API. Тем не менее в каждом решении бывают свои недоработки, баги и проблемы. Одна из проблем - это обработка сложных multipart-запросов, где части тела запроса представлены разными типами. Рассмотрим, в чем суть этих проблем, как починить отправку multipart-запросов из Swagger

Стили менеджмента: классификация по PAEI

В своей практике на работе, если вы захотите проявить инициативу, или просто будете достаточно ответственны, то обязательно встретитесь с необходимостью руководить другими людьми. Cегодня мы поговорим не об управляемых, а об управляющих. Какие бывают стили менеджмента, и как понять, кем вы сами являетесь как руководитель? Для этого используем классификацию PAEI.

Задача по динамическому программированию: «Карьерный путь в Tune-IT»

Задача по динамическому программированию: «Карьерный путь в Tune-IT» Условия задачи В компании Tune-IT программист строит карьеру, зарабатывая славу, деньги и влияние в зависимости от выбранного пути.

Go вместе изучать Go. Часть 4

Одной из особенностей в Go, которая часто озадачивает разработчиков из других языков программирования, — является отсутствие классов. Однако это не означает, что мы не можем организовать код в объектно-ориентированном стиле. Вместо классов в Go используются методы и структуры. В этой статье мы разберём, как работают методы в Go, в чём различия между методами со значением в качестве получателя и указателем в качестве получателя, а также когда использовать каждый из них.

Apache NiFi: заметки по ведению логов потоков данных

В этот позднедекабрьский день мы снова возвращаемся к Apache NiFi, чтобы в простой и компактной форме поделиться своим опытом и некоторыми практиками, связанными с организацией потока обработки данных.

Как проектировать интерфейс, если ты не дизайнер. Базовые правила хорошего дизайна.

В мире стартапов и быстрой разработки часто возникает ситуация: продукт должен быть создан вчера, бюджет ограничен, а в команде нет профессионального дизайнера. Разработчики, менеджеры продуктов, даже основатели вынуждены брать на себя роль дизайнера.
RSS (Открывает новое окно)(Открывает новое окно)
thumbnail Алексей Кондратьев
Записи: 11
Дата: 08.04.26
thumbnail Maxim Kalabukhov
Записи: 3
Дата: 07.04.26
thumbnail Никита Рогаленко
Записи: 23
Дата: 06.04.26
thumbnail Romo Fedoroff
Записи: 54
Дата: 01.04.26
thumbnail Andrei Maksimov
Записи: 20
Дата: 30.03.26
thumbnail Polina Napolskaya
Записи: 4
Дата: 04.03.26
thumbnail Vadim Mikhu
Записи: 4
Дата: 20.01.26
thumbnail Александра Пирс
Записи: 31
Дата: 07.10.25
thumbnail Dmitry Afanasiev
Записи: 64
Дата: 07.08.25
thumbnail Тимофей Перцев
Записи: 37
Дата: 29.07.25
thumbnail Arseny Antonovich Konovalov
Записи: 1
Дата: 25.06.25
thumbnail Александр Аксёнов
Записи: 9
Дата: 07.05.25
thumbnail Ольга Денисовна Смирнова
Записи: 6
Дата: 24.03.25
thumbnail Daria Zuban
Записи: 12
Дата: 07.03.25
thumbnail Marina Pashnina
Записи: 35
Дата: 03.03.25
thumbnail Алексей Егошин
Записи: 17
Дата: 13.01.25
thumbnail Дмитрий Сазонов
Записи: 61
Дата: 06.12.24
thumbnail Nikolay Emchenko
Записи: 19
Дата: 27.11.24
thumbnail Jonathan F. Keker
Записи: 6
Дата: 07.11.24
thumbnail Andrey Karabanov
Записи: 2
Дата: 31.10.24
thumbnail Evgenij Tsopa
Записи: 52
Дата: 02.10.24
thumbnail Dmitry Sheshukov
Записи: 17
Дата: 26.09.24
thumbnail Владимир Карташев
Записи: 1
Дата: 17.09.24
thumbnail Михаил Алексеевич Нягин
Записи: 1
Дата: 29.08.24
thumbnail Sviatoslav Osipov
Записи: 4
Дата: 04.08.24
thumbnail Егор Александрович Стуков
Записи: 1
Дата: 01.06.24
thumbnail Лоликонщик Отбитый
Записи: 3
Дата: 31.05.24
thumbnail Антон Семёнович Макаренко
Записи: 3
Дата: 28.05.24
thumbnail Danil Khanalainen
Записи: 3
Дата: 08.05.24
thumbnail Alexey Weiss
Записи: 17
Дата: 07.05.24
thumbnail Денис Серянкин
Записи: 2
Дата: 18.12.23
thumbnail Anna Ershova
Записи: 2
Дата: 30.10.23
thumbnail Erik Karapetyan
Записи: 12
Дата: 09.09.23
thumbnail Pavel Danilov
Записи: 12
Дата: 09.09.23
thumbnail Maxim Zhukov
Записи: 152
Дата: 20.06.23
thumbnail Vladislav Sivirin
Записи: 1
Дата: 22.05.23
thumbnail Vadim Kholoshnia
Записи: 1
Дата: 17.04.23
thumbnail И Горь
Записи: 27
Дата: 20.02.23
thumbnail Dmitry Komarov
Записи: 2
Дата: 02.06.22
thumbnail Semyon Gruzdev
Записи: 1
Дата: 17.11.21
thumbnail Victor Scherbakov
Записи: 3
Дата: 03.09.21
thumbnail Ivan Kayukov
Записи: 10
Дата: 17.08.21
thumbnail Alexander Zhermal
Записи: 8
Дата: 16.04.21
thumbnail Alexander Yarkeev
Записи: 42
Дата: 23.12.20
thumbnail Alexey Pismak
Записи: 2
Дата: 09.12.20
thumbnail Александр Исаев
Записи: 5
Дата: 15.09.20
thumbnail Александр Пашнин
Записи: 25
Дата: 10.09.20
thumbnail Danil Sinitskiy
Записи: 3
Дата: 02.09.20
thumbnail Valeriy Urrievich Kireev
Записи: 26
Дата: 15.01.20
thumbnail Vladimir Nikolaev
Записи: 14
Дата: 30.12.19
thumbnail Ivan Uskov
Записи: 23
Дата: 16.12.19
thumbnail Андрей Дьяков
Записи: 25
Дата: 27.06.19
thumbnail Sergey Zhmylove
Записи: 45
Дата: 14.03.18
thumbnail Lev Koznov
Записи: 18
Дата: 14.07.17
thumbnail Никита Валерьевич Акентьев
Записи: 1
Дата: 29.06.17
thumbnail DEADBEEF
Записи: 1
Дата: 16.01.17
thumbnail Никита Патрахин
Записи: 2
Дата: 15.08.16
thumbnail Vladimir Berlev
Записи: 3
Дата: 26.11.15
thumbnail Sergey Klyaus
Записи: 58
Дата: 21.06.15
thumbnail Олег Олегович Кулаченко
Записи: 1
Дата: 28.01.15
thumbnail Pakhom Golynga
Записи: 20
Дата: 03.03.14
thumbnail Vladislav Sovinskiy
Записи: 11
Дата: 10.01.14
thumbnail Илья Валентинович Перминов
Записи: 19
Дата: 04.09.13
thumbnail Konstantin Borzov
Записи: 7
Дата: 20.06.13
thumbnail Anthony Dmitriev
Записи: 4
Дата: 19.02.13
thumbnail Nicolay Smirnov
Записи: 6
Дата: 02.05.12
thumbnail Alexander Deiter
Записи: 16
Дата: 08.09.11
thumbnail Serge Klimenkov
Записи: 8
Дата: 26.07.11
thumbnail Roman Ambrosenko
Записи: 3
Дата: 18.01.11
thumbnail Sergey Shilin
Записи: 9
Дата: 05.11.10
thumbnail Ruslan F. Isbarov
Записи: 1
Дата: 31.03.10
thumbnail Алексей Сергеевич Лемешев
Записи: 1
Дата: 22.03.10