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

Книга Мэттью Фаулера «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’ »

OutWiker 3.2.0.914 beta

OutWiker 3.2.0.914 beta

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

Я постепенно начал добавлять CSS-классы к элементам, создаваемых из викинотации. Первой моей задачей было визуально выделить ссылки на другие страницы и на прикрепленные файлы. Теперь ссылка на страницу выгдялит так: , а ссылка на прикрепленный файл — так: . Картинки, которые добавляются к таким ссылкам, встроены в CSS-стиль, поэтому все при желании можно настроить (о том, как это можно сделать, я напишу во второй половине поста).

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

OutWiker 3.2.0.912 beta

OutWiker 3.2.0.912 beta

Давненько я не выкладывал свежие бета-версии OutWiker. В этот раз изменений не так много, но они заметны и добавляют удобство в работе.

Пожалуй, самым крупным изменением в этой версии стало то, что теперь поиск по странице работает и в режиме просмотра заметок, а не только в режиме редактирования. Мне давно писали о том, что не хватает этой возможности, и я с этим согласен. Когда-то давно, по крайней мере в версии под Windows, можно было искать по странице в режиме просмотра, если щелкнуть по странице правой кнопкой мыши и вызвать контекстное меню Internet Explorer (не помню, была ли такая возможность под Linux с движком WebKit, кажется, нет). Но после очередного обновления wxPython и эта неофициальная возможность поиска пропала. Ну вот теперь поиск по странице работает, и панель поиска вызывается с помощью той же клавиши или пункта меню, что и поиск по странице в режиме редактирования. Возможности, которые предоставляет wxPython для реализации поиска в таком режиме ограничены, поэтому поиск работает только вперед, но не в обратном направлении. У меня есть идеи, как можно попробовать обойти это ограничение, но пока так.

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

Книга Марка Хеклера «Spring Boot по-быстрому»

«Любой автор сам выбирает, что включать в издание, что не включать…
То, что одному автору кажется необязательным материалом,
другой считает совершенно необходимым»

Цитата из предисловия.

Привет всем! Как-то так сложилось, что в последнее время посты в этом блоге посвящены всего двум темам: книгам и OutWiker-у. В этот раз речь пойдет опять о программерской книге. Недавно в посте о книге Крейга Уоллса «Spring в действии» я писал, что на русском языке вышла еще одна книга про Spring — «Spring Boot по-быстрому» Марка Хеклера. Вот про нее сейчас и поговорим.

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

Подзаголовок книги «Создаем облачные приложения на Java и Kotlin» может в вести в заблуждение тем, что Kotlin, конечно, упоминается, говорится, что есть такой язык, есть даже один пример микросервиса, который написан на этом языке, но в целом концентрация Kotlin в общем содержании настолько мала, что ей можно пренебречь. В данном случае я бы сказал, что это скорее хорошо, что содержание не распыляется на два языка, и даже там, где Kotlin используется, это выглядит немного странно. Наверное, единственная цель этого примера — показать, что со Spring можно работать и на Kotlin, но уж точно это не стоило выносить на обложку книги.

Объем книги не такой большой, около 350 страниц, далее я коротко пробегусь по ее содержанию.

Читать далее ‘Книга Марка Хеклера «Spring Boot по-быстрому»’ »

OutWiker 3.2.0.910 beta

OutWiker 3.2.0.910 beta

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

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

Книга Криса Макдоналда «История реле»

Всем привет! В этом посте я расскажу еще об одной книге, которую можно отнести к разделам «История техники» и «История IT». Я имею в виду книгу Криса Макдоналда «История реле». На русском языке название звучит немного странно и слишком узко, в оригинале она называется «The Switch: How the Telegraph, Telephone, and Radio Created the Computer». Здесь слово «Switch» обозначает любые электронные компоненты, которые могут работать в режиме переключателя, включая электромеханические реле, радиолампы и транзисторы, и как раз вокруг их развития и строится повествование книги. В этой книге автор показывает параллельное развитие средств связи, а также появление первых компьютеров, и электронных компонентов, из которых они состоят.

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

Большая часть книги посвящена развитию средств связи, начиная с механического телеграфа и до телефона, после чего повествование переключается на развитие первых вычислительных машин (не хочется их пока называть компьютерами).

Читать далее ‘Книга Криса Макдоналда «История реле»’ »