
Java *
Объектно-ориентированный язык программирования
Как линуксовый админ управлял детским хором с помощью системы распознавания нот под Ubuntu 16.04. Микрофон и аккорды

[Питер] Встреча JUG.ru с Себастианом Дашнером — Make writing enterprise tests more joyful

Во вторник, 27 августа, через два дня после фестиваля TechTrain, состоится встреча JUG.ru с Себастианом Дашнером (Sebastian Daschner), ведущим Java Developer Advocate в IBM, Java-чемпионом, экспертом в области Enterprise Java, известным спикером и консультантом.
Участие бесплатное, регистрация обязательная. Зарегистрироваться можно тут. Подробная информация о теме встречи и спикере — под катом.
Доклад будет читаться на английском языке.
Тысячи вещей, которые в Java стоило бы поправить с первой версии: большое интервью с Сергеем Куксенко из Oracle

Сергей Куксенко — перформанс-инженер, видевший Java еще версии 1.0. За это время успел поучаствовать в разработке мобильных, клиентских, серверных приложений и виртуальных машин. Производительностью Java занимается c 2005 года и в данный момент в Oracle работает над улучшением производительности JDK. Один из самых популярных докладчиков на Joker и JPoint.
Этот хабрапост — большое интервью с Сергеем, посвященное следующим темам:
- Культ Производительности;
- Когда и что нужно оптимизировать, изначальный дизайн языка и библиотеки;
- Перспективные направления для дальнейшей оптимизации;
- Как можно поучаствовать в разработке и что можно сломать оптимизациями;
- Компиляторные трюки, размещение регистров;
- Можно ли собрать кошку из фарша;
- Когда тесты работают пять дней подряд и прочая бытовуха;
- Как стать перформанс-инженером;
- Подготовка доклада на следующий Joker.
PVS-Studio в гостях у Apache Hive

Последние десять лет движение open source является одним из ключевых факторов развития IT-отрасли и важной ее составной частью. Роль и место open source не только усиливается в виде роста количественных показателей, но происходит и изменение его качественного позиционирования на IT-рынке в целом. Не сидя сложа руки, бравая команда PVS-Studio активно способствует закреплению позиций open source проектов, находя затаившиеся баги в огромных толщах кодовых баз и предлагая для таких проектов бесплатные лицензии. Эта статья не исключение! Сегодня речь пойдет об Apache Hive! Отчет получен — есть на что посмотреть!
Раздельное логгирование методов в Java/logback

Задача
Допустим, нам захотелось логгировать каждый метод некого Java-класса по разному:
- Для каждого метода свой лог-файл,
- … свой формат лога,
- … свой минимальный уровень логгирования,
- формат лога расширяем собственными
%переменными, - возможность обновлять эту конфигурацию на лету.
Введение в Redis с использованием Spring Boot
В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis.

Мы создадим приложение, которое демонстрирует, как выполнять CRUD-операции через веб-интерфейс. Исходный код этого проекта доступен на GitHub.
Что такое Redis?
Redis — это хранилище данных с открытым исходным кодом, для структур данных «ключ-значение», которое можно использовать в качестве базы данных, кэша и брокера сообщений. С точки зрения реализации, хранилища «ключ-значение» являются одними из самых больших и старых представителей в мире NoSQL. Redis поддерживает такие структуры данных, как строки, хэши, списки, множества и отсортированные множества с запросами диапазонов.
Тяжёлое бремя времени. Доклад Яндекса о типичных ошибках в работе со временем

— До Яндекса я работал в других продуктовых компаниях. Это не как фрилансер — написал, сдал и забыл. Приходится очень долго работать с одной кодовой базой. И я, собственно, смотрел, читал, писал много кода на разных языках и увидел много чего интересного. В итоге у меня родилась тема этого рассказа.
Типизируйте уже наконец свой код
Привет хабр!
На днях мне в очередной раз на глаза попал код вида
if(someParameter.Volatilities.IsEmpty())
{
// We have to report about the broken channels, however we could not differ it from just not started cold system.
// Therefore write this case into the logs and then in case of emergency IT Ops will able to gather the target line
Log.Info("Channel {0} is broken or was not started yet", someParameter.Key)
}В коде есть одна довольно важная особенность: получателю крайне хотелось бы знать, что произошло на самом деле. Ведь в одном случае у нас проблемы с работой системой, а в другом — мы просто прогреваемся. Однако модель не дает нам этого (в угоду отправителю, который зачастую является автором модели).
Более того, даже факт "возможно, что-то не так" происходит из того, что коллекция Volatilities пуста. Что в некоторых случаях может быть и корректно.
Я уверен, что большинство опытных разработчиков встречало в коде строки, в которых заключалось тайное знание в стиле "если выставлена эта комбинация флажков, то от нас просят сделать A, B и C" (хотя по самой модели этого не видно).
С моей точки зрения, подобная экономия на структуре классов сказывается крайне негативно на проекте в будущем, превращая его в набор хаков и костылей, постепенно трансформируя более-менее удобный код в legacy.
Важно: в статье я привожу примеры, которые полезны для проектов, в которых несколько разработчиков (а не один), плюс которые будут обновляться и расширяться в течении хотя бы 5-10 лет. Всё это не имеет смысла, если в проекте один разработчик лет на пять, или же если после релиза никаких изменений не планируется. И логично, если проект необходим всего на пару месяцев, нет смысла вкладываться в четкую модель данных.
Однако если же вы занимаетесь долгоиграющим — добро пожаловать под кат.
Профессиональный лексический анализ на регулярных выражениях
Синтаксический анализ текста всегда начинается с лексического анализа или tokenizing-а. Существует простой способ решить эту задачу практически для любого языка с помощью регулярных выражений. Еще одно применение старым добрым regexp-ам.
Quorum blockchain: интеграция в Java код
Здраствуй, Хабр!
Для тех кто интересуется темой блокчейна давно не секрет, что помимо публичных блокчейнов, таких как Ethereum, Bitcoin, Zcash и т.д., существуют также их "enterprise (private)" "братья", которые в кое чем лучше чем публичные сети, а в кое чем проигрывают им. Среди найболее известных сетей, я думаю, можно назвать Quorum (вендор — J.P. Morgan Chase), Pantheon (вендор — PegaSys) и Hyperledger (находиться под управлением The Linux Foundation). Несмотря на то, что существует довольно много публичных решений, бизнес все более интересуеться именно приватными блокчейнами благодаря тому, что они способны обеспечить нужный уровень приватности, транзакции выполняються быстрее и так далее.
Java meetup в Райффайзенбанке
Мы знаем, как важно общаться с людьми из других команд и проектов, иметь возможность спросить совета, обсуждать только что появившиеся технологии и поделиться опытом. Именно поэтому мы открываем двери и приглашаем вас к нам в гости.
Ближайшие события
Использование Conditional в Spring
В этом материале я хочу описать очень полезную, и часто используемую аннотацию Conditional и интерфейс Condition.
Контекст Spring — это огромный контейнер различных бинов, как самого спринга, так и пользовательских. Всегда хочется иметь гибкие инструменты управления этим зоопарком бинов. Аннотация @Conditional как раз и создана для этого.
IntelliJ IDEA 2019.2: поддержка Java 13 Preview, инструменты профилирования, новое окно сервисов и многое другое

Заводим Spring StateMachine
Вступление
В проектах я встречался с тремя примерами, так или иначе связанными с теорией конечных автоматов
- Пример 1. Занимательный
говнокодкод. Занимает уйму времени, на то чтоб понять что происходит. Характерной особенностью воплощения обозначенной теории в коде является довольно лютая свалка, которая местами дико напоминает процедурный код. О том что этот вариант кода лучше не трогать на проекте знает каждый технолог, методолог и продуктолог. Заходят в этот код что-то поправить в случае крайней нужды(когда совсем сломалось), о доработке каких либо фичей речи не идет. Ибо сломать страшно. Второй яркой особенностью, обосабливающий данный тип является наличие могучих таких switch, на весь экран.
На этот счет даже есть шутеечка:
Москва, 9 августа — Backend Stories 4.0
Через неделю, 9 августа (это тоже будет пятница, да), мы проведем наш четвертый Backend-митап. Как обычное, вход бесплатный, трансляция в день мероприятия, и интересные доклады.
Зарегистрироваться можно на этой странице.

А вот о чем мы поговорим.
Знакомство со статическим анализатором PVS-Studio для Java

Отчёт с Java Virtual Machine Language Summit 2019

Сегодня закончился двенадцатый саммит JVM LS. Как обычно, это было хардкорное мероприятие с техническими докладами, посвящёнными виртуальным машинам и языкам, которые на них работают. Как обычно, саммит проходил в Санта-Кларе, в кампусе компании Оракл. Как обычно, желающих попасть сюда существенно больше, чем мест: количество участников не превышает 120. Как обычно, не было никакого маркетинга, только потроха.
Для меня этот саммит уже третий, и каждый раз я посещаю его с большим удовольствием, несмотря на ужасный jetlag. Здесь можно не только послушать доклады, но и познакомиться поближе с известными людьми из мира JVM, поучаствовать в неформальных беседах, позадавать вопросы на воркшопах и вообще почувствовать себя причастным к великим свершениям.
Если вы не попали на саммит, не беда. Большинство докладов выкладывают на YouTube практически сразу послед саммита. Собственно они уже доступны. Чтобы было проще сориентироваться, я опишу здесь вкратце все доклады и воркшопы, на которых удалось поприсутствовать.
Иван Пономарёв про Kafka Streams API на встрече jug.msk.ru
