Рубрика «java» - 94

На этой неделе у JUG.ru Group, скорее всего, выйдет анонс. Пока не скажу чего. Участие в тайных проектах будит креатив, поэтому вот вам очередной ночной видосик про джаву.

Невероятные новости: теперь он не полтора часа длиной, а около 20 минут, и там даже есть что смотреть. Чуть менее чем полностью он состоит из скринкаста. Кто на дух не переносит этой видеодряни и любит потреблять текстовые расшифровки, пришлось запилить много текста после ката. Вэлкам, и да пребудет с вами Джава.
Читать полностью »

Здравствуйте, коллеги!

Из последних известий по нашим планируемым новинкам из области ML/DL:

Нишант Шакла, "Машинное обучение с Tensorflow" — книга в верстке, ожидается в магазинах в январе

Делип Рао, Брайан Макмахан, "Обработка естественного языка на PyTorch" — контракт подписан, планируем приступать к переводу в январе.

В данном контексте мы хотели в очередной раз вернуться к болезненной теме — слабой проработке темы ML/DL в языке Java. Из-за явной незрелости этих решений и алгоритмов на языке Java мы когда-то приняли решение отказаться от книги Гибсона и Паттерсона по DL4J, и публикуемая сегодня статья Хамфри Шейла (Humphrey Sheil) подсказывает, что мы, вероятно, были правы. Предлагаем познакомиться с мыслями автора о том, каким образом язык Java мог бы наконец составить конкуренцию Python в машинном обучении
Читать полностью »

План:

  1. Настройка сервисов в Docker Compose
  2. Регистрация сервисов в Consul’e и добавление переменных в хранилище Consul’a
  3. Makefile
  4. Конфигурация БД
  5. FeignClient
  6. Конец

Данная статья показывает пример того, как поднять локальный development environment с использованием Docker Compose, Consul, Make для Spring Boot-приложения, использующего, например, PostgreSQL и Browserless.

Прилага абсолютно бесполезная: по ссылке возвращает ссылку на наибольшее по размеру изображение. Изображение будет извлекаться Browserless’ом, а в PostgreSQL это дело будет сохраняться.

Читать полностью »

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

Кому интересно, как мы это сделали, и какие «побочные» эффекты мы словили, прошу заглянуть под кат.
Читать полностью »

Go to GOTO - 1
Привет! Меня зовут Григорий Кузовников. Я работаю Senior Backend Engineer в компании FunCorp. Недавно я начал заниматься машинным обучением. Спросить что-то напрямую не у кого, приходится всё искать в интернете. Поэтому хотелось сходить на какую-нибудь профильную конференцию и послушать, как вообще использовать машинное обучение в бою. Сразу ничего профильного я не нашёл, однако на GOTO Berlin было много тем по машинному обучению, поэтому и решил посетить именно её. Под катом небольшой обзор этой конференции и много фотографийЧитать полностью »

image

Здесь я расскажу об устройстве одного из многих инструментов, которые помогают в разработке различных сервисов для проекта Одноклассники. Внутри компании мы называем его «Hot Code Replace» (HCR), и предназначен данный инструмент для исправления критических и несложных багов в работающих продакшн сервисах без их остановки. Это чрезвычайно важная особенность, так как позволяет избежать достаточно занудного и трудоёмкого процесса выкладывания новой – исправленной версии барахлящего сервиса, избежать сопутствующей этому достаточно продолжительной паузы в доступности каждого хоста, избежать сброса кешей.

В общем, экономит массу времени и уменьшает интервал от момента обнаружения ошибки до исправления с часов до минут. Чаще всего, как и было задумано, исправляют мелкие ошибки в коде, например, программист забыл проверить на null и у некоторых пользователей определённые действия на сайте приводят к ошибке. То есть когда исправление осуществляется изменением нескольких строчек внутри метода. И ради таких мелких изменений больше не нужно отвлекать коллег и ждать часами выкладки на продакшн.
Читать полностью »

Java Challengers #2: Сравнение строк

У нас как всегда много опаздывающих к началу курса, так что только вчера провели второе занятие среди нового потока "Разработчик Java". Но это так, мелочи жизни, а пока что мы продолжаем публикацию серии статей Java Challengers, перевод которых подготовили для вас.

В Java класс String инкапсулирует массив char (прим. переводчика — с java 9 это уже массив byte, см. Компактные строки в Java 9). Говоря по простому, String — это массив символов, используемый для составления слов, предложений или других конструкций.

Инкапсуляция — это одна из самых мощных концепций объектно — ориентированного программирования. Благодаря инкапсуляции вам не нужно знать как работает класс String. Вам достаточно знать методы его интерфейса.

Читать полностью »

Конференция ThinkJava #8 в Харькове - 1

Мы не станем рассказывать про уникальность нашего мероприятия, так как собираемся презентовать доклады, а не единорогов. Не будем заманивать вас плюшками в стиле сертификатов и промокодов. Не запилим смешной сайт и не закажем кофебрейк на Копи Лювак. Мы слишком заняты тем, что готовимся к восьмой “Джаве”, репетируем доклады, следим, чтобы в них не было воды, а только максимум информации по делу и исключительно на основе реальных проектов. Так вот, если вам интересны знания, на ThinkJava #8 ими будут делиться 2 спикера :).
Читать полностью »

Сегодня многие разрабатывают enterprise-приложения на Java с использованием spring boot. В ходе проектов часто возникают задачи по созданию поисковых систем разной сложности. Например, если вы разрабатываете систему, хранящую данные о пользователях и книгах, то рано или поздно в ней может потребоваться поиск по имени/фамилии пользователя, по названиям/аннотациям для книг.

Как начать работать с Hibernate Search - 1

В этом посте я вкратце расскажу об инструментах, которые могут помочь в решении таких задач. А затем представлю демо-проект поискового сервиса, где реализована более интересная и сложная фича — синхронизация сущностей, БД и поискового индекса. На примере этого демо-проекта вы сможете познакомиться с Hibernate Search — удобным способом общения с полнотекстовыми индексами Solr, Lucene, ElasticSearch.
Читать полностью »

Multi-release JARs — Плохо или хорошо? - 1

От переводчика: мы активно работаем над переводом платформы на рельсы Java 11 и думаем над тем, как эффективно разрабатывать Java библиотеки (такие как YARG) с учётом особенностей Java 8 / 11 так, чтобы не пришлось делать отдельные ветки и релизы. Одно из возможных решений — multi-release JAR, но и тут не всё гладко.

Java 9 включает новую опцию Java-рантайма под названием multi-release JARs. Это, возможно, одно из самых противоречивых нововведений в платформе. TL;DR: мы считаем это кривым решением серьезной проблемы. В этом посте мы объясним, почему мы так думаем, а также расскажем, как вам собрать такой JAR, если вам сильно хочется.

Multi-release JARs, или MR JARs, — это новая функция платформы Java, появившаяся в JDK 9. Здесь мы подробно расскажем о значительных рисках, связанных с использованием этой технологии, и о том, как можно создавать multi-release JARs с помощью Gradle, если вы ещё хотите.

По сути, multi-release JAR — это Java-архив, включающий несколько вариантов одного класса для работы с разными версиями среды исполнения. Например, если вы работаете в JDK 8, среда Java будет использовать версию класса для JDK 8, а если в Java 9, используется версия для Java 9. Аналогично, если версия создана для будущего выпуска Java 10, рантайм использует эту версию вместо версии для Java 9 или версии по умолчанию (Java 8).

Под катом разбираемся в устройстве нового формата JAR и выясняем нужно ли это всё.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js