С одной стороны, GraphQL схема однозначно определяет модель данных и доступные операции реализующего ее сервиса. С другой, Kotlin предоставляет потрясающие возможности для создания предметно-ориентированных языков (DSL). Таким образом, возможно написать предметно-ориентированный язык для взаимодействия с GraphQL сервисом в соответствии с опубликованной схемой. Но, написание такого кода вручную, это сизифов труд. Лучше его просто генерировать. И в этом нам поможет плагин Kobby. Он анализирует GraphQL схему и генерирует клиентский DSL.
Java разработчик
GraphQL + SPQR + Spring Boot Starter 2021
GraphQL + SPQR + Spring Boot Starter 2021
GraphQL — это язык запросов к API-интерфейсам. Он отображает предоставляемые сервером данные, чтобы клиент смог выбрать именно то, что ему нужно. GraphQL SPQR призван упростить добавление GraphQL API в любой Java-проект. SPQR работает, динамически генерируя схему GraphQL из кода Java по средствам аннотаций. Перейдем к самой сути!
Глубокое ранжирование для сравнения двух изображений
Алгоритм Deep Ranking
Понятия "сходства двух изображений" — введено не было, поэтому давайте введем данное понятие хотя бы в рамках статьи.
Сходство двух изображений — это результат сравнения двух изображений по определенным критериям. Его количественная мера определяет степень сходства между диаграммами интенсивности двух изображений. С помощью меры сходства сравниваются какие-то признаки, описывающие изображения. В качестве меры сходства обычно применяется: расстояние Хемминга, евклидово расстояние, расстояние Манхэттена и т. д.
Глубокое обучение для идентификации картин
Привет, Хабр! Сегодня я хочу рассказать о том, как глубокое обучение помогает нам лучше разобраться в искусстве. Статья разбита на части в соответствии с задачами, которые мы решали:
- поиск картины в базе данных по фотографии, сделанной мобильным телефоном;
- определение стиля и жанра картины, которой нет в базе данных.
Все это должно было стать частью сервиса БД Артхив и его мобильных приложений.
Задача идентификации картин состояла в том, чтобы по изображению, приходящему от мобильного приложения, найти в базе данных соответствующую картину, затратив на это менее одной секунды. Обработка целиком в мобильном устройстве была исключена на этапе предпроектного исследования. Кроме того, оказалось, что невозможно трудно гарантированно выполнить на мобильном устройстве отделение картины от фона в реальных условиях съемки. Поэтому мы решили, что наш сервис будет принимать на вход фотографию с мобильного телефона целиком, со всеми искажениями, шумами и возможным частичным перекрытием.
Поможем Даше найти эти картины в базе из более чем 200 000 изображений?
Новое в Spring 5. Миграция проекта на Spring 5
В прошлый раз это был JUnit 5 за 10 мин., в этот раз будет Spring 5.
Когда говорят о новом в Spring 5, в основном начинают говорить про реактивный стек, опуская достаточно много того нового, что в нем появилось помимо него. Реактивных драйверов к базам данных совсем немного, поэтому мой видеообзор про остальные важные обновления, надеюсь, будет актуально для большинства пользователей Spring. Кроме того, вместе со Spring 5.x обновляются и все его зависимости: spring-data 2.x, spring-security 5.x. В январе этого года наш учебный проект Spring 5/JPA Enterprise (Topjava) мигрировал со Spring 4.3.x на Spring 5. Процесс прошел достаточно легко и в конце небольшого видео на 10 минут я также приведу все изменения в коде проекта.
И снова о лени
Как известно «лень — двигатель прогресса», самое полезное качество программиста, благодаря ей появилось множество замечательных фреймворков и так далее, и тому подобное. Но сегодня я хочу написать не про человеческую лень.
Пару недель назад мне попалась на глаза статья о черновом наброске фичи, новом модификаторе lazy для final полей. И конечно, инициализация логгеров приведена как самый наглядный пример, когда бы эта фича пригодилась. Нет, никто не спорит, конечно логгеры это overhead, создавать их во время старта, потом еще в памяти держать. Брр. Но неужели нельзя написать элегантный
Абстрактный CRUD от репозитория до контроллера: что ещё можно сделать при помощи Spring + Generics
На выходе мы получаем транспортную систему, для добавления в которую новой сущности нужно будет ограничиться инициализацией одного бина в каждом элементе связки репозиторий-сервис-контроллер.
Облачное хранилище и консольные FTP-клиенты
Об особенностях работы с нашим хранилищем по FTP мы уже писали. Сегодня мы затронем более узкую и специальную тему и обсудим особенности работы с хранилищем с помощью консольных FTP-клиентов, довольно часто используемых для организации резервного копирования и архивирования.
Все эти клиенты отличаются своеобразным и довольно сложным синтаксисом команд. Чтобы наши пользователи не испытывали трудностей и не тратили время на поиск по мануалам при написании соответствующих скриптов, мы решили составить небольшую шпаргалку с примерами команд для выполнения наиболее распространенных операций:
- загрузки файлов в хранилище;
- скачивания файлов с возможностью возобновления при отмене или обрыве соединения;
- синхронизации локальных файлов с файлами в хранилище и наоборот.
Многопоточный сервер на C# за 15 минут
Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP
Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.
В этой статье мы начнем с самых базовых аспектов сетевого программирования — приема и передачи данных по сети. Прием и передача данных — это основная и наиболее простая часть из всего круга задач, которыми занимаются сетевые программисты, но часто бывает сложно определить, каким путем лучше двигаться. Уделите этой части достаточно внимания — если у вас останется непонимание, то это может привести к ужасным последствиям для вашей многопользовательской игры в дальнейшем!
Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Обнаружение объектов методом Оцу
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу.
Information
- Rating
- Does not participate
- Location
- Белгород, Белгородская обл., Россия
- Date of birth
- Registered
- Activity