четверг, 24 декабря 2009 г.

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

суббота, 5 декабря 2009 г.

Орфографический ступор

Недавно, гуляя по улице, увидел рекламный плакат одной сотовой компании. Рекламировали новый тариф, и ключевое крупное слово там было "Ноль". Увидев это, я улыбнулся, мол с ошибками пишут. Правильно ведь "Нуль". Потом появилась доля сомнения.
В общем до программировался называется. Везде Null мерещится. Конечно же правильно "Ноль".
Но и тут я оказался не прав. НаЯндексил сейчас
Как правильно? “Ноль” или “нуль”?

Слова ноль и нуль совпадают в значении, но различаются употреблением. Как правило, ноль употребляется в обиходной речи и в ряде устойчивых сочетаний, нуль - в терминологии, в научной речи. Правильными будут оба варианта написания этого слова. Например: Деление на ноль. Ноль целых. В двенадцать ноль-ноль. Ноль внимания. Ноль без палочки. Абсолютный нуль. Ниже нуля. Равно нулю. Свести к нулю (c)http://internetlesson.ru/archives/16

Век живи, век учись.

пятница, 4 декабря 2009 г.

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 нет необходимости.

вторник, 24 ноября 2009 г.

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

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

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

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

четверг, 19 ноября 2009 г.

Релиз ColorerSE

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

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

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

среда, 11 ноября 2009 г.

Все гениальное просто

Решил рассказать, как на своем опыте столкнулся с верностью этого высказывания.

Шел 2002 год. Первый курс университета.  В городе рассвет компьютерных клубов. Для одного из которых я написал программу, для управления и учета средств. Первая моя более менее серьёзная программа, испытываемая в таких масштабах. Но как ни странно все вроде бы работало.
Все хорошо, все замечательно. Но приходит день X . Рядовому игроку мало игр по локалке. Нужен доступ в интернет и игры по интернету. Как раз появился Warcraft 3, и битвы на Battle.net завладели умами игроков.
Начальством поставлена задача  - реализовать в программе возможность подсчета и блокировки интернет-трафика.
В тот период, программ для компьютерных клубов, которые продавались в интернете, было не так много. А уж считающих трафик - одна/две. Те что работали с трафиком, реализовали это через работу с сервером на linux. Он считал и блокировал интернет. Для меня же Linux тогда был  священной коровой. Программировать под него даже и мысли не было. Нужно было найти решение под Windows ( в тот момент Windows 98).

Поиски в интернете приводили только к одному - надо писать драйвер для Windows. На этом фоне перспектива использования Linux ,  была более радужной. Но в итоге, половину задачи удалось решить с помощью драйвера WinPCap. Он как раз таки позволял считать трафик на локальной машине. Нашлись и примеры использования его на Delphi. Использование его показало, что считает примерно правильно, не учитывая видимо некоторый служебный трафик. Но такого результата было достаточно.

Подсчет подсчетом, а блокировать трафик надо. Попалась на глаза следующая идея. Можно получить список открытых сетевых сессий, как программа netstat, а потом каждое соединение убить. Все это делать в цикле, т.к. новые соединения появлялись периодически. Был найден пример кода, и реализовано в программе. Радость была безмерной, работало, считало, блокировало... но не все блокировало. Например, в Counter-Strike можно было играть вечно. Трафик не блокировался. Оказывается UDP пакеты не блокировались моим методом. Облом был сильным. Всяко пробовал, но трафик не блокировался.

Не помню уже как мне пришла эта мысль,  решение было очень простым и действенным. Нужно было просто посмотреть как работает сеть. Чтобы попасть в интернет, пакеты должны попасть на шлюз. А если шлюза нет - нет и интернета. ЭВРИКА!!! Просто удаляем шлюз по умолчанию и интернета нет. Добавляем шлюз - интернет есть. За это отвечает команда 
route delete
и 
route add
Все работало как часы.

Казалось бы, задача реально сложная, а решается в пару строк кода. Возможно решение покажется корявым, но оно работало. Кстати, даже на современных ОС оно будет работать.

суббота, 7 ноября 2009 г.

Проблемы с SVN

Столкнулся недавно с одной проблемой в моём svn репозитарии. Точнее  проблема была давно , а я обратил на неё внимание вот только что. Пытался просмотреть с помощью черепахи лог изменений в репозитарии, а он выдавал список ревизий, но без дат и описаний. Причем проблема возникала только на приватном репозитарии, а на публичном, там где colorer_se - все нормально.

В итоге появилась такая вот запись номером 3516 в баг-трекере Subversion. Если на русском, то суть вот в чем.
Имеем svn сервер с sasl. В нем два различных репозитария, один публичный, другой закрытый. Отличаются они записями в файле authz. Для публичного
[/]
*= r
master=rw
Для приватного  
[/]
*=
master=rw
Т.е. если ты не прошел аутентификацию , то тебе ничего нельзя.
Пробуем посмотреть лог обоих репозитариев. Для публичного он будет такой (это вывод в консоль, так что все нормально) 
r10 | sonar | 2009-03-16 09:21:53 +0300 (Mon, 16 Mar 2009) | 1 line

?\209?\131?\208?​180?\208?\176?\2​08?\187?\208?\181​?\208?\189?\209?​139 ?\208?
\191?\209?​128?\208?\190?\2​08?\181?\208?\186​?\209?\130?\209?​139 ?\208?\180?
\208?\187?\209?\143 ?\208?\188?\208?​184?\208?\179?\2​09?\128?\208?\176​?\209?
\134?\208?​184?\208?\184 ?\209?\129 ?\208?\190?\209?​135?\208?\181?\2​08?\189?
\209?\140​ ?\209?\129?\209?​130?\208?\176?\2​09?\128?\208?\190​?\208?\185 ?\208?
\178?\208?​181?\209?\128?\2​09?\129?\208?\184​?\208?\184 ?\208?\189?\208?\176 ?
\208?\189?\208?​190?\208?\178?\2​09?\131?\209?\142​.
--------------------​--------------------​--------------------​------------
r9 | sonar | 2009-03-16 09:06:05 +0300 (Mon, 16 Mar 2009) | 1 line

?\208?\161?\208?​190?\209?\133?\2​09?\128?\208?\176​?\208?\189?\208?​181?\208?
\189?\2​08?\184?\208?\181​ ?\208?\178?\208?​181?\209?\128?\2​09?\129?\208?\184​?
\208?\184 0.9
--------------------​--------------------​--------------------​------------
Тут мы видим и дату , и пользователя, и сообщение ревизии. Для приватного вывод будет следующим 
--------------------​--------------------​--------------------​------------
r10 | (no author) | (no date) | 1 line

--------------------​--------------------​--------------------​------------
r9 | (no author) | (no date) | 1 line

--------------------​--------------------​--------------------​------------
r8 | (no author) | (no date) | 1 line
Тут мы видим "ничего".

Может возникнуть мнение, что ошибка в самом хранилище. Но я объясняю на двух разных для наглядности. Тоже самое будет, если для публичного отредактировать файл authz  как у приватного. Следующий возникающий вопрос - а ты то под тем логином/паролем заходишь? Специально проверил такой командой 
svn log svn://address --username master --password pass
Результат прежний.

В итоге напрашивается такое объяснение. Команда log  не использует логин/пароль для чтения данных, а ломится на сервер под anonymous.

Будем надеяться, что исправят эту ошибку, либо укажут что я делаю не правильно. Жаль только, что аж с 27 октября к багу ни одного комментария.

понедельник, 31 августа 2009 г.

ООП и я

На каждом шагу звучат эти три буквы  ООП. Причем так же часто, как  на заборе пишут другое слово из трех букв. А уж с выходом новых версий delphi только и слышишь про генерики и подобное. Вроде и в университете проходили ООП, и кой какую литературу из нетленки по этой теме читал. Но вот не вижу я места где применить его. Не, ну конечно delphi и окна построенно на классах, пользуюсь этим. Но чтобы что то свое сделать, какой-нибудь маленький классик замутить - неа. То ли задачи у меня на работе мелкие, недостойные классов, то ли я все таки не понимаю нафиг оно надо. А может не дорос я?

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

четверг, 20 августа 2009 г.

Баг Оперы и TineMCE 3.2.4 в WordPress

Пока писал предыдущий пост заметил следующую багу. Если в окне редактора в начале строки стоят пробелы или табы, то при сохранении поста эти символы в начале строк удаляются. Воспроизводится в Opera 9.64 и 10 beta 3 . В IE8 все отлично.
Думал запостить в багрепорт TineMCE , но у них на тестовой странице с TineMCE 3.2.5 из под оперы все нормально работает. То ли они это исправили (явно в ченджлоге не видно), толи это бага WordPress. Но блин я вчера из-за этого убил 4 часа времени. Проверил предыдущие свои посты, там тоже самое  - форматирование сбивается.

среда, 19 августа 2009 г.

Скелет службы (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. Тут только модуль, без файлов проекта.

понедельник, 17 августа 2009 г.

Зацепило

Прочитал на днях две цитаты. Зацепили ...

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

Вот ведь. Я ж взрослею  :lol: . Со мной такое бывает раз в неделю. Ну коммент мой конечно не опровеграет все остальные, но вносит какую то ясность. И вот пишишь  его пишишь, а потом раз и удалил.
А еще бесит, что иногда тоже развернешь пост на форуе свой, распишишь. А после твоего поста тишина. Вообще никто ничего не пишит, ни мне в ответ, ни дальше в тему. И происходит это на разных ресурсах. Тут напрашивается вывод, что я тормоз , пишу в темах когдак ним пропадает интерес у народа.

Вторая цитата

Hаpодная пpимета: Если пpогpаммист в pабочее вpемя игpает, значит — либо у него мало pаботы и большая заpплата, либо у него много pаботы и маленькая заpплата. (C) взято с http://pankratov.org.ua/it/dev-play

актуальна она что то в кризис. В общем зацепило, задело.

вторник, 11 августа 2009 г.

Дела, заботы и маленький праздник

Опять давно ничего не писал. Пропадаю. А все апатия какая то. На днях взял себя в руки и занялся наведением порядка. Кое как заставил себя удалить с компа около 300 гб музыки, не отсортированной. Накачал когда то , еще во времена дорогого интернета. А сейчас так безжалостно удалил. Жалко, но надо. Под нож пошли 5 почтовых ящиков, накопленных за долгие года.

Сделал к своему небольшому празднику, сегодня кстати мне четверть века исполнилось, подарок. Именной домен и почту. Открою маленькую тайну - зовут меня Добрунов Алексей. Ну и почта соответственно aleksey щенок dobrunov . Мелочь вроде, а приятно. Еще родне в этом домене почту сделать для приличия надо. Почту как и dobrih.net перенес с хостинга  на gmail. И управлять удобнее, и ограничений почти нет, и работает быстрее. В общем одни плюсы.

Ну и само собой блог. Настало время обновится. И вордпресс дорос до следующей стабильной версии, да и тема оформления меня честно говоря запарила. уж очень тяжелая и некрасивая. Пришлось пожертвовать удачным по-моему логотипом, и перейти на другую тему. Лучше выглядит, ни такая громоздкая. Заодно решил уйти от плагина wp-synhighlight, о котором упоминал ранее. Долго он не обновлялся, и не работали нужные вещи. Перешел на  CodeColorer . То что меня раздражало в предыдущем тут было нормально. Вчера правда получил письмо от автора wp-synhighlight, о том что он поправил многие вещи что просили. Просит протестировать поглядеть. Блин вот ведь сейчас делема то.
Кстати, во время настройки выяснился один факт - wordpress не очень хорошо работает с списками (нумерованный или маркированный). При форматировании может добавить лишний закрывающий тег. Вот описание проблемы.
Поставил еще антиспам плагин WP Captcha Free. Счас в радостном недоумении. Спама вообще не стало. Раньше в день  по 20 сообщений было. Akismet отметал из, но они были. А счас вообще тишина.

А в остальном вроде все постарому. Машина так же мозги и руки мои мучает. Достало блин. Раньше терпимее к ней был. А сейчас желание ходить пешком все больше проявляется. Порой мечтаешь  о велосипеде. На работу на велосипеде, обратно также. По делам на нем же. Так ведь блин, работа в 40 км от дома, погода не айс. Да и с ним бывают проблемы.

Недавно решил отвлечься от всего, почитал новую книгу Лукъяненко - Недотепа. Как оказалось - сказка.  Наверное для детей своих писал. В целом не плохо, для сказки. Для 6-9 летних детей. Но взрослым читать наверное не надо. Найти бы чего то типо "Звезды Холодные игрушки" или "Линия Грез". А уж если бы что то похожее на "Лабиринт отражений" ну просто шикарно бы было. Хотя сам понимаю, что написать что то похожее на лабиринты врятли получится.Получится, но будет не то. Не ново, похоже на все эти онлайн игры. Кстати, отличнейшая пародия на ситуацию вокруг онлайн игр показали в Южном парке ( South Park) еще аж в 2004 году.  Серия из разряда  "я уржался".

четверг, 9 июля 2009 г.

Админы инструкции не читают

Вот ведь правду говорят - админы не читают инструкций. Даже своих же.

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

А потом мы жалуемся, что пользователи не умеют читать инструкции :-D

Заодно обновил немного интсрукцию.

понедельник, 6 июля 2009 г.

Colorer 06.07.09

Новая версия Colorer

Теперь Colorer при отключении убирает за собой . Т.е. такой ситуации не будет (не должно быть)
Открываем файл в редакторе. Вызываем Colorer (Colorer-take5). Отключаем Colorer ( Configure -> снимаем галку с colorer enabled). Текущая страница остаётся раскрашенной. Переходим к следующей - одноцветная, возвращаемся к первой странице - всё равно цветная. В меню Colorer есть только пункт Configure. Не работает в обоих ветках Фара.
colorer06.07.09

Far жив или мои новые приключения

Какое то время назад обнаружил для себя, что Far еще жив. Мало того что жив, дак и еще и интенсивно развивается.
Сделаны были два основных шага  - это переход на юникод и open source. Новая ветка сменила нумерацию - Far 2. Эти изменения повлекли некоторые проблемы - старые плагины, которые работали на версии 1.7, перестали работать на новой версии. А их разработчики "пропали без вести". У некоторых благо остались исходники.

И вот тут то загорелся я идеей - а почему бы не помочь far-сообществу в разработке плагинов? Появляется большая возможность вспомнить и поднатаскать себя в знании с++, на коем в основном и ведется разработка.

Мужик сказал - мужик сделал. :-) Жертвой был выбран плагин Colorer Игоря Русских. Плагин для раскраски синтаксиса в редакторе. Судя по форуму,  плагин широко используемый. Но к сожалению, автор уже не уделяет плагину должного внимания. А проблем в  плагине хватало.  Хотя бы взять не возможность работы в новых версиях Far.

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

Текущая рабочая версия colorer05.07.09. Она содержит часть исправлений, которых нет еще в главном репозитарии.

четверг, 12 марта 2009 г.

VDS - настройка продолжается

Ковырялся давеча на серваке, настраивал бэкап и экспорт svn в базу Redmine. Да, есть такая особеность в Redmine - он сам не лезет в репозиторий за данными о изменениях. Для этого надо периодически запускать скрипт
ruby script/runner "Repository.fetch_changesets" -e production

Заметил такую неприятную вещь - сайт не особо посещаемый, точнее кроме меня на нем никто не бывает. Поэтому процесс passenger`а постоянно выгружается из памяти за не надобностью. Но вот если после этого зайти на сатй, то он будет грузится порядка 20 -30 секунд, а потом снова будет нормально. Ситуация так себе. Была идея прикрутить wget для периодического запроса главной страницы. Но в начале решил почитать мануал по passender`у. И таки нашел.  Параметр  PassengerPoolIdleTime  - время простоя до выгрузки из памяти. по умолчанию 300 секунд. сделал 3000. Стало гораздо лучше. Особенно изменилось использование памяти. До исправления текущее потребление памяти всей системой было примерно 115 мб, после 74 мб. Занятно.

Надо копать дальше, может что то еще можно оптимизировать. Память на вес золота.

Redmine + Apache + Passenger + Subversion на примере Gentoo


Как ранее писал, решил я настроить себе subversion сервер с багтрекером Redmine. Для этого обзавёлся виртуальным выделенным сервером на 1GB.ru . В качестве операционной системы там установлен Gentoo 2008. Для запуска сайта на Ruby on Rails существует много возможных комбинаций серверов. Например, я пробовал Apache + proxy_balancer + Mongrel , просто Mongrel. Так же всевозможные замены Apache на альтернативные веб-сервера. Но посоветовавшись с админом форума http://rubyclub.com.ua/, пришел к тому, что буду использовать Apache + Passenger. Кстати, в сети не нашел какого-либо мануала про Redmine и эту связку, с чем связаны многие часы раздумий. Ну и для полного счастья, точнее для более быстрой работы Passenger устанавливал Ruby Enterprise Edition. Я не рассматриваю установку и настройку базы данных, т.к. у меня она стоит на мощностях хостинга, а не на моем vds. Цель поста - систематизировать свои знания, оставить себе шпаргалку, ну и показать некоторые нетривиальные места. Практически все собиралось из исходников, так что привязки  конкретно к Gentoo практически нет. Ну и как некоторый показатель - после изучения всех граблей, настройка сервера заняла часа 3-4, и то в связи с ограничением на ресурсы сервера.

четверг, 26 февраля 2009 г.

Раздумья 2

Прошла почти неделя как начались раздумья. Думал правдо я не долго, решил - а почему бы и нет. Запас карман тянет не сильно 8-) .
Выбор пал на своего основного хостера 1Gb.ru. Поменял тариф на VDS и поехал пробовать настроить что мне надо. С воскресенья просто проподаю в консоли, голова никакая. В браузере уже порядка 20-30 открытых вкладок, что для меня при обычных 3-5, огромное количество. Сегодня закончил этап тестирования возможностей моих и сервера, осталось определиться  что конкретно я хочу сделать и реализовать это.
В ходе тестирования выяснилось несколько интересных вещей.

  1. Оказывается в стандартный тариф vds на 1gb.ru входит виртуальный хостинг. Т.е. я могу оставить свой блог на старом месте, не пытаясь настроить его на vds. Это просто значительный плюс. И так скудные ресурсы не будут тратиться на блог.

  2. SVN-клиенты, например TortoiseSVN, могут не работать через proxy-сервер. Пытался подключиться к svn-серверу как по svn:// так и по http:// (apache + web_dav) через HTTP-прокси и SOCKS5 - результат никакой. Максимум чего добился, это подключиться к серверу http:// по http-прокси, но обозревать зхранилище не давало. В тоже время через браузер в хранилище заходило и показывало все коректно. Победить удалось использованием FreeCap и SOCKS5. Заработало на ура по всем протоколам.

  3. Различия в дистрибутивах linux бывают очень большими. Настраивая программу по инструкции для одного дистрибутива, адаптируя команды под свои условия нет никакой гарантии что все заработает. Например собрал subversion с динамической линковкой библиотек. Апач не стал запускаться, т.к. не может найти эти библиотеки. После долгих поисков нашлось решение - нужно проверить есть ли папка с этими библиотеками в файле /etc/ld.so.conf  и запустить команду /sbin/ldconfig. Это для gentoo, для freebsd возможно поможет команда rehash. Позже опишу шаги настройки сервера с сылками на мануалы.


Эпопея получилась захватывающая. Больше всего убивало качество связи дома. Казалось бы, что может быть менее требовательно к связи как консоль ssh? А в итоге дома пбезлимитный тариф на 512 кбит, полностью свободный канал (запущеный джабер за раздражитель не принимается), а работа в консоли тормозит. Если еще запустить миднайт командер - порой бывает тяжко. Другое дело на работе.  Вроде 2 мбита безлим, около полусотни человек в сети (если не больше), все работает через проксю, да еще вроде по этим же 2 мбитам телефонная связь идет - ssh работает на ура. Толи из-за того что дома я вечером ей пользуюсь, а в это время кучу народу сидит в инете, толи просто провайдер не может настроить... но так жить нельзя.

на этой печальной мысли закончился рабочий день )

пятница, 20 февраля 2009 г.

Раздумья о SVN, баг-трекере и виртуальном выделенном сервере

Давно мне покоя не дает идея сделать svn репозиторий для своих проектов в интернете. Правда проектов то не особо , но надеясь на лучшее светлое будущее очень хочется -). Сделать в офисе - так не удобно, а вдруг дома захочу поработать; дома - не подходит; таскать на ноуте - опасно, блин надо научит себя делать бэкапы )). А в интернете как раз нормально получается. А если еще прикрутить баг-трекер, то счастье будет полное.
Т.к. планируется хранить приватный, не open-source код, то бесплатные svn-репозитории не подходят. Да и за последние несколько лет очень много бесплатных перешли на платную основу.  Плюсом, прочитал пост по сравнению баг-трекеров, и понял , что душа просит Redmine - практично, красиво, удобно. Только вот одно плохо - работает он на Ruby. В итоге получается, что нужен хостинг, на котором был бы Ruby, Subversion, в идеале еще и php (для переезда туда блога ), либо несколько отдельных хостингов с каждой фишкой. Но я не ребенок миллионера. Вообще я давно уже не ребёнок, но денег стока все равно нет.
Как часто у меня бывает, стоит подумать о чем то, так сразу натыкаюсь на много только что вышедших статей на эту тему. Появился на хабре пост на  тему создания своего svn сервера на виртуальном выделенном сервере. BarsMonster показал как это делается на хостинге firstvds.ru . Прикинув, что в результате svn-сервер ест не так много ресурсов, то можно поробовать поставить Ruby - а вдруг потянет? Не долго думая купил себе серверок на месяц поиграться.
Небольшого опыта работы с nix системами хватило чтобы установить на FreeBSD svn, mysql, Mongrel ( веб-сервер для Ruby). Правда не без "секса", мануалы в интернете старые, была несовместимость в версия софта. Но в итоге встало все. Правда до запуска  Redmine дело не дошло, т.к. уже на работающей в холостую системе , с запущенными процессами, съелось очень много ресурсов. А брал я самый дешевый тариф -). Mongrel съедал много памяти, да и mysql прожорлив до ресурсов. А если еще попытаться воткнуть туда apache для блога, система точно не выдержит. Глянув на более дорогие тарифы, стал сомневаться - а выдержит ли все это многообразие система за приемлемые деньги?
Тут решил глянуть на тарифы своего основного хостинга 1gb.ru . Хоть самый дешевый тариф у них 380 р в месяц,  у них оказалась классная фишка - часть сервисов, такие как база данных, почта, dns-сервер можно вынести на внешние сервера хостинга. Т.е. они не будут забирать ресурсы твоего выделенного виртуального сервера. Правда при условии что они не будут сильно нагружать проц хостинга. Но это уже что то. Скинув mysql с машины выигрывается не мало ресурсов. Опять не долго думая, взял тестовый сервер ( мало думаю блин ).  Тут уже не фря, а генту в качестве операционки. Уфф, везде свои настройки. Тут мне немного не понравилось, что нету выбора - голая система или с уже установленными сервисами. На голой FreeBsd было приятнее работать чем на Gentoo  с установленными программами - они уже были частично настроены и я тупо не мог найти нужное мне. Но в итоге поднял Mongrel, запустил Redmine. После этого я убидился - хочу Redmine и точка. Погоняв систему стало понятно - ресурсов хватит и на блог.  Единственное  что это надо все правильно настроить.

На все это ушла неделя. Ковырялся, балдел от вида консоли, ну и устал  сильно, уж очень большой общем новой информации. Сейчас надо определится - нужно мне это все , или это так чисто игры, и кроме как для успокоения души оно мне не надо.

среда, 4 февраля 2009 г.

Delphi - мертвый/вымирающий язык?

Очень часто встречаю в форумах и блогах записи с текстом "Delphi мертвый язык", или "Delphi вымирает". И не навящево советуют переходить на другие языки. Причем такие фразы кидают люди, которые, как они говорят, когда то давно программировали на нем. Так не ужели Delphi мёртвый язык?

пятница, 23 января 2009 г.

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

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

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

Пара слов о коде программы UtmCheck

В предыдущем посте я рассказал о программе UtmCheck. Сейчас хочу рассказать по какому принципу работает программа, и какие проблемы пришлось решить.

четверг, 22 января 2009 г.

Есть ли жизнь без Аськи?

Уже в который раз AOL преподнесла сюрприз для любителей халявы - смена протокола связи, что повлекло за собой отключение практически всех неофициальных клиентов ICQ. Сказать что это ЧП для русских пользователей - ничего не сказать. Это была катастрофа для большинства пользователей интернета.
Сразу скажу, что я поддерживаю AOL - как никак они не позиционируют программу как бесплатную, обязательно нужно смотреть рекламу , которая идет по протоколу. А находчивые любители халявы написали своих клиентов  для удобной работы без рекламы. Ну ладно если это опенсорс проект Miranda, но другое дело когда серьезные Российские фирмы Mail.ru, QIP (не фирма, но был куплен какой то крупной фирмой,если не ошибаюсь) использовали чужую разработку, чужие мощности для зарабатывания денег. Не удивительно видеть потом такие сообщения
Кроме того хочу заметить интересный факт — эти изменения затронули только жителей стран СНГ. Когда я связался с нашими разработчиками из Чехии и Германии они были слегка в недоумении — у них все работало прекрасно. Кроме того мы успешно смогли подключиться с миранды, используя американский прокси-сервер, так что есть подозрения о том, что это целенаправленная травля разрабатываемых в России альтернативных мессенджеров.

на хабре .
Очень расстроила наша прогрессивная молодежь - на форуме AOL сплошь русский мат, причем даже от девушек. Много антисимистких высказываний ( AOL Израильская компания).  Стыдно.
На некоторых форумах стали проскальзывать фразы, что мол по словам разработчиков, они готовы менять протокол хоть каждую неделю. Если это правда, то надо что то делать.
Выбора не так  много. Либо официальная программа с кучей рекламы, либо jabber. Т.к. я уже частично на него переехал, то буду переезжать полностью на него. Немного оптимизма дает еще то, что есть шлюзы между жабой и аськой. Так что можно легко из жабы писать в аську.
Вообще в этом развитии событий я хотел бы, чтобы разработчики как можно дольше искали обходной путь. Для чего? Для стимула  перехода на джабер, для перевода подведомственного офиса на него.

Кстати, вот буквально как отвалилась аська, у меня на работе стало спокойно. Раньше все звонили, мол тут у нас что то не получается, и тут. Аськи не стало - звонков тоже. Такое ощущение, что народ сосредоточился на работе и все стало получаться. Получается аська - зло для админа. Без неё у админа спокойная жизнь. Да будет спокойная жизнь у админа -)))

Не знаю что получилось в итоге потса  -глаза слипаются , спать охото. перечитывать нет желания -) ну его, редактирование ....

вторник, 20 января 2009 г.

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

Предисловие.

Данный пост и программа писалась еще в середине 2006 года. Так что все события и данные актуальны именно на 2006-2007 год. Начало развития программы положено в теме на одном из местечковых форумов. В следующем посте глянем на эту программу в текущий момент.
Главная цель  - получить опыт написания программ на C++ с использованием WinApi, а так же получить полезную программу.

Ну а теперь суть.

UTM - одна из самых распространненых биллинговых систем в России. До 5 версии был в ней один минус ( а может и больше, но говорим мы об одном) - нельзя было узнать состояние счета не зайдя через браузер на сайт статистики, введя логин и пароль. А учитывая то, что сессия работы с сайтом закрывалась раз в минут 5 (примерно), то чтобы посмотреть счет в уже открытом окне сайта, нужно было снова вводить логин/пароль. С появлением 5 версии этой билинговой системы ситуация улучшилась. Появилась утилита для контроля счета. Windows версия и Linux версия (ссылки на официальном сайте не нашел, видимо программа распростарняется в комплекте с билинговой системой).

Подсветка программного кода в WordPress

Создал программист, значится, себе пещеру. И дал ей название "Пещера программиста". А что же это за пещера программиста, если встроенные возможности настенной живописи не дают подсвечивать программный код? Верно - это неправильная пещера. Крикнул тогда программист грустно в гугль - "как мне подсветить свой код на стене ?". И вернулась ему туева куча ссылок. Долго рыскал он по ссылкам этим и вот что накопал.....

пятница, 9 января 2009 г.

А вот и я.

Да, что то я пропал, аж на пол года. Да и сайт был в нерабочем состоянии. А все дела, заботы и ЛЕНЬ. Куда уж без неё. А за это время столько событий произошло...

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

Сейчас в голове зреют планы освоения кросплатформенного программирования на QT, есть пара незавершенных статей на работающие программы. Да много всяких мыслей. Надеюсь буду появляьться тут чаще. Кстати надо еще блог подкрутить немного.
Ладно, до скорых встреч.