воскресенье, 31 октября 2010 г.

Джеффри П. Мак-Манус - Использование представлений в приложениях

Представление — это конструкция, которая позволяет управлять процессом извлечения информации из базы данных SQL Server. Это управление может осуществляться несколькими способами. В представлении можно ограничить количество строк или столбцов, что позволяет управлять данными, возвращаемыми пользователю. Для этого необходимо создать критерий отбора, который известен только разработчику базы данных, или предоставить пользователям доступ к данным на основе разрешений системы безопасности. Каждый объект базы данных — таблица, представление, хранимая процедура — может быть ассоциирован с пользователем или группой системы безопасности. В базах данных, которые используют преимущества представлений и хранимых процедур, прямой доступ к таблицам обычно ограничивается администратором базы данных. Клиентские приложения при этом ограничены только доступом к связанным представлениям или хранимым процедурам, которые, в свою очередь, отвечают за извлечение данных из основных таблиц.

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

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

Кроме этого, с помощью компонентов среднего уровня можно отделить изменения структуры базы данных от изменений бизнес-правил. Эти компоненты аналогичны представлениям и хранимым процедурам тем, что скрывают изменения структуры базы данных от клиентского приложения. Помимо этого, существует еще одно преимущество использования таких компонентов по сравнению с представлениями и хранимыми процедурам SQL Server: они упрощают процесс программирования, возвращают данные в виде объектов, а не строк и столбцов, а также не привязаны к конкретной СУБД или языку программирования. Более подробно компоненты среднего уровня рассматриваются в главе 12, "Web-службы и технологии промежуточного уровня".


Валентин Перция | Создание имени

После того как заказчик (внешний, если вы рекламное или маркетинговое агентство, или внутренний, если вы руководитель отдела маркетинга компании) заполнил бриф на разработку имени, наступает время его создания. Для разработки первоначальных вариантов достаточно двух недель. Естественно, что не все две недели (10 рабочих дней по 8 часов) уйдут на сидение за столом и писание слов. Вам потребуется пара-тройка дней на «раскачку» подсознания: поставленная задача начинает крутиться в голове вне зависимости от того, думаете ли вы о ней в данную минуту. Затем некоторое время уйдет на сбор дополнительной информации по теме имени (об этом ниже). Собственно говоря, может так случиться, что в прямом смысле «делать имя» вы будете не более одного дня или пары часов. Творческий процесс, к сожалению или к счастью, невозможно запустить или остановить по расписанию.

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

Не мешает запастись купленными в магазине или одолженными у друзей англо-, французско-, немецко-, испанско-, итальянско-русскими (-украинскими, -белорусскими) словарями. Иногда простой перевод найденного вами слова на иностранный язык может дать искомый результат.

Итак, задача, стоящая перед вами на этом этапе, формулируется так: «Хочу все знать».

В компании BrandAid существуют восемь этапов создания имени брендов.

1. Анализ рынка.

2. Разработка «тематических полей».

3. Генерация имен по «тематическим полям».

4. Повторная генерация.

5. Защита и отбор.

6. Маркетинговый и лингвистический фильтры.

7. Полный юридический анализ и защита.

8. Утверждение имени.


четверг, 28 октября 2010 г.

Владимир Верстак, Плавающие панели инструментов

Если выполнить команду Customize > Show UI > Show Floating Toolbars (Настройка > Показать пользовательский интерфейс > Показать плавающие панели инструментов), то откроются дополнительные плавающие панели: reactor, Layers (Слои), Animation Layers (Анимация слоев), Snaps (Привязки), Render Shortcuts (Быстрый доступ к настройкам визуализации), Axis Constraints (Ограничения по осям), Extras (Дополнения) и Brush Presets (Предустановки кистей).

Плавающая панель инструментов Layers (Слои) содержит кнопки для создания, активизации, блокировки и выделения слоев, а также средства для назначения и изменения свойств слоя. При помощи панели Snaps (Привязки) можно управлять свойствами привязок, используемых при моделировании и редактировании объектов. Панель Axis Constraints (Ограничения по осям) позволяет устанавливать ограничения перемещения только выделенной осью или плоскостью. Панель Extras (Дополнения) содержит кнопки переключения подключаемых модулей на сочетания клавиш, автосетки, а также кнопки создания массива, снимков и распределенных объектов по пути или заданному точками расстоянию. Панель Brush Presets (Предустановки кистей) позволяет получить доступ к предустановленным кистям, а также создавать собственные. Панель reactor содержит все необходимые команды для создания имитации физических реакций.

Панель Animation Layers (Анимация слоев) дает возможность объединять анимационные треки одного объекта, настраивая их по отдельности.

Рассмотрим некоторые панели инструментов более подробно.

Панель инструментов Snaps (Привязки) (рис. 1.17) обеспечивает быстрый доступ к наиболее используемым командам привязки.


Рис. 1.17. Плавающая панель Snaps (Привязки)


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


Рис. 1.18. Плавающая панель Render Shortcuts (Быстрый доступ к настройкам визуализации)


Удерживая нажатой клавишу Shift, щелкните на кнопке с буквой A, B или C – и настройки последней визуализации будут сохранены. Для начала визуализации сцены при помощи сохраненных настроек достаточно щелкнуть на одной из трех кнопок.


Госстандарт России - 9.2.3 Базовые линии и трассируемость

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

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

б) установить базовую линию для программного средства и определить ее в Указателе конфигурации ПО (12.26).

Примечание — Модифицируемое пользователем ПО не входит в базовую линию программного средства, за исключением связанных с ним компонентов защиты и граничных компонентов. Следовательно, в модифицируемое пользователем программное средство могут быть внесены изменения, которые не будут влиять на идентификацию конфигурации базового программного средства;

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

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

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

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

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


Денис Колисниченко / Совет № 73 Старайтесь выбрать тот тип парковки, который наиболее уместен в данной ситуации

Парковка бывает трех типов:

• параллельно проезжей части;

• перпендикулярно проезжей части;

• под углом к проезжей части.

Параллельная парковка

Параллельная парковка – наиболее сложная, поскольку нужно учитывать:

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

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

Рис. 4. Параллельная парковка.


Алгоритм параллельной парковки будет следующий:

• Нужно убедиться, что места для вашего автомобиля достаточно.

• Заезжаем передом, как обычно.

• Скорее всего, вы встанете неровно и впритык к следующему автомобилю. Поэтому сдайте назад, одновременно выравнивая автомобиль. Если вы паркуетесь с той же стороны, как и автомобиль на рис. 4, то вам нужно вывернуть руль вправо и сдавать назад, постепенно возвращая руль в положение «прямо» (если вы паркуетесь с другой стороны дороги – тогда руль нужно будет выворачивать влево).

• После этого, скорее всего, вы будете стоять практически ровно, но широко – от бордюра до вашего автомобиля будет много места. Сдайте вперед, вывернув руль вправо, – так вы максимально приблизитесь к бордюру.

• Затем сдаем назад и выравниваем машину – ваша машина стоит ровно (ну, практически ровно).

• После этого посмотрите, сможете ли вы выехать и сможет ли выехать автомобиль, который сзади вас.

Рис. 5. Параллельная парковка задним ходом.


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

На рис. 4 изображен сложный случай, когда вам нужно уместиться между двумя припаркованными автомобилями. Если места достаточно, то все просто, а вот если места впритык, тогда вам будет еще сложнее. В этом случае вам нужно будет проехать вперед и парковать машину задним ходом (рис. 5), потому как вы можете управлять передними колесами, а задними – нет.

Перпендикулярная парковка. Заезд в гараж

Казалось, что тут сложного? Выровнял машину перпендикулярно дороге и ровно заехал, стараясь никого не задеть. Ясно, что нужно знать габариты машины, чтобы можно было не только заехать, не сломав зеркала заднего вида, но и чтобы можно было выйти из машины. Но что делать, если место ограниченно? Например, напротив парковки стена или второй ряд машин (что часто бывает на стоянке). Тогда вам поможет разобраться траектория, изображенная на рис. 6.

Рис. 6. Перпендикулярная парковка.


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

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

Парковка под углом к проезжей части

С моей точки зрения, это самый простой способ парковки – меньше нужно ровнять машину, да и под углом заехать проще, чем перпендикулярно, поскольку нужно меньше расстояния для заезда машины. Если вы справляетесь с перпендикулярной парковкой (по сути, это тоже парковка под углом, только угол равен 90 градусов), то вы без проблем справитесь с парковкой под углом.


понедельник, 25 октября 2010 г.

Запуск интерпретатора Перл | Владимир Викторович Маслов

Синтаксис:

perl [ключи] файл аргументы

Перед стартом Перл ищет скрипт (программу) в следующем порядке:

1. В командной строке если указан ключ '-e'

2. Содержимое файла указанного в командной строке. В первой строке можно указывать #!/usr/bin/perl для «автоматического» запуска скрипта.

3. Стандартный ввод/вывод если не указан файл или аргументы содержащие имя файла. Для передачи аргументов скрипту из стандартного потока имя файла в командной строке обозначается символом '-'.

В методах 1 и 2 Перл сканирует строки начиная с первой если не указан ключ '-x', в противном случае началом программы считается строка с символами '#!' в начале и содержащая слово 'perl'.

Концом программы считается строка '__END__'.

В строке с '#!' можно указывать и ключи. Например '#!/bin/perl -d' для отладки программ.

После «обнаружения» скрипта Перл компилирует его целиком во внутреннее представление. Если обнаруживаются ошибки то выполнение прекращается. Если ошибок нет он выполняется. Если скрипт заканчивается без команд exit() или die() то по умолчанию выполняется команда exit(0) обозначающая нормальное завершение программы.

Ключи:

-Oцифры

Код символа-разделителя записей. По умолчанию \0.

-a

Включает режим автоматического разделения (split) переменной $_ в массив $F. Применяется с ключами -n и -p.

-c

Выполняется синтаксическая проверка скрипта и выход без запуска.

-d

Запуск в режиме интерактивной отладки.

-Dчисло или Dсписок

Установить флаги отладки Перл. Например -d14 проследить как Перл исполняет вашу программу.

1 p Синтаксический разбор

2 s Состояние стека

4 l Состояние стека имен

8 t Трассировка исполнения

16 o Создание оператора узла

32 c Строковое/числовое преобразование

64 p Вывод команды препроцессора для -P

128 m Распределение памяти

256 f Обработка формата

512 r Синтаксический разбор регулярных выражений

1024 x Дамп синтаксического дерева

2048 u Проверка защиты

4096 L «Утечка» памяти

8192 H Дамп хеша

16384 X Распределение scratchpad

32768 D Очистка

-e команда

Выполнение скрипта из одной строки указанного в командной строке.

-F шаблон

Указывает шаблон разделения в режиме работы с ключом -a

-iрасширение

Применяется для резервной копии файла обрабатываемого оператором '<>'. Оригинал хранится в файле с тем же именем что и исходный, но с указанным расширением.

Пример:

perl -p -i.old -e «s/рядовой/ефрейтор/» file

– Поменять все слова «рядовой» на «ефрейтор» в файле file

а оригинал записать в файле file.old

-Iдиректория

Директория includ- файлов для С препроцессора. Применяется с ключом –P

по умолчанию это /usr/include и /usr/lib/perl.

-lчисло


Автоматическая обработка символа конца строки.

Работает в двух случаях.

1. Отбрасывает последний символ читаемых строк для режимов -n и -p

2. Присваивает указанное значение переменной $\. Таким образом к концу каждой строки выводимой оператором print добавляется этот символ.

-n

Зацикливает скрипт и последовательно обрабатывает файлы указанные в командной строке. Позволяет создавать команды подобные sed или awk.

Операторы BEGIN и END дают возможность делать начальные и конечные установки. Содержимое файлов не выводится.

-p

То же что и -n но печатает обрабатываемые строки файлов.

-P

Предварительная обработко препроцессором языка С. Будьте внимательны и не применяйте в комментариях слова 'if', 'else' или 'define' т.к. это команды С – препроцессора.

-s

Включение режима обработки ключей командной строки запуска скрипта.

Все аргументы с символом '-' в начале, считаются ключом и переменным с таким же именем присваивается значение true.

-S


Использование системной переменной PATH для поиска скрипта.

Данный ключ применяется в системах не воспринимающих последовательность "#!" в начале скрипта для указания интерпретатора.

-T

Режим проверки «дыр» в защите. Обычно это нужно для программ работающих в режиме повышенной привелегии (setuid, setguid). Желательно для CGI скриптов.

-u

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

-U

Разрешение выполнять опасные операции. Например стереть директорию или выполнять явно не закрытую программу.

-v

Вывод номера версии Перл.

-w

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

-x директория

Режим запуска скрипта вставленного в файл содержащий обычный текст. Началом скрипта считаестся строка с символами '#!' в начале и содержащия слово perl. Концом – строка с '__END__'

Указанная директория становится текущей в момент исполнения. Если необходимо читать последующие строки то это лучше делать через указатель файла DATA.


Александр Ватаманюк, Концентратор

Когда сеть содержит более двух компьютеров, для их объединения необходимо использовать специальные устройства, одним из которых является концентратор. Свое применение концентратор находит, как правило, в сетях на основе витой пары.

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

Концентратор служит для расширения сети, а основное его предназначение – передача поступившей на вход информации всем подключенным к нему устройствам сети.

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

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

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

Существует два основных типа концентраторов.

• Концентраторы с фиксированным количеством портов (рис. 6.5) – самые простые. Выглядит такой концентратор как отдельный корпус, снабженный определенным количеством портов и работающий на выбранной скорости. Как правило, один из портов служит в качестве связующего звена между другим концентратором или коммутатором.

Рис. 6.5. Внешний вид концентратора с фиксированным количеством портов


• Модульные концентраторы (рис. 6.6) состоят из блоков, которые устанавливают в специальное шасси и объединяют кабелем. Возможна также установка концентраторов, не связанных между собой общей шиной, например, когда существуют разные локальные сети, связь между которыми не принципиальна.

Рис. 6.6. Внешний вид модульного концентратора


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

Поскольку для создания сети в основном используют коаксиальный кабель и кабель на основе витой пары, соответственно существуют концентраторы с BNC– и RJ-45-портами.

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

Рис. 6.7. Внешний вид концентратора с консольным портом (в левой части)


Концентраторы могут содержать разное количество портов – от пяти до 48. Чем больше портов имеет концентратор, тем он дороже и функциональнее. В частности, существуют конструкции, позволяющие управлять ими напрямую (то есть не используя консольный порт) или поддерживающие резервную линию соединения с другими концентраторами.

Часто на концентраторе присутствует дополнительный порт, через который можно подключать другие сегменты сети. Например, к сети стандарта 100Base-TX можно подключить сеть или сегмент со стандартом 10Base-2.