Книга Лучано Рамальо «Python. К вершинам мастерства»

На днях дочитал книгу Лучано Рамальо «Python. К вершинам мастерства». Пожалуй, это лучшая техническая книга, которая мне попадалась за последние время. Это объемная книга, содержащая 768 страниц, но при этом читается она достаточно легко. Сразу надо сказать, что книга Рамальо — не учебник для начинающих, вы уже должны знать Python хотя бы на начальном уровне, представлять себе, что такое объектно-ориентированное программирование и иметь хотя бы общее представление о шаблонах проектирования. Процитирую несколько фраз из введения книги, где сам автор пишет, для кого предназначена эта книга:

Python — простой для изучения и мощный язык программирования… Поскольку язык так просто выучить и начать применять на деле, многие программисты используют лишь малую часть его обширных возможностей… Эта книга написана для практикующих программистов на Python, которые хотят усовершенствоваться в Python 3. Если вы уже знакомы с Python и хотели бы перейти на версию Python 3.4 или старше, эта книга для вас.

В этой книге действительно упор сделан на возможностях, которые появились в Python 3.x, особенно автор подчеркивает особенности, возникшие в версиях Python 3.3 и 3.4. В момент написания книги Python 3.5 еще не вышла, но было примерно понятно, что туда собираются включить, и Лучано Рамальо упоминает некоторые такие возможности. Хотя в книге упор сделан на Python 3, но многие описанные вещи применимы и к Python 2.x, при этом подчеркивается, где есть различия в поведении интерпретатора Python 2.x и 3.x.

Большая часть книги в той или иной мере посвящена объектам в Python, тому, как интерпретатор их создает, что происходит при вызове методов вида __xxx__ и многое другое. Хотя местами описывается достаточно низкоуровневая логика, но до байт-кода автор доходит всего один или два раза.

Читать далее…

Новая статья про использование библиотеки Matplotlib

Новая статья про использование библиотеки Matplotlib

Иногда при использовании библиотеки Matplotlib требуется добавить возможность пользователю взаимодействовать с нарисованным графиком — выделять интересующие области, перетаскивать объекты на графике и т.п. Для подобных задач библиотека Matplotlib позволяет обрабатывать различные события, связанные с действиями мышью и нажатиями клавиш.

Выложил новую статью про обработку событий мыши и клавиатуры на графиках Matplotlib.

Другие статьи про Matplotlib

Выложил некоторые презентации к лекциям

Выложил некоторые презентации к лекциям

Учебный семестр близится к концу, у студентов начинается самая тяжелая пора — сессия, а преподаватели, наоборот, могут расслабиться. У меня это был тяжелый семестр, в котором пришлось читать сразу три разных курса — «Введение в радиофизику», «Моделирование антенн и микроволновых устройств» и «Учебно-исследовательская работа студентов».

Эти курсы я веду с использованием проектора, на котором показываю презентации студентам. Некоторые презентации я постепенно выкладывал в нашу группу во Вконтакте Радиофизика ФРЭЛА МАИ (кому интересно, присоединяйтесь), а сегодня я решил выложить эти презентации себе на сайт, может быть они пригодятся кому-нибудь еще. Для этого на сайте завел новый раздел Студентам, куда и закачал некоторые из используемых презентаций.

OutWiker 2.0.0.806 (unstable) и плагин Markdown 1.1

OutWiker 2.0.0.806 (unstable) и плагин Markdown 1.1

Что-то в последнее время разработка OutWiker под Linux (точнее, Ubuntu) превращается в бег на месте из-за изменений в этом дистрибутиве. С выходом каждой следующей версии Ubuntu разработчики что-то изменяют, что ломает обратную совместимость. Но, надо сказать, что Ubuntu 16.10 в целом получился лучше Ubuntu 16.04 LTS — в нем было исправлено несколько, появившихся в версии 16.04 ошибок. Уже не в первый раз замечаю, что больше всего проблем возникает именно в LTS-версиях Ubuntu, хотя, казалось бы, они наоборот должны быть самые безглючные. Например, в Ubuntu 16.10 была исправлена ошибка со сборкой wxPython, на которую я жаловался полгода назад.

В Ubuntu 16.10 опять изменился способ сборки wxPyhton, но это особо не сказалось на разработке, правда, сразу после релиза Ubuntu 16.10 пришлось сделать сборку OutWiker под этот дистрибутив.

Из-за всех этих пертурбаций опять задумался о том, чтобы OutWiker собирать в бинарный пакет, чтобы не зависеть от способа сборки wxPython в Ubuntu. В этом случае можно будет еще посмотреть в сторону snap-пакетов, с которыми я давно хочу разобраться. Но займусь я этим не раньше, чем выпущу финальный релиз OutWiker 2.0. Релиз я собираюсь выложить уже в ближайшие пару месяцев. Поэтому, начиная с сегодняшней версии, OutWiker имеет статус не dev, а beta. Есть еще некоторые моменты, которые я хочу переделать до релиза, и надеюсь, что в январе-феврале финальная версия OutWiker 2.0 будет готова.

Читать далее…

Две новые статьи про использование библиотеки Matplotlib

Написал две новые статьи для серии статей про использование библиотеки Matplotlib. Первая статья — Способы задания цвета в Matplotlib, вторая статья — Как в Matplotlib менять оформление линий по умолчанию.

OutWiker 2.0.0.802 и плагин Markdown

OutWiker 2.0.0.802 и плагин Markdown

Сегодня выложил новую нестабильную версию OutWiker с очень важными изменениями.

Во время разработки OutWiker я очень бережно отношусь к обратной совместимости. Программа не должна падать или выдавать непонятные пользователю сообщения об ошибках после очередного обновления как самой программы, так и плагинов. Однако в процессе развития иногда хочется переделать какой внутренний участок кода, который уже может использоваться каким-нибудь плагином. Момент перехода от версии 1.x к 2.0 — удачное время, когда можно немного поломать обратную совместимость, чтобы облегчить дальнейшее развитие. Но если у пользователей установлены плагины для старых версий программы, то программа в любом случае не должна падать, плагины должны просто отключаться, и при этом еще сообщать пользователю причину своего отключения. Именно это я и сделал в данной версии.

Читать далее…

Новая статья про рисование линий уровня с помощью библиотеки Matplotlib

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

contour_11

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

Книга Уолтера Айзексона «Инноваторы»

innovatoryЯ обожаю читать про историю науки и развитие различных технологий, особенно, когда дело касается информационных технологий. Качественных книг на эту тему еще недавно было не так много, но в последнее время ситуация стала выправляться. В основном за счет переводных книг, но все же. На сегодняшний день любимой книгой по истории информационных технологий у меня была книга Стивена Леви «Хакеры. Герои компьютерной революции», которая очень подробно описывает развитие компьютеров, начиная с конца 50-ых годов прошлого века и до 1980-ых годов. И вот недавно вышла книга, которую в своем личном рейтинге я готов поставить рядом с «Хакерами» — это книга Уолтера Айзексона «Инноваторы» или ее полное название «Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию» (да, любят историки от IT слово «революция»).

Уолтер Айзексон в России известен в первую очередь как автор жизнеописания Стива Джобса, хотя кроме этого он написал биографии Эйнштейна, Франклина и Киссенджера. Его книгу про Стива Джобса я еще не читал, поскольку ее выход совпал с моментом, когда мне попалась книга Янга и Саймона «iКона», и в тот момент читать вторую книгу подряд на эту же тему не хотелось.

В отличие от книги «Хакеры», которая охватывает лишь несколько десятилетий, Айзексон решил написать историю развития информационных технологий, начиная со времен Бэббиджа и его разностной машины, Ады Лавлейс, которая считается первой программисткой, и до появления компании Google с ее оригинальным алгоритмом поиска, который придумали Ларри Пейдж и Сергей Брин.

Читать далее…

OutWiker 2.0.0.800 (unstable) и обновления всех плагинов

OutWiker 2.0.0.800 (unstable) и обновления всех плагинов

Сегодня я выложил новую нестабильную версию OutWiker с юбилейным номером 2.0.0.800. В этой версии были исправлены некоторые ошибки и добавлены новые возможности.

Но сначала хочется поблагодарить Åke Engelbrektson, который провел титаническую работу и перевел на шведский язык не только основной интерфейс OutWiker, но и всех плагинов. Поэтому сегодня я также выложил новые версии для всех плагинов. Основное изменение для них одно — был добавлен шведский язык, хотя в некоторых плагинах были сделаны незначительные исправления. Для примера, на следующем скриншоты вы можете увидеть, как выглядит окно настроек на шведском языке.

swedish

Читать далее…