Java-дайджест за 7 сентября
- Англоязычной версией этого дайджеста вы можете поделиться с друзьями, используя вот эту ссылку [1].
- OpenJDK официально завершил свой переход на GitHub [2].
- Вышел Azure Spring Cloud [3]. Это платформа для развертывания и управления сервисами на основе Spring Boot и Spring Cloud, работающими на облаках Microsoft Azure. Совместно создается, управляется и обслуживается сотрудниками Microsoft и VMware.
- Вышел новый релиз-кандидат Eclipse IDE 4.17 RC1 [4]. В нем есть пачка новых фичей, включая поддержку JEP 358: Helpful NullPointerExceptions [5].
- GitHub опубликовал новый отчёт [6] о последних инцидентах и проблемах доступности их сервисов. Самый длинный инцидент длился целых пять часов.
- Десятого июля этого года JetBrains проводили мероприятие под названием "Technology Day for Java". Презентации и видео доступны по ссылке [7].
- Появился R2DBC адатер для MyBatis [8]. В README много китайского языка, но это неважно, ведь в исходниках — Java.
- Вышел Eclipse Ditto [9] 1.2.0. Eclipse Ditto — опенсорсный фреймворк для создания и управления "цифровыми двойниками" в IoT. В новом релизе они сфокусировались на обработке в стиле "At least once" (QoS 1), внедрении таймстемпов и метаданных, HTTP-аутентификацией пуш-соединений с помощью клиентских сертификатов.
- Вышло обновление [10] Big Data Tools — плагина для работы с большими данными в IntelliJ IDEA Ultimate. Добавился мастер создания SSH-туннелей, появилась возможность лимитировать загружаемые данные в таблице приложений в Spark Monitoring, а к Zeppelin теперь можно подключать пользовательские модули. В целом, это был багфикс-релиз, который позволил куда более удобно пользоваться Spark Monitoring.
- Выпущены Spring Tools 4.7.2 [11]. В нем появился совершенно новый визард для добавления Spring Boot стартеров к существующим проектам и ранняя экспериментальная версия сборки образов Spring Boot OCI совместно с Docker.
- Вышла Eclipse Dirigible 5.2 [12]. В новом релизе добавили генерацию OData из Entity Data Model и в целом улучшили поддержку OData. Dirigible — это Cloud Development Platform со своими инструментами разработки и рантаймом.
- Один из пользователей Реддита выложил свой проект — новый kubectl plugin [13]. Он написан на Java и запускается при помощи jbang.
- Крутой демо-проект [14], который демонстрирует эффект волны, генерируя нерегулярные контуры, объединенные кривыми безье QuadCurve. Волны анимируются с помощью изменения координат контрольных точек самого контура.
- Другая крутая демка на ту же тему [15]. Это спецэффект, который с помощью JavaFX демонстрирует затемнение стандартных элементов интерфейса цветными тенями (что делает их невидимыми), после чего добавляется "фонарик", который динамически соединяется с узлами интерфейса на линии видимости.
- И еще одна интересная утилита для командной строки, написанная на Java. Она может автоматически добавлять пропущенные import-ы в Java-файлы, и для этого не нужно запускать IDE. Взять её можно на on Github [16], а прочитать анонс — на Reddit [17].
Матчасть
- Вышел Chaos Probe: новый инструмент анализа стабильности для моделей глубокого обучения, написанный на JavaFX. Как он работает можно посмотреть на on YouTube [18]. Приложение целиком написано на Java 14 и JavaFX, и предоставляет интерактивные визуализации моделей глубокого обучения (Keras), предназначенных для классификации изображений.
- Кстати, к слову, в Google изобрели новую модель для глубокого обучения под названием BigBird [19], которая позволяет нейросетевым трансформерам обрабатывать последовательности в 8 раз длиннее, чем раньше. Это позволяет лучше решать некоторые задачи в области обработки естественного языка, включая автоматические ответы на вопросы и суммаризацию документов.
Дискуссии
- На Reddit обнаружился тред [20] посвященный поиску наименее жирного докерного образа для JDK.
- Пользователь Reddit написал [21], свой небольшой экспериментальный HTTP server, использующий Project Loom.
- Один и тот же Redditor задал два параллельных вопроса про то, можно ли использовать Java на GPU [22] и FPGA [23].
Сервисы
- Snyk [24] выпустили [25] новые инструменты для приоритизации дыр в безопасности. Триаж можно ускорить с помощью фичей вроде "Priority Score", "Exploit Maturity" и так далее.
- Вышел AWSSSMChaosRunner [26]. Это библиотека для осуществления chaos engineering для Amazon AWS. Она позвоялет удаленно запускать команды относительно выбранного набора инстансов EC2. Исходники библиотеки находятся в открытом доступе, впрочем, толку от этого мало, учитывая что вы всё равно сидите на проприетарном Amazon.
- Google анонсировали [27] новую сервисно-ориентированную архитектуру под названием Runner v2 для своего Dataflow [28] — их GCP-сервиса, выполняющего пайплайны Apache Beam.
- Amazon AWS анонсировали нечто под названием AWS Contact Center Intelligence solutions [29]. Их решения, объединенные в Contact Center Intelligence (CCI) [30] будут направлять всю мощь искусственного интеллекта на помощь контактным центрам. Можно будет использовать Amazon Kendra, Amazon Translate, Amazon Transcribe, и сервисы компаний-партнеров вроде Accenture, Acqueon, Slalom или Vonage.
Стримы и подкасты
- Автор этого дайджеста попробовал записать видеотуториал по написанию плагина [31] для IntelliJ IDEA.
- Новый эпизод "A Bootiful Podcast" [32] Джоша Лонга. Мы обсудим SpringOne 2020 и кингу Джоша "Reactive Spring" вместе с Jonathan Giles — он Java Architect в Microsoft и Java Champion.
- "Unit Tests Considered Harmful" [33]. Это новый эпизод подкаста Adam Bien в блоге Airhacks.
- Вышел новый подкаст Yan Cui [34], посвященный Serverless Orchestration & Choreography, Distributed Tracking, Cold Starts и всякой всячине.
- Видео-туториал [35] про то, как писать нативные Java-приложения на NetBeans IDE с использованием GraalVM и Gluon.
Статьи
- Новый эпизод дайджеста Джоша Лонга, "This Week in Spring." [36].
- Новый эпизод дайджеста Trisha Gee, Java Annotated Monthly [37].
- "How to test the application's integration with Kafka and Testcontainers" [38] by Łukasz Chrząszcz.
- Vlad Mihalcea написал очередной туториал [39] о том, как кодировать и декодировать JSON properties при использовании JPA.
- Короткий туториал [40] о том, как написать свою первую AWS Lambda на Java.
- А в этом блогпосте [41] сотрудники JetBrains раскрывают пачку рефакторингов для IntelliJ IDEA, которые пригодятся в повседневной жизни.
- Java Architecture for XML Binding (JAXB) API была объявлена устаревшей ещё в Java 9, а в Java SE 11 её удалили. И что теперь делать? Что-что — смотреть готовый небольшой пример [42] на сайте Adam Bien.
- Michael Scharhag написал статью "OCR in Java with Tess4J" [43]. Используя инструкции из этой статьи, вы напишете преобразователь JPEG-картинок в текст. Tess4J — это обертка с использованием Java JNA, которая заворачивает внутрь Tesseract OCR API. Tesseract — известная библиотека для распознавания изображений, 94% которой написано на C++.
- Michael Scherlag написал статью "Extending JUnit 5" [44]. Используя её, можно написать кастомное расширение и использовать его с помощью аннотации @ExtendWith.
- Быстрый туториал [45] о том, как билдить Maven с помощью Github Actions.
- Новый официальный туториал про Vaadin [46], показывающий, как его связать с Hazelcast.
- Top 12 Java Thread, Concurrency and Multithreading Interview Questions For experienced Programmers [47]. Кажется, вопросы не то чтобы шибко сложные, но для тех, кто никогда не писал сложных многопоточных приложений они могут оказаться совершенно новыми.
О нумерации дайджестов
Счётчик выпусков начинается сначала. Автор этого дайджеста сделал небольшую перезагрузку в своей жизни, да и дайджесты всё равно слишком давно не выходили. Кроме того, это отличный повод запустить англоязычную версию [1].
Автор: Олег Чирухин
Источник [48]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/356751
Ссылки в тексте:
[1] вот эту ссылку: https://darkest.land/2020/09/07/this-week-in-java-1/
[2] переход на GitHub: https://github.com/openjdk/jdk
[3] Azure Spring Cloud: https://spring.io/blog/2020/09/02/hello-azure-spring-cloud
[4] Eclipse IDE 4.17 RC1: https://www.eclipse.org/eclipse/news/4.17/jdt.php?v=rc1
[5] JEP 358: Helpful NullPointerExceptions: https://openjdk.java.net/jeps/358
[6] опубликовал новый отчёт: https://github.blog/2020-07-08-introducing-the-github-availability-report/
[7] доступны по ссылке: https://pages.jetbrains.com/technology-day-java-2020
[8] R2DBC адатер для MyBatis: https://github.com/linux-china/mybatis-r2dbc
[9] Eclipse Ditto: https://www.eclipse.org/ditto/2020-08-31-release-announcement-120.html
[10] Вышло обновление: https://blog.jetbrains.com/idea/2020/09/big-data-tools-eap-10/
[11] Spring Tools 4.7.2: https://spring.io/blog/2020/09/03/spring-tools-4-7-2-released
[12] Eclipse Dirigible 5.2: https://www.dirigible.io/release/2020/09/02/news_new_release_5_2.html
[13] kubectl plugin: https://filippobuletto.github.io/kubectl-java-test/
[14] демо-проект: https://www.youtube.com/watch?v=TYENQucbOOY
[15] демка на ту же тему: https://www.youtube.com/watch?v=0vUUTWhIsIU
[16] on Github: https://github.com/nicolascouvrat/javaimports
[17] на Reddit: https://www.reddit.com/r/java/comments/ijleh5/ive_created_a_cli_utility_to_automatically_add/
[18] on YouTube: https://www.youtube.com/watch?v=Pab2fLwxI_g
[19] BigBird: https://arxiv.org/abs/2007.14062
[20] тред: https://www.reddit.com/r/java/comments/ij5qek/an_openjdk_14_docker_image_thats_33_slimmer_than/
[21] написал: https://www.reddit.com/r/java/comments/ii939b/i_created_a_sample_http_server_using_jetty_with/
[22] GPU: https://www.reddit.com/r/java/comments/iku9yl/running_java_on_gpus/
[23] FPGA: https://www.reddit.com/r/java/comments/ikucup/running_java_on_fpgas/
[24] Snyk: https://snyk.io/
[25] выпустили: https://snyk.io/blog/snyks-developer-first-prioritization-capabilities/
[26] AWSSSMChaosRunner: https://aws.amazon.com/blogs/opensource/building-resilient-services-at-prime-video-with-chaos-engineering/
[27] анонсировали: https://cloud.google.com/blog/products/data-analytics/multi-language-sdks-for-building-cloud-pipelines
[28] Dataflow: https://cloud.google.com/dataflow
[29] AWS Contact Center Intelligence solutions: https://aws.amazon.com/blogs/aws/aws-announces-aws-contact-center-intelligence-solutions/
[30] Contact Center Intelligence (CCI): https://aws.amazon.com/machine-learning/contact-center-intelligence/
[31] видеотуториал по написанию плагина: https://www.youtube.com/watch?v=e1WexbV0veU
[32] "A Bootiful Podcast": https://spring.io/blog/2020/09/04/a-bootiful-podcast-springone-2020-josh-s-book-reactive-spring-and-microsoft-java-architect-and-fellow-java-champion-jonathan-giles
[33] "Unit Tests Considered Harmful": https://adambien.blog/roller/abien/entry/unit_tests_considered_harmful_an
[34] подкаст Yan Cui: https://soundcloud.com/infoq-channel/yan-cui-on-serverless-orchestration-choreography-distributed-tracking-cold-starts-and-more
[35] Видео-туториал: https://www.youtube.com/watch?v=cceRz3LToIo
[36] "This Week in Spring.": https://spring.io/blog/2020/09/02/this-week-in-spring-springone-2020-edition-september-1st-2020
[37] Java Annotated Monthly: https://blog.jetbrains.com/idea/2020/09/java-annotated-monthly-september-2020/
[38] "How to test the application's integration with Kafka and Testcontainers": https://chrzaszcz.dev/2020/08/kafka-testing/
[39] очередной туториал: https://vladmihalcea.com/encrypt-decrypt-json-jpa/
[40] Короткий туториал: https://blog.rajanpanchal.net/write-your-first-aws-lambda-in-java
[41] блогпосте: https://blog.jetbrains.com/idea/2020/09/everyday-refactorings-in-intellij-idea/
[42] готовый небольшой пример: https://adambien.blog/roller/abien/entry/from_pojo_to_xml_and
[43] "OCR in Java with Tess4J": https://www.javacodegeeks.com/2020/08/ocr-in-java-with-tess4j.html
[44] "Extending JUnit 5": https://www.javacodegeeks.com/2020/08/extending-junit-5.html
[45] Быстрый туториал: https://blog.frankel.ch/github-actions-maven-releases/
[46] туториал про Vaadin: https://vaadin.com/learn/tutorials/hazelcast
[47] Top 12 Java Thread, Concurrency and Multithreading Interview Questions For experienced Programmers: https://www.java67.com/2012/08/5-thread-interview-questions-answers-in.html
[48] Источник: https://habr.com/ru/post/518054/?utm_source=habrahabr&utm_medium=rss&utm_campaign=518054
Нажмите здесь для печати.