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

Виктор Гольцман / Программы сторонних разработчиков

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

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

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

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

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

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

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

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


Многопрофильные команды | М. Зислис

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

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

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


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

ПЛАРБ типа L'Inflexible* | Ю. И. Александров


* Сведения в таблице и основные ТТХ приведены по данным "Jane's Fighting Ships 1999-2000".

Основные ТТХ

Водоизмещение, т:

- надводное…8080

- подводное…8920

Длина наибольшая, м…128,7

Ширина корпуса наибольшая, м…10,6

Осадка средняя, м…10,0

Архитектурно-конструктивный тип…смешанный

(одно-двухкорпусный)

Глубина погружения, м…250

Экипаж, чел…130

Энергетическая установка:

- тип…турбоэлектрическая АЭУ

- число и тип ЯР…1 ВВР (PWR)

- число АТГ…2

- число х мощность ГЭД, л.с…1 x 16000 (ф.

"Jeumont Schneider")

- число гребных валов…1

- тип движителя…ГВ

- мощность (тип) ДГ, кВт…1500 ("Semt-Pielstick/

Jeumont Schneider" 8PA4V185 SM)

- число и тип РСД…1 ГЭД

Скорость полного хода, уз:

- надводная…20

- подводная…25

Вооружение

Ракетное:

- тип БР…М4/TN 70 или TN71

- боекомплект БР…16

- вид старта…подводный, из РШ в ПК

Торпедно-ракетное:

- число х калибр ТА, мм…4x533

- боезапас торпед и КР…18

- тип КР…ПКР SM 39"Ехосеt"

- тип торпед…ECAN F17 Mod 2

ECAN L5 Mod 3

Радиоэлектронное: -тип системы управления

и контроля оружия…SAD и SAT (БР),

DLA 4А (КР и торпеды)

- тип ГАК…ф. "Thomson Sintra" DSUX21, DUUX5, DSUV61

- тип РЛС…"Thomson-CSF DRUA 33"

- тип системы РЭП…"Thomson-CSF"

ARUR U 13/DR 3000U"


В период 1973-1985 гг. в состав французского флота вошли пять ПЛАРБ II поколения: Le Foudroyant, Le Terrible, L' Indomptable, Le Tonnant и L'Inflexible. Ракетоносцы строились с БР типа М-2, но в ходе эксплуатации первые четыре из них были модернизированы. При этом на ПЛАРБ было установлено новое ракетное вооружение с БР типа М-4 с РГЧ, увеличен срок службы ППУ за счет установки новой активной зоны ЯР, уменьшена шумность, улучшен ГАК и др. Последний корабль в серии ПЛАРБ сразу строился с новыми БР и с улучшениями, предусмотренными в ходе модернизации ПЛ более ранней постройки.

В настоящее время в строю находятся два из пяти ракетоносцев: ПЛАРБ Le Tonnant, прошедшая модернизацию в 1987 г. (будет выведена из боевого состава флота в 2000 г) и ПЛАРБ L'Inflexible (введена в строй в 1985 г., останется в составе флота до 2006 г.)

ПЛАРБ типа L'Inflexible



В. В. Мельниченко / Siemens Data Suite

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

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

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

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

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

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

Рис. 13.2. Siemens Data Suite для редактирования адресной книги телефона и компьютера

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


Обход чертежа. Татьяна Соколова

Команда 3DWALK интерактивно меняет вид трехмерного чертежа, при этом кажется, что наблюдатель обходит модель. Команда вызывается из падающего меню View > Walk and Fly > Walk или щелчком на пиктограмме Walk на плавающей панели инструментов Walk and Fly или 3D Navigation.

Обход всей модели выполняется в текущем видовом экране перемещением в плоскости XY с помощью клавиатуры, круговой осмотр и поворот – с помощью мыши. При этом доступны следующие соответствия:

• Tab – показать тему;

• Up arrow / W key – стрелка вверх или клавиша W перемещает камеру вперед, при этом кажется, что пользователь проходит или пролетает вперед;

• Down arrow / S key – стрелка вниз или клавиша S перемещает камеру назад;

• Left arrow / A key – стрелка влево или клавиша A перемещает камеру влево, при этом кажется, что пользователь перемещается влево;

• Right arrow / D key – стрелка вправо или клавиша D перемещает камеру вправо;

• Drag mouse – перетаскивание с помощью мыши задает цель для просмотра или поворота взгляда пользователя;

• F key – клавиша F переключает режим облета на режим обхода и наоборот;

• Don't show me this again – больше не выводить это окно.

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

Рис. 20.4. Палитра локатора положения


• Zoom In – увеличение изображения на палитре локатора положения.

• Zoom Out – уменьшение изображения на палитре локатора положения.

• Zoom Extents – зумирование изображения в границах палитры локатора положения.

• На образце отображается текущее положение пользователя в модели. Здесь можно перетащить указатель положения, чтобы изменить свое местоположение. Также можно перетащить указатель цели, чтобы изменить направление вида.

• Position indicator color – определение цвета указателя текущего положения пользователя.

• Position indicator size – определение размера указателя текущего положения пользователя.

• Position indicator blink – включение и отключение эффекта мерцания указателя положения.

• Target indicator – вывод на экран указателя, который показывает цель вида.

• Target indicator color – определение цвета указателя цели.

• Preview transparency – определение прозрачности в окне просмотра. Принимает значения от 0 до 95.

• Preview visual style – определение визуального стиля образца для просмотра.


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

Программа «Истребитель спутников» | Антон Иванович Первушин

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

Суть проекта создания «Истребителя спутников» заключалось в следующем: с помощью мощной ракеты-носителя на орбиту вокруг Земли выводился спутник-перехватчик.

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

Спутник представлял собой относительно простой космический аппарат с близкой к сфере формой и массой порядка 1400 килограммов. Он состоял из двух функциональных отсеков: основной отсек, оснащенный системой управления и наведения на цель, несущий порядка 300 килограммов взрывчатки, и двигательный отсек. Обшивка аппарата была изготовлена таким образом, что после взрыва он распадался на большое количество фрагментов, разлетающихся с большой скоростью. Радиус гарантированного поражения оценивался в один километр. Причем по ходу движения спутника поражалась цель на расстоянии до двух километров, а в противоположном направлении — не более 400 метров. Так как разлет фрагментов носил непредсказуемый характер, то пораженной могла оказаться и цель, находящаяся на гораздо большем расстоянии.

Двигательный отсек представлял собой орбитальный двигатель многократного включения. Суммарное время работы двигателя составляло приблизительно 300 секунд.

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

Работы по созданию «Истребителя спутников» начались в 1961 году в ОКБ-52 Владимира Челомея. В качестве ракетыносителя для «Истребителя спутников» Челомей выбрал ракету «УР-200». Работы по созданию ракеты продвигались гораздо медленее, чем по спутнику, и поэтому, когда спутник был уже создан, руководство отраслью приняло решение для испытательных полетов использовать слегка модифицированную ракету-носитель «Р-7» Сергея Королева.


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

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

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

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

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

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


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


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


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


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


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

Журнал «Компьютерра» | ОПЫТЫ: Весь 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-брелок.



КНИГИ: Хайтек для жирных котов. Что творится в головах у маркетологов всего мира?. Журнал «Компьютерра»

Автор: Сергей Вильянов

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

Так вот ловушка, по мнению Джеффри Мура, поджидает IT-компанию между вторым и третьим этапами. Первый проходится на раз, благо среди компьютерщиков доктор Браун — едва ли не самый распространенный типаж. Второй этап начинается прежде, чем закончится первый, и особенно легко это происходило в конце девяностых, когда на рынке гуляли шальные денежки инвесторов. Стартапы фактически выступали покупателями друг для друга, что создавало ложное впечатление успешности продуктов, а пресса, среди сотрудников которой «ранние последователи» встречаются сплошь и рядом, усиливала ощущение праздника публикацией благожелательных обзоров. Но вот пора бы наступить этапу третьему, где правят бал крупные корпорации, а он все не наступает и не наступает. Просто дяди в больших кабинетах не готовы вложить в решение деньги, доверившись восторгу журналистов и примерам внедрения в каких-то там стартапах. «Вот внедрит вас кто-нибудь из наших — тогда и приходите со своими контрактами, — говорят они недоумевающим. — А пока спасибо за презентацию и будьте здоровы». И действительно, пока коллега по бизнесу на своей шкуре не испробует новинку, другой даже не подумает за нее заплатить. Работа же с серьезными корпорациями требует многолетних и дорогостоящих усилий, на которые у стартапа нет ни времени, ни финансов. Соответственно план продаж рушится, инвесторы негодуют, сотрудники теряют веру в собственные силы, а когда накапливается некоторая критическая масса… Ну вы помните, что случилось в 2001-м.

Вот как раз преодолению этой и многих других трудностей и посвящена книга г-на Мура. Не могу сказать, что она читается так же легко, как классический труд «Основы маркетинга» Филиппа Котлера, но, думаю, ознакомиться с ней будет интересно не только маркетологу IT-компании, но и нам, «ранним последователям». Узнаете много нового и заодно поймете логику развития современного IT-рынка: лично у меня сложилось впечатление, что после кризиса айтишники всего мира нашли книгу Мура, заучили ее наизусть и теперь сверяют с «Преодолением пропасти» каждый свой шаг.

Добавлю, что к качеству перевода у меня претензий нет, а редакторам и вовсе стоит поставить твердую пятерку. Чего стоит хотя бы ядовитая сноска на 129-й странице, где автор книги сравнивает преодоление пропасти между вторым и третьим этапом с высадкой союзников в Нормандии: «Чтобы данная аналогия была точной, желательно также иметь крупного союзника, который оттянет на себя три четверти дивизий [противника. — С.В.], обеспечит внезапное наступление в Польше, чтобы спасти в Арденнах и т. д.». История, психология и экономика в одном флаконе — чем не пример эффективного маркетинга…


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

Вик С. Штаркман / 3.4 Переключатель switch

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

switch (выражение) {

case конст-выр: инструкции

case конст-выр: инструкции

default: инструкции

}

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

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

#include ‹stdio.h›

main() /* подсчет цифр, символов-разделителей и прочих символов */

{

 int c, i, nwhite, nother, ndigit[10];

 nwhite = nother = 0;

 for (i = 0; i ‹ 10; i++)

  ndigit[i] = 0;

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

  switch (c) {

  case '0': case '1': case '2': case '3': case '4':

  case '5': case '6': case '7': case '8': case '9':

   ndigit[c - '0']++;

   break;

  case ' ':

  case '\n':

  case '\t':

   nwhite++;

   break;

  default:

   nother++;

   break;

  }

 }

 printf("цифр =");

 for(i = 0; i ‹ 10; i++)

  printf (" %d", ndigit[i]);

 printf(", символов-разделителей = %d, прочих = %d\n",

  nwhite, nother);

 return 0;

}

Инструкция break вызывает немедленный выход из переключателя switch. Поскольку выбор ветви case реализуется как переход на метку, то после выполнения одной ветви case, если ничего не предпринять, программа провалится вниз на следующую ветвь. Инструкции break и return - наиболее распространенные средства выхода из переключателя. Инструкция break используется также для принудительного выхода из циклов while, for и do-while (мы еще поговорим об этом чуть позже).

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

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

Упражнение 3.2. Напишите функцию escape (s,t), которая при копировании текста из t в s преобразует такие символы, как новая строка и табуляция в "видимые последовательности символов" (вроде \n и \t). Используйте инструкцию switch. Напишите функцию, выполняющую обратное преобразование эскейп- последовательностей в настоящие символы.


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

Виктор Гольцман - Battery miser

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

После установки Battery Miser помещается в список автоматически загружаемых при старте операционной системы программ. Значок программы располагается в области уведомлений. Чтобы запустить настройку программы, следует дважды щелкнуть кнопкой мыши на этом значке. Откроется окно Battery miser (рис. 12.15).

Рис. 12.15. Окно программы Battery miser


В левом списке окна Battery miser выбирается категория настройки. Категория Power Scheme (Схема питания) содержит вложенные подкатегории. Об этом говорит значок «плюс», расположенный слева от названия категории. Вы можете выбрать режим работы дисплея, жестких дисков, процессора, звуковой системы и т. д. Содержимое правой части окна Battery miser меняется в зависимости от выбранной категории.

Например, при выборе категории Power scheme (Схема питания) в правой части окна программы открываются две шкалы. Верхняя шкала определяет режимы работы различных устройств при питании ноутбука от сети, а нижняя – при питании от батареи. На шкале (на которой нанесены метки, означающие часы и минуты) расположены значки дисплея, жесткого диска, ждущего режима и гибернации. Значки расположены как раз под определенным значением времени на шкале. Так, например, если значок с изображением монитора расположен под отметкой 20, это означает, что через 20 минут (при отсутствии активности пользователя) отключится дисплей. Если под меткой 3 расположен значок гибернации (дисплей с символом Z), это означает, что через три часа бездействия будет активизирован режим гибернации (содержимое оперативной памяти запишется на жесткий диск, и ноутбук будет выключен).

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

Если вы изменили схему питания, то ее можно сохранить. Для этого надо нажать кнопку Save As (Сохранить как) и в появившемся окне указать имя схемы питания (можно также указать и описание этой схемы). Вы можете создать несколько схем питания для разных режимов использования компьютера: для работы с офисными приложениями, для игр, для просмотра видеофильмов и т. д. Любой созданный вами профиль можно активизировать, выбирая нужную схему в раскрывающемся списке Power scheme (Схема питания) и нажимая кнопку Apply (Применить).

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

В подкатегории CPU выбирается режим работы центрального процессора в зависимости от режима работы ноутбука. Например, в условиях работы от сети можно выбрать режим Max Performance (Максимальное быстродействие), а в условиях работы от батареи – Max Battery (Максимальное сбережение батареи). При установке второго варианта быстродействие процессора снижается, что позволяет продлить время автономной работы.

По остальным подкатегориям категории Power Scheme (Схема питания) можете пробежаться сами – там все понятно.

Категория Battery alarm (Сигнал батареи) (рис. 12.16) содержит две вложенные подкатегории: Low alarm (Сигнал о низком заряде батареи) и Critical alarm (Сигнал о критическом заряде батареи). В каждой их этих подкатегорий можно задать действия, которые программа Battery miser выполнит при низком или критически низком заряде батареи. Программа может вывести на экран ноутбука текстовое и (или) звуковое сообщение, переведет компьютер в спящий режим или режим гибернации либо запустит выбранную вами программу.

Рис. 12.16. Подкатегория Low alarm (Сигнал о низком заряде батареи)


В категории Advanced settings (Дополнительные установки) вы можете выбрать реакцию ноутбука на закрытие крышки, нажатие кнопки Power (Сеть) или Standby (Ждущий режим).

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

В категории Options (Свойства) настраиваются некоторые общие параметры программы.

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


Павел Миронов - Правило № 7 Не надо любить работать с потенциальными покупателями – надо это делать

Доводилось ли вам откладывать работу с потенциальными покупателями, а потом сталкиваться с кризисом прибыльности компании?


• Сконцентрируйтесь на конечном результате.

• Работа с потенциальными покупателями заключается в селекции.

• Забрасывайте сети.


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

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


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

Дополнение 2. «Ещё мы делаем ракеты…» | Александр Левитас

Если фирма продаёт много разнотипных товаров или услуг, нередко складывается ситуация, когда клиент покупает один товар у этой фирмы, а другой товар, тоже входящий в ассортимент фирмы, у конкурента. И не потому, что у конкурента ниже цена или выше качество, а потому лишь, что покупатель плохо знаком с ассортиментом своего поставщика. И когда его спрашивают: «А почему Вы не покупаете этот товар у нас?» — искренне удивляется: «А разве Вы это продаёте?!»

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

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


Александр Ватаманюк. FM-тюнер . TV

TV-тюнер – это устройство (рис. 2.43), которое служит для приема телевизионных передач. К нему можно подключать видеомагнитофоны, видеокамеры, цифровые фотоаппараты и т. д. и производить захват видео и звука (причем высокого разрешения благодаря использованию аппаратной поддержки кодирования/декодирования MPEG-2).

Рис. 2.43. Внешний вид TV/FM-тюнера


В состав современных TV-тюнеров часто входит FM-тюнер, который используется для приема программ радиовещания.

TV/FM-тюнеры бывают внутреннего и внешнего исполнения. Все они комплектуются пультами дистанционного управления. Модели второго типа более практичны и удобны в использовании, поскольку на их корпусах присутствуют необходимые кнопки управления и разъемы. Внутренние TV/FM-тюнеры не уступают по функциональности внешним, но требуют наличия свободного PCI-слота и потребляют мощность блока питания, а передаваемое ими изображение может быть более низкого качества, что объясняется сильным влиянием электромагнитного поля внутри корпуса.

Приобретая TV/FM-тюнер, выбирайте выполненный на основе последних моделей популярных чипов. Это гарантирует высокую чувствительность тюнера и отличное качество изображения, а также позволяет использовать прогрессивные аппаратные методы захвата и сжатия видео.


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

ГЛАВА 11 Взаимодействие между процессами / А. Г. Гузикевич

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

Ниже вы ознакомитесь с последовательным межпроцессным взаимодействием (Interprocess Communication, IPC)[30], в котором используются объекты, подобные файлам. Двумя основными механизмами Windows, реализующими IPC, являются анонимные и именованные каналы, доступ к которым осуществляется с помощью уже известных вам функций ReadFile и WriteFile. Простые анонимные каналы являются символьными и работают в полудуплексном режиме. Эти свойства делают их удобными для перенаправления выходных данных одной программы на вход другой, как это обычно делается в UNIX. В первом примере демонстрируется, как реализовать эту возможность.

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

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


Глава 3 / Д. Солнышков

1. Текст пpoгрaммы приведен в листинге Г.1.[1]

Листинг Г.1. Вывод идентификатора и порядкового номера слота

//svmsg/slotseq.c

1  #include "unpipc.h"


2  int

3  main(int argc, char **argv)

4  {

5   int i, msqid;

6   struct msqid_ds info;

7   for (i = 0; i < 10; i++) {

8    msqid = Msgget(IPC_PRIVATE, SVMSG_MODE | IPC_CREAT);

9    Msgctl(msqid, IPC_STAT, &info);

10   printf("msqid = %d, seq = %lu\n", msqid, info.msg_perm.seq);

11   Msgctl(msqid, IPC_RMID, NULL);

12  }

13  exit(0);

14 }

2. Первый вызов msgget задействует первую свободную очередь сообщений, порядковый номер которой имеет значение 20 после двукратного запуска программы из листинга 3.2, и вернет идентификатор 1000. Если предположить, что следующая доступная очередь сообщений никогда ранее не использовалась, ее порядковый номер будет иметь значение 0, а возвращаться будет идентификатор 1.

3. Программа приведена в листинге Г.2.

Листинг Г.2. Проверка использования маски создания файла функцией msgget

//svmsg/testumask.c

1 #include "unpipc.h"


2 int

3 main(int argc, char **argv)

4 {

5  Msgget(IPC_PRIVATE, 0666 | IPC_CREAT | IPC_EXCL);

6  unlink("/tmp/fifo.1");

7  Mkfifo("/tmp/fifo.1", 0666);

8  exit(0);

9 }

Запустив эту пpoгрaммy, мы увидим, что маска создания файла имеет значение 2 (снять бит записи для прочих пользователей) и этот бит оказывается снятым для канала FIFO, но не для очереди сообщений:

solaris % umask

02

solaris % testumask

solaris % ls –l /tmp/fifo.1

prw-rw-r-- 1 rstevens other1 0 Mar 25 16:05 /tmp/fifo.1

solaris % ipcs –q

IPC status from <running system> as of Wed Mar 25 16:06:03 1998

T ID  KEY       MODE      OWNER    GROUP

Message Queues:

q 200 00000000 –rw-rw-rw– rstevens other1

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

5. Вот один из способов обнаружения коллизий:

solaris % find / –links 1 –not –type l – print | xargs –n1 ftok1 > temp.1

solaris % wc –l temp.1

109351 temp.1

solaris % sort +0 –1 temp.1 | nawk '{ if (lastkey== $1) print lastline, $0 lastline = $0 lastkey = $1 }' > temp.2

solaris % wc –l temp.2 82188 temp.2

Программа find игнорирует файлы, на которые имеется несколько ссылок (поскольку у всех ссылок одинаковый номер узла), и символические ссылки (поскольку функция stat возвращает информацию для файла, на который ссылка указывает). Большой процент коллизий (75,2%) вызван тем, что в Solaris 2.x используется только 12 бит номера узла. Поэтому в файловых системах с числом файлов более 4096 количество коллизий может быть велико. Например, файлы с номерами 4096, 8192, 12288 и 16384 будут иметь один и тот же ключ IPC (если все они принадлежат одной файловой системе).

Мы запустили эту программу в той же файловой системе, но используя функцию ftok из BSD/OS, которая добавляет номер узла к ключу целиком, и получили всего 849 коллизий (менее 1%).