Telegram Web Link
🌊 Project Nessie — транзакционный каталог для data lakes с Git-подобным управлением версиями. Этот инструмент позволяет работать с данными как с кодом: создавать ветки, сливать изменения и откатывать их до предыдущих состояний. Особенно удобен для команд, которые хотят внести контроль версий в свои процессы обработки данных.

Инструмент поддерживает таблицы и представления Iceberg, а также интеграцию с популярными инструментами вроде Spark, Hive и Flink. Для быстрого старта можно развернуть готовый Docker-образ или воспользоваться CLI. Проект активно развивается: есть веб-интерфейс, аутентификация через OpenID Connect и подробная документация.

🤖 GitHub

@javatg
👍5🔥3🥰1
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Теперь официально Google выпустили Gemini CLI - AI-агента для работы в терминале

• Лёгкий и мощный инструмент для разработки в командной строке
• Работает на базе Gemini 2.5 Pro
• Код агента в открытом доступе (Apache 2.0)
• Поддержка контекста в 1 миллион токенов
• Бесплатный тариф: до 60 запросов в минуту и 1000 в день
Привязка к Google Search
• Поддержка MCP
• Интеграция с VS Code (Gemini Code Assist)

Запуск в cli: npx https://github.com/google-gemini/gemini-cli

🔜 Анонс: https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/
🔜 Github: https://github.com/google-gemini/gemini-cli/

@ai_machinelearning_big_data

#AI #ML #agent #Google
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥7👍6
⛓️ Jimmer — революционный ORM для JVM (Java/Kotlin), переосмысливающий работу с данными. Этот инструмент позволяет оперировать не отдельными сущностями, а целыми графами объектов любой сложности, как при чтении, так и при сохранении.

Инструмент имеет встроенную поддержку DTO с кодогенерацией, самостоятельного устранения проблемы N+1 запросов и работы с рекурсивными структурами. ORM автоматически оптимизирует SQL-запросы, убирает лишние JOIN'ы и поддерживает многоуровневое кеширование. Проект предлагает удобные DSL для запросов, интеграцию с GraphQL и работает через APT/KSP, что обеспечивает безопасность типов на этапе компиляции.

🤖 GitHub

@androidits
👍208🔥2😁1
💻 RSocket — протокол для реактивного взаимодействия между сервисами через TCP, WebSockets и Aeron. В отличие от традиционных HTTP-запросов, он поддерживает четыре модели обмена сообщениями: запрос-ответ, поток данных, fire-and-forget и бесконечные подписки на события.

Проект обладает zero-copy режимом для снижения задержек и Java-реализацией с интеграцией в Reactor. Подходит для микросервисов, где важны двунаправленная связь и эффективная работа с потоками данных.

🤖 GitHub

@javatg
👍12🔥32
🔌 EA Async — асинхронный код в Java без головной боли. Этот необычный проект от Electronic Arts привносит в JVM-экосистему синтаксис async/await, знакомый разработчикам из C# и JavaScript. С ним асинхронные операции с CompletableFuture выглядят как последовательный код, сохраняя при этом все преимущества неблокирующего выполнения.

Библиотека трансформирует код на этапе компиляции — вы пишете блокирующий код с await, а под капотом генерируются цепочки thenCompose/thenApply. Работает с Java 8+ и Scala, а интеграция через Maven-плагин позволяет вообще исключить runtime-зависимости.

🤖 GitHub

@javatg
🔥11👍54
🌄 Landscapist — элегантная загрузка изображений в Jetpack Compose. Этот проект превращает работу с сетевыми изображениями в Kotlin Multiplatform-приложениях в простой и производительный процесс. Инструмент использует единый API для трех популярных библиотек: Glide, Coil и Fresco, с автоматической оптимизацией под recomposition в Compose.

В проекте интересно реализованы анимации: плавное появление, размытие и круговая раскладка работают из коробки. Также доступна встроенная поддержка Baseline Profiles для ускорения загрузки.

🤖 GitHub

@javatg
🔥64👍3
📚 Java & Related Concepts — полный гайд по Java-экосистеме. Этот репозиторий представляет собой целую энциклопедию для Java-разработчиков. Автор структурировал материал от основ языка до продвинутых тем: многопоточность, проектирование систем, алгоритмы и даже Kotlin с Android-разработкой.

Проект имеет полезные разделы с примерами кода: от классических паттернов вроде Singleton до задач на динамическое программирование. Для тех, кто готовится к собеседованиям, есть подборка LeetCode-шаблонов и реальных interview-задач.

🤖 GitHub

@javatg
🔥112👍2
⚡️ Почему лучшие разработчики всегда на шаг впереди?

Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.

ИИ: www.tg-me.com/ai_machinelearning_big_data
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Мл собес www.tg-me.com/machinelearning_interview
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/DevopsDocker
Хакинг: www.tg-me.com/linuxkalii
МЛ: www.tg-me.com/machinelearning_ru
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/java_library
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Физика: www.tg-me.com/fizmat

Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno

🖥 Chatgpt для кода в тг: @Chatgpturbobot -

📕Ит-книги: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi

Подпишись, чтобы всегда знать, куда двигаться дальше!
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
🌳 AVL, Red-Black и обычные BST — в чём разница и что использовать

Если вы работаете с алгоритмами или backend-структурами, важно понимать, чем отличаются разные виды бинарных деревьев поиска. Они вроде бы похожи, но ведут себя по-разному под нагрузкой.

📘 1. Обычное BST (Binary Search Tree)

🔹 Это простое бинарное дерево, где:
> левый элемент < корень < правый элемент

🔹 Плюсы:
– простая реализация
– отлично работает в идеальных условиях (например, сбалансированные данные)

🔹 Минусы:
– если данные приходят в отсортированном виде — дерево вырождается в связный список
– время поиска, вставки, удаления может стать O(n) вместо O(log n)

📗 2. AVL-дерево

🔹 Это самобалансирующееся BST, в котором:
> разница высот левого и правого поддерева никогда не превышает 1

🔹 Плюсы:
очень быстрое чтение и поиск (потому что дерево строго сбалансировано)
– гарантированное O(log n) на все операции

🔹 Минусы:
– при вставке и удалении может потребоваться много вращений, особенно при массовых изменениях
– чуть сложнее в реализации

📌 Используется, когда важна максимально быстрая навигация по дереву (например, базы данных, кэшированные индексы)

📕 3. Red-Black Tree (Красно-чёрное дерево)

🔹 Более "гибкое" самобалансирующееся дерево
> баланс поддерживается за счёт цветов узлов и набора правил
> менее строгое, чем AVL, но быстрее на изменениях

🔹 Плюсы:
– меньше вращений при вставке/удалении
лучше масштабируется, особенно при больших объёмах данных
– используется в TreeMap (Java), std::map (C++), Linux kernel

🔹 Минусы:
– чуть менее сбалансировано, чем AVL
поиск может быть чуть медленнее, но разница минимальна

📌 Используется в системах, где часто происходят вставки и удаления, и важна скорость обновлений, а не только чтения.

🧠 Итого:

| Структура | Быстрее при... | Баланс | Где применяется |
|----------------|------------------------|--------|----------------------------------------|
| **BST** | — (только в идеале) | нет | учебные задачи, простые деревья |
| **AVL** | Поиске | строгий | базы данных, индексы, словари |
| **Red-Black** | Вставке/удалении | умеренный | языковые stdlib, ядра, runtime-структуры |


🔗 Подробнее:

https://www.java67.com/2019/10/difference-between-binary-tree-avl-red-black-binary-search-tree.html

#algorithms #datastructures #backend #trees #avl #redblack

@javatg
9👍7🔥4
🎨 Mordant — библиотека для стилизации текста в терминале. Этот мультиплатформенный Kotlin-проект превращает скучный терминальный вывод в визуально приятные интерфейсы. С ним можно не просто раскрашивать текст, но и создавать таблицы, анимированные прогресс-бары и даже рендерить Markdown прямо в консоли.

Инструмент умеет автоматически определять возможности терминала и поддерживает корутины для анимаций. Под капотом: умная система виджетов для компоновки элементов и кросс-платформенная работа на JVM, JS и Native.

🤖 GitHub

@androidits
👍7🔥42😁1
Как выглядят будни разработчиков управляемых БД, S3 и CDN в стартапе внутри big tech?

Слушайте в подкасте «Расскажите про MWS». В новом выпуске мы беседуем с Дмитрием Черёмухиным, руководителем направления Data Platform в MWS.

Обсудим, без каких сервисов не может существовать ни одно современное облако, какие команды их разрабатывают и с какими сложностями они сталкиваются. И самое важное, то, о чём все мечтают, — прекрасный green field, в котором все так хотели поработать.

Смотрите и слушайте на всех популярных площадках:
🎬 YouTube
🎬 VK Видео

🎧 Яндекс Музыка
🎧 Apple Podcasts
🎧 Mave Digital
🌐 JTS Topology Suite — мощная Java-библиотека для работы с геометрией. Проект предоставляет инструменты для создания и манипуляции векторной геометрией, включая пространственные операции. Входит в рабочую группу LocationTech Eclipse Foundation и служит основой для многих GIS-решений.

В комплекте идёт TestBuilder с GUI для визуализации геометрии и тестирования функций. Библиотека особенно полезна разработчикам GIS-приложений систем пространственного анализа. На базе JTS построены популярные порты для C++, .NET и JavaScript.

🤖 GitHub

@javatg
🔥51👍1
🖥 Logback Access Reactor Netty — управление access-логами для реактивных веб-приложений на Java и Kotlin. Этот проект предоставляет интеграцию популярной Java библиотеки Logback-access с HTTP-сервером Reactor Netty, на которым построен реактивный стек Spring WebFlux.

Инструмент доступен для использования двумя способами: в виде Spring Boot стартера для Spring Boot приложений и в виде отдельной библиотеки для приложений, которые используют Reactor Netty HTTP Server напрямую. Настройка простая: достаточно подключить зависимость в проект и добавить файл logback-access.xml с Logback конфигурацией access-логов (appender, encoder, pattern).

🤖 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет дня: преобразование списка в `Map` за 1 строчку с Java Streams

Хочешь из списка сделать Map, где ключ — объект, а значение — частота его появления? Без циклов — через Stream:


import java.util.*;
import java.util.stream.*;

public class FrequencyCount {
public static void main(String[] args) {
List<String> items = List.of("apple", "banana", "apple", "orange", "banana", "apple");

Map<String, Long> freq = items.stream()
.collect(Collectors.groupingBy(e -> e, Collectors.counting()));

System.out.println(freq);
// 👉 {orange=1, banana=2, apple=3}
}
}


📌 Удобно для:
— подсчёта повторов
— агрегации данных
— замены SQL GROUP BY

@javatg
👍1911🥰2
⚠️ Чем опасен Scheduled(fixedRate) без Transactional в Spring?

Многие используют @Scheduled для запуска задач по таймеру, но забывают об одной критичной вещи — транзакциях. Особенно если указан fixedRate.

👎 Проблема:

Если метод выполняется дольше, чем интервал fixedRate, запускается второй поток, который снова возьмёт те же данные.
Результат — дублирование обработки, гонки, порча данных.

Пример:

@Scheduled(fixedRate = 10_000)
public void cleanUp() {
List<Job> jobs = jobRepository.findAllByStatus(PENDING);
jobs.forEach(job -> {
job.setStatus(PROCESSING);
jobRepository.save(job);
});
}


💥 Через 10 секунд начнёт работать следующий вызов, даже если первый ещё не закончен.

Решение: обернуть в @Transactional и использовать блокировки:


@Transactional
@Scheduled(fixedRate = 10_000)
public void cleanUp() {
List<Job> jobs = jobRepository.findAllByStatusForUpdate(PENDING);
...
}


📌 Также можно:
— использовать fixedDelay вместо fixedRate — он ждёт окончания предыдущей задачи
— добавить флаг locked, чтобы явно помечать уже взятые задачи
— заменить @Scheduled на более надёжные инструменты:

🔹 Spring Batch — для сложных задач
🔹 Spring Integration / Camunda — если нужны гарантии и retry
🔹 Quartz — если важны очередь и контроль запуска

🔧 Не упирайтесь в @Scheduled, если задача критична к повторной обработке.

@javatg
👍182🔥2🥰1😱1
🧱 Maven vs. ⚡️Gradle — что выбрать разработчику?

Когда речь заходит о сборке Java-проектов, чаще всего выбор стоит между двумя фреймворками: Maven и Gradle. Оба стали стандартом в индустрии, но у каждого — свои сильные и слабые стороны. Разбираем, кому что подойдёт 👇

🔹 Maven — стабильная классика:

Строгая структура: легко читать и сопровождать
Надёжность и предсказуемость сборки
Много плагинов и готовых решений
⚠️ XML-конфигурация громоздкая
⚠️ Медленнее по сравнению с Gradle

🔸 Gradle — гибкость и скорость:

Поддержка Kotlin и Groovy DSL
Инкрементальные сборки и кэширование
Гибкий подход к конфигурации
⚠️ Порог входа выше
⚠️ Сложности с отладкой настроек

📌 Вывод:

🔷 Выбирай Maven, если важны стабильность, читаемость и простота
🔶 Выбирай Gradle, если хочешь максимум производительности и гибкости

💬 В крупных проектах Gradle становится всё популярнее, особенно с Kotlin.
Но в enterprise-среде Maven по-прежнему остаётся стандартом.

А ты чем пользуешься? Делись в комментариях ⬇️

@javatg
👍93🥰1
2025/09/13 16:34:31
Back to Top
HTML Embed Code: