Pull to refresh
-1
0.8
Send message

Пагинация. Нестандартное использование Spring’овых Page и Pageable

Reading time 5 min
Views 4.4K

Привет, Хабр! На связи Николай Пискунов, ведущий разработчик в подразделении Big Data. В прошлый раз в блоге beeline cloud я рассказывал о Spring Data JPA и Hibernate — поднимал вопрос решения проблемы динамически изменяемого запроса к базам данных. В этой статье я покажу, как применить спринговую пагинацию на интерфейсе List<>. 

Читать далее
Total votes 7: ↑5 and ↓2 +3
Comments 3

SALMONN — универсальная модель для всех типов аудиоданных

Level of difficulty Medium
Reading time 7 min
Views 3.3K

Человек без труда воспринимает речь на фоне тихой музыки и звуков окружающей среды. Более того, прямо во время разговора он может мысленно подпевать и реагировать на звуки. До недавнего времени нейросети так не умели. Одни были заточены на распознавание речи, другие — на обработку музыки, а третьи — на анализ различных звуковых событий. Всё изменилось с появлением работы китайских исследователей, создавших единую мультимодальную модель SALMONN. Это нейронная сеть с открытым исходным кодом, предназначенная для обработки аудиоданных любого типа: речи, музыки и различных звуков.

В этой статье мы рассказываем об особенностях SALMONN на основе научной публикации его разработчиков.  Адаптировать материал помогли наши эксперты в области обработки и синтеза речи. Перевод и разбор препринта о SALMONN выполнен исследователем лаборатории больших данных и статистики компании «Криптонит» Анной Холькиной.

Ключевой идеей проекта SALMONN стала интеграция большой языковой модели (LLM) с двумя энкодерами: одним из модели Whisper для восприятия речи и другим (BEATs) для остальных звуков. В качестве предобученной LLM используется Vicuna, созданная на основе модели LLaMA с 13 миллиардами параметров и обученная на данных лучших диалогов с ChatGPT (также авторы SALMONN выпустили версию своей модели на основе Vicuna с 7 миллиардами параметров).

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 1

Быстрый старт. SpringBoot + RabbitMQ

Level of difficulty Easy
Reading time 4 min
Views 5.8K

Было уже достаточно туториалов на тему Rabbit + Spring. В данной статье чуть обновленно описание быстрого запуска очередей. Если ты только начинаешь разбираться с очередями добро пожаловать подcast.

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 2

Основы полнотекстового поиска в ElasticSearch. Часть первая

Level of difficulty Medium
Reading time 5 min
Views 14K

Привет! Меня зовут Глеб, я разработчик команды продукта «Сервис персонализации» в SM Lab. В цикле из трех постов я расскажу про основы полнотекстового поиска в Elasticsearch.

Данный цикл статей предназначен для всех, но будет особенно актуальным для тех читателей, кто только начинает свое знакомство с Elasticsearch. Я надеюсь, каждый из вас найдет что-то полезное для себя.

В первой части обсудим самые базовые понятия Elasticsearch. Во второй части разберем механизмы анализа текста и полнотекстового поиска. В заключительной части взглянем на стандартную модель ранжирования документов в Elasticsearch.

Итак, начнём с самых базовых понятий.

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 1

Повторная передача сообщений в Spring Kafka

Level of difficulty Easy
Reading time 9 min
Views 7.9K

В статье рассмотрена тема обработки ошибок в Spring Kafka, а так же основные параметры и настройки, которые необходимо учесть при настройке конфигурации.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Reading time 15 min
Views 44K

Организация работы с токенами в клиентской части веб‑приложений — тема, которая на слуху давно и многократно обсуждалась, однако далеко не для всех современных веб‑приложений все еще оцениваются риски в этой части, что приводит к уязвимым реализациям.

В статье рассмотрим причины необходимости работы с токеном на клиенте веб-приложений, узнаем ,что лучше для хранения токена: localStorage, sessionStorage или cookie без флага HttpOnly (спойлер, ничего из этого), а также посмотрим на меры воздействия, которые можно использовать для снижения риска утечки токена посредством различных уязвимостей.

Надеюсь, что данная статья будет полезна разработчикам, тестировщикам, аналитикам и архитекторам, в ней постарался рассмотреть вопрос с разных точек зрения и собрать широкую картину.

Читать далее
Total votes 44: ↑42 and ↓2 +40
Comments 40

Несколько советов по работе с CORS для начинающих разработчиков

Reading time 8 min
Views 63K

В этой статье мы с вами разберемся, что такое CORS, CORS-ошибки и из-за чего мы можем с ними сталкиваться. Я также продемонстрирую возможные решения и объясню, что такое предварительные (preflight) запросы, CORS-заголовки и в чем заключается их важность при обмене данными между сторонами.

Эта статья рассчитана на тех, у кого уже есть базовые познания в области веб-разработки и некоторый опыт с протоколом HTTP. Я старался писать статью так, чтобы она была понятна и новичкам, будучи наполненной знаниями, но при этом стараясь избегать слишком большого количества технических нюансов, не связанных с темой CORS.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 2

Redux в Angular. Туда и обратно

Reading time 29 min
Views 6.9K

Пару лет назад из каждого утюга можно было услышать про redux. Сейчас redux является чем-то обыденным в фронтенд разработке. На пороге 2023 года я хочу поделиться своим опытом использования redux в Angular, поговорить о разных реализациях, и рассказать к каким выводам я пришел за это время.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 8

Как найти утекшие объекты в дампах памяти Chrome DevTools

Reading time 5 min
Views 5.2K

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

Читать далее
Total votes 12: ↑10 and ↓2 +8
Comments 3

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

Reading time 11 min
Views 12K

Всем привет, хабровчане и гости сайта

Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.

Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.

Как получилось в итоге:
в корне проекта лежит баш скрипт, который принимает переменные окружения, которые нужны для запуска бекенда и базы данных. Там внутри никаких захардкодженных данных нет, что позволяет нам запускать где угодно и с какими угодно настройками.

Путь к этому был сложен и тернист для меня. С большой вероятностью можно было сделать легче и проще, если б я занимался этим каждый день, но сделал как умел и как предполагал возможным. Поэтому все, кто имеет что сказать поэтому поводу, приглашаются в комментарии.

Дело было так...
Total votes 10: ↑7 and ↓3 +4
Comments 21

Для чего вам нужен Terraform? Статья и обучающее видео

Reading time 5 min
Views 26K

Всем большой привет. Меня зовут Виктор, и я DevOps-инженер в команде Nixys. Мы решили выложить обучающее видео, которое будет полезно новичкам в мире DevOps. Тема сегодняшнего туториала - “Знакомство с Terraform”. Также под ссылкой на видео мы поделимся наиболее важными, на наш взгляд, преимуществами этого инструмента.

Читать далее
Total votes 9: ↑6 and ↓3 +3
Comments 20

Как мы обложились запросами и ускорили ElasticSearch: чиним товарный каталог СберМегаМаркет

Reading time 13 min
Views 8.4K

Косметика в разделе с гаджетами, садовые лопаты в зоотоварах и непредсказуемо меняющиеся цены. Эти баги портили жизнь покупателям и сводили с ума разработчиков, ведь с ними ничего нельзя было поделать, но только до определенного момента.

Здравствуй, Хабр! Меня зовут Никита Вахрамеев, я работаю ведущим разработчиком в команде, которая занимается бэкендом витрины СберМегаМаркет. Основные направления нашей работы — листинги (каталоги товаров) и карточки товаров. В этом посте мы проведем небольшое расследование, погрузимся в нюансы шардирования и кэширования в ElasticSearch и исправим проблемы в каталоге на 16 миллионов товаров.

Внимание спойлер: индексы, во всем виноваты индексы!

Читать далее
Total votes 21: ↑21 and ↓0 +21
Comments 15

Apache Kafka для магазинов

Reading time 10 min
Views 8.7K

Всем привет! Меня зовут Игорь, я работаю системным архитектором в CSI. Хочу поделиться историей появления в нашем стеке технологий надежного и универсального брокера сообщений. Расскажу, как и для чего мы его используем, поделюсь полезными нюансами и примером с сетью Fix Price. Статей про Apache Kafka уже более, чем достаточно, но наш кейс немного отличается от стандартного использования. Надеюсь, опыт пригодится кому-то ещё.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 10

Особенности разработки для WatchOS приложений для здоровья

Reading time 11 min
Views 3.1K

Достаточно плотно разработкой программного обеспечения для часов я занимаюсь с 2017 года. За этот период сменилось 4 версии WatchOS (5, 6, 7, 8). Появилось больше функционала и исправлено множество баг с внедрением каждой новой версии Swift. Complications стали более самостоятельной частью приложения.

За 5 лет работы в сфере разработки приложений для часов мне пришлось столкнуться с множеством различных проблем и задач. Я хотел бы поделиться опытом и получить критические замечания относительно проделанной работы. Заранее сделаю оговорку, что решения, используемые в моей разработке, не претендуют на истинно верные. Не буду спорить, что что-то можно было бы сделать по-другому и лучше.

Читать далее
Total votes 1: ↑1 and ↓0 +1
Comments 6

Архитектура архитектуры архитектора

Reading time 6 min
Views 21K

Архитектор – это звучит… Звучит как-то не понятно. Наверное, поэтому всегда добавляют что-то. Ну типа «системный архитектор» или там «программный архитектор». Не то чтоб так стало понятно, что он делает, но точно кто-то важный. Я вообще пишу «архитектор информационных систем и программного обеспечения». Это ж как назовёшься -так и поплывешь! С архитекторами тут вообще такое дело – это как бы и не профессия. Ведь архитектором как стать? Либо тебя назовут таковым, либо сам назовёшься. Другого пути нет. Ни школы, ни спец. образования, никаких то там универсальных сертификатов нету. Только название и есть.

А раз оно есть – значит зачем-нибудь нужно! А нужно чтоб как-то указать на необходимость главного элемента мозаики – архитектуры. А раз нужен элемент, то за него, конечно, должен кто-то да отвечать. А раз должен, то вот и появляется такая должность.

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

Чтоб избежать проверенного классического сценария «много, дорого, бестолково» нужны ориентиры. Пунктир намеченного пути на карте требований и функционала. Это не красота и элегантность рисунков Леонардо, и не лабиринты цвета Поллока. Архитектура вообще не про искусство. Нет, все любят, когда красиво. Вот я бы строил дом, тоже бы хотел не бетонную коробку, а чтоб в вечность. Но у вечности, однако свои расценки. Так что даже Джи-мэн с кейсом полным золота хочет хайп и тренды, но строго в бюджет. Архитектура даёт парадигму.

Read more
Total votes 33: ↑26 and ↓7 +19
Comments 26

Понимание утечек памяти в Java

Reading time 11 min
Views 37K

Одним из основных преимуществ Java является автоматизированное управление памятью с помощью встроенного сборщика мусора (или сокращенно GC). GC неявно заботится о выделении и освобождении памяти и, таким образом, способен решать большинство проблем, связанных с ее утечкой.

Хотя GC эффективно обрабатывает значительную часть памяти, он не гарантирует надежного решения проблемы с ее утечкой. GC достаточно умен, но не безупречен. Утечки памяти все еще могут закрасться даже в приложения, созданные добросовестным разработчиком.

По-прежнему возможны ситуации, когда приложение создает значительное количество лишних объектов, расходуя ресурсы памяти, что иногда приводит к его полному отказу.

Утечки памяти — это настоящая проблема в Java. В этом руководстве мы рассмотрим, каковы потенциальные причины утечек, как распознавать их в рантайме и как справиться с ними в нашем приложении.

Читать далее
Total votes 13: ↑11 and ↓2 +9
Comments 21

Перевод Курса по стартапам и бизнесу от Стэнфордского Университета. Лекция №5. Конкуренция—это удел лузеров. Питер Тиль

Reading time 2 min
Views 6.3K

В этой небольшой статье я хочу кратко описать содержимое лекции №5 - Конкуренция — это удел лузеров. (Питер Тиль) из курса по стартапам и бизнесу от Стэнфордского Университета.

Читать далее
Total votes 5: ↑3 and ↓2 +1
Comments 3

Что нужно знать о популярных JS-фреймворках

Reading time 22 min
Views 76K

Привет! Меня зовут Дима Чудинов, я наставник на веб-факультете Яндекс.Практикума, Head of Group, Front-end, ABBYY.


Студенты недавно задали мне вопрос: «Что лучше: Angular или React?». Я начал отвечать и понял, что мне понадобится для этого статья. Позже я понял, что и одной статьи не хватит.


О том, какой фреймворк выбрать, я расскажу в другой раз. А в этой статье опишу историю создания фреймворков и их особенности. Выбрать рабочий инструмент статья не поможет. Зато поможет вести споры с другими разработчиками на кухне (если не будет карантина) и в сети. Статья будет полезна новичкам, которые только начинают своё знакомство с фреймворками и библиотеками, и поможет взглянуть на «зоопарк» веб-технологий сверху.


Читать дальше →
Total votes 64: ↑60 and ↓4 +56
Comments 113

Кому рецепты для электронной коммерции? Для SAP Commerce и не только

Reading time 16 min
Views 5.8K
Моё хобби ― автоматизация онлайн-ритейла. Уже много лет даже в свои выходные я не вылезаю из этого «болота». Да, наверное, это звучит дико и даже смешно. Как можно увлекаться таким скучным делом? — скажут одни. Что там увлекаться, это просто какая-то частная тема для уважающего себя архитектора ПО! — скажут другие.

Действительно, на первый взгляд, это, как говорится, недиссертабельная тема. Фактически, это сборная солянка из разных тем, тем или иным образом притащенных в e-commerce. И в итоге оказалась ровно тем, что я люблю: интеграция технологий.

И вот с 2016 я веду техноблог, hybrismart.com. Такая «хабра» в миниатюре, только на английском и с фокусом на близкую мне тему — разработку на SAP Commerce. У нас тут сформировалась небольшая компания из нескольких десятков тысяч авторов, но в блог пока что пишет только часть из них. Ну, хорошо, пишут пока немногие. Десяток. Но мы стараемся. В блоге уже накопилось под две сотни статей, преимущественно больших и очень больших на самые разные темы, тем или иным боком относящиеся к ecom. В существенной части это всё-таки персональный блог, поэтому отдуваюсь тут я, а не наша пиар-служба. Но это от души, правда.

Как легко догадаться из названия, hybrismart — про хайбрис (что это такое?). И почти все, кто его находит, знают о хайбрисе не понаслышке. Ну и наоборот: наверное, каждый разработчик на hybris хотя бы раз в блог заходил (конечно, не по доброй воли, нам гугл помогает!). Теперь вот и вы зашли. И чтобы вы там не потерялись, хочу провести небольшую экскурсию. Задавайте, пожалуйста, вопросы в самом конце.

Читать дальше →
Total votes 3: ↑2 and ↓1 +1
Comments 1

Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок

Reading time 6 min
Views 32K


В нашем блоге мы много пишем о построении карьеры в ИТ в разных странах, поиске работы, отличиях в процессе собеседований крупных компаний. В сегодняшней статье мы пойдем дальше и раскроем тему так называемых интервью по system design – это один из этапов собеседований известных технологических компаний, на котором отсеиваются многие кандидаты.

Итак, что такое system design и как пройти интервью такого типа?
Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Comments 2
1

Information

Rating
1,405-th
Registered
Activity

Specialization

Backend Developer, SAP Hybris developer
Senior
From 100,500 €
JavaScript
Java
Java EE
Java Spring Framework
GWT
Vaadin
SQL
PostgreSQL
Hibernate
SAP Hybris