Блог О пользователеethelika

Регистрация

Календарь

« Февраль 2011  
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28

На странице


1 |2 |3
 

Far Manager, Алексей Садовский


Far Manager в отличие от Total Commander выполнен как консольное приложение. Это означает, что запускается он в командной строке. Этот файловый менеджер сильно напоминает классический Norton Commander под DOS.

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

Far Manager был разработан нашим соотечественником Евгением Рошалом, который по совместительству является создателем популярного архиватора WinRAR, рассматриваемого в следующей главе.

Загрузить Far Manager (рис. 18.12) вы можете с официального сайта программы (http://www.farmanager.com).

Рис. 18.12. Главное окно Far Manager


Слева и справа расположены два списка файлов и папок. Под ними находятся две строки со статистикой, еще ниже – командная строка и список клавиш быстрого вызова, назначение которых такое же, как и в Total Commander:

• Помощь (F1) – вызов справки;

• Пользовательское меню (F2) – вызов пользовательского меню, которое создается пользователем программы для удобства работы;

• Просмотр (F3) – просмотр содержимого файла;

• Редактирование (F4) – редактирование содержимого файла;

• Копирование (F5) – копирование файла или папки;

• Перенос (F6) – перенос (перемещение) или переименование файла или папки;

• Папка (F7) – создание папки;

• Удаление (F8) – удаление файла или папки;

• Конфигурационное меню (F9) – основное меню программы, при нажатии клавиши F9 оно отобразится над списками файлов и папок;

• Выход (F10) – выход из программы.

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

Информация, выводимая о файлах и папках в обоих списках, не менее полная, чем в Total Commander. Кроме того, определенные типы файлов и папок выделены различными цветами, чтобы вы могли легко ориентироваться и быстро находить то, что требуется.

Можно вывести расширенную информацию как о файлах и папках, так и о жестком или других дисках. В этом отношении Far Manager предлагает весьма широкие возможности. Изменить режим вывода информации левого или правого списка можно в меню Левая или Правая соответственно (рис. 18.13).

Рис. 18.13. Меню режима вывода информации в левый список


Следует отметить возможности Far по архивации данных. Данная функция вызывается сочетанием клавиш Shift+F1 или через меню Файлы > Архивировать. Параметры архивации частично совпадают с таковыми в Total Commander, однако имеется возможность указать пароль к архиву, а также приоритет процесса (рис. 18.14).

Рис. 18.14. Параметры архивации


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

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

Настройка Far Manager производится из меню Параметры (рис. 18.15).

Рис. 18.15. Меню настройки Far Manager


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

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

 

Асинхронные и синхронные процессы | H. M. Ручко


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

Асинхронные процессы могут выполняться последовательно, параллельно или с перекрытием. Эти сценарии изображены на рис. 3.12. В ситуации 1 до самого конца выполняется процесс А, затем процесс В и процесс С выполняются до самого конца. Это и есть последовательное выполнение процессов. В ситуации 2 процессы выполняются одновременно. Процессы А и В - активные процессы. Во время выполнения процесса А процесс В находится в состоянии ожидания. В течение некоторого интервала времени оба процесса пребывают в ждущем режиме. Затем процесс В «просыпается», причем раньше процесса А, а через некоторое время «просыпается» и процесс А, и теперь оба процесса выполняются одновременно. Эта ситуация показывает, что асинхронные процессы могут выполняться одновременно только в течение определенных интервалов времени. В ситуации 3 выполнение процессов А и В перекрывается.


Рис. 3.12. Возможные сценарии асинхронных и синхронных процессов

Асинхронные процессы могут совместно использовать такие ресурсы, как файлы или память. Это может потребовать (или не потребовать) синхронизации или взаимодействия при разделении ресурсов. Если процессы выполняются последовательно (ситуация 1), то они не потребуют никакой синхронизации. Например, все три процесса, А, В и С, могут разделять некоторую глобальную переменную. Процесс А (перед тем как завершиться) записывает значение в эту переменную, затем процесс В во время своего выполнения считывает данные, хранимые в этой переменной и (перед тем как завершиться) записывает в нее «свое» значение. Затем во время своего выполнения процесс С считывает данные из этой переменной. Но в ситуациях 2 и 3 процессы могут попытаться одновременно модифицировать эту переменную, поэтому здесь не обойтись без синхронизации доступа к ней.

Мы определяем синхронные процессы как процессы с перемежающимся выполнением, когда один процесс приостанавливает свое выполнение до тех пор, пока не з аверш ится другой - Например, процесс А, родительский, при выполнении создает процесс В, сыновний. Процесс А приостанавливает свое выполнение до тех пор, пока не завершится процесс В. После завершения процесса В его выходной код помещается в таблицу процессов. Тем самым процесс А уведомляется о завершении процecca В. Процесс А может продолжить выполнение, а затем завершиться или завершиться немедленно. В этом случае выполнение процессов А и В является синхронизированным. Сценарий синхронного выполнения процессов А и В (для сравнения с асинхронным) также показан на рис. 3.12.

 

Валентин Перция. Какую выгоду несет покупателю ваш бренд?


Бренд – это выгода. Функциональная, эмоциональная, психологическая или социальная: любая, которую человек покупает вместе с товаром или услугой. Именно за эту дополнительную выгоду человек готов платить при покупке бренда больше по сравнению с «обычным товаром». Чтобы понять, все ли в порядке с вашим брендом, начните с простого теста: продолжите внизу фразу «Мой бренд дает покупателю следующие дополнительные выгоды…»

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

1) ____________________________________

2) ____________________________________

3) ____________________________________

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

Автомобиль BMW дает возможность продемонстрировать свою принадлежность к определенной группе людей.

Конструкторы Lego позволяют детям развиваться, играя.

Йогурты Danone – наилучший источник полезных бактерий для полноценного функционирования организма.

Ноутбуки Apple демонстрируют окружающим, что их владелец – оригинальная личность.

Далее мы очень подробно обсудим способы формулирования выгоды от бренда. Пока же проверьте себя: удалось ли вам описать те выгоды, которые получает покупатель «в нагрузку» к вашему товару? Если да, то поставьте на полях книги «плюс».

 

1.5.3 Подсчет строк - Вик С. Штаркман


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

#include ‹stdio.h›

/* подсчет строк входного потока */

main()

{

 int c, nl;

 nl = 0;

 while ((с = getchar()) != EOF)

  if (c == '\n')

   ++nl;

 printf("%d\n", nl);

}

Тело цикла теперь образует инструкция if, под контролем которой находится увеличение счетчика nl на единицу. Инструкция if проверяет условие в скобках и, если оно истинно, выполняет следующую за ним инструкцию (или группу инструкций, заключенную в фигурные скобки). Мы опять делаем отступы в тексте программы, чтобы показать, что чем управляется.

Двойной знак равенства в языке Си обозначает оператор "равно" (он аналогичен оператору = в Паскале и .EQ. в Фортране). Удваивание знака = в операторе проверки на равенство сделано для того, чтобы отличить его от единичного =, используемого в Си для обозначения присваивания. Предупреждаем: начинающие программировать на Си иногда пишут =, а имеют в виду ==. Как мы увидим в главе 2, в этом случае результатом будет обычно вполне допустимое по форме выражение, на которое компилятор не выдаст никаких предупреждающих сообщений (Современные компиляторы, как правило, выдают предупреждение о возможной ошибке. - Примеч. ред.).

Символ, заключенный в одиночные кавычки, представляет собой целое значение, равное коду этого символа (в кодировке, принятой на данной машине). Это так называемая символьная константа. Существует и другой способ для написания маленьких целых значений. Например, 'A' есть символьная константа, в наборе символов ASCII ее значение равняется 65 - внутреннему представлению символа A. Конечно, 'A' в роли константы предпочтительнее, чем 65, поскольку смысл первой записи более очевиден, и она не зависит от конкретного способа кодировки символов.

Эскейп-последовательности, используемые в строковых константах, допускаются также и в символьных константах. Так, '\n' обозначает код символа новой строки, который в ASCII равен 10. Следует обратить особое внимание на то, что '\n' обозначает один символ (код которого в выражении рассматривается как целое значение), в то время как "\n" - строковая константа, в которой чисто случайно указан один символ. Более подробно различие между символьными и строковыми константами разбирается в главе 2.

Упражнение 1.8. Напишите программу для подсчета пробелов, табуляций и новых строк.

Упражнение 1.9. Напишите программу, копирующую символы ввода в выходной поток и заменяющую стоящие подряд пробелы на один пробел.

Упражнение 1.10. Напишите программу, копирующую вводимые символы в выходной поток с заменой символа табуляции на \t, символа забоя на \b и каждой обратной наклонной черты на \\. Это сделает видимыми все символы табуляции и забоя.

 

Интернет как индикатор настроения клиентов, инструмент для сбора их мнений и средство влияния на ...


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

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

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

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

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

 

ОПЫТЫ: Весь Skype в одном флаконе: Комплект Logitech Easycall Desktop | Журнал «Компьютерра...



Автор: Сергей Леонов

Комплект, попавший на тестирование в редакцию, заинтересовал меня изначальной ориентацией на работу с программой Skype - именно для этого в комплект, помимо беспроводных клавиатуры и мыши, входит звуковая гарнитура и устройство, которое я для себя назвал «аудиобазой» - в нем совмещены приемник для клавиатуры/мыши, микрофон и аудиосистема.

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

Без установки драйверов в Windows XP работает почти все - то есть устройства ввода определяются как HID, а звук - как USB-аудио, причем именно с названием Logitech Easycall Desktop. Не работают только кнопки Skype - для этого придется все же воспользоваться установочным диском. При установке грамотный Skype выдает предупреждение, что некая программа от Logitech пытается им воспользоваться - разрешить? Получив разрешение, приложение действительно подчиняется командам с кнопок, хотя и с заметной задержкой. Звуковой тракт нареканий не вызвал - микрофон слышит голос, не требуя наклоняться к нему, аудиосистема воспроизводит звук соответственно размерам встроенного динамика, диаметром дюйма полтора (до настольных колонок далеко, но лучше, чем встроенные «пищалки» ноутбуков). Однако не во всех конфигурациях процесс установки будет проходить без сучка без задоринки - например, зловредное приложение SoundMax (использующееся, в частности, со звуковыми чипами от Yamaha) перехватывает инициативу и переключает звук на собственный чип, но это нельзя ставить в вину Logitech - SoundMax это делает регулярно даже при конкуренции с HiFi-картами от Creative. Также при установке софта на ноутбук инсталлятор нашел в системе тачпад и пообещал, что не будет менять его настройку, тем не менее скорость перемещения указателя сбилась - Windows не позволяет задать ее отдельно для разных устройств. Перенастроить кнопки Skype для работы с другими приложениями нельзя - такой возможности драйвер не имеет.

Собственно клавиатура и мышь (лазерная) по качеству соответствуют последним топовым устройствам Logitech. По мягкости работы клавиатура вполне на уровне - стука клавиш почти нет, только легкое шуршание при нажатии-отпускании. Лично мне непривычен большой ход клавиш, поскольку я предпочитаю клавиатуры ноутбучные (вернее, их настольные аналоги по конструкции клавиш). Черное бархатистое покрытие, конечно же, красиво, но практической пользы не приносит, ибо работает в основном пылесборником, плюс отпечатки пальцев с него приходится долго и часто оттирать. Кнопка Fn, разумеется, выполняет не ту же самую функцию, что аналогичная в ноутбуке - она отвечает за второй ряд маркировки на функциональных клавишах (запуск офисных приложений и основные их команды). Понравилось, что кнопка Delete, как у моей привычной майкрософтовской клавиатуры, большая и удобно расположенная (мечта редактора). А вот основные кнопки мыши, выполненные из цельного пластика вместе с корпусом, оказались тугими - двойное нажатие у меня поначалу не получалось в принципе. Насчет двух метров расстояния, на котором действует беспроводная связь, - разработчики поскромничали, ибо у мыши вышли все четыре метра, а у клавиатуры - примерно три. Мерить потребляемый от батарей ток я не стал, ибо у годичной давности комплекта той же фирмы он уже был ниже всех разумных пределов, а здесь и подавно. К тому же в очередной раз обнаружил у данной компании грамотное решение - батареи в мышке соединены параллельно, и их количеством (одна или две) можно регулировать вес «грызуна». А вот из новенького - возможность не только закрепить клавиатуру за компьютером, но и шифрование радиоканала, дабы нельзя было перехватить набираемые символы. Процесс привязки требует ввода 16-символьного ключа (при каждой попытке привязки выдается новый) и нажатия специальной кнопки снизу клавиатуры. Процесс отвязки - не слишком тривиален, а именно - нажатие Esc вместо ввода ключа.

Если же вам не нужна функциональность Skype, а понравились клавиатура и мышь, то у производителя есть комплект Cordless Desktop LX710 Laser - похожие устройства, имеющие вместо базы с динамиком и микрофоном обычный USB-брелок.


 

NetFront Browser 4.0: смена приоритетов  Андрей Крупин. Журнал «Компьютерра»


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

В настоящее время новинка представлена в виде прототипа, именуемого NetFront Browser 4.0 Concept Version и предназначенного для инсталляции на портативные устройства с операционной системой Windows Mobile. Изюминкой обозревателя, по словам разработчиков, является переписанный с нуля движок, позволивший добиться двадцатикратного (!) ускорения обработки инструкций JavaScript по сравнению с прежней редакцией браузера. Как заверяют в компании, NetFront Browser 4.0 является на текущий момент одним из самых быстрых мобильных браузеров в мире. При этом создатели продукта подчёркивают, что «четвёрка» использует те же API, что и предыдущая версия приложения, поэтому её обновление не доставит проблем пользователям.

Сродни конкурентам, NetFront Browser 4.0 поддерживает работу с полноформатными веб-страницами, зуммируя просматриваемые пользователем области сайта. Для эффективного интернет-сёрфинга в браузере реализована система вкладок, а также задействована миниатюрная карта, появляющаяся в момент скроллинга страниц и упрощающая навигацию по масштабным ресурсам. Для экономии сетевого трафика в программе предусмотрена управляющая режимом отображения сайтов и блокирующая загрузку изображений опция Text View. Дополнительно имеется модуль Embedded Browser Optimization, якобы ускоряющий копирование данных из Интернета аж в четыре раза. Якобы — потому что убедиться в работоспособности данного компонента мы так и не смогли. Вероятнее всего, в пробной редакции браузера функция оптимизации скачиваемого контента отключена вместе механизмом плагинов.

Как и в NetFront Browser третьего поколения, в «четвёрке» используется тот же скучный интерфейс, все элементы управления которого собраны в одном всплывающем меню. Явно устаревшее и не соответствующее современным веяниям решение. Хочется надеяться, что к моменту финального релиза продукта программисты ACCESS придумают и сварганят что-нибудь инновационное. Пока же о каком-либо прогрессе в интерфейсе говорить рано.

С поддержкой веб-стандартов тоже не всё гладко. Если в тестах Acid3 NetFront 3.5 кое-как набирал одиннадцать баллов из ста возможных, то «четвёрка» мгновенно сходит с дистанции с двумя очками и не может показать полное соответствие стандартам в мобильном секторе. Аналогичный результат, кстати, демонстрирует выходящий в состав Windows Mobile 6.5 браузер Internet Explorer Mobile. Единственным обозревателем, нашедшим общий язык с тестами, оказался Opera Mobile 10 beta. Норвежцы знают толк в сетевых технологиях — не случайно их приложение проходит Acid3 со стопроцентным результатом. Что мешает японцам переплюнуть своих коллег — решительно не понятно.

Из-за переписанного с чистого листа кода, NetFront Browser 4.0 Concept Version отличается крайне нестабильной работой. В нашем случае браузер постоянно сбоил и выдавал сообщение о нехватке памяти. В компании не скрывают того факта, что их обозреватель далёк от совершенства и в настоящее время находится на довольно ранней стадии разработки. Энтузиазма, однако, у представителей ACCESS не занимать — они уверены, что с релизом четвёртой версии программы им удастся установить новые стандарты скорости мобильного веба. Столь громкие заявления можно расценивать как вызов конкурентам. Запасайтесь попкорном и колой, чтобы наблюдать за развитием новой гонки производительности веб-обозревателей. На сей раз — мобильных.


К оглавлению

 

Валентин Викторович Красник - 6.7. Требования при транспортировании и размещении штучных и тарно-...


Вопрос 293. Что представляет собой контейнер?

Ответ. Представляет собой транспортное многократно используемое оборудование для перевозки и временного хранения грузов с внутренним объемом 1 м3 и более, имеющее приспособления, обеспечивающие механизированную установку и снятие его с транспортных средств. По назначению контейнеры подразделяются на универсальные и специализированные (п. 6.7.2).

Вопрос 294. Что представляет собой средство пакетирования?

Ответ. Представляет собой приспособление (поддон, кассета, сетка, обвязка, пленка и т. д.), с помощью которого формируется транспортный пакет (п. 6.7.2).

Вопрос 295. Что представляет собой транспортный пакет?

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

Вопрос 296. Для каких целей предназначены универсальные контейнеры?

Ответ. Предназначены для перевозки широкой номенклатуры штучных грузов в таре, без нее или в облегченной упаковке и подразделяются на межконтинентальные (крупнотоннажные) и внутри-континентальные (среднетоннажные массой брутто 2,5 т). К универсальным также относятся малотоннажные контейнеры массой брутто 0,625 и 1,25 т (п. 6.7.3).

Вопрос 297. С помощью каких приспособлений осуществляются погрузочные операции с пакетированными грузами и грузами в специализированных технологических контейнерах?

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

Вопрос 298. Что представляют собой схемы загрузки?

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

Вопрос 299. Какие действия не допускаются при выполнении погрузочно-разгрузочных работ с контейнерами и пакетированными грузами?

Ответ. Не допускается:

нахождение работников в зоне действия грузоподъемной машины;

загрузка и разгрузка контейнеров и средств пакетирования без снятия их с транспортных средств;

перемещение стропальщика по контейнерам и пакетам (п. 6.7.11).

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

Ответ. Допускается при условии исключения взаимных повреждений (п. 6.7.12).

Вопрос 301. Допускается ли перевозка людей в кузовах автотранспортных средств совместно с контейнерами и пакетированными грузами?

Ответ. Такая совместная перевозка не допускается (п. 6.7.13).

 

Журнал «Компьютерра», А где же ГЛОНАСС? Марина Пелепец


Все слышали о системе спутниковой навигации ГЛОНАСС, но мало кто видел её в действии. Александр Гурко несколько лет занимается навигацией вообще и ГЛОНАСС в частности и готов поделиться своими знаниями с читателями "Компьютерры-Онлайн".

В 2004 году Александр Гурко стал генеральным директором компании "М2М телематика", разрабатывающей навигационно-информационные системы и абонентское оборудование на основе ГЛОНАСС и GPS. Через три года он принял участие в создании Ассоциации разработчиков, производителей и потребителей оборудования и приложений на основе глобальных навигационных спутниковых систем "ГЛОНАСС/ГНСС-Форум". Вместе с "М2М телематикой" Ассоциация выступила с предложением оборудовать каждый автомобиль модулями ГЛОНАСС в рамках программы экстренного реагирования при аварии (Э.Р.А. ГЛОНАСС).

В 2009 году Александр был назначен генеральным директором ОАО "Навигационно-информационные системы", первым федеральным оператором ГЛОНАСС — компания разрабатывает, внедряет и обслуживает решения на основе спутниковых навигационных систем и участвует в обеспечении интеграции ГЛОНАСС с зарубежными системами.

Александр ждёт ваших вопросов до 12 часов 1 февраля в комментариях к этой записи.


К оглавлению

 

H. M. Ручко | Использование объекта атрибутов


Объект атрибутов инкапсулирует атрибуты потока или группы потоков. Он используется для установки атрибутов потоков при их создании. Атрибутный объект потока имеет тип pthread_attr_t. Он представляет собой структуру, позволяющую хранить следующие атрибуты:

• размер стека потока;

• местоположение стека потока;

• стратегия планирования, наследование и параметры;

• тип потока: открепленный или присоединяемый;

• область конкуренции потока.

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

Для инициализации и разрушения атрибутного объекта потока используются функции pthread_attr_init () и pthread_attr_destroy () соответственно.

Синопсис

#include < pthread.h >

int pthread_attr_init(pthread_attr_t *attr);

int pthread_attr_destroy(pthread attr__t *attr) ;

Функция pthread_attr_init () инициализирует атрибутный объект потока с помощью стандартных значений, действующих для всех этих атрибутов. Параметр attr представляет собой указатель на объект типа pthread_attr_t. После инициализации attr-объекта значения его атрибутов можно изменить с помощью функций, перечисленных в табл. 4.3. После соответствующей модификации атрибутов значение attr используется в качестве параметра при вызове функции создания потока pthread_create(). При успешном выполнении эта функция возвращает число 0, в противном случае — код ошибки. Функция pthread_attr_init() завершится неуспешно, если для создания объекта в системе недостаточно памяти.

Функцию pthread_attr_destroy() можно использовать для разрушения объекта типа pthread_attr_t, заданного параметром attr. При обращении к этой функ ц ии будут удалены любые скрытые данные, связанные с этим атрибутным объектом потока. При успешном выполнении эта функция возвращает число 0, в противном случае - код ошибки.

 

Александр Леоненков / 6.2. Состояние


Понятие состояния (state) является фундаментальным не только в метамоде-ли языка UML, но и в прикладном системном анализе. Ранее в главе 1 кратко были рассмотрены особенности представления динамических характеристик сложных систем, традиционно используемых для моделирования поведения. Вся концепция динамической системы основывается на понятии состояния системы. Однако семантика состояния в языке UML имеет целый ряд специфических особенностей.

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

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

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

Рис. 6.2. Графическое изображение состояний на диаграмме состояний

Состояние на диаграмме изображается прямоугольником со скругленными вершинами (рис. 6.2). Этот прямоугольник, в свою очередь, может быть разделен на две секции горизонтальной линией. Если указана лишь одна секция, то в ней записывается только имя состояния (рис. 6.2, а). В противном случае в первой из них записывается имя состояния, а во второй – список некоторых внутренних действий или переходов в данном состоянии (рис. 6.2, б). При этом под действием в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения (например, «истина» или «ложь»).

 

Управление созданием базовых классов с помощью base, А. Г. Сивак


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

static void Main(string[] args) {

 // Предположим, что есть следующий конструктор с параметрами

 // (имя, возраст, ID, плата, SSN, число опционов).

 Manager chucky = new Manager("Chucky", 35, 92, 100000, "333-23-2322", 9000);

}

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

// Если не указано иное, конструктор подкласса автоматически вызывает

// конструктор базового класса, заданный по умолчанию.

public Manager(string fullName, int age, int empID, float currPay, string ssn, ulong numbOfOpts) {

 // Это наш элемент данных.

 numberOfOptions = numbOfOpts;

 // Использование членов, наследуемых от Employee,

 // для установки данных состояния.

 ID = empID;

 Age = age;

 Name = fullName;

 SocialSecurityNumber = ssn;

 Pay = currPay;

}

Строго говоря, это допустимый, но не оптимальный вариант. В C#, если вы не укажете иное, конструктор базового класса, заданный по умолчанию, вызывается автоматически до выполнения логики любого пользовательского конструктора Manager. После этого текущая реализация получает доступ к множеству открытых свойств базового класса Employee, чтобы задать его состояние. Поэтому здесь при создании производного объекта вы на самом деле "убиваете семь зайцев" (пять наследуемых свойств и два вызова конструктора)!

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

// На этот раз используем ключевое слово C# "base" для вызова

// пользовательского конструктора с базовым классом.

public Manager (string fullName, int age, int empID, float currPay, string ssn, ulong numbOfOpts): base(fullName, age, empID, currPay, ssn) {

 numberOfOptions = numbOfOpts;

}

Здесь конструктор был дополнен довольно запутанными элементами синтаксиса. Непосредственно после закрывающей скобки списка аргументов конcтруктора стоит двоеточие, за которым следует ключевое слово C# base. В этой ситуации вы явно вызываете конструктор с пятью аргументами, определенный классом Employees избавляясь от ненужных вызовов в процессе создания дочернего класса.

Конструктор SalesPerson выглядит почти идентично.

// Как правило, каждый подкласс должен явно вызывать

// подходящий конструктор базового класса.

public SalesPerson(string fullName, int age, int empID, float currPay, string ssn, int numbOfSales): base(fullName, age, empID, currPay, ssn) {

 numberOfSales = numbOfSales;

}

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

 

ВВЕДЕНИЕ | Виктор Комаров



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

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

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

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

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

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

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

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

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

Приносят ли исследования в области проблемы внеземных цивилизаций сколько-нибудь ощутимый эффект — научный и практический? И если приносят, то в чем именно он состоит?

Настоящий сборник и ставит своей целью дать ответ на эти вопросы.


 

5.2.3 Ссылки на Себя / Мюррей Хилл


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

class x (* int m; public: int readm() (* return m; *) *);

x aa; x bb;

void f() (* int a = aa.readm(); int b = bb.readm(); // ... *)

В первом вызове члена member() m относится к aa.m, а во втором – к bb.m.

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

x* this;

и инициализирован так, что он указывает на объект, для которого была вызвана функция член. this не может быть описан явно, так как это ключевое слово. Класс x можно эквивалентным образом описать так:

class x (* int m; public: int readm() (* return this-»m; *) *);

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

class dlink (* dlink* pre; // предшествующий dlink* suc; // следующий public: void append(dlink*); // ... *);

void dlink::append(dlink* p) (* p-»suc = suc; // то есть, p-»suc = this-»suc p-»pre = this; // явное использование this suc-»pre = p; // то есть, this-»suc-»pre = p suc = p; // то есть, this-»suc = p *)


dlink* list_head;

void f(dlink*a, dlink *b) (* // ... list_head-»append(a); list_head-»append(b); *)

Цепочки такой общей природы являются основой для списквых классов, которые описываются в Главе 7. Чтобы присоеднить звено к списку необходимо обновить объекты, на которые указывают указатели this, pre и suc (текущий, предыдущий и последующий). Все они типа dlink, поэтому функция член dlink::append() имеет к ним доступ. Единицей защиты в С++ яляется class, а не отдельный объект класса.

 

ПРЕДИСЛОВИЕ | Автор неизвестен - Военное дело


«Бомбардировочная авиация» (перевод с немецкого) является разделом официального Курса тактики ВВС Школы воздушной связи в Галле, изд. 1939 г.

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

Как известно, в германских ВВС бомбардировочной авиации отводится главное место среди других видов авиации. Немцы всегда стремились этот вид авиации иметь в преобладающем количестве. В настоящее время удельный вес их бомбардировочной авиации, несмотря на год войны о Советским Союзом, остается на том же уровне (54—57%), что указывает на известную устойчивость взглядов на роль и место бомбардировочной авиации в современной войне. 

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

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

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

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

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

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

ОТДЕЛ ПО ИЗУЧЕНИЮ ОПЫТА ВОЙНЫ УВВС КРАСНОЙ АРМИИ


 

Усовершенствование корабля Apollo / Иван Иванович Шунейко


После аварии с космическим кораблем Apollo-13 NASA провел усовершенствование служебного отсека, заключавшееся в следующем.

1. Установлен дополнительный кислородный бак в секции № 1 служебного отсека. Это позволит астронавтам в случае аварии, подобной происшедшей с Apollo-13, не пользоваться при возвращении к Земле бортовыми системами лунного корабля. Кроме того установка дополнительного кислородного бака позволяет обойтись без вентиляторов, в цепи которых произошло короткое замыкание, вызвавшее взрыв кислородного бака на Ароllо-13.

2. В секции № 4 установлен дополнительный аварийный серебряно-цинковый аккумулятор емкостью 400 а·ч весом 61,2 кг. В случае выхода из строя топливных элементов емкости аккумулятора должно хватить для питания систем основного блока в течение 3 сут, требуемых для возвращения от Луны к Земле.

3. Установлена дополнительная канистра с питьевой водой емкостью 9 кг.

4. Кроме перечисленных дополнений по рекомендации аварийной комиссии заменена тефлоновая изоляция электропроводки к кислородным бакам, и проводка, находящаяся в контакте с кислородом, помещена в стальной кожух; вместо двух нагревателей по 75 вт установлено 3 по 50 вт питаемых от двух независимых электроцепей; в каждом кислородном баке дополнительно установлен датчик температуры; модифицированы термостаты, которые должны отключать нагреватели при температуре 27°C; измерители уровня из алюминия заменены измерителями из материала, не горящего в атмосфере кислорода; заменены все материалы в кислородных баках, могущие гореть в атмосфере кислорода, установлена бортовая система сигнализаций, предупреждающая экипаж об угрозе аварийной ситуации, подобно происшедшей на Apollo-13.

Установка дополнительного оборудования и изменения, внесенные в конструкцию, увеличили вес корабля Apollo на 227 кг; если на корабль дополнительно устанавливается луноход, весом 182 кг, то общий вес полезной нагрузки становится близким к предельному для энергетических возможностей ракеты-носителя Saturn V.

 

Экран / Алексей Садовский


Практически всю почти 30-летнюю историю в ноутбуках использовались экраны на жидких кристаллах (такие экраны еще называют основанными на TFT-матрицах). Это необходимо для максимального уменьшения размеров компьютера. Однако если раньше главной целью ноутбука было «хотя бы показывать», то теперь он должен показывать как можно лучше. Рассмотрим несколько наиболее важных характеристик экранов.

• Время отклика. Обозначает скорость переключения жидких кристаллов с одного цвета на другой. Чем она выше, тем лучше (то есть время отклика 8 мс лучше, чем 16 мс). Наверное, вы не раз видели тянущийся шлейф за мышью или небольшое размазывание окна при его перетаскивании на жидкокристаллическом мониторе. Это и есть следствие долгого времени отклика. Современные экраны обладают высокой скоростью переключения. Да и при работе время отклика не имеет принципиального значения. Отклик очень важен, когда на экране происходит быстрое движение. А подобное можно наблюдать чаще всего в играх.

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

• Углы обзора. Наверное, многие видели, что, смотря со стороны, на жидкокристаллическом экране ничего не различить. Однако картинка появляется, если стать перпендикулярно монитору. У современных экранов углы обзора в целом весьма неплохие: даже при очень сильном отклонении хоть что-то видно. Но в зависимости от типа матрицы эффект плохих углов обзора может проявляться по-разному.

• Разрешение. Обозначает число точек, умещающихся на экране, и обычно зависит от диагонали. Необходимо выбрать оптимальное разрешение. Если этот параметр будет слишком большим, то вам будет сложно читать текст на экране. Если же разрешение маленькое, то на экране все будет слишком большим. Дам несколько практических советов. Для диагоналей 13 и 14” оптимальным является разрешение 1280 ? 800, для 15” – 1280 ? 800 или 1440 ? 900, а для 17” – 1440 ? 900 или 1680 ? 1050.

Прежде чем перейти к описанию типов жидкокристаллических экранов, остановимся на соотношении сторон. Сегодня большинство ЭЛТ-мониторов к настольным компьютерам выпускаются с соотношением 4:3. Ранее это касалось и ноутбуков. Со временем производители обратили внимание на широкоформатный форм-фактор – соотношение 16:10. В этом случае на экране появляется больше места по ширине. Таким образом, использовать их довольно удобно. Неудивительно, что сегодня ноутбуки выпускаются в основном с таким соотношением сторон.

Всего существует три вида TFT-матриц, которые используются в жидко кристаллических мониторах: TN+Film, MVA и S-IPS. Среди настольных экранов наиболее распространен первый тип, что обусловлено низкой стоимостью по сравнению с остальными видами, а также низким заявленным временем отклика. К основным недостаткам такой матрицы можно отнести следующие: плохую цветопередачу, плохие углы обзора по вертикали и горизонтали, невысокие показатели контрастности. Отличить такой тип матрицы достаточно просто: при взгляде сверху низ экрана выцветает и приобретает бледно-желтый оттенок, тогда как верх становится темнее. То же самое и сбоку: если сильно отклониться в сторону, противоположная сторона приобретет желтый оттенок.

Матрица типа MVA встречается реже. Тем не менее ее применяют в ноутбуках. Обычно экран, построенный на базе этой матрицы, обладает довольно неплохой цветопередачей, а также контрастностью и углами обзора. Из ее недостатков можно назвать довольно большое время отклика. Впрочем, если вы собираетесь работать на ноутбуке в офисных приложениях, где изображение в основном статично (а не играть в игры), MVA станет весьма неплохим выбором.

Примечание

Существует еще один тип матрицы, основанный на технологии MVA. Он носит название PVA. Его разработчиком является компания Samsung, которая оснащает свои ноутбуки этим типом. От оригинальной версии PVA отличается такими возможностями, как более низкий отклик и улучшенные показатели контрастности.

S-IPS, или Super IPS, представляет собой усовершенствованную матрицу на базе IPS. Этот тип создавался с целью устранить такие недостатки TN+Film, как плохие углы обзора и плохая цветопередача. Следует отметить, что разработчикам это удалось. Современные S-IPS с откликом 16 мс признаются чуть ли не самыми быстрыми. Все дело в том, что у них заявленное время отклика мало отличается от реального, чего нельзя сказать об TN и MVA. Неудивительно, что именно этот тип сегодня применяется в профессиональных жидкокристаллических мониторах. Тем не менее ничто не мешает использовать его и в ноутбуках.

Из недостатков S-IPS можно назвать лишь не очень хорошую контрастность, которая обычно сравнима с контрастностью TN+Film. Таким образом, можно утверждать, что это наиболее предпочтительный тип матрицы.

 

А. Г. Сивак | Настройка параметров сериализации с помощью атрибутов


Хотя реализация интерфейса ISerializable в .NET 2.0 все еще допустима, для настройки процесса сериализации теперь более предпочтительным считается определение методов, наделенных одним из целого ряда новых атрибутов, связанных с задачами сериализации (это атрибуты [OnSerializing], [OnSerialized], [OnDeserializing] и [OnDeserialized]). Использование этих атрибутов оказывается менее громоздким, чем реализация ISerializable, поскольку тогда не возникает необходимости вручную взаимодействовать с поступающим параметром SerializationInfo. Вместо этого вы получаете возможность непосредственно изменять данные состояния во время воздействия форматтера на тип.

При использовании этих атрибутов методы должны определяться так, чтобы они получали параметр StreamingContext и не возвращали ничего (в противном случае в среде выполнения генерируется соответствующее исключение). Обратите внимание на то, что не требуется учитывать все указанные атрибуты сериализации – можно учесть только те стадии сериализации, для которых следует выполнить перехват. Для примера рассмотрите новый тип [Serializable] с теми же требованиями, что и у MyStringData, но на этот раз с использованием атрибутов [OnSerializing] и [OnDeserialized].

[Serializable]

class MoreData {

 public string dataItemOne, dataItemTwo;

 [OnSerializing]

 internal void OnSerializing(StreamingContext context) {

  // Выполняется в процессе сериализации.

  dataItemOne = dataItemOne.ToUpper();

  dataItemTwo = dataItemTwo.ToUpper();

 }

 [OnDeserialized]

 internal void OnDeserialized(StreamingContext, context) {

  // Выполняется по завершении реконструкции объекта.

  dataItemOne = dataItemOne.ToLower();

  dataItemTwo = dataItemTwo.ToLower();

 }

}

Если выполнись сериализацию этого нового типа, вы снова обнаружите, что данные сохраняются в верхнем регистре, а воcстанавливаются – в нижнем.

Исходный код. Проект СustomSerialization размещен в подкаталоге, соответствующем главе 17.

 

Татьяна Соколова. Видовые экраны произвольной формы


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

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

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

Для создания видовых экранов предназначены два ключа команды VPORTS – Object и Polygonal.

Ключи команды VPORTS следующие:


Object – позволяет преобразовать в видовой экран объект, построенный в пространстве листа. Вызов команды осуществляется из падающего меню View > Viewports > Object.

Если выбирается полилиния, она должна быть замкнутой и иметь не менее трех вершин. Допускается наличие в ней сегментов любого типа (как линейных, так и дуговых), а также самопересечения. Полилиния связывается с вновь создаваемым видовым экраном; в результате получается видовой экран неправильной формы. Этот процесс происходит так: AutoCAD описывает прямоугольник вокруг выбранного объекта, создает на его основе прямоугольный видовой экран, а затем «подрезает» его этим объектом.


Polygonal – позволяет описать границу видового экрана путем указания точек-вершин. Последовательность запросов аналогична той, которая используется при построении полилиний. Вызов команды при этом осуществляется из падающего меню View > Viewports > Polygonal Viewport.

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

Тренинг-система

Выполните упражнения Vpr1–Vpr3 и тест 9 из раздела 5.




 

Этсетера - Н.3.3 Состав (содержание) и организация указателя


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

Примечания

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

2 Для представления одинакового понятия должен использоваться один и тот же термин.

3 В указателе могут быть использованы подзаголовки, описывающие некоторые аспекты основного заголовка.

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

5 Термины, состоящие из нескольких слов, следует применять как заголовки без разбивки их на подзаголовки.

6 Следует избегать использования предлогов, если их отсутствие не приводит к неоднозначному пониманию термина.

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

8 Сокращения и обозначения должны быть расположены а алфавитном порядке (например, обозначение «BASIC» для «Beginner's All-purpose Symbolic Instruction Code» между «Base» и «Battery»).

9 Заголовки указателя должны располагаться в алфавитном порядке, пробел должен трактоваться как символ, предшествующий последующему (например, термин «Alt key» размещается перед «Alternative»).

1 |2 |3