Вышла библиотека для построения графиков Matplotlib 2.0

Вышла библиотека для построения графиков Matplotlib 2.0

Недавно обновилась библиотека Matplotlib, предназначенная для рисования графиков на языке Python, я про нее еще периодически пишу небольшие статьи. На этот раз изменения в библиотеке произошли настолько заметные, что разработчики решили дать ей номер 2.0 (предыдущая версия имела номер 1.5.3).

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

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

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

OutWiker 2.0.0.808 (beta) и плагин HackPage

OutWiker 2.0.0.808 (beta) и плагин HackPage

Прошло больше двух месяцев с момента выхода прошлой нестабильной версии OutWiker, и за это время было сделано очень многое, как внутри ядра программы, так и относительно плагинов. В прошлый раз я говорил, что начинаю готовиться к тому, чтобы объявить очередную версию OutWiker стабильной, поэтому хотел сосредоточиться на вылавливании глюков, ошибок и на подчистке кода, но потом понял, что есть одна возможность, которую достаточно легко реализовать, но она может решить сразу несколько проблем. В основном эти проблемы касаются меня как разработчика, а пользователи ничего не должны заметить, но в то же время продвинутые пользователи (вы ведь такими являетесь? 🙂 ) могут эту возможность приспособить для себя. Для обычных пользователей эта возможность будет недоступна через базовый интерфейс программы, и чтобы ей воспользоваться, нужно будет установить плагин, о котором я скажу чуть позже.

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

Итоги 2016 года. OutWiker

Итоги 2016 года. OutWiker

Это вторая часть подведения итогов уходящего года. Первая часть была посвящена прочитанным книгам, а в этом посте я хочу вспомнить, что за этот год удалось сделать для проекта OutWiker. Для тех, кто только недавно начал читать этот блог, скажу, что OutWiker — это программа для хранения заметок в виде дерева. Чем она отличается от других подобных программ, можете прочитать по ссылке.

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

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

Итоги 2016 года. Прочитанные книги

Итоги 2016 года. Прочитанные книги

Близится новый год, пора подводить итоги года уходящего — что удалось реализовать за последние 365 366 дней, а до чего руки так и не дошли. Предновогодние итоги я разобью на несколько тем, в сегодняшнем посте я вспомню книги, которые были прочитаны в 2016 году.

Книги я разделил на три группы: художественные, программирование и разное. В этом году удалось прочитать 9 художественных книг, 15 книг, связанных с программированием, и 6 из раздела «разное» — итого получилось ровно 30 книг, т.е. в среднем по больнице на одну книгу у меня уходит чуть меньше 2 недель. Разумеется, все зависит от толщины и интересности книги. В основном книги я читаю в метро по дороге на работу / с работы, хотя и дома иногда приятно посидеть с интересной книжкой. По замерам времени, в метро за день на чтение уходит примерно 1 ч. 20 мин.

К некоторым прочитанным книгам я напишу комментарии, о некоторых я уже писал посты в этом блоге, и тогда дам ссылки на эти записи. Про художественные книги писать комментарии особо не буду, мне это сразу навевает воспоминания о школьных сочинениях, которые могут отбить желание читать книги у любого школьника. Хотя после прочтения 6-го тома из серии про Дюну Френка Герберта я не удержался и написал пост в ЖЖ.

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

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

Книга Лучано Рамальо «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 — удачное время, когда можно немного поломать обратную совместимость, чтобы облегчить дальнейшее развитие. Но если у пользователей установлены плагины для старых версий программы, то программа в любом случае не должна падать, плагины должны просто отключаться, и при этом еще сообщать пользователю причину своего отключения. Именно это я и сделал в данной версии.

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