вторник, 7 декабря 2010 г.

10.1.2.2 Closе - A. В. Крюков

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


алгоритм close /* для устройств */

входная информация: дескриптор файла

выходная информация: отсутствует

{

 выполнить алгоритм стандартного закрытия (глава 5ххх);

 if (значение счетчика ссылок в таблице файлов не 0) goto finish;

 if (существует еще один открытый файл, старший и младший номера которого совпадают с номерами закрываемого устройства)

  goto finish; /* не последнее закрытие */

 if (устройство символьного типа) {

  использовать старший номер в качестве указателя в таблице ключей устройства посимвольного ввода-вывода;

  вызвать процедуру закрытия, определяемую типом драйвера и передать ей в качестве параметра младший номер устройства;

 }

 if (устройство блочного типа) {

  if (устройство монтировано) goto finish;

  переписать блоки устройства из буферного кеша на устройство;

  использовать старший номер в качестве указателя в таблице ключей устройства ввода-вывода блоками;

  вызвать процедуру закрытия, определяемую типом драйвера и передать ей в качестве параметра младший номер устройства;

  сделать недействительными блоки устройства, оставшиеся в буферном кеше;

 }

finish:

 освободить индекс;

}

Рисунок 10.4. Алгоритм закрытия устройства

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

1. Просматривается таблица файлов для того, чтобы убедиться в том, что ни одному из процессов не требуется, чтобы устройство было открыто. Чтобы установить, что вызов функции close для устройства является последним, недостаточно положиться на значение счетчика ссылок в таблице файлов, поскольку несколько процессов могут обращаться к одному и тому же устройству, используя различные точки входа в таблице файлов. Так же недос таточно положиться на значение счетчика в таблице индексов, поскольку одному и тому же устройству могут соответствовать несколько файлов устройства. Например, команда ls -l покажет, что одному и тому же устройству символьного типа ("c" в начале строки) соответствуют два файла устройства, старший и младший номера у которых (9 и 1) совпадают. Значение счетчика связей для каждого файла, равное 1, говорит о том, что имеется два индекса.

crw-w-w- 1 root vis 9, 1 Aug 6 1984 /dev/tty01

crw-w-w- 1 root unix 9, 1 May 3 15:02 /dev/tty01

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

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

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


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

Настройка WinRAR - В. В. Мельниченко

Как и любая программа, разработанная под Windows, WinRAR может предложить вам настройки, установленные по умолчанию. Но для улучшения работы некоторые из них желательно изменить. Если вы — пользователь ленивый, то можете сразу приступать к работе (см. параграф "Основные функции WinRAR" далее). Вам же будет хуже! (Это не угроза, а напутствие на дорожку.)

Если же вы дотошный и трудолюбивый пользователь, то вы не поленитесь произвести некоторые настройки, и сразу же заметите, что программа начала работать немного лучше. Итак, настроим-понастроим…

Тщательно прицелившись мышью, попадите на пункт меню Параметры и выберите Установки.… Будьте бдительны: ломать — не строить.

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

На вкладке Общие (рис. 18.3) вы можете настроить WinRAR на работу в системе. Выберите Низкий приоритет, если компьютер слегка слабоват для обработки больших задач. ("Windows — система многозадачная: «глючит» и работает одновременно." — Народная мудрость)

Рис. 18.3. Настройка общих параметров работы WinRAR в системе

Если когда-либо вам понадобится история функций, выполненных программой, отметьте опцию Вести историю архивов. При желании можно просматривать Историю в полях ввода.

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

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

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

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

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

На вкладке Пути настройки лучше не изменять. Ведь именно их программа определила автоматически. Функцию Использовать при работе со сменными дисками постарайтесь "руками не трогать".

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

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

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

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

В WinRar можно Экспортировать настройки в файл, сохранить этот файл на диске, а после переустановки программы Импортировать параметры из файла в установленную программу (вместо того, чтобы повторно настраивать ее).


Жизнь «сегодняшним днем» и запас прочности. Елена Горелкина

Миф о сверхоборотах ресторанного бизнеса, о его высокой эффективности с момента открытия повлиял на отношение к нему предпринимателей. Открыть, снять сливки, продать, двигаться дальше – вот схема работы, которую выбирают многие начинающие рестораторы. Это сказывается и на подходе к оснащению точки: никто не рассчитывает, что она проработает всю жизнь, вполне достаточно 1–5 лет работы без проблем. Преодолеть эту тенденцию в В2В до сих пор было достаточно трудно, поскольку жизненный цикл предприятия питания действительно небольшой: заведений, продержавшихся в одном формате и при одном и том же собственнике больше семи – десяти лет, не так уж много. (Другая история – с отелями, но их и значительно меньше.) С одной стороны, этот подход к бизнесу как явлению временному помогал продажам недорогого ассортимента оборудования, с другой – мешал внедрению высоконадежных и элитных моделей техники, которые работают в странах Европы более чем по десять лет.

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

«До сих пор рестораны могли оснащаться системами, которые главным образом автоматизируют товародвижение. Мы же начинаем позиционировать наш программный комплекс “Домино” как ERP-систему для ресторана: появились руководители, которых интересует аналитика, бюджетирование, качественный прогноз на будущее», – говорит Роман Нетяга, директор компании «Бизнес-класс».

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


Панель инструментов изображений - Александр Климов

Отключение Панели инструментов изображений

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



Эта панель позволяет быстро осуществить разные операции: сохранить, печатать, послать по почте, открыть папку Мои рисунки

Для отключения данной панели инструментов изображений создайте ключ типа DWORD ·MyPics_Hoverbar· в разделе

HKCU\Software\Policies\Microsoft\Internet Explorer\PhotoSupport

со значением 1

Существует еще альтернативный вариант. Создайте строковый параметр ·Enable_MyPics_Hoverbar· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему значение yes (включить) или no (выключить)


Размер картинки

Панель инструментов изображений появляется не для всех рисунков. Для использования панели инструментов размер рисунка должен быть не менее 130 x 130 пикселей. Если вы хотите изменить данное значение, то создайте параметр DWORD ·Image_Filter· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему нужное значение


Смещение Панели относительно изображения

По умолчанию Панель инструментов изображений появляется смещенной на 10 пикселей от верхнего и левого сторон изображения. Для изменения этой настройки создайте параметр DWORD ·Offset· в разделе

HKCU\Software\Microsoft\Internet Explorer\main

и присвойте ему нужное значение


четверг, 25 ноября 2010 г.

Удаление сообщений | Виталий Петрович Леонтьев

Любой почтовый ящик – что реальный, что виртуальный, – имеет обыкновение постепенно превращаться в обыкновенную свалку, наполняясь устаревшими и ненужными вам письмами.

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

Удалить письмо просто – достаточно установить курсор на его заголовок и нажать кнопку Del.

Правда, в этом случае письмо все-таки не удаляется до конца – оно просто перемещается в специальную папку Удаленные, аналог Корзины Windows. И правильно – а вдруг вы удалили письмо по ошибке и рано или поздно захотите его вернуть? Тогда вам будет достаточно просто перетащить письмо мышкой из папки Удаленные в папку Входящие или другую созданную вами тематическую папку. А можно сделать иначе – щелчком правой кнопки мышки вызвать Контекстное меню удаленного вами сообщения и выбрать пункт Переместить в папку. Хотя, на мой взгляд, мышкой все же удобнее...

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

Ну, а как же перемещать письма из одной папки в другую? Ответ на этот вопрос вы, я думаю, уже знаете – перетягивая их мышкой из одной папки в другую.

И последнее. Как и Корзину Windows или ваше домашнее мусорное ведро, папку Удаленные необходимо все-таки время от времени очищать. Ведь хранить мусор годами в надежде, что вы ненароком удалили что-нибудь полезное, лишено всякого смысла – база писем Outlook Express разбухает, программа работает медленнее...

Выполнить процедуру очистки, как и в случае с Корзиной, можно, вызвав щелчком правой клавиши мышки Контекстное меню папки Удаленные и выбрав пункт Очистить папку «Удаленные».

Если же вы хотите, чтобы ваша Корзина... т. е. папка Удаленные... очищалась автоматически в момент выхода из Outlook Express, вы можете зайти в меню Сервис Параметры Обслуживание и установить галочку напротив пункта Очищать папку «Удаленные» перед выходом.


Создание ярлыков, В. В. Мельниченко

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

Рис. 5.60. Рабочий стол с большим количеством различных Ярлыков и папок

Создать ярлык можно и по-другому. Опция Создать>Ярлык доступна как в контекстном меню объектов, так и в меню Файл любой папки (если искомый объект выделен в данной папке).

Чтобы создать ярлык, выполните правый щелчок на объекте (файле, папке и т. п.) и выберите Создать>Ярлык. Ярлык появится в той же папке, в которой находится сам объект. Перетащите созданный ярлык на рабочий стол или в папку, в которой вы хотите его использовать. Изменяя имя ярлыка, не нужно беспокоиться, что переименование отразится на оригинальном файле. Напротив, переименование — удобное средство, которое позволяет избежать путаницы, особенно при удалении.

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

Если предложение верное, щелкните на кнопке Да. Если система «ошиблась», загляните в свойства ярлыка и в поле Объект укажите правильный путь.


среда, 17 ноября 2010 г.

Как посылать письма в Интернет | Nick Filimonov | Релком и обратно.

Во-первых, Вам необходимо узнать адрес близлежащего к Вам гейта в интернет. Для Москвы это 2:50/128. Для большинства городов этот адрес будет тот же, с учетом того, что адрес этот обычно фиктивный. Далее Вы посылаете письмо с таким заголовком :

From : <Ваше имя> at <Ваш адрес>

To : <интернетовский адрес> at <адрес гейта>

или, если в поле To: интернетовский адрес не влезает, написать там слово UUCP, а сам адрес перенести в самую первую строку письма (еще до обычного приветствия).

В общем случае, если Ваш адрес X:YYYY/ZZZ.NNN то со стороны интернета он будет виден как :

your_name@pNNN.fZZZ.nYYYY.zX.fidonet.org

или, если вы действительно пользуетесь гейтом 2:50/128 в Москве :

your_name@pNNN.fZZZ.nYYYY.zX.gate.phantom.ru

Пример : (для 2:5020/54.46)

nick_filimonov@p46.f54.n5020.z2.fidonet.org или

nick_filimonov@p46.f54.n5020.z2.gate.phantom.ru

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

Если Вы пользуетесь гейтом в интернет, расположенным в другом городе (не в Москве), вам необходимо узнать, каков будет Ваш адрес со стороны интернета (т.е. что будет написано вместо gate.phantom.ru). Если Вы пишете письмо за рубеж, это может оказаться для Вас весьма важным. Если Ваш иностранный корреспондент при ответе воспользуется доменом fidonet.org, то письмо будет гейтоваться ближайшим к нему гейтом в FIDO. FIDO-адрес такового может оказаться даже в другой зоне, что сильно понизит вероятность успешного получения (к сожалению, некоторые узлы зоны 1 даже не располагают полным мировым нодлистом).



ГЛАВА 7. ЕЩЕ НЕСКОЛЬКО ПРИМЕРОВ ПРОГРАММ / У. Клоксин

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

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


Денис Колисниченко / Совет № 15 При переключении передачи «вниз» обороты двигателя повышаются. Поэтому при переключении «вниз» нужно сначала сбавить скорость (путем торможения), а затем уж переключаться, чтобы не превысить допустимые обороты

Предположим, что вы едите на четвертой передаче, скорость около 160 км/ч, обороты двигателя приближаются к максимальным – пусть это 6500 тысяч. Вы хотите включить пятую передачу, но нечаянно включили третью. В результате обороты двигателя превысят максимально допустимые и вы попадете на капремонт двигателя. Теперь вы понимаете, почему АКПП считают более безопасной? АКПП не позволит переключиться в неправильном режиме. Даже если вы будете использовать ручной режим и принудительно перейдете на пониженную передачу, обороты двигателя все равно не превысят максимальные.

Вы можете возразить, мол, я с такой скоростью не езжу. А тут много и не нужно. Предположим, что вы едите со скоростью 70 км/ч на второй передаче. Если вы сейчас переключитесь на первую, эффект будет таким же, как описан выше.

Вот поэтому перед переключением на пониженную передачу нужно снизить скорость до допустимой для той передачи, на которую вы хотите переключиться. Как узнать, какая скорость допустима для той или иной передачи? Если у вас нет руководства по автомобилю, тогда допустимую скорость можно определить экспериментальным путем. Включите первую передачу, троньтесь с места, раскрутите двигатель до максимальных оборотов, посмотрите на спидометр. Предположим, что на первой передаче вы разогнали автомобиль до 55 км/ч. Переключитесь на вторую, опять раскрутите двигатель до максимальных оборотов, пусть скорость при этом будем 90 км/ч. Аналогично поступите с третьей передачей – больше не нужно. Итак, если вы едите на скорости 120 км/ч и включена третья передача, то вам нужно снизить скорость до 90 км/ч (а еще лучше – до 70–80, потому что при 90 км/ч обороты станут максимальными, что не желательно), а только потом переключиться на пониженную передачу. Аналогично, как только скорость станет меньше 55 км/ч, можно переключиться на первую передачу.

Итак, алгоритм переключения вниз выглядит так:

• снижаем скорость до допустимой для той передачи, на которую будем переключаться;

• переключаем передачу;

• на педаль газа нажимать не нужно – ведь мы же хотим замедлиться.

Иногда переключение вниз нужно для более резвого обгона. Например, вы вышли на обгон на пятой передаче (пусть 120 км/ч и 3000 оборотов), но уже видите, что не успеваете его завершить – не хватает скорости, тогда можно переключиться на третью передачу и резко нажать педаль газа – автомобиль быстрее станет набирать скорость. Следите за оборотами – как только они приблизятся к максимальным, переключайтесь на четвертую.


суббота, 6 ноября 2010 г.

1.9. Заслонения / Марвин Минский

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



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

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

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

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

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

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


H. M. Ручко | Создание потоков

Библиотека Pthreads используется для создания, поддержки и управления потоками многопоточных программ и приложений. При создании многопоточной программы потоки могут создаваться на любом этапе выполнения процесса, поскольку это — динамические образования. Функция pthread_create() создает новый поток в адресном пространстве процесса. Параметр thread указывает на дескриптор, или идентификатор (id), создаваемого потока. Новый поток будет иметь атрибуты, заданные объектом attr. Созданный поток немедленно приступит к выполнению инструкций, заданных параметром start_routine с использованием аргументов, заданных параметром arg. При успешном создании потока функция возвращает его идентификатор (id), значение которого сохраняется в параметре thread.

Синопсис

#include <pthread.h>

int pthread_create(pthread_t *restrict thread,

const pthread_attr_t *restrict attr,

void *(*start_routine)(void*),

void *restrict arg) ;

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

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

Приведем примеры создания двух потоков с заданными по умолчанию атрибутами:

pthread_create(&threadA,NULL, taskl,NULL) ;

pthread_create(&threadB,NULL, task2, NULL) ;

Это — два вызова функции pthread_create () из листинга 4 .1. Оба потока создаются с атрибутами, действующими по умолчанию.

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

// Программа 4.1

#include <iostream>

#include <pthread.h>

#include <stdlib.h>

int main(int argc, char *argv[]) {

pthread_t ThreadA,ThreadB;

int N;

if(argc != 2) {

cout << «error» << endl;

exit (1);

}

N = atoi(argv[l]);

pthread_create(&ThreadA,NULL, taskl,&N);

pthread_create(&ThreadB,NULL, task2, &N);

cout « «Ожидание присоединения потоков.» « endl;

pthread_join(ThreadA,NULL) ;

pthread_join(ThreadB,NULL);

return (0) ;

};

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

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

// Программа 4.2

void *task1(void *X)

{

int *Temp;

Temp = static_cast<int *>(X);


for(int Count = 1;Count < *Temp;Count++){

cout << «work from thread A: " << Count << " * 2 = "

<< Count * 2 << endl;

}

cout << «Thread A complete» << endl;

}


void *task2(void *X)

{

int *Temp;

Temp = static_cast<int *>(X);


for(int Count = 1;Count < *Temp;Count++){

cout << «work from thread B: " << Count << " + 2 = "

<< Count + 2 << endl;

}

cout << «Thread B complete» << endl;


}

В программе 4.2 функции taskl и task2 выполняют цикл, количество итераций которого равно числу, переданному каждой функции в качестве параметра. Одна функция увеличивает переменную цикла на два, вторая — умножает ее на два, а затем каждая из них отправляет результат в стандартный поток вывода данных. По выходу из цикла каждая функция выводит сообщение о завершении выполнения потока. Инструкции по компиляции и выполнению программ 4.1 и 4.2 содержатся в профиле программы 4.1.

[ Профиль программы 4.1

Имя программы •program4-12.cc

* Описание Принимает целочисленное значение из командной строки и передает функциям: потоков. Каждая функция выполняет цикл, в котором переменная цикла увеличивается (в одной функции на два, а в другой в два раза), а затем результат отсылается в стандартный поток вывода данных. Код основного потока выполнения приведен в программе 4.1, а код функций — в программе 4.2.

Требуемая библиотека libpthread

Требуемые заголовки <pthread.h> <iostream> <stdlib.h>

Инструкции по компиляции и компоновке программ

с++ -о program4-12 program4-12.cc -lpthread

Среда для тестирования SuSE Linux 7.1, gcc 2.95.2,

Инструкции по выполнению ./program4-12 34

Примечания Эта программа требует задания аргумента командной строки.

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


46. Реклама и жизненный цикл товара | Елена Юрьевна Логинова

Жизненный цикл товара – это период времени обращения товара на рынке от замысла продукта до снятия его с производства и выведения из продажи.

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

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

Первым этапом жизненного цикла является внедрение.

Ко второму этапу относится рост. Третья стадия – зрелость.

Четвертый этап жизненного цикла – насыщение.

На пятом этапе происходит спад.

На этапе выхода товара на рынок нужно учитывать полную неосведомленность покупателей о новинке, при этом основные цели рекламы:

1) формирование интереса к существованию товара и марки;

2) информирование рынка о преимуществах нового товара;

3) побуждение потребителя к приобретению нового товара;

4) побуждение закупщиков к обороту товару. Таким образом, происходит первичное знакомство

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

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

1) созданию сильного, конкурентоспособного образа марки товара;

2) формированию предпочтения к марке;

3) стимулированию покупки товара.

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

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

Основным видом рекламы остается агитирующая реклама.

На этапе спада продажи стремительно падают и реклама нецелесообразна. Товар уходит с рынка. Однако если на складах сохранились большие партии товаров, то предприниматели продолжают рекламировать свою продукцию до полной ее ликвидации.


вторник, 2 ноября 2010 г.

Александр Леоненков / Пакет Механизмы расширения

Пакет Механизмы расширения также является подпакетом пакета Основные элементы и специфицирует порядок включения в модель элементов с уточненной семантикой, а также модификацию отдельных компонентов языка UML для более точного отражения специфики моделируемых систем. Механизм расширения определяет семантику для стереотипов, ограничений и помеченных значений. Хотя язык UML обладает богатым множеством понятий и нотаций для моделирования типичных программных систем, реально разработчик может столкнуться с необходимостью включить в модель дополнительные свойства или нотации, которые не определены явно в языке U ML. При этом разработчики часто сталкиваются с необходимостью включения в модель графической информации, такой, например, как дополнительные значки и украшения.

Для этой цели в языке UML предусмотрены три механизма расширения, которые могут использоваться совместно или раздельно для определения новых элементов модели с отличающимися семантикой, нотацией и свойствами от специфицированных в метамодели языка UML элементов. Такими механизмами являются: ограничение (Constraint), стереотип (Stereotype) и помеченное значение (TaggedValue).

Таким образом, механизмы расширения языка UML предназначены для выполнения следующих задач:

• Уточнения существующих модельных элементов при разработке моделей на языке UML.

• В спецификации самого языка UML для определения стандартных компонентов, которые либо не являются достаточно интересными, либо сложны для непосредственного определения в качестве элементов мета-модели UML.

• Определения таких расширений языка UML, которые зависят от специфики моделируемого процесса или от языка реализации программного кода.

• Присоединения произвольной семантической или несемантической информации к элементам модели.

Хотя вопросы расширения метамодели UML выходят за пределы настоящей книги, следует знать о потенциальной возможности явного добавления в язык UML новых метаклассов и других метаконструкций. При этом, однако, необходимо соблюдать правило порождения новых метаклассов от уже имеющихся в языке UML. Эта возможность единственно зависит от свойств отдельных инструментальных средств, поддерживающих язык UML, или от особенностей мета-метамодельного представления самого процесса ООАП.

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


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

Виктор Алексеевич Костромин - 15.1. Основы работы с KDE

KDE - это интегрированная графическая оболочка для Linux (и других версий UNIX), которая в настоящее время включает в себя более 100 графических приложений и поддерживает более 40 различных языков. Она разрабатывается в рамках движения Open Source, т. е. распространяется с открытыми исходными кодами. KDE позволяет совместить современную функциональность, удобство использования и отличный дизайн с технологическими преимуществами операционной системы класса UNIX. На момент написания этого текста разработчики выпустили версию 2.2.2 этой оболочки. Но приводимое ниже описание и все рисунки соответствуют версии 2.1.2, устанавливаемой из дистрибутива Red Hat Linux 7.1 Cyrillic Edition. Конечно, более поздние версии претерпевают некоторые изменения в сторону улучшения, но принципы построения интегрированной среды сохраняются, так что вы вполне можете использовать данный текст для первоначального знакомства с этой оболочкой. Необходимо, кроме того, отметить, что даже если версия самого KDE у вас будет та же самая, возможны некоторые отличия внешнего вида этой оболочки по сравнению с приводимыми ниже рисунками. Дело в том, что в KDE, как и вообще в Linux, все поддается настройке. И каждый производитель дистрибутива делает настройки по-своему. Имейте это в виду и не пугайтесь. Через некоторое время вы и сами сможете полностью изменить вид экрана после запуска KDE.


Журнал «Компьютерра» - РЫНКИ: Пиратству — бой! Производители ПО начали бороться с пиратами физически

Автор: Константин Курбатов

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

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

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

В конце марта, через месяц после упомянутой стычки, участники «острой дискуссии» встретились на ринге в присутствии журналистов, чтобы в честном поединке выяснить, кто все-таки сильнее ратует за свое дело. Представитель компании, уже не молодой человек (по некоторым сведениям, ему более сорока), был определен в красный угол и выступал в красных трусах. Пират, как представитель «темного бизнеса», выступал в темно-синих трусах (на вид весьма молодой). По словам ведущего, весовая категория противников практически совпадала: 78 против 75 кг соответственно.

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

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

После перерыва ситуация явно стала склоняться в сторону более великовозрастного, но более опытного представителя российской компании. Каждый обмен ударами приносил очки «легальному ПО». В конце концов спортсмен в синих трусах провел запрещенный прием — удар по затылку (случайно или намеренно, сказать трудно). После положенной по правилам паузы боксерский поединок чуть было не перешел в борцовский: пострадавший красивым приемом повалил обидчика на ринг, и только успевшие подскочить тренеры помогли вернуть бой в нормальное русло.

Заключительный раунд прошел уже при явном преимуществе «легального бизнеса»: сумевший сохранить силы представитель Cognitive был точнее и активнее соперника, а под занавес ему удалось провести удачный удар по корпусу, на что рефери даже был вынужден начать отсчет[На самом деле рефери уже несколько раз останавливал бой. Но на мой взгляд — больше из предосторожности, нежели по необходимости]. Однако соперник оправился, и бой продолжился, но результат поединка уже был предрешен; молодой участник явно не был готов ответить достойно на атаку и ушел в глухую защиту.

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

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

Тем не менее мы поздравляем Cognitive Tech-nologies с этой маленькой победой.


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

2000 / Александр Леоненков / 12.1. Общая характеристика CASE-средства Rational Rose 98

CASE-средство Rational Rose со времени своего появления претерпело серьезную эволюцию и превратилось в современное и мощное средство анализа, моделирования и разработки программных систем. Именно в Rational Rose 98/2000 язык UML стал базовой технологией визуализации и разработки программ, что определило популярность и стратегическую перспективность этого инструментария.

В рамках Rational Rose существуют различные программные инструментарии, отличающиеся между собой диапазоном реализованных возможностей. Базовым средством в настоящее время остается Rational Rose 98, которое существует в четырех основных модификациях:

• Rational Rose 98 Enterprise Edition 

• Rational Rose 98 Professional Edition 

• Rational Rose 98 Modeler Edition 

• Rational Rose 98 для UNIX

Наиболее полными возможностями обладает первая из указанных модификаций этого средства. Из этих возможностей можно отметить: реализацию UML версии 1.0, генерацию кодов на различных языках программирования (Java, C++, VisualBasic, PowerBuilder), обратную генерацию диаграмм (реинжиниринга) на основе программного кода и выпуск проектной документации.

Следующей версией стало средство Rational Rose 98i, которое также выпускается в этих же четырех модификациях. Эта версия дополнительно позволяет генерировать программный код стандарта MS Visual C++, обеспечивает документирование проекта в формате HTML для Web-публикации и поддерживает интеграцию с другими инструментариями объектно-ориентированной разработки программ, базами данных и с компонентами MS Office 2000.

Последней из версий на момент написания книги является Rational Rose 2000, возможности которой аккумулируют практически все современные достижения в области информационных технологий:

• Интеграция с MS Visual Studio 6, что включает в себя поддержку на уровне прямой и обратной генерации кодов и диаграмм VB 6, Visual C++ 6, Visual J++ 6 (ATL-Microsoft Active Template Library, Web-Classes, DHTML, Data Connections).

• Непосредственная работа (инжиниринг и реинжиниринг) с исполняемыми модулями и библиотеками форматов EXE, DLL, TLB, OCX.

• Поддержка технологий MTS (Microsoft Transaction Server) и ADO (ActiveX Data Objects) на уровне шаблонов и исходного кода, а также элементов стратегической технологии Microsoft – СОМ+ (DCOM).

• Полная поддержка CORBA 2.2, включая реализацию технологии компонентной разработки приложений CBD (Component-Based Development), языка определения интерфейса IDL (Interface Definition Language) и языка определения данных DDL (Data Definition Language).

• Полная поддержка среды разработки Java-приложений JDK 1.2, включая прямую и обратную генерацию классов Java формата JAR, а также работу с файлами форматов CAB и ZIP.

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

Примечание 79


Развитие идеи, Валентин Перция

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

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

«Использование» объяснит, как именно и для чего потребитель может эксплуатировать новинку. «Преимущества» изложат основания для предпочтения потребителями именно нашей новинки.

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

Результат этапа: полное описание идей со всех сторон. Необходимо для точного определения, что именно стоит за каждой идеей.


Надежда Баловсяк. «Питайтесь правильно»

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

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

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

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

Рис. 5.2. Программа «Питайтесь правильно» позволит выбрать оптимальный рацион

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

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

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


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

Джесс Либерти / Резюме

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

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

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

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


Виталий Петрович Леонтьев / «ГРАБИМ» АУДИОДИСК

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

Программ для копирования звуковых дорожек компакт диска в файл существует великое множество. В редакторе Adobe Audition эта возможность встроенная. Вызывается командой меню ФайлИзвлечь аудио с CD (File – Extract audio from CD). Окно диалога, который появляется после вызова этой команды представлено на рисунке.

Окно диалога извлечения аудиоданных с компакт-диска

Рассмотрим назначение элементов управления этого окна.

Раскрывающийся список под наименованием Устр-во (Device) служит для выбора привода компакт дисков, в котором находится аудиодиск.

В группе Опции интерфейса (Interface options) выбирается интерфейс, с которым будет работать CDROM. Под опцией Generic Win32 подразумевается программно управляемый обмен данными, его следует выбирать только если привод не захотел корректно работать по интерфейсу ASPI/SPTI. При выборе интерфейса ASPI/SPTI становятся доступными дополнительные опции: Метод чтения (Read method), CD Скорость (CD speed) для выбора скорости чтения диска, Размер буфера (Buffer size) определяет размер дополнительного программного буфера при чтении диска, Поменять порядок байтов (Swap byte order) для чтения дисков на компьютерах Macintosh, Поменять каналы (Swap channels) левый, правый местами, Ускорить перед извлеч. (Spin up before extraction) раскручивает диск до начала извлечения данных.

В группе Выбор источника (Source selections) выбираем откуда будем извлекать данные. При выборе Трек (Track) и ниже необходимой звуковой дорожки (или дорожек) будет извлечен полностью аудиотрек (аудиотреки). При выборе Время (Time) аудиоданные будут извлекаться по заданным в полях Начало (Start) и Длина (Length) параметрам. Формат задания данных – часы: минуты: кадры, для аудиодиска один кадр равняется 75 секундам. Для наглядности при выборе как аудиодорожек, так и временного интервала показывается относительное положение извлекаемого фрагмента на всем диске.

Выбор опции Извлечь в одну волну (Extract to single waveform) позволяет поместить все считанные данные последовательно в одну звуковую дорожку друг за другом.

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

Все не очень древние приводы компакт дисков обладают встроенной системой коррекции ошибок, которая и будет выбрана, CDDA точная (CDDA Accurate) в группе Коррекция ошибок (Error correction). В случае если программа не увидит у привода возможности коррекции ошибок, будут доступны опции Без коррекции (No correction) и Коррекция джиттера (Jitter correction), программная коррекция по изменению фазового сдвига.

Не все устройства чтения компакт дисков одинаково хорошо справляются с коррекцией ошибок. Причем отлично работающая коррекция Data CD может неуверенно работать с аудио CD и наоборот. Для определения качества извлечения данных с компактдиска существуют специальные тестовые программы, такие как Nero CD Speed. Также в Интернете можно найти сравнительные тесты разных приводов.

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

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


суббота, 23 октября 2010 г.

А. Г. Гузикевич | Исполнительный механизм

Исполнительный механизм NET Compact Framework представляет собой низкоуровневый код, отвечающий за загрузку, JIT-компиляцию и выполнение управляемого кода, а также управление памятью. Ему приходится брать на себя всю черновую работу, обеспечивающую выполнение управляемого кода.

Исполнительный механизм написан на языках C/C++ и компилируется в собственные команды процессора. На этот механизм дополнительно возлагается задача трансляции .NET Compact Framework и приложений конечного пользователя в исполняемый формат во время выполнения. Этот процесс известен под названием JIT- компиляции (just-in-time — оперативная). С помощью этого же механизма обрабатываются любые переходы из управляемого кода в собственный код, например, вызовы функций основанного на собственном коде API-интерфейсов базовой операционной системы; этот процесс называется переключением (thunking).

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


Меню File (Файл) | Владимир Верстак

Меню File (Файл) содержит команды для работы с файлами программы 3ds Max (рис. 1.2).


Рис. 1.2. Меню File (Файл)


Команды этого меню позволяют делать следующее: New (Создать), Open (Открыть), Save (Сохранить) – создавать новые, открывать и сохранять существующие сцены и объекты; Open Recent (Открыть недавно использованные) – открывать ранее сохраненные сцены; Reset (Сбросить) – перезапустить сцену; XRef Objects (Объекты XRef) и XRef Scene (Сцена XRef) – работать со ссылками на внешние объекты и сцены; Merge (Объединить) – присоединить к текущей сцене объекты из внешних файлов.

Меню File (Файл) также содержит команды Import (Импортировать) и Export (Экспортировать) для импорта и экспорта объектов.

Команды Set Project Folder (Установить папку проекта) и Publish To DWF (Опубликовать в формате DWF), которые появились в 3ds Max 2008, позволяют указать папку для организации проектов, создаваемых в 3ds Max, и опубликовать модели для их просмотра при помощи программы Autodesk DWF Viewer.

Команды загрузки анимации Load Animation (Загрузить анимацию) и ее сохранения Save Animation (Сохранить анимацию) используют формат XAF, позволяющий выборочно сохранять и загружать анимацию любого количества объектов сцены. Команда Asset Tracking (Средство слежения за процессами) вызывает окно диалога. В нем можно получить доступ к файлам сцены и растровым изображениям, используемым в редакторе материалов, их свойствам и многому другому.

Команда Archive (Архивировать) позволяет сохранить все используемые в сцене файлы в сжатом виде, например для переноса их на другой компьютер. Для просмотра статистики сцены служит команда Summary Info (Сведения), а для ввода свойств файла – команда File Properties (Свойства файла). Обе эти команды вызывают окна, содержащие соответствующие сведения. Команда View Image File (Просмотр файла изображения) открывает окно просмотра, в котором вы можете увидеть растровое изображение перед загрузкой файла в качестве текстурной карты редактора материалов. Команда выхода из программы Exit (Выход) завершает список меню File (Файл).


среда, 13 октября 2010 г.

А. Г. Гузикевич, Благодарности 

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

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

¦ Сотрудники издательств Addison-Wesley и Pearson, которые вдохновляли меня и поддерживали мои намерения. Особую благодарность хочу выразить Карен Гетман (Karen Gettman), с которой я обсуждал первоначальное предложение о написании "технической книги, не похожей на все остальные", Элизабет Здунич (Elizabeth Zdunich), терпеливо работавшей со мной на протяжении всего процесса написания книги, а также Лори Лайенс (Lori Lyons) и Кейт Клайн (Keith Cline) за их титанический труд по редактированию книги.

¦ Замечательные люди, которые просмотрели первоначальный черновой вариант книги. Если задача рецензента состоит в том, чтобы избавить будущего читателя книги от любых ошибок, неточностей и некорректности в авторских суждениях, то эти люди великолепно справились со своей работой. Мне очень повезло с получением от этих замечательных людей как вдохновляющих, так и "любовно укоризненных" отзывов. Если наши усилия увенчались успехом, то значительная доля возможных похвал по праву должна принадлежать рецензентам. В частности, хочу поблагодарить Крэйга Нибла (Craig Neable), Билла Дрэйпера (Bill Draiper), Джона Скита (Jon Skeet), Майкла Мэйтланда (Michael Maitland), Дуга Холланда (Doug Holland) и Алекса Фейнмана (Alex Feinman) за предоставление подробных отзывов на рукопись, сопровождаемых несметным количеством полезных советов и исправлений.

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


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

6.5.3 Клавиатурные команды управления панелями. Виктор Алексеевич Костромин

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

• ‹Tab› или ‹Ctrl›+‹i›. Сменить текущую (активную) панель. Подсветка перемещается с панели, которая была активной ранее, в другую панель, которая становится активной.

• ‹Alt›+‹G› / ‹Alt›+‹R› / ‹Alt›+‹J›. Используются для перемещения подсветки, соответственно, на самый верхний, средний или нижний файл из числа отображаемых в данный момент на панели.

• ‹Alt›+‹T›. Циклически переключает режимы отображения списка файлов текущей директории. С помощью этой комбинации клавиш можно быстро переключаться из режима стандартного вывода (long listing) к сокращенному или к режиму, определяемому пользователем.

• ‹Ctrl›+‹\›. Показать справочник каталогов и перейти к выбранному каталогу.

• ‹Home› или ‹Alt›+‹’‹’›. Перемещает подсветку на первую позицию списка файлов (здесь я вынужден отойти от соглашения об обозначении клавиш).

• ‹End›, ‹Alt›+‹‘›'›. Перемещает подсветку на последнюю позицию списка файлов.

• ‹Alt›+‹O›. Если в активной панели подсвечено имя каталога, а на второй панели отображается список файлов, то вторая панель переходит в режим отображения файлов подсвеченного каталога. Если в активной панели подсветка указывает на файл, то во второй панели отображается содержимое каталога, родительского по отношению к текущему.

• ‹Ctrl›+‹PageUp›, ‹Ctrl›+‹PageDown›. Только если mc запущен с консоли Linux: выполняется, соответственно, переход (chdir) к родительскому каталогу ("..") или к выделенному подсветкой каталогу.

• ‹Alt›+‹Y›. Перемещение к предыдущему каталогу из истории перемещения по каталогам; эквивалентно нажатию мышкой на символ '‹' в верхнем углу панели.

• ‹Alt›+‹U›. Перемещение к следующему каталогу из истории перемещения по каталогам; эквивалентно нажатию мышкой на символ '›'.


Автор неизвестен - 5.2. Трубопроводы и арматура

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

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

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

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

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

исправность неподвижных и подвижных опор и пружинных креплений;

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

состояние дренажей и воздушников, предохранительных устройств;

легкость хода подвижных частей арматуры;

соответствие сигнализации крайних положений запорной арматуры («Открыто» – «Закрыто») на щитах управления ее фактическому положению;

исправность тепловой изоляции.

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

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

Минимальная величина пробного давления при гидравлическом испытании должна составлять 1,25 рабочего давления, но не менее

0,2 МПа (2 кгс/см2).

Максимальная величина пробного давления устанавливается с расчетом на прочность по нормативно-технической документации, согласованной с Госгортехнадзором России.

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

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

5.2.7. При прокладке дренажных линий должно быть учтено направление тепловых перемещений во избежание защемления трубопроводов.

5.2.8. При объединении дренажных линий нескольких трубопроводов на каждом из них устанавливается запорная арматура.

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

5.2.10. Регулирующие клапаны оборудуются указателями степени открытия регулирующего органа, а запорная арматура – указателями «Открыто» и «Закрыто». Арматура должна быть доступна для обслуживания.

5.2.11. В местах установки арматуры и индикаторов тепловых перемещений паропроводов устанавливаются площадки обслуживания.

5.2.12. Ремонт трубопроводов и арматуры выполняется одновременно с ремонтом соответствующей тепловой энергоустановки.

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

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

5.2.15. Для тепловой изоляции применяются материалы, не вызывающие коррозии металла трубопроводов.


вторник, 5 октября 2010 г.

Производительность и уровни абстракции API-интерфейсов - А. Г. Гузикевич

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

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

Идеальнее всего, если разработчику для загрузки и сохранения своих данных в виде XML-дерева удается использовать объектную модель документов (Document Object Model — DOM). Эта модель прекрасно подходит для работы с XML-данными среднего объема. Однако разработчики не должны забывать о том, что XML DOM в значительной мере основана на использовании состояний; при загрузке XML-данных в память они в действительности сохраняются в памяти в виде дерева объектов, представляющих XML-документ. В случае крупных документов создание такого дерева может приводить к дефициту памяти. В противоположность этому сама модель XML DOM строится поверх классов XMLReader и XMLWriter, которые не имеют состояния и осуществляют лишь однонаправленный доступ к данным; эти классы осуществляют синтаксический анализ или генерируют XML-данные, основываясь на состоянии лишь в самой минимальной степени. Эти классы удерживают в памяти ровно столько информации, сколько необходимо для того, чтобы иметь возможность осуществлять разбор XML-данных или записывать их в поток; они и не генерируют, и не используют хранящиеся в памяти деревья данных.

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


А. Г. Сивак, Инкапсуляция на основе свойств класса

В отличие от традиционных методов чтения и модификации, языки .NET тяготеют к реализации принципа инкапсуляции на основе использования свойств, которые представляют доступные для внешнего пользователя элементы данных. Вместо того, чтобы вызывать два разных метода (get и set) для чтения и установки данных состояния объекта, пользователь получает возможность вызвать нечто, похожее на общедоступное поле. Предположим, что мы имеем свойство с именем ID (код), представляющее внутренний член-переменную empID типа Employee. Синтаксис вызова в данном случае должен выглядеть примерно так.

// Синтаксис установки/чтения значения ID работника.

static void Main(string[] args) {

 Employee p = new Employee();

 // Установка значения.

 p.ID = 81;

 // Чтение значения.

 Console.WriteLine ("ID работника: {0} ", p.ID); Console.ReadLine();

}

Свойства типа "за кадром" всегда отображаются в "настоящие" методы чтения и модификации. Поэтому, как разработчик класса, вы имеете возможность реализовать любую внутреннюю логику, выполняемую перед присваиванием соответствующего значения (например, перевод символов в верхний регистр, очистку значения от недопустимых символов, проверку принадлежности числового значения диапазону допустимости и т.д.). Ниже демонстрируется синтаксис C#. использующий, кроме свойства ID, свойство Pay (оплата), которое инкапсулирует поле currPay, a также свойство Name (имя), которое инкапсулирует данные fullName.

// Инкапсуляция с помощью свойств.

public class Employee {

 ...

 private int empID;

 private float currPay;

 private string fullName;

 // Свойство для empID.

 public int ID {

  get {return empID;}

  set {

   // Вы можете проверить и, если требуется, модифицировать

   // поступившее значение перед присваиванием.

   empID = value;

  }

 }

 // Свойство для fullName.

 public string Name {

  get { return fullName; }

  set { fullName = value; }

 }

 // Свойство для currPay.

 public float Pay {

  get { return currPay; }

  set { currPay = value; }

 }

}

Свойство в C# компонуется из блока чтения и блока модификации (установки) значении. Ярлык value в C# представляет правую сторону оператора присваивания. Соответствующий ярлыку value тип данных зависит от того, какого сорта данные этот ярлык представляет. В данном примере свойство ID оперирует с типом данных int, который, как вы знаете, отображается в System.Int32.

// 81 принадлежит System.Int32,

// поэтому "значением" является System.Int32.

Employee e = new Employee();

e.ID = 81;

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

// Свойство для empID.

public int ID {

 get {return empID;}

 set {

  Console.WriteLine("value является экземпляром {0} ", value.GetType());

  Console.WriteLine("Значение value: {0} ", value); empID = value;

 }

}

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

Рис. 4.5. Значение value после установки для ID значения 81

Замечание. Строго говоря, ярлык value в C# является не ключевым оловом, а, скорее, контекстным ключевым словом, представляющим неявный параметр, который используется в операторе присваивания в контексте метода, используемого для установки значения свойства. Поэтому вполне допустимо иметь члены-переменные и локальные элементы данных с именем value.

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

public class Employee {

 …

 // Текущий возраст работника.

 private int empAge;

 public Employee(string fullName, int age, int empID, float currPay) {

  …

  this.empAge = age;

 }

 public int Age {

  get { return empAge; }

  set { empAge = value; }

 }

 public void DisplayStats() {

  …

  Console.WriteLine("Возраст: {0} ", empAge);

 }

}

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

Employee joe = new Employee();

joe.SetAge(joe.GetAge() + 1);

Но если инкапсулировать empAge, используя "правильный" синтаксис, вы сможете просто написать:

Employee joe = new Employee();

joe.Age++;


суббота, 2 октября 2010 г.

Оставьте свой след / Н. А. Ливинская

Одна из главных задач режиссера – сделать концептуальный материал драмы [= стратегии] реальностью, с которой можно работать.[177] Представителям этой профессии приходится сложнее других – они в прямом смысле отвечают за все, что происходит на театральной сцене в бизнесе. Режиссеру нужно согласовать действия всех участников представления – актеров, драматургов, сценаристов, технических специалистов и мастеров сцены, чтобы получить разрешение продюсера на постановку.

Роль режиссера требует организационных навыков. Это проведение прослушиваний (с помощью директора по кастингу), контроль за своевременной установкой декораций, выбор нужных костюмов и реквизита и многое другое. Режиссер назначает репетиции, а также приглашает тренеров по актерскому мастерству, чтобы помочь актерам в работе над ролью. Он проводит много времени со сценарием [= процессами] и вырабатывает свою точку зрения на то, как лучше всего организовать постановку. Ему нужно постоянно отчитываться перед продюсерами об успехах в реализации драмы [= стратегии]. Именно в обязанности режиссера входит создание единого и гармоничного целого.

Режиссура – это слияние сотрудничества и управления

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

Режиссер должен также обладать определенными интерпретационными навыками.[178] Как должна быть подготовлена сцена? Какие актеры должны играть те или иные роли? Чтобы ответить на оба вопроса, нужно интерпретировать стратегию в подходящий набор действий. Когда экономическое предложение развивается от идеи к осуществлению, эта интерпретация проявляется в постоянном потоке решений, принятых во время подготовительного этапа и репетиций: что убрать, а что оставить; какая работа должна быть выполнена на сцене, а какая – за кулисами. Чтобы сделать свой выбор, нужно определить, какие действия лучше всего соответствуют стратегии. Эта проблема помещает режиссера в мир концепций и принципов, т. е. в мир интерпретации. Чтобы оставить свой след, режиссер должен научиться летать на высоте 30 тысяч футов и давать указания по мельчайшим подробностям спектакля, который разворачивается на земле.

Наконец, режиссура требует навыков рассказчика. Каждый режиссер в конечном счете хочет поставить представление, которое полностью увлечет зрителей. Питер Ортон, сценарист компании IBM, который раньше работал в Голливуде, тренирует режиссеров в IBM и говорит им: «Сюжет обостряет внимание, создает ожидание и способствует запоминанию. Он выполняет функцию своего рода „крючка“, на который мы нанизываем информацию, чтобы впоследствии ее обработать».[179] Название статьи, опубликованной в Fast Company и цитирующей Ортона, говорит само за себя: Every Leader Tells a Story («Каждый руководитель рассказывает историю»).


7. Контроль коэффициента расхода воздуха / Наталья Бурханова

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

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

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

Контроль aосуществляют двумя методами. По одному из них измеряют расходы топлива и воздуха и с помощью заранее вычисленных таблиц определяют а.Од-нако этот метод не позволяет учесть воздух, попадающий в печь через рабочие окна и неплотности в кладке печей. Поэтому периодически коэффициент расхода воздуха проверяют по составу продуктов сгорания при помощи газоанализаторов. Химическим анализом определяют содержание в продуктах сгорания RO2, CO, Н2, СН4 и О2, а затем с помощью формулы С. Г. Тройба определяют a:

? = 1+ UO2изб/ ?RO2.

Здесь O2изб = О2 – 0,5СО – 0,5Н2– 2СН4– содержание избыточного кислорода.

?RO2 = RO2+ CO + СН4+…,%;

U– коэффициент, зависящий от вида топлива.

Для мазута U=0,74, для природного газа – 0,5.

Рассмотрим примеры.

Задача.

Определить a,если RO2 14%, СО 4%, СН40,5%; Н2 1%, О2 2%.

O2изб = 2 – 0,5(4 + 1) – 2 О 0,5 = -1,5%;

?RO2 = 14 + 4 + 0,5 = 18,5%;

a= 1 – 0,5 О 1,5 / 18,5 = 0,96.


четверг, 30 сентября 2010 г.

Оперативная память / Виктор Гольцман

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

Объем оперативной памяти, необходимой для эффективной работы на любом компьютере – и настольном, и мобильном, – должен составлять не менее 512 Мбайт (впрочем, это еще зависит и от операционной системы, которую вы хотите использовать). Еще недавно казалось, что такие объемы оперативной памяти неактуальны даже для настольных систем, но, поверьте, в ноутбуках они не будут лишними. Все больше пользователей стали чаще докупать дополнительные модули, расширяющие объем памяти компьютера до 1 Гбайт и более. Более того, некоторые производители ноутбуков стали включать в стандартную поставку несколько моделей, содержащих 1 Гбайт памяти.

Внимание!

Достаточным объемом памяти для работы в операционной системе Windows XP будет 512 Мбайт. Если же вы планируете использовать в качестве операционной системы Windows Vista, да еще хотите радоваться ее трехмерному полупрозрачному интерфейсу Aero, то вам понадобится не менее 1 Гбайт ОЗУ. Не забывайте, что модели с интегрированной в чипсет видеокартой «откусят» от ОЗУ 64–256 Мбайт.


вторник, 21 сентября 2010 г.

Windows XP / В. В. Мельниченко

Что такое XP? Microsoft трактует это, как eXPerience — операционная система, предназначенная для опытных (перевод с английского слова experience) пользователей. Скорее всего, в создании этой операционной системы проявилось стремление Microsoft перевести всех на одну общую систему. Чем не светлое будущее? Пользователи планеты, поголовно использующие одну операционную систему, устойчивую и стабильную, дружелюбную к играм и Интернет, злобную к врагам, позарившимся на ваши секреты.

Установка Windows XP очень похожа на такую же процедуру Windows 2000, но лишь на начальном этапе. Процедура установки принципиально не отличается от предыдущих, но в некоторых случаях придется подумать немного больше, чем при установке других ОС. Зато при установке драйверов проблем почти не возникает: система упакована таким комплектом драйверов, что 99,9 % устройств установятся с первого раза — правильно и разумно. Встроенные драйверы для CD-RW безукоризненны. После их установки вы сможете использовать компакт-диск почти так же, как и жесткий.

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

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

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

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

Как бы ни была совершенна Windows XP, и у нее есть некоторые мелкие недоработки. Хотя большинство таких недоработок исправлены и собраны в сервисный пакет № 1. Если вас не пугают новшества системы, устанавливайте ее на свой компьютер и наслаждайтесь.


Роботы – объекты повышенной опасности / Вадим Викторович Мацкевич

Робот – помощник человека, но слепо доверяться ему нельзя (рис. 8). Те промышленные роботы, которые сейчас трудятся на заводах и фабриках, пока ещё недостаточно сообразительны. Представим, что на линии сборки автомобилей случается какой – нибудь «перекос». Автоматы этой ошибки не замечают. Их настроили на то, чтобы сверлить отверстия в дверце, а они сверлят теперь в баке для горючего. Неправильная установка изделия их не волнует. Кроме того, иногда в их электронном блоке происходит какой – нибудь сбой, и тогда автомат в «слепой ярости» начинает колотить своей мощной стальной лапой по чему попало (так случилось недавно в Японии, когда роботом был убит рабочий).

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

Говоря о взаимодействии человека и робота, уместно вспомнить о трёх законах системы «человек – робот», сформулированных американским писателем – фантастом и учёным А. Азимовым:

1. Робот не должен своим действием или бездействием причинять вред человеку.

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

3. Робот должен заботиться о своей безопасности, поскольку это не противоречит первому и второму законам.



Рис. 8 Робот объект повышенной опасности

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


Mozilla Thunderbird / Сергей Акимович Яремчук

Кроссплатформенный почтовый клиент и приложение для работы с группами новостей – Mozilla Thunderbird (http://www.mozilla-europe.org/ru/products/thunderbird/) является составной частью проекта Mozilla. Поддерживает все необходимые протоколы – SMTP, POP3, IMAP, NNTP и RSS. Доступны версии для Linux, Microsoft Windows и Mac OS X, причем набор возможностей на всех платформах одинаков. Интерфейс Thunderbird, как и веб-браузера Mozilla Firefox, основан на технологии XUL, разработанной в Mozilla Foundation. В результате пользовательский интерфейс не отличается от других приложений, разработанных для конкретной платформы, структура меню и настроек во многом повторяет веб-браузер (рис. 4.6).

Рис. 4.6. Внешний вид Mozilla Thunderbird


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

По умолчанию Mozilla Thunderbird напоминает интерфейс почтового клиента Outlook Express. При желании его внешний вид можно изменить при помощи тем, большое количество которых доступно по адресу https://addons.mozilla.org/thunderbird/themes/. На этом же сайте можно найти различные расширения, увеличивающие функциональность почтового клиента. Некоторые из расширений имеются в репозитарии в виде пакетов. Например, чтобы иметь возможность шифровать сообщения, необходимо установить enigmail, в Ubuntu это пакет mozilla-thunderbird-enigmail. Темы и расширения можно также установить и обновить прямо из окна Thunderbird – достаточно выбрать в меню Инструменты нужный пункт.

Примечание

Для локализации интерфейса Mozilla Thunderbird в Kubuntu установите пакет mozilla-thunderbird-locale-ru.

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


Вместо заключения: каков топ, таков и маркетинговый приход / Игорь Борисович Манн

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

Сэмюэл Голдвин

Уважаемый Руководитель!

Эффективность маркетинга в любой компании напрямую зависит от высшего руководства. А эффективность работы менеджера по маркетингу – от непосредственного руководителя.

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

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

Для того чтобы получить от маркетинга максимальную отдачу, вы можете учесть следующие рекомендации:

– определитесь, что значит маркетинг для вас и для чего он нужен вашей компании;

– сформулируйте, для чего вы нанимаете менеджера по маркетингу;

– наймите опытного менеджера по маркетингу;

– правильно постройте отношения и работу с менеджером по маркетингу.

Теперь поподробнее об этих рекомендациях.