453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Трудности импортозамещения: Сбер отказался от серверов на базе российских процессоров «Эльбрус-8С» после предварительного тестирования. Причина – абсолютное техническое несоответствие требованиям. Из 44 параметров предоставленные на тестирование серверы соответствовали лишь 7.

На данном этапе российское железо настолько не вызывает доверия, что фраза: «Мы приятно удивлены, что это вообще работает» никого не смущает. Вокруг «Эльбруса» много негатива, но на текущей стадии ожидать конкуренции с тем же Intel Xeon как минимум странно. Посмотрим, что будет, когда поступят в массовое использование «Эльбрус-8СВ», которые по характеристикам обещают быть значительно лучше.

А еще отбракованные «Эльбрусы» можно было купить как магнит на холодильник. Теперь такой раритет разве что на авито искать.
Ситуация с Log4j меняется стремительно, лучше обновлять до версии 2.17.0 и следить за новостями. А пока вот хорошая статья о том, как определить, зависит ли ваш Java-проект от уязвимой версии Log4j.

P.S. Друзья и коллеги, скоро вернусь к прежнему формату, буду делиться полезным контентом и мемами, но пока, сами понимаете, пишу о том, что волнует больше всего.
При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?

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
Jon Kleinberg, Eva Tardos, “Algorithm Design”
Algorithm_design_Pearson_Kleinberg,_Jon_Tardos,_Éva_2013_2014.pdf
4.6 MB
Jon Kleinberg, Eva Tardos, “Algorithm Design”

Чем книга хороша:

прекрасно разобраны назначения алгоритмов: зачем вообще изучать их особенности и какую проблему/задачу помогает решить каждый алгоритм;

подробно расписаны примеры, даны задачи для самостоятельной работы;

материал четко структурирован, никакой путаницы и перескакивания с темы на тему.

Что не очень классно:

❗️мало инфы про анализ алгоритмов, потребуются дополнительные источники;

❗️не подойдет для начинающих: авторы не объясняют вещи, которые считают очевидными, и не всем терминам дают определение. Хотя, если вам не лень постоянно гуглить, можете попробовать.
Меня часто спрашивают, в чем главное отличие опытных разрабов от начинающих...
Обсуждения Log4j не утихают, а мы и рады почитать что-нибудь интересное. Вот, например, подробный разбор уязвимости. Автор пошел длинным изощренным путем, но статья как минимум расширяет кругозор (знали, как можно легко поднять LDAP?), и дискуссия в комментариях увлекательная.
Martin Fowler et al., “Refactoring: Improving the Design of Existing Code”
Fowler_et_al_Refactoring_Improving_the_Design_of_Existing_Code337s.pdf
1.9 MB
Все основное, что нужно знать о рефакторинге – здесь.

В каждом разделе вы сначала увидите антипример кода, а затем авторы покажут, как его переработать, чтобы в конце получить оптимальный вариант. После прочтения вы:

🔸 задумаетесь, а так уж ли верен принцип: «работает – не трогай»;

🔸 поймете, как эффективнее проводить анализ некачественного кода;

🔸 узнаете, как разгрести беды в легаси коде.

Написана, правда, не самым простым языком, придется привыкнуть к стилю, но это того стоит.
Если затянувшаяся новогодняя расслабленность уже грозит превратиться в скуку, самое время почитать что-нибудь интересное. Вот, например, статья о визуализации структур данных в Java – пригодится, если вам нужно конкретизировать свои абстрактные представления и разобраться в структурах данных и алгоритмах.

Материал повторяет содержание доклада с прошлогодней конфы SnowOne, посмотреть его можно здесь.

А еще в конце статьи анонс предстоящей конференции – присмотритесь, наверняка захочется послушать какие-то доклады, например, про профилирование и ассемблерный код или про статический анализ.
Чем дольше используешь язык, тем больше его возможностей открываешь. Составляешь себе личный список самых удобных и наиболее подходящих под рутинные задачи. И только подумаешь, что вот теперь-то тебя ничем не удивить, как пожалуйста – обнаруживаешь новую функцию, которая упрощает жизнь в три раза.

К чему это я? Появилась статья про полезные, но не самые популярные функции Java. Очень рекомендую, наверняка и у вас будет мысль в стиле: «А что, так можно было?», когда, например, будете читать про функции, связанные с Java Concurrency.
Benjamin J Evans, David Flanagan, “Java in a Nutshell”
Java in a Nutshell, 7th Edition.pdf
12.1 MB
Подойдет начинающим и всем, кому под рукой нужен универсальный справочник. Соглашусь с теми, кто считает эту книгу подходящей альтернативой работам Хорстманна – действительно хорошее пособие.

🔺 никакой воды и заумных описаний, все четко и по делу;

🔺 много наглядных примеров;

🔺понятно рассказывается обо всех необходимых инструментальных средствах.

Опытным разрабам книга покажется скучноватой, но в качестве справочника пригодится.
Искусство общения с пользователями
Как построить отказоустойчивую систему?

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

📌 Проводить fault tree analysis, чтобы обнаружить самые уязвимые места системы, оценить потенциальный ущерб и подумать, как его предотвратить. Подробнее о fault tree analysis рассказывают здесь.

📌 Знать, какие функции включает в себя отказоустойчивость и какими средствами их можно реализовать. В помощь – обзор библиотек отказоустойчивости на JVM.
С момента обнаружения уязвимости Log4Shell прошло уже больше месяца (на всякий случай: здесь и здесь писал о способах устранения), но мы продолжаем открывать новые аспекты проблемы до сих пор. Вот, например, статья о том, как связаны Log4Shell и Security Manager, а еще о том, почему библиотекам, сборкам, идентификациям и функциям нельзя доверять. Пригодится, чтобы понять, какие дополнительные меры безопасности можно внедрить на своих проектах.
Дж. Хайнеман, Г. Поллис, С. Селков, «Алгоритмы. Справочник с примерами на C, C++, Java и Python»
Хайнеман_Д_,_Поллис_Г_,_Селков_С_Алгоритмы_Справочник_с_примерами.pdf
25.1 MB
Продолжаю делиться литературой по алгоритмам. Сегодня у нас очень прикладная книга, которой можно пользоваться прямо во время реализации проектов.

🔹 алгоритмы не просто разобраны, но и распределены по сложности;

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

🔹 указано, какие структуры данных лучше подойдут в том или ином случае.

Обратите внимание, что теории здесь почти нет – это именно справочник для практического применения.