История одного глюка или дело о букве «Р»

История одного глюка или дело о букве "Р"

На днях столкнулся со странным глюком, найденным в OutWiker‘е, на исправление которого вместе с поимкой виновника ушло два вечера.

Не буду долго описывать то, как я наткнулся на этот глюк, лучше перейдем сразу к его сути. А суть состоит в том, что для хранения и парсинга настроек страниц в программе используется стандартный класс ConfigParser (с некоторой тонкой оболочкой над ним, но в данном случае это не важно) — очень уж в нем удобно разбирать строки вида xxx = yyy. Так вот, неожиданно оказалось, что если yyy кончается на русскую букву «Р», то при преобразовании yyy в unicode бросается исключение о том, что кодек utf8 не может преобразовать строку, так как данные неожиданно закончились (‘utf8’ codec can’t decode byte 0xd0 in position __: unexpected end of data). Причем, в середине строки буква «Р» нормально преобразовывалась. Добавление пробела к концу строки, которая кончалась на «Р», ничего не дало, зато навело на мысль, что дело может быть в обрезании строки при выкидывания начальных и концевых пробелов, переводов строк и т.п. При этом все остальные русские буквы на конце обрабатывались без проблем.

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

Линуксовое. 3 месяца спустя

Линуксовое. 3 месяца спустя

Спустя три месяца с того момента, как стал пользоваться Линуксом не в виртуалке, а на реальном железе (о чем я писал тут), можно подвести кое-какие итоги.

Жизнь на Линуксе есть, хотя и немного специфическая. В выборе между Gnome и KDE выбрал Gnome. KDE, конечно, смотрится понавороченней, но некоторых нужных настроек внешнего вида я в нем не нашел, да и что-то он у меня периодически подключивал. Если быть более конкретным, то мне так и не удалось сделать так, чтобы иконки в трее были меньше чем 24 x 24 пикселя. Сначала я хотел настроить внешний вид панели примерно таким, как это у меня сделано в винде (широкая панель в правой части рабочего стола), но уж больно много места стал занимать трей. Другая неприятная вещь была связана с compiz-ом. Если его включить, то при сворачивании-разворачивании окон, у них неприятно моргал заголовок. Позже, кажется, после обновления KDE, это прошло, но к тому времени я уже полностью привык к Gnome. Другой неприятный глюк был связан с автозагрузкой (или как она там называется). Некоторые проги автозагружались по многу раз.
Читать далее…

OutWiker 1.0 beta 3 (что нового)

Сегодня выложил очередную версию программы OutWiker, которая предназначена для хранения заметок в виде дерева.

Из-за того, что в последние пару месяцев у меня слишком много дел и слишком мало времени, то на этот раз изменений не очень много, и в основном они были нацелены на повышение удобства работы с программой под Linux’ом, но это сказалось и на виндовой версии. 🙂 Главной целью этих изменений было создание deb-пакета для Линуксов на основе Debian’а, чуть позже надо будет сделать полноценный инсталлятор и под Винду.

outwiker_1.0_beta_2_01

Для начала список изменений:

  • Добавлена возможность хранить настройки в папке профиля, а не в папке с программой (непортабельный режим).
  • Добавлен режим открытия вики «только для чтения». Теперь справка открывается именно в этом режиме.
  • Устранено моргание окна при переключении страниц.
  • Исходники перенесены с github на launchpad.net (https://launchpad.net/outwiker). Теперь вместо git используется Bazaar.
  • Исправление нескольких ошибок в вики-парсере.

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

Книга Торвальдса и Даймонда «Just for Fun. Рассказ нечаянного революционера»

just_for_funВот, знаете, люблю я почитать книги в стиле ЖЗЛ. Причем, обычно начинаю читать подобные книги не из-за самой биографии пациента описываемого человека (личная жизнь его меня вообще не интересует), сколько узнать про положение дел в той области, в которой он работает (или работал).

Книгу «Just for Fun. Рассказ нечаянного революционера» я начал читать с той же целью — узнать историю развития Linux’а. Кроме этого, в книге Линус вспоминает свои первые компьютеры, спор с Таненбаумом по поводу того, что лучше микроядро или монолитное, встречи с другими людьми, известными среди компьютерщиков, разумеется, описывает свою биографию, к счастью, не особо подробно в плане личной жизни, больше про учебу и программирование. Одна глава посвящена взглядам Линуса на копирайт, надо сказать, вполне здравое отношение, без фанатизма как у Столлмана.

Книга написана двумя авторами — самим Торвальдсом и его другом-журналистом Даймондом, который и предложил написать эту книгу. Техническое развитие Linux’а достаточно подробно описано для его первых версий (точнее 0.01-ых), а потом уже пошли общие слова о количестве пользователей и т.п. Все-таки книга явно нацелена не только на программистов, потому что авторы не делают особый упор на техническую сторону развития операционки, а для нетехнарей даже советуют пропустить самую интересную, на мой взгляд, главу, где описываются особенности процессоров в первых компьютерах Торвальдса.

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

По поводу фамилий в книге есть одна непонятная вещь. Джобс (который Стив) регулярно обзывается «Джобе», а Торвальдсы — «Торвалъдсы». Я так и не понял, то ли это распознавание текста так хромает (с другими словами проблем не заметил), толи это какой-то жаргон.

Task Coach — программа для хранения списка задач

Task Coach - программа для хранения списка задач

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

task_coach_01

В Task Coach в первую очередь меня заинтересовало то, что не только задачи могут быть вложены одна в другую, но и категории, которые присваиваются задачам тоже могут образовывать дерево. Это удобно, если, например, хочется в одном файле хранить задачи для разных проектов. Тогда можно организовать примерно такую иерархию категорий:

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

Филип Болл «Критическая масса»

Филип Болл. Критическая массаМесяц назад в поисках чего бы почитать интересного наткнулся на книгу Филипа Болла (Philip Ball) «Критическая масса». Почитав отзывы на нее в интернете, заинтересовался и заказал ее в одном интернет-магазине.

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

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

Понравилось, как автор постепенно и очень аккуратно в течение нескольких глав рассказывал историю развития физики и социологии, постепенно сводя их все ближе и ближе. Болл начал с рассказа о политической теории Томаса Гоббса аж XVII века. Для тех, кто, как и я, из институтского курса философии помнит только то, что философы — это такие люди, которые простые вещи объясняют сложными словами, напомню, что Гоббс написал книгу «Левиафан», в которой попытался вывести политику на уровень науки.

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

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

Про Google Chrome Canary 7.0.530

Про Google Chrome Canary 7.0.530

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

Chrome canary build — это еще более ранние сборки, чем dev (аналог альфа-версий), и еще более ранние, чем бета-версии, то есть такая версия, для которой древние греки пока еще не придумали отдельной буквы. Название эта сборка получила в честь канареек, которых шахтеры использовали (используют?) для обнаружения опасной концентрации газов в шахте. Как только канарейка помирала или отключалась, это служило сигналом, что в этом месте начал скапливаться газ. (Кстати, [ljuser]nadushenka[/ljuser], ты еще раздаешь своих канареек? Может их горняки возьмут оптом? 🙂 )

Ну так вот, в канареечной сборке Chrome появились две новые возможности. Чтобы их увидеть и включить, надо зайти на страницу about:labs, где будут три эксперименатльные возможности: первая из них — расположение табов сбоку появилась уже давно, в том числе и в dev-версии, а две другие до этого я не замечал, и в dev-версии их пока еще нет.

chrome_7.0.530_01

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

Git, Bazaar и русские имена файлов

Git, Bazaar и русские имена файлов

Я уже давно проникся идеей распределенных систем контроля версий (VCS) и до сих пор использовал Git, которым был в целом доволен. Но так как в последнее время я частично стал пользоваться Linux’ом, то возникла одна проблема с хранением исходников Outwiker’а, о которой я уже как-то говорил, но напомню еще раз.

Суть проблемы состоит в том, что в исходниках Outwiker’а лежат файлы справки, которые имеют русские имена. Эти файлы создавались в Windows, поэтому кодировки имен — cp1251. При получении этих файлов из репозитория под Linux’ом кодировка имен файлов сохраняется, и по умолчанию в консоли показываются вопросики вместо имен. Это решается сменой кодировки консоли, но Outwiker будет видеть эти файлы все-равно искореженными. Имена файлов под Linux’ом можно преобразовать в нужную кодировку, но тогда с точки зрения git это будут новые (точнее переименованные) файлы, что нам не надо.

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

Как склеить карту с большим разрешением

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

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

Вручную это все делать можно, но утомительно, даже используя Фотошоп или подобные программы (даю подсказку: смотреть в сторону создания панорам), но, к счастью, существует довольно много программ, которые сами создают карты нужного размера с нужным масштабом.

На этот раз хочу рассазать про одну такую программу, которая является одной из самых мощных в своем роде, это программа SAS.Планета. Она, в отличие от многих других программ, поддерживает довольно большое количество картографических сервисов, в частности: Карты Google, Яндекс.Карты, Космоснимки, Yahoo! Maps, Карты генштаба (!) и другие, в том числе исторические и карты Марса с Луной. При этом можно выбирать тип карт: данные со спутника, в виде карты или смешанное отображение.

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

Также как и Google Earth, SAS.Планета можт работать со слоями. Благодаря этому, например, можно наложить на Яндекс.Карты данные из Викимапии или Panoramio.

SAS.Планета. Яндекс.Карты и Wikimapia

Или, например, на Гуглокарту можно наложить данные о пробках от Яндекса

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

Редактор диаграмм yEd

Редактор диаграмм yEd

Иногда мне приходится рисовать разные схемы и диаграммы. В зависимости от конечного результата я использовал две разные программы: если нужно по-быстрому набросать схему для себя, то я писал скрипты для graphviz — результат получался страшненький, но зато всегда можно быстро что-то подправить, а расположение узлов схемы выберет сама программа. Если конечный рисунок нужно кому-то показывать, то тут уж приходилось использовать полноценный векторный редактор (обычно Corel Designer), чтобы схема смотрелась получше, но при этом приходилось самому располагать узлы схемы, чтобы уменьшить количество пересечений ребер, а добавление нового узла часто приводило к серьезной перерисовке схемы.

А недавно попалась замечательная программка yEd, предназначенная специально для рисования диаграмм. Это специализированная программа, не предназначеная для рисования высокохудожественных рисунков, а вот схемы и диаграммы рисовать в ней одно удовольствие. Еще большее удовольствие — это играться с ее возможностями автоматического расположения узлов графов. Но обо всем по порядку.

К справке по yEd прилагаются некоторые готовые схемы, поэтому, чтобы не изобретать велосипед, часть схем для скриншотов я возьму оттуда.

Интерфейс программы yEd

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