Управляем Arduino при помощи Java
Если вы хотите вынести логику работы с Arduino на ПК или Raspberry Pi и при этом писать на Java, то в этом вам поможет Firmata (готовая прошивка для Arduino) и Firmata4j (Java библиотека). В статье на стороне Raspberry Pi для примера поднимается Spring Boot приложение для управления Arduino.
https://foojay.io/today/control-your-arduino-with-spring/
Если вы хотите вынести логику работы с Arduino на ПК или Raspberry Pi и при этом писать на Java, то в этом вам поможет Firmata (готовая прошивка для Arduino) и Firmata4j (Java библиотека). В статье на стороне Raspberry Pi для примера поднимается Spring Boot приложение для управления Arduino.
https://foojay.io/today/control-your-arduino-with-spring/
foojay
Control your Arduino with Spring | Foojay.io Today
Learn how to use Firmata4j to control an Arduino board from a Raspberry Pi board or directly from your computer.
Исправление зависимостей в один клик
Если вы работаете с Gradle, то вам стоит обратить внимание на Dependency Analysis Gradle Plugin. Этот плагин помогает находить лишние зависимости и автоматически исправлять проблемы с ними. Однако стоит быть осторожным с этим плагином так как он может давай "осечки" на сложных скриптах. Это связанно с тем, что плагин использует упрощенную грамматику для парсинга. В будующих версиях парсинг обещают улучшить.
https://dev.to/autonomousapps/one-click-dependencies-fix-191p
Если вы работаете с Gradle, то вам стоит обратить внимание на Dependency Analysis Gradle Plugin. Этот плагин помогает находить лишние зависимости и автоматически исправлять проблемы с ними. Однако стоит быть осторожным с этим плагином так как он может давай "осечки" на сложных скриптах. Это связанно с тем, что плагин использует упрощенную грамматику для парсинга. В будующих версиях парсинг обещают улучшить.
https://dev.to/autonomousapps/one-click-dependencies-fix-191p
DEV Community
One click dependencies fix
Photo by Maxim Hopman on Unsplash If you maintain a JVM1 or Android project, chances are you've...
VisuAlgo
Сайточередной для изучение алгоритмов. Среди остальных сайтов с аналогичной тематикой он отличается тем, что работа алгоритмов хорошо представлена визуально.
https://visualgo.net/en
Сайт
https://visualgo.net/en
visualgo.net
visualising data structures and algorithms through animation - VisuAlgo
VisuAlgo was conceptualised in 2011 by Associate Professor Steven Halim (NUS School of Computing) as a tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at their own pace. Together…
Kubetools
Коллекция популярных инструментов для Kubernetes. Там есть инструменты практически на все случаи жизни.
https://collabnix.github.io/kubetools/
Коллекция популярных инструментов для Kubernetes. Там есть инструменты практически на все случаи жизни.
https://collabnix.github.io/kubetools/
kubetools
Kubetools - A Curated List of Kubernetes Tools
Kubetools - Curated List of Kubernetes Tools
Algo.monster
Отличный ресурс для подготовки к собеседованиям созданный разработчикам из Google. Особенно он полезен тем кто планирует проходить интервью в компании из FAANG.
https://algo.monster/?sscid=11k9_ggcl7&
Отличный ресурс для подготовки к собеседованиям созданный разработчикам из Google. Особенно он полезен тем кто планирует проходить интервью в компании из FAANG.
https://algo.monster/?sscid=11k9_ggcl7&
AlgoMonster
AlgoMonster: The Most Structured Way to Prepare for Coding Interviews
Coding interviews stressing you out? Get the structure you need to succeed on LeetCode. Now powered by AI.
Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager
Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:
• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.
Решение не законченное, но интересное.
https://habr.com/ru/articles/839006/
Валидации "первого круга" в jakarta.validation представлены прекрасно (NotNull, NotBlank и пр. аннотации). Статья про валидации "второго круга". К ним можно отнести такие наиболее типичные операции:
• Проверка поля на уникальность при создании новой сущности (записей со значением X поля N на момент сохранения быть не должно).
• Проверка поля на уникальность при обновлении сущности (при обновлении запись со значением X поля N должна оставаться только одна).
• Проверка существования проставленных FK-связей.
• Проверка существования самой сущности в случае обновления (делается, как правило, по ее ID-шке).
• Возможно, проверка unmodified-полей для обновления, т.е. если поле неизменяемое, но во входных данных мы пытаемся его изменить - исключение.
Решение не законченное, но интересное.
https://habr.com/ru/articles/839006/
Хабр
Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager
Вступление Вот и моя первая статья на Хабре. Посвящена она будет презентации своего небольшого решения для валидации моделей с использованием запросов к БД и EntityManager. Вариант этот пока черновой,...
Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить
Python довольно широко распространен в среде разработчиков занимающихся AI, но есть ли у него альтернатива? Для Java также существуют библиотеки и фреймворки. В статье рассмотрены 7 наиболее популярных.
https://habr.com/ru/articles/864352/
Python довольно широко распространен в среде разработчиков занимающихся AI, но есть ли у него альтернатива? Для Java также существуют библиотеки и фреймворки. В статье рассмотрены 7 наиболее популярных.
https://habr.com/ru/articles/864352/
Хабр
Применимость Java в искусственном интеллекте: 7 библиотек для нейросетей, которые стоит изучить
Java — один из самых популярных языков программирования, особенно в корпоративной разработке. Несмотря на доминирование Python в области машинного обучения и нейросетей, Java сохраняет свою...
Подключение к GigaChat API на Java: пошаговое руководство
Статья о том как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов.
https://habr.com/ru/articles/854820/
Статья о том как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов.
https://habr.com/ru/articles/854820/
Хабр
Подключение к GigaChat API на Java: пошаговое руководство
Всем привет! В этой статье я расскажу о том, как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов, чтобы получать ответы от...
Telegram бот + ИИ Jlama своими руками
В статье описывается создание телеграм бота на Java, который будет использовать LLM запущеную локально. В статье используюется Jlama – максимально простой движок инференса для LLM, написанной на голой java без тяжеловесных фрэймворков. По факту Jlama дает возможность обслуживать LLM в java окружении напрямую, то есть в той же jvm, где работает наше приложение.
Статья интересна тем, что в ней не используется открытый API ChatGPT или новомодный Deepseek, а используется локально развернутый Jlama.
https://habr.com/ru/articles/877746/
В статье описывается создание телеграм бота на Java, который будет использовать LLM запущеную локально. В статье используюется Jlama – максимально простой движок инференса для LLM, написанной на голой java без тяжеловесных фрэймворков. По факту Jlama дает возможность обслуживать LLM в java окружении напрямую, то есть в той же jvm, где работает наше приложение.
Статья интересна тем, что в ней не используется открытый API ChatGPT или новомодный Deepseek, а используется локально развернутый Jlama.
https://habr.com/ru/articles/877746/
Хабр
Telegram бот + ИИ Jlama своими руками
Хабр, привет! Сегодня мы попробуем сделать свой ИИ с телеграм ботом для возможности простого общения с ней. Сразу оговорюсь, мы не будем в очередной раз использовать открытый API ChatGPT или...
Тестирование сообщений в Kafka
В статье представлен подход к написанию интеграционных тестов для Kafka-приложений с акцентом на читаемость и поддержку. Опираясь на принципы разделения тестов на этапы (Arrange-Act-Assert), изоляцию и повышение наглядности, мы упрощаем тестирование и понимание интеграций.
В качестве примера — телеграм-бот, перенаправляющий запросы в OpenAI и отправляющий сообщения в Kafka при нарушениях безопасности. Для тестов используется объект RecordCaptor, захватывающий сообщения из Kafka, с обеспечением изоляции и ожиданием смещений.
Подход демонстрирует, как сделать тесты эффективными и эстетичными, сохраняя фокус на логике взаимодействия. Рекомендуется ознакомиться с базовыми идеями в связанных статьях.
https://habr.com/ru/articles/840990/?utm_campaign=840990
В статье представлен подход к написанию интеграционных тестов для Kafka-приложений с акцентом на читаемость и поддержку. Опираясь на принципы разделения тестов на этапы (Arrange-Act-Assert), изоляцию и повышение наглядности, мы упрощаем тестирование и понимание интеграций.
В качестве примера — телеграм-бот, перенаправляющий запросы в OpenAI и отправляющий сообщения в Kafka при нарушениях безопасности. Для тестов используется объект RecordCaptor, захватывающий сообщения из Kafka, с обеспечением изоляции и ожиданием смещений.
Подход демонстрирует, как сделать тесты эффективными и эстетичными, сохраняя фокус на логике взаимодействия. Рекомендуется ознакомиться с базовыми идеями в связанных статьях.
https://habr.com/ru/articles/840990/?utm_campaign=840990
Хабр
Тестирование сообщений в Kafka
Данная статья предлагает подход к написанию интеграционных тестов для приложений с Kafka, позволяющий сосредоточиться на спецификации взаимодействия, делая тесты более читаемыми и легкими для...
GRASP: почему настоящая архитектура начинается не с SOLID
SOLID, GoF-паттерны и даже DDD — это круто, но как перейти от требований к модели? Почему инструменты не всегда решают задачу? Узнайте, как GRASP заполняет пробелы в архитектурном мышлении, помогая понять, что и почему моделировать, а не только как писать код. Личный опыт, аналогии и разбор — всё в одном посте!
https://m.vk.com/@javatutorial-grasp-pochemu-nastoyaschaya-arhitektura-nachinaetsya-ne-s-so
#Java #Architecture #GRASP #DDD
SOLID, GoF-паттерны и даже DDD — это круто, но как перейти от требований к модели? Почему инструменты не всегда решают задачу? Узнайте, как GRASP заполняет пробелы в архитектурном мышлении, помогая понять, что и почему моделировать, а не только как писать код. Личный опыт, аналогии и разбор — всё в одном посте!
https://m.vk.com/@javatutorial-grasp-pochemu-nastoyaschaya-arhitektura-nachinaetsya-ne-s-so
#Java #Architecture #GRASP #DDD
VK
GRASP: почему настоящая архитектура начинается не с SOLID
Многие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не..
Аннотации и рефлексия для гибкого кода
Аннотации и рефлексия в Java — мощные инструменты для создания адаптивных приложений. Аннотации добавляют метаданные к коду, помогая компилятору и инструментам анализировать его. Рефлексия позволяет изменять поведение программы во время выполнения.
🔹 Что в статье?
- Объяснение аннотаций: встроенные (@Override, @Deprecated) и пользовательские.
- Как создавать свои аннотации для:
- Документирования кода.
- Проверки данных (@NotNull).
- Примеры кода для лёгкого старта.
https://habr.com/ru/companies/otus/articles/764244/
#Java #Annotations #Reflection #CodingTips
Аннотации и рефлексия в Java — мощные инструменты для создания адаптивных приложений. Аннотации добавляют метаданные к коду, помогая компилятору и инструментам анализировать его. Рефлексия позволяет изменять поведение программы во время выполнения.
🔹 Что в статье?
- Объяснение аннотаций: встроенные (@Override, @Deprecated) и пользовательские.
- Как создавать свои аннотации для:
- Документирования кода.
- Проверки данных (@NotNull).
- Примеры кода для лёгкого старта.
https://habr.com/ru/companies/otus/articles/764244/
#Java #Annotations #Reflection #CodingTips
Хабр
Аннотации и рефлексия в Java
Привет, уважаемые читатели Хабра! Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных...
🚀 Раскрываем секреты скорости в Java!
Хочешь знать, как работает сортировка в java.util.Arrays.sort()? 🤔 Timsort для объектов и Dual-Pivot Quicksort для примитивов — два алгоритма, которые делают Java молниеносной! Узнай:
- Почему Timsort — король упорядоченных данных.
- Как Dual-Pivot Quicksort от автора статьи изменил игру в JDK и Android.
- История создания и эволюция этих алгоритмов от эксперта!
💡 Погрузись в мир оптимизации Java и стань профи! Читай статью и прокачай свои знания.
https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342
#Java #Timsort #Quicksort #Программирование
Хочешь знать, как работает сортировка в java.util.Arrays.sort()? 🤔 Timsort для объектов и Dual-Pivot Quicksort для примитивов — два алгоритма, которые делают Java молниеносной! Узнай:
- Почему Timsort — король упорядоченных данных.
- Как Dual-Pivot Quicksort от автора статьи изменил игру в JDK и Android.
- История создания и эволюция этих алгоритмов от эксперта!
💡 Погрузись в мир оптимизации Java и стань профи! Читай статью и прокачай свои знания.
https://habr.com/ru/companies/sberbank/articles/841342/?utm_campaign=841342
#Java #Timsort #Quicksort #Программирование
Хабр
Удивительная история развития сортировки в JDK
Как вы считаете, если выполнить java.util.Arrays.sort() , то какая сортировка будет вызвана? Quicksort? Timsort? И та, и другая, потому что для объектов вызывается Timsort , а для примитивов (чисел...
Погружение в безумный мир Brainfuck: создаём генератор кода и интерпретатор с нуля!
История о том, как автор статьи превратил простую задачку на C в настоящий кодерский квест.
Решать задачу стандартно? Скучно! Автор статьи решил добавить остроты и закодить решение на Brainfuck, а на C сваять интерпретатор для этого безумия.
Но писать Brainfuck-код вручную — это как чистить картошку тупым ножом. Поэтому он вооружился Java и создал генератор кода, чтобы автоматизировать этот хаос и сделать процесс эпичным!
🔥 Погрузись в детали на Хабре: https://habr.com/ru/articles/846076/
История о том, как автор статьи превратил простую задачку на C в настоящий кодерский квест.
Решать задачу стандартно? Скучно! Автор статьи решил добавить остроты и закодить решение на Brainfuck, а на C сваять интерпретатор для этого безумия.
Но писать Brainfuck-код вручную — это как чистить картошку тупым ножом. Поэтому он вооружился Java и создал генератор кода, чтобы автоматизировать этот хаос и сделать процесс эпичным!
🔥 Погрузись в детали на Хабре: https://habr.com/ru/articles/846076/
Хабр
О том как я генератор Brainfuck кода писал
На днях мне потребовалось написать решение задачи поиска максимально возрастающей последовательности цифр на C. Однако я решил что решать эту задачу привычным методом будет скучно и я решил слегка...
Есть ли хорошие форматтеры кода для Java?
Поиск идеального форматера
• Автор статьи ищет хороший Java-форматер.
• Он обсуждает различные форматеры, такие как встроенный в IntelliJ, google-java-format, более красивая Java, Eclipse JDT formatter, Java-формат Palantir, формат Spring Java и межъязыковые форматировщики кода.
Проблемы с существующими решениями
• Ни один из этих форматеров не удовлетворяет всем заявленным требованиям автора.
• Автор статьи готов перейти на другой инструмент, но не может выбрать что-то одно из-за проблем каждого из них.
Альтернативные инструменты
• Он также упоминает EditorConfig и Spotless, но не оценивает их как полноценные средства форматирования.
Рекомендация
• Вывод: Palantir, вероятно, является лучшим вариантом, если не возражаете против запуска программы форматирования из командной строки.
Мне также очень нравится инструмент checkstyle. Он не является в чистом виде форматером, но в нем можно настроить необходимые проверки качества и встроить в DevOps.
https://jqno.nl/post/2024/08/24/why-are-there-no-decent-code-formatters-for-java/
Поиск идеального форматера
• Автор статьи ищет хороший Java-форматер.
• Он обсуждает различные форматеры, такие как встроенный в IntelliJ, google-java-format, более красивая Java, Eclipse JDT formatter, Java-формат Palantir, формат Spring Java и межъязыковые форматировщики кода.
Проблемы с существующими решениями
• Ни один из этих форматеров не удовлетворяет всем заявленным требованиям автора.
• Автор статьи готов перейти на другой инструмент, но не может выбрать что-то одно из-за проблем каждого из них.
Альтернативные инструменты
• Он также упоминает EditorConfig и Spotless, но не оценивает их как полноценные средства форматирования.
Рекомендация
• Вывод: Palantir, вероятно, является лучшим вариантом, если не возражаете против запуска программы форматирования из командной строки.
Мне также очень нравится инструмент checkstyle. Он не является в чистом виде форматером, но в нем можно настроить необходимые проверки качества и встроить в DevOps.
https://jqno.nl/post/2024/08/24/why-are-there-no-decent-code-formatters-for-java/
tr ouwens
Why are there no decent code formatters for Java?
In which I compare and rate code formatting tools for Java.
🔥 Сборка мусора в Java: почему важно понимать, как она работает 🧐
Вы программируете на Java и думаете: «Ну да ладно, сборщик мусора сам разберётся!» А ведь разобраться в тонкостях сборки мусора полезно! Это помогает выбрать оптимальный подход именно для вашего проекта.
📌 На конференции JPoint 2024 Дмитрий Силин из Сбербанка поделился крутым докладом на эту тему. По ссылке полный текст доклада + запись выступления!
https://habr.com/ru/companies/jugru/articles/846308/
#GC #JPoint2024 #разработка
Вы программируете на Java и думаете: «Ну да ладно, сборщик мусора сам разберётся!» А ведь разобраться в тонкостях сборки мусора полезно! Это помогает выбрать оптимальный подход именно для вашего проекта.
📌 На конференции JPoint 2024 Дмитрий Силин из Сбербанка поделился крутым докладом на эту тему. По ссылке полный текст доклада + запись выступления!
https://habr.com/ru/companies/jugru/articles/846308/
#GC #JPoint2024 #разработка
Хабр
Точки соприкосновения: Java & GC
Можно писать на Java, вообще не задумываясь, как работает сборка мусора: «ну оно же там само собой происходит как-то». Однако разобраться как следует — не только интересно, но и полезно: например,...
AI-ассистент со Spring AI
В статье автор делится своим опытом интеграции AI-помощника в Spring Petclinic.
Spring Petclinic служит основным референсным приложением в экосистеме Spring. Приложение реализует систему управления ветеринарной клиникой для домашних животных.
Spring AI позволяет взаимодействовать с популярными большими языковыми моделями (LLM), используя знакомые парадигмы и техники Spring.
https://spring.io/blog/2024/09/26/ai-meets-spring-petclinic-implementing-an-ai-assistant-with-spring-ai-part-i
#springai #ai
В статье автор делится своим опытом интеграции AI-помощника в Spring Petclinic.
Spring Petclinic служит основным референсным приложением в экосистеме Spring. Приложение реализует систему управления ветеринарной клиникой для домашних животных.
Spring AI позволяет взаимодействовать с популярными большими языковыми моделями (LLM), используя знакомые парадигмы и техники Spring.
https://spring.io/blog/2024/09/26/ai-meets-spring-petclinic-implementing-an-ai-assistant-with-spring-ai-part-i
#springai #ai
AI Meets Spring Petclinic: Implementing an AI Assistant with Spring AI (Part I)
Level up your Java code and explore what Spring can do for you.
Аутентификация через телеграм в Spring Boot приложении
Сейчас наиболее распространена аутентификация через сторонние сервисы Google, Github и подобные, но через Telegram...что-то новенькое ))
В статье рассказывается о том как можно сделать аутентификацию через Telegram в Spring boot приложении.
https://habr.com/ru/articles/848502/
#springboot #spring #telegram
Сейчас наиболее распространена аутентификация через сторонние сервисы Google, Github и подобные, но через Telegram...что-то новенькое ))
В статье рассказывается о том как можно сделать аутентификацию через Telegram в Spring boot приложении.
https://habr.com/ru/articles/848502/
#springboot #spring #telegram
Хабр
Аутентификация через телеграм в Spring Boot приложении
Способ аутентификации через телеграм отлично описан в документации . В этой статье мы реализуем его в Spring Boot приложении. Создаем туннель с помощью ngrok Для аутентификации нам необходим домен и...
Интеграция AI в Java приложения
На конференции InfoQ Live участники панельной сессии обсудили рабочие процессы, влияние на персонал и использование различных инструментов, фреймворков и сервисов для интеграции ИИ в приложения на Java.
Много воды и общих фраз, но в целом послушать про тренды интересно.
Состав участников:
Асир Сельвасингх - Главный архитектор Java в Azure @Microsoft
Джонатан Шнайдер - сооснователь и генеральный директор @Moderne
Дов Кац - Управляющий директор, выдающийся инженер @Morgan Stanley
Светлана Землянская - Инженер по машинному обучению @Jetbrains
Модератор: Эрик Костлоу - Редактор InfoQ | Управление продуктами @Azul
https://www.infoq.com/presentations/ai-java-integrate/
#infoq #ai
На конференции InfoQ Live участники панельной сессии обсудили рабочие процессы, влияние на персонал и использование различных инструментов, фреймворков и сервисов для интеграции ИИ в приложения на Java.
Много воды и общих фраз, но в целом послушать про тренды интересно.
Состав участников:
Асир Сельвасингх - Главный архитектор Java в Azure @Microsoft
Джонатан Шнайдер - сооснователь и генеральный директор @Moderne
Дов Кац - Управляющий директор, выдающийся инженер @Morgan Stanley
Светлана Землянская - Инженер по машинному обучению @Jetbrains
Модератор: Эрик Костлоу - Редактор InfoQ | Управление продуктами @Azul
https://www.infoq.com/presentations/ai-java-integrate/
#infoq #ai
InfoQ
AI Integration for Java: to the Future, from the Past
The panelists discuss workflows, staff impact, and utilizing different tools, frameworks, and services to integrate AI in Java applications.
Принципы SOLID на примерах из жизни и разработки
В статье объясняются принципы SOLID доступным языком на простых жизненных примерах, а затем показывается, как эти правила применяются в реальных программах.
SOLID — это пять важных правил разработки программного обеспечения, помогающих создавать хороший, удобный и надежный код.
https://habr.com/ru/articles/849350/
#solid
В статье объясняются принципы SOLID доступным языком на простых жизненных примерах, а затем показывается, как эти правила применяются в реальных программах.
SOLID — это пять важных правил разработки программного обеспечения, помогающих создавать хороший, удобный и надежный код.
https://habr.com/ru/articles/849350/
#solid
Хабр
Принципы SOLID на примерах из жизни и разработки
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде. Итак, SOLID - это 5 принципов,...