Telegram Web Link
💡 SQL: поиск дубликатов с помощью GROUP BY и HAVING

Хотите найти строки, которые повторяются?
Используйте GROUP BY и фильтруйте через HAVING COUNT() > 1.


SELECT
email,
COUNT(*) AS cnt
FROM users
GROUP BY email
HAVING COUNT(*) > 1;


🔎 Такой запрос покажет все email, которые встречаются более одного раза.
Можно добавлять дополнительные поля в GROUP BY, чтобы находить дубли по нескольким колонкам.

@javatg
👍197🥰2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
📚🎮 SQL + Покемоны = Querymon!

Энтузиасты сделали игру, которая превращает изучение баз данных в настоящее приключение.

С нуля — начнёте с простых таблиц и базовых запросов, сложность растёт постепенно.
🔎 Освоите SELECT, FROM, WHERE, фильтры LIKE, BETWEEN, IN и функции sum(), count(), avg().
🎯 Геймплей — сотни миссий, где, чтобы пройти дальше, нужно правильно писать SQL-запросы.

SQL ещё никогда не был таким весёлым: учиться теперь так же увлекательно, как ловить покемонов.
И самое приятное — игра полностью бесплатная.

👉 Попробовать можно здесь.
🔥76👍3👏1🤬1
🚀 Продвинутый совет по Spring Boot 🚀

Используй ApplicationPidFileWriter, чтобы при старте приложения записывать его PID в файл.
Это удобно для ops-скриптов, health-checks в контейнерах и мониторинга процессов. 🔥

👉 Документация: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/context/ApplicationPidFileWriter.html

#SpringBoot #Java #DevOps
9👍4🔥4
Знали ли вы, что у SQLite есть векторное расширение? 🧮

SQLite — самая используемая база данных в мире, работает практически на любом устройстве.
Теперь можно легко строить AI-приложения с помощью SQLite-vec и новой Embedding Gemma прямо на устройстве, без интернета.

Ниже — простой пример с Python + SQLite и Ollama. SQLite-vec совместим с WASM и запускается где угодно. Пример можно адаптировать почти под любой язык: Swift, Kotlin, Java, JavaScript…

🟢Script: https://github.com/philschmid/gemini-samples/blob/main/scripts/embeddinggemma-sqlite-ollama.py
🟢Sqlite-vec: https://alexgarcia.xyz/sqlite-vec/
🟢EmbeddingGemma: https://developers.googleblog.com/en/introducing-embeddinggemma/

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3
Учим Git играючи.

Крутое десктопное приложение (Mac, Windows, Linux), которое учит работать с гитом без сухих лекций. Только практика и живой результат:

— Каждое задание выполняется в реальном Git и GitHub, а не в песочнице;
— В процессе вы собираете готовые репозитории у себя в аккаунте;
— Поддержка разных языков.

https://github.com/jlord/git-it-electron
👍19🥰21
🖥 Java 25 официально вышла — новый LTS-релиз, который будет поддерживаться минимум до сентября 2030 года.

Что в нём нового:
- более 2600 исправлений и улучшений,
- 18 JEP-ов, включая долгожданные Module Import Declarations (теперь это постоянная конструкция),
- компактные исходные файлы и возможность писать main() как instance-метод — меньше шаблонного кода, проще создавать утилиты и скрипты,
- удалён порт x86 32-бит, улучшена работа JVM и расширены API для структурной конкуренции.

Java 25 делает разработку чище и удобнее, а компании получают стабильную платформу на годы вперёд.

🟢Oracle JDK: https://www.oracle.com/java/technologies/downloads/
🟢Open JDK: http://jdk.java.net/25/

@java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍65
Полезный приём в Java: record + sealed interface для удобных и безопасных доменных моделей.

С помощью sealed можно чётко ограничить набор допустимых типов, а record делает код компактным и иммутабельным.

Пример 👇

sealed interface Payment permits CardPayment, CashPayment, CryptoPayment {}

record CardPayment(String cardNumber, double amount) implements Payment {}
record CashPayment(double amount) implements Payment {}
record CryptoPayment(String wallet, double amount) implements Payment {}


Теперь можно использовать switch с исчерпывающей проверкой:


static String process(Payment p) {
return switch (p) {
case CardPayment c -> "Оплата картой: " + c.amount();
case CashPayment c -> "Оплата наличными: " + c.amount();
case CryptoPayment c -> "Крипта из кошелька: " + c.wallet();
};
}


Преимущества:

- меньше if/instanceof;
- компилятор гарантирует, что рассмотрены все варианты;
- код становится выразительным и легко расширяемым.

🔥 Такой подход отлично подходит для бизнес-логики: платежи, статусы заказов, события системы.

@javatg
👍17🔥63
🚀 BlazingMQ — очередь сообщений от Bloomberg с упором на скорость

BlazingMQ — это open-source система для обмена сообщениями, которую Bloomberg использует в продакшене уже больше 8 лет. Она справляется с миллиардами сообщений в день и при этом держит низкую задержку.

Что умеет:
- Скорость — сотни тысяч сообщений в секунду с задержкой всего ~1–2 мс.
- Надёжность — хранение и репликация данных, защита от «битых» сообщений.
- Гибкость — поддержка разных сценариев: очереди задач, приоритеты, fan-out, broadcast.
- Эффективность — multi-hop архитектура снижает нагрузку на сеть при массовой рассылке.
- Технологии под капотом — написана на C++ с нуля, использует Raft для репликации и оптимизирована под высокую производительность.

🛠 Есть SDK для C++, Java и Python.

👉 Для чего подходит: системы реального времени, финтех, распределённые сервисы с высокими требованиями к скорости и отказоустойчивости.

🔗 Репозиторий: https://github.com/bloomberg/blazingmq

#BlazingMQ #Messaging #Bloomberg #DistributedSystems
🔥7👍42🎉1
🌐 Репозиторий Zalando RESTful API Guidelines - это рекомендации по проектированию REST API, разработанные компанией Zalando!

🌟 Он охватывает лучшие практики по организации ресурсов, кодам ответов, обработке ошибок, версионированию и безопасности API. Документ основан на реальном опыте компании и помогает создавать согласованные и масштабируемые API.

🔐 Лицензия: CC-BY-4.0

🖥 Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 no-code база данных, которая сама превращает SQL в Airtable-стиль интерфейс

Что умеет:
- Подключается к MySQL, Postgres, SQLite, MSSQL и сразу показывает данные в виде удобных таблиц
- Делает представления: таблицы, календари, канбан, формы, Гантт
- Генерирует готовые REST и GraphQL API прямо поверх базы
- Делится видами: публично или под паролем, поддерживает загрузку файлов и картинок
- Настраивает роли и доступ до уровня отдельного столбца

Плюс интеграции со Slack, Discord, мессенджерами, почтой и десятками сервисов.

По сути — Airtable, но напрямую поверх твоей базы.

https://github.com/nocodb/nocodb
👍8🔥54
This media is not supported in your browser
VIEW IN TELEGRAM
🌟 14 алгоритмов сортировки в одной минуте!

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍52
Парсим как про — представляем сборник из библиотек, сервисов и локальных тулзов для сбора информации.

• Тянет всё: картинки, видео, метаданные, аудио, документы, теги, SEO-данные, метрики сайтов, посещаемость и многое другое.
• В основе — Python, PHP, JS и Go, самые актуальные языки для парсинга.
• Сервисы имитируют поведение живого пользователя и обходят любые ограничения: от капчи до сложных защит.
• К каждому инструменту есть подробная инструкция — разберётся даже школьник.
• Всё регулярно обновляется и поддерживается разработчиками.

https://github.com/lorien/awesome-web-scraping
4🤔2
🧩 SQL хитрый трюк

Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?

Вместо сложных подзапросов используйте `ROW_NUMBER()` с PARTITION BY:


WITH numbered AS (
SELECT
id,
email,
ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
FROM users
)
SELECT id, email
FROM numbered
WHERE rn = 1;


📌 Что происходит:
- PARTITION BY email группирует строки по email
- ROW_NUMBER() нумерует их внутри группы
- WHERE rn = 1 оставляет только первую запись (а все дубликаты убираются)

💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов.

@javatg
👍21🤔42
Убираем боль при работе с Kubernetes: на GitHub появился визуальный редактор для деплоев, который превращает ад с YAML в понятный drag-and-drop.

Идея простая: меньше возни с синтаксисом — больше живого кластера.

— Тянем объекты мышкой, вместо ручного шаманства в конфиге
— Схемы всегда актуальны, обновляются каждый день из официальной репы
— Визуально видно зависимости и апдейты в реальном времени
— Экспорт готовых YAML’ов или даже прямой хостинг для GitOps
— Готовые шаблоны и переиспользуемые спеки, чтобы не изобретать велосипед заново

Теперь Kubernetes становится куда понятнее и быстрее в работе. Наслаждайтесь.

https://github.com/kubenote/KubeForge
🔥9👍52
Оживи робота своим алгоритмом и поборись за призовой фонд в 10 250 000 рублей на True Tech Champ 2025.

True Tech Champ 2025 — это третий всероссийский чемпионат по программированию от МТС с онлайн-этапами отбора и грандиозным шоу-финалом в Москве.

Тебя ждут два трека — выбирай:

I. Алгоритмический [призовой фонд 2 750 000 рублей].

Если классический олимпиадный формат — твоя стихия, этот трек для тебя. Блесни математическими навыками, покажи скилы в работе со структурами данных и написании алгоритмов — и окажись выше соперников в турнирной таблице.

II. Программирование роботов [призовой фонд 7 500 000 рублей].

Запрограммируй робота на скоростное прохождение лабиринта в симуляторе и пройди в финал. На финале участники встретятся офлайн и сразятся на четырех уровнях с полосой препятствий, вспышками света, лазерами и другими препятствиями.

Трек будет интересен начинающим и опытным разработчикам: С++, Go, Python, JS, Java, C# и не только.

Подробности на сайте. Регистрация открыта до 20 октября.
2
🧩 Задача

Напиши класс RateLimiter, который ограничивает количество вызовов метода acquire() до N раз в секунду.

Условия:

Несколько потоков могут одновременно вызывать acquire()

Если лимит превышен, вызов должен блокироваться, пока не освободится слот

Нужно учесть корректную работу в многопоточном окружении

📌 Пример использования:


RateLimiter limiter = new RateLimiter(5); // 5 запросов в секунду

for (int i = 0; i < 10; i++) {
new Thread(() -> {
limiter.acquire();
System.out.println(Thread.currentThread().getName() + " got permit");
}).start();
}


🔑 Подсказка:

Можно использовать ReentrantLock + Condition, или очередь с таймстемпами

Оптимально кольцевой буфер последних вызовов с расчётом временных интервалов

Бонус: попробуй реализовать неблокирующую версию через Semaphore + ScheduledExecutorService
10👍3🔥2
Как вы решаете вопрос с покрытием?
Почти в каждом проекте висит задача: поднять покрытие до 70%.
И почти в каждой команде никто не хочет этим заниматься.

Explyt – AI-плагин для Java и Kotlin разработчиков, который снимает эту боль.
Он генерирует юнит-тесты прямо в IDE: по коду, по runtime-трассам, по спекам. И делает это так, как будто реально вник в проект.

📌 Что умеет:
- создаёт осмысленные тесты для Java и Kotlin-кода
- поддерживает JUnit 4/5, TestNG, кастомные фреймворки
- превращает execution trace в автотесты
- предлагает фиксы, если сгенерированный тест падает
- есть режим агента, где AI сам меняет код, запускает тесты и ищет ошибки

📦 Плагин доступен:
- через JetBrains Marketplace
- или напрямую с сайта разработчика

🎁 30 дней бесплатного доступа – просто пользуйтесь.
👉 Попробовать на своём проекте
1👍1🔥1
🚀 Java Streams: Основные методы для чистого и эффективного кода!

Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:

Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡
👍91🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Говорят, что в VK есть код, который не падает даже в понедельник утром. Хотите узнать, как разработчики из VK этого добиваются?

Подписывайтесь на канал Backend VK Hub: тут кухня высоких нагрузок, новые подходы и честные разговоры с инженерами.
14👍5😁3🤯2🔥1🤬1
✔️ Математика в машинном обучении» - бесплатный курс, который предназначен для тех, кто хочет углубить свои знания в области математики, необходимой для понимания и применения методов машинного обучения и искусственного интеллекта.

Этот курс охватывает ключевые математические концепции, лежащие в основе современных алгоритмов машинного обучения, таких как линейная алгебра, теория вероятностей, статистика и оптимизация.

Курс
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1
2025/10/26 05:33:28
Back to Top
HTML Embed Code: