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

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

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

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

SELECT FirstName, LastName, OrderDate

FROM tblCustomer LEFT OUTER JOIN

tblOrder ON tblCustomer.ID = tblOrder.CustomerID

Обратите внимание, что в предложении LEFT JOIN используется синтаксис имя_таблицы.имя_поля. Более длинное имя позволяет избежать неоднозначности при использовании полей с одинаковыми именами, поскольку поле ID существует как в так и в tblOrder. Фактически предложение LEFT OUTER JOIN означает, что будут отображены все данные таблицы tblCustomer, которая находится в левой стороне выражения tblCustomer.ID = tblOrder.CustomerID.

РИС. 2.6. Выполнение запроса на основе объединения двух таблиц в окне конструктора представлений

Этот запрос возвращает приведенный ниже набор записей.

FirstName LastName OrderDate
John Smith 1/4/2001
John Smith 1/9/2001
Jill Azalia 1/14/2001
Brad Jones <NULL>
Daisy Klein 2/18/2001
Daisy Klein 3/21/2001
Daisy Klein 4/4/2001
Dave Martin 6/5/2001
Betty Klein <NULL>
Thurston Ryan 7/2/2001
Jane Winters 8/16/2001
Jane Winters 9/10/2001

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

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


ПИСЬМОНОСЕЦ: Очередной продукт компьютерной эпохи, Журнал «Компьютерра»

Автор: Леонид Левкович-Маслюк

<…> Не подумайте, «I don’t mean to criticize», как говаривал старина Нильс Бор. Я совершенно не собираюсь критиковать или ругать новое реалити-шоу. Наоборот, призываю сделать все возможное для поддержания нынешнего баланса между компьютерной и жизненно-философской частями журнала. Не стоит уподобляться узким специалистам. В конце концов, околокомпьютерные рассуждения играют роль локомотива, тянущего остальной материал. Того, ради чего покупают журнал. Что прочитывают в первую очередь. Все знают, какие рейтинги у жвачных телешоу? Прочитают философию, а там, глядишь, и до железячно-программячных текстов доберутся.

Итак, какие будут выводы? Писательское ремесло вступает в стадию, уже пройденную коллегами-телевизионщиками. После художественных фильмов наступила эра «застекольщиков». Зачем трудиться, сочинять истории, если жизнь — лучший сценарист? Статьи Голубицкого-Козловского — первые весточки переселения Живых Журналов в большую печать. Это очередной продукт компьютерной эпохи. Обилие гаджетов и программулек позволяет постоянно петь одну песню: «как я ковырялся с очередной хреновиной и что в итоге получилось». И, главное, никогда не повторяться.

С уважением, Юрий Солоделов jsolo13@rambler.ru


Здравствуйте! Недавно прочел книгу Берда Киви «Гигабайты власти». Хотелось бы, чтоб увидела свет подобная книга о нашей стране. Хотя в нашем государстве гласности и гражданских свобод это чревато. Может и псевдоним не помочь. На мой взгляд, единственный способ приостановить вторжение государства в частную жизнь его граждан — ликвидировать безграмотность этих самых граждан в отношении приватности. «Компьютерра» много раз обращалась к этой теме. Но, насколько я помню, это были разрозненные материалы. Было бы замечательно, если бы вы осветили этот вопрос системно. Хотелось бы увидеть что-то вроде инструкции: как сделать серфинг в Сети анонимным, как организовать шифрование переписки, как защитить данные с помощью стеганографии и т. п. От простых инструкций, объединенных одной темой номера, будет гораздо больше пользы, чем от разрозненных статей, появляющихся в журнале от случая к случаю. А если при выполнении инструкций удастся обойтись свободным ПО, будет вообще хорошо.

С наилучшими пожеланиями, А.

ОТ РЕДАКЦИИ: Мы уже писали (в разрозненных статьях), что правительство Германии, например, несколько лет назад активно стимулировало граждан и учреждения использовать свободную по всем существующим критериям систему GPG (GNU Privacy Guard) для шифрования переписки. Мотивом была защита от промышленного шпионажа. После событий 9/11 такие инициативы не то чтобы заглохли, а как-то вышли из моды — как и разговоры про Echelon и борьбу с ним (об этом писал как раз Киви). У нас же они и вовсе не успели войти в моду. Но эту тему мы продолжаем держать в поле зрения. В ближайшее время опубликуем новые разработки Максима Отставнова на тему «доступа к данным». Справочник же по индивидуальному исчезновению из поля зрения государства публиковать не планируем.


Вот ведь какие параллели прослеживаются: Вселенная (макрокосм) возникла из одной точки. И человек (микрокосм) возникает из одной точки (яйцеклетка, оплодотворенная сперматозоидом). Стало быть, можно (так как я не ученый-физик с мировым именем, то мне можно делать любые предположения — карьеру не испорчу) спроецировать процесс эволюции человека (процесс, изученный больше, чем эволюция Вселенной) на процесс развития Вселенной! Ура! Тайна бытия почти разгадана! Осталось только найти необходимые коэффициенты… Ну, я основное сделал — подсказал миру, где искать. Только не надо оваций, я скромный…

С уважением, Alex Purs

ОТ РЕДАКЦИИ: Стало быть, однажды наша вселенная слезла с дерева, потом взяла в руки каменный топор — и все это должно было проявляться в виде каких-нибудь космических событий — если, конечно, эти стадии эволюции уже позади. А если нет?… Знаете, придумайте лучше более оптимистичную теорию.


Я читаю «Терру» с 97-го года, и мне кажется, что ваш журнал стал входить в некий перечень для обязательного чтения для определенного круга людей. Хорошо это или плохо, но журнал становится все более всеядным, взять хотя бы последний номер (629). Господи, чего только тут не прочитаешь! Тут и Левин со статьей о творцах теории Большого взрыва, и преподобный Ваннах глаголет нам с высот теологии о земных вещах, две статьи о генной инженерии и т. д. и т. п. Так и хочется крикнуть: господа, давайте вернемся к нашим баранам, то бишь к компьютерам, ассемблеру и творениям великого Кнута! <…> Но, к сожалению, молодежь совсем не знакома с классическими трудами, которые в свое время являлись как бы введением в большую науку. Ведь такие книги, как «Физика пространства и времени» Э. Тейлора и Дж. Уилера сейчас недоступны, а широкополосный доступ к Сети есть не у всех. В связи с этим у меня предложение — напечатать список популярных классических трудов по основным направлениям науки, ведь он очень короткий. В математике я бы первым поставил в списке «Что такое математика» Р. Куранта и Г. Роббинса. Я думаю, у Алексея Левина нехилая библиотека научно-популярных бестселлеров, и ему это будет совсем нетрудно.

С уважением, Геннадий Хайбуллин

ОТ РЕДАКЦИИ: Список, скорее всего, будет не таким уж коротким. Но если Алексей Левин прочитает эту переписку и пришлет нам журнальный вариант списка — напечатаем!


Тюнером LifeView TV Prime 34 награждается Юрий Солоделов — за то, что он все понял. Приз предоставлен компаниейallmart.



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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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


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

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


Значения маски АСЕ. А. Г. Гузикевич

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

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

• Прочитайте документацию с описанием функции открытия интересующего вас объекта. Флаги доступа имеют те же значения, что и флаги, используемые в маске АСЕ. Так, функция OpenMutex использует флаги MUTEX_ALL_ACCESS и SYNCHRONIZE (второй из указанных флагов требуется для любого объекта, который может использоваться с функциями WaitForSingleObject или WaitForMultipleObjects). Другие объекты, например процессы, имеют множество других дополнительных флагов доступа.

• Полезная в этом отношении информация может содержаться также в документации по функциям "создания" объектов.

• Проверьте, не содержатся ли флаги, применимые к интересующему вас объекту, в заголовочных файлах WINNT.H и WINBASE.Н.


Журнал «Компьютерра». 13-Я КОМНАТА: Купить Китай

Автор: Владимир Гуриев

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

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

Тем не менее произошло именно так. И благо хоть бы один из основателей имел хоть какое.то отношение к свободному ПО. Но ничто в биографиях соответственно Виктора Алксниса (он же бывший летчик, он же бывший депутат Государственной Думы) и Александра Поносова (бывший директор сельской школы, осужденный за установку на школьные компьютеры нелицензионного ПО от Microsoft) на это не указывает. Собственно, крайне неприятная история, случившаяся с Александром Поносовым, говорит как раз об обратном: еще недавно он почему.то использовал ненавистный американский Windows, и наверняка использовал бы его до сих пор, если б не выборочная справедливость наших правоохранительных органов.

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

Разумеется, каждый может поддерживать, что ему захочется. Но хроменькая индустрия свободного ПО в России, наверное, могла бы обойтись без поддержки, в рамках которой предполагается за два.три года при бюджетном финансировании в 2–3 млрд. рублей (кстати, оцените вилку) создать "конкурентоспособный дистрибутив на базе Linux". Потому что русские дистрибутивы, если уж так хочется переходить на Linux, уже есть и тратить на создание очередной локализации 100 млн. долларов - это безумие. Даже если госбюджет или Дерипаска, к которому борцы за свободное ПО собирались обратиться, эти сто миллионов дадут (хочется верить, что нет, но в грядущую эпоху нацпроектов всего можно ожидать).

Впрочем, одной операционной системой здесь не обойдешься. "У меня есть мечта, - сказал Алкснис в прошлогоднем интервью Cnews, - когда.нибудь увидеть ПК, не уступающий по своим параметрам брэндовым компьютерам западных фирм, но собранный из российских комплектующих и с российской операционной системой. И когда это произойдет, можно будет сказать, что Россия поднялась…"

И плохо даже не то, что один из основателей новоиспеченного РОО ЦеСТ слабо понимает, из каких комплектующих и где собраны "брэндовые компьютеры западных фирм". Плохо, что к его заявлениям кто.то до сих пор относится всерьез, хотя к компьютерной индустрии все происходящее не имеет никакого отношения. И к реальности, увы, тоже, так как для исполнения мечты Виктора Алксниса нашему правительству необходимо купить Китай - иного экономически оправданного способа организовать производство российских комплектующих в настоящее время не существует.

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


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

13-Я КОМНАТА: Утопия нашего времени / Журнал «Компьютерра»

Автор: Илья Щуров Voyager

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

Однажды в детстве я придумал – ни много ни мало – модель идеального социума. Развитие техники, верил я, приведет к тому, что каждому человеку будет выдано по собственному миру во владение и пользование. Не по планете, а по целой вселенной. Исчезнет битва за ресурсы. Земли, солнца, воздуха, звезд и даже еды хватит на всех. Нет конкуренции – нет войн, голода, нищеты, болезней…

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

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

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

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

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

И кстати – о чем мечтают ваши дети? Нам ведь интересно, о чем мы будем писать через десять лет…


P.S. Напоминаем, что редакция «Компьютерры» решила внести свой вклад в мировую блогосферу, и приглашаем в наш редакционный блог: inside computerra ru. Надеемся, что описанные в этой статье отрицательные стороны жизни его не коснутся.


Blend (Смешиваемый) | Владимир Верстак

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

Для доступа к материалу Blend (Смешиваемый) выполните следующие действия.

1. Щелкните на кнопке Type (Тип) в окне Material Editor (Редактор материалов) для вызова окна диалога Material/Map Browser (Окно выбора материалов и карт).

2. Выберите из списка материал Blend (Смешиваемый). В результате откроется окно диалога, в котором необходимо указать: Discard old material? (Удалить старый материал?) или Keep old material as sub-material? (Оставить старый материал в качестве компонента?).

3. Щелкните на кнопке OK. В результате в области свитков окна Material Editor (Редактор материалов) появится свиток Blend Basic Parameters (Основные параметры смешивания) (рис. 3.15).

Рис. 3.15. Свиток Blend Basic Parameters (Основные параметры смешивания)


4. Настройте параметры смешивания материала.

1) Щелкнув на одной из кнопок Material 1 (Материал 1) или Material 2 (Материал 2), выберите новый материал либо перейдите в режим редактирования существующего. В качестве материалов могут выступать как стандартные материалы, так и сложные составные.

2) Установите или снимите флажки, расположенные справа от кнопок материалов, для активизации или деактивизации материалов.

3) Установите переключатель Interactive (Интерактивный) напротив того материала, который должен быть показан в окне проекции.

4) Нажав кнопку Mask (Маска), укажите в открывшемся окне Material/Map Browser (Окно выбора материалов и карт) материал или файл растрового изображения, который будет использоваться для смешивания двух компонентов материала.

5) В счетчике Mix Amount (Доля в смеси) определите значение смешивания материалов-компонентов в диапазоне от 0 до 100. При значении, равном 0, будет виден только Material 1 (Материал 1), а при 100 – только Material 2 (Материал 2).

6) Задайте плавность перехода одного материала в другой с помощью элементов области Mixing curve (Кривая смешивания).