Месяц: Сентябрь 2022
-
Как сгенерировать UUID в качестве первичных ключей при помощи Hibernate
Большинство разработчиков предпочитают числовые первичные ключи, потому что они эффективны в использовании и их легко сгенерировать. Но это не означает, что первичный ключ должен быть числом.Например, в последние годы приобрели популярность UUID (англ. universally unique identifier — «универсальный уникальный идентификатор»). Основным преимуществом UUID является его (практическая) глобальная уникальность, которая дает огромное преимущество для распределенных систем.Если…
-
Блеск и нищета IT в Германии
Уже четыре года я работаю Java разработчиком в небольшой немецкой компании.В начале прошлого года я увидел на столе одного из моих «кураторов» забытый листок с расчётом заработной платы за месяц. Конечно же, я не мог в него не посмотреть. Сумма, которую я увидел у Нильса, меня удивила. Зарплата брутто: 3300€ в месяц. Живет один, жены…
-
Buy-Now-Pay-Later (BNPL) — разбираем горячий сегмент финтеха, на который облизывается Тим Кук
BNPL (или «рассрочка по-зумерски») — один из главных трендов розничных финансов, способный кардинально поменять потребление. Даже Apple не выдержал и совсем скоро запустит свою би-эн-пи-эльку. Мы научим различать BNPL и обычную рассрочку, расскажем про ключевых игроков индустрии и объясним снижение капитализации Klarna на примере стакана пива.Небольшое вступление, или почему мы решили написать про BNPL именно…
-
Задаём порядок деплоя ресурсов в Kubernetes с помощью werf/Helm
При деплое в Kubernetes часто требуется выкатывать ресурсы в определённом порядке, а иногда и дожидаться готовности сторонних ресурсов. Например, сначала нужно запустить БД, дождаться создания динамического Secret’а сторонним оператором, потом выполнить инициализацию/миграции БД, а уже затем запустить само приложение. Рассмотрим, как решать такие задачи с помощью Helm, а также сравним с более быстрым и удобным вариантом,…
-
Новая технология по формированию 3D звука в мульти драйверных наушниках «Сфера»
В этой статье я хотел бы рассказать о созданной мной технологии по формированию объемного звука в наушниках, при помощи размещенных в разных плоскостях системы динамиков. Как говориться, всё новое это хорошо забытое старое, и начать пожалуй стоит с небольшой истории развития.Так, в 1979 году, советской фирмой «Электроника» была выпущена модель наушников с квадрафоническим воспроизведением звука…
-
Миграция Laravel Nova с PostgreSQL на CockroachDB. Наш опыт и решение
Часто бывает, при ближайшем рассмотрении некоторая проблема выявляет более глубокую, погружаясь в решение которой находишь для себя много интересного.О такой ситуации на одном из наших проектов и пойдет речь.Предыстория, описание проявления изначальной проблемыПрежде всего, с чего все началось. Есть веб-проект, backend часть которого написана с использованием фреймворка Laravel (8.80.0 версии). В качестве админки — Laravel…
-
Компьютер из ткани: струйная логика в одежде
В последнее время участились попытки превратить повседневные предметы в их умные эквиваленты. У нас уже есть умные пылесосы, умные холодильники, умные часы и даже умный текстиль. Внедрение электроники в элементы гардероба позволяет создавать одежду, способную считывать биоданные человека, помогать людям с ограниченными возможностями и даже собирать энергию. Любая такая разработка нуждается в электронных компонентах, которые…
-
Выполняем задачи по расписанию с Quartz и Spring Boot
Представим, что нужно написать функцию, которая должна срабатывать каждый час, день, месяц и выполнять бизнесовую задачу: housekeeping базы данных, рассылку почты, расчёт метрик, составление отчетов по накопившемся данным.При этом известно, что разрабатываемое приложение должно работать корректно при работе нескольких копий (инстансов) одновременно. Другими словами, должна сохраняться возможность горизонтального масштабирования приложения.На мой взгляд, любой грамотный разработчик…
-
HTML, CSS: важен ли порядок названий классов CSS в атрибуте «class» HTML-элементов
У HTML-элементов на HTML-странице может быть необязательный глобальный атрибут class. Например:<div class=»имя-класса1 имя-класса2 имя-класса3″> Какой-то текст. </div>Здесь у HTML-элемента div есть интересующий нас атрибут class.С точки зрения стандарта языка HTMLПо действующему стандарту языка HTML атрибут class HTML-элементов должен содержать значение, состоящее из набора (множества) названий (токенов) классов CSS, разделенных пробельными символами (символ пробела, символ горизонтальной табуляции, символы новой строки). В примере выше атрибут class содержит…
-
Язык Go Excel API Excelize выпущен версии 2.6.1
Excelize — это библиотека, написанная на чистом Go, предоставляющая набор функций, которые позволяют записывать и читать файлы XLAM / XLSM / XLSX / XLTM / XLTX. Поддерживает чтение и запись электронных таблиц, созданных в Microsoft Excel 2007 и более поздних версиях. Поддерживает сложные компоненты благодаря высокой совместимости и предоставляет потоковый API для генерации или чтения…