Архив по категории ‘софт’.

OutWiker 3.3.0.928 beta

OutWiker 3.3.0.928 beta

С момента релиза предыдущей версии OutWiker прошло больше месяца, за это время мне прислали новые отзывы, сообщения о проблемах и пожелания относительно дальнейшего улучшения программы. Большое спасибо всем, от кого я получил обратную связь, некоторые из них я уже постарался учесть в новой версии.

Больше всего меня озадачили сообщения от нескольких пользователей о том, что наблюдаются проблемы с работой программы, запущенной из snap-пакета в Linux (при этом с flatpak все нормально). У себя пока я эту проблему отловить не смог (попробовал на двух компьютерах с Manjaro и Ubuntu), попробую еще в виртуалке с разными настройками поиграться.

Все пожелания, которые мне присылали, я записал в Issues на github. Если что-то забыл, то пишите лучше сразу туда (не важно, на русском или английском языке). Если вы напишете мне на почту или в Телеграм, то я постараюсь сам добавить запись на github, но могу забыть. В дальнейшем я хочу постараться более осмысленно использовать issues, а то по опыту работы могу сказать, что большинство изменений, которые были сделаны в прошлой версии, в issues не отражались. Надо себя как-то дисциплинировать с точки зрения программерского процесса.

А теперь перейдем к новой бета-версии под номером 3.3.0.928, которая начинает новую ветку OutWiker 3.3. В августе, пока я был в отпуске, удалось достаточно много сделать. Те, кто следит за развитием OutWiker в специально заведенном для этой цели Телеграм-канале @OutWiker, уже знают, чем я занимался, а остальным сейчас расскажу. 🙂

Читать далее ‘OutWiker 3.3.0.928 beta’ »

OutWiker 3.2 Release!

OutWiker 3.2 Release!

В последних бета-версиях OutWiker изменения были не особо крупные, многие из них относились к системе сборки и к наведению красоты кода (рефакторингу). Поэтому хватит выкладывать бета-версии, пора очередную версию назвать релизом!

В этом посте я коротко перечислю, что поменялось версии 3.2 по сравнению с прошлой стабильной версией 3.1, которая вышла почти полтора года назад.

Читать далее ‘OutWiker 3.2 Release!’ »

OutWiker 3.2.0.924 beta

OutWiker 3.2.0.924 beta

Пришло время выложить следующую бета-версию OutWiker с номером 3.2.0.924. Если на протяжении нескольких прошлых версий я в основном занимался изменениями, которые были не заметны внешне, то в эту версию попали исправления внешнего вида и разные мелкие исправления в интерфейсе.

Читать далее ‘OutWiker 3.2.0.924 beta’ »

OutWiker, Flatpak и WebKitGTK

OutWiker, Flatpak и WebKitGTK

Этот пост можно считать продолжением предыдущего, в котором я рассказывал о работе OutWiker в виде flatpak-пакета под Linux. В том посте я обещал рассказать о том, почему OutWiker до сих пор собиралась со старой версией runtime, а если быть более корректным, со старыми версиями org.gnome.Platform и org.gnome.Sdk, и как на днях эта проблема внезапно решилась, благодаря чему следующие версии OutWiker уже будут собираться со свежими версиями этих библиотек.

Чтобы понять, в чем заключается проблема, я нарисовал схему зависимостей OutWiker от библиотек, которую сейчас подробно опишу:

Читать далее ‘OutWiker, Flatpak и WebKitGTK’ »

OutWiker 3.2.0.922 beta

OutWiker 3.2.0.922 beta

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


Читать далее ‘OutWiker 3.2.0.922 beta’ »

Книга Мэттью Фаулера «Asyncio и конкурентное программирование на Python»

Недавно в издательстве ДМК вышла книга Мэттью Фаулера «Asyncio и конкурентное программирование на Python».

Как известно, у интерпретатора Python из-за наличия GIL (Global Interpreter Lock) имеются достаточно серьезные ограничения для полноценного использования всех ядер процессора. Для сложных вычислительных задач можно запускать несколько процессов со своим интерпретатором Python, каждый из которых обрабатывал бы свой собственный кусок данных, но создание нового процесса — достаточно тяжелая операция, и если ее делать часто, то производительность будет проседать. В то же время при некоторых низкоуровневых операциях (в основном это ввод-вывод) возможно написать код, который бы выполнялся параллельно, и именно в этом основная идея асинхронного программирования. Использование асинхронного программирования — это достаточно сложная область в любом языке программирования, а в Python все усложняется еще и тем, что нужно понимать, когда асинхронное программирование может дать какой-то выигрыш.

Книга Мэттью Фаулера рассматривает асинхронное и параллельное программирование (объединенные под одним термином «конкурентное программирование», что показывает аккуратность автора в терминологии) с разных сторон. Здесь будет рассказано и про асинхронщину, и про многопоточноть (в значении multithreading), и про прогопроцессность. Все это в конце концов рассматривается под тем углом, как для всего этого дела может помочь стандартная библиотека asyncio, которая в первую очередь ассоциируется именно с асинхронным программированием, хотя она позволяет использовать также пулы потоков и процессов.

Читать далее ‘Книга Мэттью Фаулера «Asyncio и конкурентное программирование на Python»’ »

OutWiker 3.2.0.920 beta

OutWiker 3.2.0.920 beta

Иногда при разработке софта нужно заставить себя остановиться и просто выложить очередную версию. Только благодаря этому принципу я сегодня выложил следующую бета-версию под номером 3.2.0.920, потому что, как говорили древние философы, бесконечно можно заниматься тремя вещами: смотреть на огонь, смотреть на воду и заниматься рефакторингом кода. Вот именно последним я и занимался весь последний месяц. Надеюсь, что скоро очередную версию OutWiker можно будет назвать стабильной (на самом деле ничего нестабильного я в последних версиях не наблюдаю), но перед этим я решил немного упорядочить структуру модулей в исходниках и подготовиться к тому, что в будущих версиях немного поломать совместимость API для плагинов.

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

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

Так что в этой версии нет заметных изменений с точки зрения пользователя, если не считать исправления нескольких ошибок (где-то исправлены зависания википарсера, где-то поправлены горячие клавиши). Надеюсь, что ничего ранее работающего я не сломал.

Последнюю бета-версию OutWiker как обычно можно скачать на этой странице.

Подписывайтесь на OutWiker в социальных сетях:

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

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

OutWiker 3.2.0.918 beta

Выложил первую в этом году бета-версию OutWiker под номером 3.2.0.918. Изменения в этой версии произошли достаточно крупные, причем я изначально не собирался ничего эпохально переделывать, но одно потянуло другое… В общем, сейчас расскажу.

Читать далее ‘OutWiker 3.2.0.918 beta’ »

OutWiker 3.2.0.916 beta

OutWiker 3.2.0.916 beta

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

Читать далее ‘OutWiker 3.2.0.916 beta’ »