Декабрь оказался богат на полезные мероприятия.
Online Java Meetup от Haulmont
🗓 9 декабря, 18:00
Небольшой, но информативный митап, где будут обсуждать проблемы доступа к данным.
🔹 «Данные и микросервисы: проблемы и решения»
Developer Advocate Андрей Беляев расскажет о переходе от монолита к микросервисам, микрофреймворках (с подробностями про Micronaut Data, Panache и Helidon DB Client) и реактивном программировании.
🔹 «Удалять, чтобы осталось: решение от Hibernate и его последствия»
Developer Advocate Андрей Оганесян выступит с докладом о мягком удалении и разберет неочевидные факты на конкретных примерах. Заявлено, что доклад будет полезен опытным разработчикам. Учитывая, что большинство моих коллег относятся к soft delete скептически, послушать будет интересно.
Участие бесплатное, нужно только зарегистрироваться на Timepad. За час до начала вам пришлют ссылку на трансляцию.
Online Java Meetup от Haulmont
🗓 9 декабря, 18:00
Небольшой, но информативный митап, где будут обсуждать проблемы доступа к данным.
🔹 «Данные и микросервисы: проблемы и решения»
Developer Advocate Андрей Беляев расскажет о переходе от монолита к микросервисам, микрофреймворках (с подробностями про Micronaut Data, Panache и Helidon DB Client) и реактивном программировании.
🔹 «Удалять, чтобы осталось: решение от Hibernate и его последствия»
Developer Advocate Андрей Оганесян выступит с докладом о мягком удалении и разберет неочевидные факты на конкретных примерах. Заявлено, что доклад будет полезен опытным разработчикам. Учитывая, что большинство моих коллег относятся к soft delete скептически, послушать будет интересно.
Участие бесплатное, нужно только зарегистрироваться на Timepad. За час до начала вам пришлют ссылку на трансляцию.
Что будет выведено на экран следующим кодом?
int a = 15;
System.out.print(a);
{
a ++;
System.out.print(a);
}
System.out.print(a);
int a = 15;
System.out.print(a);
{
a ++;
System.out.print(a);
}
System.out.print(a);
Что будет выведено на экран следующим кодом?
Anonymous Quiz
24%
сообщение об ошибке
16%
151615
49%
151616
11%
151516
Не всегда понятно, действительно ли для вашей задачи Hibernate Reactive подойдет лучше, чем классический Hibernate ORM, и стоит ли использовать его вообще. В статье, кроме логичного ответа (стоит, если ваше приложение уже по сути является реактивным), даны метрики производительности, по которым можно судить об эффективности. Стоит почитать, чтобы понять, на что обращать внимание при анализе сценария.
А еще приятно, что во всех случаях учитывается контекст и нет попытки сделать единый далеко идущий вывод.
А еще приятно, что во всех случаях учитывается контекст и нет попытки сделать единый далеко идущий вывод.
Хабр
Hibernate Reactive: стоит ли оно того?
В течение последнего года мы готовились к выпуску первого стабильного релиза Hibernate Reactive и пытались ответить на некоторые вопросы, которые у нас возникли. Анализ производительности и...
Алгоритмы_на_Java_by_Седжвик_Р_Уэйн_К_Sedgewick_Wayne_z_lib_org.pdf
186.6 MB
Наряду с Корменом, это классика, которую надо знать.
✅ вся необходимая база описана с учетом особенностей Java;
✅ даны реальные примеры, а не псевдокод (всегда ценю такое);
✅ написано легко и доступно: в свое время с трудом продирался сквозь Кнута и Скиену, а вот Седжвик зашел прекрасно.
К сожалению, под рукой оказался только перевод, но если у вас есть возможность – читайте в оригинале. В русскоязычном издании при оформлении почему-то решили переносить вложенные циклы на следующую страницу – читать, мягко говоря, неудобно.
✅ вся необходимая база описана с учетом особенностей Java;
✅ даны реальные примеры, а не псевдокод (всегда ценю такое);
✅ написано легко и доступно: в свое время с трудом продирался сквозь Кнута и Скиену, а вот Седжвик зашел прекрасно.
К сожалению, под рукой оказался только перевод, но если у вас есть возможность – читайте в оригинале. В русскоязычном издании при оформлении почему-то решили переносить вложенные циклы на следующую страницу – читать, мягко говоря, неудобно.
Полезный ресурс для работы с TLS 🔐
Рано или поздно с протоколом TLS сталкивается каждый: например, если нужно настроить протокол в приложении на Spring Boot. И к такой встрече лучше подготовиться.
На этом сайте в полуинтерактивной форме демонстрируются все этапы TLS-хендшейка. Можно подробно изучить, как работает соединение, и посмотреть код на GitHub. Будет интересно даже тем, кто совсем не представляет, как функционируют криптографические протоколы.
Рано или поздно с протоколом TLS сталкивается каждый: например, если нужно настроить протокол в приложении на Spring Boot. И к такой встрече лучше подготовиться.
На этом сайте в полуинтерактивной форме демонстрируются все этапы TLS-хендшейка. Можно подробно изучить, как работает соединение, и посмотреть код на GitHub. Будет интересно даже тем, кто совсем не представляет, как функционируют криптографические протоколы.
tls12.xargs.org
The Illustrated TLS 1.2 Connection
Every byte of a TLS connection explained and reproduced
Какой из перечисленных компонентов класса А не будет доступен расширяющему его классу B?
Anonymous Quiz
2%
public short a;
2%
protected void summ (int a, int b)
87%
private void pow (int a, double b)
2%
protected int summ (double x1, double x2)
7%
void mult (float a) при условии, что классы А и B находятся в одном пакете
Замечал, что даже вполне опытные разработчики временами путаются в определениях многопоточности, параллелизма и асинхронности. Ничего удивительного, вопрос и правда сложный, но разрешимый – нужно только упорство и желание разобраться.
Прочитав статью, можно увидеть отчетливую разницу между тремя понятиями. Только не поддавайтесь на уловку автора: он нахваливает преимущества асинхронной модели перед синхронной, но на графиках нет привязки ни ко времени, ни к размеру задач.
Каждая модель хороша для своих целей, а наша задача – не путаться в способах их достижения. С этим статья точно поможет.
Прочитав статью, можно увидеть отчетливую разницу между тремя понятиями. Только не поддавайтесь на уловку автора: он нахваливает преимущества асинхронной модели перед синхронной, но на графиках нет привязки ни ко времени, ни к размеру задач.
Каждая модель хороша для своих целей, а наша задача – не путаться в способах их достижения. С этим статья точно поможет.
Code Wala
Concurrency vs Multi-threading vs Asynchronous Programming : Explained
Recently, I was speaking in an event and I asked a question about Asynchronous programming to the audience, I found that many were confused between multi-threading and asynchronous programming and …
Java_Concurrency_In_Practice_Brian_Goetz_with_Tim_Peierls,_Joshua.pdf
6.3 MB
Базовая книга про concurrency, считается классикой. Стоит прочесть, если:
✅ вам надо разобраться в основах работы с потоками;
✅ вы хотите понять, как избежать распространенных ошибок компиляции при работе с многопоточностью;
✅ вы уже не новичок, но немного «плаваете» в терминологии.
Есть значительный недостаток:
❌ книга 2006 года выпуска, так что про новые фичи никакой инфы оттуда вы не почерпнете. Автор говорил, что даже с учетом обновлений Java перерабатывать материал не собирается. Но если вам нужна только база – смело читайте.
✅ вам надо разобраться в основах работы с потоками;
✅ вы хотите понять, как избежать распространенных ошибок компиляции при работе с многопоточностью;
✅ вы уже не новичок, но немного «плаваете» в терминологии.
Есть значительный недостаток:
❌ книга 2006 года выпуска, так что про новые фичи никакой инфы оттуда вы не почерпнете. Автор говорил, что даже с учетом обновлений Java перерабатывать материал не собирается. Но если вам нужна только база – смело читайте.
Радует, когда выходят переводы по-настоящему годных материалов.
Появился неплохой перевод статьи о создании нативных образов при помощи Spring Boot. Рассматриваются все аспекты: создание нового проекта, конфигурирование компонента и контроллера, неблокирующий HTTP-клиент, параметризация, тестирование и многое другое.
Можно сохранить и использовать как туториал 📝
Появился неплохой перевод статьи о создании нативных образов при помощи Spring Boot. Рассматриваются все аспекты: создание нового проекта, конфигурирование компонента и контроллера, неблокирующий HTTP-клиент, параметризация, тестирование и многое другое.
Можно сохранить и использовать как туториал 📝
Хабр
Создаем нативный образ при помощи Spring Boot
Облачные технологии открыли путь к множеству новых практических областей, среди которых есть и такие, которые ранее были совершенно невозможны. Среди них выделяется бессерверная парадигма:...
Недавняя уязвимость Apache Log4j для пользователей Spring Boot может быть деликатно устранена переходом на версию Log4j 2.15.0. Например, при использовании системы сборки Maven, изменить версию можно, добавив в pom-файл в раздел Properties следующую строку: <log4j2.version>2.15.0</log4j2.version>.
Появилась подробная статья об уязвимости Apache Log4j. Информативный обзор, где собрали все необходимые данные и рассказали о способах защиты (описанный мной в прошлом посте тоже упоминают), за что авторам отдельное спасибо.
vc.ru
Уровень опасности — 10 баллов из 10: уязвимость Log4Shell угрожает миллионам серверов по всему миру — Техника на vc.ru
Хакеры могут получить удалённый контроль над приложениями и устройствами: в большинстве случаев специальные знания для такой атаки не нужны.
Это должно было случиться: неравнодушные из Intruder создали сайт с мемами про уязвимость Apache Log4j. Можно полистать, посмеяться (или поплакать) и даже отправить свой мем по теме.
Мой любимый пока вот этот.
(источник)
Мой любимый пока вот этот.
(источник)
Трудности импортозамещения: Сбер отказался от серверов на базе российских процессоров «Эльбрус-8С» после предварительного тестирования. Причина – абсолютное техническое несоответствие требованиям. Из 44 параметров предоставленные на тестирование серверы соответствовали лишь 7.
На данном этапе российское железо настолько не вызывает доверия, что фраза: «Мы приятно удивлены, что это вообще работает» никого не смущает. Вокруг «Эльбруса» много негатива, но на текущей стадии ожидать конкуренции с тем же Intel Xeon как минимум странно. Посмотрим, что будет, когда поступят в массовое использование «Эльбрус-8СВ», которые по характеристикам обещают быть значительно лучше.
А еще отбракованные «Эльбрусы» можно было купить как магнит на холодильник. Теперь такой раритет разве что на авито искать.
На данном этапе российское железо настолько не вызывает доверия, что фраза: «Мы приятно удивлены, что это вообще работает» никого не смущает. Вокруг «Эльбруса» много негатива, но на текущей стадии ожидать конкуренции с тем же Intel Xeon как минимум странно. Посмотрим, что будет, когда поступят в массовое использование «Эльбрус-8СВ», которые по характеристикам обещают быть значительно лучше.
А еще отбракованные «Эльбрусы» можно было купить как магнит на холодильник. Теперь такой раритет разве что на авито искать.
Ситуация с Log4j меняется стремительно, лучше обновлять до версии 2.17.0 и следить за новостями. А пока вот хорошая статья о том, как определить, зависит ли ваш Java-проект от уязвимой версии Log4j.
P.S. Друзья и коллеги, скоро вернусь к прежнему формату, буду делиться полезным контентом и мемами, но пока, сами понимаете, пишу о том, что волнует больше всего.
P.S. Друзья и коллеги, скоро вернусь к прежнему формату, буду делиться полезным контентом и мемами, но пока, сами понимаете, пишу о том, что волнует больше всего.
DZone
How to Check if a Java Project Depends on A Vulnerable Version of Log4j
If your application uses Log4j from version 2.0-alpha1 to 2.14.1, you should update to the latest version (2.16.0 at the time of writing this) as soon as ...
При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 * ch2);
System.out.print(ch1 + ch2);
char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 * ch2);
System.out.print(ch1 + ch2);
При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
Anonymous Quiz
32%
сообщение об ошибке
44%
9506195
5%
a + b
11%
9506a + b
8%
NaNNaN