Данный документ может быть необходим в следующих ситуациях:
У Вас имеются идеи, связанные с программированием, и существует необходимость в выполнении процесса кодирования каких-нибудь shell-скриптов.
Ваши идеи, связанные с программированием, недостаточно конкретны и требуют дополнительных указаний.
Вы желаете взглянуть на какие-нибудь shell-скрипты и комментарии в качестве образца для создания своих собственных.
Вы мигрируете из DOS/Windows (или уже выполнили это) и хотите создавать файлы пакетной обработки ("batch").
Вы - полный нерд и читаете любой попавший под руку how-to.
В данном HOW-TO осуществляется попытка предоставить Вам некоторые рекомендации по shell-программированию, основанные только на примерах.
В данном разделе Вы обнаружите небольшие скрипты, которые, вероятно, будут Вам полезны при освоении некоторых приёмов.
Терминал состоит из экрана и клавиатуры, которые совместно используются, чтобы дистанционно связаться с компьютером (хостом). Он используется так, словно он - персональный компьютер, но терминал удален от главного компьютера (стоит у другой стены комнаты или даже в другом полушарии). Программы выполняются на главном компьютере, но результаты отображаются на экране терминала. Вычислительная способность терминала - относительно низкая (иначе это был бы компьютер, а не терминал).
Его вычислительные возможности обычно ограничены возможностью отображать то, что ему послано (возможно, включая полноэкранную графику).
В дни универсальных ЭВМ с середины 1970-х до середины 1980-х большинство людей использовало терминалы, чтобы связываться с компьютерами. Они печатали в программах, запускали программы, писали документы, выдавали команды печати и т.д. Терминал соединялся с компьютером кабелем (часто ненапрямую). Он стал называться терминалом, так как был размещен на терминальном конце этого кабеля (оконечное оборудование).
Если вы использовали компьютер под Linux (исключая использование X-Window) с монитором и клавиатурой, то вы уже знаете что такое терминал, потому что вы его использовали (или точнее "виртуальный терминал"). Монитор (совместно с клавиатурой) называется консолью, но это только эмуляция терминала.
Реальный терминал отличается от монитора, потому что обладает другими электронными параметрами. Текстовый терминал часто соединен с последовательным портом компьютера через длинный кабель. Таким образом, в отличие от монитора, который обычно размещен рядом с компьютером, терминал может быть расположен очень далеко от главного компьютера. Видеоплата внутри компьютера сохраняет видеоизображение, показываемое на экране монитора. Для терминала эквивалент такой видеоплаты встроен прямо в терминал, но так как текстовые терминалы часто одноцветные, без мощной графики, возможности этой "видеоплаты" довольно слабые. Также большинство текстовых терминалов не имеет мышей.
В сетевой терминологии, принято считать, что терминал - это клиент, а главный компьютер - это сервер. Это не совсем так, поскольку процесс "обслуживания" терминала хостом состоит в приеме символов, печатаемых на клавиатуре и реакции на них, также как в случае с компьютером.
Терминал - точно так же как монитор подобен окну в компьютер. Вы, возможно, уже использовали виртуальные терминалы в Linux (нажимая Alt-F2, и т.д.). Реальный терминал работает точно так же, как этот виртуальный терминал, но на собственном экране и клавиатуре. В отличие от использования виртуального терминала в консоли, он позволяет другому человеку находиться у реального терминала и использовать компьютер одновременно с другими пользователями.
Дизайн Web-узлов — это точное размещение компонентов HTML-страниц относительно друг друга в рабочей области окна браузера.
Недостатки такого определения Web-дизайна очевидны. В нем не учтены ни цвет, ни форма, ни другие свойства компонентов HTML-страниц. Главное в этом определении — показать ограниченность возможностей HTML-разметки. Позиционирование компонентов на странице является одним из самых слабых мест в HTML.
К компонентам страницы относятся: блоки текста, графика и встроенные приложения. Размер и границы каждого из этих компонентов в рамках HTML-разметки задаются с разной степенью точности. Размер графики и приложений можно задать с точностью до пиксела. Размеры текстовых блоков в HTML задать нельзя: они вычисляются браузером исходя из относительного размера шрифта по умолчанию.
Раздел предназначен для тех программистов, которые стремятся использовать в своих разработках новейшую технологию мультимедиа. Эта технология предполагает естественные для человека способы представления информации - через звук и видео. Мы привели основные сведения, необходимые для создания систем мультимедиа с помощью программного интерфейса MS Windows, а также Microsoft Video for Windows версии 1.1.
Вы сможете создавать приложения Windows для проигрывания и записи звука, проигрывания музыки (MIDI-файлов), управления устройством чтения компакт-дисков CD-ROM, проигрывания видеофильмов в формате Microsoft Video for Windows, научитесь использовать другие средства мультимедиа
SQL отличается от большинства наиболее популярных языков программирования тем, что в нем операции производятся одновременно с данными всех строк таблицы, в то время как процедурные языки обрабатывают данные построчно. Благодаря использованию курсоров в SQL становится возможным выводить, обновлять или же удалять выбранную строку в один прием, упрощая совместное использование SQL с другими языками программирования.
По существу, курсор является указателем на определенную строку таблицы. С его помощью можно вывести, обновить или удалить строку, на которую он ссылается.
Сказать, что хороший программист может написать хорошее программное обеспечение на любом языке, — это все равно, что сказать, что хороший пилот может управлять любым самолетом: верно, но не по существу. При разработке пассажирского самолета основными критериями являются безопасность, экономическая целесообразность и удобства; для военного самолета главное это летные качества и возможность выполнения боевой задачи; а при создании сверхлегкого самолета необходимо обеспечить низкую стоимость и простоту управления.
Роль языка в программировании принижается по сравнению с программной методологией и инструментальными средствами; и не только преуменьшается, но и полностью отвергается, когда утверждают, что хорошо разработанная система может быть одинаково хорошо реализована на любом языке. Но языки программирования — это не просто инструментальное средство
Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система. Точно также, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.
Firewall’ы защищают компьютеры и сети от попыток несанкционированного доступа с использованием уязвимых мест, существующих в семействе протоколов ТСР/IP. Дополнительно они помогают решать проблемы безопасности, связанные с использованием уязвимых систем и с наличием большого числа компьютеров в локальной сети. Существует несколько типов firewall’ов, начиная от пакетных фильтров, встроенных в пограничные роутеры, которые могут обеспечивать управление доступом для IP-пакетов, до мощных firewall’ов, которые могут закрывать уязвимости в большом количестве уровней семейства протоколов ТСР/IP, и еще более мощных firewall'ов, которые могут фильтровать трафик на основании всего содержимого пакета.
Технологические возможности firewall’ов с начала 1990-х годов существенно улучшились. Сперва были разработаны простые пакетные фильтры, которые постепенно развивались в более сложные firewall’ы, способные анализировать информацию на нескольких сетевых уровнях. Сегодня firewall’ы являются стандартным элементом любой архитектуры безопасности сети.
Современные цифровые вычислительные машины позволяют с высокой точностью выполнять широкий круг математических операций с числами. Однако, в измерительных и управляющих системах величины, подлежащие обработке, как правило, представляют собой непрерывные сигналы, например, изменяющиеся значения электрического напряжения. В этих случаях приходится применять аналого-цифровые и цифро-аналоговые преобразователи. Такой подход оправдывает себя только тогда, когда требования к точности вычислений настолько высоки, что не могут быть обеспечены с помощью аналоговых вычислителей. Существующие аналоговые вычислители позволяют получить точность не свыше 0,1%. Ниже рассмотрены наиболее важные аналоговые вычислительные схемы на ОУ. Обычно мы будем полагать операционные усилители идеальными. При высоких требованиях к точности выполнения математических операций необходимо учитывать также свойства реальных усилителей.
Во многих случаях искусство требует трансцендентных способов выражения. Оно имеет внутреннюю гармонию. Для лучшего понимания задач, возникающих в процессе создания компьютерной графики, нужно осознать, с чем вы работаете и к чему вы стремитесь.
Приступив к изучению Maya, вы начинаете знакомство с новым языком, с новым средством общения. Помните, что техника, которую вы получаете в руки, является лишь средством конечного выражения вашей фантазии. Поэтому насладитесь процессом работы.
Цифровые студии нанимают в первую очередь профессиональных художников, то есть людей, имеющих опыт в традиционных искусствах, например рисовании, живописи, фотографии или скульптуре. Соответственно, изучение компьютерной графики следует начать с обзора ключевых принципов искусства. Именно этому и посвящена данная глава. Всегда следует помнить, что компьютер, с которым вы работаете, — не более чем инструмент.
В последние десятилетия интерес к компьютерной графике значительно возрос. В немалой степени это является следствием появления на рынке мощных компьютеров по относительно низким ценам. Начиная с конца 90-х годов оборудование для создания анимации стало доступным для индивидуальных пользователей.
В результате многие художники добавили в сферу своих интересов компьютерную графику. Но перед тем как приступить к изучению конкретных инструментов, необходимо познакомиться с фундаментальными понятиями из этой области.
Термин компьютерная графика относится к любому изображению или набору изображений, полученных с помощью компьютера. Впрочем, данное словосочетание в этой книге будем применять в основном к трехмерным сценам, оставляя за кадром двумерные рисунки, получаемые в таких графических редакторах, как Photoshop или Paint. Большинство программ, предназначенных для производства двумерной графики, создают растровые изображения, то есть итоговый рисунок состоит из маленьких квадратиков, называемых пикселами. Приложения же для производства SD-графики создают векторные изображения, представляющие собой набор математических кривых. Это более мощный и действенный метод. Более подробную информацию о векторных и растровых изображениях вы получите чуть позднее.
Для пользователей, знакомых с такими приложениями, как Adobe Illustrator или Macromedia Flash, не является новостью тот факт, что эти программы также создают векторные изображения. В отличие от них, Maya и другие приложения для работы с SD-графикой умеют вычислять третье измерение, то есть добавлять сцене глубину. Объекты больше не рисуются на плоскости — они распределяются в пространстве. Это крайне усложняет работу художников и в корне отличается от того, с чем приходится сталкиваться при создании двумерных изображений.
Информация должна рассматриваться не только как некая принадлежащая предприятию ценность, но и как исходная точка для построения информационной системы, обслуживающей предприятие. На практике во многих организациях пришли к убеждению, что правильное понимание информационного аспекта служит необходимой предпосылкой для построения высококачественных и целостных информационных систем. По этой причине ведущим направлением в разработке программных средств АСУ является переход от процедурно-ориентированных методов разработки к информационно-ориентированным. Информационное проектирование становится самой популярной методологией, пронизывающей все стадии жизненного цикла системы.
Информационное проектирование зачастую характеризуется как подход к созданию систем, сконцентрированный на информации. Это также всеобъемлющая стратегия, основанная на информационном планировании и уяснении целей системы. Главная посылка, на которой строится данная стратегия, состоит в том, что целостность информационных систем определяется степенью охвата информационных элементов объекта соответствующей логической моделью.
Для начала следует понять: в чем секрет такой компактности роликов, созданных в Macromedia Flash? Основная причина состоит в том, что технология Flash реализует анимацию векторных объектов. На практике это означает, что для создания элементарного ролика нам нужно один раз создать анимируемый объект и в дальнейшем манипулировать только его атрибутами и формой. Технология так же позволяет использовать и растровые объекты.
Говорят, что программы на ассемблере трудно отлаживать. Программы на ассемблере легко отлаживать — опять же при условии, что вы знаете язык. Более того, знание ассемблера часто помогает отлаживать программы на других языках, потому что оно дает представление о том, как на самом деле функционирует компьютер и что происходит при выполнении команд языка высокого уровня.
Говорят, что современные компьютеры такие быстрые, что ассемблер больше не нужен. Каким бы быстрым ни был компьютер, пользователю всегда хочется большей скорости, иначе не наблюдалось бы постоянного спроса на еще более быстрые компьютеры. И самой быстрой программой на данном оборудовании всегда будет программа, написанная на ассемблере.
Структура - один из самых редко используемых режимов отображения документа, хотя он обладает многими возможностями, которые отсутствуют в других режимах. В режиме структуры можно свернуть документ, оставив только основные заголовки, или развернуть его, отобразив все заголовки и основной текст, можно перемещать и копировать текст перетаскиванием заголовков. Кроме того, в режиме структуры удобно работать с главными документами, включающими несколько частей. Но при этом в режиме структуры не отображаются границы страниц, колонтитулы, рисунки, фон и многие другие элементы оформления документа. Обратите внимание на то, что в режиме структуры документа появляется новая панель инструментов Структура, упрощающая работу с заголовками, главным и вложенными документами. В других режимах эту панель вывести невозможно, но она там и не нужна.