-
Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков
-
Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!
-
В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.
-
Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.
-
Прямо сейчас мы находимся в процессе перехода с HTTP на HTTPS на основных ресурсах вроде Maven Central и Bintray. По ссылке описано, кто выключил HTTPS (и тем не менее, на момент написания статьи, 21% загрузок с Sonatype Maven Central использовали HTTP, выводы делайте сами). Подробности проблемы, зачем всё это нужно — по ссылке.
-
Вышел Git 2.25. Из интересного — появилась команда для так называемых sparse checkouts, особенно полезных для гигантских монорепозиториев. Если коротко, это просто паттерны пути до файлов, которые будут приводить к частичному клонированию репозитория. Прочитать подробней об управлении жирными репозиториями можно на сайте Atlassian. На самом деле, sparse checkouts были с нами довольно давно, но теперь появилась отдельная команда sparse-checkout.
-
Groovy 3.0 продолжает готовиться, 12 числа вышел свежий третий релиз-кандидат. Задачи там простые: закрыть проблемы со свежими версиями Java, добавить лямбды в джавовом же стиле, новый do-while и улучшенный for, try-with-resources и тому подобное.
-
Google продолжает тёрки с Oracle. Следующее слушание — в марте этого года. Джошуа Блох вместе с ещё 38 известными учеными в области компьютерных наук выступил на стороне Google. Подробный документ здесь.
- Сергей Егоров bsideup поделился результатами рожденственского хакатона: https://cimate.io/ — это новый способ взаимодействовать с CI, смотреть результаты тестов и историю с помощью API.
-
Вышел Quarkus 1.1.0.Final. Доработана поддержка Kotlin и Gradle, багфиксы.
-
Вышел Yasson (JSON-B) 1.0.6 — фреймворк-прокладка между Java-классами и JSON-документами. Что-то вроде JAX-B, но только для JSON. Является официальной референсной реализацией JSON Binding (JSR-367). 411 коммитов на GitHub, 125 звёздочек, 28 контрибьюторов.
-
Вышла библиотека imgui-java — библиотека с Java-биндингами для Dear-ImGui — минималистичной библиотеки для создания UI для C++, на которой зачастую делают админки в играх. Сама imgui-java (кроме исходников под правильной лицензией Apache License 2.0) выложена в виде бинарников без каких-либо зависимостей, то есть сам Dear-ImGui уже лежит в комплекте. Конечно, если понадобится рендерер LWJGL3, придётся добросить в топку дополнительного мусора.
-
Вышел EvoMaster — инструмент для автоматической генерации системных тестов для RESTful APIs на платформах Java и Kotlin. Две тысячи коммитов и пять подготовительных релизов (версии 0..) говорят, что автор настроен серьёзно. У проекта 4 контрибьютора, а вот звёздочек-вочей-форков и прочих показателей статусности пока совсем мало.
-
Вышла небольшая утилита Kafkaer — она нужна для автоматизации создания/обновления топиков и конфигов Кафки в нескольких средах. Суть в том, что делаются шаблонные конфиги, и управляется это всё properties-файлами. 54 коммита, 17 звездочек — ну как, кто рискнёт это попробовать? :-)
-
Еще одна полезняшка, jMathPaper — небольшой калькулятор со свинговым интерфейсом, имитирующий написание заметок на бумаге. Разработка понемногу идёт, недавно автор выпустил какое-то обновление.
-
Юзер RoPi0n на Хабре опубликовал новость о продолжении развития экспериментального языка Mash. Компилятор генерит ассемблер для стековой виртуальной машины, и сейчас автор работает над генератором для Java (целевая платформа — JDK 1.8).
-
Сергей Мерзляков анонсировал Installmation — генератор инсталляторов для Java 11 и выше. Код есть на GitHub под Apache 2.0, для самой свежей версии выложены бинари.
Исследования:
- Google AI опенсорснули A Lite Bert (ALBERT), модель для deep-learning natural language processing, использующую на 89% меньше параметров, чем BERT, лишь незначительно уступая в эффективности. Используется архитектура sparse transformers. Пейпер лежит на arXiv, официальная презентация будет на International Conference on Learning Representations. Пока есть реализация только для Tensorflow (Python), лежит на GitHub.
Сервисы:
-
GitHub анонсировал GitHub for Android, сервис пока находится в бете. Это нативное приложение со светлой и тёмной темой, позволяющее управлять интерфейсом с помощью привычных на мобильном жестов (например, можно свайпнуть ишшую, чтобы отложить её на будущее или пометить как выполненную). Имхо, большая фича, сейчас мобильный экспиренс гитхаба — сплошная боль.
-
Google выводит на рынок бета-версию виртуальных машин общего назначения, которые предлагается гонять на Google Cloud Platform для работы с Google Compute Engine. Ранее Google объявил о двух классах машин: C2 (оптимизированных на вычисления) и N2 (общего назначения), E2 — это дополнение к линейке, фишка — они могут иметь разные пресеты по CPU/RAM и даже запускаться как preemptible VM (короткоживущие виртуалки для обработки батчей или чего-то устойчивого к падениям). Весь смысл в тарифах, поэтому нужно идти в статью и смотреть табличку c конфигурациями (12 + 3).
-
Apple, Google, Amazon и Zigbee Alliance создают свой стандарт умного дома. Подробности по ссылке. Важно, что это open source, и хотя они не самые большие фанаты Free Software, но хотя бы использование их работы будет бесплатным (в смысле, royalty-free). Это будет какой-то протокол на основе IP, объединяющий железо умных домов, мобилки и облака. Сейчас можно посмотреть на HomeKit Accessory Development Kit (ADK) от Apple. Google пообещали выложить часть OpenWeave, один из основных кирпичиков — это OpenThread. Zigbee Alliance — это Samsung SmartThings, Schneider Electric, Signify (ранее — Philips Lighting), IKEA, NXP Semiconductors и разные другие компании, которые разрабатывают высокоуровневые беспроводные протоколы для устройств с экономным потреблением энергии и трафика.
Java как язык и платформа:
-
Вышла пачка новых версий Java (инфа с сайта Oracle (JDK 13.0.2, 11.0.6, 8u241, and 7u251)): JDK 13.0.2, 11.0.6, 8u241, and 7u251. Надо отметить, что сборки JDK поставляет не только Oracle, а еще куча компаний, например, вот вам Liberica JDK 13.0.2 российской компании BellSoft. Остальные места, где можно скачать JDK, перечислены на моей страничке https://jdk.dev.
-
Вышел GraalVM версии 19.3.1. Кроме багфиксов, Ruby обновилось до 2.6.5, а Node.js — до 12.14.0. Это довольно свежая версия Ноды, на неё даже нет тайпингов в Microsoft Type Search — круто, что GraalVM так мощно показывает серьезность своих намерений в деле покорения вселенной JavaScript.
Eclipse:
-
У Eclipse Foundation обновился устав. Анонс здесь, PDF-ка с текстом доступна здесь.
-
Майк Милинкович (исполнительный директор Eclipse Foundation) торжественно объявил о публикации плана релизов Jakarta EE 9. В нем не подразумевается новых спецификаций, но предлагается почистить неймспейс jakarta, выбросить оттуда мусор вроде deprecated, ну и конечно — полностью поддержать Java 11.
-
Adam Bien (автор книг, заседатель в JCP, итп) выложил в Maven Central архетип для быстрого старта разработки на Jakarta EE 8. Если лень читать, телеграфирую: mvn archetype:generate -DarchetypeGroupId=com.airhacks -DarchetypeArtifactId=jakartaee-essentials-archetype
-
Вышла Piranha 20.1.2 — это рантайм Jakarta EE и MicroProfile для применения в облаке, находится на ранних стадиях разработки. Сайт здесь. До этого авторы публиковали короткую статью «Piranha Micro getting more compatible», в которой выложили результаты прогона тестов совместимости с Java EE 7.
-
Вышел Eclipse Dirigible v4.2. Это некая Cloud Development Platform, прочитать о безмерных преимуществах которой можно вот здесь. Эта штука с нами уже довольно давно, самая последняя версия 3.0.0 из доступных на GitHub датируется 2017 годом, у нее два десятка контрибьюторов, из которых основной вклад внесли первых три.
Spring:
-
Вышли выпуски «This Week in Spring» Джоша Лонга: за 14 января, новогодний выпуск за 7 января.
-
Отдельно хочется выделить «This Decade in Spring — Happy New Year Edition» — новогодняя статья Джоша Лонга, появившаяся то ли 31 декабря, то ли 1 января, как считать.
Приехала пачка обновлений Spring:
-
Вышли Spring Framework 5.2.3, 5.1.13, 5.0.16 и 4.3.26. В Хабр не поместится столько букв, чтобы перечислить все изменения, но в 5.2.3 — 20 коммитов, ими закрыто около 63 тикетов.
-
Последняя версия Spring Boot — 2.2.3. Ченжлог можно посмотреть здесь, объем релиза — 377 коммитов и 75 тикетов (включая баги, фичи, документацию и просто обновления в таблице зависимостей).
-
Предыдущая линейка Spring Boot обновилась до 2.2.1. Ченжлог здесь: дикие 3297 коммитов, 39 штук всевозможных улучшений.
-
Вышла Spring Data версии Moore SR4 и Lovelace SR15. 59 и 34 исправленных тикета соответственно, подробности — в анонсе.
-
Вышла Spring Integration AWS 2.3.1 & Spring Cloud Stream Kinesis Binder 2.0.1, это просто багфиксы, подробности по ссылке.
-
Вышел Spring Security 5.3.0.M1, изменения в SAML и OAuth 2.0, подробности по ссылке.
Стримы и подкасты:
-
Adam Bien (известный автор книжек по JavaEE, заседатель в разных экспертных группах JCP и т.п.) запилил несколько очередных стримов. В одном из них он препарирует WildFly 18 и Quarkus и сравнивает утилизацию памяти на примере приложения под microprofile. Другой посвящён CSRF, XSS, JWT, Reactive Databases, TX and WebSockets, JSON-B. А ещё он же выпустил очередной подкаст про JavaFX. Вообще, Адам очень сильно активизировался, написал кучу каких-то мелких заметок в блоге и в интернете, описывать здесь которые не имеет смысла.
-
Только что вышел очередной Bootiful Podcast c неизменной машиной по созданию подкастов, Джошем Лонгом, и его коллегой из Spring Cloud Services, Bella (Yuxin) Bai. Ранее, десятого января, Джош сделал Bootiful Podcast с директором сиднейского Pivotal Labs, David Julia про agile, стратегию тестирования, архитектуру и все в таком роде. А под самый новый год вышел Bootiful Podcast с сооснователем Spring Cloud Дейвом Соером.
Статьи:
-
В Оракловском Java Magazine опубликовали статью Димы Александрова «Programming the GPU in Java». Тот момент, когда угадываешь автора статьи по первым абзацам.
-
Там же в Java Magazine есть интересная статья Бена Эванса про появление рекордов в языке Java.
-
Новая поджигающая статья в блоге Егора Бугаенко yegor256: «Embrace the chaos». Обратите внимание, что все читатели данной статьи обогащаются вакансией от Егора!
-
Ведущий футуролог интернета (по совместительству — Deputy CTO of Azul Systems), Саймон Риттер, опубликовал статью ±Staring Into My Java Crystal Ball 2020», в которой затронул такие темы, как Java ME (как известно, панночка помэрла), Jakarta EE (начинает оживать), JCP, Java SE, дистрибутивы OpenJDK (Azul — основной поставщик, но есть и другие).
-
Забавный факт: -Integer.MIN_VALUE == Integer.MIN_VALUE, но -Byte.MIN_VALUE != Byte.MIN_VALUE.
-
С подачи Майка Милинковича (напоминаю, исполнительный директор Eclipse Foundation) опубликована статья «The realities of running an open-source community». Рассказывается его видение вопроса в целом, и какие проблемы им приходится решать.
-
Статья про то, как использовать внешние библиотеки в JShell.
-
«Vaadin 10+ as the Future of CUBA UI» — статья Влада Минаева в блоге компании CUBA.platform. Описана их история жизни с Vaadin, предстоящие челленжи, описаны особенности Vaadin Flow, веб-компонентов, Vaadin 14 и так далее, есть небольшая секция с последними новостями из мира Vaadin.
-
«JDT without Eclipse». А знали ли вы, что JDT можно использовать и без Eclipse, в headless-режиме? Например, можно отдельно запустить форматер кода.
-
«Spring dependencies in Gradle can be tricky». Статья для любителей Gradle и Spring. Вместо того, чтобы мучиться, пытаясь понять точные версии пакетов, можно использовать BOM, в который Gradle умеет, начиная с конца 2018 года. Вместо этого люди обычно используют io.spring.dependency-management. В статье мы узнаем, почему, какие там есть проблемы и что делать.
-
«Building and running Equinox with maven without Tycho»
-
«Using the GitHub packages Maven repository»
-
«Migrating Spock 1.3 tests to Spock 2.0»
-
«Concurrent smart contracts in Hyperledger Fabric blockchain (part 3)»
-
«Method parameter validation with Spring and JSR 303». В Spring есть простой способ, как валидировать бины согласно JSR 303 (подробности на https://beanvalidation.org/). В посте на несколько строчек коротко описывается, как включить фичу.
Обсуждения:
- Если вы — любитель похоливорить про Kotlin, то прямо сейчас на Reddit происходит очередной эпизод священной войны Kotlin vs Java.
Хабр:
- «Несколько приемов работы с интерфейсом в Google Maps SDK и пара слов о геокодере»
- «Пол Грэм про Java и «хакерские» языки программирования (2001)»
- «gRPC в качестве протокола межсервисного взаимодействия. Доклад Яндекса»
- «Запускаем однофайловые программы в Java 11 без компилирования» (забавно, что в прошлом году я писал статью на ту же тему, но вообще не знал про JEP 330)
- «Необязательные параметры в репозиториях Spring Data»
- «Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring»
- «REST API — Что такое HATEOAS?»
- «Максимальное количество значений в enum Часть I»
- «Quarkus — новый взгляд на Cloud Native Java»
- «Вещи, которые могут показаться любопытными и разработчику со стажем»
- «Свертывание многострочных логов в однострочный лог с помощью Spring и логгера Logback или Log4j2»
- «Mash — язык программирования, компилирует сам себя»
- «Вещи, которые вы [возможно] не знали о Java»
- «А суть-то в чём, или Минимизация исходников — проще, чем кажется»
Подписывайтесь на канал @javawatch в Telegram. Сейчас там публикуются только ссылки на дайджесты, но скоро там появится поток мелких интересных ссылок и мини-новостей.
Автор: olegchir