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

Другие статьи про Matplotlib
Учебный семестр близится к концу, у студентов начинается самая тяжелая пора — сессия, а преподаватели, наоборот, могут расслабиться. У меня это был тяжелый семестр, в котором пришлось читать сразу три разных курса — «Введение в радиофизику», «Моделирование антенн и микроволновых устройств» и «Учебно-исследовательская работа студентов».
Эти курсы я веду с использованием проектора, на котором показываю презентации студентам. Некоторые презентации я постепенно выкладывал в нашу группу во Вконтакте Радиофизика ФРЭЛА МАИ (кому интересно, присоединяйтесь), а сегодня я решил выложить эти презентации себе на сайт, может быть они пригодятся кому-нибудь еще. Для этого на сайте завел новый раздел Студентам, куда и закачал некоторые из используемых презентаций.
Что-то в последнее время разработка 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 будет готова.
Читать далее…
Сегодня выложил новую нестабильную версию OutWiker с очень важными изменениями.
Во время разработки OutWiker я очень бережно отношусь к обратной совместимости. Программа не должна падать или выдавать непонятные пользователю сообщения об ошибках после очередного обновления как самой программы, так и плагинов. Однако в процессе развития иногда хочется переделать какой внутренний участок кода, который уже может использоваться каким-нибудь плагином. Момент перехода от версии 1.x к 2.0 — удачное время, когда можно немного поломать обратную совместимость, чтобы облегчить дальнейшее развитие. Но если у пользователей установлены плагины для старых версий программы, то программа в любом случае не должна падать, плагины должны просто отключаться, и при этом еще сообщать пользователю причину своего отключения. Именно это я и сделал в данной версии.
Читать далее…
Выложил новую статью Как с помощью Matplotlib рисовать линии уровня, которая продолжает серию статей про библиотеку Matplotlib, предназначенную для рисования графиков на языке Python. Другие статьи из этой серии вы можете найти здесь.

Я обожаю читать про историю науки и развитие различных технологий, особенно, когда дело касается информационных технологий. Качественных книг на эту тему еще недавно было не так много, но в последнее время ситуация стала выправляться. В основном за счет переводных книг, но все же. На сегодняшний день любимой книгой по истории информационных технологий у меня была книга Стивена Леви «Хакеры. Герои компьютерной революции», которая очень подробно описывает развитие компьютеров, начиная с конца 50-ых годов прошлого века и до 1980-ых годов. И вот недавно вышла книга, которую в своем личном рейтинге я готов поставить рядом с «Хакерами» — это книга Уолтера Айзексона «Инноваторы» или ее полное название «Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию» (да, любят историки от IT слово «революция»).
Уолтер Айзексон в России известен в первую очередь как автор жизнеописания Стива Джобса, хотя кроме этого он написал биографии Эйнштейна, Франклина и Киссенджера. Его книгу про Стива Джобса я еще не читал, поскольку ее выход совпал с моментом, когда мне попалась книга Янга и Саймона «iКона», и в тот момент читать вторую книгу подряд на эту же тему не хотелось.
В отличие от книги «Хакеры», которая охватывает лишь несколько десятилетий, Айзексон решил написать историю развития информационных технологий, начиная со времен Бэббиджа и его разностной машины, Ады Лавлейс, которая считается первой программисткой, и до появления компании Google с ее оригинальным алгоритмом поиска, который придумали Ларри Пейдж и Сергей Брин.
Читать далее…
Сегодня я выложил новую нестабильную версию OutWiker с юбилейным номером 2.0.0.800. В этой версии были исправлены некоторые ошибки и добавлены новые возможности.
Но сначала хочется поблагодарить Åke Engelbrektson, который провел титаническую работу и перевел на шведский язык не только основной интерфейс OutWiker, но и всех плагинов. Поэтому сегодня я также выложил новые версии для всех плагинов. Основное изменение для них одно — был добавлен шведский язык, хотя в некоторых плагинах были сделаны незначительные исправления. Для примера, на следующем скриншоты вы можете увидеть, как выглядит окно настроек на шведском языке.
Читать далее…
Продолжаю работать над развитием OutWiker. В очередной нестабильной версии, которая получила номер 2.0.0.798, изменения относятся в первую очередь к улучшению интерфейса.
В этой версии был переписан кусок кода, отвечающий за работу иконки в трее (области уведомления). Пользователи Windows не должны заметить никаких изменений, а вот под Linux иконка в трее — это была большая проблема в некоторых оболочках. Если, например, в XFCE все работало как надо, то в Unity ее просто не было, а в KDE программа зависала при попытке свернуть ее в трей. Теперь работоспособность иконки еще не идеальна, но стала намного лучше: в Unity она теперь полноценно работает.

Остались еще некоторые проблемы с KDE — в принципе там иконка тоже работает, но она отображается в виде белого пятна. Я пока не понял, из-за чего это происходит, я перепробовал разные форматы для иконок, включая PNG, ICO и даже векторный SVG, но результат оставался неизменным. Поискав в интернете описание подобной проблемы, я наткнулся на многие жалобы о том, что программы, написанные на основе GTK не отображают иконки в трее KDE, но ни одного подходящего решения не нашел. Надо сказать, что с KDE у меня давно дела не ладятся — он у меня постоянно падает или глючит другим образом, иконки в трее от других приложений тоже ведут себя не самым хорошим образом.
Читать далее…