Новые книги

Современное общество является технологическим – мы со всех сторон окружены машинами. Эти машины готовят нам еду, развлекают нас, помогают преодолевать огромные расстояния, безгранично увеличивают наши возможности познания мира и безмерно усиливают нашу продуктивность.

Эта книга не о том, как избавиться от машин. Эта книга о том, как получить максимум пользы от вложения ваших, с таким трудом заработанных, средств в технику, которая помогает решать ваши задачи.

Если вы обходитесь без техники, немедленно отложите эту книгу – она не для вас. Книга написана для людей, которые идут в ногу со временем вне зависимости от возраста, вероисповедания или цвета кожи.
The agile model of software development has taken the world by storm. Now, in Agile Software Development, Second Edition, one of agiles leading pioneers updates his Jolt Productivity award-winning book to reflect all that?s been learned about agile development since its original introduction.

Alistair Cockburn begins by updating his powerful model of software development as a ?cooperative game of invention and communication.? Among the new ideas he introduces: harnessing competition without damaging collaboration; learning lessons from lean manufacturing; and balancing strategies for communication. Cockburn also explains how the cooperative game is played in business and on engineering projects, not just software development

Next, he systematically illuminates the agile model, shows how it has evolved, and answers the questions developers and project managers ask most often, including

· Where does agile development fit in our organization?

· How do we blend agile ideas with other ideas?

· How do we extend agile ideas more broadly?

Cockburn takes on crucial misconceptions that cause agile projects to fail. For example, you?ll learn why encoding project management strategies into fixed processes can lead to ineffective strategy decisions and costly mistakes. You?ll also find a thoughtful discussion of the controversial relationship between agile methods and user experience design.

Cockburn turns to the practical challenges of constructing agile methodologies for your own teams. You?ll learn how to tune and continuously reinvent your methodologies, and how to manage incomplete communication. This edition contains important new contributions on these and other topics:

· Agile and CMMI

· Introducing agile from the top down

· Revisiting ?custom contracts?

· Creating change with ?stickers?

In addition, Cockburn updates his discussion of the Crystal methodologies, which utilize his ?cooperative game? as their central metaphor.

If you?re new to agile development, this book will help you succeed the first time out. If you?ve used agile methods before, Cockburn?s techniques will make you even more effective.

Управление фильтрами

7.3. Управление фильтрами

7.3.1. Преобразование файла

7.3.2. Меню управления фильтрами.
7.3.3. Добавление фильтра

7.3.4. Вывод фильтра на экран
7.3.5. Модификация фильтра.

7.3.6. Предварительный формат распечатки.
7.3.7. Добавление или модификация формата

7.3.8. Вывод формата на экран

7.3.9. Удаление формата .

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

7.3.1. Преобразование файла

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

LP позволяет присваивать type каждому принтеру, который вы добавляете к системе, а также позволяет пользователю присваивать type каждому файлу, предписанному к распечатке. Эта информация используется для подбора файла и принтера системы, который бы воспроизводил этот файл наилучшим образом.

Каждому фильтру, добавляемому к системе, также присваивается тип, определяя тип ввода, который он может принять и тип вывода, который он может дать. Если LP не в состоянии подобрать для типа файла подходящий тип принтера, она консультируется с фильтрами, чтобы найти тот, который выполнит преобразование.

7.3.1.1. Специальные режимы распечатки

Каждый фильтр, который вы добавляете в таблицу фильтров, можно зарегистрировать в зависимости от того что он обрабатывает:

  • тип ввода;
  • тип вывода;
  • тип принтера;
  • шаг расположения знаков (в строке);
  • шаг строки;
  • длина страницы;
  • ширина страницы;
  • страницы для распечатки;
  • набор символов;
  • имя формата;
  • количество копий;
  • режимы.

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

7.3.1.2. Обработка сбоев принтера

Пакет LP позволяет выявлять сбои принтера, и для большинства принтеров выявляет их досконально. Однако, он имеет ограниченные возможности проверки "зависаний" и значительных задержек распечатки. Должным образом спроектированный фильтр может обеспечить более совершенное выявление сбоев в конкретном принтере.

7.3.2. Меню управления фильтрами

Когда вы выбираете filters из меню Printer Services, на экран выводится такое меню:

	3 Manage Filters for Special Processing
	------------------------------------------------------
	add     - Add a New Filter
	list    - Display Filter Information
	modify  - Modify Filters
	remove  - Remove Filters
	restore - Restore Filters to Factory Settings

7.3.3. Добавление фильтра

Выбор add выводит на экран такую форму:

	4 Add a New Filter
	----------------------------------------------
	New Filter
	Model Filter: default-filter

Система приходит с несколькими встроенными фильтрами. Нажмите CHOICES, чтобы вывести список возможных фильтров. Вы можете или выбрать один фильтр из списка, или покинуть список, набрать имя фильтра и нажать SAVE. Форма для указания фильтра выводится с установками для этого фильтра по умолчанию, уже введенными. Затем вы можете модифицировать эти установки, включая свой собственный фильтр, или вы можете просто запустить один из встроенных фильтров. Ваш ответ на New Filter (новый фильтр) - это ввод имени, которое вы будете использовать для ссылки к этому фильтру далее. Формат такой:

	5 Add/Modify Filter <filter-name>
	----------------------------------------------
	Input types:       simple
	Output types:      simple
	Printer types:     any
	Printers:any
	
	Fast or slow filter: slow
	
	Filter command:
	
	New filter options? Yes
Input types -
это список типов файлов, которые может обработать фильтр. Имя типа файла может включать до 14 символов (включая дефисы, но не символы подчеркивания);
Output types -
это список типов файлов, которые может дать фильтр как вывод. Имена типов вывода должны согласовываться с типами принтеров вашей системы или с типами вводов, обрабатываемых другими фильтрами. LP соберет фильтры вместе в программный канал shell, чтобы получить новый фильтр, если она считает, что некоторые проходы с помощью различных фильтров нуждаются в преобразовании файла;
Printer types -
это список типов принтеров, для которых фильтр может преобразовать файлы. Для большинства фильтров этот список совпадает со списком типов вывода, но может быть и другим. Если они одинаковые, оставьте эту часть определения фильтров незаполненной;
Printers -
фильтр должен быть в состоянии работать со всеми принтерами, принимающими вывод, который дает фильтр;
Fast or Slow Filter -
LP различает "быстрые" фильтры и "медленные" фильтры. Быстрые фильтры помечаются "fast", или потому, что предполагают минимальные дополнительные расходы при подготовке файла к печати, или потому, что они должны иметь доступ к принтеру, когда функционируют. Фильтры, которые выявляют сбои принтера, например, всегда - "быстрые" принтеры. Фильтры, которые требуют большого количества расходов при подготовке файла, и могут не иметь доступа к принтеру, следует пометить как "slow". LP прогоняет медленные фильтры в фоновом режиме без привлечения принтера;
Filter Command -
это полное имя программы фильтра, которая будет функционировать. Если есть какие-то устойчивые параметры, которые всегда будут нужны программе, вы можете включить их в имя;
Filter Options: Templates -
режимы и аспекты распечатки регистрируются в списке шаблонов. Templates-list - это список шаблонов, отделенных друг от друга запятыми и имеющими следующий формат:
	keyword pattern = replacement

keyword помечает шаблон, который регистрирует конкретную характеристику распечатки. pattern - это или значение характеристики, или звездочка (*), которая ставится как обозначение структурного нуля "любое значение".

Характеристика keyword Possible patterns
Тип ввода INPUT content-type
Тип вывода OUTPUT content-type
Тип принтера TERM printer-type
Шаг расположения знаков CPI integer
Шаг строки LPI integer
Длина страницы LENGTH integer
Ширина страницы WIDTH integer
Страницы на печать PAGES page-list
Набор символов CHARSET character-set
Имя формата FORM form-name
Количество копий COPIES integer
Режимы MODES mode

Значения шаблонов INPUT и OUTPUT идут от типа файла, который необходимо преобразовать с помощью фильтра, и типа вывода, который соответственно необходимо получить. Каждый из них будет представлять собой тип, зарегистрированный фильтром.

Значение шаблона TERM - это тип принтера.

Значения шаблонов CPI, LPI, LENGTH и WIDTH идут от запроса пользователя, используемой формы или значений для принтера по умолчанию.

Значения шаблона PAGES - это список страниц, которые нужно распечатать. Обычно это список диапазона страниц - или пара чисел или одно число, каждый диапазон отделен от другого запятой (например, 1-5,6,8,10 для страниц с 1 по 5,6,8 и 10). В то же время, какое бы значение не было дано в параметре -P в запрос на распечатку, оно передается без изменений.

Значение шаблона CHARSET - это имя используемого набора символов.

Значение шаблона FORM - это имя распечатываемого формата, если таковой имеется.

Значение шаблона COPIES - это количество копий файла, которое необходимо сделать. Если фильтр использует этот шаблон, LP сократит количество копий отфильтрованного файла, который она будет распечатывать, до 1, так как эта "single copy" (одна копия) будет фактически множеством копий, получаемых с помощью фильтра.

Значение шаблона MODES идет от параметра -y команды lp, которая используется для предписания запроса на распечатку. В связи с тем, что пользователь может дать несколько параметров -y, они могут стать несколькими значениями шаблона MODE. Значения будут прилагаться в порядке слева направо, задаваемом пользователем.

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

Примеры.

Программа фильтрации называется /usr/bin/npf. Она обрабатывает два типа ввода - nroff37 и X, дает тип вывода TX и будет работать с любым принтером типа TX. Программа принимает три параметра:
-Xb только для типа ввода X;
-l integer для длины страницы вывода;
-w integer для ширины страницы вывода.

Определение вывода будет выглядеть следующим образом:

	Input types: X,nroff37
	Output types: TX
	Printer types: TX
	Command: /usr/bin/npf
	Options: INPUT X = -Xb, LENGTH * = -1*,
	WIDTH * = -W*

Программа фильтрации называется /usr/bin/x9700. Она обрабатывает один тип ввода - troff, дает тип вывода 9700 и будет работать на принтере типа 9700. У программы есть один устойчивый параметр, -ib, и она принимает три других параметра:

-l integer для длины страницы вывода;
-s name для набора символов;
-o portrait или
-o landscape
для ориентации бумаги на портрет или пейзаж.

Вы решили, что ваши пользователи дают сокращения port и land, когда они запрашивают об ориентации бумаги. В связи с тем, что эти параметры не характерны для LP, пользователи будут указывать их, используя параметр -y команды lp.

Определение фильтра будет выглядеть следующим образом:

	Input types: troff
	Output types: 9700
	Printer types: 9700
	Command: /usr/bin/x9700 -ib
	Options: LENGTH * = -l *,
		CHARSET * = -S *,
		MODES port = -o portrait,
		MODES land = -o landscape

(Последняя строка разделена на несколько строк в целях удобочитаемости; вы будете вводить ее как одну строку).

Примечание. Если значение характеристики или замена должны включать запятую или знак равенства (=) поставьте перед ними косую черту. Косая черта перед этими двумя символами будет удалена, когда значение характеристики или замена будут уже использоваться (все другие знаки косой черты останутся без изменений).

7.3.3.1. Добавление фильтра с помощью команды

При определении нового фильтра с помощью команды, сначала соберите информацию об этом фильтре, затем введите его в файл или прямо в команду lpfilter. Получите информацию в том виде, в каком она перечислена в предыдущем меню: Input types: input-type-list Output types: output-type-list Printer types: printer-type-list Printers: printer-list Filter type: fast or slow Command: simple-command Options: template-list

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

	/usr/sbin/lpfilter -f filter-name -F file-name
	/usr/sbin/lpfilter -f filter-name -

Первая команда получает определение фильтра из файла, а вторая команда - из стандартного ввода.

7.3.4. Вывод фильтра на экран

Вы проверяете определение фильтра после того, как он будет добавлен в LP или с помощью выбора list из меню Manage Filters (Управление фильтрами), или с помощью команды. Если вы выбираете list из меню, вам поступит подсказка на отображение имени фильтра. Команда lpfilter выводит на экран определение фильтра в формате: /usr/sbin/lpfilter -f filter-name -l (optionally:) >file-name

7.3.5. Модификация фильтра

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

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

7.3.5.1. Удаление фильтра

Чтобы удалить фильтр с помощью меню, выберите этот элемент и введите имя фильтра, который хотите удалить. Чтобы удалить фильтр с помощью команды, наберите следующее:

	/usr/sbin/lpfilter -f filter-name -x

Примечание. Добавление, изменение или удаление фильтров может привести к тому, что запросы на распечатку, все еще стоящие в очереди, будут уничтожены. Из-за вероятности этого, вы, возможно, захотите внести изменения в фильтры в то время, когда LP используется не очень активно.

7.3.6. Предварительный формат распечатки

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

В этой части описывается как управлять использованием предварительных форматов распечатки с помощью меню или команды. Выберите forms из меню Printer Services, что даст следующий формат:

	3 Manage Pre-printed Forms
	-------------------------------------
	add    - Add a New Form
	list   - List Form Attributes
	modify - Modify a Form
	remove - Remove Forms

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

7.3.7. Добавление или модификация формата

Когда вы выбираете add из меню, вы заполняете короткий формат, давая имя формату и именуя уже существующий формат. form-name содержит 14 или меньшее число символов, цифр и символ подчеркивания. Именованный формат является моделью для характеристик новых форматов. Затем вы редактируете те характеристики, которые в новом формате будут другими. Первоначально система обеспечивает пустой формат, носящий имя default-form. Когда будет определено несколько форматов, повторяющийся выбор CHOICES будет циклически повторять имена имеющихся в наличии форматов. Дальнейший выбор SAVE выведет на экран выбранный формат модели.

default-form такой:

	5 Add/Modify Form <form-name>
	------------------------------------------------------
	Page length:                  Page width:
	Line pitch:                            Character pitch:
	Number of Pages:
	Character set choice:
	Ribbon color:
	Comment:
	
	Alignment pattern file:
	
	Alert command:
	
	Number of requests: (Only appears if an  alert  command is supplied)
	Frequency of alerts: (Only appears if an alert  command is supplied)
	Users denied:
	Users allowed:
Page length -
длина формата или каждой страницы в многостраничном формате. Может быть выражена в виде множества строк, или размером в дюймах или сантиметрах;
Page width -
ширина формата, выраженная в колонках, дюймах или сантиметрах;
Number of pages -
количество страниц в многостраничном формате. LP использует это количество с фильтром (если такой есть в наличии), чтобы ограничить значение выравнивания до одного длинного формата. Если нет фильтра для усечения значения выравнивания, LP пропускает этот этап;
Line pitch -
насколько близко друг от друга расположены отдельные строки формата. Выражается или в строках на дюйм, или строках на сантиметр;
Character pitch -
насколько близко друг к другу расположены символы формата. Подобно шагам в строке выражается или в символах на дюйм, или в символах на сантиметр;
Character set choice -
набор символов, печатающее колесо или касета шрифтов, которые необходимо использовать, когда используется этот формат, если он специальный;
Ribbon color -
если формат всегда должен распечатываться с использованием определенного цвета ленты, то LP может напомнить какой цвет использовать при монтировании формата;
Comment -
любой комментарий, который вы хотите сделать по формату. Этот комментарий существует для того, чтобы можно было убедиться, что из себя представляет формат, когда его следует использовать;
Alignment Pattern -
образец файла, который использует LP для заполнения одного пустого формата. При монтировании формата, вы можете проверить этот образец, чтобы убедиться, что распечатка выравнена по формату должным образом;

Примечание. Если вы не хотите, чтобы информация распечатывалась в форматах-образцах, что вполне вероятно при выравнивании квитанций, например, - то вам нужно наложить маску на требуемые данные. LP хранит значение выравнивания в надежном месте, откуда только вы (т.е. пользователь lp и суперпользователь root) можете считать его.

Allerting to Mount a Form or Print-Wheel -
вы можете организовать механизм предупреждения, когда число запросов, ожидающих монтируемые формат или печатное колесо, превысит какой-то порог допустимого. Способом такой организации является подача команды, которую выдаст LP, когда такой порог будет достигнут. Скорее всего это будет команда mail или команда для записи сообщения на терминал. Вы можете также отказаться от получения предупреждений, в этом случае вы сами будете отвечать за контроль того, распечатан какой-то запрос или не распечатан по причине плохого монтирования формата.

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

Механизм предупреждений можно также указать при помощи команды. Чтобы организовать механизм предупреждения для контроля за монтированием формата или печатного колеса, вы можете ввести следующие команды:

	 /usr/sbin/lpadmin -S print-wheel -A mail -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A write -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A `command` -Q int -W minutes
	 /usr/sbin/lpadmin -S print-wheel -A none

Первые две команды дают указание LP отослать почтовое сообщение или записать это сообщение прямо в терминал, соответственно для каждого предупреждения. Третья команда дает указание LP запускать command для каждого предупреждения. Четвертая команда дает указание LP никогда не отсылать предупреждение, когда нужно монтировать формат или печатное колесо. Количество запросов, которые должны ждать, это int и minutes, равно количеству минут между повторными предупреждениями. Если вы запустите механизм получения повторных предупреждений, вы можете дать указание LP прекратить посылать вам предупреждения в текущем случае, дав следующую команду:

	/usr/sbin/lpadmin -S print-wheel -A quiet

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

Если тип формата или печатного колеса - all во всех вышеперечисленных командах, то условие использования предупреждения будет применяться во всех форматах и печатных колесах, для которых механизм предупреждения уже определен.

Users Denied/Users Allowed - это список имен регистрации пользователей, которым особым образом запрещается или разрешается использовать формат. Если список разрешений не пустой, список запрещений игнорируется. Если список разрешений пуст, используется список запрещений. Если оба списка пусты, то ограничений на использование формата не существует.

Размещение any или all (любой и все) в списке разрешений позволяет использовать формат каждому; размещение any или all в список запрещений запрещает кому-либо использовать формат, за исключением пользователя lp и суперпользователя root.

Если вы добавляете формат с помощью команды, сначала соберите этот набор характеристик, а затем введите его в файл или в виде диалогового ввода - в команду lpforms. Получите информацию следующего вида:

	Page length: scaled-number
	Page width: scaled-number
	Number of pages: integer
	Line pitch: scaled-number
	Character pitch: scaled-number
	Character set choice: character-set-name,mandatory
	Ribbon color: ribbon-color
	Comment: comment
	Alignment pattern: alignment-pattern

За исключением Alignment pattern информация может появляться в любом порядке. Aligntment pattern должна быть последней из данной информации. Если comment должен содержать строку, начинающуюся с любой из ключевых фраз, вначале следует ввести символ ">". Это значит, что любой начальный символ ">" будет убран из комментария при отображении. Необязательно давать всю информацию. Отсутствующей информации присваиваются следующие значения по умолчанию:

Элемент Значение по умолчанию
Page length 66 lines
Page width 80 columns
Number of pages 1
Line pitch 6
Character pitch 10
Character set choice any
Ribbon color any
Comment (no default)
Alignment pattern (no default)
Alerts none
Users allowed all
Users denied none

7.3.7.1. Определение формата с помощью команды

Чтобы определить формат, используйте одну из следующих команд:

	/usr/sbin/lpforms -f form-name -F file-name
	/usr/sbin/lpforms -f form-name -

Первая команда получает определение формата из файла; вторая команда - через диалог.

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

	/usr/sbin/lpforms -f form-name -u allow:user-list
	/usr/sbin/lpforms -f form-name -u deny:user-list

user-list - это список имен пользователей, отделенных запятой или пробелом. Если для отделения имен друг от друга вы используете пробелы, заключите весь список (включая и allow: или deny:) в кавычки. Использование allow:all разрешает доступ всем; deny:all всем запрещает доступ.

Чтобы организовать механизм предупреждения, необходимый при монтировании формата, введите одну из следующих команд:

	/usr/sbin/lpforms -A mail -Q integer -W minutes
	/usr/sbin/lpforms -A write -Q integer -W minutes
	/usr/sbin/lpforms -A `command` -Q integer -W minutes
	/usr/sbin/lpforms -A none

Первые две команды дают указание LP послать вам почтовое собщение или записать сообщение прямо на ваш терминал. Третья команда дает указание LP запустить command вместо каждого предупреждения. Четвертая команда дает указание LP не отсылать предупреждение, когда нужно смонтировать формат. Количество запросов, которые нужны для ожидания формата, заданные как integer и minutes, представляют собой число минут между повторными предупреждениями.

Примечание. Если вы хотите отослать сообщение почтой или написать сообщение another (другому) лицу, когда нужен формат, используйте третью из перечисленных команд

	-A `mail user-name` или -A `write user-name`

После запуска механизма получения повторных предупреждений вы можете дать указание LP прекратить отсылку ваших предупреждений в текущем случае, если просто дадите команду:

	/usr/sbin/lpforms -f form-name -A quiet

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

Если form-name - это all во всех из вышеприведенных команд, то условие использования предупреждений применяется ко всем форматам.

7.3.8. Вывод формата на экран

Выбор list из меню позволяет выводить на экран определение любого или всех форматов в системе (значение по умолчанию - all).

7.3.8.1. Выведение формата на экран с помощью команды

Вы можете проверить определение формата, после того как добавите его в LP. Есть две команды, которые можно использовать в зависимости от той информации, которую хотите проверить. Команда lpforms отображает определение формата в том виде, который подходит для повторного ввода. Команда lpstat отображает текущее состояние формата.

Используйте одну из команд, чтобы проверить определенную форму:

	/usr/sbin/lpforms -f form-name -l
	/usr/sbin/lpforms -f form-name -l (optional)>file-name
	lpstat -f form-name
	lpstat -f form-name -l

Alignment pattern не демонстрируется, если команда lpstat используется для защиты любого потенциально чувствительного содержимого.

7.3.9. Удаление формата

Чтобы удалить формат, нужно выбрать remove из меню (и введите имя формата, который нужно удалить) или используйте следующую команду:

	/usr/sbin/lpforms -f form-name -x

Назад | Содержание | Вперед