Введение
rn (сокращение от Read News) — новостной клиент (или «новостной читатель»), написанный Ларри Уоллом и впервые выпущенный в 1984 году. Он был одним из первых новостных читателей, в полной мере использовавших возможности символьно-адресуемых CRT-терминалов (первым был vnews, разработанный Кеннетом Альмквистом). Предыдущие новостные читатели, такие как readnews, были преимущественно построчными и создавались для использования на печатающих терминалах, которые были распространены на ранних Unix-миникомпьютерах, где зародились программное обеспечение и сеть Usenet. Более поздние варианты оригинальной программы rn включали rrn, trn и strn.
Особенности
rn также был примечателен тремя другими функциями, которые он внедрил: файлы KILL, принцип "делай правильно" и автоматическая настройка. Файл KILL представлял собой файл (называемый, что вполне логично) содержащий регулярные выражения, сопоставляемые с темами новостных статей в каждой группе; если статья соответствовала выражению, она помечалась как уже прочитанная. Эта функция оказалась незаменимой, поскольку рост Usenet сделал невозможным прочтение каждой статьи даже в ограниченном наборе групп новостей. Принцип "делай правильно" стал фундаментальным изменением в модели пользовательского интерфейса по сравнению с предыдущим программным обеспечением для работы с новостями; вместо того, чтобы требовать от пользователей навигации по меню или изучения отдельного набора команд для каждого режима работы программы, определенные команды с использованием одной клавиши повторялись во всем пользовательском интерфейсе, выполняя наиболее очевидную и подходящую функцию для текущей задачи. Наиболее важной из этих команд был пробел, означающий "перейти к следующему элементу", где следующим элементом могла быть следующая страница, следующая статья или следующая группа новостей, в зависимости от того, где пользователь находился в процессе чтения новостей. Наконец, автоматическая настройка была функцией для системных администраторов, невидимой для пользователей. Большинство программ Unix, и в частности все программное обеспечение Usenet, распространялись в виде исходного кода. Поскольку различные производители систем Unix (и во многих случаях различные версии программного обеспечения Unix) реализовывали немного отличающееся поведение и названия для важных функций, системному администратору требовался достаточный опыт программирования для редактирования исходного кода перед сборкой исполняемых файлов, чтобы учесть эти различия. Заботливый программист мог бы централизовать эти настройки в одном файле исходного кода, но все равно требовалось ручное редактирование. rn изменил это, включив скрипт под названием , который самостоятельно обладал достаточным интеллектом, чтобы проанализировать компьютерную систему, на которой он работал, и определить, какое поведение реализовала система из известных функций и интерфейсов, которые могли работать по-разному. Сегодня большинство программ с открытым исходным кодом распространяются с подобным скриптом, например, autoconf.
История
Как и все оригинальные программы для чтения новостей и само программное обеспечение Usenet, rn был разработан для среды большого многопользовательского мини-компьютера, к которому пользователи подключались через терминалы, напрямую соединенные с машиной, и где доступ к единственным доступным сетям осуществлялся посредством медленных и дорогих модемных соединений с коммутацией по телефонной линии. Все статьи во всех группах новостей хранились в файлах на локальном диске (известном как "новостная катушка"), и rn мог просто читать эти файлы напрямую при их отображении пользователю. Когда локальные сети стали широко распространены, было естественно, что администраторы и пользователи захотели удаленный доступ к новостной катушке, и был разработан NNTP – протокол передачи сетевых новостей – для удовлетворения этой потребности. Работая в Медицинском колледже Бейлора, Стэн О. Барбер разработал удаленный rn (rrn) – набор патчей для rn, который позволял ему взаимодействовать с сервером NNTP через локальную (или даже глобальную) сеть. Позже Барбер принял на себя ответственность за поддержку самого rn от Ларри Уолла. По мере того, как объемы новостей продолжали расти, стало очевидно, что даже файлы KILL не могли справиться с огромным количеством пользователей и статей. Появилась необходимость в новой концепции – новостном читателе с потоками, поскольку пользователи постепенно перешли от модели "читать больше, удалять меньше" к "игнорировать больше, читать меньше". Организуя статьи в новостной группе по темам обсуждения, используя заголовки, которые давно присутствовали в статьях Usenet, но практически не использовались, новостной читатель с потоками позволил бы пользователям следить за интересующими их темами и обсуждениями, не отбирая явно неинтересные ветки. Новостной читатель nn Ким Ф. Сторма первым реализовал эту новую модель, и некоторое время казалось, что nn сделает для rn то же, что rn сделал для readnews. Однако этого удалось избежать, когда Уэйн Дэвисон разработал trn – набор патчей для rn, который предоставил ему потоки на уровне статей и новый пользовательский интерфейс, позволяющий пользователям выбирать только нужные им ветки, сохраняя при этом оригинальную философию интерфейса rn – делать все правильно. Еще одним недавним дополнением к семейству rn стало добавление системы оценки, которая позволяет использовать более сложный метод оценки статей для определения того, хочет ли пользователь их читать; первоначально это было реализовано в ответвлении кода trn под названием strn, но позже это было интегрировано в официальный дистрибутив trn.