Данное программное обеспечение предназначено для использования в сети `FidoNet` и других FTN-сетях

---

# T-Hist для Linux x86_64/i686 и Windows 64/32

Утилита T-Hist создаёт текстовые файлы с графиками и гистограммами загрузки узла FTN-сети и со статистикой по сессиям и линкам
за указанный интервал суток для заданных FTN-адресов (групп адресов). Информация о загрузке берется из файлов истории (бинарных логов) мейлеров.
T-Hist поддерживает форматы бинарных логов следующих мейлеров: T-Mail, BinkD, Argus, The Brake!, Bink/+, FhMail, DVMmail, KittenMail,
BinkleyTerm-XE, FrontDoor, InternetRex, X-Mail32, BasicMail.

Разработку T-Hist я начал в 1996 году. Последняя версия T-Hist `0.30.alpha7` для DOS, OS/2 и NT (win32) была выпущена в 2003 году (архив с этой версией находится в каталоге `_old`).
Через 23 года я снова взялся за исходники и скомпилировал T-Hist, а также сопутствующие утилиты LnkStat и DmpHist, для Linux x86_64/i686 и Windows 64/32.

Данный архив содержит исполняемые файлы в следующих каталогах:
* `linux` &ndash; исполняемые файлы Linux для архитектур x86_64 и i686
* `linux-static` &ndash; исполняемые файлы Linux для архитектур x86_64 и i686, скомпилированные со статическими библиотеками
* `windows` &ndash; исполняемые файлы для Windows 64-bit и 32-bit

## Основные особенности новой версии

Под термином `старые версии` понимается версия T-Hist `0.30.alpha7`, выпущенная в 2003 году, и более ранние версии T-Hist и сопутствующих утилит.
Термины `бинарный лог` и `файл истории` эквивалентны.

1. Все утилиты выводят информацию и создают выходные текстовые файлы в кодировке UTF-8.
Для размещения статистики в русскоязычных эхоконференциях/нетмейле текстовые файлы необходимо преобразовать в кодировку CP866:

	```shell
	iconv -f UTF-8 -t CP866 in.txt -o out.txt
	```

2. Дополнительно утилитам LnkStat и DmpHist (но не T-Hist) добавлена опция командной строки `-u` для выбора кодировки выводимой информации:

	`-u`, `-u+` &ndash; использовать UTF-8 (по умолчанию)

	`-u-` &ndash; использовать ASCII 7-bit без символов псевдографики

3. Имена параметров в конфигурационном файле и их значения регистронезависимые за исключением имён файлов в Linux.

4. Корректировка длительности коротких сессий: для сессий, записанных в бинарный лог с длительностью 0 секунд, задаётся длительность 1 секунда.
Это позволяет более корректно строить гистограммы загрузки.

	**Небходимость такой корректировки**: интервалы времени в бинарных логах записаны с точностью до секунды (форматы бинарных логов разрабатывались во времена dial-up,
когда сессий короче секунды практически не было). Но при использовании Fido-over-IP в сетях с высокой пропуской способностью часто сессии длятся меньше секунды.
Для таких сессий в бинарный лог будет записана длительность 0 секунд. Старые версии T-Hist не учитывали такие короткие сессии при построении гистограмм загрузки.

	**Исключение**: утилита DmpHist такую корректировку длительности сессий не делает. Эта утилита продолжает работать по-старому:
выводит сырые данные из бинарных логов без какой-либо корректировки. Для сессий короче секунды утилита выведет длительность 0 секунд, как записано в бинарном логе.

	**Побочный эффект корректировки**: заниженная оценка по-умолчанию среднего CPS (Characters per Second - количество символов/байт, передаваемых за одну секунду).
По-умолчанию при подсчёте среднего CPS суммируется длительность всех сессий: и непустых, и пустых. В старых версиях утилит большинство пустых IP-сессий имели длительность 0 секунд
и не увеличивали суммарное время всех сессий. После данного изменения каждая пустая сессия увеличивает расчётное суммарное время как минимум на 1 секунду,
хотя скорее всего сессия была короче. Чем больше пустых сессий обработано, тем сильнее подсчитанная сумма длительностей всех сессий будет превышать реальное суммарное время.
А это приводит к заниженной оценке CPS. Для совместимости со старыми версиями утилит такое поведение по-умолчанию сохранено.
А для более корректного подсчёта среднего CPS при использовании IP-мейлеров укажите в файле конфигурации:

	`AdvancedCPS Yes`

5. Действие параметра `NoDrawZero` распространяется и на гистограммы (в старых версиях T-Hist этот параметр влиял только на графики).
Теперь общая гистограмма загрузки всегда соответствует "суммированию" всех строк графика.

6. В таблице со статистикой по сессиям (сохраняемой в файле, указанном в параметре `SessionStat`) время начала сессий теперь указывается с точностью до секунд
(в старых версиях была точность до минут). Время окончания сессий исключено по причине избыточности &ndash; в статистике приведена длительность сессий.

7. В статистике по сессиям теперь отмечаются оборванные сессии мейлера BinkD. Раньше для оборванных сессий BinkD отметка `A` (aborted) после адреса не ставилась.

8. Исправлена обработка исключаемых из статистики адресов (заданных с использованием символа `!`, например `Addr !2:5020/378.1`).
В старых версиях сессии с таким адресами ошибочно отображались в статистике по сессиям, причём всегда как оборванные. Теперь такие адреса исключены из всех видов статистики.

9. Утилита DmpHist теперь выводит в конце таблицы более подробную расшифровку битов статуса сессий.

10. Исполняемые файлы, скомпилированные со статическими библиотеками, сжаты упаковщиком исполняемых файлов [UPX 4.2.4](https://upx.github.io) для уменьшения размера.

## Оптимизация

При использовании T-Hist только для обработки бинарных логов IP-мейлера BinkD целесообразно указать в файле конфигурации:

`SupportNewFormat No`

Бинарный лог BinkD имеет старый формат. Отключение поддержки нового формата заодно отключит поддержку всех мейлеров, за исключением BinkD и T-Mail до версии 2603,
что уменьшит количество различных проверок во время выполнения программ.

## Документация

Полную документацию на новую версию я пока не сделал. Описание утилит и пример конфигурационного файла можно взять из архива с последней старой версией в каталоге `_old`.
(Возможные сообщения об ошибках при распаковке архива игнорируйте: `unzip` распаковывает архив без ошибок, а `7z` сообщает об ошибках, но извлекает файлы правильно.)

Текстовые файлы документации и пример конфигурационного файла старой версии сделаны в кодировке CP866, окончание строк досовское.
Для использования в Linux старого конфигурационного файла сконвертируйте его в Unix-формат:
```shell
dos2unix t-hist.ctl
```
Для сохранения русского текста в параметрах, имеющих текстовые значение, и в комментариях используйте кодировку UTF-8.


## Благодарности

Выражаю благодарность Alex Barinov 2:5020/715, 2:50/0 за тестирование новых версий T-Hist на своём узле.
Также благодарю всех, чьи идеи, предложения и помощь в тестировании позволили создать и развивать этот проект.
Имена некоторых из этих людей приведены в файле документации к старой версии.

---

Mikhail Markovskiy (klug), 2:5020/378

https://klug-photo.dreamwidth.org/709558.html

https://klug.livejournal.com/1102966.html