ГлавнаяГостевая книгафорум

Назад на главную раздела FIDONET



            NodeLife: Fastest NODELIST/NODEDIFF merging utility
            ===================================================
                           for DOS and OS/2

       ----------------------------------------------------------¬
       ¦  Всем замешанным в (помешанным на) ФИДО посвящается...  ¦
       L----------------------------------------------------------

      Версия 1.0  - Первый выпуск
      Версия 1.1  - Управление с командной строки
                    Ослаблены требования контроля FTS-совместимости
      Версия 1.2  - Обрезание ноделиста и добавление к нему обычных
                    диффов. Нормальная работа при большом количестве
                    диффов.
      Версия 1.3  - Шаринг файлов, прорежен опрос клавиатуры.
      Версия 1.4  - Версия под OS/2 + мелкая косметика

 NodeLife позволяет на идеальной скорости добавлять до 16 диффов
(реально это зависит лишь от ограничений ДОСа) к старому ноделисту
и генерировать новый без промежуточных стадий. Время работы линейно
зависит лишь от суммарного размера файлов и определяется
исключительно способностями вашей дисковой подсистемы. NodeLife
позволяет держать на диске неполный ноделист (только выбранные вами
зоны/регионы/сети) и обновлять его с помощью обычных общедоступных
диффов полного ноделиста. Также в процессе работы производится
полный контроль целостности создаваемых файлов (проверка по CRC и
соответствие FTS-0005) и комплектности диффов, выдается полная
диагностика.

 Принципиально хочется отметить фактор эффективности и
БЫСТРОДЕЙСТВИЯ - NodeLife выжимает максимум, на что способна
программа обработки файлов под MS-DOS.

 NodeLife в процессе работы умеет сам распаковывать необходимые для
процесса диффы, именнованные по стандартной схеме, и понимает
форматы архивов ARC/PAK/ZIP/LZH/ZOO/LIM/HPK/SQZ/ARJ. Под OS/2
количество распаковываемых архивов меньше - ZIP/ARJ/LHA (при этом
требуются Info' UNZIP.EXE, Fitzimmon's LH.EXE, и public domain
UNARJ.EXE).

 Насколько мне известно - большинство программ производит поиск
последнего ноделиста и комплектных нодедиффов достаточно тупо: если
один ноделист - отлично, если два - берем с большим номером со
стороны меньшего расстояния между ними. В данном случае этот бред
неприменим - программа узнает день недели генерации ноделиста из
первой строки, строит таблицу всех этих дней недели за прошлый год,
и на основании полученной информации производит поиск нужных
файлов. FYI - у запакованного нодедиффа две оставшиеся в расширении
цифры ОДНОЗНАЧНО определяют его третью цифру в течении прошедшего
года. Этим упрощается поиск нужных компрессированных нодедиффов,
чтобы не распаковывать все подряд.

 Немножко истории: эта программа была написана в мае 1992, но
выпущена впервые лишь через год... Первоначально она задумывалась
как монстроидальный супер-листо-диффо-трэкер-процессор, который
должен был делать все что угодно с нодедиффами и ноделистами - за
исключением использования готовых ноделистов по назначению :).
Однако впоследствии пришло понимание вредоносности любой
монстроидальности, и в результате этого родилась эта небольшая
утилита, построенная на модуле редактора для предполагавшегося
монстра. Также она стала моей _ПЕРВОЙ_ программой для OS/2, и
произошло это 29 июня 1995 года.

-------------------------------------------------------------------

 Формат командной строки чрезвычайно прост:

   NODELIFE [ключи] [nodelist/nodediff]

 По команде

   NODELIFE -h (или -?)

 вы увидите краткую инструкцию.


 Старый ноделист должен быть в текущей директории. Здесь же
появится новый ноделист, также здесь могут лежать
раскомпрессированные нодедиффы, которые потребуются в процессе
работы. Сюда же будут раскомпрессированы упакованные диффы.

 NodeLife понимает следующие ключи:

-a
 В этом случае программа не будет пытаться уничтожить что-либо
после окончания своей работы.

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

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

 Требования:
 1) Последние три байта ноделиста: 0x0D 0x0A 0x1A;
 2) Последние два байта нодедиффа: 0x0D 0x0A;
 3) Байты текста могут быть только ASCII-символами (коды 0x20-0x7E);
 4) В первой строке листа/диффы должно присутствовать текстуально
имя дня недели, на который происходит генерация диффов (по
стандарту - пятница, но NodeLife поддерживает любые дни недели - он
их берет из первой строки первого попавшегося ноделиста).

-i
 Путь, где следует искать запакованные нодедиффы.

-k
 После успешного окончания работы _использованные_ запакованные
нодедиффы будут уничтожены.

-m
 Только OS/2: задает объем памяти в килобайтах (по умолчанию - 1
мегабайт), который NodeLife может использовать для буферов. Этот
ключ только для экспериментов, и практической пользы я не обнаружил
:).

-l
 Независимо от статуса окончания все распакованные в процессе
работы диффы будут оставлены в текущей директории.

-s
 В процессе работы не проверяется целостность получаемых ноделистов
по CRC. Это _НЕРЕКОМЕНДУЕМЫЙ_ режим использования этой программы,
так как он дает хорошую возможность потерять ваш старый ноделист,
получив взамен нечто неудобоваримое. Этот режим автоматически
включается (в этом случае он необходим) при использовании ключей -o
(см. ниже).

-o{zone:-1}
-o{zone:region}
-o{zone:host}
 Эти ключи указывают, что в результирующем ноделисте должны быть
оставлены лишь узлы указанной зоны/региона/сети. Также там остаются
все зональные/региональные/сетевые хосты (узлы вида *:*/0) - как
необходимые для роутинга и message tracking'а, а также последующего
добавления диффов...
 Впоследствии возможно добавлять к обрезанному таким образом
ноделисту обычные нодедиффы, не забывая при этом указывать те же
ключи, что были и при первом обрезании (наиболее естественный путь
- запуск только из .BAT-файла).
 Если вы укажете другие ключи -i, или не укажете их вообще - ничего
страшного не произойдет, и результат будет ЕСТЕСТВЕННЫМ: 1) при
неуказании ключей все изменения из нодедиффа встанут на свои места
ВО ВСЕХ СЕТЯХ, но останется много незаполненных дыр; 2) при
неуказании одного из ранее указанных ключей - неуказанный сегмент
будет немедленно вырезан из создаваемого ноделиста; 3) при указании
дополнительных ключей - информация об этих сетях будет появляться в
ноделисте по мере ее прихода в нодедиффах.

-------------------------------------------------------------------

 NodeLife сканирует указанную (или текущую) директорию на предмет
наличия компрессированных диффов (с именем NODEDIFF, или указанным
в командной строке, запакованных одним из указанных в начале
компрессоров, имеющих расширение вида .x##, где `x' - произвольная
буква, обычно используемая для определения компрессора, `##' - две
последние цифры из расширения исходного NODEDIFFа) и запускает
декомпрессоры, которые должны быть в PATH, только для НЕОБХОДИМЫХ
диффов. Тип архива определяется по предопределенным для каждого
компрессора сигнатурам, а не по имени файла.

 По умолчанию NodeLife ведет себя так: раскомпрессированные диффы
уничтожаются автоматически; в случае УДАЧНОГО окончания генерации
нового ноделиста все остальные (кроме сгенерированного ноделиста и
еще невостребованных нодедиффов) нодедиффы/ноделисты в текущей
директории уничтожаются; компрессированные нодедиффы не
уничтожаются.

 NodeLife при запуске декомпрессоров может (и хочет) сваппится в
EMS, XMS, или на диск. Сваппинг на диск происходит либо в
директорию из переменной окружения TEMP, либо в текущую директорию.

Возвращаемые Errorlevels:

         0        Построен новый НОДЕЛИСТ
                  В случае проверки (ключ -c) - УСПЕХ
         1        Нечего делать - нету очередного диффа
                  В случае проверки (ключ -c) - НЕУДАЧА
         2        Нет ноделиста
         3        Неверное содержимое/номер ноделиста (и прочее)
         4        То же, с нодедиффами
         5        Как и 0, требуется запустить еще раз - слишком
                  много диффов для добавления за один проход
         6        Как и 0, но некоторые диффы, которые есть в
                  наличии, были отбракованы

         8        Командная строка ошибочна
         9        Системная ошибка (не должно быть)

-------------------------------------------------------------------

Лицензия
========

 NodeLife суть нелимитированное shareware. Вы можете использовать
этот продукт, даже если посчитаете возможным не высылать указанную
сумму по указанному адресу. Однако этим вы также ограничиваете
реальность появления подобного софта с моей стороны...

 А суть вот в чем - если вас устраивает этот продукт (вы понимаете,
что это мой труд, и немалый?), и вы продолжаете его пользоваться
некоторое время (скажем - месяц) - то я прошу вас в качестве
компенсации за доставленное удобство (надеюсь - это будет так)
выслать любую сумму _на оплату возможности лицензионного
использования авторского продукта_, превышающую эквивалент US$5
(пяти американских долларов), почтовым переводом по адресу:

     630090, Новосибирск, а/я 273, Терехову Сергею Александровичу.

     e-mail: 2:5000/13@fidonet :)

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

Гарантии
========

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

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

 Все пожелания по усовершенствованию и сообщения об обнаруженных
ошибках можно посылать по указанным выше адресам.

Назад на главную раздела FIDONET
Rambler's Top100
Используются технологии uCoz