Java
1.63K subscribers
223 photos
5 videos
3 files
901 links
Программирование на Java.

По всем вопросам: @un_ixtime
Download Telegram
Пишем минимальный ActivityPub-сервер с нуля.

В последнее время, на фоне покупки Twitter Илоном Маском, люди начали искать ему альтернативы — и многие нашли такую альтернативу в Mastodon.

Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.

В этой статье мы рассмотрим основы протокола ActivityPub и напишем минимально возможную реализацию сервера, позволяющую отправлять посты в сеть («fediverse»), подписываться на других пользователей и получать от них обновления.

Читать дальше →https://habr.com/ru/articles/702724
Операция «K». Ищем баги в коде IntelliJ IDEA.

В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошибок и отправим наши правки разработчикам. Крупный проект, Open Source база и использование статического анализатора при разработке. Сложная задача для PVS-Studio.

Читать далее https://habr.com/ru/companies/pvs-studio/articles/780560
В быстро развивающейся сфере разработки программного обеспечения управление доступом к базам данных и операциями значительно улучшилось. Одним из таких нововведений в экосистеме Spring Framework является Spring Data REST, мощный инструмент, который автоматизирует создание сервисов RESTful.

https://medium.com/@mertkagan/spring-data-rest-say-goodbye-to-controller-and-service-1acb6c7437f1
ChatGPT на Java. Пишем «Hello World» на Spring AI.

Начинаем осваивать генеративные сети с помощью привычного всем Java разработчикам фреймворка Spring. Несколько месяцев назад в Spring добавили модуль AI, который упрощает работу с нейронками от OpenAI и Azure.

Давайте же напишем первое приложение с новым модулем!

Читать далее https://habr.com/ru/articles/784128
👍1
Введение в Spring AI

Spring Framework официально включил возможности генерации подсказок искусственного интеллекта в проекте Spring AI. Цель этой статьи — дать подробное введение в интеграцию генеративного искусственного интеллекта в приложения Spring Boot. В рамках руководства мы познакомимся с основными концепциями искусственного интеллекта .
https://www.baeldung.com/spring-ai
👎2🔥2
Project Loom. Не только виртуальные потоки

Начиная с Java 19 нам доступны виртуальные потоки, которые отличаются от обычных, тем что умеют освобождать поток операционной системы во время блокирующих I/O операций. Для этого на уровне JVM был реализован механизм сохранения в хипе и восстановления из хипа стека вызова. Проще говоря, были реализованы полноценные корутины на уровне JVM.

И это небольшая революция, на которую мало кто обратил внимание. Само API для таких нативных корутин непубличное, доступно через класс jdk.internal.vm.Continuation, в котором есть методы yield() и run() для сохранения и восстановления стека вызова соответственно. Но получить доступ до него несложно, нужно лишь добавить пару аргументов в строку запуска JVM (либо воспользоваться инструментом, который позволяет обходить ограничения JPMS).

Поэтому представляю свою небольшую библиотеку для доступа к нативным корутинам на Java: https://github.com/Anamorphosee/loomoroutines.

https://habr.com/ru/articles/785334/
👍1
Виртуальная машина Java (JVM) является краеугольным камнем платформонезависимых возможностей Java. Он позволяет выполнять байт-код Java на любом устройстве, поддерживающем JVM. Центральным элементом этого механизма является .classфайл, который представляет собой скомпилированную версию исходных файлов Java. Цель этой статьи — объяснить структуру и содержимое файла Java .class, а также то, как он работает.

https://medium.com/@AlexanderObregon/the-anatomy-of-a-java-virtual-machine-class-file-e3773d23f3e3
👍1👎1
Обработка файлов — важный аспект, с которым мы часто сталкиваемся. Когда дело доходит до записи данных в файлы, обычно используется класс FileWriter . В этом классе два важных метода, flush() и close(), играют разные роли в управлении потоками вывода файлов.

В этом уроке мы рассмотрим обычное использование FileWriter и углубимся в различия между его методами flush () и close() . https://www.baeldung.com/java-filewriter-flush-vs-close