Книга Крейга Уоллса «Spring в действии»

Всем привет! Пару лет назад я присоединился к проекту, бэкенд для которого мы пишем на связке Java + Spring. Для меня переход на этот стек тогда стал неожиданностью, поскольку если о Java я еще имел представление, то вот фреймворк Spring для меня был абсолютно неизвестной вещью. Тогда я его начал осваивать по разным англоязычным книгам. И одна из книг, с которой я начал свое знакомство со Spring была книга «Spring in Action» Крейга Уоллса. Правда, тогда я из нее прочитал только несколько глав, а потом, когда уже стал что-то писать самостоятельно для проекта, переключился на разные статьи, которые бы освещали те элементы фреймворка, которые мне нужны были в конкретный момент.

Когда весной из рассылки издательства ДМК Пресс я узнал, что готовится к выходу эта книга на русском языке, я решил, что неплохо было бы ее почитать и сделал предзаказ. Все-таки изучать какие-то крупные библиотеки или новые для себя языки программирования я предпочитаю по книгам — так выстраивается более цельная картина. Если их изучать по статьям, то знания напоминают пазл, собранный отдельными островками, которые еще надо постараться связать между собой.

И вот на днях я эту книгу дочитал. Не могу сказать, что теперь уже на меня эта книга произвела большое впечатление, но понимаю, что тогда, два года назад, когда только начинал разбираться со Spring, ее стоило дочитать. Дело в том, что это достаточно объемная книга, более 500 страниц, но при этом все равно после нее остается впечатление как после длинной, но обзорной экскурсии, когда вас возят по огромному городу на автобусе, говорят «посмотрите налево, здесь у нас то-то, а теперь посмотрите направо, там у нас это», но при этом очень не хватает углубленного погружения.

Читать далее ‘Книга Крейга Уоллса «Spring в действии»’ »

Новые версии статей про Matplotlib

Всем привет! После небольшого перерыва опять взялся за переписывание своих старых статей про библиотеку Matplotlib, предназначенную для построения графиков в Python.

В этот раз изменения коснулись следующих статей:

Ну и во всех примерах практически полностью переписал код и обновил скриншоты результатов работы скриптов.

Книга Скотта Оукса «Эффективный Java»

Всем привет! Я продолжаю прокачивать свои знания про Java, и чем больше я читаю про внутреннее устройство его виртуальной машины (JVM), тем больше проникаюсь уважением к этой технологии. Сегодня хочу рассказать про книжку Скотта Оукса «Эффективный Java. Тюнинг кода на Java 8, 11 и дальше», которую дочитал на днях. Это уже второе издание книги, которая на русском языке вышла в 2021 году, а английская версия была написана в 2020 году, поэтому несмотря на то, что на обложке упоминается лишь Java 11 (с не очень убедительной припиской «и дальше»), книга достаточно актуальна. Просто на момент ее издания, долгоподдерживаемой версией (LTS) была Java 11, вышедшая в 2018 году.

Это очень подробная книга о том, что происходит «под капотом» среды выполнения Java, и как это можно использовать для написания более продуктивного кода. Или даже скорее о том, каких ситуаций лучше избегать. Это не учебник про язык Java, и кода там не так уж и много. В основном код здесь — это небольшие тестовые примеры, по которым измеряется производительность виртуальной машины в различных ситуациях и с различными настройками. Поскольку сейчас Java во многих случаях используется для написания серверных приложений, то и примеры часто делают упор на такое применение. Ничего про Java на Android в этой книге не сказано — там своя виртуальная машина Java, для которой надо писать свою отдельную книгу. В этой книге речь идет про виртуальную машину от Oracle и OpenJDK. Также надо сказать, что эта книга не про байт-код, который создается компилятором Java (хотя про него изредка речь заходила), а про то, как виртуальная машина и сборщики мусора работают в процессе выполнения приложения.

Коротко пробегусь по основным темам, которые затрагиваются в этой книге.

Читать далее ‘Книга Скотта Оукса «Эффективный Java»’ »

Книга Криса Ричардсона «Микросервисы»

Недавно прочитал книгу Криса Ричардсона «Микросервисы», о которой и хотел рассказать в этом посте. Это довольно объемная книга, в ней больше 500 страниц, и в оригинале она называется «Microservices Patterns with examples in Java», что более точно описывает содержание книги. В этой книге действительно упор сделан на типичные шаблоны проектирования при использовании микросервисной архитектуры. Основное содержание книги крутится вокруг выдуманной компании, которая разрабатывает сервис по доставки еды из ресторанов. У них уже есть написанное на Java монолитное приложение, и разработчики решили его разбить на микросервисы. В книге описываются, какие сложности при это могут возникнуть, как спроектировать взаимодействующую систему монолитов, и какие приемы для решения различных типичных проблем можно использовать.

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

Читать далее ‘Книга Криса Ричардсона «Микросервисы»’ »

Продолжаю обновлять статьи про Matplotlib

И снова всем привет!

За две недели, прошедшие с момента написания прошлого поста, перелопатил еще шесть статей про использование библиотеки Matplotlib.

  1. Как отображать формулы в нотации TeX
  2. Как выводить текст и настраивать его внешний вид
  3. Как использовать эффект рисования от руки
  4. Как рисовать стрелки на графиках и добавлять аннотации
  5. Как рисовать линии и геометрические фигуры на графике
  6. Как менять оформление линий по умолчанию

В этот раз изменения были не столь радикальные, как со статьями, которые переписывал в прошлый раз. Скорее всего это связано с тем, что эти статьи не настолько старые по сравнению с теми, которыми занимался в прошлые разы. В основном я поправлял стиль кода, что-то переписывал в более компактном виде, заменял использование модуля pylab на matplotlib.pyplot, обновлял скриншоты, вносил небольшие дополнения. Ну и еще выбросил несколько уже не актуальных разделов. Например, в одной из статей был раздел о том, как отображать текст с русскими буквами, но эта проблема уже давно решена в самой библиотеке.

И еще четыре переписанные статьи из Matplotlib

И еще четыре переписанные статьи из Matplotlib

Привет всем!

Когда я только собирался начать обновлять статьи про использование библиотеки Matplotlib, я думал, что изменения там будут минимальны. В первую очередь я хотел поменять скриншоты, потому что в процессе очередного обновления Matplotlib, над библиотекой поработали дизайнеры, и графики стали выглядеть более современно. Когда начал править первые статьи, захотелось переписать некоторые примеры более аккуратно и компактно, вместо импорта модуля pylab использовать модуль matplotlib.pyplot, как ныне рекомендуемый способ импортирования функций Matplotlib. По мере разбора старого кода оказалось, что некоторые функции, которые я там применял, стали не только устаревшие, но еще их успели даже удалить из библиотеки, так что примеры стали неработоспособны в принципе. В некоторых статьях стали не актуальны целые разделы, которые описывают, как сделать график более наглядным, потому что изменилось поведение библиотеки по умолчанию, и в новых версиях уже изначально поведение графиков стало более удобным. В некоторых статьях я писал, что есть какое-то ограничение в библиотеке, и так работать не будет, а при проверке оказывается, что в новых версиях это замечание уже не актуально. Ну и когда я перечитываю старые статьи, то невольно возникает желание чем-то их дополнить, поэтому в них появляются новые примеры использования библиотеки.

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

Но надеюсь, что все это не зря, и кому-нибудь это все пригодится. Заодно подумал, что возможно стоит начать писать подобные небольшие заметки про библиотеки numpy и pandas (особенно pandas).

Так вот к чему это я все. Сегодня я выложил четыре обновленные статьи про использование Matplotlib:

На этом пока все, буду постепенно исправлять оставшиеся статьи.

Обновил еще три статьи про Matplotlib

Обновил еще три статьи про Matplotlib

Всем привет!

Я продолжаю обновлять и дополнять свои старые статьи про Matplotlib, мощную библиотеку для Python, которая может рисовать различные типы графиков. В этот раз исправлению подверглись статьи:

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

 

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

Всем привет! На прошлой неделе я писал о том, что начал обновлять статьи про рисование графиков на Python с помощью библиотеки Matplotlib, поскольку с момента их написания в библиотеке Matplotlib многое поменялось. Следующей на очереди для исправления у меня была статья про рисование трехмерных графиков (поверхностей). В первую очередь я планировал переписать примеры, где используются устаревшие функции, и обновить скриншоты, но что-то я увлекся и не только практически полностью переписал статью, но еще и добавил в нее новые примеры. Например, теперь в ней говорится о том, как выставлять точку наблюдения и перемещать источник света, а заодно описал несколько способов прореживания данных при рисовании. И даже старые примеры кода полностью переписал.

Пример картинки из статьи:

PS. Обо всех изменениях на сайте вы можете следить не только через RSS, но еще и подписавшись на Telegram-канал или группу Вконтакте.

Начал обновлять статьи про Matplotlib

Начал обновлять статьи про Matplotlib

Всем привет!

Как вы, надеюсь, помните, я когда-то писал (и надеюсь скоро продолжу) серию статей про работу с библиотекой Matplotlib, которая предназначена для построения графиков на языке Python. Эта серия началась очень давно, и с того момента библиотека Matpotlib сильно изменилась, как внешне, так и внутри. После глобального редизайна внешний вид графиков уже не соответствует тому, что показано на скриншотах, некоторые функции стали считаться устаревшими и были заменены новыми, часть из них даже уже была удалена из библиотеки, что сделало примеры из некоторых статей нерабочими, а часть из них еще работает, но выводят предупреждения.

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

Сегодня я обновил две статьи: самую первую статью про рисование простейших графиков вида y = f(x) (ссылка) и статью про рисование круговых графиков в виде пирога (ссылка). Вторая статья подверглась большему изменению. Во-первых, в новых версиях Matplotlib была исправлена проблема, из-за которой график по умолчанию рисовался не круглым, а эллиптическим, и соотношение сторон эллипса зависело от соотношения сторон окна, поэтому один из разделов стал не актуальным и я его удалил. А, во-вторых, с новым дизайном захотелось добавить пример, показывающий, как изменять цвета линий вокруг секторов в круговом графике.

Постепенно буду исправлять и другие статьи, а заодно себе написал план по новым статьям про Matplotlib.

Про книгу «Kubernetes для DevOps»

В последнее время я решил разобраться с Kubernetes. Как правило, когда нужно изучить что-то новое, я предпочитаю это изучать по книгам, а не по разрозненным статьям в интернете. Чтобы понять, что такое Kubernetes и с чем его едят, купил книгу Джона Арундела и Джастина Домингуса «Kubernetes для DevOps». Когда заказывал эту книгу, то меня немного смущало это самое «для DevOps», я боялся, что там упор будет именно на практики DevOps с использованием Kubernetes, а не на сам Kubernetes (в оригинале книга называется «Cloud Native DevOps with Kubernetes. Building, Deploying, and Scaling Modern Applications in the Cloud»). К счастью, мои опасения не оправдались, и книга посвящена в первую очередь Kubernetes, а DevOps-у отведено место только в последней четверти книги.

Эта книга предназначена для тех, кто никогда до этого не запускал Kubernetes и не знает, с какой стороны к нему подступиться. В книге очень аккуратно описываются разные аспекты работы с Kubernetes на примере развертывания очень маленького веб-приложения на Go (буквально, Hello World, поэтому Go знать не обязательно). При этом желательно иметь представление, что такое Docker и как с ним работать, что такое Dockerfile, но и это все кратко, буквально самый минимум, рассказывается в начале книги.

Читать далее ‘Про книгу «Kubernetes для DevOps»’ »