Пещера программиста
6Март/100

Colorer 1.0.2.5

Изменения:

  1. Переделано хранение настроек в реестре. Убрано отрецание в имени параметра.
    Рекомендую очистить ключ реестра сolorer.
  2. Исправлены проблемы прорисовки.
  3. При отключении плагина, «убирание за собой» происходит во всех открытых редакторах.
  4. Из диалога настроек убрана кнопка «Тест catalog.xml». При сохранении настроек (нажатии «Ок»)
    происходит проверка чтения catalog.xml.
  5. Исправлена ошибка работы с регионами с номером больше 9. Наглядный и единственный пример схема assa.hrc
  6. При поиске файла catalog.xml генерировалось много exception

Изменения в библиотеке схем

New:
— AirPlay SDK
— SASS support and sass in haml support
— JCL — Job Control Language
Fixed:
— Ruby minor updates
— Diff : add new options for support git diff (Yuri Khan)
— Text : add support pseudo-graphic
— Reg minor updates
— Makefile.hrc support nmake
— Awk : scripts, +regexp
— Far.hrc : +XML, +callplugin, +\ or \\ in registry, new macro functions and constants
— C : Formatting lines and links to system variables in them, paired quotes for strings
— HTML : add HTML5 tags

так же поменялась структура папки hrc
теперь, все схемы, что идут в дистрибутиве, лежат в одном архиве common.jar. Папка auto, как когда то и планировалась, предназначена для схем пользователя.

обновились цветовые стили. добавлены или обновлены некоторые регионы.

Colorer 1.0.2.5 для Far2 x86
Colorer 1.0.2.5 для Far2 x64

Метки записи: Комментариев нет
4Фев/100

Colorer 1.0.2.4

Изменения:

  1. увеличена скорость работы плагина .
  2. меню «Список функций»
    а) комбинация Ctrl-Enter вставляла в редактор текст в иероглифах ( неверная кодировка)
    б) нормально вводятся в фильтр клавиши «:;-_»
  3. Поправлен порядок поиск catalog.xml
  4. Обновлен файл справки и языковые файлы

Изменения в библиотеке схем

Fixes:
— HAML
— Ruby
— ERB
— SubStation Alpha (assa) ( исправлено не все что просили в теме)
— makefile

плюс поправил определение wxs и fb2 как xml.
в связи с ускорением работы, глюк с срабатыванием колорера (загрузка процессора) на неизвестных типах файлов по схеме <type name="default"><scheme name='default'/> можно считать исчерпанным. Т.к. если сделать какое то ограничение в коде на обработку этого типа, то пропадает возможность настройки своего типа по умолчанию.

Colorer 1.0.2.4 для Far2 x86
Colorer 1.0.2.4 для Far2 x64

Метки записи: , Комментариев нет
15Янв/100

Colorer 1.0.2.3

Критическое изменение

Изменения:

  1. Исправлено падение плагина на диалоге настройки
  2. Расширен диалог настройки плагина, и ширина поля для ввода пути к catalog.xml
  3. Обновлен файл справки и языковые файлы.

Colorer 1.0.2.3 для Far2 x86
Colorer 1.0.2.3 для Far2 x64


Метки записи: , Комментариев нет
14Янв/100

Colorer 1.0.2.2

Для начала об изменениях в терминах.
С данного момента в хелпе, языковых файлах и в других местах будут использоваться следующие обозначения
(старое — новое)
hrd файлы — цветовые стили
файл hrc с описанием языка — схема языка или hrc-схема
комплект hrc и hrd файлов, идущий вместе с плагином — библиотека схем

ну и собственно новая версия.

Изменения:

  1. Команда clr понимает относительные и длинные пути. А также пути
    содержащие переменные окружения.
  2. В настройках в пути до catalog.xml можно указывать переменные окружения.
    Например %programfiles%\far2\plugins\colorer\catalog.xml
  3. Поиск catalog.xml происходил не в том порядке, что указан был в хелпе.
  4. Поправил CreateConsoleScreenBuffer — разрешил чтение/запись в консоль
  5. Переделан диалог настройки плагина
    1. если плагин отключен, то при загрузке имя цветового стиля пишется без описания.
    2. «Тест catalog.xml» тестирует возможность загрузки базового файла настроек
      catalog.xml, списка языковых схем и цветовых стилей, беря путь до него из окна
      настроек. При ошибке загрузки плагин не отключается.
    3. «Тест библиотеки схем» тестирует возможность загрузки всех языковых схем,
      беря путь до catalog.xml из окна настроек.
    4. убран параметр «Время до показа диалога отмены», т.к. фактически уже давно не
      используется.
  6. В меню плагина добавлен пункт «Перезагрузить библиотеку схем». При нажатии на него
    плагин перечитывает настройки из реестра, а также библиотеку схем.
  7. исправлена утечка памяти при работе с поврежденной библиотекой схем
  8. мелкие оптимизации.
  9. Обновлен файл справки и языковые файлы.

Изменения в библиотеке схем

Fixes:
— HAML
— Ruby
— C++ environment-variable fix
New:
— ASN.1/ECN notations
— ERB — Rails HTML syntax
— Lua
— SCons scripts support (anatoly techtonik)

Colorer 1.0.2.2 для Far2 x86
Colorer 1.0.2.2 для Far2 x64

Метки записи: , Комментариев нет
24Дек/090

Colorer 1.0.2.1

Выпустил очередную версию плагина. Теперь собран полный комплект — плагин плюс схемы.
Ну и все таки решил сделать версию под Far 1.75 . Для этого было две причины
— последняя версия полного комплекта была давно, и есть утечки памяти, которые уже поправлены в библиотеке
— целостность бранча. изменив библиотеку под pcolorer2, я сломал сборку pcolorer. т.к. и так пришлось восстанавливать мэйки, то заодно подкрутил и остальное
Создание отдельного архива для Windows 9x связано с тем, что плагин собирается с помощью Visual C++ 2008. А он не поддерживает Windows 9x. По этому плагин был собран с помощью  Visual C++ 2005

Изменения:

  1. версия для far 1.75 . Приведена к возможностям плагина под far2, кроме относительных путей
  2. в версии для far 2 исправлена небольшая ошибка чтения данных из реестра
  3. обновлены схемы (базы раскраски)
  4. изменения в языковых файлах и файлах помощи

Colorer 1.0.2.1 для Far1.75 x86 windows 9x
Colorer 1.0.2.1 для Far1.75 x86
Colorer 1.0.2.1 для Far1.75 x64
Colorer 1.0.2.1 для Far2 x86
Colorer 1.0.2.1 для Far2 x64

Метки записи: , Комментариев нет
4Дек/093

Colorer 1.0.2

Крос-пост с http://forum.farmanager.com/viewtopic.php?f=11&t=4778

Проект вернулся к истокам. Теперь основной сайт как и прежде на SourceForge. Там же и репозитарий проекта. Я веду свой branche, и соответственно плагины, которые я буду выкладывать, собраны из него. После одобрения моих изменений, они попадут в trunc.
Так же вернулось к истоком имя плагина. Для фара его название Colorer. В разделе download головного сайта он значится под именем FarColorer, дабы не путать с основной библиотекой.

Ну а теперь собственно новая версия.
Colorer 1.0.2

Изменения:

  1. восстановлена работоспособность опции «Крест»
  2. изменено значение опции «Крест».
    [ ] Не показывать никогда
    [?] Показывать если включено в схеме
    [x] Показывать всегда
  3. поправлены языковые файлы, и файлы помощи
  4. команда clr поддерживает относительные пути
  5. некоторые мелкие баги

Замечания:

  1. 1. т.к. название вернулось на Colorer, то соответственно в реестре ключ так же Colorer, а не ColorerSe
  2. ключ реестра crossDontDraw переименован в CrossDraw, старый можно удалить
  3. пути длиннее max_path команда clr не поддерживает
  4. в архивах нет схем

Colorer 1.0.2 для Far2 x86
Colorer 1.0.2 для Far2 x64

Ну и еще, сообщество решило, что поддерживать плагин для Far 1.7 нет необходимости.

Метки записи: , 3 комментария
24Ноя/090

Участие в проекте

Как оказалось, вышедший недавно первый релиз ColorerSE стал и последним. Игорь Русских, автор оригинального Colorer-take5, предложил поучаствовать в оригинальном проекте. Соответственно и все наработки вносить в хранилище на SourceForge.net .

Я согласился. Первый опыт участия в коллективном проекте, да и еще на SourceForge. Открыл себе бранч . Пока переношу туда  все, что до этого реализовал/исправил для ColorerSE. Надеюсь в ближайшее время выложить первый релиз на SourceForge. А там, кстати, можно попробовать замахнуться на поддержку еще и первой версии Far.

ну как говорится — будем посмотреть.

19Ноя/090

Релиз ColorerSE

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

Следующий шаг — обновление баз из бранча Евгения Ефремова. Там у него много исправлений.

Страница проекта
Обсуждение на форуме

19Авг/090

Скелет службы (service) на Visual C++

Потребовалось мне написать службу, он же сервис, для Windows. Как показали поиски в интернете, самой используемой статьёй по этой теме оказалась Beginner's introductory guide to writing, installing, starting, stopping NT services аж 2001 года. В ней приводится скелет простой работующей службы. Этот скелет я встретил в нескольких широкоиспользуемых opensource программах, например FileZilla . Код рабочий, но есть в нем несколько моментов, которые не устраивают.

1. Управление службой идет из сторонних программ. Т.е. чтобы запустить или остановить службу, нужна дополнительная утилита.
2. Нет вывода произошедших ошибок.
3. Некоторые, найденые пользователями, ошибки. Ну даже не ошибки. Один момент проявился с выходом Windows XP. Другой момент — вызов своего потока до отправки команды «я работаю» проявляется редко. И то не понятно почему. Так что в мсдн появилась рекомендация поменять порядок вызова.
4. Во многих источниках, в том числе и в мсдн, приведен следующий код запуска программы ( не дословно, но по смылсу одинаков)

void __cdecl _tmain(int argc, TCHAR *argv[])
{
// If command-line parameter is "install", install the service.
// Otherwise, the service is probably being started by the SCM.

  if( lstrcmpi( argv[1], TEXT("install")) == 0 )
  {
    SvcInstall();
    return;
  }

// TO_DO: Add any additional services for the process to this table.
  SERVICE_TABLE_ENTRY DispatchTable[] =
  {
    { SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain },
    { NULL, NULL }
  };

// This call returns when the service has stopped.
// The process should simply terminate when the call returns.

  if (!StartServiceCtrlDispatcher( DispatchTable ))
  {
    SvcReportEvent(TEXT("StartServiceCtrlDispatcher"));
  }
}

Суть в том, что в мсдн не отображено, или плохо отображено, что служба должна стартовать только через service control manager. Т.е. если вы запустите этот код из консоли, то служба не запустится. Код ошибки ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. Этот момент у меня вызвал продолжительные поиски. Я не мог понять почему у меня служба не запускается. Как показал поиск в  интернете я не одинок. Службу нужно запускать либо через консоль администрирования либо в своей программе через функцию StartService. А вышепреведенный код расчитан, что программа будет запускаться через service control manager.

В итоге я поправил код. Что мы имеем:

  • программа обрабатывает команды -[start|stop|install|uninstall]
  • для стандартных часто встречающихся ошибок выводит понятное сообщение в консоль, для остальных — только код ошибки
  • выводится подсказка по параметрам программы
  • исправлены ошибки пункта 3

Кстати, в консоль выводятся только ошибки, возникающие при выполнении команд [start|stop|install|uninstall]. Т.к. они и подаются большей частью из консоли. В идеале, для остальных случаев, еще бы крикрутить функцию для записи ошибок (событий) в системный журнал. Но это, думаю, будет позже.

Работоспособность проверял на Windows XP и Windows 2003. В идеале проверить бы еще на Windows 2000, Vista, 2008  и 7. Исходник на VC++ 2008 service.zip (2.2 Кб, скачано: 194). Тут только модуль, без файлов проекта.

23Янв/093

Программа проверки счета в биллинговой системе UTM. Наши дни

В предыдущих записях, я познакомил вас с моим творением ( ну натворил то...), под названием UеmCheck. Было это давно, многое изменилось. А программа осталась практически на той же стадии.

Написал я её до версии 0.9.2 , а провайдер решил в это время сменить версию билинга. Менял он медленно, в начале в одном районе , потом в другом. До моего района дошло только через год. И так это меня расстроило ( вру, лень было), что бросил я программу до лучших времен. И вот таки в моем районе стоит новый билинг, и судя по всему в нем уже нельзя что то менять по своему усмотрению в интерфейсе (дает надежду на простое решение). Видимо пришло время её дорабатывать.

Метки записи: Читать полностью