Новые книги

Попытка разобраться и понять, как программировать эффективно. С точки зрения авторов, проблема создания эффективных программ скрыта в способе мышления человека при решении задач. Людям свойственны две стратегии мышления — «паковка» (packing) и «отображение» (mapping). Стать хорошим программистом можно лишь освоив «отображение».

http://ru.wikipedia.org/wiki/Programmer%27s_Stone

© Википедия
Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.

Newsreader Configuration

Глава 24. Настройка программ работы с новостями

Программы работы с новостями (newsreader ) предоставляют функциональные возможности, позволяющие пользователю легко обращаться к функциям системы новостей: отсылать статьи или просматривать содержимое newsgroup удобным способом. Качество этого интерфейса является предметом бесконечных споров. Имеется много newsreaders, которые были перенесены в Linux. Ниже я буду описывать базисную установку для трех наиболее популярных, а именно: tin, trn и nn.

Один из наиболее эффективных newsreaders это:

$ find /var/spool/news -name '[0-9]*' -exec cat {} \;|more

Это способ, которым Unix читает новости.

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

В уровне newsgroup большинство newsreaders отображает список статей, показывая их темы и авторов. В больших группах невозможно для пользователя уследить за связями всех статей друг с другом, хотя возможно идентифицировать ответы на более ранние статьи.

Тема ответа обычно повторяет тему исходной статьи, начинаясь с Re:. Дополнительно в поле References: заголовка включается message ID статьи, на которую текущая статья является ответом. Сортировка статей по теме и связям создает деревья статей, именуемые потоками (threads). Одна из задач при написании newsreader, создание эффективной схемы построения потоков (threading), потому что время, требуемое для этого, является пропорциональным квадрату числа статей.

Здесь мы не будем детализировать то, как интерфейсы пользователя сформированы. Все newsreaders, в настоящее время доступные для Linux, имеют хорошую функцию справки, так что Вы должны исследовать их сами.

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

Настройка tin

Наиболее универсальный newsreader tin. Он написан Iain Lea и свободно построен на более старом newsreader tass (автор Rich Skrenta).

На 486DX50 ему нужно приблизительно 30 секунд, чтобы найти 1000 статей, при чтении непосредственно с диска. При обращении по NNTP к загруженному серверу новостей это займет более 5 минут. Вы можете уточнить это, регулярно модифицируя индексный файл с опцией -u или вызывая tin с опцией -U.

Обычно tin формирует дамп баз данных в домашнем каталоге пользователя ниже иерархии .tin/index. Это может быть дорого в терминах ресурсов, так что иногда стоит хранить одну копию. Это может быть достигнуто объявлением tin как setuid, например, к пользователю news. Тогда tin будет хранить все базы данных в /var/spool/news/.index.

Версия tin, включенная в некоторые дистрибутивы Linux, не имеет поддержки NNTP. При вызове как rtin или с опцией -r tin пробует соединяться с NNTP-сервером, заданным в файле /etc/nntpserverNNTPSERVER. Файл nntpserver просто содержит имя сервера в одной строке.