Красота!
Среди бегущих
Первых нет
и отстающих...

Из песни Вл. Высоцкого

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

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

Представьте себе такую ситуацию: компьютеры, которые используются в финансовой сфере, могут «накосячить» в момент совпадения времени перевода денег со временем начисления процентов по вкладу. В истории хакерства известны случаи, когда группа лиц, действуя по предварительному сговору, использовала особенности работы банковских сетей для надувательства путем быстрого перевода из банка в банк в определенное время. Угадайте, в какое именно? Правильно, в полночь!

Если есть проблема, то должно быть и решение. Допустим, в Сети существует некий компьютер, часы которого идут суперточно. Но спросить его: «Эй, Time Server, который час?» — будет явно недостаточно. Сначала надо выяснить, сколько времени потратится на передачу вопроса туда и получение ответа обратно. Ведь суперточный компьютер может в реальности находиться на другом конце земного шара. Системы Unix давно научились синхронизировать время по Сети. Для этого даже был разработан специальный сетевой протокол (NTP — Network Time Protocol). В современном Интернете действует усовершенствованная его версия под названием NNTP. Программы, которые этот протокол используют, называются сервером и клиентом сетевого времени. Первый работает постоянно на наиболее точном компьютере, а второй — на менее точном, и запускаются они планировщиком задач по имени Cron. На Mac клиент сетевого времени встроен в операционную систему и имеет довольно удобный пользовательский интерфейс.

Что ж, «Маки», как всегда, оказались на высоте. Но что у нас есть для Windows? Простейшая программа синхронизации времени для этой ОС имеет незатейливое название NetTime. Ее можно найти в Интернете по адресу http://nettime.sourceforge.net/. NetTime относится к категории open-source (программ, распространяемых бесплатно вместе с исходным кодом). Дистрибутив «весит» 2,1 Мбайт, устанавливается в считанные секунды и выводит удобное диалоговое окно для настройки с «ярко выраженной» кнопкой Auto-Configure.

Прежде чем нажать Auto-Configure, убедитесь, что вы подключены к Интернету, и тогда получите список наиболее интересных (с точки зрения программы) серверов. Установите интервал обновления в поле Update interval, и на этом настройка программы в качестве клиента будет завершена. При желании можно поставить флажок Allow other computers to sync to this computer, и ваш ПК превратится в сервер сетевого времени. Если ваше время не будет совпадать со временем от авторитетных источников, то об этом проинформирует основное окно программы Adjustment.

В моем случае это Large Adjustment — и целых три минуты разницы. Вот это сюрприз! Такие кварцевые элементы, как в таймере моего компьютера, надо расщеплять молотком на атомы для атомных часов, с которыми сверяет время NetTime.

Нажмите ОК, и программка будет тихо делать свое маленькое, но такое полезное дело в фоновом режиме через заданные вами промежутки времени.