Archive for апреля 2010

Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»

Книга Джошуа Кериевски Рефакторинг с использованием шаблонов refactoringДочитал на днях сабжевую книжку. Вышла она еще в 2008 году, но мне она попалась только недавно. По идее, читать ее надо было бы после книги Фаулера «Рефакторинг. Улучшение существующего кода», на которую Кириевски постоянно ссылается, но до Фаулера я пока не добрался, хотя это и не особо затруднило чтение. Вторая книга, которую лучше всего прочитать заранее, это «Приемы объектно-ориентированного проектирования. Паттерны проектирования» банды четырех.

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

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

Читать далее ‘Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»’ »

Makagiga – аутлайнер и ToDo-manager

makagiga-autlajjner-i-todo-manager

Пока OutWiker находится в разработке, сделаю-ка я обзор еще одного потенциального конкурента. Makagiga   аутлайнер и ToDo manager icon smile Дело в том, что на днях случилось страшное – на буржуйском сайте, посвященному аутлайнерам, попалась ссылка на огромный список других подобных программ. Честно говоря, когда я открыл эту таблицу, у меня был шок: это ж что, мне все это придется смотреть, а если что-нибудь понравится, то писать обзор? Когда я включил фильтр для показа только бесплатных программ, стало полегче, а когда переключился на опенсорсные разработки, успокоился и начал смотреть что же есть такого, что до сих пор не попадало в мои руки.

А в мои руки до сих пор не не попадала программа со звучным названием Makagiga.

Makagiga   аутлайнер и ToDo manager makagiga 04 300x240

И еще пара скриншотов OutWiker’а

i-eshhe-para-skrinshotov-outwikera

Я к вам опять по поводу OutWiker’а. Чтобы немного подогреть интерес перед выходом первой альфа-версии, которую надеюсь выложить в ближайшие неделю-две, покажу еще два новых скриншота.

Теперь в программе есть два типа страниц: обычные текстовые и HTML-страницы. На следующем скриншоте видна такая страница:

И еще пара скриншотов OutWikerа outwiker 3 01 300x249

Читать далее ‘И еще пара скриншотов OutWiker’а’ »

Первые скриншоты OutWiker’а

pervye-skrinshoty-outwikera

Недавно я писал, что начал делать свою программу для хранения заметок – OutWiker (называйте ее как угодно – outliner, персональная вики или может быть для таких программ есть еще какое-то название). За это время OutWiker уже приобрел интерфейс, поэтому могу показать первые скриншоты того, что получается. Саму программу пока еще не выкладываю в виде готовых файлов, потому что она еще сырая, как только доделаю основные операции, выложу первую альфа- (бета-, гамма- Первые скриншоты OutWikerа icon smile ) версию.

А теперь, собственно, скриншоты. Главное окно:

Первые скриншоты OutWikerа outwiker 01 300x238

Читать далее ‘Первые скриншоты OutWiker’а’ »

Про wxPython

pro-wxpython

Где-то года полтора назад (в конце 2008 года) я выкладывал обзор дизайнеров интерфейса для wxPython. На днях решил посмотреть что же изменилось за это время. Прошелся по упомянутым в обзоре сайтам и, честно говоря, удивился, что за это время из всех программ обновлялась только wxGlade. Беглый поиск по гуглу тоже не дал никаких новых IDE или дизайнеров.

Жаль, что такие полезные программы не развиваются. Правда, есть парочка платных софтин для построения интерфейса на wxPython/wxWidgets, которые обновлялись не так давно, но мы их считать не будем. Про wxPython icon razz

Немного настораживает ситуация с обновлением самой библиотеки wxPython. Последняя версия (2.8.10.1) вышла 14 мая прошлого года, осенью прошлого года вышла версия 2.9 wxWidgets, на основе которой построена wxPython, но библиотека wxPython до сих пор не обновилась. Правда, покопавшись в рассылке wxPython обнаружилось, что версия 2.9 должна скоро выйти, вроде бы уже есть предварительные сборки.

Еще жаль, что wxPython не поддерживает Python 3.x, и когда начнется работа по портированию на него не понятно. Все в той же рассылке писали, что разработчики обсуждали, а не начать ли работу по портированию в этом году, чем все это закончилось я так и не понял, до этого писали, что портирование на Python 3.x имеет у разработчиков низкий приоритет.

Если честно, то очень расстраивает то, что такая замечательная библиотека как wxPython так медленно развивается. С точки зрения пользователя мне намного больше нравятся проги, написанный под wxPython, чем под pyGTK. Все-таки wxPython/wxWidgets для отображения интерфейса использует API той среды, где программа запускается. Поэтому, например, в винде все диалоги открытия/сохранения окон будут выглядеть привычно для пользователя, в отличие от того же pyGTK.

Начал делать свой outliner

nachal-delat-svojj-outliner

В последнее время здесь в блоге я много писал про разные Outliner’ы и персональные вики. Вроде бы программ такого типа полно, но лично мне в каждой из них чего-то, но не хватало, поэтому решил все-таки делать свой outliner, пусть и не очень навороченный. Года два назад я уже задумывался над этим, но все-таки надеялся найти уже готовую программу, которая меня бы полностью устроила.

В последнее время приступил к написанию своего outliner’а (странно, что для этого термина в русском языке как-то не нашлось даже жаргонного аналога, можно пользоваться выражением «персональная вики», но это не совсем то). Рабочее название проги – OutWiker (от слов outliner и wiki).

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

  • Каждая страница может быть разного типа (простой текст, HTML, текст в нотации wiki и т.д.).
  • Дерево заметок хранится в виде обычных директорий на диске
  • Возможность шифрования заметок
  • К каждой странице можно прикреплять любое количество файлов, причем для этого достаточно просто скопировать файл в определенную папку
  • Список последних измененных страниц (чтобы не искать страницы, с которыми работал в последний раз)
  • К каждой заметке можно добавлять теги
  • Шаблоны для новых страниц
  • И всякие мелочи вроде установки иконок для записей в дереве, возможность редактирования страниц во внешнем редакторе.
  • Возможно, что сделаю возможность расширения типов страниц с помощью плагинов, но это не сразу.

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

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

В качестве рендера для страниц хочу использовать движок WebKit в виде компонента wxWebKit.

Пока думаю как быть с шифрованием. Шифроваться будут отдельные страницы, а вот как быть с прикрепленными файлами? Сейчас хочу кидать их в запароленный архив.

И заодно хотелось бы спросить, может вы знаете, где можно скачать бесплатные иконки для кнопок размером 16×16, чтобы меня потом не повесили за нарушение авторских прав? У меня есть коллекция иконок из Eclipse, но, честно говоря, какие-то они страшненькие.