14242
Java Библиотека По всем вопросам- @notxxx1 @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI @pythonlbooks-📚 @programming_books_it -it 📚 № 5032728887
🔥 Server Survival: Стройте облачную инфраструктуру!
Играйте в интерактивную 3D-симуляцию, где вы - облачный архитектор. Стройте и масштабируйте облачную инфраструктуру, защищаясь от DDoS-атак и управляя бюджетом. Цель — выжить как можно дольше, обрабатывая легитимный трафик и избегая потерь репутации.
🚀Основные моменты:
- Управление бюджетом и репутацией.
- Разные типы трафика: веб, API и мошеннический.
- Режимы игры: выживание и песочница для экспериментов.
- Улучшение сервисов для повышения производительности.
- Интуитивное управление и визуальная обратная связь.
📌 GitHub: https://github.com/pshenok/server-survival
📌 Durable Execution Engine на SQLite:
• Durable Execution (DE) - это подход, который позволяет выполнять длинные многошаговые процессы так, чтобы после сбоя можно было продолжить с последнего успешного шага, а не запускать всё заново.
• В статье показан простой Proof of Concept - Persistasaurus: лёгкий DE-движок на Java, который использует SQLite как хранилище состояния.
• Потоки (flows) пишутся как обычный Java-код: методы помечаются аннотациями @Flow и @Step, а их прогресс автоматически сохраняется. Если процесс падает, можно безопасно перезапустить его без повторного выполнения шагов.
• Идея не новая, но современная Java + SQLite позволяют сделать удивительно компактное и понятное решение без тяжёлой инфраструктуры.
Почему это полезно:
• Упрощает работу с долгоживущими процессами
• Избавляет от повторных вычислений и экономит ресурсы
• Подходит для прототипов, внутренних сервисов и задач средней сложности
Что учитывать:
• Это только прототип - для реальных больших систем нужно масштабирование, отказоустойчивость, параллелизм и дополнительные инструменты
• SQLite отлично подходит для простых сценариев, но не для высоконагруженных распределённых систем
🔗 Читаем тут: morling.dev/blog/building-durable-execution-engine-with-sqlite/
🔍 Завтра тестовое собеседование с Java-разработчиком
19 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
🚀 В Spring Boot можно точечно отключать ненужную автоконфигурацию через аннотацию
**@SpringBootApplication(exclude = …)**.
Это удобно, когда в проекте есть своя кастомная конфигурация, которая конфликтует с дефолтной, или когда вы хотите убрать лишние автоматические настройки и контролировать поведение вручную.
Так вы оставляете только нужные части автоконфигурации и избегаете скрытых конфликтов.
#SpringBoot #JavaDev
Интенсив по очередям: Kafka & NATS
Асинхронное взаимодействие и очереди — невероятно широкая тема, и абсолютно обязательная к изучению всем, кто интересуется архитектурой. Разработчику важно понимать архитектурные особенности, сильные и слабые стороны компонент, на базе которых строится архитектура.
🌐 В программе курса:
▪️Асинхронное взаимодействие с помощью очередей: подходы, свойства, гарантии
▪️Какие бывают очереди, основные системы очередей, на какие свойства и требования смотреть при выборе
▪️Как конфигурировать и управлять системами очередей
▪️Архитектура Apache Kafka, streams, topics, конфигурации от минимального single instance до production grade кластера с отказоустойчивостью
▪️Архитектуры NATS, pub/sub, req/res, streaming, кластер, суперкластер, федерация, edge.
Всё в формате «живых» онлайн-сессий (лекции, брейнштормы, демо).
🥸 Кто мы: R&D-центр Devhands.io, наш канал. Автор курса — Владимир Перепелица, эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload.
🗓 Старт курса 11 ноября. Изучить программу и записаться можно здесь.
Ждём вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvfuGhD
📌 JoySafety — фреймворк безопасности для LLM от JD
JoySafety — это открытый фреймворк для обеспечения безопасности больших языковых моделей. Он уже используется внутри JD (京东) для AI-ассистентов, логистики и консультационных сервисов.
🔍 Возможности
- Фильтрация и защита: от злонамеренных промптов, нежелательного контента, атак на модель.
- Модульная архитектура: отдельные сервисы для BERT, FastText, ключевых слов, знаний и векторных проверок.
- Горячее обновление стратегий: можно менять полиси безопасности без перезапуска.
- Продакшн-масштаб: поддержка больших нагрузок, горизонтальное масштабирование, интеграция с MySQL/Redis и векторной БД.
- Примеры для Python, Java и Go в разделе *quickstart*.
🛠 Быстрый старт
1. Клонировать репозиторий:
git clone https://github.com/jd-opensource/JoySafety
2. Скачать модели через git-lfs или вручную (HuggingFace/ModelScope).
3. Настроить .env (переменная `SAFETY_MODEL_DIR`).
4. Запустить:
docker-compose --env-file .env up
5. Использовать API из примеров.
JoySafety даёт готовую инфраструктуру модерации и защиты вокруг LLM. Он предотвращает утечки, фильтрует опасный текст и позволяет настраивать собственные политики безопасности. Подходит для продакшн-сценариев, где важна защита пользователей и корректная работа модели.
👉 Репозиторий: https://github.com/jd-opensource/JoySafety
*придется включить автоперевозчик в репо
☕ Java25 уже на подходе!
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/
#Java #JEP #Leyden #Programming
📌Новый прорыв в алгоритмах: найден способ считать кратчайшие пути быстрее Дейкстры
Метод преодоления "барьера сортировки" для задач кратчайшего пути в ориентированных графах.
Группа исследователей из университетов Синьхуа, Стенфорда и Института Макса Планика представили детерминированный алгоритм для решения задачи SSSP в ориентированных графах с неотрицательными вещественными весами, который работает за время, пропорциональное числу ребер, умноженному на логарифмический множитель, который растет медленнее, чем обычный логарифм.
Проблема поиска кратчайшего пути от одной вершины до всех остальных (SSSP) — одна из фундаментальных в теории графов, и её история тянется с 50-х годов прошлого века. Классический алгоритм Дейкстры, в связке с продвинутыми структурами данных, решает эту задачу за время, которое примерно пропорционально сумме числа рёбер и произведения числа вершин на логарифм от их же числа.
Именно этот множитель - число вершин, умноженное на логарифм, долгое время считался теоретическим минимумом, так как в своей основе алгоритм Дейкстры побочно сортирует вершины по расстоянию от источника. Этот предел известен как «барьер сортировки» и казался непреодолимым.
120 ключевых вопросов по SQL за 2025 год
Статья содержит 120 ключевых вопросов по SQL для собеседований, разделённых по темам и уровням сложности, с краткими пояснениями.
Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server).
🔜 Подробности
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Базы данных: t.me/sqlhub
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot -
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
🐳 Учишься Docker? Вот идеальный интерактивный челлендж для новичков!
Docker 101: как запускать контейнеры в фоне, читать логи и переподключаться к ним
Челлендж от iximiuz Labs (Ivan Velichko) поможет разобраться с базовыми, но важными командами:
✅ docker run -d — запуск контейнера в фоне
✅ docker logs — просмотр логов
✅ docker attach — повторное подключение к контейнеру
Ничего не нужно устанавливать — всё прямо в браузере!
Попробовать можно здесь:
Если хочешь прокачать Docker на практике — начинай отсюда.
👉 https://labs.iximiuz.com/challenges/docker-101-container-run-in-background?x=2
Сохраняй себе годноту : сотни бесплатных PDF-книг по языкам и технологиям.
Здесь есть буквально всё: гайды по Bash и основам Linux, книги по всем актуальным языкам программирования (включая Python, JS, Swift и другие), материалы по SQL, Docker, алгоритмам и не только. База регулярно обновляется и полностью бесплатна.
🆖 https://goalkicker.com/
⚡️ SQL-шпаргалка, которая выручит в интервью, проекте и проде
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
👩💻🎯 Открытый урок «Кракозябры vs Java: как победить кодировки и стать Гуру Unicode?».
🗓 17 июля в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик».
Ошибки в кодировках ломают приложения, превращая текст в «абракадабру». Понимание таблиц кодировок — must-have навык для работы с данными, файлами и международными проектами.
О чём поговорим:
✔️ ASCII, UTF-8, Unicode — WTF? Разберём, как Java хранит и обрабатывает текст.
✔️ Почему файлы «ломаются»? Как избежать ошибок при чтении/записи данных.
✔️ Лайфхаки для юникода: работа с иероглифами и русским языком.
✔️ Секреты JVM: как настроить кодировку в проекте.
Кому будет интересно:
Начинающим Java-разработчикам и тестировщикам, сталкивающимся с международными данными и проблемами кодировки.
В результате вебинара вы:
Научитесь контролировать кодировки в своих приложениях, исправлять «кракозябры» и работать с любыми текстовыми данными без страха.
🔗 Ссылка на регистрацию: https://otus.pw/0egZ/
⚡️ Почему лучшие разработчики всегда на шаг впереди?
Потому что они знают, где брать настоящие инсайд!
Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе.
ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🖥 Chatgpt для кода в тг: @Chatgpturbobot
📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi
Подпишись, чтобы всегда знать, куда двигаться дальше!
Как создать эффективное REST API или оптимизировать его? Что сделать для ускорения Redis? Какие секреты скрываются под капотом Android? Что делать при конфликте стилей в микрофронтендах? Что поможет провести продуктивное кросс-ревью в команде?
Своим опытом в самых разных сферах делятся frontend-разработчики, системные аналитики, разработчики под Android и iOS из команды ПСБ.
Читайте в блоге ПСБ на Хабре, делитесь в комментариях своим мнением и опытом!
🚀 Spring Batch совет
Хочешь контролировать, сколько раз может стартовать конкретный шаг в Spring Batch? Используй параметр startLimit — он задаёт максимальное число запусков для step'а.
Полезно для случаев с повторными попытками, защитой от бесконечного рестарта и строгим контролем бизнес-логики.
🚀 Java API Tip
StackWalker — удобный инструмент для обхода стек-фреймов и их интроспекции. Полезен для дебага, профилирования и анализа поведения кода на лету. Позволяет считывать текущий стек, фильтровать фреймы, смотреть классы и методы, откуда был вызван код.
Документация:
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/StackWalker.html
#Java #JavaAPI
🚀 Spring Boot Pro Tip: свой FailureAnalyzer
В Spring Boot можно перехватывать ошибки на этапе запуска и превращать их в понятные человеку сообщения. Для этого создан механизм FailureAnalyzer.
Зачем он нужен
- улучшает диагностику на старте приложения
- помогает быстро находить причины конфигурационных ошибок
- делает логирование чище и понятнее
Как работает
Вы создаёте свой класс, который анализирует исключение и возвращает читаемое описание проблемы и советы по исправлению.
Под капотом Spring Boot автоматически подцепит ваш анализатор и покажет дружелюбное сообщение вместо сырого stacktrace.
Документация:
https://docs.spring.io/spring-boot/how-to/application.html#howto.application.failure-analyzer
#SpringBoot #Java #FailureAnalyzer #Backend #DevTips
🔧 Как ускорить работу в Linux с помощью alias
В Linux есть удобный приём - alias. Это сокращённые команды, которые экономят время и избавляют от повторного ввода длинных конструкций.
📌 Проверить текущие alias
alias
Выведет список всех настроенных сокращений, например:
ll='ls -alF'
alias wr="cd /var/www/html"
Теперь wr перенесёт вас в /var/www/html.
unalias wr
Bash → ~/.bashrc
Zsh → ~/.zshrc
Fish → ~/.config/fish/config.fish
alias gs="git status"
alias update="sudo apt update && sudo apt upgrade -y"
alias serve="python3 -m http.server"
alias ..="cd .."
alias ...="cd ../.."
source ~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
alias gs="git status"
alias gp="git pull"
alias update="sudo apt update && sudo apt upgrade -y"
alias serve="python3 -m http.server"
alias ..="cd .."
🖥 Java 21: String Templates (JEP 430) — Интерполяция строк как в JavaScript, но со своим подходом
Java 21 представила новый способ работы со строками — *string templates*. Это функция-превью (preview), которую нужно включать явно (`--enable-preview`) и использовать с JDK 21 или 22. В Java 23 от неё отказались, чтобы переработать дизайн.
Как это работает?
- Используется шаблонный процессор, например STR.
- Сразу после него идёт точка . и строка-шаблон с выражениями внутри \{...}:
String name = "Duke";
String greeting = STR."My name is \{name}";
// -> "My name is Duke"
int x = 10, y = 20;
String result = STR."\{x} + \{y} = \{x + y}";
String json = STR."""
{
"user": "\{name}",
"temp": \{tempC}
}
""";
🖥В тг добавили ChatGPT-5, который стал значительно умнее !
Новая версия лучше в:
- коде
- написание текстов
- распознании изображений
- стилизации ваших фоток
И не только
Попробуйте сами: t.me/Chatgpturbobot
🖥 ОГРОМНАЯ обучающая база по Java на русском языке — настоящая золотая жила для тех, кто хочет освоить один из самых востребованных языков в IT.
Это не просто курс — это полноценный путь от абсолютного нуля до уровня, пригодного для поиска работы.
Вы пройдёте всё: от основ языка и ООП до современных фреймворков, паттернов проектирования и реальных практик разработки.
🔹 Что внутри:
🟡 Полный путь обучения языку: синтаксис, концепции, архитектура, best practices
🟡 Ключевые алгоритмы и паттерны решения задач — с примерами и объяснениями
🟡 Множество видеоразборов сложных тем и реальных кейсов
🟡 Практика на каждом шагу: упражнения разного уровня сложности после каждой лекции
🟡 Проект живёт с 2018 года и постоянно обновляется — вместе с новыми версиями Java, Spring, инструментами и подходами
Здесь вы не просто выучите Java — вы станете настоящим базированным разработчиком.
🚀 Становимся гуру Java здесь
@javatg
🔍 Enumeration vs Iterator в Java — в чём разница и что выбрать?
В Java есть два интерфейса для перебора элементов коллекций: Enumeration и Iterator. Оба позволяют пройтись по элементам, но у них разный синтаксис, возможности и история.
📌 1. Enumeration (старый интерфейс, до Java 2)
Используется в таких классах, как Vector и Hashtable.
🧪 Пример:
Vector<String> vector = new Vector<>();
vector.add("A");
vector.add("B");
Enumeration<String> e = vector.elements();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
ArrayList<String> list = new ArrayList<>();
list.add("X");
list.add("Y");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// Лучше:
for (Iterator<String> it = list.iterator(); it.hasNext();) {
String val = it.next();
if (val.equals("X")) it.remove();
}
for (String item : list) {
System.out.println(item);
}
list.stream().forEach(System.out::println);
🌟 Amazon встроила векторную базу данных прямо в хранилище S3.
Amazon анонсировала S3 Vectors - нативную поддержку векторного поиска прямо внутри своего вездесущего объектного хранилища. Заявлено, что это может снизить затраты на хранение и обработку векторов до 90%.
По сути, AWS предлагает не отдельный сервис, а новый тип бакета vector bucket. Внутри него вы создаете векторные индексы, указывая размерность векторов и метрику расстояния (косинусную или евклидову).
🟡Дальше все работает как магия
Вы просто загружаете в индекс свои эмбеддинги вместе с метаданными для фильтрации, а S3 берет на себя всю грязную работу по хранению, автоматической оптимизации и обеспечению субсекундного ответа на запросы. Никакого управления инфраструктурой.
Один бакет может содержать до 10 тысяч индексов, а каждый индекс, в свою очередь, десятки миллионов векторов.
🟡Главная сила этого решения - в экосистеме.
S3 Vectors бесшовно интегрируется с Bedrock Knowledge Bases. Теперь при создании базы знаний для RAG-приложения можно просто указать S3-бакет в качестве векторного хранилища.
Процесс создания RAG-пайплайна для тех, кто уже живет в облаке AWS, упрощается до нескольких кликов. То же самое касается и SageMaker Unified Studio, где эта интеграция тоже доступна из коробки.
🟡"One more thing" анонса - умная интеграция с сервисом OpenSearch.
AWS предлагает гибкую, многоуровневую стратегию. Нечасто используемые или «холодные» векторы можно экономично хранить в S3 Vectors. А когда для части данных потребуется максимальная производительность и низкая задержка в реальном времени, например, для системы рекомендаций, их можно быстро экспортировать в OpenSearch.
Это очень прагматичный инженерный подход, позволяющий балансировать между стоимостью и производительностью.
Пока сервис находится в статусе превью и доступен в регионах US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Frankfurt), and Asia Pacific (Sydney) Regions.
Попробовать S3 Vectors можно в Amazon S3 console.
🟡Статья
🖥Github
@ai_machinelearning_big_data
#AI #ML #RAG #Amazon
🧩 Как настроить DispatcherServlet в Spring — два способаDispatcherServlet — это сердце Spring MVC. Он принимает все HTTP-запросы и перенаправляет их нужному контроллеру. Вот как его можно настроить:
🔹 Через `web.xml` — классический способ
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext sc) throws ServletException {
XmlWebApplicationContext ctx = new XmlWebApplicationContext();
ctx.setConfigLocation("classpath:app-config.xml");
ServletRegistration.Dynamic servlet = sc.addServlet("dispatcher",
new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
Java. Сортировки
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
📘 Один из самых захватывающих научных обзоров за последнее время — 120 страниц про ИИ в науке!
Это первое масштабное исследование, охватывающее весь цикл научной работы:
🧠 формулировка гипотез
🔬 автоматизация экспериментов
📊 анализ данных
✍️ генерация научных текстов
🤖 и даже управление исследовательским процессом
Лето выдалось жарким для #AI4Science: в сообществе alphaXiv уже 1000+ человек. И эта работа — отличная точка входа в то, как ИИ реально меняет науку.
📄 Читать статью:
https://arxiv.org/abs/2507.01903
🌐 Обсуждение здесь:
https://alphaxiv.org/channels/towards-automated-research/6822973d801dc5932300da7f
💡 Совет по Java: автоматизируй проверку архитектурных правил через тесты
Вместо того чтобы ловить нарушения код-стандарта на ревью, формализуй их прямо в юнит-тестах. DSL-подход (в духе ArchUnit / TAIKAI) позволяет описать ограничения читаемо и выполнять их при каждом сборочном цикле.
@Test
void shouldFulfillConstraints() {
Taikai.builder()
.namespace("com.enofex.taikai") // выбранный пакет
.java(java -> java // правила для Java-кода
.noUsageOfDeprecatedAPIs() // запрет устаревших API
.methodsShouldNotDeclareGenericExceptions()// никаких throws Exception
.utilityClassesShouldBeFinalAndHavePrivateConstructors())
.logging(logging -> logging // единый стиль логгеров
.loggersShouldFollowConventions(
Logger.class, "logger",
EnumSet.of(PRIVATE, FINAL)))
.spring(spring -> spring // правила для Spring-слоя
.controllers(c -> c
.shouldBeAnnotatedWithRestController() // все контроллеры = REST
.shouldNotDependOnOtherControllers()))
.build()
.check(); // тест упадёт, если есть ошибка
}