Новая статья «Как рисовать гистограммы в Matplotlib»

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

bar_07

OutWiker 1.9.0.772 (unstable) с проверкой орфографии

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

outwiker_spell

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

Язык Go. Первые впечатления. Организация исходников

Язык Go. Первые впечатления. Организация исходников

Недавно я писал про книгу о языке Go (он же Golang), а теперь у меня появился первый боевой опыт использования этого языка. Хотя написанная программа и небольшая, но она позволила пощупать некоторые особенности языка. В этом посте хочу рассказать про одну особенность Go, непривычную по сравнению с другими языками — это особенности расположения исходников, поскольку в Go вы должны организовывать по определенной структуре в определенных папках.

Если кому интересно, то программа, которую я писал на Go (и продолжаю ее доводить до ума) предназначена для выковыривания из Википедии списка улиц Москвы с попыткой получить по ним информацию — округов и районов, где эти улицы проходят. Поскольку я периодически участвую в городских ориентированиях, то получение полного списка улиц, включая недавние переименования, для меня больной вопрос. Оказалось, что список улиц Москвы в Википедии достаточно оперативно обновляется, и там уже перечислены улицы, которых еще нет не то что в атласах (с атласами Москвы в последнее время вообще беда), но и на других официальных сайтах со списками улиц. К слову, на OpenStreetMap и Яндекс.Картах улицы тоже появляются достаточно оперативно, но там я не нашел способа получения списка улиц по округам и районам. Если кто подскажет, где можно найти полный такой список, буду благодарен.

Исходники программы streetlist лежат на github, там же есть и подробное описание программы с примерами ее использования.

Но вернемся к Go. Для тех, кто еще не слышал об этом языке, скажу, что это компилируемый язык со статической типизацией. Программы, написанные на языке Go являются полностью самостоятельными и не требуют от пользователя установки каких-то дополнительных библиотек, но при этом среда выполнения Go включает в себя сборщик мусора с подсчетом ссылок. В самом языке есть такое понятие как указатели, но они все обрабатываются сборщиком мусора, а арифметика с указателями не поддерживается. Язык является объектно-ориентированным, но объектная ориентация его несколько непривычная. Одной из особенностей языка являются так называемые горутины (gorutines) — что-то вроде легковесных потоков, которые можно делать в большом количестве, не опасаясь, что при этом просядет производительность, переносить их на реальные потоки будет среда выполнения Go.

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

Таблицы в OutWiker. Опрос пользователей

Таблицы в OutWiker. Опрос пользователей

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

И вот хочется узнать у вас, что нужно сделать в OutWiker, чтобы редактирование таблиц было более удобно? Как вы себе это представляете?

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

(:table border=1:)
(:cell:) a1
(:cell:) b1
(:cell:) c1
(:cell:) d1
(:cellnr:) a2
(:cell:) b2
(:cell:) c2
(:cell:) d2
(:tableend:)

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

В общем, интересует ваше мнение.

Новая статья «Основы использования Fabric»

Написал новую статью про библиотеку Fabric для Python, которая позволяет легко автоматизировать рутинные задачи как при работе на локальном компьютере, так и на удаленном сервере. С помощью Fabric можно создавать резервные копии, развертывать веб-приложения и даже использовать его для сборки программ. Преимущество Fabric в том, что эта библиотека не будет требовать от вас изучения нового синтаксиса, все скрипты пишутся на Python.

Ссылка на статью — Основы использования Fabric.

OutWiker 1.9.0.770 (unstable) и обновления некоторых плагинов

OutWiker 1.9.0.770 (unstable) и обновления некоторых плагинов

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

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

Source 1.13. Новая версия плагина для OutWiker с исправлением интересной ошибки

Source 1.13. Новая версия плагина для OutWiker с исправлением интересной ошибки

Сегодня выложил новую версию плагина Source для OutWiker, который позволяет раскрашивать тексты программ на викистранице. В этой версии была исправлена давняя проблема, которая могла проявляться под Linux в случае, если у вас в системе была установлена библиотека pygments, которая также входит в состав плагина. Ошибка проявлялась в том, что в этом случае из плагина пропадала поддержка синтаксиса языка 1С, могла ли эта ошибка привести к более серьезным проблемам в случае наличия в системе очень старой версии pygments — вопрос открытый.

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

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

OutWiker 1.9.0.768 (unstable) и новая версия плагина ExternalTools

OutWiker 1.9.0.768 (unstable) и новая версия плагина ExternalTools

Выход очередной нестабильной версии OutWiker (1.9.0.768) немного затянулся, но это не значит, что я ничего не делал все это время. В данной версии основная работа была направлена на расширение возможностей для плагинов. Например, теперь плагины имеют больше точек подключения для изменения создаваемого кода HTML, который видят пользователи. Кроме того, была добавлена возможность перехвата плагинами клика по ссылкам на страницах, таким образом появилась возможность с помощью плагинов добавлять ссылки произвольного типа (с произвольным протоколом, которые будут особым образом обрабатываться плагинами). Основные силы в последний месяц были направлены на то, чтобы в полной мере использовать эту возможность.

В ранних комментариях просили добавить возможность, чтобы при клике по ссылке запускалась указанная программа с передачей ей параметров. Эта задача хорошо вписывалась в ту возможность, которую я описал выше, и более того, уже есть плагин ExternalTools, который мог бы включать в себя не только открытие текста страницы во внешнем редакторе, но и запуск программ с викистраниц. Новые возможности ExternalTools, которые описаны ниже, будут работать только с OutWiker 1.9.0.768 (и, разумеется, с последующими версиями). Для пользователей предыдущих версий ничего не изменится, плагин продолжит работать.

Итак, что добавилось в ExternalTools 1.3? Теперь этот плагин добавляет команду (:exec:), которая в режиме «Просмотр» преобразуется в ссылку, при клике на которую запускается одна или несколько программ.

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

AutoRenamer. Новый плагин для OutWiker

AutoRenamer. Новый плагин для OutWiker

Для OutWiker’а появился новый плагин. Виталий Кошура (его страница на github) прислал плагин AutoRenamer для автоматического переименования заметок по первой строке. То есть страница всегда будет называться так, как выглядит первая строка в заметке, при этом викинотация из названия удаляется. Что-то подобное до этого я видел в некоторых программах для ведения заметок под Android, теперь такого же поведения можно добиться и в OutWiker.

Этот плагин может работать в двух режимах:

  1. Когда переименовываются все заметки, которые пользователь открывает после установки плагина. По умолчанию этот режим отключен, его можно включить в диалоге настроек.
  2. На викистраницах можно вставить команду (:autorename:), и тогда эта страница также будет автоматически переименовываться при изменении первой строки заметки.

Все замечания и пожелания можете писать автору в Issue Tracker.

Про язык Go и книгу «Programming in Go»

Талисман языка Go

В последнее время все больше стало появляться статей про язык программирования Go, который разрабатывается в стенах Google. Чтобы посмотреть, что это за зверь, прочитал книгу Марка Саммерфильда (Mark Summerfield) «Programming in Go. Creation Application for the 21th Century» из серии Develorep’s Library. Когда я писал этот пост, узнал, что эта книга в 2013 году была издана и на русском языке, но я читал ее английскую версию.

Прежде чем писать про книгу, расскажу про особенности языка Go. Я не буду давать оценки тому или иному решению, который предлагает язык, поскольку пока не напишешь на каком-нибудь языке серьезную программу, глупо его критиковать — каждый язык программирования требует настройки на «свою волну». Я постараюсь все особенности языка описать на пальцах, используя минимум кода.

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