<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pygoscelis+papua</id>
		<title>Linuxformat - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pygoscelis+papua"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:Contributions/Pygoscelis_papua"/>
		<updated>2026-05-13T02:11:07Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF98:Varicad_2007_2.01</id>
		<title>LXF98:Varicad 2007 2.01</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF98:Varicad_2007_2.01"/>
				<updated>2009-01-17T17:48:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* VariCAD 2007 2.01 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==VariCAD 2007 2.01==&lt;br /&gt;
&lt;br /&gt;
''САПР для Linux? '''Ник Вейч''' может только предполагать, зачем вам потребовалась эта программа,&lt;br /&gt;
хотя некоторые из писем читателей действительно впечатляют...''&lt;br /&gt;
&lt;br /&gt;
Профессиональных CAD-систем для Linux немного. Любительских набросков CAD в среде открытого ПО хватает, но большинство из них весьма примитивны&lt;br /&gt;
и созданы для решения сугубо специальных задач (например, разводки печатных плат) или, наоборот, слишком обобщены, без забот о глубине функциональности.&lt;br /&gt;
&lt;br /&gt;
Создатели VariCAD умудрились сочетать в программе несложный интерфейс с мощным&lt;br /&gt;
инструментарием для создания практически любого мыслимого проекта, хотя «заточена» программа под конструирование механизмов. VariCAD был первым Linux-приложением, успешно применившим 3D-режим&lt;br /&gt;
проектирования, освоив который, начинаешь недоумевать, зачем вообще нужно двумерное&lt;br /&gt;
черчение. Создав простой объект в 3D-режиме, можно вертеть его во всех направлениях&lt;br /&gt;
с помощью Control-Shift и мыши. Добавить новый объект совсем несложно: к вашим услугам уйма «привязывающих к пространству»&lt;br /&gt;
параметров – инструментов, способных найти хоть середину отрезка, хоть центр круга.&lt;br /&gt;
&lt;br /&gt;
Если нужны сложные расчёты, вас и тут ожидает мощная поддержка. Понадобился&lt;br /&gt;
стандартный подшипник, пружина, ролик или балка с определенными спецификациями – пожалуйста, программа не только&lt;br /&gt;
подберёт нужный вариант, но и вычертит его. Приложение буквально ломится от подобных решений, сберегающих время и усилия.&lt;br /&gt;
Многие компоненты даже незачем и чертить: в VariCAD имеется внушительный набор винтов, болтов, шайб и профилей по типоразмерам&lt;br /&gt;
ANSI и DIN, и выполнение работы становится тривиальной задачей, а не тягучей рутиной, характерной для прежних CAD-инструментов.&lt;br /&gt;
&lt;br /&gt;
===2D иль не 2D?===&lt;br /&gt;
&lt;br /&gt;
Завершив свою модель, нетрудно экспортировать объёмное изображение в двумерную&lt;br /&gt;
чертежную часть программы. Хотя многие предпочтут работу в 3D-режиме, на 2D отнюдь&lt;br /&gt;
не поскупились; возможен и обратный процесс – обращение двумерных чертежей в 3D-объекты.&lt;br /&gt;
Конечно, 2D-режим не столь увлекателен, но для многих видов проектирования без него не обойтись.&lt;br /&gt;
Если же вы хотите просто набросать проект печатной платы, то эта работа как раз по плечу одной из свободных&lt;br /&gt;
программ-альтернатив.&lt;br /&gt;
&lt;br /&gt;
Основная причина скачка в нумерации версий – введение функций обработки проводов и труб, призванных упростить прокладку&lt;br /&gt;
коммуникаций на чертежах (в трёхмерном режиме, естественно). Обе функции сходны,с той разницей, что труба пустая, а провод&lt;br /&gt;
(само собой) нет. По сути, задача сводится к построению простых цилиндров, только они непрерывно следуют один за другим – провод&lt;br /&gt;
или труба автоматически изгибается согласно размерам: надо указать лишь исходную и конечную точку, а о коленах программа&lt;br /&gt;
заботится сама. Хотя применение этих функций кое в чем ограничено, они фантастически сберегают время. В программе исправлены&lt;br /&gt;
некоторые ошибки – в основном, в 3D-интерфейсе, который теперь более точно подстраивается к различным видеокартам. К сожалению, часть&lt;br /&gt;
недостатков пока не изжита. Например, сделав ошибку в размещении нескольких копий отверстия и, естественно, воспользовавшись&lt;br /&gt;
командой Undo (Отменить), чтобы вернуться к исходному, вы обнаружите, что исчезло всё. Попытка сделать Redo (Повторить) ни к чему&lt;br /&gt;
не приведёт – движок Undo/Redo реагирует только на изменения, которые реально произошли с моделью; в некоторых случаях такое&lt;br /&gt;
может без малого взбесить.&lt;br /&gt;
&lt;br /&gt;
Стоит ли обновляться? Если вам позарез нужно строить водопровод – возможно. Если же вы вовлечены в другой крупный проект с&lt;br /&gt;
устоявшейся практикой – коней на переправе лучше не менять; а вот новичка ''VariCAD'' не разочарует точно.&lt;br /&gt;
&lt;br /&gt;
==Вердикт==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=darkred&amp;gt;Разработчик:&amp;lt;/font&amp;gt; VariCAD&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;font color=darkred&amp;gt;Сайт:&amp;lt;/font&amp;gt; [http://varicad.com www.varicad.com]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;font color=darkred&amp;gt;Цена:&amp;lt;/font&amp;gt; $680&amp;lt;br&amp;gt;&lt;br /&gt;
Функциональность: &amp;lt;font color=darkred&amp;gt;10/10&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Производительность: &amp;lt;font color=darkred&amp;gt;9/10&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Удобство использования: &amp;lt;font color=darkred&amp;gt;8/10&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Цена: &amp;lt;font color=darkred&amp;gt;7/10&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*''Достойного соперника на Linux-платформе что-то не видно.''&amp;lt;br&amp;gt;&lt;br /&gt;
'''Рейтинг''' &amp;lt;font color=darkred&amp;gt;'''9/10'''&amp;lt;/font&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_Linuxformat:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0</id>
		<title>Обсуждение Linuxformat:Портал сообщества</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_Linuxformat:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0"/>
				<updated>2008-03-14T04:18:22Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Новая: 70-й номер вроде готов. ~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;70-й номер вроде готов. [[Участник:Pygoscelis papua|Pygoscelis papua]] 07:18, 14 марта 2008 (MSK)&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:16:20Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Сломай меня, если можешь! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: экспериментируем с Google maps|&lt;br /&gt;
Содержание='''Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на &amp;quot;местности&amp;quot; не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших применений Google maps|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Теперь, когда мы знаем, как все устроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения http://www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Специальный репортаж]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:15:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: экспериментируем с Google maps|&lt;br /&gt;
Содержание='''Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на &amp;quot;местности&amp;quot; не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших применений Google maps|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Теперь, когда мы знаем, как все устроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Специальный репортаж]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:14:07Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Сломай меня, если можешь! */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: экспериментируем с Google maps|&lt;br /&gt;
Содержание='''Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на &amp;quot;местности&amp;quot; не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших применений Google maps|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Теперь, когда мы знаем, как все устроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:12:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* 5 лучших применений Google maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: экспериментируем с Google maps|&lt;br /&gt;
Содержание='''Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на &amp;quot;местности&amp;quot; не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:12:10Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Два метода */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: экспериментируем с Google maps|&lt;br /&gt;
Содержание='''Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на &amp;quot;местности&amp;quot; не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:10:05Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Исследование: экспериментируем с Google maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:09:30Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* GOOGLE MAPS — рай для хакера */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Авторские права на Google maps|&lt;br /&gt;
Содержание=Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. Извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:07:25Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Авторские права на Google maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:06:56Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Будущее web */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших сайтов на Ajax|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* 5 лучших сайтов на Ajax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Лучшая работа */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=5 лучших прототипов BBC Backstage|&lt;br /&gt;
Содержание=&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.|&lt;br /&gt;
Ширина=30%&lt;br /&gt;
}}&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших сайтов на Ajax ===&lt;br /&gt;
&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* 5 лучших прототипов BBC Backstage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших сайтов на Ajax ===&lt;br /&gt;
&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T04:02:03Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* BBC: Новое слово в распространении контента */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Исследование: эксперименты с BBC Backstage|&lt;br /&gt;
Содержание='''Тед Гилкрист (Ted Gilchrist) Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast'''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.&amp;quot;|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших прототипов BBC Backstage ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших сайтов на Ajax ===&lt;br /&gt;
&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T03:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Исследование: эксперименты с BBC Backstage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших прототипов BBC Backstage ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших сайтов на Ajax ===&lt;br /&gt;
&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:BBC</id>
		<title>LXF70:BBC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:BBC"/>
				<updated>2008-03-14T03:53:08Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Время отдыха в сети =&lt;br /&gt;
''Пока мы удивлялись инновациям в настольных приложениях, web-разработчики делали гигантские шаги в улучшении взаимодействия с пользователем, доставки информации и быстродействия. '''Амиас Чэннер''' ('''Amias Channer''') рассматривает наиболее активных проекта: прорыв мета-языка XML, обещающего пользователям более быстрый и качественный доступ к информации, впечатляющие перспективы для хакеров из Google, но прежде всего — новый сервис BBC, чья открытость вознаграждена появлением заставляющих задуматься применений для его RSS-содержимого.''&lt;br /&gt;
&lt;br /&gt;
=== BBC: Новое слово в распространении контента ===&lt;br /&gt;
&lt;br /&gt;
Мы любим web-программирование — сидение допоздна, кофе и просмотр Buffy в ожидании ускользающей Музы… затем возбуждение внезапно посетившей идеи и лихорадочное кодирование в ночи до тех пор, пока мысль не станет осязаемой. Но утром вы всего лишь получаете еще один способ для показа ваших воскресных фотографий в Сети. Если бы только существовал источник настоящего, надежного контента — что-то по-настоящему важное и достойное ваших программистских способностей.&lt;br /&gt;
&lt;br /&gt;
Что же, теперь такой источник существует. BBC открывает свой контент для бесплатного, некоммерческого использования на своем новом сайте: http://backstage.bbc.co.uk для всех заинтересованных лиц. На момент написания этой статьи доступны только RSS-источники и несколько API для доступа к содержимому. Однако, в ближайшее время ожидается гораздо больше. Проект задуман для привлечения сообщества web-разработчиков к огромному объему информации, собранному BBC, а также для обеспечения качественного бета-тестирования их RSS-сервиса.&lt;br /&gt;
&lt;br /&gt;
В данный момент доступны RSS-каналы новостей, спорта, проектов сообщества BBC, путешествий, погоды, развлечений, а также программ радио и телевидения. Некоторые каналы содержат более полную информацию, чем другие, но сервис расширяется: к примеру, программы раньше были ограничены только каналом BBC4, но сейчас там появились и недельные программы других каналов BBC и радиостанций.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как начать использовать сервис, необходимо прочитать условия его предоставления (не волнуйтесь, лицензия сравнительно проста, и ей довольно легко следовать). Для тех, кто часто читает лицензии, она будет прямотаки глотком свежего воздуха. Суть соглашения состоит в том, что вы не имеете права выставлять счета посетителям сайта (вряд ли это первое, о чем думают разработчики проектов с открытыми исходными текстами), конспектировать и сокращать информацию. Вы также должны обеспечить ссылку на сайт BBC. В целом, это довольно легкие условия.&lt;br /&gt;
&lt;br /&gt;
Хотя вам и не позволяется брать плату за информацию, вы тем не менее, имеете возможность показывать рекламу на вашем сайте. Но вы не можете утверждать, что информация принадлежит вам или брать деньги за ее использование.&lt;br /&gt;
&lt;br /&gt;
Официальный запуск сайта http://backstage.bbc.co.uk произошел 23 июля на конференции Open Tech 2005 (Хаммерсмит, Лондон), организованной UK Unix и Open Systems User Group — это огромный вклад BBC в сообщество разработчиков Open Source. В сетевых дневниках и среди компьютерной публики ходят слухи, что BBC откроет доступ к своей огромной библиотеке телевизионных сериалов. Вы только представьте себе подобное!&lt;br /&gt;
&lt;br /&gt;
Хотя такой шаг, скорее всего, снизит доходы от продажи DVD и видео кассет, это может стать вполне цивилизованным ответом на бум нелегального копирования, который угрожает сделать по сути тоже самое. По крайней мере, в этом случае BBC будет иметь возможность отслеживать то, что уходит наружу, а не просто оставлять все на откуп пиратам.&lt;br /&gt;
&lt;br /&gt;
Такой ход будет вполне соответствовать уставу BBC. Покупатели лицензий уже оплатили показы, так, что они вполне могут утверждать, что имеют право на просмотр без необходимости платить снова.&lt;br /&gt;
&lt;br /&gt;
Во время запуска сервиса также ожидается появление некоторых результатов недавних экспериментов BBC с сетевым вещанием. В общем-то, вся программа Open tech посвящена технологиям, к которым может приобщиться любой, будь это привычное открытое программное обеспечение, или нестандартное применение электронных устройств, например Xbox.&lt;br /&gt;
&lt;br /&gt;
==== Лучшая работа ====&lt;br /&gt;
&lt;br /&gt;
Лидер проекта Backstage Бен Меткалф (Ben Metcalfe) потратил месяцы, работая над ним в новом подразделении BBC. Как он говорит, иногда, чтобы получить доступ к контенту, требовался «дар убеждения». «Когда речь идет о праве распространять контент на web-сайтах других людей, вы и в самом деле просите довольно много от владельцев информации, поскольку физический контроль за ее представлением и контекстом будет утерян. Однако, такой подход, очевидно, предоставляет и множество преимуществ, например, расширение области охвата и инновации»,-сказал г-н Меткалф.&lt;br /&gt;
&lt;br /&gt;
С тех пор, как сайт Backstage был открыт, он привлекает активное сообщество разработчиков и несколько действительно инновационных прототипов. Пока что не было отмечено нарушений условий соглашения, что же касается прототипов, то они проверяются и в момент регистрации, и регулярно после него.&lt;br /&gt;
&lt;br /&gt;
Чтобы получить больше информации о BBC Backstage, вы можете подписаться на список рассылки, который стремительно становится высококачественным источником информации о RSS для британских проектов. Кроме того, этот список позволяет почувствовать, что же происходит в современном мире web-программирования. Дункан Меткалф (Duncan Metcalfe), недавний студент, приславший несколько прототипов, использующих RSS-источник, говорит, что вдохновлен идеями и поддержкой проекта. «Это мое первое участие в каком-либо качестве в сети разработчиков. С этими людьми, в их окружении по настоящему приятно работать и я чувствую себя более комфортно, когда думаю о том, как технология может улучшиться в будущем».&lt;br /&gt;
&lt;br /&gt;
Некоторые из наших самых любимых прототипов приведены в списке пяти лучших во врезке внизу. «Мы были очень впечатлены качеством поступивших работ»,-говорит Меткалф. «и нам определенно нужно подумать о том, как внедрить некоторые из этих идей в bbc.co.uk. люди, предоставившие прототипы, сохраняют право интеллектуальной собственности, поэтому мы будем работать над идеями вместе с ними».&lt;br /&gt;
&lt;br /&gt;
==== Цель RSS ====&lt;br /&gt;
&lt;br /&gt;
British Broadcasting Corporation (BBC) — уникальная компания в плане трансляции своих передач, из-за своего устава и некоммерческого статуса. Эти фактора делают компанию очень близкой по духу к интернету. BBC всегда использовала Open Source там, где это возможно и даже поддерживает несколько собственных проектов с открытыми исходниками.&lt;br /&gt;
&lt;br /&gt;
У компании сильная репутация в интернете, поэтому обязательства, которые она берет на себя в проекте Backstage убеждают, что его контент будет также хорошо восприниматься сообществом, как и остальные сервисы. Предполагается, что проект продолжит успех онлайновой службы новостей, в частности ожидается, что к концу года 10 % трафика news.bbc.co.uk будет передаваться по RSS.&lt;br /&gt;
&lt;br /&gt;
=== АЯКС, перемены несущий ===&lt;br /&gt;
&lt;br /&gt;
Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не&lt;br /&gt;
голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о&lt;br /&gt;
нем немного больше, и, откровенно говоря, мы впечатлены.&lt;br /&gt;
&lt;br /&gt;
Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.&lt;br /&gt;
&lt;br /&gt;
==== Это действительно полезно! ====&lt;br /&gt;
&lt;br /&gt;
Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.&lt;br /&gt;
&lt;br /&gt;
Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете&lt;br /&gt;
подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для&lt;br /&gt;
проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.&lt;br /&gt;
&lt;br /&gt;
Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.&lt;br /&gt;
&lt;br /&gt;
Выявление факта, что ваша работа повторяет какой-то паттерн проектирования — это уже само по себе искусство. Паттерны не обязательно помогут вам создать лучший код, но они предоставят набор полезных указаний, как не загнать самого себя в ловушку.&lt;br /&gt;
&lt;br /&gt;
Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.&lt;br /&gt;
&lt;br /&gt;
==== XML коктейль ====&lt;br /&gt;
&lt;br /&gt;
Если вы занимались web-разработкой в течение некоторого времени, то можете подумать, что все это очень напоминает DHTML, и это на самом деле так. Но есть и кое-что&lt;br /&gt;
весьма специфичное — это XML! Традиционный DHtML ограничен манипуляциями с данными, доступными через интерфейс объектной модели документа (DOM — Document Object Model), тогда как Ajax-приложения могут запросить нужные сведения напрямую от сервера. Этот трюк обычно делается с помощью новой JavaScript-функции XMLHTTPRequest(), которая только недавно была реализована в основных web-браузерах. С ее помощью страница может запросить любые данные из любого места в интернете, используя протокол HTTP. Предоставляемые ею возможности огромны: вы можете загрузить последний список записей в сетевом дневнике, заголовки новостей, анонсы, сообщения журнала сервера или, если у вас совсем туго с фантазией, курсы валют.&lt;br /&gt;
&lt;br /&gt;
Также довольно легко можно сгенерировать поток XML из базы данных и использовать его в Ajax.&lt;br /&gt;
&lt;br /&gt;
Но на этом веселье не кончается. Поскольку XML-данные структурированы, они легко могут быть помещены на страницу, откуда их вызвали, при помощи некоторых манипуляций с CSS и DOM. Все это произойдет в фоновом режиме с помощью механизма событий JavaScript, и в этом случае можно даже использовать язык XSLT (eXtensible Stylesheet Language Transformation) для преобразования XML в HTML прямо в браузере.&lt;br /&gt;
&lt;br /&gt;
В традиционном web-приложении для этого потребуется перезагрузить некоторую, иногда преднамеренно скрытую (брр…), страницу. В любом случае, этот подход приведет к тому, что браузер будет чем-то занят и не будет отвечать на действия пользователя. Добавьте к этому создание и отрисовку PNG и вы поймете почему слово web-сайт уже не выражает того, что имеет место быть. Слово «приложение» подходит куда, поскольку отражает все то взаимодействие, что происходит за браузером.&lt;br /&gt;
&lt;br /&gt;
==== Будущее web ====&lt;br /&gt;
&lt;br /&gt;
Из-за отсутствия перегрузки страниц подход Ajax (будучи примененным правильно) должен приводить к существенному приросту в скорости, по сравнению с методами старой&lt;br /&gt;
школы. После начальной загрузки страницы, все вызовы к вашему серверу будут просто извлекать данные без необходимости заполнения шаблонов или принятия решений о показе того или иного документа.&lt;br /&gt;
&lt;br /&gt;
На уровне одной сессии прирост почти не заметен, однако в целом для сайта, произойдет ощутимое снижение нагрузки на сервер, что, в свою очередь, сделает извлечение данных еще более быстрым.&lt;br /&gt;
&lt;br /&gt;
Другое преимущество Ajax — четкое разделение уровней данных, интерфейса и логики. Это означает, что сторонние разработчики могут полностью подменять любые уровни без необходимости выяснять остальные подробности. Если вы использовали классы JavaScript при первоначальном написании сценариев, то их можно улучшить с помощью создания подклассов и переопределения методов. Например, Google Maps уже запустил несколько модифицированных версий, в каждой из которых используется один «движок», поставляющий географические данные различным интерфейсам.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как разрешить сторонним программистам доступ к вашим данным, было бы разумно проработать правила использования и создать что-то вроде программы поддержки разработчиков (Wiki или список рассылки).&lt;br /&gt;
&lt;br /&gt;
==== Так в чем подвох? ====&lt;br /&gt;
&lt;br /&gt;
Вероятно вы думаете, «Все это звучит замечательно, но в чем подвох?». Что ж, существует несколько проблем, но их легко обойти. В то время, как стандартные web-приложения не сильно теряют в ситуациях, когда клиент использует устаревший web-браузер или вообще не использует его, Ajax приложения могут не заработать или стать полным кошмаром, когда дело касается доступности приложения для людей с физическими недостатками. Программы — читатели текста и принтеры Брайля будут полностью нерабо тоспособны в Ajax-приложении и вряд ли смогут работать с XMLHTTPRequest().&lt;br /&gt;
&lt;br /&gt;
Для таких браузеров необходимо обеспечить альтернативный подход или сделать так, чтобы все действия были доступны с помощью нормальных форм и стандартных ссылок.&lt;br /&gt;
&lt;br /&gt;
Не все функции Ajax доступны во всех броузерах. Чтобы обойти это ограничение, написаны несколько JavaScript-библиотек с унифицированным API, позволяющим корректно определять ситуации, в которых Ajax использоваться не может.&lt;br /&gt;
&lt;br /&gt;
Только сейчас, когда применяемые в Ajax технологии вполне созрели, он перестал быть чем-то интересным, но не имеющим места в реальной жизни и начал использоваться во многих впечатляющих сайтах. Google Maps, Google Suggest доказали его возможности и помогли получить признание среди web-разработчиков.&lt;br /&gt;
&lt;br /&gt;
Существуют, однако, два других фактора, которые отличают Ajax от других подобных технологий. Во-первых, в Ajax, в отличие от Flash, вы всегда можете увидеть исходный код, что приводит к появлению быстро растущего сообщества разработчиков, изучающих чужие решения. Во-вторых, поскольку эта технология основывается на стандартах, которые не принадлежат какому-то одному производителю (как, например, в случае с Java), это делает невозможным внезапную смену подходов, равносильную&lt;br /&gt;
смерти технологии. уже сейчас существует несколько инструментов, позволяющих создавать основанные на Ajax web-приложения с возможностью объединения парадигмы Ajax с надежной серверной технологией (в данный момент одна из наиболее популярных — Ruby on Rails). Эти инструменты могут сильно помочь при переходе на Ajax, но вряд ли будут очень полезны, если добавляются в уже существующий сайт.&lt;br /&gt;
&lt;br /&gt;
В условиях постоянно появляющегося открытого RSS-контента, распространяемого под довольно гибкими лицензиями, Ajax скоро станет нормой, так что традиционные сайты перестанут быть привлекательными. Существует довольно много конкурирующих технологий, парадигм и просто модных слов, но Ajax заслуживает вашего внимания за свою комбинацию опробованных и протестированных технологий и доказанный потенциал для инноваций в пользовательских интерфейсах.&lt;br /&gt;
&lt;br /&gt;
=== GOOGLE MAPS — рай для хакера ===&lt;br /&gt;
&lt;br /&gt;
Если вы ищите реальный пример, демонстрирующий, что хорошего можно сделать при помощи Ajax, рекомендуем взглянуть на проект Google Maps. Если вы еще не были там, срочно отправляйтесь по адресу http://maps.google.com&lt;br /&gt;
&lt;br /&gt;
Каждый, кто хоть раз видел систему Keyhole.com, использующую снимки со спутников, трехмерную географию и карты, непременно испытает чувство дежавю: Google недавно приобрел Keyhole и именно ее разработки лежат в основе Google Maps. Программисты компании взяли чистое Windows-приложение и перенесли его в web, попутно сделав более&lt;br /&gt;
универсальным, доступным и бесплатным.&lt;br /&gt;
&lt;br /&gt;
Тем не менее, по-настоящему мудрым оказался следующий шаг. Для получения данных и отрисовки карт было решено использовать Ajax. В результате получилась поистине потрясающая система, отображающая на спутниковых картах географические объекты, координаты которых сохранены в формате XML. Это обеспечивает комфорт и удобство «родного» системного приложения. Глядя на экран, трудно поверить, что им одновременно управляют две различных системы.&lt;br /&gt;
&lt;br /&gt;
==== Два метода ====&lt;br /&gt;
&lt;br /&gt;
Ну и как же оно работает? удивительно, но Ajax используется только для запроса данных — загрузка карт происходит через стандартные фреймы IFRAME, так что вы попрежнему можете пользоваться кнопками Back и Forward в вашем браузере — каждое обновление фрейма оставляет запись в истории посещенных страниц. Это объясняет, почему показ карт работает в любом браузере, а отображение данных на них — только в достаточно новых (хотя сторонники Internet Explorer могут использовать версию 3 и выше).&lt;br /&gt;
&lt;br /&gt;
Обработка карт впечатляет, но настоящая магия кроется в позиционировании на них точек и соединительных линий.&lt;br /&gt;
&lt;br /&gt;
Пользовательский запрос отправляется на сервер традиционным способом. В ответной странице содержится скрытый фрейм, содержащий большое количество данных в формате XML. В процессе загрузки этот XML передается в XMLHTTPRequest() при помощи вызова функции с родительской страницы. Это несколько странно — ведь Ajax мог быть использован для достижения того же самого эффекта напрямую. Мы не знаем, почему так было сделано, хотя можем предположить, что разработчики Google не хотели выдать реальное местоположение XML-сервера и разместили перед ним кэширующий прокси. С учетом развития технологий HTTP-кэширования они могли предпочест традиционный HTTP-запрос использованию сырого XML без какого-либо кэширования на уровне протокола.&lt;br /&gt;
&lt;br /&gt;
После получения данных, они передаются функции _load() родительского окна, затем происходит XSLt-трансформация, превращающая XML в локальную информационную панель. Эта перезагрузка обеспечивает создание красивых указателей, речевых пузырей и маршрутных линий на карте слева. Благодаря Ajax, данные могут происходить откуда угодно, но будут иметь смысл только в случае, если в них содержатся географические координаты.&lt;br /&gt;
&lt;br /&gt;
==== Сломай меня, если можешь! ====&lt;br /&gt;
&lt;br /&gt;
Теперь, когда мы знаем, как все утроено, давайте попробуем повеселиться. Чтобы создать новую карту, требуется не так уж много (подробности см. на сайте Google Maps), поскольку неформальному описанию API уже посвящены кое-какие Wiki и списки рассылки. Однако, если вы не хотите переписывать свой web-сайт каждый день, следует подождать публикации официальной версии Google Maps API.&lt;br /&gt;
&lt;br /&gt;
Самым нетерпеливым рекомендуем начать с посещения www.mygmaps.com и генерации карты с помощью web-интерфейса. Он позволит вам создать достаточно примитивный файл данных, разместит его и, таким образом, даст понять, к чему можно стремиться. затем используйте код из http://stuff.rancidbacon.com/google-mapsembed-how-to , чтобы встроить карту в свою страницу. Для этого достаточно вызвать функцию-обертку и передать ей тег DIV, в котором вы хотите разместить данный объект. Первые попытки были очень ненадежными — Google Maps по-прежнему находится в стадии «бета», так что интерфейсы могут быть изменены без уведомления. Однако, они прекрасно демонстрируют потенциал хакеров и, к настоящему моменту, уже достаточно стабильны.&lt;br /&gt;
&lt;br /&gt;
Согласно авторам сетевых дневников, Google разрабатывает API для внедрения карт в другие сайты, но еще не завершил эту работу. Google продолжает традицию изготовления чересчур хороших сайтов и с каждым разом становится все лучше и лучше, несмотря на то, что у него не так уж много денежных стимулов для этого — все&lt;br /&gt;
причастные уже богаты (или должны быть богаты), как Крез. С выпуском коммерческого API для Google Maps они удвоят свое состояние. лучше для них — лучше для нас.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Исследование: эксперименты с BBC Backstage ===&lt;br /&gt;
&lt;br /&gt;
Тед Гилкрист (Ted Gilchrist)&lt;br /&gt;
Rebotcast канала мировых новостей BBC http://feeds.feedburner.com/bbcworldRebotcast&lt;br /&gt;
&lt;br /&gt;
«Я некоторое время экспериментировал с аудио, сетевыми дневниками и RSS, но настоящее понимание пришло после того, как я осознал всю мощь технологии podcasting разрабатываемой Дэйвом Винером (Dave Winner) и Адамом Карри (Adam Curry). Я могу загрузить контент, синтезировать текст и затем распространять улучшенную таким образом информацию как podcast. Моим Святым Граалем всегда был легальный источник новостей мирового класса. Так что, когда появился проект BBC Backstage, я был счастлив. Я перевел все свои RSS-ленты, начиная с погоды в Прадхо-Бей, штат Аляска и заканчивая новостями BBC на Linux-сервер за $600 в моем подвале. Я использую систему синтеза речи Festival, прекрасный образчик открытого программного обеспечения. Я программирую на Perl и применяю десятки модулей, разработанных Perl-сообществом и распространяемых через CPAN.org. Таким образом, моё использование RSS зависит от доброй воли незнакомых мне людей, работающих в одиночку или в творческих союзах.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших прототипов BBC Backstage ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chatbots.co.uk/newsbot новости читает виртуальный диктор.&lt;br /&gt;
* http://www.assistmedia.com/trafficlite информация и дорожных пробках и т. п. на вашем мобильном телефоне.&lt;br /&gt;
* http://www.missingwords.co.uk Онлайн-версия игры в слова «Have I Got News For You», с новыми заголовками, генерируемыми каждые 15 минут из RSS.&lt;br /&gt;
* http://www.backstage.min-data.co.uk/sport поиск новостей о любимой британской футбольной команде.&lt;br /&gt;
* http://www.justinflavin.com/tagsoup/tagsouprss.php новости технологий BBC.&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших сайтов на Ajax ===&lt;br /&gt;
&lt;br /&gt;
* http://maps.google.co.uk - изумительный сайт Google с картографической информацией.&lt;br /&gt;
* http://gmail.google.com - почтовый сервис Google.&lt;br /&gt;
* http://www.google.com/webhp?hl=en&amp;amp;complete=1 - новый поисковый интерфейс Google с автоматическими подсказками.&lt;br /&gt;
* http://www.monoplylive.com - онлайн-версия игры «Монополия» с использованием GPS и данных, поступающих от водителей такси&lt;br /&gt;
* http://www.basecamphq.com - сайт управления проектами, построен с использованием Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
=== Авторские права на Google maps ===&lt;br /&gt;
&lt;br /&gt;
Google намеренно избегает ответа на вопрос о повторном использовании сервиса Google Maps. Похоже, что до тех пор, пока вы упоминаете Google и других держателей авторских прав на материалы на своих страницах, вы вольны использовать его в рамках стандартных ограничений (НЕ-порно, НЕ-терроризм и так далее). К настоящему моменту известно о закрытии лишь одного проекта — сайта, которые позволял склеивать кусочки карт в большое полотно.&lt;br /&gt;
&lt;br /&gt;
Делая это, разработчики нарушили лицензию, на условиях которой Google получил картографические данные. извлечение карт и использование их для любых других целей нарушает права владельцев, так что инициативу пришлось закрыть, чтобы вывести Google из-под удара. Кстати, уведомление о прекращении работы было типичным для Google. Оно напоминало записку друга и даже содержало извинения перед держателем сайта.&lt;br /&gt;
&lt;br /&gt;
=== Исследование: экспериментируем с Google maps ===&lt;br /&gt;
&lt;br /&gt;
Дункан Баркли (Duncan Barclay) Новости графств http://backstage.min-data.co.uk/news&lt;br /&gt;
&lt;br /&gt;
«Я решил сделать что-нибудь отображающее события, попавшие в новости BBC, на карте Google Maps. С получением сведений из RSS-ленты и расположением их на „местности“ не возникло проблем. Нужно было лишь разобраться с долготой и широтой, загрузить и проанализировать данные (я использовал PHP), а затем передать их в виде XML сценарию Google Maps. Разместить карту на странице было уже сложнее. Мне пришлось просмотреть исходные тексты Google Local и удалить весь код, не относящийся к отображению карты. Случались и накладки, например, любое изменение, вносимое Google в свои сценарии означало, что мне переписывать сайт с нуля.»&lt;br /&gt;
&lt;br /&gt;
=== 5 лучших применений Google maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.chicagocrime.org Чикаго — следующая жертва угонщиков Grand theft Auto.&lt;br /&gt;
* http://www.busmonster.com Будем надеяться, последний гвоздь в гроб автомобилистов Сиэттла.&lt;br /&gt;
* http://www.gtraffic.info узнайте, что делает лондонская полиция при помощи дорожных камер.&lt;br /&gt;
* http://www.dynamite.co.uk/local Google Maps, BBC travel, местные новости, фотографии Flickr, …&lt;br /&gt;
* http://www.housingmaps.com Найдите свой дом на спутниковом снимке.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:OpenLaszlo</id>
		<title>LXF70:OpenLaszlo</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:OpenLaszlo"/>
				<updated>2008-03-14T03:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* OpenLaszlo 3.0 */ викификация, оформление, шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OpenLaszlo 3.0 =&lt;br /&gt;
''Flash был любимым всеми патентованным форматом — теперь это любимый всеми открытый формат. '''Пол Хадсон''' взвешивает все за и против…''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
Заголовок=Самое главное|&lt;br /&gt;
Содержание=Добро пожаловать в среду разработки графических интерфейсов на Flash. См. также: Ming&lt;br /&gt;
* Поставщик: Laszlo Systems&lt;br /&gt;
* Web: [[http://www.openlaszlo.org www.openlaszlo.org]]&lt;br /&gt;
* Цена: бесплатно, по лицензии IBM CPL|&lt;br /&gt;
Ширина=250px&lt;br /&gt;
}}&lt;br /&gt;
Формат Macromedia Flash очень удобен — он позволяет управлять точным расположением элементов на странице и работает на всех мыслимых платформах. Более того, он использует векторную графику, а значит, ваши анимационные ролики будут выглядеть привлекательно, не занимая при этом всю ширину канала.&lt;br /&gt;
&lt;br /&gt;
Многие проекты занимались инженерным анализом Flash, но до сего момента в мире Open Source не было достойного аналога среды Flash MX 2004 Studio для Windows или Mac OS X. Не спешите радоваться: OpenLaszlo — это не студия для редактирования Flash. Это библиотека компонентов, позволяющих создавать Flash-интерфейсы, не подписывая набивших оскомину лицензионных соглашений.&lt;br /&gt;
&lt;br /&gt;
На самом деле, Laszlo — это нечто большее. Для проектирования интерфейсов используется обычный XML, который затем превращается в полноценный Flash-ролик.&lt;br /&gt;
&lt;br /&gt;
=== Полуфабрикаты Web ===&lt;br /&gt;
Каждый web-разработчик знает, что Flash легко использовать в случае, когда вам необходимо оживить несколько несложных фигур, однако, создание развитых интерфейсов превращается в кошмар. OpenLaszlo, напротив, предоставляет в ваше распоряжение целый ряд полнофункциональных компонентов GUI. Если вам&lt;br /&gt;
нужно текстовое поле ввода, используйте XML-элемент &amp;amp;lt;text&amp;amp;gt;, самостоятельный диалог создается при помощи &amp;amp;lt;window&amp;amp;gt;, кнопка соответствует тэгу &amp;lt;button&amp;gt; и так далее — вы уже можете представить себе, как выглядит программирование в OpenLaszlo.&lt;br /&gt;
&lt;br /&gt;
Каждый компонент обладает некоторым набором встроенных функций. Кнопки можно нажимать, в текстовые поля — вводить текст (при этом пароли появляются на экране в виде звездочек), а окна — перетаскивать. Вы можете изменять атрибуты тех или иных компонентов: ширину и высоту, OpenLaszlo 3.0 цвета, местоположение и даже действия. Код для действий пишется на языке JavaScript, а используемые при этом события знакомы каждому HTML-программисту: onClick(), onFocus(), onMouseOver() и так далее. Внутри XML-кода допускается использование простых переменных, например, конструкция width=&amp;quot;${immediateparent.width}&amp;quot; будет правильно транслирована и обработана во Flash-ролике.&lt;br /&gt;
&lt;br /&gt;
=== От XML — к Flash ===&lt;br /&gt;
Этому магическому превращению мы обязаны Java. Когда пользователь запрашивает вашу страницу, XML-код анализируется и компилируется «движком» OpenLaszlo, который и превращает его во Flash-ролик. Стандартной реализацией этой идеи является сервлет-контейнер Apache Tomcat, но вы с тем же успехом можете сгенерировать Flash-ролики заранее и разместить их на статичном web-сервере Apache. Впрочем, в этом не так уж много смысла: с помощью компилятора Java можно создать оптимизированные статичные файлы, которые будут обслуживаться Tomcat как есть, без предварительно- го анализа соответствующего XML-кода. При этом скорость работы будет столь же высокой, однако, необходимость перемещать файлы на сторонний сервер отпадет.&lt;br /&gt;
&lt;br /&gt;
Если вы все еще недостаточно впечатлены, сообщаем вам, что OpenLaszlo умеет работать с XML-RPC и SOAP. Первый из них позволяет делать удаленные вызовы процедур с других компьютеров по протоколу HTTP. Звучит запутанно, но на практике это не более чем способ передать функции параметры и получить от нее возвращаемое значение. SOAP — Simple Object Access Protocol (Простой протокол доступа к объектам) — предназначен для передачи сложных типов данных, то есть для связи ваших Flash-роликов с внешним миром. На самом деле, поддержка XML имеет более глубокие корни: OpenLaszlo может загрузить и проанализировать XML-документ из локального или удаленного источника, а также выполнить запрос XPath. Все эти операции доступны и в стандартном Flash-ролике, но, тем не менее, встречаются они нечасто и по очень простой причине — это не так-то легко сделать, если вы не используете OpenLaszlo.&lt;br /&gt;
&lt;br /&gt;
Выбор компонентов, предоставляемых OpenLaszlo, весьма обширен. Наряду с привычными текстовыми полями, кнопками, флажками и списками, здесь встречаются составные объекты, такие как диалоги выбора даты, деревья, группы вкладок, меню и таблицы данных. Все они могут обмениваться данными с остальной частью Flash-ролика, а также, подобно HTML-форме, отсылать их по HTTP для удаленной обработки на сервере.&lt;br /&gt;
Flash известен своими мультимедиа-возможностями, и здесь OpenLaszlo не отстает: вы можете включать в свой XML-код картинки, фильмы, MP3-композиции и даже другие Flash-ролики. Все они контролируются с помощью сценариев, написанных на языке JavaScript.&lt;br /&gt;
&lt;br /&gt;
=== Задачи двойного назначения ===&lt;br /&gt;
Вы можете создавать собственные классы, добавляющие новую функциональность или особое поведение. OpenLaszlo позволяет использовать компонент как класс, а затем применить его в качестве шаблона в&lt;br /&gt;
нескольких местах на одной и той же странице. Вы можете наследовать от данного класса (а также наследовать от наследника класса и так далее), создавая свои собственные библиотеки сложных объектов. В это трудно поверить — у бывалых программистов XML отнюдь не пользуется репутацией средства, подходящего для этих целей. Но OpenLaszlo добивается своего, несмотря на трудности, и результат выглядит впечатляюще.&lt;br /&gt;
&lt;br /&gt;
Конечно, весь этот потенциал подразумевает, что овладеть синтаксисом OpenLaszlo будет не так-то просто. Здесь на помощь приходит обширная документация, освещающая всевозможные аспекты конфигурации системы и процесса разработки. Да, вы не ослышались: это хорошо задокументированный открытый проект, который будет содействовать вам в ходе инсталляции и обучения, предоставит в ваше распоряжение многочисленные примеры, справочники, руководство администратора и так далее. Секрет кроется в том, что OpenLaszlo был выпущен как Open Source не так давно — компания продолжает развивать продукт, но берет деньги за поддержку и услуги. Это было смелым решением и мы очень рады, что они на него пошли.&lt;br /&gt;
&lt;br /&gt;
Сложность OpenLaszlo могла бы показаться сокрушительной, если бы не одно «но»: IBM создала расширение для Eclipse, упрощающее разработку с OpenLaszlo. Оно не только помогает следить за корректностью и форматированием XML-документа, но и включает визуальный дизайнер интерфейсов, позволяющий просто расположить элементы при помощи мыши, вместо того чтобы писать XML-код вручную. Если вы не знакомы с Eclipse, потребуется некоторое время, чтобы привыкнуть к этой среде, зато все, кто уже видел ее, будут чувствовать себя, как дома.&lt;br /&gt;
&lt;br /&gt;
=== Добро пожаловать в Монго! ===&lt;br /&gt;
Попробовав OpenLaszlo, трудно остановиться. Вы можете потратить недели на создание сложного интерфейса к вашему web-сайту на Java, но зачем? OpenLaszlo предоставляет все возможности для реализации мощных кросс-платформенных GUI, выглядящих безупречно. Потребуется немало усилий и еще больше опыта, чтобы заставить Java выглядеть так же хорошо. Документация, предоставляемая проектом, находится выше всяких похвал. OpenLaszlo побеждает Java на ее собственном поле (по крайней мере, до тех пор, пока речь идет о web-браузерах). Это по-настоящему свободный продукт, лицензированный по IBM Common Public License (CPL: по сути, GPL c учетом патентов). OpenLaszlo — лакомый кусок для сообщества Open Source. Комбинируя его с Apache Tomcat и Eclipse, вы получите сногсшибательное трио. Если вы экспериментируете с web-интерфейсами (уже прочитали [[LXF70:BBC|материал на странице 60]]?), мы настоятельно рекомендуем начать с OpenLaszlo. Обещаем, вы не будете разочарованы.&lt;br /&gt;
&lt;br /&gt;
=== Вердикт Linux Format ===&lt;br /&gt;
* Возможности — 8/10&lt;br /&gt;
* Производительность — 9/10&lt;br /&gt;
* Простота использования — 9/10&lt;br /&gt;
* Документация — 10/10&lt;br /&gt;
По началу выглядит сложноватым, но, несомненно, заслуживает изучения. Это — будущее web-интерфейсов&lt;br /&gt;
* '''Рейтинг — 9/10'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:%D0%9F%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BA%D0%B0_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0</id>
		<title>LXF70:Подсказка месяца</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:%D0%9F%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BA%D0%B0_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0"/>
				<updated>2008-03-14T03:40:31Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Новая статья, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Подсказка месяца: Разберитесь с кодеками =&lt;br /&gt;
&lt;br /&gt;
Чем больше видеофайлов в вашей коллекции, тем больше кодеков для работы с аудио и видео придется постоянно держать в системе. Вы уже, скорее всего, знакомы с прекрасной программой MPlayer. Однако, мало кто догадывается, что у него есть и партнерский проект — MEncoder. Он использует ту же самую кодовую базу и, таким образом, умеет конвертировать все поддерживаемые MPlayer форматы друг в друга. MEncoder управляется из командной строки, что может представлять некоторую трудность для начинающих: у него так много параметров! Только посмотрите на страницу руководства MEncoder! Команда ''mencoder'' использует четыре основных ключа, указывающих, как именно вы хотите преобразовать файл. Первый из них — входные данные, второй — выходной видеокодек, третий — выходной аудиокодек и последний — имя результирующего файла. Типичный пример вызова MEncoder выглядит так:&lt;br /&gt;
 $ mencoder input.avi -ovc lavc -ovc -lavcopts vcodec=mpeg4:vhq:vbitrate=1200 -oac copy -o output.avi&lt;br /&gt;
&lt;br /&gt;
Сложновато, не правда ли? На самом деле, все не так уж страшно. ''input.avi'' — это файл, который мы хотим преобразовать. ''-ovc lavc'' указывает выходной кодек, а следующие за эти ключи командной строки являются его параметрами. В данном случае, мы выбрали MPeg4 (эквивалент DivX) с переменным битрейтом, равным 1200. ''-oac copy'' указывает MEncoder выходной аудиокодек. В данном случае, мы просто копируем звуковую дорожку исходного файла в ''output.avi'', который и является результирующим файлом.&lt;br /&gt;
&lt;br /&gt;
Приятной чертой MEncoder является умение использовать преимущества вашей Linux-системы. Например, в качестве исходного файла можно использовать телевизионный вход или пропустить видеопоток через фильтр. Вы даже можете убрать черные края с широкоформатных пленок, используя команду ''crop''.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Подсказка месяца]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70</id>
		<title>LXF70</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70"/>
				<updated>2008-03-14T03:36:31Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Ответы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[Изображение:Lxf70.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LinuxFormat 70 (1), Сентябрь 2005 ==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Обзоры ===&lt;br /&gt;
* [[LXF70:Xandros business Desktop OS 3.0|Xandros Business Desktop 3.0]]&lt;br /&gt;
Промышленный дистрибутив на базе Debian.&lt;br /&gt;
* [[LXF70:OpenLaszlo|OpenLaszlo 3.0]]&lt;br /&gt;
Среда разработки графических интерфейсов на Flash.&lt;br /&gt;
* [[LXF70:Studio To Go!|Studio To Go!]]&lt;br /&gt;
Живой аудиодистрибутив.&lt;br /&gt;
* [[LXF70:Soul Ride|Soul Ride]]&lt;br /&gt;
Симулятор сноуборда.&lt;br /&gt;
* [[LXF70:Astaro Security Linux 6|Astaro Security Linux 6]]&lt;br /&gt;
Межсетевой экран на базе Linux.&lt;br /&gt;
&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
* [[LXF70:Сравнение|Текстовые редакторы]]&lt;br /&gt;
Том Вилкинсон (Tom Wilkinson) решил проверить широко распространённую в LXF теорию о том, что в наше время невозможно найти приличный текстовый редактор.&lt;br /&gt;
&lt;br /&gt;
=== Что за штука…? ===&lt;br /&gt;
* [[LXF70:Что за штука...|PDTP]]&lt;br /&gt;
Ничто не раздражает сильнее, чем поиск подходящего зеркала, но ознаменует ли PDTP конец эпохи bitTorrent?&lt;br /&gt;
&lt;br /&gt;
=== Специальный репортаж ===&lt;br /&gt;
* [[LXF70:Debian|Debian на перепутье]]&lt;br /&gt;
Что ждет самый свободный дистрибутив Linux в будущем?&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Beagle|Взять его!]]&lt;br /&gt;
Руководство по установке поисковой системы Beagle&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:BBC|Время отдыха в сети]]&lt;br /&gt;
Открытые технологии на службе у BBC&lt;br /&gt;
&lt;br /&gt;
=== Интервью ===&lt;br /&gt;
* [[LXF70:Интервью|Гаэль Дюваль]]&lt;br /&gt;
Создал дистрибутив Mandrake как ответвление от Red Hat в 1998 году и превратил проект в прибыльную компанию.&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
* [[LXF70:Gnome 2.10|Gnome 2.10]]&lt;br /&gt;
Энди Ченнелл рассказывает о лучших чертах Gnome 2.10&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:GIMP. Коррекция улыбки|Коррекция улыбки в Gimp]]&lt;br /&gt;
Не повезло с дантистом? Подправьте свою улыбку с помощью Gimp и Майкла Дж. Хэммела&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Переменные и операторы|Perl, часть 1. Переменные и операторы]]&lt;br /&gt;
Первый эпизод саги Марка Фиоретти расскажет вам, откуда берутся переменные и операторы языка Perl&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Сортируем наш код|Perl, часть 2. Сортируем наш код]]&lt;br /&gt;
Оберегайте друзей от регулярных выражений — по крайней мере, пока те не прочитают второй эпизод популярной саги&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion1|Subversion, часть 1]]&lt;br /&gt;
Собрались запустить свой проект? Грэм Моррисон расскажет вам, с чего начать&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion2|Subversion, часть 2]]&lt;br /&gt;
Репозитарий готов, но… что мне с ним делать? Ищите ответ здесь!&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:PHP. Загадка Монти Холла|PHP. Загадка Монти Холла]]&lt;br /&gt;
Математические загадки — удовольствие знатока и кошмар дилетанта. Кем из них окажется Пол Хадсон?&lt;br /&gt;
&lt;br /&gt;
=== Ответы ===&lt;br /&gt;
* [[LXF70:Ответы|Ответы]]&lt;br /&gt;
Наши постоянные эксперты разрешат самые сложные из ваших проблем.&lt;br /&gt;
* [[LXF70:Подсказка месяца|Подсказка месяца: Разберитесь с кодеками]]&lt;br /&gt;
* [[LXF70:Краткая справка|Краткая справка: SSH]]&lt;br /&gt;
* [[LXF70:Frequently Asked Questions|Frequently Asked Questions: Ядро]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Frequently_Asked_Questions</id>
		<title>LXF70:Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Frequently_Asked_Questions"/>
				<updated>2008-03-14T03:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация, оформление, категория&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions: Ядро =&lt;br /&gt;
&lt;br /&gt;
==== Как узнать, какая версия ядра используется в моей системе? ====&lt;br /&gt;
&lt;br /&gt;
Большая часть современных дистрибутивов построена на ядре 2.6, хотя некоторые все еще используют 2.4. Вы можете узнать версию ядра, работающего в вашей системе, с помощью команды uname. Введите:&lt;br /&gt;
 $ uname –a&lt;br /&gt;
Вы увидите строки, напоминающие приведенные ниже:&lt;br /&gt;
 Linux cr2 2.6.11.6 #1 SMP Mon&lt;br /&gt;
 Mar 28 18:48:32 BSt 2005 i686 GNu/Linux&lt;br /&gt;
Данная система работает с ядром 2.6.11.6, шестой ревизией версии 2.6.11. Создатели вашего дистрибутива могли внести в ядро свои изменения, так что его номер может не соответствовать простейшей схеме «2.6.x.y».&lt;br /&gt;
&lt;br /&gt;
==== Oткуда я могу загрузить ядро, и что получу конечном итоге? ====&lt;br /&gt;
&lt;br /&gt;
Вы можете загрузить tar-архив последней версии ядра с сайта Linux Kernel Archives, расположенного по адресу http://www.kernel.org. Скорее всего, вы захотите загрузить файл linux-2.6.11.6.tar.gz или аналогичный из каталога linux/pub/linux/kernel. В нем содержатся все исходные тексты ядра Linux соответствующей версии. Если в вашей системе уже установлено дерево исходных текстов ядра Linux, вы можете загрузить изменения (patch) между ним и следующей ревизией. Это избавит вас от необходимос ти загружать все дерево исходных текстов.&lt;br /&gt;
&lt;br /&gt;
==== Должен ли я использовать ядро, поставляемое в комплекте с моим дистрибутивом или жемогу собрать свое собственное? ====&lt;br /&gt;
&lt;br /&gt;
Ответ на этот вопрос лучше всего пояснить на примере. Red Hat распространяет ядра, на которые наложено множество исправлений, и некоторые из предлагаемых ими утилит не будут работать с ядрами, не содержащими данных изменений. аналогично, исправления сторонних разработчиков могут войти в конфликт с исходными текстами ядра Red Hat, поскольку они подразумевают наличие немодифицированного ядра.&lt;br /&gt;
&lt;br /&gt;
В случае, если вам не нужны специфические возможности ядра, отсутствующие в редакции Red Hat, лучше использовать ядра из состава вашего дистрибутива. Конечно, если вам не требуются никакие исправления, включенные в ядро разработчиками дистрибутива, чистое ядро (также называемое «vanilla kernel») должно прекрасно работать.&lt;br /&gt;
&lt;br /&gt;
==== Я получил tar-файл с моим ядром. Как мне скомпилировать его? ====&lt;br /&gt;
&lt;br /&gt;
Сборка ядра обычно производится в каталоге /usr/src/linux, поэтому перейдите в /usr/src и распакуйте ядро командой&lt;br /&gt;
 tar xzf ~/linux-2.6.11.6.tar.gz&lt;br /&gt;
После этого в каталоге linux будет содержаться исходный код ядра, предназначенного для компиляции.&lt;br /&gt;
&lt;br /&gt;
Стандартная последовательность настройки, сборки и установки ядра такова:&lt;br /&gt;
 cd linux&lt;br /&gt;
 make mrproper xconfig dep clean bzlilo&lt;br /&gt;
 modules modules_install&lt;br /&gt;
&lt;br /&gt;
В первую очередь, необходимо настроить ядро. Конфигурация по умолчанию, в принципе, работоспособна, но вам, вероятно, потребуется выбрать некоторые опции, для ваших устройств, таких как звуковые карты или интерфейсы SCSI. Сохраняя резервную копию старой версии ядра доступной для загрузки через LILO, вы можете без опаски экспериментировать с настройками, чтобы найти те, что обеспечивают необходимые возможности системы.&lt;br /&gt;
&lt;br /&gt;
Вызов bzlilo собирает ядро и копирует его в /vmlinuz. Чтобы установить новое ядро, выполните команду lilo. Необходимо также указать LILO использовать образ /vmlinuz вместо /boot/vmlinuz. При необходимости можно также скорректировать файлы Makefile ядра таким образом, чтобы образ устанавливался сразу же в каталог /boot.&lt;br /&gt;
&lt;br /&gt;
Последние два параметра команды make в приведенном выше примере создают подгружаемые модули и размещают их в соответствующем месте.&lt;br /&gt;
&lt;br /&gt;
После сборки ядра с поддержкой подгружаемых модулей, вы в любой момент можете изменить его конфигурацию, просто установив новый модуль.&lt;br /&gt;
&lt;br /&gt;
==== Могу ли я добавить в ядро новые возможности? ====&lt;br /&gt;
&lt;br /&gt;
Для ядра Linux имеется множество патчей, которые добавляют в него возможности, отсутствующие в стандартной версии. Один из основных проектов, распространяющих пакеты патчей к ядру — это WOLK (Working Overloaded Linux Kernel). Вместо того, чтобы накладывать исправления по одному, вы можете загрузить с WOLK (http://sf.net/projects/wolk) и применить к своему ядру один-единственный патч, объединяющий в себе множество более мелких исправлений.&lt;br /&gt;
&lt;br /&gt;
Алан Кокс (Alan Cox) поддерживает линейку ядер, известную как -ac. Эти ядра содержат некоторые функции, которые еще не включены в основную версию ядра Linux, а также базовые исправления для ошибок, обнаруженных в стандартном ядре. Многие люди используют ядра -ac вместо официальных, однако, как и в случае с ядрам, подготовленными разработчиками дистрибутивов, наложение некоторых патчей на ядра серии -ac может привести к конфликту.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Frequently Asked Questions]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0</id>
		<title>LXF70:Краткая справка</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0"/>
				<updated>2008-03-14T02:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Краткая справка: SSH =&lt;br /&gt;
В течении многих лет администраторы использовали для доступа к своим системам старый добрый telnet или даже rsh. По мере роста важности интернет-безопасности в глазах индивидуальных пользователей и корпораций, стало недопустимым использовать платформы и протоколы, применяющие аутентификацию по открытому тексту. В rsh, как и в telnet, обмен данными между клиентом и сервером происходит без какого-либо шифрования и верификации, так что атаки с использованием промежуточной системы, собирающей данные и подменяющей их нужными злоумышленнику, становятся реальной проблемой.&lt;br /&gt;
&lt;br /&gt;
Протокол SSH является прекрасной альтернативой, поскольку он применяет шифрование как на стадии аутентификации, так и в ходе всей терминальной сессии. SSH также может аутентифицировать пользователей не по паролям, а по ключам, так что пароль удаленной системы никогда не вводится на компьютере-клиенте. Это позволяет повысить безопасность в случаях, когда пароли могут оказаться скомпрометированными, так как авторизация по паролю может быть полностью заблокирована, что вынудит всех клиентов использовать ключи.&lt;br /&gt;
&lt;br /&gt;
Через SSH-соединение можно передавать другие TCP-сессии, шифруя всю проходящую по ним информацию — по сути, создать защищенный прокси-сервер. В ситуации, когда почтовый сервер недоступен или все, что вы можете — это установить исходящее SSH-соединение, передача TCP-сессии с SSH-сервера или изнутри сети, где он расположен, может помочь в решении проблем с локальными брандмауэрами или неправильными&lt;br /&gt;
настройками. Все, что вы посылаете через SSH, адресуется на TCP-порт в локальной системе, что позволяет обойтись без существенных изменений в конфигурации клиента.&lt;br /&gt;
&lt;br /&gt;
Клиенты SSH доступны практически для любой системы, которая может прийти вам в голову, в том числе, мобильных устройств и Windows.&lt;br /&gt;
&lt;br /&gt;
Стандартная реализация SSH для unix носит имя OpenSSH и входит практически в любой дистрибутив Linux. В мире Windows особенно популярна утилита PuttY, поддерживающая все возможности OpenSSH, включая переадресацию TCP-портов и авторизацию по ключу.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Краткая справка]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Frequently_Asked_Questions</id>
		<title>LXF70:Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Frequently_Asked_Questions"/>
				<updated>2008-03-14T02:56:25Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Ядро */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions: Ядро =&lt;br /&gt;
&lt;br /&gt;
''Как узнать, какая версия ядра используется в моей системе?''&lt;br /&gt;
&lt;br /&gt;
Большая часть современных дистрибутивов построена на ядре 2.6, хотя некоторые все еще используют 2.4. Вы можете узнать версию ядра, работающего в вашей системе, с помощью команды uname. Введите:&lt;br /&gt;
 $ uname –a&lt;br /&gt;
Вы увидите строки, напоминающие приведенные ниже:&lt;br /&gt;
 Linux cr2 2.6.11.6 #1 SMP Mon&lt;br /&gt;
 Mar 28 18:48:32 BSt 2005 i686 GNu/Linux&lt;br /&gt;
Данная система работает с ядром 2.6.11.6, шестой ревизией версии 2.6.11. Создатели вашего дистрибутива могли внести в ядро свои изменения, так что его номер может не соответствовать простейшей схеме «2.6.x.y».&lt;br /&gt;
&lt;br /&gt;
''Oткуда я могу загрузить ядро, и что получу конечном итоге?''&lt;br /&gt;
&lt;br /&gt;
Вы можете загрузить tar-архив последней версии ядра с сайта Linux Kernel Archives, расположенного по адресу http://www.kernel.org. Скорее всего, вы захотите загрузить файл linux-2.6.11.6.tar.gz или аналогичный из каталога linux/pub/linux/kernel. В нем содержатся все исходные тексты ядра Linux соответствующей версии. Если в вашей системе уже установлено дерево исходных текстов ядра Linux, вы можете загрузить изменения (patch) между ним и следующей ревизией. Это избавит вас от необходимос ти загружать все дерево исходных текстов.&lt;br /&gt;
&lt;br /&gt;
''Должен ли я использовать ядро, поставляемое в комплекте с моим дистрибутивом или жемогу собрать свое собственное?''&lt;br /&gt;
&lt;br /&gt;
Ответ на этот вопрос лучше всего пояснить на примере. Red Hat распространяет ядра, на которые наложено множество исправлений, и некоторые из предлагаемых ими утилит не будут работать с ядрами, не содержащими данных изменений. аналогично, исправления сторонних разработчиков могут войти в конфликт с исходными текстами ядра Red Hat, поскольку они подразумевают наличие немодифицированного ядра.&lt;br /&gt;
&lt;br /&gt;
В случае, если вам не нужны специфические возможности ядра, отсутствующие в редакции Red Hat, лучше использовать ядра из состава вашего дистрибутива. Конечно, если вам не требуются никакие исправления, включенные в ядро разработчиками дистрибутива, чистое ядро (также называемое «vanilla kernel») должно прекрасно работать.&lt;br /&gt;
&lt;br /&gt;
''Я получил tar-файл с моим ядром. Как мне скомпилировать его?''&lt;br /&gt;
&lt;br /&gt;
Сборка ядра обычно производится в каталоге /usr/src/linux, поэтому перейдите в /usr/src и распакуйте ядро командой&lt;br /&gt;
 tar xzf ~/linux-2.6.11.6.tar.gz&lt;br /&gt;
После этого в каталоге linux будет содержаться исходный код ядра, предназначенного для компиляции.&lt;br /&gt;
&lt;br /&gt;
Стандартная последовательность настройки, сборки и установки ядра такова:&lt;br /&gt;
 cd linux&lt;br /&gt;
 make mrproper xconfig dep clean bzlilo&lt;br /&gt;
 modules modules_install&lt;br /&gt;
&lt;br /&gt;
В первую очередь, необходимо настроить ядро. Конфигурация по умолчанию, в принципе, работоспособна, но вам, вероятно, потребуется выбрать некоторые опции, для ваших устройств, таких как звуковые карты или интерфейсы SCSI. Сохраняя резервную копию старой версии ядра доступной для загрузки через LILO, вы можете без опаски экспериментировать с настройками, чтобы найти те, что обеспечивают необходимые возможности системы.&lt;br /&gt;
&lt;br /&gt;
Вызов bzlilo собирает ядро и копирует его в /vmlinuz. Чтобы установить новое ядро, выполните команду lilo. Необходимо также указать LILO использовать образ /vmlinuz вместо /boot/vmlinuz. При необходимости можно также скорректировать файлы Makefile ядра таким образом, чтобы образ устанавливался сразу же в каталог /boot.&lt;br /&gt;
&lt;br /&gt;
Последние два параметра команды make в приведенном выше примере создают подгружаемые модули и размещают их в соответствующем месте.&lt;br /&gt;
&lt;br /&gt;
После сборки ядра с поддержкой подгружаемых модулей, вы в любой момент можете изменить его конфигурацию, просто установив новый модуль.&lt;br /&gt;
&lt;br /&gt;
''Могу ли я добавить в ядро новые возможности?''&lt;br /&gt;
&lt;br /&gt;
Для ядра Linux имеется множество патчей, которые добавляют в него возможности, отсутствующие в стандартной версии. Один из основных проектов, распространяющих пакеты патчей к ядру — это WOLK (Working Overloaded Linux Kernel). Вместо того, чтобы накладывать исправления по одному, вы можете загрузить с WOLK (http://sf.net/projects/wolk) и применить к своему ядру один-единственный патч, объединяющий в себе множество более мелких исправлений.&lt;br /&gt;
&lt;br /&gt;
Алан Кокс (Alan Cox) поддерживает линейку ядер, известную как -ac. Эти ядра содержат некоторые функции, которые еще не включены в основную версию ядра Linux, а также базовые исправления для ошибок, обнаруженных в стандартном ядре. Многие люди используют ядра -ac вместо официальных, однако, как и в случае с ядрам, подготовленными разработчиками дистрибутивов, наложение некоторых патчей на ядра серии -ac может привести к конфликту.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70</id>
		<title>LXF70</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70"/>
				<updated>2008-03-14T02:55:41Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Ответы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[Изображение:Lxf70.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LinuxFormat 70 (1), Сентябрь 2005 ==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Обзоры ===&lt;br /&gt;
* [[LXF70:Xandros business Desktop OS 3.0|Xandros Business Desktop 3.0]]&lt;br /&gt;
Промышленный дистрибутив на базе Debian.&lt;br /&gt;
* [[LXF70:OpenLaszlo|OpenLaszlo 3.0]]&lt;br /&gt;
Среда разработки графических интерфейсов на Flash.&lt;br /&gt;
* [[LXF70:Studio To Go!|Studio To Go!]]&lt;br /&gt;
Живой аудиодистрибутив.&lt;br /&gt;
* [[LXF70:Soul Ride|Soul Ride]]&lt;br /&gt;
Симулятор сноуборда.&lt;br /&gt;
* [[LXF70:Astaro Security Linux 6|Astaro Security Linux 6]]&lt;br /&gt;
Межсетевой экран на базе Linux.&lt;br /&gt;
&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
* [[LXF70:Сравнение|Текстовые редакторы]]&lt;br /&gt;
Том Вилкинсон (Tom Wilkinson) решил проверить широко распространённую в LXF теорию о том, что в наше время невозможно найти приличный текстовый редактор.&lt;br /&gt;
&lt;br /&gt;
=== Что за штука…? ===&lt;br /&gt;
* [[LXF70:Что за штука...|PDTP]]&lt;br /&gt;
Ничто не раздражает сильнее, чем поиск подходящего зеркала, но ознаменует ли PDTP конец эпохи bitTorrent?&lt;br /&gt;
&lt;br /&gt;
=== Специальный репортаж ===&lt;br /&gt;
* [[LXF70:Debian|Debian на перепутье]]&lt;br /&gt;
Что ждет самый свободный дистрибутив Linux в будущем?&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Beagle|Взять его!]]&lt;br /&gt;
Руководство по установке поисковой системы Beagle&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:BBC|Время отдыха в сети]]&lt;br /&gt;
Открытые технологии на службе у BBC&lt;br /&gt;
&lt;br /&gt;
=== Интервью ===&lt;br /&gt;
* [[LXF70:Интервью|Гаэль Дюваль]]&lt;br /&gt;
Создал дистрибутив Mandrake как ответвление от Red Hat в 1998 году и превратил проект в прибыльную компанию.&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
* [[LXF70:Gnome 2.10|Gnome 2.10]]&lt;br /&gt;
Энди Ченнелл рассказывает о лучших чертах Gnome 2.10&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:GIMP. Коррекция улыбки|Коррекция улыбки в Gimp]]&lt;br /&gt;
Не повезло с дантистом? Подправьте свою улыбку с помощью Gimp и Майкла Дж. Хэммела&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Переменные и операторы|Perl, часть 1. Переменные и операторы]]&lt;br /&gt;
Первый эпизод саги Марка Фиоретти расскажет вам, откуда берутся переменные и операторы языка Perl&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Сортируем наш код|Perl, часть 2. Сортируем наш код]]&lt;br /&gt;
Оберегайте друзей от регулярных выражений — по крайней мере, пока те не прочитают второй эпизод популярной саги&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion1|Subversion, часть 1]]&lt;br /&gt;
Собрались запустить свой проект? Грэм Моррисон расскажет вам, с чего начать&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion2|Subversion, часть 2]]&lt;br /&gt;
Репозитарий готов, но… что мне с ним делать? Ищите ответ здесь!&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:PHP. Загадка Монти Холла|PHP. Загадка Монти Холла]]&lt;br /&gt;
Математические загадки — удовольствие знатока и кошмар дилетанта. Кем из них окажется Пол Хадсон?&lt;br /&gt;
&lt;br /&gt;
=== Ответы ===&lt;br /&gt;
* [[LXF70:Ответы|Ответы]]&lt;br /&gt;
Наши постоянные эксперты разрешат самые сложные из ваших проблем.&lt;br /&gt;
* [[LXF70:Краткая справка|Краткая справка: SSH]]&lt;br /&gt;
* [[LXF70:Frequently Asked Questions|Frequently Asked Questions: Ядро]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8B</id>
		<title>LXF70:Ответы</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8B"/>
				<updated>2008-03-14T02:55:04Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Вопрос? Ответ! =&lt;br /&gt;
''Если вы завязли в какой-то проблеме и ничего не помогает, почему бы не написать нам? Наши постоянные эксперты разрешат даже самые сложные из ваших проблем.''&lt;br /&gt;
&lt;br /&gt;
=== Магия пасует ===&lt;br /&gt;
'''В:''' ''Не так давно я установил Fedora Core 3 на свой ноутбук Dell 510M в режиме двойной загрузки с Windows XP и это привело к проблемам. Один из разделов Linux (/) практически полон, тогда как другой (/home1) почти пуст.''&lt;br /&gt;
&lt;br /&gt;
''Перед установкой FC 3 я изменил размер раздела XP при помощи Partition Magic 8.0, но когда я попробовал использовать эту программу для изменения размера раздела Linux (на другой машине), она привела его в непригодное состояние (система не загружалась и мне пришлось переустанавливать все с нуля), так что у меня нет особого желания применять PM еще раз.''&lt;br /&gt;
&lt;br /&gt;
''Я установил на своем ноутбуке QtParted, но он не позволяет работать с подмонтированными разделами. Я могу прочитать параметры, но не изменить их. Каким образом можно переместить неиспользуемое пространство с раздела /home1 в /, не уничтожая инсталляцию Linux и не рискуя потерять данные? Я потратил много времени, устанавливая и конфигурируя все, что нужно, и я нисколько не хочу начинать все с начала.''&lt;br /&gt;
Винсент Борро&lt;br /&gt;
&lt;br /&gt;
'''О:''' Поскольку вы используете разделы, а не тома, изменить их размер, не трогая данные будет весьма непросто. Правильным решением будет произвести резервное копирование данных перед изменением таблицы разделов или даже перенести все необходимое на второй диск (или на раздел Windows, если он не использует NTFS), а затем начать все сначала и переустановить Linux.&lt;br /&gt;
&lt;br /&gt;
Я бы порекомендовал создать отдельный раздел /home, в добавление к обязательному корневому (/) и разделу подкачки еще во время первой установки Linux. Таким образом, вы разграничите данные и системные файлы и сможете обновлять или переустанавливать ОС, не рискуя потерять важную информацию.&lt;br /&gt;
&lt;br /&gt;
Если QtParted не работает, вы можете попробовать урезать файловую систему ext2 или ext3 с помощью утилиты resize2fs, а затем изменить структуру разделов. К сожалению, сказать наверняка, что у вас получится корректно разместить раздел в данном случае, нельзя.&lt;br /&gt;
&lt;br /&gt;
Чтобы установить размер файловой системы на /dev/hda1 равным 512 Мб, следует подать следующую команду (выполняется от имени root):&lt;br /&gt;
 resize2fs /dev/hda1 512M&lt;br /&gt;
Не забывайте отмонтировать раздел перед любыми изменениями, затрагивающими структуру файловой системы.&lt;br /&gt;
''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Ловушка для Radeon ===&lt;br /&gt;
'''В:''' ''Я столкнулся с проблемой при использовании дистрибутива Linspire 5.0 Live. Я могу запустить Live CD, но когда я пытаюсь начать установку, введя команду startx в момент, когда появляется курсор и экран становится серым — все застывает. Я не знаю, что делать, чтобы заставить его работать. Буду благодарен за любую помощь. Вот конфигурация моего компьютера:''&lt;br /&gt;
&lt;br /&gt;
Pentium 4 3.00 GHz&amp;lt;br /&amp;gt;&lt;br /&gt;
512MB DDR2 RAM&amp;lt;br /&amp;gt;&lt;br /&gt;
Жесткий диск 200GB ATA&amp;lt;br /&amp;gt;&lt;br /&gt;
Материнская плата ABIt AA8 DuraMAX&amp;lt;br /&amp;gt;&lt;br /&gt;
Видеокарта AtI PCIe Radeon vGuru series RX600.''&lt;br /&gt;
&lt;br /&gt;
''Linspire предоставляет голосовое руководство о том, как работать в Linux — но не о том, как установить его!''&lt;br /&gt;
PJ&lt;br /&gt;
&lt;br /&gt;
'''О:''' Похоже, что Linspire не нравится ваша видеокарта. Возможно, она некорректно распознается или не поддерживается вовсе.&lt;br /&gt;
&lt;br /&gt;
Поскольку вы используете высококлассный и достаточно новый чипсет Radeon, существует вероятность того, что Linspire даже не подозревает о его существовании. Свежие драйвера видеокарт для X появляются сравнительно регулярно, но некоторые дистрибутивы отстают на несколько ревизий, а другие обновляются не так часто.&lt;br /&gt;
&lt;br /&gt;
Вы можете попробовать другой дистрибутив Linux, например SuSe (для которого ваша карта помечена как полностью поддерживаемая в версиях 9.2 и 9.3), Fedora или Mandriva, просто чтобы проверить, как они обходятся с вашим видеоадапетром. Эти дистрибутивы, как правило, обновляются чаще Linspire. Кроме того, они обладают лучшей поддержкой со стороны сообщества и раньше подхватывают различные новшества.&lt;br /&gt;
&lt;br /&gt;
Для Linspire также выпускаются обновления, однако, если вы не можете запустить графическую среду, ими будет тяжело воспользоваться.&lt;br /&gt;
''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Отправляемся в вояж ===&lt;br /&gt;
'''В:''' ''Я попробовал Knoppix Live CD с обложки вашего журнала [LXF63] и он определил практически все оборудование, кроме ADSL-модема — на мой взгляд, самого полезного устройства на милю вокруг.''&lt;br /&gt;
&lt;br /&gt;
''Я использую модем Bt Voyager 100 uSB ADSL Modem, который достался мне, когда я впервые подключался к AOL. Я использую его и с моим текущим провайдером, Central Point. Я не имею понятия, куда идти за драйверами к модему и как их устанавливать.''&lt;br /&gt;
&lt;br /&gt;
''Те драйвера, что у меня уже есть, запускаются из диалога для ввода пароля. Linux-драйвера будут вести себя так же? Я бы хотел настроить этот модем в Fedora Core или SuSe.''&lt;br /&gt;
Джеймс&lt;br /&gt;
&lt;br /&gt;
'''О:''' Voyager 100 — популярный модем, однако, он не поддерживается во многих дистрибутивах Linux. Впрочем, вы можете загрузить драйвера, которые будут работать с большинством систем.&lt;br /&gt;
&lt;br /&gt;
Я рекомендую вам посетить страницу http://eciadsl.flashtux.org/download.php?lang=en и прокрутить ее вниз до секции eciAdsl Nortek. Загрузите файл .bz2 и перезагрузитесь в Linux. Скопируйте файл .bz2 куда-нибудь в каталог /usr/src и введите следующие команды в ответ на приглашение оболочки:&lt;br /&gt;
&lt;br /&gt;
 tar -jxvf eciadsl-usermode-0.10-nortek-alpha.tar.bz2&lt;br /&gt;
 cd eciadsl-usermode-0.10-nortek-alpha&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
 make cfg&lt;br /&gt;
 cp GS7470_SynchFiles/gs7470_synch01*.bin /etc/eciadsl&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо сконфигурировать драйвер с помощью настроек, предоставленных вам Bt. VPI равняется 0, VCI — 38, а пароль может быть любым. Когда вам будет предложено выбрать модем, введите 10 и укажите GS7470 в качестве чипсета. В качестве файла синхронизации используйте gs7470_synch01.bin. В архиве содержится дополнительная информация на тот случай, если у вас возникнут проблемы, однако, приведенных здесь сведений должно вполне хватить для того, чтобы все работало. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Приручаем Apache ===&lt;br /&gt;
'''В:''' ''Я новичок в Linux и в настоящий момент тестирую дистрибутив Mandriva, собираясь перейти на него с Windows. В моей инсталляции Windows установлены Apache, PHP и MySQL — я использую их для локального тестирования web-сайтов перед публикацией онлайн. Все работает прекрасно. В Linux, Apache стартует автоматически (я заметил это в предыдущей инсталляции Mandrake). Я также установил PHP и MySQL.''&lt;br /&gt;
&lt;br /&gt;
''До сих пор все было хорошо. Проблема состоит в том, что все мои данные расположены на диске FAt32 / Windows и я не хочу переносить их на раздел Linux, поскольку тогда я потеряю возможность работать с ними из Windows. Я хочу узнать, можно ли настроить Apache из Linux на доступ к Windows-разделу и что конкретно я должен написать в конфигурационном файле httpd.conf.''&lt;br /&gt;
&lt;br /&gt;
''Я обратил внимание, что httpd.conf для Linux гораздо короче, чем для Windows, и поэтому я не могу решить, как лучше вносить изменения в данный файл. Редактирование файлов с символом перевода строки в стиле Linux из Windows — не проблема, у меня есть программа, которая читает и пишет текстовые файлы как в формате Windows, так и в формате Linux.''&lt;br /&gt;
C форумов LXF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''О:''' Вы можете отредактировать конфигурационный файл httpd.conf и изменить параметр DocumentRoot так, чтоб он указывал на ваш web-каталог, находящийся на смонтированном разделе FAt32. Чтобы узнать, в какую точку смонтирована эта файловая система, используйте команду mount. Имейте в виду, что Apache не особенно любит файлы, в именах которых используются пробелы, а в Linux, кроме того, чувствителен к регистру символов. Таким образом, ваши существующие web-сайты могут не работать в Linux в точности, как в Windows.&lt;br /&gt;
&lt;br /&gt;
Файл httpd.conf расположен в каталоге /etc/apache. В случае с Linux он, как правило, хорошо прокомментирован, так что вы сможете легко выставить нужные параметры, не особенно заботясь о том, что они делают. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Пинг-понг ===&lt;br /&gt;
'''В:''' ''В моей сети три машины и я никак не могу настроить взаимодействие между ними. Назовем их так:''&lt;br /&gt;
&amp;lt;br /&amp;gt;''LinBox под управлением Mandrake 10.0''&lt;br /&gt;
&amp;lt;br /&amp;gt;''WinBox под управлением Windows 2000''&lt;br /&gt;
&amp;lt;br /&amp;gt;''WebBox под управлением Mandrake 9.1 — внутренний web-сервер.''&lt;br /&gt;
&lt;br /&gt;
''Все выглядит так, как будто сеть работает лишь частично. Связь между компьютерами с Windows и Linux нормальная — ping проходит как от одной машины до другой, так и от WebBox до каждой из них. Однако, в обратную сторону это не верно — WebBox отказывается отвечать на запросы.''&lt;br /&gt;
&lt;br /&gt;
''Тем не менее, я могу открыть страницу по умолчанию, предоставляемую Apache на WebBox http://192.168.0.3:80. LinBox и WinBox видны в LinNeighborhood с любого из трех компьютеров, но WebBox опять же отсутствует. Все машины принадлежат одной рабочей группе — INteGRANe. Вы можете мне что-нибудь посоветовать?''&lt;br /&gt;
Майк&lt;br /&gt;
&lt;br /&gt;
'''О:''' Похоже, ваш web-сервер не настроен на работу в сети Windows, хотя его конфигурация IP в порядке. Возможно, в системе запущен&lt;br /&gt;
межсетевой экран, который блокирует SMB-трафик, приходящий из сети.&lt;br /&gt;
&lt;br /&gt;
Чтобы проверить это предположение, выполните команду iptables -nvL.&lt;br /&gt;
&lt;br /&gt;
Если вы можете «дозвониться» до системы (с помощью ping) по ее IP-адресу, в нашем случае — 192.168.0.3, я не думаю, что проблема связана с таблицей маршрутизации. Тот факт, что вы можете получить доступ напрямую к web-серверу почти наверняка означает, что с настройками IP все в порядке.&lt;br /&gt;
&lt;br /&gt;
Я предлагаю сравнить файлы smb.conf на LinBox и WebBox, чтобы установить все различия в настройках Samba и удостовериться, что Samba корректно работает на вашем сервере. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Какой CMS выбрать? ===&lt;br /&gt;
'''В:''' ''Штат компании, в которой я работаю, составляет примерно 75 человек, принадлежащих разным департаментам. Часть из них технически грамотна, часть — не очень. Мне нужна система управления содержимым (CMS), в которой будут хранится те данные, доступ к которым требуется всем сотрудникам нашей организации. В идеале, технические затраты на их ввод должны быть минимальными, например, текстовые файлы или документы Word. Вы можете порекомендовать мне что-нибудь?''&lt;br /&gt;
Lindsay&lt;br /&gt;
&lt;br /&gt;
'''О:''' На самом деле, не так давно я решал эту задачу и хочу поделиться с вами своими соображениями. Mambo (доступен с&lt;br /&gt;
http://www.mamboserver.com) выглядит весьма привлекательно: это самая популярная, самая универсальная и самая гибкая CMS-система. Из&lt;br /&gt;
недостатков следует отметить сложность освоения и, насколько мне известно, необходимость править программный код в ходе настройки и персонализации системы.&lt;br /&gt;
&lt;br /&gt;
Я не буду говорить о стандартных решениях — PHP-Nuke, Postnuke и других. Про них можно прочитать в любом другом месте. Я бы хотел отдельно упомянуть здесь twiki (http://twiki.org), поскольку это небольшая симпатичная система, хотя до настройки она и выглядит необъятной с точки зрения неспециалиста.&lt;br /&gt;
&lt;br /&gt;
Впрочем, моя любимая CMS-система — это exponent (http://www.exponentcms.org). Она самая гибкая, простая и понятна даже неопытному глазу. Просто создайте в ней непривилегированного пользователя, зайдите в систему от его имени и вы увидите, что режим редактирования здесь совсем не такой пугающий, как в других продуктах. Напротив, он весьма интуитивен.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание — я предлагаю вам заглянуть на http://www.opensourcecms.com. Здесь можно опробовать в действии различные web-системы. На сайте можно прочитать отзывы о продуктах и посмотреть их рейтинги. Это поможет ИТ-менеджерам составить собственное мнение по данному вопросу. ''Г. Х.''&lt;br /&gt;
&lt;br /&gt;
=== Передача файлов ===&lt;br /&gt;
'''В:''' ''У меня есть сетевой web-сервер, на котором установлен Apache, и я планирую использовать его для тестирования web-сайтов. Я могу получить доступ к web-страницам по сети, через порт 80, правда, в настоящий момент там наличествует лишь страница по умолчанию.''&lt;br /&gt;
&lt;br /&gt;
''Каким образом лучше выгружать файлы на сервер? Следует ли мне установить FTP и, если да, то как это сделать?''&lt;br /&gt;
Майк Дэвьес&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''О:''' Существует несколько способов настройки удаленного доступа к файлам в Linux, но самым популярным из них является протокол SSH. SSH предоставляет защищенный канал для выполнения команд оболочки или передачи файлов, но он сопряжен с некоторыми накладными расходами, обусловленными операциями дешифрования и распаковки данных (подробнее см. «[[#Неспешное резервирование |Неспешное резервирование]]»). Конечно, в сетях общего пользования безопасность является очень важным аспектом, поэтому защищенность SSH перевешивает этот недостаток. Реализация клиента SSH существует и для Windows. С его помощью вы также можете выполнять команды оболочки и передавать файлы.&lt;br /&gt;
&lt;br /&gt;
Если речь идет о рабочей станции и сервере Linux, расположенных в локальной сети, вы можете использовать NFS для предоставления файловой системы сервера в совместный доступ. В этом случае с ней можно будет работать точно так же, как если бы она находилась непосредственно на клиентском компьютере. Как правило, выбор NFS является предпочтительным, поскольку данная система работает очень быстро. Однако, если речь идет о более-менее публичной сети, это решение небезопасно.&lt;br /&gt;
&lt;br /&gt;
В случае клиента на базе Microsoft Windows, вы всегда можете установить на Linux сервер и обращаться к web-директориям как к обычным разделяемым ресурсам. Копирование данных туда-сюда не вызовет затруднений, однако, придется немного постараться, чтобы настроить все именно так, как вам нужно. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Неспешное резервирование ===&lt;br /&gt;
'''В:''' ''Я пытаюсь настроить unison, чтобы он синхронизировал процесс резервного копирования в небольшой локальной сети. Все работает нормально, за исключением того, что скорость передачи данных заметно ниже нормальной пропускной способности для данной сети.''&lt;br /&gt;
&lt;br /&gt;
''Оба компьютера используют unison на базе SuSe 9.2 с соединением по SSH. Скорость передачи данных составляет около 80Кб/сек, при условии, что NFS работает на 10Мб/сек, а номинальная пропускная способность LAN — 100Мб/сек.''&lt;br /&gt;
&lt;br /&gt;
''Падение производительности связано с SSH или с unision? Если ли возможность «подкрутить» что-нибудь, чтобы исправить ситуацию?''&lt;br /&gt;
Нейл льюис&lt;br /&gt;
&lt;br /&gt;
'''О:''' В зависимости от скорости систем, передающих данные, затраты на шифрование могут привести к существенному снижению производительности, однако, для современных рабочих станций и серверов это вряд ли будет заметно.&lt;br /&gt;
&lt;br /&gt;
Однако, когда вы получаете доступ к носителю информации и, возможно, одновременно сжимаете его содержимое, выполнение программ может замедлиться. 80Кб/сек — это очень мало и мы не думаем, что здесь в чем-то повинен SSH. Попробуйте запустить unison поверх rsh или rsync и посмотрите, не станет ли система от этого живее. Чтобы определиться с «виной» SSH, можно также попробовать скопировать напрямую с помощью соответствующих утилит такой же объем данных, как и при резервном копировании. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Кто я? Где я? ===&lt;br /&gt;
'''В:''' ''У меня есть сервер Samba, прекрасно работающий под управлением Fedora Core 3. Я решил попробовать установить еще один сервер на основе Debian и подготовил очень простую систему из Debian Stable и Samba. Разделяемый ресурс для хранения данных работает хорошо, но я не могу просмотреть его. у меня получается открыть ресурс по его IP-адресу, так что, похоже, это проблема NetBIOS. Я не понимаю этого, поскольку неоднократно сравнивал файлы smb.conf из FC3 и Debian. Единственное отличие состоит в том, что Debian использует доменную аутентификацию и я настроил его не вручную, как было в Fedora, а с помощью SWAT.''&lt;br /&gt;
&lt;br /&gt;
''Я также обнаружил, что не могу «прозвонить» из Fedora (с помощью ping) никакую из Windows-машин по ее имени хоста, хотя они могут сделать то же самое по моему имени. В обеих системах запущены nmbd и smbd, кроме того, все они имеют установленные имена, равно как и другие сетевые настройки (IP, шлюз, широковещательный адрес, и т. д.).''&lt;br /&gt;
Взято с форумов LXF&lt;br /&gt;
&lt;br /&gt;
'''О:''' Вы всегда можете добавить адрес Linux-машины в файл hosts в Windows, который можно найти с помощью функции поиска. В нем можно указать соответствие имен хостов IP-адресам, специфичным для вашей сети. Даный механизм будет работать даже в том случае, если узел будет недоступен по NetBIOS.&lt;br /&gt;
&lt;br /&gt;
Вы также можете добавить нижеследующий параметр в глобальную секцию вашего файла smb.conf. Конечно, необходимо следить за тем, чтобы его значение было уникальным для каждого Samba-сервера.&lt;br /&gt;
 netbios name = SambaServer&lt;br /&gt;
''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Без границ ===&lt;br /&gt;
'''В:''' ''Я бы хотел использовать HTTP для выгрузки на сервер крупных файлов (свыше 200Мб), поскольку некоторые из наших клиентов не могут использовать FTP в силу установленных брандмауэров. В качестве обработчика будет использоваться сценарий Perl или PHP. Какие проблемы могут возникнуть у Apache при «бомбардировании» подобным количеством трафика от случая к случаю или даже постоянно? Может быть, необходимо произвести тюнинг сервера или внести какиенибудь дополнения в его конфигурацию?''&lt;br /&gt;
Джон Мойлэн&lt;br /&gt;
&lt;br /&gt;
'''О:''' В самом деле, в этой схеме присутствует ряд настраиваемых ограничений на максимальный размер файла. Вам следует обратить особое внимание на настройки Apache (хотя, начиная с версии 2.0, по умолчанию они установлены в бесконечность), PHP и Perl. Основным ограничением для Apache в большинстве случаев, связанных с закачкой файлов, является потребление памяти и время работы процесса httpd. Последнее определяет количество запросов, которые сможет обработать httpd, как из-за ограничений на максимальное число процессов, так и из-за ограничений на отводимый им объем памяти.&lt;br /&gt;
&lt;br /&gt;
Удостоверьтесь также, что вы не предлагаете возможность выгрузки по SSL, чтобы избежать накладных расходов, связанных с шифрованием. используя Perl, разделите процесс (сделайте вызов fork), чтобы освободить процесс httpd и предоставить дочернему процессу возможность завершить начатую работу. Не могу сказать ничего определенного насчет PHP, поскольку я не использовал его какое-то время. ''Г. Х.''&lt;br /&gt;
&lt;br /&gt;
=== Смотри, но не трогай ===&lt;br /&gt;
'''В:''' ''Я открыл для себя прелести Knoppix, ожидая прибытия моего нового ПК. Жесткий диск моей Linux-машины подключен как /dev/hdb и все данные находятся на нем. Я хотел скопировать несколько файлов с /mnt/hdb7 в /mnt/hda5, но получил сообщение об ошибке: «Только для чтения». Я сделал su и проверил файл /etc/fstab, а также права доступа — все в порядке.''&lt;br /&gt;
&lt;br /&gt;
''Я никогда не работал с Knoppix раньше, просто решил опробовать новинку. Теперь, когда я понял, что это действительно полезная вещь, я хочу знать, как получить от нее максимум. уверен, я не заметил чего-то весьма очевидного.''&lt;br /&gt;
Взято с форумов LXF&lt;br /&gt;
&lt;br /&gt;
'''О:''' Стандартная философия Knoppix — давать пользователям минимум прав на запись, поэтому существующие разделы монтируются в режиме «только для чтения» или не монтируются вовсе. Щелкнув правой кнопкой мыши по пиктограмме и открыв пункт меню «устройство», вы можете снять флажок напротив атрибута «Read Only». После этого, раздел может быть перемонтирован в режиме чтения-записи (для уже смонтированных разделов необходимо предварительно выполнить команду «unmount»).&lt;br /&gt;
&lt;br /&gt;
Внимание: попытка записи на раздел NTFS может привести к потере данных, поскольку Linux не полностью поддерживает эту файловую систему! Однако, запись на разделы DOS и FAT32 вполне безопасна. Команда&lt;br /&gt;
 mount -o remount,rw /mnt/&amp;lt;раздел&amp;gt;&lt;br /&gt;
позволяет перемонтировать раздел в режиме чтения-записи прямо из консоли. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Уголок писателя ===&lt;br /&gt;
'''В:''' ''Я использую внешний жесткий диск Lacie uSB2 160Гб, отформатированный как первичный раздел FAT32. Когда я подсоединяю этот диск, на рабочем столе появляется пиктограмма отмонтированного устройства, которое прекрасно монтируется при щелчке мышью. Однако, я ничего не могу записать на него. Я проверил все относящиеся к делу права доступа и не нашел причин, препятствующих записи — но Linux, тем не менее, не позволяет мне этого. В идеале я хотел бы просто поместить нужную запись в /etc/fstab. Я пробовал такой вариант:''&lt;br /&gt;
 /dev/sdb1 /mnt/LACIe vfat 0 0&lt;br /&gt;
''Я даже пытался указать опции fmask=775 and mask=775, но все равно ничего не получилось. Кроме того, когда я смонтировал sdb1 в /mnt/LaCie, автоматическая uSB-пиктограмма «испортилась», поскольку она собиралась смонтировать это же самое устройство в /media/sdb1.''&lt;br /&gt;
&lt;br /&gt;
''Я использую Kubuntu и KDe 3.4'' Майк Смит&lt;br /&gt;
&lt;br /&gt;
'''О:''' Попробуйте включить в fstab опцию user, позволяющую монтировать диск непривилегированному пользователю. Это позволит последнему читать и писать данные на устройство. Кроме этого, можно использовать параметры uid= и gid=, чтобы указать для диска значения UID/GID по умолчанию, хотя для определенных типов файловых систем, в том числе, ext3 и vfat, это не имеет никакого значения. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Защищенное соединение ===&lt;br /&gt;
'''В:''' ''Я настраиваю межсетевой экран, интерфейс eth0 которого подключен к интернету, а eth1 — к локальной сети (172.16.2.0). Я разместила следующее правило, предотвращающее доступ к компьютеру внутренней сети (172.16.2.120) через брандмауэр по протоколу SSH:''&lt;br /&gt;
 iptables -A FORWARD -p tcp -s 0/0 -d 172.16.2.120 --dport 22 -j DROP&lt;br /&gt;
''Однако, это правило не блокирует подключения с других компьютеров той же подсети. Я попробовала другие варианты, и даже пыталась указывать индивидуальные адреса отправителейлокальной подсети, запрещать весь SSH-трафик к нужному мне компьютеру или изменять политику FORWARD на DROP.''&lt;br /&gt;
 iptables -A FORWARD -p tcp -s 172.16.2.0/24 -d 172.16.2.120 --dport 22 -j DROP&lt;br /&gt;
 iptables -A FORWARD -p tcp -s 172.16.2.220 -d 172.16.2.120 --dport 22 -j DROP&lt;br /&gt;
 iptables -A FORWARD -p tcp -d 172.16.2.120 --dport 22 -j DROP&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
''Но я все равно могу подключиться к 172.16.2.120 с другого компьютера локальной подсети. Я читала и читала документацию до посинения, но так и не смогла понять, почему это не работает.''&lt;br /&gt;
Missy&lt;br /&gt;
&lt;br /&gt;
'''О:''' Поскольку SSH-соединение устанавливается между двумя компьютерами локальной сети, трафик не идет через брандмауэр. Таким образом, пакеты никогда не просматриваются вашим межсетевым экраном. Если вы хотите запретить доступ по SSH, вам придется настроить локальный межсетевой экран на сервере, где он запущен.&lt;br /&gt;
&lt;br /&gt;
Альтернативным вариантом, если у вас имеется свободная сетевая карта, может стать разбиение сети на две секции с последующим соединением их при помощи Linux-пакета bridge-utils. В этом случае вы сможете фильтровать на межсетевом экране трафик, передаваемый между двумя сегментами сети, хотя фактически маршрутизации не будет. Подробную информацию по этому вопросу можно найти http://bridge.sf.net. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
=== Снова, снова и снова… ===&lt;br /&gt;
'''В:''' ''У меня дома есть сеть из двух компьютеров, один работает под управлением Windows XP, а другой — Mandrake 10.1. Машина с Mandrake выполняет роль сервера для Windows и поддерживает соединение с интернетом.''&lt;br /&gt;
&lt;br /&gt;
''Проблема состоит в том, что каждый раз, после подключения к интернету, я должен вводить следующие три команды в режиме su:''&lt;br /&gt;
 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 route add default ppp0&lt;br /&gt;
''В каких файлах мне следует разместить эти команды, чтобы не приходилось каждый раз набирать их вручную?''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Добавив правило iptables, можно вызвать сценарий /etc/init.d/iptables save, который сохранит настройки iptables таким образом,&lt;br /&gt;
что они будут восстановлены после перезагрузки.&lt;br /&gt;
&lt;br /&gt;
Маршрутизация IP включается в файле /etc/sysctl.conf. Добавьте в него строку ‘net.ipv4.ip_forward = 1’ и маршрутизация будет автоматически включена после перезагрузки системы.&lt;br /&gt;
&lt;br /&gt;
Что же касается маршрута по умолчанию через ppp0, вам следует посмотреть настройки вашей программы дозвона. Обычно они позволяют автоматически создать данный маршрут после установки модемного соединения. Вообще говоря, такое поведение трудно подавить, поэтому вам следует проверить файлы журналов, чтобы выяснить, почему маршрут по умолчанию не создается. ''Д. К.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Ответы]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC_%D0%BD%D0%B0%D1%88_%D0%BA%D0%BE%D0%B4</id>
		<title>LXF70:Perl. Сортируем наш код</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC_%D0%BD%D0%B0%D1%88_%D0%BA%D0%BE%D0%B4"/>
				<updated>2008-03-14T02:51:13Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Perl. Сортируем наш код =&lt;br /&gt;
Часть 2. ''Напуганы непостижимыми операторами Perl и регулярными выражениями? Еще больше напуганы словом «непостижимые»? '''Марк Фиоретти''' ('''Marco Fioretti''') может всё объяснить!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Перед тем, как отправиться в путешествие по королевству Perl, вы должны запомнить три типа переменных: скаляр, массив и хэш. Отмеченные символом $ скаляры содержат один кусочек информации, например строку. В нашем втором руководстве мы узнаем, как работать с более сложными величинами, массивами и хэшами, а затем покажем вам настоящую черную магию Perl — регулярные выражения.&lt;br /&gt;
&lt;br /&gt;
=== Сортировка и перечисление ===&lt;br /&gt;
Вы помните, как массивы упорядочивают скаляры? Оператор списка Perl действует похожим образом. Это безымянная последовательность скаляров в круглых скобках. Хорошими вариантами использования оператора списка является присвоение значений двум или более переменным в одной инструкции или обмен значениями переменных тем или иным способом.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
($X,$Y,$Z) = ($Y,$Z,$X); # Circular shift&lt;br /&gt;
($Name,$Surname,$Phone) = ('John', 'Smith',5556791);&lt;br /&gt;
($DARTH_VADER,@JEDI) = ('Anakin Skywalker', 'Yoda', 'Obi-Wan', 'Mace Windu');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка |&lt;br /&gt;
Заголовок=Подсказка |&lt;br /&gt;
Содержание='''Подсчёт числа элементов массива'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Как можно узнать, сколько элементов содержится в массиве или хэше? Очень просто, присвоить их скалярной переменной! Поскольку она может содержать только одно число, Perl поместит туда число элементов массива. Тот же способ работает с хэшами. Функция keys возвращает массив, содержащий только ключи хэша, так что его размер можно узнать следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$HOW_MANY_JEDI = @JEDI;&lt;br /&gt;
$HOW_MANY_ITEMS_INTO_AN_HASH = keys %SOME_HASH;&lt;br /&gt;
&amp;lt;/source&amp;gt; |&lt;br /&gt;
Ширина=50%&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Две первые строчки говорят сами за себя. В третьей строки список из левой части присваивания состоит из скаляра ($DARTH_VaDer) и именованного массива (@JEDI). Все знают, что случится после такого присвоения: на Тёмную Сторону Силы юный Энакин перейдёт в одиночестве. И поскольку вторым элементом списка является массив @JEDI, все остальные рыцари из правой части выражения попадут в него, в том же самом порядке.&lt;br /&gt;
&lt;br /&gt;
Давайте теперь посмотрим на функцию splice(), которая используется для удаления, добавления или замены элементов массива. Для начала определим несколько планет:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
@STAR_WARS_PLANETS = ('Naboo', 'Tatooine', 'Geonosis');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используем splice() для того, чтобы добавить Coruscant и Alderaan сразу после Tatooine:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
splice (@STAR_WARS_PLANETS, 2,0, ('Coruscant', 'Alderaan'));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первым аргументом этой функции является имя массива, STAR_WARS_PLANETS. Затем идёт индекс элемента (считая с нуля!), с которого мы хотим начать склейку, в нашем случае это Tatooine. Третьим параметром является число элементов для удаления. Сейчас мы не хотим ничего удалять, нам надо только добавить несколько планет, поэтому в качестве третьего параметра передается «0». Последний, необязательный элемент — это список, который будет добавлен в позицию, номер которой вы только что указали. Если этот агрумента не указан, то splice() не добавит в массив ничего.&lt;br /&gt;
&lt;br /&gt;
Если вы хотите упорядочить содержимое массива в алфавитном порядке, то вам понадобится функция sort(). По умолчанию она рассматривает содержимое переданного массива как строки, даже если там содержатся числа. Например, если вы введёте в командной строке следующее выражение:&lt;br /&gt;
 perl -e &amp;quot;@A_LIST = ('Dominions', 180, 3, '10, Downing St.','Admiralty'); \&lt;br /&gt;
     print join( \&amp;quot;\n\&amp;quot;, sort @A_LIST), \&amp;quot;\n\&amp;quot;;&amp;quot;&lt;br /&gt;
то получите отсортированный по алфавиту список:&lt;br /&gt;
 10, Downing St.&lt;br /&gt;
 180&lt;br /&gt;
 3&lt;br /&gt;
 Admiralty&lt;br /&gt;
 Dominions&lt;br /&gt;
Однако функция sort() может руководствоваться и другими критериями:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
@SORTED_LIST = sort AS_I_WANT @UNORDERED_LIST;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
AS_I_WANT — это функция, принимающая два скаляра в качестве аргументов и возвращающая −1, 0 или 1 в зависимости от того, какой параметр оказался меньше согласно вашему критерию. Мы рассмотрим такие функции в последующих выпусках.&lt;br /&gt;
&lt;br /&gt;
Последнее замечание про массивы. Есть одна вещь, без которой не может жить ни один Perl-хакер, хотя она вовсе не выглядит как массив.&lt;br /&gt;
Я говорю о нашем возлюбленном STDIN, стандартном потоке ввода любой «правильной» Unix-программы. К счастью, им очень просто пользоваться. Я упомянул здесь STDIN потому, что он может быть превращен в массив одним мановением руки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
@LINES = &amp;lt;STDIN&amp;gt;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Вот так, одной единственной инструкцией вы внесли каждую строчку ввода в отдельный элемент массива @LINES. Удобно, не правда ли?&lt;br /&gt;
&lt;br /&gt;
=== Чистый хэш ===&lt;br /&gt;
В первой части нашего руководства я вам рассказывал про хэши и их концепцию индексирования доступа к одним скалярам другими скалярами (ключами). Как вы знаете, хэш состоит из ключей, связанных со своими значениями. Если у вас есть хэш, гораздо проще работать с ним с помощью ключей, а не их значений. В конце концов, если бы вы просто хотели собрать все эти значения вместе в определённом порядке, вы бы взяли обычный массив, не правда ли?&lt;br /&gt;
&lt;br /&gt;
В отличие от массивов, хэши в Perl никак не отсортированы — ни в порядке возрастания ключей, ни в порядке добавления элементов. Это значит, что к элементу хэша нельзя обращаться по его порядковому номеру, можно только по ключу. Это верно, даже если вы собрались удалить какой-то элемент хэша и его ключ. Для этого существует функция delete(), которая принимает в качестве параметра ключ элемента, подлежащего забвению. Пользоваться этой функцией необходимо, так как если вы, например, просто присвоите пустое значение соответствующему элементу хэша, то он не будет удалён, хотя значение этого элемента и станет равным null.&lt;br /&gt;
&lt;br /&gt;
Первой вещью, которую приходится делать с элементом хэша, является выяснение того, присутствует ли он в хэше, и соответствует ли его ключу какое-нибудь значение. Для этих целей в Perl существуют две функции, названные (вы уже догадались?) exists() и define(). Используют их следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
if exists ($STAR_WARS_ACTORS{'Leia'}) { # do something...};&lt;br /&gt;
if defined ($STAR_WARS_ACTORS{'Leia'}) { # do something else...};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Первая команда выполнится, только если в хэше есть ключ 'Leia' вне зависимости от того, какое значение присвоено этому ключу. Второе выражение идёт еще дальше, оно истинно только в том случае, если в хэше есть ключ 'Leia' и если ему явно было присвоено какое-то значение.&lt;br /&gt;
&lt;br /&gt;
=== Регулярные выражения ===&lt;br /&gt;
Perl был создан для обработки большого количества текстовой информации, поэтому он имеет самый богатый набор инструментов работы с регулярными выражениями. Регулярное выражение — это описание структуры текстовой строки, созданное с помощью особого синтаксиса. Оно состоит из обычного текста и метасимволов, описывающих свойства строки. Основные метасимволы описаны в [[#Регулярные выражения: шпаргалка | Шпаргалке]] по регулярным выражениям.&lt;br /&gt;
&lt;br /&gt;
Красота и универсальность этого механизма проявляется в том, что вы можете как описать любую строку в деталях, так и дать указание скрипту найти в тексте нужные элементы и автоматически отредактировать их. Лучше всего это объяснять на примерах:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
/Jedi/&lt;br /&gt;
/\bJedi\b/&lt;br /&gt;
/^Jedi$/&lt;br /&gt;
/Jedi/i&lt;br /&gt;
/Jedi|Sith/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка |&lt;br /&gt;
Заголовок=Как разрушить свою жизнь регулярными выражениями |&lt;br /&gt;
Содержание=Perl, вероятно, содержит гораздо больше регулярных выражений, чем все другие языки программирования. Для того, чтобы своими глазами увидеть, насколько мощными и неудобными они могут быть, посмотрите на самое длинное из всех, что я видел — http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html. Говорят, что оно проверяет правильность адреса e-mail, но я не могу это проверить. Если хотите научиться создавать такие же, прочитайте книгу Джефри Фридла «Регулярные выражения» (Jeffrey Friedl, «Mastering Regular expressions», O’Reilly, 2002).|&lt;br /&gt;
Ширина=50%}}&lt;br /&gt;
&lt;br /&gt;
Первое выражение будет истинно, если в анализируемом тексте содержится подстрока Jedi, возможно в виде части более длинного слова. Если вам нужно найти только отдельное слово «Jedi», нужно обрамить его символами границы слова (\b), как это было сделано во втором выражении. Третье выражение еще более строгое, оно требует чтобы Jedi с находилось одновременно в начале (^) и в конце ($) строки, то есть, другими словами, чтобы «Jedi» было единственным словом. Регулярные выражения Perl зависят от регистра символов, так что если вам не хочется писать что-то вроде JeDi|jedi|Jedi, то используйте модификатор i, как это сделано в четвёртом примере. Последнее выражение будет истинным, если в тексте встретится хотя бы одно вхождение Jedi или Sith.&lt;br /&gt;
&lt;br /&gt;
Всё это ценные знания, так как после того, как Perl смог распознать текст, описываемый регулярным выражением, он может выполнить любые действия, какие вы захотите, или сможет изменить найденную строку, руководствуясь вашими инструкциями. Вот соответствующие выражения:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
if ($STRING =~ m/some regex here/) {do something}&lt;br /&gt;
$STRING =~ s/some regex here/some other text pattern/;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Собственно регулярные выражения обрамлены косыми чертами (/). Строки связаны с ними при помощи оператора =~. Когда перед косыми чертами присутствует буква m, это значит: «Соответствует ли строка регулярному выражению?». Когда вместо m наличествует s, и добавлен какой-то текст между второй и третьей косыми чертами, это значит «Взять $STRING, и заменить в ней то, что соответствует регулярному выражению, на строку, взятую из последней пары черточек».&lt;br /&gt;
&lt;br /&gt;
Регулярные выражения могут содержать скаляры и сохраняют результаты своей работы в специальных переменных. Так что это очень гибкий инструмент.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$JEDI = ‘Anakin’;&lt;br /&gt;
s/Master $JEDI/the future Darth Vader/g;&lt;br /&gt;
s/Master (Obi-Wan|Yoda)/the Jedi Knight $1/;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
A+ # Одна или несколько букв A&lt;br /&gt;
\+ # один знак &amp;quot;+&amp;quot;&lt;br /&gt;
\++ # Один или несколько знаков &amp;quot;+&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Тут мы начинаем с того, что заменяем все фразу «Master Anakin» на «the future Darth Vader» (именно «Anakin» потому, что при обработке регулярного выражения переменная $JEDI будет заменена её текущим значением). Модификатор g обозначает, что замена должна быть глобальной, без него изменение произошло бы только с самым первым вхождением искомой фразы.&lt;br /&gt;
&lt;br /&gt;
Второе регулярное выражение демонстрирует еще одну интересную особенность. Оно находит все случаи, в которых перед именами «Obi-Wan» или «Yoda» стоит слово «Master». Поскольку имена взяты в круглые скобки, после удачного поиска они не забываются, а сохраняются в специальной переменной $1, так что одно и то же регулярное выражение может заменить 'Master Yoda' на 'the Jedi Knight Yoda', а 'Master Obi-Wan' на 'the Jedi Knight Obi-Wan'. Если нужно запомнить более одного элемента регулярного выражения, используются переменные $2, $3 и так далее до $9.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Регулярные выражения: шпаргалка ===&lt;br /&gt;
Здесь приведён список основных метасимволов, используемых в регулярных выражениях Perl. Скопируйте его и держите поближе к клавиатуре, он действительно помогает сэкономить время.&lt;br /&gt;
* . — Любой символ за исключением перевода строки&lt;br /&gt;
* ^ — Начало строки&lt;br /&gt;
* $ — Конец строки&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; — Ноль или более предыдущих символов&lt;br /&gt;
* + — Один или более предыдущий символ&lt;br /&gt;
* ? — Ноль или один предыдущий символ&lt;br /&gt;
* \n — Перевод строки&lt;br /&gt;
* \t — Табуляция&lt;br /&gt;
* \w — Числа и алфавитные символы, вне зависимости от регистра&lt;br /&gt;
* \W — Все символы, кроме букв или цифр&lt;br /&gt;
* \d — Старые добрые цифры: 0, 1 и так до 9.&lt;br /&gt;
* \D — Всё, кроме цифр.&lt;br /&gt;
* \s — Пробельные символы: пробел, табуляция, перевод строки.&lt;br /&gt;
* \S — Любой не пробельный символ.&lt;br /&gt;
* \b — Граница слова.&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; — Выбор из двух вариантов (например A&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;B).&lt;br /&gt;
* [] — Квадратные скобки определяют диапазон символов.&lt;br /&gt;
* () — Круглые скобки сохраняют соответствующую им подстроку.&lt;br /&gt;
Примечания: Когда вам необходимо вставить в регулярное выражение один из этих символов в его буквальном смысле, например знак «+», нужно поставить перед ним обратную косую черту (\).&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Первые шаги]]&lt;br /&gt;
[[Категория:Perl]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B</id>
		<title>LXF70:Perl. Переменные и операторы</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B"/>
				<updated>2008-03-14T02:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Perl. Переменные и операторы =&lt;br /&gt;
Часть 1. ''В «эпизоде 1» нашей серии '''Марко Фиоретти''' ('''Marco Fioretti''') объясняет основные компоненты языка Perl.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Врезка |&lt;br /&gt;
Заголовок=Подсказка |&lt;br /&gt;
Содержание='''Руководства по Perl'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Perl — зрелый язык, и его пользователи имеют доступ к большому количеству различной документации. Книга Тома Кристиансена, Джона Орванта, Ларри Уолла «Программирование на Perl» (Programming Perl by Larry Wall, Jon Orwant and tom Christiansen, O’Reilly) является прекрасным началом, если вам нужна более подробная информация — к вашим услугам http://perl.oreilly.com. Для доступа к онлайновой документации, полной коллекции модулей, руководств и примеров посетите Comprehensive Perl Archive Network (http://www.cpan.org). Отдельные вопросы можно задавать в новостной группе [http://groups.google.com/group/comp.lang.perl.misc comp.lang.perl.misc].|&lt;br /&gt;
Ширина=250px}}&lt;br /&gt;
&lt;br /&gt;
Языки сценариев стали так популярны потому, что ценой небольшого падения производительности они берут на себя такую скучную работу, как определение переменных, выделение памяти, возвращение её операционной системе и так далее. Придуманный в конце восьмидесятых Practical extraction and Report Language или Perl исходно предназначался для работы с большими объёмами текста. И хотя он не является самым популярным языком сценариев двадцать первого века, он остаётся лучшим инструментом для решения многих задач. Знаете ли вы, например, что Perl спас проект «Геном человека» (Human Genome Project)? Целиком эту историю можно прочитать по адресу: http://bioperl.org/GetStarted/tpj_ls_bio.html.&lt;br /&gt;
&lt;br /&gt;
В девяностые годы Perl стал получил широкое распространение, благодаря своему умению генерировать html-страницы. Сейчас эту нишу занял PHP, однако у Perl всё еще есть много поклонников, а так же большая база унаследованного кода, расширений (называемых модулями) и документации, которую легко приспособить для любых нужд.&lt;br /&gt;
&lt;br /&gt;
Вам вовсе не обязательно быть системным администратором или профессиональным программистом для того, чтобы получить пользу от этого языка. Perl может помочь, когда вам нужно быстро обработать текст или даже картинки. Независимо от того, находятся ли эти файлы на вашем жестком диске или в интернете, Perl обладает модулями, способными прозрачно работать и с тем, и с другим.&lt;br /&gt;
&lt;br /&gt;
=== Используй переменные, Люк! ===&lt;br /&gt;
Почти все основные правила синтаксиса Perl (такие как правила обрамления строк кавычками) очень напоминают или даже идентичны правилам оболочек Unix. Документации по оболочкам существует огромное количество, она не ограничивается учебником из предыдущих выпусков Linux Format. Поэтому, так как общую информацию можно найти в других местах, в эта серия сосредоточена на специфических особенностях языка, начиная с неудобочитаемых переменных. Я нежно люблю Perl, и использую его изо дня в день для решения самых разных задач. Но я должен предупредить вас: критики говорят, что это единственный язык, код на котором выглядит одинаково до и после&lt;br /&gt;
зашифровки. и если вы не знаете структуры программы на Perl, то так для вас и будет. Давайте рассмотрим компоненты этого языка. Первая вещь, которая раздражает новичков, когда они смотря на Perl-код — это тот факт, что все переменные имеют неалфавитный префикс. Клевещут, что из-за это экран заполняется нечитаемым мусором. Но мне эти маркеры кажутся очень полезными, так как они сразу же сообщают о структуре соответствующей переменной и о том, что я могу сделать с нею. Вот пример:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;$NAMe = 'Johnny';&lt;br /&gt;
$AGE = 33;&lt;br /&gt;
@BOOK = ('Introduction', 'First Chapter', 'Second Chapter');&lt;br /&gt;
%STAR_WARS_FAMILY = ('Father', 'Anakin',&lt;br /&gt;
               'Mother', 'Padme',&lt;br /&gt;
               'Male twin', 'Luke',&lt;br /&gt;
               'Female twin', 'Leia');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Первые две переменные — это скаляры. Скаляр Perl способен содержать один кусочек информации, будь то строка, число или ссылка. Их имена всегда начинаются с символа доллара ($). Строковые скаляры всегда заключаются в единичные('), двойные(&amp;quot;) или обратные кавычки(`), так же как и их эквиваленты из оболочек Unix, а числа, по аналогии, обходятся без кавычек.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$A = 'Hello';&lt;br /&gt;
$B = '$A Johnny!';&lt;br /&gt;
$C = &amp;quot;$A Johnny!&amp;quot;;&lt;br /&gt;
$D = `ls /usr/bin`;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Здесь переменная $b содержит именно то, что мы указали в коде, $C (благодаря двойным кавычкам) равняется «Hello Johnny!», а $D, поскольку для его значения использовались обратные кавычки, содержит результат выполнения команды ls /usr/bin/.&lt;br /&gt;
&lt;br /&gt;
Упорядоченный список скаляров, проиндексированный номерами, называется массивом и начинается с символа @. Он полезен для хранения чего-либо в последовательном порядке. Один элемент массива обозначается так: символ $, имя массива и номер элемента (начиная с 0) в квадратных скобках. В приведенном выше примере, второй элемент массива @book — это $book[1] и он равен «First Chapter».&lt;br /&gt;
&lt;br /&gt;
Ассоциативные массивы, или коротко говоря хэши (hash) — это последняя из основных категорий переменных языка Perl. Хэш — это группа скаляров, которые проиндексированы, или другими словам к которым можно обратиться не по номерам, а при помощи других скаляров, так называемых ключей. Другими словами, Perl позволяет сказать нам без излишних синтаксических конструкций, что в «семье звёздных войн»(STAR_WARS_FAMILY) отцом (Father) является Энакин (Anakin):$sTar_Wars_FamiLy{‘Father’} = ‘anakin’. Каждый ключ или значение хэша могут быть скаляром любого типа.&lt;br /&gt;
&lt;br /&gt;
Итак, даже самый короткий скрипт на Perl может быть заполнен символами $, @ и %. Но при этом мы можем создавать очень сложные структуры данных, используя минимальное количество префиксов, почти не заботясь об именовании, и при этом всегда понимая, каков смысл каждого кусочка. Это возможно благодаря мощной и немного опасной возможности вкладывать массивы и хэши друг в друга:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;%STAR_WARS_FAMILY = (&lt;br /&gt;
    'Father', {'Name', 'Anakin',&lt;br /&gt;
             'Height (cm)', 210,&lt;br /&gt;
             'jobs', ['Slave', 'Podracer pilot', 'Jedi Knight', 'Darth Vader']},&lt;br /&gt;
    'Mother', {} # другие такие же данные...&lt;br /&gt;
 );&lt;br /&gt;
 print &amp;quot;$STAR_WARS_FAMILY{'Father'}{'jobs'}[2]\n&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это хэш, в котором каждый из элементов первого уровня является в свою очередь хэшем, содержащим элементы name (имя), Height (рост) and jobs (должность), причём значением элемента jobs является массив. Обратите внимание, как мы различаем массивы и хэши при помощи квадратных и фигурных скобок, даже если они вложены друг в друга. В результате у нас получится, что оператор print в последней строке отобразит строчку Jedi knight (Джедай).&lt;br /&gt;
&lt;br /&gt;
Существует одна встроенная скалярная переменная, о которой вам надо знать. иногда программисты на Perl забывают указать, какую переменную они имели ввиду, например:&lt;br /&gt;
 print if условие&lt;br /&gt;
Эта инструкция указывает, что надо выполнять оператор print при некотором условии, но не говорит, что именно надо напечатать — значение какой переменной? В этом случае интерпретатор Perl использует текущее значение переменной по умолчанию, $_. Её значение определяются предыдущими выражениями, или она может выступать в качестве переменной цикла. Если вы помните об этой особенности, большое количество кода на Perl покажется вам гораздо понятнее.&lt;br /&gt;
&lt;br /&gt;
=== Помоги мне, Падме ===&lt;br /&gt;
Perl понимает большое число разных операторов. Некоторые из них применимы только к какому-то одному классу переменных, будь то скаляры, массивы или хэши, тогда как другие изменяют свой смысл в зависимости от того, к какой переменной они относятся. В этой статье осталось место только для нескольких вариантов. Основные числовые операторы имеют тот же смысл, что и в языке C.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A =10 * 7.5 - 16;&lt;br /&gt;
$B = $A % 4; # деление по модулю 4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и номера, и строки можно увеличивать при помощи оператора инкремента&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A = 4;&lt;br /&gt;
$B = 'ab';&lt;br /&gt;
$A++; # теперь $A равен 5...&lt;br /&gt;
$B++; # а $B равен 'ac'!!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Не правда ли это здорово, что буквы тоже можно инкрементировать? Вы также можете соединять строки из нескольких частей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$FIRST_NAME = 'Luke';&lt;br /&gt;
$LAST_NAME = 'Skywalker';&lt;br /&gt;
$COMPLETE_NAME = $FIRST_NAME.' '.$LAST_NAME;&lt;br /&gt;
$REPEATED_NAME = $FIRST_NAME x 3;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь $COMPLETE_NAME равняется «Luke Skywalker», a $REPEATED_NAME содержит «LukeLukeLuke».&lt;br /&gt;
&lt;br /&gt;
Скаляры можно сравнивать между собой многими разными способами. Давайте попробуем некоторые из них и посмотрим, что получится:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A &amp;lt; $B; # число $A больше, чем число $B?&lt;br /&gt;
$A lt $B; # строка $A располагается в словаре до $B?&lt;br /&gt;
$A &amp;lt;=&amp;gt; $B; # какое число меньше, $A или $B?&lt;br /&gt;
$A cmp $B; # какая строка располагается раньше, $A или $B?&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторые сравнения имеют смысл, только если обе переменные являются или строками, или числами. Например, оператор 'Эта строка в алфавитном порядка стоит перед другой', всегда используется для сортировки в алфавитном порядке. Даже если одна или обе сравниваемые переменные содержат только числа, использование строковых операторов сравнения приведёт к сортировке в алфавитном порядке. Чтобы увидеть это в действии, введите следующую команду в командной строке и проверьте, какие из операторов сравнения вернут истину?.&lt;br /&gt;
  perl -e 'if (&amp;quot;dude&amp;quot; lt &amp;quot;hello&amp;quot;) {print &amp;quot;dude!\n&amp;quot;;} if (&amp;quot;dude&amp;quot; &amp;lt; &amp;quot;hello&amp;quot;) {print &amp;quot;Hello!\n&amp;quot;;}'&lt;br /&gt;
Фактически только первый тест должен завершиться успешно. Его смысл таков: «Верно ли, что строки переданы в алфавитном порядке?». Во втором операторе, используя &amp;lt; вместо lt, мы спрашиваем Perl, правда ли что число «dude» меньше числа «hello»? Конечно, это абсурдный вопрос, и ответ на него предсказуемо непредсказуемый.&lt;br /&gt;
&lt;br /&gt;
Еще одна особенность Perl, о которой стоит знать — это его постоянные преобразования строк в числа и обратно, в зависимости от контекста. Они могут быть огромным подспорьем или же постоянным источником недоразумений, в зависимости от того как часто вы забываете про это.&lt;br /&gt;
&lt;br /&gt;
Я думаю, что на этом достаточно разговоров про скалярные операторы. Когда речь заходит об операторах, работающих с массивами, Perl может сделать многое. Приведённый ниже пример показывает, как отдельный элемент может быть добавлен к массиву, а затем удалён оттуда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
@Jedi = (&amp;quot;Yoda&amp;quot;, &amp;quot;Obi Wan&amp;quot;); # несколько рыцарей-джедаев&lt;br /&gt;
push(@Jedi, &amp;quot;Anakin&amp;quot;); # юный Энакин встаёт в строй&lt;br /&gt;
$gone_to_the_dark_side = pop(@Jedi); # Энакин уже не джедай&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Существуют специальные операторы для работы с хэшами. Инструкции, подобные следующим, встречаются в коде на Perl очень часто:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
while (($Actor, $Character) = each(%STAR_WARS_CAST));&lt;br /&gt;
# или даже&lt;br /&gt;
@ACTORS_ONLY = keys(%STAR_WARS_CAST);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Первая строка будет циклически перебирать элементы хэша %STAR_WARS_CAST, каждый раз присваивая ключ очередного элемента и его значение паре скаляров $Actor и $Character, которые вы затем можете обработать, как вам захочется. Оператор key используется в том случае, когда нужно сохранить только ключи хэша в отдельном массиве и работать с ними независимо от значений.&lt;br /&gt;
&lt;br /&gt;
В Perl существует ещё очень много операторов, но у меня не осталось места для их описания. Однако того, что мы уже успели рассмотреть, с лихвой хватит для понимания структуры простого сценария. Свою силу и истинную ценность Perl особенно ярко проявляет в работе с массивами и хэшами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Первые шаги]]&lt;br /&gt;
[[Категория:Perl]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B</id>
		<title>LXF70:Perl. Переменные и операторы</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Perl._%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B"/>
				<updated>2008-03-14T02:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Perl. Переменные и операторы =&lt;br /&gt;
Часть 1. ''В «эпизоде 1» нашей серии '''Марко Фиоретти''' ('''Marco Fioretti''') объясняет основные компоненты языка Perl.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Языки сценариев стали так популярны потому, что ценой небольшого падения производительности они берут на себя такую скучную работу, как определение переменных, выделение памяти, возвращение её операционной системе и так далее. Придуманный в конце восьмидесятых Practical extraction and Report Language или Perl исходно предназначался для работы с большими объёмами текста. И хотя он не является самым популярным языком сценариев двадцать первого века, он остаётся лучшим инструментом для решения многих задач. Знаете ли вы, например, что Perl спас проект «Геном человека» (Human Genome Project)? Целиком эту историю можно прочитать по адресу: http://bioperl.org/GetStarted/tpj_ls_bio.html.&lt;br /&gt;
&lt;br /&gt;
В девяностые годы Perl стал получил широкое распространение, благодаря своему умению генерировать html-страницы. Сейчас эту нишу занял PHP, однако у Perl всё еще есть много поклонников, а так же большая база унаследованного кода, расширений (называемых модулями) и документации, которую легко приспособить для любых нужд.&lt;br /&gt;
&lt;br /&gt;
Вам вовсе не обязательно быть системным администратором или профессиональным программистом для того, чтобы получить пользу от этого языка. Perl может помочь, когда вам нужно быстро обработать текст или даже картинки. Независимо от того, находятся ли эти файлы на вашем жестком диске или в интернете, Perl обладает модулями, способными прозрачно работать и с тем, и с другим.&lt;br /&gt;
&lt;br /&gt;
=== Используй переменные, Люк! ===&lt;br /&gt;
Почти все основные правила синтаксиса Perl (такие как правила обрамления строк кавычками) очень напоминают или даже идентичны правилам оболочек Unix. Документации по оболочкам существует огромное количество, она не ограничивается учебником из предыдущих выпусков Linux Format. Поэтому, так как общую информацию можно найти в других местах, в эта серия сосредоточена на специфических особенностях языка, начиная с неудобочитаемых переменных. Я нежно люблю Perl, и использую его изо дня в день для решения самых разных задач. Но я должен предупредить вас: критики говорят, что это единственный язык, код на котором выглядит одинаково до и после&lt;br /&gt;
зашифровки. и если вы не знаете структуры программы на Perl, то так для вас и будет. Давайте рассмотрим компоненты этого языка. Первая вещь, которая раздражает новичков, когда они смотря на Perl-код — это тот факт, что все переменные имеют неалфавитный префикс. Клевещут, что из-за это экран заполняется нечитаемым мусором. Но мне эти маркеры кажутся очень полезными, так как они сразу же сообщают о структуре соответствующей переменной и о том, что я могу сделать с нею. Вот пример:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;$NAMe = 'Johnny';&lt;br /&gt;
$AGE = 33;&lt;br /&gt;
@BOOK = ('Introduction', 'First Chapter', 'Second Chapter');&lt;br /&gt;
%STAR_WARS_FAMILY = ('Father', 'Anakin',&lt;br /&gt;
               'Mother', 'Padme',&lt;br /&gt;
               'Male twin', 'Luke',&lt;br /&gt;
               'Female twin', 'Leia');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Первые две переменные — это скаляры. Скаляр Perl способен содержать один кусочек информации, будь то строка, число или ссылка. Их имена всегда начинаются с символа доллара ($). Строковые скаляры всегда заключаются в единичные('), двойные(&amp;quot;) или обратные кавычки(`), так же как и их эквиваленты из оболочек Unix, а числа, по аналогии, обходятся без кавычек.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$A = 'Hello';&lt;br /&gt;
$B = '$A Johnny!';&lt;br /&gt;
$C = &amp;quot;$A Johnny!&amp;quot;;&lt;br /&gt;
$D = `ls /usr/bin`;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Здесь переменная $b содержит именно то, что мы указали в коде, $C (благодаря двойным кавычкам) равняется «Hello Johnny!», а $D, поскольку для его значения использовались обратные кавычки, содержит результат выполнения команды ls /usr/bin/.&lt;br /&gt;
&lt;br /&gt;
Упорядоченный список скаляров, проиндексированный номерами, называется массивом и начинается с символа @. Он полезен для хранения чего-либо в последовательном порядке. Один элемент массива обозначается так: символ $, имя массива и номер элемента (начиная с 0) в квадратных скобках. В приведенном выше примере, второй элемент массива @book — это $book[1] и он равен «First Chapter».&lt;br /&gt;
&lt;br /&gt;
Ассоциативные массивы, или коротко говоря хэши (hash) — это последняя из основных категорий переменных языка Perl. Хэш — это группа скаляров, которые проиндексированы, или другими словам к которым можно обратиться не по номерам, а при помощи других скаляров, так называемых ключей. Другими словами, Perl позволяет сказать нам без излишних синтаксических конструкций, что в «семье звёздных войн»(STAR_WARS_FAMILY) отцом (Father) является Энакин (Anakin):$sTar_Wars_FamiLy{‘Father’} = ‘anakin’. Каждый ключ или значение хэша могут быть скаляром любого типа.&lt;br /&gt;
&lt;br /&gt;
Итак, даже самый короткий скрипт на Perl может быть заполнен символами $, @ и %. Но при этом мы можем создавать очень сложные структуры данных, используя минимальное количество префиксов, почти не заботясь об именовании, и при этом всегда понимая, каков смысл каждого кусочка. Это возможно благодаря мощной и немного опасной возможности вкладывать массивы и хэши друг в друга:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;%STAR_WARS_FAMILY = (&lt;br /&gt;
    'Father', {'Name', 'Anakin',&lt;br /&gt;
             'Height (cm)', 210,&lt;br /&gt;
             'jobs', ['Slave', 'Podracer pilot', 'Jedi Knight', 'Darth Vader']},&lt;br /&gt;
    'Mother', {} # другие такие же данные...&lt;br /&gt;
 );&lt;br /&gt;
 print &amp;quot;$STAR_WARS_FAMILY{'Father'}{'jobs'}[2]\n&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это хэш, в котором каждый из элементов первого уровня является в свою очередь хэшем, содержащим элементы name (имя), Height (рост) and jobs (должность), причём значением элемента jobs является массив. Обратите внимание, как мы различаем массивы и хэши при помощи квадратных и фигурных скобок, даже если они вложены друг в друга. В результате у нас получится, что оператор print в последней строке отобразит строчку Jedi knight (Джедай).&lt;br /&gt;
&lt;br /&gt;
Существует одна встроенная скалярная переменная, о которой вам надо знать. иногда программисты на Perl забывают указать, какую переменную они имели ввиду, например:&lt;br /&gt;
 print if условие&lt;br /&gt;
Эта инструкция указывает, что надо выполнять оператор print при некотором условии, но не говорит, что именно надо напечатать — значение какой переменной? В этом случае интерпретатор Perl использует текущее значение переменной по умолчанию, $_. Её значение определяются предыдущими выражениями, или она может выступать в качестве переменной цикла. Если вы помните об этой особенности, большое количество кода на Perl покажется вам гораздо понятнее.&lt;br /&gt;
&lt;br /&gt;
=== Помоги мне, Падме ===&lt;br /&gt;
Perl понимает большое число разных операторов. Некоторые из них применимы только к какому-то одному классу переменных, будь то скаляры, массивы или хэши, тогда как другие изменяют свой смысл в зависимости от того, к какой переменной они относятся. В этой статье осталось место только для нескольких вариантов. Основные числовые операторы имеют тот же смысл, что и в языке C.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A =10 * 7.5 - 16;&lt;br /&gt;
$B = $A % 4; # деление по модулю 4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и номера, и строки можно увеличивать при помощи оператора инкремента&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A = 4;&lt;br /&gt;
$B = 'ab';&lt;br /&gt;
$A++; # теперь $A равен 5...&lt;br /&gt;
$B++; # а $B равен 'ac'!!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Не правда ли это здорово, что буквы тоже можно инкрементировать? Вы также можете соединять строки из нескольких частей:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$FIRST_NAME = 'Luke';&lt;br /&gt;
$LAST_NAME = 'Skywalker';&lt;br /&gt;
$COMPLETE_NAME = $FIRST_NAME.' '.$LAST_NAME;&lt;br /&gt;
$REPEATED_NAME = $FIRST_NAME x 3;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь $COMPLETE_NAME равняется «Luke Skywalker», a $REPEATED_NAME содержит «LukeLukeLuke».&lt;br /&gt;
&lt;br /&gt;
Скаляры можно сравнивать между собой многими разными способами. Давайте попробуем некоторые из них и посмотрим, что получится:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
$A &amp;lt; $B; # число $A больше, чем число $B?&lt;br /&gt;
$A lt $B; # строка $A располагается в словаре до $B?&lt;br /&gt;
$A &amp;lt;=&amp;gt; $B; # какое число меньше, $A или $B?&lt;br /&gt;
$A cmp $B; # какая строка располагается раньше, $A или $B?&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Некоторые сравнения имеют смысл, только если обе переменные являются или строками, или числами. Например, оператор 'Эта строка в алфавитном порядка стоит перед другой', всегда используется для сортировки в алфавитном порядке. Даже если одна или обе сравниваемые переменные содержат только числа, использование строковых операторов сравнения приведёт к сортировке в алфавитном порядке. Чтобы увидеть это в действии, введите следующую команду в командной строке и проверьте, какие из операторов сравнения вернут истину?.&lt;br /&gt;
  perl -e 'if (&amp;quot;dude&amp;quot; lt &amp;quot;hello&amp;quot;) {print &amp;quot;dude!\n&amp;quot;;} if (&amp;quot;dude&amp;quot; &amp;lt; &amp;quot;hello&amp;quot;) {print &amp;quot;Hello!\n&amp;quot;;}'&lt;br /&gt;
Фактически только первый тест должен завершиться успешно. Его смысл таков: «Верно ли, что строки переданы в алфавитном порядке?». Во втором операторе, используя &amp;lt; вместо lt, мы спрашиваем Perl, правда ли что число «dude» меньше числа «hello»? Конечно, это абсурдный вопрос, и ответ на него предсказуемо непредсказуемый.&lt;br /&gt;
&lt;br /&gt;
Еще одна особенность Perl, о которой стоит знать — это его постоянные преобразования строк в числа и обратно, в зависимости от контекста. Они могут быть огромным подспорьем или же постоянным источником недоразумений, в зависимости от того как часто вы забываете про это.&lt;br /&gt;
&lt;br /&gt;
Я думаю, что на этом достаточно разговоров про скалярные операторы. Когда речь заходит об операторах, работающих с массивами, Perl может сделать многое. Приведённый ниже пример показывает, как отдельный элемент может быть добавлен к массиву, а затем удалён оттуда:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
@Jedi = (&amp;quot;Yoda&amp;quot;, &amp;quot;Obi Wan&amp;quot;); # несколько рыцарей-джедаев&lt;br /&gt;
push(@Jedi, &amp;quot;Anakin&amp;quot;); # юный Энакин встаёт в строй&lt;br /&gt;
$gone_to_the_dark_side = pop(@Jedi); # Энакин уже не джедай&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Существуют специальные операторы для работы с хэшами. Инструкции, подобные следующим, встречаются в коде на Perl очень часто:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Perl&amp;quot;&amp;gt;&lt;br /&gt;
while (($Actor, $Character) = each(%STAR_WARS_CAST));&lt;br /&gt;
# или даже&lt;br /&gt;
@ACTORS_ONLY = keys(%STAR_WARS_CAST);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Первая строка будет циклически перебирать элементы хэша %STAR_WARS_CAST, каждый раз присваивая ключ очередного элемента и его значение паре скаляров $Actor и $Character, которые вы затем можете обработать, как вам захочется. Оператор key используется в том случае, когда нужно сохранить только ключи хэша в отдельном массиве и работать с ними независимо от значений.&lt;br /&gt;
&lt;br /&gt;
В Perl существует ещё очень много операторов, но у меня не осталось места для их описания. Однако того, что мы уже успели рассмотреть, с лихвой хватит для понимания структуры простого сценария. Свою силу и истинную ценность Perl особенно ярко проявляет в работе с массивами и хэшами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{Врезка |&lt;br /&gt;
Заголовок=Подсказка |&lt;br /&gt;
Содержание='''Руководства по Perl'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Perl — зрелый язык, и его пользователи имеют доступ к большому количеству различной документации. Книга Тома Кристиансена, Джона Орванта, Ларри Уолла «Программирование на Perl» (Programming Perl by Larry Wall, Jon Orwant and tom Christiansen, O’Reilly) является прекрасным началом, если вам нужна более подробная информация — к вашим услугам http://perl.oreilly.com. Для доступа к онлайновой документации, полной коллекции модулей, руководств и примеров посетите Comprehensive Perl Archive Network (http://www.cpan.org). Отдельные вопросы можно задавать в новостной группе [http://groups.google.com/group/comp.lang.perl.misc comp.lang.perl.misc].|&lt;br /&gt;
Ширина=250px}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Первые шаги]]&lt;br /&gt;
[[Категория:Perl]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70</id>
		<title>LXF70</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70"/>
				<updated>2008-03-14T02:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Сравнение */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[Изображение:Lxf70.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LinuxFormat 70 (1), Сентябрь 2005 ==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Обзоры ===&lt;br /&gt;
* [[LXF70:Xandros business Desktop OS 3.0|Xandros Business Desktop 3.0]]&lt;br /&gt;
Промышленный дистрибутив на базе Debian.&lt;br /&gt;
* [[LXF70:OpenLaszlo|OpenLaszlo 3.0]]&lt;br /&gt;
Среда разработки графических интерфейсов на Flash.&lt;br /&gt;
* [[LXF70:Studio To Go!|Studio To Go!]]&lt;br /&gt;
Живой аудиодистрибутив.&lt;br /&gt;
* [[LXF70:Soul Ride|Soul Ride]]&lt;br /&gt;
Симулятор сноуборда.&lt;br /&gt;
* [[LXF70:Astaro Security Linux 6|Astaro Security Linux 6]]&lt;br /&gt;
Межсетевой экран на базе Linux.&lt;br /&gt;
&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
* [[LXF70:Сравнение|Текстовые редакторы]]&lt;br /&gt;
Том Вилкинсон (Tom Wilkinson) решил проверить широко распространённую в LXF теорию о том, что в наше время невозможно найти приличный текстовый редактор.&lt;br /&gt;
&lt;br /&gt;
=== Что за штука…? ===&lt;br /&gt;
* [[LXF70:Что за штука...|PDTP]]&lt;br /&gt;
Ничто не раздражает сильнее, чем поиск подходящего зеркала, но ознаменует ли PDTP конец эпохи bitTorrent?&lt;br /&gt;
&lt;br /&gt;
=== Специальный репортаж ===&lt;br /&gt;
* [[LXF70:Debian|Debian на перепутье]]&lt;br /&gt;
Что ждет самый свободный дистрибутив Linux в будущем?&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Beagle|Взять его!]]&lt;br /&gt;
Руководство по установке поисковой системы Beagle&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:BBC|Время отдыха в сети]]&lt;br /&gt;
Открытые технологии на службе у BBC&lt;br /&gt;
&lt;br /&gt;
=== Интервью ===&lt;br /&gt;
* [[LXF70:Интервью|Гаэль Дюваль]]&lt;br /&gt;
Создал дистрибутив Mandrake как ответвление от Red Hat в 1998 году и превратил проект в прибыльную компанию.&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
* [[LXF70:Gnome 2.10|Gnome 2.10]]&lt;br /&gt;
Энди Ченнелл рассказывает о лучших чертах Gnome 2.10&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:GIMP. Коррекция улыбки|Коррекция улыбки в Gimp]]&lt;br /&gt;
Не повезло с дантистом? Подправьте свою улыбку с помощью Gimp и Майкла Дж. Хэммела&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Переменные и операторы|Perl, часть 1. Переменные и операторы]]&lt;br /&gt;
Первый эпизод саги Марка Фиоретти расскажет вам, откуда берутся переменные и операторы языка Perl&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Сортируем наш код|Perl, часть 2. Сортируем наш код]]&lt;br /&gt;
Оберегайте друзей от регулярных выражений — по крайней мере, пока те не прочитают второй эпизод популярной саги&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion1|Subversion, часть 1]]&lt;br /&gt;
Собрались запустить свой проект? Грэм Моррисон расскажет вам, с чего начать&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion2|Subversion, часть 2]]&lt;br /&gt;
Репозитарий готов, но… что мне с ним делать? Ищите ответ здесь!&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:PHP. Загадка Монти Холла|PHP. Загадка Монти Холла]]&lt;br /&gt;
Математические загадки — удовольствие знатока и кошмар дилетанта. Кем из них окажется Пол Хадсон?&lt;br /&gt;
&lt;br /&gt;
=== Ответы ===&lt;br /&gt;
* [[LXF70:Ответы|Ответы]]&lt;br /&gt;
Если вы завязли в какой-то проблеме и ничего не помогает, почему бы не написать нам?&lt;br /&gt;
Наши постоянные эксперты разрешат даже самые сложные из ваших проблем.&lt;br /&gt;
* [[LXF70:Краткая справка|Краткая справка: SSH]]&lt;br /&gt;
* [[LXF70:Frequently Asked Questions|Frequently Asked Questions: Ядро]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5</id>
		<title>LXF70:Сравнение</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5"/>
				<updated>2008-03-14T02:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Сравнение: Текстовые редакторы =&lt;br /&gt;
'' '''Том Вилкинсон''' ('''Tom Wilkinson''') решил проверить широко распространённую в LXF теорию о том, что в наше время невозможно найти приличный текстовый редактор.''&lt;br /&gt;
&lt;br /&gt;
Если Вы используете Linux, то в какой-то момент вам обязательно потребуется текстовый редактор, для написания кода или же просто для правки конфигурационных файлов. Таких редакторов бесчисленное множество, причём все ведут себя по-разному, имеют свои слабые и сильные стороны.&lt;br /&gt;
&lt;br /&gt;
В этом месяце мы протестировали 8 самых популярных редакторов. Многие из них предлагают на выбор как текстовый, так и графический интерфейсы пользователя и предоставляют разнообразные функции, самыми ценными из которых являются проверка орфографии, подсветка синтаксиса и автоматические отступы.&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Редактирование без редактора|&lt;br /&gt;
Содержание=Конечно, текстовые файлы можно редактировать вообще без использования текстовых редакторов. любая утилита командной строки, обрабатывающая текстовую информацию, может выступать в роли такого редактора, включая cat (обычно он используется для передачи содержимого файла другой программе) и dd (предназначен для создания и копирования снимков диска). С помощью таких утилит, как sed и grep, используемых в комбинации с вышеперечисленными, можно сделать практически всё, что угодно. Хотя вы вряд ли будете использовать этот метод слишком часто, он может оказаться бесценным в случае разрушения файловой системы.&lt;br /&gt;
&lt;br /&gt;
Если у вас действительно много времени, вы можете написать свою собственную программу редактирования текста с помощью любого языка программирования. Но, вероятно, всё же быстрее будет использовать что-нибудь готовое.|&lt;br /&gt;
Ширина=300px&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Текстовые редакторы отличаются от текстовых процессоров своим предназначением, хотя их функциональность и инструменты часто пересекаются. Текстовые процессоры нужны, в первую очередь, для создания и форматирования текстовых документов. Редакторы же должны суметь прочитать и изменить произвольный текстовый файл, поэтому их функции сосредоточены вокруг&lt;br /&gt;
манипуляций с текстом. Форматирование и окончательный вывод остаются при этом на совести web-браузеров, компилятора LateX или других приложений, преобразующих сырой текст в законченный документ.&lt;br /&gt;
&lt;br /&gt;
Многие текстовые редакторы предоставляют функции, особенно полезные для программистов. Подсветка синтаксиса и автоматические отступы — это, пожалуй, самые важные из инструментов такого рода. Они позволяют с одного взгляда понять, что введённый код в общих чертах корректен, что все блоки правильно вложены друг в друга и не содержат очевидных ошибок.&lt;br /&gt;
&lt;br /&gt;
Подсветка синтаксиса ярко выделяет ключевые слова, а также показывает различными цветами имена переменных и данные. Кроме того, цветами могут выделяться переменные разных типов или вызовы функций. автоматические отступы помогают увидеть каждый блок кода по отдельности, вложенные блоки отодвигаются дальше, что существенно упрощает чтение. Конечно, это может быть полезно только в том случае, если вы согласны с тем, каким способом расставляет отступы программа, так как стилей форматирования кода существует столько же, сколько и&lt;br /&gt;
программистов. Хороший редактор позволит вам выбрать ваш собственный стиль.&lt;br /&gt;
&lt;br /&gt;
Еще одно важное обстоятельство — способность редактора работать в текстовой консоли. В случае возникновения серьёзных проблем с системой графическая оболочка может оказаться недоступна. В этой ситуации редактор, способный запускаться в текстовом режиме, будет просто необходим.&lt;br /&gt;
&lt;br /&gt;
В конце мы посмотрим, насколько трудно изучить тот или иной редактор. Самые простые из них легки в освоении, но потом ими будет тяжело пользоваться, кроме как для самых простых вещей. Более сложные редакторы могут запросто выполнять самые нетривиальные преобразования, но при этом отпугивать новичков сложностью и неинтуитивностью интерфейса. Если вы не можете воспользоваться редактором на практике, то не имеет значения, насколько он хорош в теории.&lt;br /&gt;
&lt;br /&gt;
=== Участники сравнения ===&lt;br /&gt;
* [[#CoolEdit | CoolEdit]]&lt;br /&gt;
* [[#gedit | gedit]]&lt;br /&gt;
* [[#GNU Emacs | GNU Emacs]]&lt;br /&gt;
* [[#Kate | Kate]]&lt;br /&gt;
* [[#nano | nano]]&lt;br /&gt;
* [[#NEdit | NEdit]]&lt;br /&gt;
* [[#Minimum Profit | Minimum Profit]]&lt;br /&gt;
* [[#Vim | Vim]]&lt;br /&gt;
&lt;br /&gt;
=== nano ===&lt;br /&gt;
Редактор командной строки, включенный во многие дистрибутивы&lt;br /&gt;
* Версия: 1.2.4&lt;br /&gt;
* Web: [http://www.nano-editor.org www.nano-editor.org]&lt;br /&gt;
* Цена: бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Текстовый редактор nano, выпущенный Фондом свободного программного обеспечения, позиционируется как свободная замена популярному редактору Pico, разработанному в университете Вашингтона. Его интерфейс будет знаком любому работавшему с текстовым клиентом электронной почты Pine, который основан на Pico. Хотя исходный код Pico общедоступен, он не считается open-source редактором, поскольку любой, кто захочет разработать на основе Pico свою программу, должен сначала спросить разрешения у университета Вашингтона. Конечно, это менее свободная лицензия, чем GPL, поэтому под влиянием разработчиков таких дистрибутивов, как Debian, и был создан nano.&lt;br /&gt;
&lt;br /&gt;
Nano — один из самых простых текстовых редакторов. у него нет поддержки таких полезных для программистов функций, как поиск парных скобок или подсветка синтаксиса. Но, будучи редактором простого текста, он прекрасно справляется со своей задачей. Основные клавиатурные команды, выполняющие базовые действия, перечислены в нижней части экрана, и этого более чем достаточно для редактирования конфигурационного файла без путаницы в режимах или в миллионах команд меню. Эта программа предназначена для конкретной аудитории и точно соответствует ей. Её пользователи — новички, которые еще не готовы к схватке с Vi или emacs, но при этом хотят редактировать файлы в текстовой консоли.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в nano нет большинства функций других текстовых редакторов, он всё же содержит проверку орфографии. К сожалению, добавить своё слово в словарь невозможно. Но упрощенная проверка орфографии всё же лучше, чем ничего.&lt;br /&gt;
&lt;br /&gt;
Основные функции программы доступны по нажатию клавиши команды при удерживаемой кнопке &amp;lt;Ctrl&amp;gt;. Это самый логичный способ вызова команд в редакторе текстового режима, хотя число доступных команд при этом ограничено. Однако, мы думаем, что это не станет большой проблемой, поскольку к тому времени, как пользователям понадобится что-то, выходящее за рамки такой схемы, они, скорее всего, перейдут на какое-нибудь более мощное приложение.&lt;br /&gt;
&lt;br /&gt;
В редакторе nano нас сильно раздражала только одна вещь: по умолчанию символ перевода строки вставляется в файл автоматически. Это не самое удобное поведение: представьте себе, что вы написали длинную строку кода, которая отказывается компилироваться из-за того, что редактор добавил символ конца строки в неудачном месте. На поиск причины такой ошибки&lt;br /&gt;
может уйти очень много времени. К счастью, для изменения такого поведения программы достаточно указать соответствующую опцию командной строки.&lt;br /&gt;
&lt;br /&gt;
''' Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Простой, но малофункциональный nano не слишком привлекателен.&lt;br /&gt;
* Рейтинг — 5/10&lt;br /&gt;
&lt;br /&gt;
=== Kate ===&lt;br /&gt;
Редактор с возможностью управления проектами&lt;br /&gt;
&lt;br /&gt;
* Версия: 3.2&lt;br /&gt;
* Web: [http://kate.kde.org kate.kde.org]&lt;br /&gt;
* Цена: Бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Kate — это один из двух редакторов, интегрированных в рабочий стол KDE. Второй, KWrite, содержит минимальный набор функций работы с текстом. Kate — гораздо более богатый инструмент, предназначенный скорее для программистов, чем для обычных пользователей, а поддержка подключаемых модулей позволяет расширять его функциональность до бесконечности.&lt;br /&gt;
&lt;br /&gt;
Являясь частью KDE, Kate может работать только в графическом режиме. Это позволяет разработчикам сосредоточиться на его преимуществах и получить цельный редактор с набором функций, способным удовлетворить самого взыскательного пользователя, но при этом достаточно доступный, чтобы не пугать новичков.&lt;br /&gt;
&lt;br /&gt;
Как и большинство текстовых редакторов для программистов, Kate позволяет использовать регулярные выражения при поиске, а также предоставляет стандартную пару функций — подсветку синтаксиса и автоматические отступы. Из нестандартных возможностей нужно упомянуть свёртку кода. Она позволяет спрятать код функции в программе, оставив на виду только её первую строку. При необходимости можно снова отобразить всю функцию целиком. Это новое и очень полезное при кодировании достижение, так как оно позволяет программисту наблюдать всю картину, но при этом детально рассматривать любую подробность, привлекшую внимание.&lt;br /&gt;
&lt;br /&gt;
Кроме инструментов для разработчиков, Kate содержит еще и функции управления проектами. Можно создать проект как набор файлов, и его открытие приведёт к открытию каждого из входящих в него фалов в отдельной вкладке. Это позволяет редактировать множество взаимосвязанных файлов одновременно, например заголовочный файл, файл с исходным кодом на C и Makefile. Если вы работаете с более крупными проектами, например с целыми приложениями, эта возможность Kate будет для вас особенно полезна.&lt;br /&gt;
&lt;br /&gt;
В любом месте файла Kate может создать закладку, что позволит впоследствии мгновенно вернуться к нему через главное меню. Также очень полезна возможность открыть в новой закладке вместо одного из текстовых файлов окно терминала. Это самый быстрый способ переключиться в командную оболочку (например, для компилирования программы) из всех, которые можно себе представить.&lt;br /&gt;
&lt;br /&gt;
Еще одной новаторской возможностью Kate является выделение любого текста и осуществления поиска по этому слову с помощью Google. Результаты поиска отображаются в Konqueror, web-браузере входящем в состав KDE. Это особенно удобно при работе с каким-нибудь новым API. Выделив функцию, вы получаете справочную информацию, обсуждения и подсказки прямо на кончиках своих пальцев.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Функции управления проектами закладывают для Kate серьезный фундамент. В целом, это полезная программа, но она не умеет работать в текстовой консоли.&lt;br /&gt;
* Рейтинг — 7/10&lt;br /&gt;
&lt;br /&gt;
=== NEdit ===&lt;br /&gt;
Основанный на Motif редактор, имеющий множество плюсов&lt;br /&gt;
&lt;br /&gt;
* Версия: 5&lt;br /&gt;
* Web: [http://www.nedit.org www.nedit.org]&lt;br /&gt;
* Цена: Бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Cозданный в 1991 году, NEdit является одним из старейших текстовых редакторов, рассматриваемых в этой статье. Он на несколько лет опередил эру Gnome и KDE и поэтому основан на межплатформенной библиотеке пользовательского интерфейса Motif. До недавнего времени Motif был продуктом с закрытым кодом, что вызывало проблемы с её получением и сборкой (его открытый аналог, Lesstif был доступен, но далеко не всегда компилировался успешно). Выпуск Open Motif в 2000 году сделал получение и сборку NEdit гораздо более простым делом.&lt;br /&gt;
&lt;br /&gt;
Несмотря на эти проблемы, разработчики NEdit продолжали добавлять новшества в свой редактор и сделали его вполне современным. Последние версии включают такие возможности, как вкладки (позволяющие открыть сразу несколько файлов), и поддержку UTF, обеспечивающую ввод в документ символов любого языка.&lt;br /&gt;
&lt;br /&gt;
NEdit — редактор голубых кровей. Он потрясающе прост в использовании для новичков и при этом имеет огромное количество инструментов для опытных пользователей. Сюда входят подсветка синтаксиса более чем для 30 языков программирования, автоматические отступы и гибкие настройки сворачивания слишком длинных строк. Еще одной удобной функцией является отображение номеров строк, которое позволяет сразу же видеть, где в файле расставлены символы перевода строки, а также сильно помогает при отладке.&lt;br /&gt;
&lt;br /&gt;
Этот редактор может использовать для обработки текста любую команду оболочки, причём сохранять для этого файл вовсе не обязательно. Некоторые пункты меню применяют этот метод для проверки орфографии (с помощью ispell), подсчёта слов (wc), и даже для сборки программы (make), а это значит что ваш код может быть откомпилирован и запущен прямо из текстового&lt;br /&gt;
редактора, что очень удобно при работе с компилируемыми языками программирования вроде C или Java.&lt;br /&gt;
&lt;br /&gt;
Поиск в NEdit, как и можно ожидать от редактора предназначенного для всех, поддерживает регулярные выражения, но не навязывает их. Вероятно, это самый лучший компромисс между потребностями новых и опытных пользователей. Также нам очень понравилась установка закладок. Она позволяет запомнить позицию в текстовом файле, чтобы потом вернуться к ней с помощью пары нажатий клавиш. Это бесценно, если вы часто переключаетесь между функциями их объявлениями в начале файла.&lt;br /&gt;
&lt;br /&gt;
Несмотря на свой довольно старомодный вид, NEdit делает работу, которую должен делать, и делает её хорошо. К сожалению, очень много людей прошли мимо этого редактора только потому, что он основан на библиотеке, которая уже не популярна.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Прекрасный редактор, сочетающий серьёзные возможности с простотой использования. Сложности при сборке являются его слабостью.&lt;br /&gt;
* Рейтинг — 8/10&lt;br /&gt;
&lt;br /&gt;
=== Vim ===&lt;br /&gt;
Разнорежимный, но мощный и почти вездесущий&lt;br /&gt;
* версия: 3&lt;br /&gt;
* Web: [http://www.vim.org www.vim.org]&lt;br /&gt;
* Цена: Бесплатно, по лицензии Vim License&lt;br /&gt;
&lt;br /&gt;
Vim относится к числу программ, которые ругают больше всех. Но при этом он же входит в число самых популярных приложений.&lt;br /&gt;
&lt;br /&gt;
Он имеет репутацию редактора, который совершенно невозможно освоить новичку и, пожалуй, он её заслуживает. Дело в том, что Vim использует разные режимы работы, что является возвращением к самым первым текстовым редакторам, работающим на древних текстовых терминалах, которые могли прокручивать текст только в одном направлении. интерфейс Vim основан на&lt;br /&gt;
программе vi (собственно, имя этого редактора обозначает «vi improved», то есть «улучшенный vi»), а тот в свою очередь был основан на редакторе ed. Если вы попробовали Vim и нашли его слишком сложным, мы советуем вам взять ed и попробовать поработать с ним. Он всё еще входит в большинство дистрибутивов и ясно показывает, как обстояли дела с вводом текста 20 лет назад.&lt;br /&gt;
&lt;br /&gt;
Два режима работы Vim часто в шутку различают так: «пищит» или «не пищит». Второй называется режимом вставки, и используется для того, чтобы вставить текст в файл. Он довольно прост и поддерживает всю функциональность, которую можно было бы ожидать: автоматические отступы, подсветку синтаксиса, поиск парных скобок и так далее. Эти, а также целый ряд других функций, могут быть включены или отключены в режиме, «который пищит» — командном режиме.&lt;br /&gt;
&lt;br /&gt;
Командный режим часто ставит новичков в тупик. Совершенно непонятно, что именно надо набрать, чтобы получить желаемый результат, несмотря на прекрасную систему справки.&lt;br /&gt;
&lt;br /&gt;
Нажатие &amp;amp;lt;I&amp;amp;gt; (большая буква i) позволяет вводить текст, а клавиша &amp;lt;esc&amp;gt; возвращает редактор в командный режим, позволяющий делать действительно замечательные вещи. Диапазон команд простирается от самых простых (например :q приводит к выходу из приложения) до очень сложных — например вы можете включить эмуляцию поведения vi, включить или выключить автоматические отступы или подсветку синтаксиса.&lt;br /&gt;
&lt;br /&gt;
Поиск и замена текста в Vim выполняются при помощи регулярных выражений, что дает куда большую точность и вариативность, чем обычный поиск. Например, Vim может заменить все вхождения слова ‘Linux’, которому предшествует слово ‘Format’ с аббревиатурой ‘PC’. Возможны и замены с более сложными условиями — лишь бы нужный фрагмент мог быть в принципе&lt;br /&gt;
описан регулярными выражениями. Другие редакторы вынуждают обращаться к внешним программам, вроде perl или sed.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Очень мощная, но сложная программа, включаемая в большинство дистрибутивов.&lt;br /&gt;
* Рейтинг — 9/10&lt;br /&gt;
&lt;br /&gt;
=== GNU Emacs ===&lt;br /&gt;
Редактор с расширениями, написанными на Lisp&lt;br /&gt;
* версия: 21.2.1&lt;br /&gt;
* Web: [http://www.gnu.org/software/emacs www.gnu.org/software/emacs]&lt;br /&gt;
* Цена: Бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Текстовый редактор Emacs вызывает в равной мере любовь и ненависть, и никого не оставляет равнодушным. Вероятно, это самое мощное приложение из числа рассматриваемых в данном тесте. В отличие от [[#Vim | Vim]], своего главного конкурента, Emacs работает всегда в одном и том же режиме. Дополнительные функции вызываются различными клавиатурными комбинациями. Множество приложений стараются снабдить набором «горячих клавиш», совместимым с Emacs, так что, вполне возможно, вы будете чувствовать себя здесь, как дома, даже если ни разу не запускали его раньше.&lt;br /&gt;
&lt;br /&gt;
У Emacs есть свои недостатки. Главный из них — следствие расширяемости — это большая (по сравнению с аналогами) жадность до оперативной памяти. Расширения к Emacs пишутся на языке Lisp, чаще используемом для создания элементов искусственного интеллекта в больших приложениях. Интерпретатор Lisp занимает большую часть памяти, потребляемой редактором. Это не проблема для современного компьютера, но старые машины могут временами не справляться с нагрузкой. Поэтому Emacs в шутку расшифровывают как «eighty Megabytes And Continues Swapping» («занял 80 мегабайт и хочет еще»). На самом деле Emacs — это editor Macros (редактор с макрокомандами).&lt;br /&gt;
&lt;br /&gt;
Конечно, именно возможность расширения и сделала этот редактор столь популярным. Emacs может быть использован и как графический web-браузер, и как почтовый клиент; для Emacs существует несметное число игр, включая тетрис, вариант игры eliza (текстовая игра-приключение в стиле 80-х) и множество других. Кроме того, Emacs можно использовать для составления расписаний и управления задачами.&lt;br /&gt;
&lt;br /&gt;
Некоторые люди используют Emacs в качестве основной рабочей среды и выполняют с его помощью все повседневные задачи. у них есть свой вариант расшифровки названия: Emacs Makes A Computer Simple (Emacs делает компьютер проще).&lt;br /&gt;
&lt;br /&gt;
Очень сложно найти такую функцию текстового редактора, которой бы не обладал Emacs. Это его основное предназначение, несмотря на всё обилие возможностей, которыми он оброс позже. В основном этот текстовый редактор использовался программистами, и в этом качестве Emacs особенно хорош. у него есть всё, включая пункты меню для компиляции набранного кода и вызова отладчика запущенной программы. Он умеет взаимодействовать с сервером CVS и способен показать различия между двумя файлами или применить патч.&lt;br /&gt;
&lt;br /&gt;
Как и Vim, Emacs может работать и в графическом, и в текстовом режимах. Это позволяет использовать привычный редактор, даже если графическая среда не запускается, пусть и без видимых меню и панелей инструментов. Но после длительного пользования программой вы заметите, что почти перестали обращать на них внимание, так как любая функция вызывается с помощью клавиатурной комбинации.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Великолепный, расширяемый редактор для программистов, но требования к оперативной памяти могут стать проблемой.&lt;br /&gt;
* Рейтинг — 8/10&lt;br /&gt;
&lt;br /&gt;
=== CoolEdit ===&lt;br /&gt;
Редактор с отладчиком и расширениями на Python&lt;br /&gt;
* версия: 3.17&lt;br /&gt;
* Web: ftp://ftp.ibiblio.org/pub/Linux/apps/editors/X/cooledit&lt;br /&gt;
* Цена: Бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Несмотря на очевидное сходство с другими рассмотренными здесь редакторами, CoolEdit оставляет совершенно иное впечатление. Возможно, так происходит потому, что вместо использования готовой оконной библиотеки авторы предпочли разработать свою собственную. Учтите, что программа была написана в 1996 году, еще до появления стандартных инструментариев KDE и Gnome. В этом свете их решение кажется более осмысленным.&lt;br /&gt;
&lt;br /&gt;
CoolEdit предоставляют всю функциональность, которую можно ожидать от текстового редактора — в том числе столь любимые нами подсветку синтаксиса, автоматический отступ и проверку правописания. Более того, вы можете расширить его возможности при помощи сценариев. Это проще, чем в случае с Emacs — здесь используется Python, а не Lisp, поэтому достигнуть желаемого можно за более короткое время. Можно выбрать и другие языки сценариев, но они не настолько хорошо интегрируются с редактором.&lt;br /&gt;
&lt;br /&gt;
Уникальной возможностью CoolEdit, выделяющей его среди других редакторов этого раздела, является встроенный отладчик. Кое-кто может попытаться «сэкономить» и делегировать эти функции внешней копии GDB, но в CoolEdit встроен самый настоящий отладчик: нажатие клавиши — и ваша программа скомпилирована и отдана ему на выполнение. Это очень удобно для быстрого поиска ошибочных мест в коде. Вы можете легко исправить их, а затем протестировать программу еще раз. Наличие встроенного отладчика лишний раз подтверждает расширяемость CoolEdit — в Emacs есть много подключаемых модулей, но далеко не каждый из них настолько полезен, как этот.&lt;br /&gt;
&lt;br /&gt;
Любопытно, но CoolEdit позволяет отправить письмо, используя текущий текст в качестве тела сообщения. Не очень понятно, зачем это может потребоваться, особенно с учетом того, что получить почту с помощью данного приложения невозможно. Вероятно, это является заделом на будущее, но нам не вполне ясно, зачем авторам надо конкурировать с Emacs, у которого уже есть устоявшаяся пользовательская база.&lt;br /&gt;
&lt;br /&gt;
Мы также испытывали проблемы при сборке CoolEdit: программе необходимы библиотеки X Window System, но сценарий настройки не сообщает вовремя об их отсутствии. К счастью, это можно легко исправить, а установка из бинарных пакетов полностью снимает проблему, так что это не суть важно.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Выглядит несимпатично, но, если вам нужен встроенный отладчик, возможно это как раз то, что вы ищете.&lt;br /&gt;
* Рейтинг — 6/10&lt;br /&gt;
&lt;br /&gt;
=== Minimum Profit ===&lt;br /&gt;
Серьезный редактор с несерьезным именем&lt;br /&gt;
* Версия: 3.3.10&lt;br /&gt;
* Web: http://www.triptico.com/software/mp.html&lt;br /&gt;
* Цена: Бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Minimum Profit — еще один редактор, который может работать как из графического сеанса X, так и из консоли, что позволяет выбрать более подходящий режим.&lt;br /&gt;
&lt;br /&gt;
Хотя некоторые части Minimum Profit датированы еще 1991 годом, маловероятно, что на него набредут многие пользователи, поскольку это сравнительно небольшой проект, поддерживаемый одним человеком.&lt;br /&gt;
&lt;br /&gt;
Это сказывается на функциональности, которая весьма неравномерна. Например, редактор поддерживает вкладки, позволяющие работать более чем с одним файлом, но не умеет отменять последнее действие (undo). Подсветка синтаксиса поддерживается для многих языков, однако поддержка регулярных выражений, столь любимая многими программистами, отсутствует. Их, однако, можно установить как опцию.&lt;br /&gt;
&lt;br /&gt;
Эти вариации, по-видимому, происходят от того, что Minimum Profit разрабатывается одним человеком, анжелом Ортега (Angel Ortega), который добавляет в него те функции, которые считает нужными. Тем не менее, Minimum Profit куда проще в использовании, чем [[#Vim | Vim]] или [[#Emacs | Emacs]] и гораздо более функционален, чем простые редакторы вроде [[#nano | nano]].&lt;br /&gt;
&lt;br /&gt;
Одной из наиболее интересных особенностей Minimum Profit является умение объяснить любое слово в редактируемом файле. Просто наведите на него курсор, и программа выполнит для вас поиск по страницам man, perldoc или ri (сокращение от Ruby Information).&lt;br /&gt;
&lt;br /&gt;
Другой заслуживающей упоминания возможностью является шифрование файла с помощью пароля. Хотя это не столь ново (Vim поддерживает такую функцию уже какое-то время), немногие редакторы делают шифрование столь очевидным или легким в использовании.&lt;br /&gt;
&lt;br /&gt;
Minimum Profit поддерживает шаблоны, которые особенно полезны при создании документов, web-страниц или макросов. Если у вас есть задача, которая выполняется многократно, макросы могут сэкономить вам кучу времени — например, вставить верхние и нижние колонтитулы в несколько файлов сразу или просмотреть все открытые файлы на предмет наличия некоторой строки и заменить ее другой. Прочие редакторы обладают аналогичными функциями, но здесь ими куда проще воспользоваться.&lt;br /&gt;
&lt;br /&gt;
Как редактор среднего уровня, Minimum Profit справился со многими задачами, оказавшимися не под силу другим. В будущем мы надеемся увидеть еще больше.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Удачно заполняя нишу между простым блокнотом и продвинутым редактором для разработчиков, Minimum Profit предлагает лучшие функции каждого из них.&lt;br /&gt;
* Рейтинг — 7/10&lt;br /&gt;
&lt;br /&gt;
=== gedit ===&lt;br /&gt;
Текстовый редактор Gnome оставляет желать лучшего…&lt;br /&gt;
* Версия: 2.8.3&lt;br /&gt;
* Web: http://www.gnome.org/projects/gedit&lt;br /&gt;
* Цена: бесплатно, по лицензии GPL&lt;br /&gt;
&lt;br /&gt;
Gedit — официальный редактор Gnome, так что он, вероятно, установлен на любом компьютере, на котором используется (или хотя бы имеется) эта популярная среда. В отличие от KDE, имеющей два редактора, предназначенных для разных целей, Gnome предоставляет в ваше распоряжение всего один. В результате, gedit находится где-то между простейшим Блокнотом и редактором для программистов, причем толком не справляется ни с одной из этих задач.&lt;br /&gt;
&lt;br /&gt;
Хотя gedit предлагает традиционные «программистские» функции: подсветку синтаксиса, отступы и так далее, ни одна из них не очевидна в момент первого запуска программы. Поиск по опциям и настройкам выявляет потенциал gedit, но мы бы предпочли видеть его сразу же после старта — пустое меню смущает пользователя сильнее, чем переполненное непонятными опциями.&lt;br /&gt;
&lt;br /&gt;
Даже будучи успешно обнаруженной, функциональность gedit оказывается слишком примитивной для того, чтобы быть полезной: поиск не поддерживает регулярных выражений, подсветка синтаксиса обеспечивается лишь в небольшом числе языков, причем отсутствуют самые привычные (например, сценарии на языке оболочки). Метод подсветки, по неясным нам причинам, делает различие между компилируемыми и интерпретируемыми языками. Похоже, все сделано для того, чтобы запутать пользователя как можно сильнее.&lt;br /&gt;
&lt;br /&gt;
О расширяемости посредством подключаемых модулей или через выполнение сценариев оболочки с открытым файлом не идет и речи. Пункт меню «Run Shell Command» наличествует, однако, не ясно, как применить его к тому, что в данный момент редактируется. Проверка правописания также оказалась с дефектом (оказывается, апострофы играют важную роль!).&lt;br /&gt;
&lt;br /&gt;
Gedit хорошо бы смотрелся в роли простого Блокнота, без каких-либо намеков на программистский функционал. К сожалению, эти возможности в него все же напиханы, что смущает и начинающего, и опытного пользователя, так что рекомендовать gedit кому-либо из них не имеет смысла.&lt;br /&gt;
&lt;br /&gt;
'''Вердикт Linux Format'''&lt;br /&gt;
&lt;br /&gt;
Gedit offers little to entice either the novice or experienced users.&lt;br /&gt;
* Рейтинг — 3/10&lt;br /&gt;
&lt;br /&gt;
=== Наш вердикт ===&lt;br /&gt;
'''Vim — 9/10'''&lt;br /&gt;
&lt;br /&gt;
Даже самые простые из рассмотренных нами редакторов годятся для того, чтобы внести пару изменений в конфигурационный файл. Один из больших споров, длящихся уже ни одно десятилетие, происходит вокруг того, кто обеспечивает лучшую среду для редактирования текста: Vi или [[#GNU Emacs | Emacs]]. У каждой стороны есть свои победители, и с учетом того, что любители Vi и [[#GNU Emacs | Emacs]] хотят от редакторов совершенно разных вещей, этот вопрос вряд ли будет решен в ближайшее десятилетие.&lt;br /&gt;
&lt;br /&gt;
Хотя [[#GNU Emacs | GNU Emacs]] и [[#Vim | Vim]] перешли от текстового интерфейса к графическому, сохранив свою внутреннюю структуру, новые пользователи скорее всего выберут одно из графических приложений, включенных в их любимую среду обитания, например, [[#Kate | Kate]]. Эти редакторы все чаще используются и новыми пользователями, знакомыми со старыми редакторами — по крайней мере, до тех пор, пока им не понадобится что-нибудь более мощное.&lt;br /&gt;
&lt;br /&gt;
[[#Kate | Kate]] показал себя с лучшей стороны, также как и другой графический редактор, [[#NEdit | NEdit]]. Каждого из них вполне достаточно для создания среды программирования. [[#Kate | Kate]], по-видимому, установлен в большем числе систем и обладает лучшей поддержкой проектов, что упрощает работу с большими программами.&lt;br /&gt;
&lt;br /&gt;
Сила [[#NEdit | NEdit]] кроется в его простоте. У него было несколько лет, чтобы построить совершенное окружение, делающее простые и сложные изменения прямолинейными и, когда речь идет о редактировании единичных файлов, трудно предложить что-либо лучшее.&lt;br /&gt;
&lt;br /&gt;
Проекту Gnome есть чему поучиться у других, и если бы [[#NEdit | NEdit]] удалось пересобрать с GTK, получился бы куда более полезный продукт, чем [[#gedit | gedit]], который оказался единственным аутсайдером. Но даже у него есть определенный потенциал — если разработчики сфокусируются на одной группе пользователей, это резко облегчит ситуацию.&lt;br /&gt;
&lt;br /&gt;
Новым пользователям, ищущим консольный редактор получше [[#nano | nano]] рекомендуем обратить внимание на [[#Minimum Profit | Minimum Profit]]. Его ясный интерфейс, а также простота изучения могут вам понравиться. Это пока не самый популярный редактор, так что его нет во многих системах с установкой по умолчанию. [[#nano | Nano]] или его предок Pico, напротив, прямо-таки вездесущи.&lt;br /&gt;
&lt;br /&gt;
В итоге, лучшим редактором, который мы смогли найти, оказался [[#Vim | Vim]]. Он сложен в изучении, но чрезвычайно мощен и предъявляет малые требования к памяти по сравнению с [[#Emacs | Emacs]]. Он распространен очень широко и достаточно мал, чтобы поместиться на аварийный диск.&lt;br /&gt;
&lt;br /&gt;
Если вы всерьез хотите заняться изучением внутренностей Linux — попробуйте [[#Vim | Vim]]. Вскоре вы научитесь выживанию и в более страшных ситуациях.&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
!'''Название'''&lt;br /&gt;
!'''Оконная библиотека'''&lt;br /&gt;
!'''Текстовый режим'''&lt;br /&gt;
!'''Подсветка синтаксиса'''&lt;br /&gt;
!'''Язык сценариев'''&lt;br /&gt;
!'''Отладчик'''&lt;br /&gt;
!'''Регулярные выражения'''&lt;br /&gt;
|-&lt;br /&gt;
|Cooledit&lt;br /&gt;
|Home-made&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|Python&lt;br /&gt;
|V&lt;br /&gt;
|V&lt;br /&gt;
|-&lt;br /&gt;
|gedit&lt;br /&gt;
|GTK&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|N/A&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GNU Emacs&lt;br /&gt;
|GTK&lt;br /&gt;
|V&lt;br /&gt;
|V&lt;br /&gt;
|Lisp&lt;br /&gt;
|External (GBD)&lt;br /&gt;
|V&lt;br /&gt;
|-&lt;br /&gt;
|Kate&lt;br /&gt;
|Qt&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|Plugins&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|-&lt;br /&gt;
|nano&lt;br /&gt;
|None&lt;br /&gt;
|V&lt;br /&gt;
|&lt;br /&gt;
|N/A&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Nedit&lt;br /&gt;
|Motif&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|Plugins&lt;br /&gt;
|External (GBD)&lt;br /&gt;
|V&lt;br /&gt;
|-&lt;br /&gt;
|Minimum Profit&lt;br /&gt;
|GTK&lt;br /&gt;
|V&lt;br /&gt;
|V&lt;br /&gt;
|N/A&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|-&lt;br /&gt;
|Vim&lt;br /&gt;
|GTK&lt;br /&gt;
|V&lt;br /&gt;
|V&lt;br /&gt;
|Perl/Python/Ruby&lt;br /&gt;
|&lt;br /&gt;
|V&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Сравнение]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Astaro_Security_Linux_6</id>
		<title>LXF70:Astaro Security Linux 6</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Astaro_Security_Linux_6"/>
				<updated>2008-03-14T02:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Astaro Security Linux 6 =&lt;br /&gt;
'''''Дэвид Коулсон''' рассматривает межсетевой экран на базе Linux, для работы с которым не надо быть асом командной строки''&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
Заголовок=Самое главное|&lt;br /&gt;
Содержание=&lt;br /&gt;
* Версия: 6.0&lt;br /&gt;
* Разработчик: Astaro AG&lt;br /&gt;
* Web: [http://www.astaro.com www.astaro.com]&lt;br /&gt;
* Цена: От $290 за 10 пользователей|&lt;br /&gt;
Ширина=250px&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Linux — идеальная платформа для создания межсетевых экранов: он не требователен к ресурсам и весьма конкурентоспособен. Однако, сложность интерфейса затрудняет внедрение Linux на промышленных предприятиях. Складывается впечатление, что многие люди, держащие в руках бразды правления ИТ, просто недолюбливают командную строку. Осознав этот факт, проекты вроде [http://www.smoothwall.org/ SmoothWall] или [http://www.clarkconnect.com/ ClarkConnect] преуспели в создании продуктов с простым графическим интерфейсом, доступным даже новичку. В этой статье мы поговорим о&lt;br /&gt;
другом дружественном пользователю продукте — Astaro Security Linux, который часто позиционируется как лучшее решение в своей области.&lt;br /&gt;
&lt;br /&gt;
Инсталляция Astaro происходит в несколько щелчков мышью. Все, что от вас требуется — это принять лицензионное соглашение и ввести IP-адреса. Разбиение диска происходит автоматически, однако, установка на программный RAID-массив не возможна. Astaro поддерживает множество PATA, SATA и SCSI-контроллеров, что позволяет использовать RAID окольным образом, но было бы приятно иметь доступ и ко встроенным RAID-возможностям Linux.&lt;br /&gt;
&lt;br /&gt;
Установка с компакт-диска занимает примерно пять минут, причем большая часть этого времени тратится на чтение данных с носителя. После инсталляции система перезагружается и — пожалуйста: Astaro доступен администратору через web-интерфейс.&lt;br /&gt;
&lt;br /&gt;
В том, что касается интерфейса, Astaro аккуратен и весьма дружественен пользователю. Каждая его секция, от настроек пакетного фильтра до конфигурации сетевых интерфейсов и системы обнаружения вторжений, имеет подобающий вид и поведение, так что заблудиться здесь будет непросто. Впрочем, в разрешении 1024x768 интерфейс выглядит несколько стесненным.&lt;br /&gt;
&lt;br /&gt;
=== Щелкни и настрой ===&lt;br /&gt;
Astaro прост в настройке — после того, как введены параметры сетевых интерфейсов, все становится на свои места. Имея поддержку VLAN и умея работать в режиме моста, Astaro легко впишется в любую сеть. Он также может осуществлять прозрачную фильтрацию трафика или следить за попытками вторжения без какоголибо изменения существующей инфраструктуры. Это дает Astaro огромное преимущество по сравнению с Cisco PIX и подобными решениями, которые очень сложно заставить работать гладко.&lt;br /&gt;
&lt;br /&gt;
Astaro поддерживает виртуальные частные сети (VPN) IPSec и PPtP, что позволяет устанавливать защищенное соединение «один к одному» между самыми различными платформами, а также обеспечивает возможности удаленного доступа для пользователей, которым необходимо безопасное подключение к локальной сети предприятия. Для Astaro доступна разновидность клиента&lt;br /&gt;
NCP IPsec, с помощью которого Windows-системы легко связывались с нашим тестовым брандмауэром. Включение IPSec и настройка клиентов в Astaro занимает околополучаса, так что вам не придется жертвовать безопасностью во имя простоты использования.&lt;br /&gt;
&lt;br /&gt;
=== Отчетность ===&lt;br /&gt;
Создание отчетов является одной из самых сильных сторон Astaro. Через web-интерфейс доступно внушительное количество графиков, а также сводный отчет, объединяющий их и прочую информацию в одном документе.&lt;br /&gt;
&lt;br /&gt;
К сожалению, возможности просмотра журнала инцидентов, связанных с IDS (системой обнаружения вторжений) и нарушением правил пакетного фильтра в Astaro ограничены. Если бы только разработчики применили здесь те же стандарты дружественности пользователю, что и в основном интерфейсе! Через web доступны стандартные системные журналы Linux, так что, если вы недостаточно хорошо знакомы с этой ОС и не используете Astaro для отладки, они вряд ли окажутся особенно полезными.&lt;br /&gt;
&lt;br /&gt;
Astaro — удачный выбор для небольших и средних предприятий. Нам не удалось собрать компьютер, сетевые карты которого не были бы опознаны Astaro, несмотря на то, что мы выбирали дешевые материнские платы со странными чипсетами.&lt;br /&gt;
&lt;br /&gt;
Astaro не делает ничего такого, чего нельзя было бы сделать в Debian или Fedora Core. Однако, легкость в установке и управлении, предлагаемая Astaro, может привлечь ИТ-департаменты, а наличие 30-ти дневной тестовой версии говорит лишь об одном: нет решительно никаких причин не опробовать этот продукт в деле!&lt;br /&gt;
&lt;br /&gt;
=== Вердикт Linux Format ===&lt;br /&gt;
* Возможности — 8/10&lt;br /&gt;
* Производительность — 8/10&lt;br /&gt;
* Простота использования — 7/10&lt;br /&gt;
* «Цена/качество» — 8/10&lt;br /&gt;
Функциональный брандмауэр, подходящий практически каждому пользователю&lt;br /&gt;
* '''Рейтинг — 8/10'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Soul_Ride</id>
		<title>LXF70:Soul Ride</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Soul_Ride"/>
				<updated>2008-03-14T02:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: викификация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Soul Ride =&lt;br /&gt;
'''''Грэхэм Моррисон''' встает на виртуальную доску, одевает очки и делает страшное лицо — но все равно не может удержаться от разочарования.''&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
Заголовок=Самое главное|&lt;br /&gt;
Содержание=Симулятор сноуборда с упором на реалистичность склонов в ущерб эффектным трюкам. См. также: Tux Racer.&lt;br /&gt;
* Издатель: Linux Game Publishing&lt;br /&gt;
* Разработчик: Slingshot&lt;br /&gt;
* Web: [http://www.linuxgamepublishing.com www.linuxgamepublishing.com]&lt;br /&gt;
* Цена: £14.00|&lt;br /&gt;
Ширина=250px&lt;br /&gt;
}}&lt;br /&gt;
Сноубординг. Удивительно, но ощущение того, что обе ваши ноги крепко-накрепко прибиты к куску дерева, а сами вы несетесь вниз по крутому снежному склону, считается лучшим в мире. Это коктейль из гор, снега и гравитации, который каждую зиму собирает на трассах тысячи людей, жаждущих адреналина.&lt;br /&gt;
&lt;br /&gt;
Предпринималось множество попыток восстановить эту магию и на ПК, и на игровых приставках. Такие игры, как SSX 3 от Electronic Arts или даже Microsoft Amped 2 худо-бедно передавали настроение, однако, пользователям Linux до сего момента приходилось довольствоваться&lt;br /&gt;
Tux Racer’ом. Конечно, экипированный пингвин на склоне — это уже не совсем то…&lt;br /&gt;
&lt;br /&gt;
=== Хотите оказаться там? ===&lt;br /&gt;
Так давайте же поприветствуем Soul Ride, выпущенный для Windows несколько лет назад! Тогда эта игра использовалась в качестве рекламы настоящих горнолыжных курортов: Стрэттона, Джей Пика и Брекенриджа. Каждый из них бесплатно распространял игровой «движок» и свою географически корректную трехмерную модель. По замыслу авторов, в процессе игры вы получали представление о трассе,&lt;br /&gt;
а потом отправлялись туда на каникулы.&lt;br /&gt;
&lt;br /&gt;
Ситуация стала более интересной в январе 2003 года, когда «движок» был опубликован по лицензии GPL. Проект и по сей день можно найти где-то на sourceforge.net, но в итоге на свет родилась версия клиента для Linux (а также OS X).&lt;br /&gt;
&lt;br /&gt;
Компания Linux Game Publishing (спасибо за Hyperspace Delivery Boy и Majesty Gold, ребята) оживила Soul Ride, превратив его в полноценную Linux-игру, включающую три реальных и два вымышленных (Mammoth и tuckerman Ravine) курорта. Она поставляется на одном компакт-диске, требует для своей работы ядро 2.2.x или выше и компьютер, оснащенный процессором с тактовой частотой не менее 500 МГц&lt;br /&gt;
и видеокартой с поддержкой OpenGL. В общем, подойдет любая машина, выпущенная в последние несколько лет.&lt;br /&gt;
&lt;br /&gt;
=== Просто и ясно ===&lt;br /&gt;
Soul Ride не похожа на другие симуляторы сноуборда. Главная цель, как обычно, достигнуть конца склона за минимальное время и с максимальным количеством трюков, но вас никто не оштрафует за слишком медленное движение или нестандартный маневр.&lt;br /&gt;
&lt;br /&gt;
Это особенно важно с точки зрения философии Soul Ride, которая построена вокруг физики взаимодействия между спортсменом, доской и снегом, а не вокруг фейерверков и окружающего ландшафта.&lt;br /&gt;
&lt;br /&gt;
Графика выглядела бледно даже в момент выхода игры, а за четыре прошедших года ситуация только ухудшилась. Даже среди малочисленного развлекательного ПО для Linux, графика Soul Ride находится не на высоте.&lt;br /&gt;
&lt;br /&gt;
Особенно пострадала фигурка катающегося, модели которого явно не хватает треугольников и стилиста, знающего, как одеваются спортсмены в этом сезоне. Авторы игры даже не попытались изобразить крепления, и все выглядит так, будто он одел пару Док Мартенcов слишком большого размера, которые крутятся на нем, как уж на сковородке. Правда, есть и режим от первого лица, но в нем совершенно невозможно регулировать угол наклона вашего героя.&lt;br /&gt;
&lt;br /&gt;
К счастью, реалистичная физика компенсирует все огрехи изображения — вы действительно чувствуете себя, как на настоящем сноуборде.&lt;br /&gt;
&lt;br /&gt;
Как и в действительности, пустившись прямо вниз по склону, вы тут же почувствуете резкое ускорение. Управляйте своей скоростью, чередуя скатывание с поворотами от одного края склона к другому, позвольте доске проскальзывать под вашими ногами, чтобы изменить угол атаки. Обычно вы балансируете на передней или на задней грани, и когда вам потребуется развернуться у края склона, это будет не так-то просто. Пустите сноуборд прямо вниз и тут же перенесите свой вес на противоположную сторону.&lt;br /&gt;
&lt;br /&gt;
По сути, управление сноубордистом ничем не отличается настоящего катания. Soul Ride прекрасно передает все ощущения. Когда трасса сужается, вам приходится проводить больше времени в свободном спуске и скорость сноуборда быстро становится некомфортной. Старайтесь сохранять контроль до тех пор, пока не достигнете более широкого места, где можно будет описать кривую и немного замедлиться.&lt;br /&gt;
&lt;br /&gt;
Физика игры легко справляется со всеми этими аспектами. Положение центра тяжести игрока над сноубордом оказывает существенное влияние на его поведение, и вам придется частенько наклоняться, чтобы сгладить неровности склона при приземлении.&lt;br /&gt;
&lt;br /&gt;
=== Следите за собой! ===&lt;br /&gt;
Пройдет немного времени, прежде чем вы привыкнете к своему сноуборду. В игре можно использовать джойстик, мышь или клавиатуру, но в последнем случае вы потеряете возможность тонкого контроля. Базовое управление состоит в перемещении влево-вправо, для изменения угла между сноубордом и склоном, что эквивалентно переносу массы тела взад-вперед, имеющему место в реальной жизни. Это нужно делать очень осторожно, поскольку излишняя резкость может привести к падению. Левая кнопка мыши предназначается для прыжков. Сноубордист сгибается во время нажатия кнопки и распрямляется после ее отпускания.&lt;br /&gt;
&lt;br /&gt;
Прыгать следует при приближении к гребешкам или трамплинам — в этом случае есть шанс немного пролететь по воздуху. Предполагается, что в это время вы будете выполнять какие-нибудь трюки, но чтобы это получилось, необходимо перемещаться строго вдоль одной оси. Например, чтобы перевернуться в воздухе влево, необходимо дернуться в этом направлении в момент прыжка. Проблема состоит в том, что выделить одно-единственное направление при помощи мыши очень сложно и в результате ваш сноубордист взмывает ввысь, махая своими&lt;br /&gt;
конечностями во все стороны… до тех пор, пока его не остановит удачно подвернувшийся сугроб.&lt;br /&gt;
&lt;br /&gt;
Чтобы перейти к следующему маршруту необходимо сначала целым и невредимым добраться до подножия предыдущей горы. Скорость не так важна, хотя каждый маршрут имеет свое «нормальное» время. Вам необязательно безупречно ездить, так как у вашего игрока будет&lt;br /&gt;
целых три жизни. Если вы сошли с дистанции слишком рано, вам будет предложено откатиться на предыдущую точку и повторить попытку.&lt;br /&gt;
&lt;br /&gt;
Это устраняет некоторое недовольство связанное с управлением и добавляет в игру новое измерение — теперь вы можете попробовать покорить неприступный склон различными способами.&lt;br /&gt;
&lt;br /&gt;
=== Нечаянная заморозка ===&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Что скажет Ник…|&lt;br /&gt;
Содержание=Представьте себе Tux Racer без селедки. Не считая проблем с графикой, это приличная игра.|&lt;br /&gt;
Ширина=100px&lt;br /&gt;
}}&lt;br /&gt;
Изображения гор примитивны, но приемлемы. Как мы уже упоминали, они основаны на реальных данных и должны выглядеть соответствующе. Все текстуры, как и ландшафт, невысокого разрешения, однако, со своей задачей справляются. Графика достаточно быстрая, но мы столкнулись с серьезными проблемами, приводящими к регулярным зависаниям игры. Жалобы на них поступали еще на ранних этапах развития Linux-версии и очень жаль, что эти ошибки до сих пор не устранены.&lt;br /&gt;
&lt;br /&gt;
В том, что касается звука, разработчики явно черпали свое вдохновение из чайника. Звук, издаваемый сноубордом при прыжке по заснеженным холмикам весьма напоминает свист пара при приближении воды к точке кипения, а при приближении к более спокойным участкам она слегка охлаждается. Аллегория усиливается «дымком», вырывающимся из-под заднего конца сноуборда, который, по замыслу авторов, должен обозначать снежную пыль.&lt;br /&gt;
&lt;br /&gt;
Вы также можете увести своего героя с лыжни, используя режим Heli-Drop (прыжок с вертолета). Вам будет предложена трехмерная модель всего горногомассива, на которой можно вручную указать точку старта. В связи со случайным характером снежного покрова в избранном вами месте, стартовать бывает непросто. Этот режим лишь упрочивает позиции Soul Ride, усиливая реалистичность ощущений.&lt;br /&gt;
&lt;br /&gt;
Как давно принято в подобных играх, здесь существует режим видеосъемки, в котором можно сохранить и просмотреть свои лучшие спуски. Воспроизведение можно останавливать, перематывать и замедлять, а камера обычно выбирает удачную позицию для съемки особо красивых трюков и прыжков, которые вы хотели бы запомнить.&lt;br /&gt;
&lt;br /&gt;
При вынесении окончательного решения по этой игре, трудно оставаться объективным. Если вы не увлекаетесь сноубордом, то, скорее всего, пропустите ее как еще одну старую разработку с посредственной графикой, проблемами с отображением и тенденцией к зависанию.&lt;br /&gt;
&lt;br /&gt;
Однако, если вы — увлеченный сноубордист, то полюбите ее. Она действительно позволяет почувствовать в крови адреналин, появляющийся в настоящей схватке.&lt;br /&gt;
&lt;br /&gt;
В эту игру хорошо играть в жаркий летний полдень, ожидая той ночи, когда первый мороз нарисует узоры на ваших окнах.&lt;br /&gt;
&lt;br /&gt;
=== Вердикт Linux Format ===&lt;br /&gt;
* Возможности: 4/10&lt;br /&gt;
* Производительность: 6/10&lt;br /&gt;
* Простота использования: 6/10&lt;br /&gt;
* «Цена/качество»: 7/10&lt;br /&gt;
Занятно, но чего-то не хватает. Можно было бы сделать намного лучше.&lt;br /&gt;
* '''Рейтинг: 6/10'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:Studio_To_Go!</id>
		<title>LXF70:Studio To Go!</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:Studio_To_Go!"/>
				<updated>2008-03-14T02:43:36Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Studio To Go! =&lt;br /&gt;
'' '''Грэхем Моррисон''' рассматривает дистрибутив, который может превратить ваш серый ящик в студию Abbey Roads. Но что это: Beatles For Sale или Sergeant Pepper?''&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|&lt;br /&gt;
Заголовок=Самое главное|&lt;br /&gt;
Содержание=Подходит даже для новичков и содержит обескураживающее количество программ не только для работы со звуком. В качестве альтернатив можно рассматривать два свободных дистрибутива: Apodio и AGNuLA.&lt;br /&gt;
* Разработчик: Fervent Software&lt;br /&gt;
* Сайт: [http://www.ferventsoftware.com www.ferventsoftware.com]&lt;br /&gt;
* Цена: примерно $90|&lt;br /&gt;
Ширина=250px&lt;br /&gt;
}}&lt;br /&gt;
Если вы следовали одному из недавно опубликованных нами руководств по работе со звуком, то уже знаете, что возможность использования Linux для записи и редактирования музыки становится все более осязаемой. Существует множество специализированных приложений, начиная с секвенсеров и заканчивая инструментами для звукозаписи. Все эти программы связаны&lt;br /&gt;
единым транспортным слоем.&lt;br /&gt;
&lt;br /&gt;
Обратной стороной этого разнообразия является сложность, как часто это бывает в случае с Linux. Как известно, сложность — это идеальное оправдание для тех, кто не желает ничего делать.&lt;br /&gt;
&lt;br /&gt;
Fervent Software разработала решение для записи и обработки аудио, и имя ему — Studio To Go (в дальнейшем для краткости STG). STG — это LiveCD на основе Linux, переполненный всевозможными приложениями для работы со звуком и не нуждающийся в какой-либо настройке. Это означает, что вам не придется конфигурировать и собирать ядро, устанавливать аудиодрайверы, настраивать мистический протокол Jack или плясать с бубном для того, чтобы извлечь из виртуальных инструментов хоть какой-нибудь звук. Смысл STG в том, что он просто работает.&lt;br /&gt;
&lt;br /&gt;
Соучредителем английской компании Fervent Software является Крис Кэннем (Chris Cannam), один из основных разработчиков звукового редактора RoseGarden. Fervent Software активно продвигает открытое программное обеспечение и Linux, особенно для использования в сфере образования. Основной мотивацией для создания STG являлась сложность настройки RoseGarden, возникающая у многих пользователей. Это не недостаток RoseGarden, скорее, причина в том, что Linux более подходит для рабочего стола, нежели для операций со звуком.&lt;br /&gt;
&lt;br /&gt;
=== Алло, студия? ===&lt;br /&gt;
STG основан на KNOPPIX, однако существенно отличается от него. Вы просто вставляете компакт-диск в привод, перезагружаетесь, и (при правильных настройках BIOS) через несколько минут попадаете в удобное окружение KDE 3.3.1. Если кто-нибудь в это время посмотрит вам через плечо, он наверняка примет вас за звукорежиссера со стажем. На рабочий стол выведены ярлыки аудиоприложений, а на нижней панели расположены датчики загрузки процессора и оперативной памяти, а также универсальный микшер.&lt;br /&gt;
&lt;br /&gt;
На первый взгляд выглядит впечатляюще, и все благодаря полнофункциональной аудиосистеме, автоматически настраивающейся при загрузке. Низкая латентность и малое время отклика жизненно важны для работы профессиональных аудиоприложений. Протокол Jack уже настроен, и все аудиоприложения (включая проигрыватель XMMS) сконфигурированы для работы с ним.&lt;br /&gt;
&lt;br /&gt;
STG поддерживает те же звуковые карты, что и любой другой дистрибутив Linux. Сюда входит оборудование от Creative, большинство USB-устройств и некоторые полупрофессиональные карты, такие как M-Audio и Hammerfall. Поддерживаются и встроенные звуковые карты, одну из которых мы использовали при тестировании.&lt;br /&gt;
&lt;br /&gt;
Как и в других LiveCD-дистрибутивах, домашняя директория расположена прямо в оперативной памяти, что не вполне надежно. Это общая черта всех LiveCD, требующая особого внимания: любой сбой питания может навсегда уничтожить вашу работу.&lt;br /&gt;
&lt;br /&gt;
Будучи основанным на KNOPPIX, STG может быть без труда установлен на жесткий диск, но Fervent Software рекомендует использовать внешние накопители для хранения данных. USB-носители монтируются автоматически и появляются на рабочем столе.&lt;br /&gt;
&lt;br /&gt;
=== Запускаем VST ===&lt;br /&gt;
Конфигурация по умолчанию — главный козырь STG, и, что очень важно, система уже полностью готова к работе с VST-расширениями. Поддержка VST необходима для использования обширной коллекции высококачественных подключаемых модулей, доступных в Windows. VST — это наиболее распространенный формат для звуковых эффектов и синтезаторов, а STG фактически обеспечивает каркас для работы с ними прямо «из коробки». Ручная же настройка всего этого сводится к балансированию между эмуляцией Windows и низкоуровневой структурой Linux.&lt;br /&gt;
&lt;br /&gt;
Инструменты и эффекты VST можно использовать двумя способами. Во-первых, на рабочем столе имеется директория «VST Plugins». Открыв ее, вы сможете увидеть набор VST-инструментов&lt;br /&gt;
Windows в их родном формате. К моему удивлению, после щелчка на одном из них, подключаемый модуль автоматически загрузился и установил соединение с аудиоподсистемой. Это впечатляет.&lt;br /&gt;
&lt;br /&gt;
STG автоматически создает ссылки на все найденные Windows-разделы прямо на рабочем столе. Это значит, что вы можете найти любые VST-плагины, которые находятся на разделе Microsoft Windows. По умолчанию запись в эти разделы запрещена, однако достаточно правого клика на нужной папке, чтобы ее включить. Конечно же, это зависит и от поддержки соответствующей файловой системы ядром Linux. Другой способ работы с VST — использование их прямо из RoseGarden.&lt;br /&gt;
&lt;br /&gt;
=== Готовое рабочее место ===&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Программное обеспечение STG|&lt;br /&gt;
Содержание=&lt;br /&gt;
* Редакторы:&lt;br /&gt;
** Rosegarden&lt;br /&gt;
** Audacity&lt;br /&gt;
** ReZound&lt;br /&gt;
** Sweep&lt;br /&gt;
** Ardour&lt;br /&gt;
* Эффекты:&lt;br /&gt;
** Creox&lt;br /&gt;
** Jamin&lt;br /&gt;
** Time Machine&lt;br /&gt;
** Jack-Rack&lt;br /&gt;
** Freqtweak&lt;br /&gt;
** QMidiArp&lt;br /&gt;
** DestroyFX (VST)&lt;br /&gt;
* Синтезаторы:&lt;br /&gt;
** FluidSynth&lt;br /&gt;
** QSynth&lt;br /&gt;
** Timidity&lt;br /&gt;
** Hydrogen&lt;br /&gt;
** Hexter&lt;br /&gt;
** Aeolus&lt;br /&gt;
** AMS&lt;br /&gt;
** ZynAddSubFX&lt;br /&gt;
** Cosmogirl2k (VST)&lt;br /&gt;
** FearKiller (VST)&lt;br /&gt;
}}&lt;br /&gt;
И на рабочем столе, и в меню KDE имеются ссылки на приложения для работы со звуком. Кроме того, на рабочем столе содержатся папки с документацией и примерами. В папке с документацией вы можете обнаружить пошаговое руководство по работе с STG, а также руководства по работе с редактором RoseGarden и наборщиком нот LilyPond, которые являются двумя центральными приложениями в STG.&lt;br /&gt;
&lt;br /&gt;
RoseGarden (обзор которого вы можете прочесть в 65 выпуске Linux Format) признан лучшим аудиосеквенсером для пользователей Linux. Это зрелый продукт для редактирования MIDI и записи звука, поддерживающий сторонние эффекты и синтезаторы. Если вы раньше использовали Cubase на другой платформе, в RoseGarden вы почувствуете себя как дома.&lt;br /&gt;
&lt;br /&gt;
LilyPond — отличный инструмент для работы с нотами, и RoseGarden может легко экспортировать файлы в нужный формат. Тот факт, что LilyPond не имеет графического интерфейса, немного разочаровывает, тем более, что Fervent Software позиционирует STG как решение для новичков в Linux.&lt;br /&gt;
&lt;br /&gt;
Для непосредственного редактирования аудиофайлов STG предоставляет три наиболее распространенных приложения: Audacity, ReZound и Sweep. Каждый из них предназначен для разных видов редактирования. Audacity — полнофункциональный «комбайн», ReZound хорошо подходит для мониторинга, а Sweep быстр и эффективен. Все они настроены на использование Jack, так что вы можете не беспокоиться о конфликтах звукового оборудования. Это особенно радует, так как у Audacity и RoseGarden всегда были проблемы с распределением аудиоканалов. Для более сложных задач, связанных со звукозаписью, в дистрибутиве присутствует Ardour.&lt;br /&gt;
&lt;br /&gt;
Лучшие эффекты и синтезаторы, имеющиеся в Linux, уже установлены. Из них можно выделить Creox и FreqTweak. Creox — это набор различных эффектов, таких как distortion, phase, flange и tremelo направленных на обработку электрогитары. FreqTweak является отличным спектральным замедлителем, в котором можно менять фазу и задержку. Таким образом, можно добиться совершенно разного звучания, от эффекта «глубокой пещеры» до «атома гелия, вылетающего из солнечного ядра» (хотелось бы это послушать — прим.ред.).&lt;br /&gt;
&lt;br /&gt;
Среди синтезаторов хочется выделить Aeolus, потрясающе имитирующий звучащий орган. Смотреть там почти не на что, это просто окошко с множеством кнопок, но звучит очень величественно. Каждая кнопка представляет различные клавиши органа, предназначенные для изменения тембра звука. Звучит он очень реалистично, во многом благодаря встроенному эффекту эха. Другие синтезаторы, достойные упоминания — Alsa Modular Synth, Hexter для DX7 и FearKiller — действительно богатый VST-инструмент.&lt;br /&gt;
&lt;br /&gt;
=== Всеобъемлющий пакет ===&lt;br /&gt;
Мониторинг обеспечивается утилитой meterbridge. Это довольно недружественное приложение, запускающиеся из командной строки, но в STG вам всего лишь нужно выбрать нужный пункт в меню KDE, и программа автоматически соединится с выводом RoseGarden. После работы с аудиоприложениями, вам пригодится K3b, который поможет записать ваш шедевр на компакт-диск. Кроме того, в STG содержится множество программ, не связанных с обработкой звука, так что для пользователя он ничем не хуже других дистрибутивов. а вот для чего STG определенно не годится, так это для офисной работы.&lt;br /&gt;
&lt;br /&gt;
STG отлично подходит для компьютера, постоянно используемого для звукозаписи. Это хороший способ поэкспериментировать со звуком в Linux, тем более что эффекты и синтезаторы работают прямо «из коробки». На вопрос: «а стоящая ли это покупка, если большинство компонентов можно получить бесплатно?», однозначным ответом будет: «Да». В Fervent Software потратили много времени на разработку STG, и не так давно за те же деньги вы могли бы купить гораздо более примитивное программное обеспечение. С STG вам нет нужды тратить много времени на настройку, это время вы можете использовать на работу со звуком.&lt;br /&gt;
&lt;br /&gt;
=== Вердикт Linux Format ===&lt;br /&gt;
* Возможности — 8/10&lt;br /&gt;
* Производительность — 7/10&lt;br /&gt;
* Простота использования — 8/10&lt;br /&gt;
* «Цена/качество» — 7/10&lt;br /&gt;
Несмотря на то, что все ПО, входящее в STG, доступно бесплатно, его настройка займет очень много времени. В то же время сам STG не нуждается ни в какой настройке.&lt;br /&gt;
* '''Рейтинг — 8/10'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70</id>
		<title>LXF70</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70"/>
				<updated>2008-03-13T17:05:11Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Учебники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;[[Изображение:Lxf70.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LinuxFormat 70 (1), Сентябрь 2005 ==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=== Обзоры ===&lt;br /&gt;
* [[LXF70:Xandros business Desktop OS 3.0|Xandros Business Desktop 3.0]]&lt;br /&gt;
Промышленный дистрибутив на базе Debian.&lt;br /&gt;
* [[LXF70:OpenLaszlo|OpenLaszlo 3.0]]&lt;br /&gt;
Среда разработки графических интерфейсов на Flash.&lt;br /&gt;
* [[LXF70:Studio To Go!|Studio To Go!]]&lt;br /&gt;
Живой аудиодистрибутив.&lt;br /&gt;
* [[LXF70:Soul Ride|Soul Ride]]&lt;br /&gt;
Симулятор сноуборда.&lt;br /&gt;
* [[LXF70:Astaro Security Linux 6|Astaro Security Linux 6]]&lt;br /&gt;
Межсетевой экран на базе Linux.&lt;br /&gt;
&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
* [[LXF70:Сравнение|Текстовые процессы]]&lt;br /&gt;
Том Вилкинсон (Tom Wilkinson) решил проверить широко распространённую в LXF теорию о том, что в наше время невозможно найти приличный текстовый редактор.&lt;br /&gt;
&lt;br /&gt;
=== Что за штука…? ===&lt;br /&gt;
* [[LXF70:Что за штука...|PDTP]]&lt;br /&gt;
Ничто не раздражает сильнее, чем поиск подходящего зеркала, но ознаменует ли PDTP конец эпохи bitTorrent?&lt;br /&gt;
&lt;br /&gt;
=== Специальный репортаж ===&lt;br /&gt;
* [[LXF70:Debian|Debian на перепутье]]&lt;br /&gt;
Что ждет самый свободный дистрибутив Linux в будущем?&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Beagle|Взять его!]]&lt;br /&gt;
Руководство по установке поисковой системы Beagle&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:BBC|Время отдыха в сети]]&lt;br /&gt;
Открытые технологии на службе у BBC&lt;br /&gt;
&lt;br /&gt;
=== Интервью ===&lt;br /&gt;
* [[LXF70:Интервью|Гаэль Дюваль]]&lt;br /&gt;
Создал дистрибутив Mandrake как ответвление от Red Hat в 1998 году и превратил проект в прибыльную компанию.&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
* [[LXF70:Gnome 2.10|Gnome 2.10]]&lt;br /&gt;
Энди Ченнелл рассказывает о лучших чертах Gnome 2.10&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:GIMP. Коррекция улыбки|Коррекция улыбки в Gimp]]&lt;br /&gt;
Не повезло с дантистом? Подправьте свою улыбку с помощью Gimp и Майкла Дж. Хэммела&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Переменные и операторы|Perl, часть 1. Переменные и операторы]]&lt;br /&gt;
Первый эпизод саги Марка Фиоретти расскажет вам, откуда берутся переменные и операторы языка Perl&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Perl. Сортируем наш код|Perl, часть 2. Сортируем наш код]]&lt;br /&gt;
Оберегайте друзей от регулярных выражений — по крайней мере, пока те не прочитают второй эпизод популярной саги&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion1|Subversion, часть 1]]&lt;br /&gt;
Собрались запустить свой проект? Грэм Моррисон расскажет вам, с чего начать&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:Subversion2|Subversion, часть 2]]&lt;br /&gt;
Репозитарий готов, но… что мне с ним делать? Ищите ответ здесь!&lt;br /&gt;
&lt;br /&gt;
* [[LXF70:PHP. Загадка Монти Холла|PHP. Загадка Монти Холла]]&lt;br /&gt;
Математические загадки — удовольствие знатока и кошмар дилетанта. Кем из них окажется Пол Хадсон?&lt;br /&gt;
&lt;br /&gt;
=== Ответы ===&lt;br /&gt;
* [[LXF70:Ответы|Ответы]]&lt;br /&gt;
Если вы завязли в какой-то проблеме и ничего не помогает, почему бы не написать нам?&lt;br /&gt;
Наши постоянные эксперты разрешат даже самые сложные из ваших проблем.&lt;br /&gt;
* [[LXF70:Краткая справка|Краткая справка: SSH]]&lt;br /&gt;
* [[LXF70:Frequently Asked Questions|Frequently Asked Questions: Ядро]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T17:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: «LXF70:GIMP» переименована в «LXF70:GIMP. Коррекция улыбки»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|thumb|Оригинальное изображение]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
[[Изображение:LXF70-GIMP2-1.jpg|thumb|100px|Используйте «ножницы» для точного копирования части изображения]]&lt;br /&gt;
&lt;br /&gt;
==== Используйте «ножницы» для точного копирования части изображения ====&lt;br /&gt;
Первое, что мы хотим получить — копия верхнего ряда зубов. Для этого мы воспользуемся инструментом «ножницы». Этот инструмент работает, определяя естественные границы между заданными точками. В этом примере я выбрал много точек, расположенных очень близко друг к другу, что позволило создать выделение, очень точно повторяющее контуры верхних зубов. В то же время нам не нужно точное совпадение, поскольку далее мы выполним альфа-смешение скопированных зубов с оригинальным изображением.&lt;br /&gt;
&lt;br /&gt;
Создав контур (пока вы не создали выделение, точки еще можно перемещать), щелкните мышью внутри него, чтобы преобразовать в выделение, а затем сохраните его в канале.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-2.jpg|thumb|left|100px|Cоздание нового слоя для выделения]]&lt;br /&gt;
&lt;br /&gt;
==== Cоздание нового слоя для выделения ====&lt;br /&gt;
Ограничьте выделение границей в пять пикселей и затем вставьте его копию как новый слой. Окно слоя будет близко по размерам к размерам выделения, а вам понадобится дополнительное пространство для работы, поэтому немного расширьте размер слоя (Layer -&amp;gt; Layer Boundary Size). Отключите слой фона, и вы увидите над чем вам придется трудиться. Я заметил, что левая часть верхнего ряда зубов немного лучше, чем правая, так что сначала мы скопируем левую часть на правую и затем продолжим работать дальше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-3.jpg|thumb|100px|Замена несовершенных зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Замена несовершенных зубов ====&lt;br /&gt;
Создайте прямоугольное выделение вокруг левой половины зубов, скопируйте и вставьте его, преобразуйте плавающий слой в новый и затем зеркально отразите его по горизонтали. Выделение не обязано быть безупречным, поскольку оно все равно будет наложено на другие зубы с помощью маски. затем поместите копию поверх правой части зубов, добавьте маску и наложите копию с помощью маски. Два самых дальних правых зуба выглядят лучше, чем самые дальние левые, так что мы, с помощью маски, можем полностью удалить копии левых зубов.&lt;br /&gt;
&lt;br /&gt;
Мы получили изображение с зеркально отраженным и замаскированным слоем, в котором копия зубов наложена с маской поверх оригинальных зубов. Чтобы завершить этот процесс, нам нужно скопировать правую часть зубов на левую сторону и снова применить маску. В результате мы получим более сбалансированный вариант контура зубов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-4.jpg|thumb|left|100px|Подравнивание зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Подравнивание зубов ====&lt;br /&gt;
Теперь нам нужно слить все три слоя (оригинальную копию, зеркально отраженную правую и левую части) вместе. Для выравнивания нижней границы передних зубов воспользуйтесь инструментом клонирования. Возьмите кисть с мягкими контурами, чтобы придать вес нижней границе зубов, затем кисть с жесткими контурами, чтобы клонировать ровную границу. Выберите начальную точку чуть выше того места, где начнется клонирование и прочертите прямую линию (удерживая клавишу Shift и одновременно перетаскивая курсор мыши) с помощью инструмента клонирования. Немного снизьте прозрачность кисти, чтобы придать эффект альфа-наложения процессу клонирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-5.jpg|thumb|100px|Приведение в порядок нижнего ряда]]&lt;br /&gt;
&lt;br /&gt;
==== Приведение в порядок нижнего ряда ====&lt;br /&gt;
Та же процедура применяется и к нижнему ряду зубов:&lt;br /&gt;
# Выделение.&lt;br /&gt;
# Копирование.&lt;br /&gt;
# Вставка в новый слой.&lt;br /&gt;
# Копирование правой стороны.&lt;br /&gt;
# Отражение.&lt;br /&gt;
# Перемещение на левую часть.&lt;br /&gt;
# и в, конце концов, слияние.&lt;br /&gt;
Вам не нужно много работать с нижними зубами, поскольку их режущая кромка спрятана за верхними. Теперь видно, что размер верхней десны в левой части сильно уменьшился, уменьшился и промежуток между зубами справа. Нижние зубы теперь не выглядят отступившими от передней части рта.&lt;br /&gt;
&lt;br /&gt;
После всех этих процедур зубы выглядят гораздо более ровными. Далее мы сосредоточимся на их цвете.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-6.jpg|thumb|left|100px|Коррекция цвета зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Коррекция цвета зубов ====&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Подсказка|&lt;br /&gt;
Содержание='''Подправляем изображения'''&amp;lt;br /&amp;gt;&lt;br /&gt;
* Копирование. Вставка. Добавление маски … Работайте с копиями слоев и затем сливайте их с оригиналом&lt;br /&gt;
* Используйте альфа-смешение. Маски, сниженная прозрачность на операциях клонирования и кисти с мягкими контурами помогут соединить части изображений вместе&lt;br /&gt;
* Раскрашивайте в контексте. Коррекции цвета на портретах, особенно на теле, должны быть нежными. Уменьшение желтого на зубах достигается за счет снижения насыщенности и увеличения яркости.&lt;br /&gt;
* Симметрия идеальна, но не реальна. Копирование левой части изображения на правую в этом проекте помогло привнести некоторую симметрию в форму зубов, однако наложение полученных копий на оригинальное изображение обеспечило достаточно вариаций, чтобы сделать менее явным наличие самих коррекций. Там, где отсутствует хотя бы небольшая случайность, нет и природы.&lt;br /&gt;
* Почему мы сохранили выделение? Потому, что мы просто не знали, когда наши эксперименты с копированием, клонированием и слиянием дадут правильный результат. Могло потребоваться довольно много попыток, прежде чем что-то получилось бы. И все эти попытки (по крайней мере, в данном проекте) начинались бы с копирования верхнего ряда зубов. Я об этом особенно не говорил, но теперь вы знаете, почему иногда нужно делать вещи, которые не кажутся необходимыми. Если вы не делаете их с самого начала, то довольно скоро становится очевидно, насколькоони полезны.|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
До сего момента я был сосредоточен только на зубах и игнорировал контекст изображения. Однако, для коррекции цвета улыбки нам понадобится смотреть на нее в контексте изображения в целом. Если этого не сделать, вы рискуете слишком сильно выбелить зубы, что приведет к тому, что изображение начнет выглядеть как подделка.&lt;br /&gt;
&lt;br /&gt;
Желтый оттенок и темные пятна на зубах могут быть исправлены целым рядом способов. Можно довольно просто откорректировать кривые цвета, но в этом случае мы получим слишком яркие верхние зубы. Но мы также можем откорректировать и нижние зубы, так что они будут иметь такой же яркий вид, как и верхние, что должно будет вывести их из тени и привести в соответствие с верхней челюстью. Все, что нужно — это произвести небольшие изменения в насыщенности цвета (ее следует немного уменьшить, чтобы убрать пятна и желтый оттенок) и сделать зубы немного ярче, чтобы они выглядели более белыми.&lt;br /&gt;
&lt;br /&gt;
Совершенство достигается одним последним штрихом. Нижняя губа имеет небольшие выпуклости на обеих сторонах. Они легко исправляются с помощью расширения IWarp после слияния всех слоев. Чтобы применить IWarp, нажмите правую кнопку мыши на окне с изображением и выберите пункт: Filters &amp;gt; Distorts &amp;gt; IWarp.&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1before_after.jpg|thumb|100px|left]]&lt;br /&gt;
Результат вполне очевиден: небольшая зубная коррекция иногда требует значительных усилий. Эта статья показывает, насколько важна прозрачность для художника, работающего с Gimp, но мы использовали и несколько простых техник во время выполнения данного проекта. Подобные примеры из реальной жизни являются хорошим подспорьем для практического закрепления того, что вы уже изучили.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T17:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Коррекция цвета зубов */ шаблон&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|thumb|Оригинальное изображение]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
[[Изображение:LXF70-GIMP2-1.jpg|thumb|100px|Используйте «ножницы» для точного копирования части изображения]]&lt;br /&gt;
&lt;br /&gt;
==== Используйте «ножницы» для точного копирования части изображения ====&lt;br /&gt;
Первое, что мы хотим получить — копия верхнего ряда зубов. Для этого мы воспользуемся инструментом «ножницы». Этот инструмент работает, определяя естественные границы между заданными точками. В этом примере я выбрал много точек, расположенных очень близко друг к другу, что позволило создать выделение, очень точно повторяющее контуры верхних зубов. В то же время нам не нужно точное совпадение, поскольку далее мы выполним альфа-смешение скопированных зубов с оригинальным изображением.&lt;br /&gt;
&lt;br /&gt;
Создав контур (пока вы не создали выделение, точки еще можно перемещать), щелкните мышью внутри него, чтобы преобразовать в выделение, а затем сохраните его в канале.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-2.jpg|thumb|left|100px|Cоздание нового слоя для выделения]]&lt;br /&gt;
&lt;br /&gt;
==== Cоздание нового слоя для выделения ====&lt;br /&gt;
Ограничьте выделение границей в пять пикселей и затем вставьте его копию как новый слой. Окно слоя будет близко по размерам к размерам выделения, а вам понадобится дополнительное пространство для работы, поэтому немного расширьте размер слоя (Layer -&amp;gt; Layer Boundary Size). Отключите слой фона, и вы увидите над чем вам придется трудиться. Я заметил, что левая часть верхнего ряда зубов немного лучше, чем правая, так что сначала мы скопируем левую часть на правую и затем продолжим работать дальше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-3.jpg|thumb|100px|Замена несовершенных зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Замена несовершенных зубов ====&lt;br /&gt;
Создайте прямоугольное выделение вокруг левой половины зубов, скопируйте и вставьте его, преобразуйте плавающий слой в новый и затем зеркально отразите его по горизонтали. Выделение не обязано быть безупречным, поскольку оно все равно будет наложено на другие зубы с помощью маски. затем поместите копию поверх правой части зубов, добавьте маску и наложите копию с помощью маски. Два самых дальних правых зуба выглядят лучше, чем самые дальние левые, так что мы, с помощью маски, можем полностью удалить копии левых зубов.&lt;br /&gt;
&lt;br /&gt;
Мы получили изображение с зеркально отраженным и замаскированным слоем, в котором копия зубов наложена с маской поверх оригинальных зубов. Чтобы завершить этот процесс, нам нужно скопировать правую часть зубов на левую сторону и снова применить маску. В результате мы получим более сбалансированный вариант контура зубов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-4.jpg|thumb|left|100px|Подравнивание зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Подравнивание зубов ====&lt;br /&gt;
Теперь нам нужно слить все три слоя (оригинальную копию, зеркально отраженную правую и левую части) вместе. Для выравнивания нижней границы передних зубов воспользуйтесь инструментом клонирования. Возьмите кисть с мягкими контурами, чтобы придать вес нижней границе зубов, затем кисть с жесткими контурами, чтобы клонировать ровную границу. Выберите начальную точку чуть выше того места, где начнется клонирование и прочертите прямую линию (удерживая клавишу Shift и одновременно перетаскивая курсор мыши) с помощью инструмента клонирования. Немного снизьте прозрачность кисти, чтобы придать эффект альфа-наложения процессу клонирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-5.jpg|thumb|100px|Приведение в порядок нижнего ряда]]&lt;br /&gt;
&lt;br /&gt;
==== Приведение в порядок нижнего ряда ====&lt;br /&gt;
Та же процедура применяется и к нижнему ряду зубов:&lt;br /&gt;
# Выделение.&lt;br /&gt;
# Копирование.&lt;br /&gt;
# Вставка в новый слой.&lt;br /&gt;
# Копирование правой стороны.&lt;br /&gt;
# Отражение.&lt;br /&gt;
# Перемещение на левую часть.&lt;br /&gt;
# и в, конце концов, слияние.&lt;br /&gt;
Вам не нужно много работать с нижними зубами, поскольку их режущая кромка спрятана за верхними. Теперь видно, что размер верхней десны в левой части сильно уменьшился, уменьшился и промежуток между зубами справа. Нижние зубы теперь не выглядят отступившими от передней части рта.&lt;br /&gt;
&lt;br /&gt;
После всех этих процедур зубы выглядят гораздо более ровными. Далее мы сосредоточимся на их цвете.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-6.jpg|thumb|left|100px|Коррекция цвета зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Коррекция цвета зубов ====&lt;br /&gt;
{{Врезка|&lt;br /&gt;
Заголовок=Подсказка|&lt;br /&gt;
Содержание='''Подправляем изображения'''&amp;lt;br /&amp;gt;&lt;br /&gt;
* Копирование. Вставка. Добавление маски … Работайте с копиями слоев и затем сливайте их с оригиналом&lt;br /&gt;
* Используйте альфа-смешение. Маски, сниженная прозрачность на операциях клонирования и кисти с мягкими контурами помогут соединить части изображений вместе&lt;br /&gt;
* Раскрашивайте в контексте. Коррекции цвета на портретах, особенно на теле, должны быть нежными. Уменьшение желтого на зубах достигается за счет снижения насыщенности и увеличения яркости.&lt;br /&gt;
* Симметрия идеальна, но не реальна. Копирование левой части изображения на правую в этом проекте помогло привнести некоторую симметрию в форму зубов, однако наложение полученных копий на оригинальное изображение обеспечило достаточно вариаций, чтобы сделать менее явным наличие самих коррекций. Там, где отсутствует хотя бы небольшая случайность, нет и природы.&lt;br /&gt;
* Почему мы сохранили выделение? Потому, что мы просто не знали, когда наши эксперименты с копированием, клонированием и слиянием дадут правильный результат. Могло потребоваться довольно много попыток, прежде чем что-то получилось бы. И все эти попытки (по крайней мере, в данном проекте) начинались бы с копирования верхнего ряда зубов. Я об этом особенно не говорил, но теперь вы знаете, почему иногда нужно делать вещи, которые не кажутся необходимыми. Если вы не делаете их с самого начала, то довольно скоро становится очевидно, насколькоони полезны.|&lt;br /&gt;
Ширина=40%&lt;br /&gt;
}}&lt;br /&gt;
До сего момента я был сосредоточен только на зубах и игнорировал контекст изображения. Однако, для коррекции цвета улыбки нам понадобится смотреть на нее в контексте изображения в целом. Если этого не сделать, вы рискуете слишком сильно выбелить зубы, что приведет к тому, что изображение начнет выглядеть как подделка.&lt;br /&gt;
&lt;br /&gt;
Желтый оттенок и темные пятна на зубах могут быть исправлены целым рядом способов. Можно довольно просто откорректировать кривые цвета, но в этом случае мы получим слишком яркие верхние зубы. Но мы также можем откорректировать и нижние зубы, так что они будут иметь такой же яркий вид, как и верхние, что должно будет вывести их из тени и привести в соответствие с верхней челюстью. Все, что нужно — это произвести небольшие изменения в насыщенности цвета (ее следует немного уменьшить, чтобы убрать пятна и желтый оттенок) и сделать зубы немного ярче, чтобы они выглядели более белыми.&lt;br /&gt;
&lt;br /&gt;
Совершенство достигается одним последним штрихом. Нижняя губа имеет небольшие выпуклости на обеих сторонах. Они легко исправляются с помощью расширения IWarp после слияния всех слоев. Чтобы применить IWarp, нажмите правую кнопку мыши на окне с изображением и выберите пункт: Filters &amp;gt; Distorts &amp;gt; IWarp.&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1before_after.jpg|thumb|100px|left]]&lt;br /&gt;
Результат вполне очевиден: небольшая зубная коррекция иногда требует значительных усилий. Эта статья показывает, насколько важна прозрачность для художника, работающего с Gimp, но мы использовали и несколько простых техник во время выполнения данного проекта. Подобные примеры из реальной жизни являются хорошим подспорьем для практического закрепления того, что вы уже изучили.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:56:58Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Результат */ викификация, оформление, иллюстрация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|thumb|Оригинальное изображение]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
[[Изображение:LXF70-GIMP2-1.jpg|thumb|100px|Используйте «ножницы» для точного копирования части изображения]]&lt;br /&gt;
&lt;br /&gt;
==== Используйте «ножницы» для точного копирования части изображения ====&lt;br /&gt;
Первое, что мы хотим получить — копия верхнего ряда зубов. Для этого мы воспользуемся инструментом «ножницы». Этот инструмент работает, определяя естественные границы между заданными точками. В этом примере я выбрал много точек, расположенных очень близко друг к другу, что позволило создать выделение, очень точно повторяющее контуры верхних зубов. В то же время нам не нужно точное совпадение, поскольку далее мы выполним альфа-смешение скопированных зубов с оригинальным изображением.&lt;br /&gt;
&lt;br /&gt;
Создав контур (пока вы не создали выделение, точки еще можно перемещать), щелкните мышью внутри него, чтобы преобразовать в выделение, а затем сохраните его в канале.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-2.jpg|thumb|left|100px|Cоздание нового слоя для выделения]]&lt;br /&gt;
&lt;br /&gt;
==== Cоздание нового слоя для выделения ====&lt;br /&gt;
Ограничьте выделение границей в пять пикселей и затем вставьте его копию как новый слой. Окно слоя будет близко по размерам к размерам выделения, а вам понадобится дополнительное пространство для работы, поэтому немного расширьте размер слоя (Layer -&amp;gt; Layer Boundary Size). Отключите слой фона, и вы увидите над чем вам придется трудиться. Я заметил, что левая часть верхнего ряда зубов немного лучше, чем правая, так что сначала мы скопируем левую часть на правую и затем продолжим работать дальше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-3.jpg|thumb|100px|Замена несовершенных зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Замена несовершенных зубов ====&lt;br /&gt;
Создайте прямоугольное выделение вокруг левой половины зубов, скопируйте и вставьте его, преобразуйте плавающий слой в новый и затем зеркально отразите его по горизонтали. Выделение не обязано быть безупречным, поскольку оно все равно будет наложено на другие зубы с помощью маски. затем поместите копию поверх правой части зубов, добавьте маску и наложите копию с помощью маски. Два самых дальних правых зуба выглядят лучше, чем самые дальние левые, так что мы, с помощью маски, можем полностью удалить копии левых зубов.&lt;br /&gt;
&lt;br /&gt;
Мы получили изображение с зеркально отраженным и замаскированным слоем, в котором копия зубов наложена с маской поверх оригинальных зубов. Чтобы завершить этот процесс, нам нужно скопировать правую часть зубов на левую сторону и снова применить маску. В результате мы получим более сбалансированный вариант контура зубов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-4.jpg|thumb|left|100px|Подравнивание зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Подравнивание зубов ====&lt;br /&gt;
Теперь нам нужно слить все три слоя (оригинальную копию, зеркально отраженную правую и левую части) вместе. Для выравнивания нижней границы передних зубов воспользуйтесь инструментом клонирования. Возьмите кисть с мягкими контурами, чтобы придать вес нижней границе зубов, затем кисть с жесткими контурами, чтобы клонировать ровную границу. Выберите начальную точку чуть выше того места, где начнется клонирование и прочертите прямую линию (удерживая клавишу Shift и одновременно перетаскивая курсор мыши) с помощью инструмента клонирования. Немного снизьте прозрачность кисти, чтобы придать эффект альфа-наложения процессу клонирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-5.jpg|thumb|100px|Приведение в порядок нижнего ряда]]&lt;br /&gt;
&lt;br /&gt;
==== Приведение в порядок нижнего ряда ====&lt;br /&gt;
Та же процедура применяется и к нижнему ряду зубов:&lt;br /&gt;
# Выделение.&lt;br /&gt;
# Копирование.&lt;br /&gt;
# Вставка в новый слой.&lt;br /&gt;
# Копирование правой стороны.&lt;br /&gt;
# Отражение.&lt;br /&gt;
# Перемещение на левую часть.&lt;br /&gt;
# и в, конце концов, слияние.&lt;br /&gt;
Вам не нужно много работать с нижними зубами, поскольку их режущая кромка спрятана за верхними. Теперь видно, что размер верхней десны в левой части сильно уменьшился, уменьшился и промежуток между зубами справа. Нижние зубы теперь не выглядят отступившими от передней части рта.&lt;br /&gt;
&lt;br /&gt;
После всех этих процедур зубы выглядят гораздо более ровными. Далее мы сосредоточимся на их цвете.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-6.jpg|thumb|left|100px|Коррекция цвета зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Коррекция цвета зубов ====&lt;br /&gt;
До сего момента я был сосредоточен только на зубах и игнорировал контекст изображения. Однако, для коррекции цвета улыбки нам понадобится смотреть на нее в контексте изображения в целом. Если этого не сделать, вы рискуете слишком сильно выбелить зубы, что приведет к тому, что изображение начнет выглядеть как подделка.&lt;br /&gt;
&lt;br /&gt;
Желтый оттенок и темные пятна на зубах могут быть исправлены целым рядом способов. Можно довольно просто откорректировать кривые цвета, но в этом случае мы получим слишком яркие верхние зубы. Но мы также можем откорректировать и нижние зубы, так что они будут иметь такой же яркий вид, как и верхние, что должно будет вывести их из тени и привести в соответствие с верхней челюстью. Все, что нужно — это произвести небольшие изменения в насыщенности цвета (ее следует немного уменьшить, чтобы убрать пятна и желтый оттенок) и сделать зубы немного ярче, чтобы они выглядели более белыми.&lt;br /&gt;
&lt;br /&gt;
Совершенство достигается одним последним штрихом. Нижняя губа имеет небольшие выпуклости на обеих сторонах. Они легко исправляются с помощью расширения IWarp после слияния всех слоев. Чтобы применить IWarp, нажмите правую кнопку мыши на окне с изображением и выберите пункт: Filters &amp;gt; Distorts &amp;gt; IWarp.&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1before_after.jpg|thumb|100px|left]]&lt;br /&gt;
Результат вполне очевиден: небольшая зубная коррекция иногда требует значительных усилий. Эта статья показывает, насколько важна прозрачность для художника, работающего с Gimp, но мы использовали и несколько простых техник во время выполнения данного проекта. Подобные примеры из реальной жизни являются хорошим подспорьем для практического закрепления того, что вы уже изучили.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Решение */ викификация, оформление, иллюстрация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|thumb|Оригинальное изображение]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
[[Изображение:LXF70-GIMP2-1.jpg|thumb|100px|Используйте «ножницы» для точного копирования части изображения]]&lt;br /&gt;
&lt;br /&gt;
==== Используйте «ножницы» для точного копирования части изображения ====&lt;br /&gt;
Первое, что мы хотим получить — копия верхнего ряда зубов. Для этого мы воспользуемся инструментом «ножницы». Этот инструмент работает, определяя естественные границы между заданными точками. В этом примере я выбрал много точек, расположенных очень близко друг к другу, что позволило создать выделение, очень точно повторяющее контуры верхних зубов. В то же время нам не нужно точное совпадение, поскольку далее мы выполним альфа-смешение скопированных зубов с оригинальным изображением.&lt;br /&gt;
&lt;br /&gt;
Создав контур (пока вы не создали выделение, точки еще можно перемещать), щелкните мышью внутри него, чтобы преобразовать в выделение, а затем сохраните его в канале.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-2.jpg|thumb|left|100px|Cоздание нового слоя для выделения]]&lt;br /&gt;
&lt;br /&gt;
==== Cоздание нового слоя для выделения ====&lt;br /&gt;
Ограничьте выделение границей в пять пикселей и затем вставьте его копию как новый слой. Окно слоя будет близко по размерам к размерам выделения, а вам понадобится дополнительное пространство для работы, поэтому немного расширьте размер слоя (Layer -&amp;gt; Layer Boundary Size). Отключите слой фона, и вы увидите над чем вам придется трудиться. Я заметил, что левая часть верхнего ряда зубов немного лучше, чем правая, так что сначала мы скопируем левую часть на правую и затем продолжим работать дальше.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-3.jpg|thumb|100px|Замена несовершенных зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Замена несовершенных зубов ====&lt;br /&gt;
Создайте прямоугольное выделение вокруг левой половины зубов, скопируйте и вставьте его, преобразуйте плавающий слой в новый и затем зеркально отразите его по горизонтали. Выделение не обязано быть безупречным, поскольку оно все равно будет наложено на другие зубы с помощью маски. затем поместите копию поверх правой части зубов, добавьте маску и наложите копию с помощью маски. Два самых дальних правых зуба выглядят лучше, чем самые дальние левые, так что мы, с помощью маски, можем полностью удалить копии левых зубов.&lt;br /&gt;
&lt;br /&gt;
Мы получили изображение с зеркально отраженным и замаскированным слоем, в котором копия зубов наложена с маской поверх оригинальных зубов. Чтобы завершить этот процесс, нам нужно скопировать правую часть зубов на левую сторону и снова применить маску. В результате мы получим более сбалансированный вариант контура зубов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-4.jpg|thumb|left|100px|Подравнивание зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Подравнивание зубов ====&lt;br /&gt;
Теперь нам нужно слить все три слоя (оригинальную копию, зеркально отраженную правую и левую части) вместе. Для выравнивания нижней границы передних зубов воспользуйтесь инструментом клонирования. Возьмите кисть с мягкими контурами, чтобы придать вес нижней границе зубов, затем кисть с жесткими контурами, чтобы клонировать ровную границу. Выберите начальную точку чуть выше того места, где начнется клонирование и прочертите прямую линию (удерживая клавишу Shift и одновременно перетаскивая курсор мыши) с помощью инструмента клонирования. Немного снизьте прозрачность кисти, чтобы придать эффект альфа-наложения процессу клонирования.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-5.jpg|thumb|100px|Приведение в порядок нижнего ряда]]&lt;br /&gt;
&lt;br /&gt;
==== Приведение в порядок нижнего ряда ====&lt;br /&gt;
Та же процедура применяется и к нижнему ряду зубов:&lt;br /&gt;
# Выделение.&lt;br /&gt;
# Копирование.&lt;br /&gt;
# Вставка в новый слой.&lt;br /&gt;
# Копирование правой стороны.&lt;br /&gt;
# Отражение.&lt;br /&gt;
# Перемещение на левую часть.&lt;br /&gt;
# и в, конце концов, слияние.&lt;br /&gt;
Вам не нужно много работать с нижними зубами, поскольку их режущая кромка спрятана за верхними. Теперь видно, что размер верхней десны в левой части сильно уменьшился, уменьшился и промежуток между зубами справа. Нижние зубы теперь не выглядят отступившими от передней части рта.&lt;br /&gt;
&lt;br /&gt;
После всех этих процедур зубы выглядят гораздо более ровными. Далее мы сосредоточимся на их цвете.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-GIMP2-6.jpg|thumb|left|100px|Коррекция цвета зубов]]&lt;br /&gt;
&lt;br /&gt;
==== Коррекция цвета зубов ====&lt;br /&gt;
До сего момента я был сосредоточен только на зубах и игнорировал контекст изображения. Однако, для коррекции цвета улыбки нам понадобится смотреть на нее в контексте изображения в целом. Если этого не сделать, вы рискуете слишком сильно выбелить зубы, что приведет к тому, что изображение начнет выглядеть как подделка.&lt;br /&gt;
&lt;br /&gt;
Желтый оттенок и темные пятна на зубах могут быть исправлены целым рядом способов. Можно довольно просто откорректировать кривые цвета, но в этом случае мы получим слишком яркие верхние зубы. Но мы также можем откорректировать и нижние зубы, так что они будут иметь такой же яркий вид, как и верхние, что должно будет вывести их из тени и привести в соответствие с верхней челюстью. Все, что нужно — это произвести небольшие изменения в насыщенности цвета (ее следует немного уменьшить, чтобы убрать пятна и желтый оттенок) и сделать зубы немного ярче, чтобы они выглядели более белыми.&lt;br /&gt;
&lt;br /&gt;
Совершенство достигается одним последним штрихом. Нижняя губа имеет небольшие выпуклости на обеих сторонах. Они легко исправляются с помощью расширения IWarp после слияния всех слоев. Чтобы применить IWarp, нажмите правую кнопку мыши на окне с изображением и выберите пункт: Filters &amp;gt; Distorts &amp;gt; IWarp.&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:37:41Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Проект */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|thumb|Оригинальное изображение]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Проект */ викификация, иллюстрация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
[[Изображение:LXF70-GIMP1.jpg|right]]&lt;br /&gt;
Если честно, этот парень не так уж плохо выглядит, и оригинальное изображение было вполне приемлемо, но поскольку реклама была именно для дантиста, ничто кроме безупречной улыбки просто не сработало бы. Потребовалось три главных коррекции: нужно было подчистить и выровнять верхние зубы; подчистить и выровнять нижний ряд зубов и подровнять нижнюю губу, чтобы улучшить ее симметрию.&lt;br /&gt;
&lt;br /&gt;
Коррекция нижней губы — наиболее простая часть работы, но мы сможем ее сделать, только после исправления зубов. Это связано с тем, что нижняя губа будет подправлена с помощью расширения IWarp, и будет лучше сделать это после того, как откорректированные верхний и нижний ряд зубов будут объединены в один слой.&lt;br /&gt;
С верхним рядом зубов связаны три проблемы:&lt;br /&gt;
* Они не симметричны&lt;br /&gt;
* Они не выровнены по нижним границам&lt;br /&gt;
* Они не белые&lt;br /&gt;
&lt;br /&gt;
Ни одна из этих проблем не представляет особой сложности, однако потребуется некоторое умение, чтобы создать исходное выделение. Чтобы сделать зубы симметричными, я буду использовать большие склейки, созданные из более мелких выделений. Чтобы подправить нижние границы, я воспользуюсь инструментом клонирования (Clone tool) на отдельном слое. Отбеливание зубов должно быть сделано после коррекции и клонирования и только после слияния всех слоев, которые образуют видимый верхний ряд зубов. Если все это сделать перед отбеливанием, то можно гарантировать, что вы не получите результат, в котором изменения цвета будут неоднородными.&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-6.jpg</id>
		<title>Файл:LXF70-GIMP2-6.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-6.jpg"/>
				<updated>2008-03-13T16:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 6&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-5.jpg</id>
		<title>Файл:LXF70-GIMP2-5.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-5.jpg"/>
				<updated>2008-03-13T16:30:44Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 5&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-4.jpg</id>
		<title>Файл:LXF70-GIMP2-4.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-4.jpg"/>
				<updated>2008-03-13T16:30:25Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 4&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-3.jpg</id>
		<title>Файл:LXF70-GIMP2-3.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-3.jpg"/>
				<updated>2008-03-13T16:30:06Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 3&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-2.jpg</id>
		<title>Файл:LXF70-GIMP2-2.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-2.jpg"/>
				<updated>2008-03-13T16:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 2&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-1.jpg</id>
		<title>Файл:LXF70-GIMP2-1.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP2-1.jpg"/>
				<updated>2008-03-13T16:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Шаг 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Шаг 1&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP1before_after.jpg</id>
		<title>Файл:LXF70-GIMP1before after.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP1before_after.jpg"/>
				<updated>2008-03-13T16:29:07Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: До и после&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;До и после&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP1.jpg</id>
		<title>Файл:LXF70-GIMP1.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:LXF70-GIMP1.jpg"/>
				<updated>2008-03-13T16:28:46Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:02:08Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Коррекция улыбки в Gimp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;br /&gt;
&lt;br /&gt;
=== Проект ===&lt;br /&gt;
&lt;br /&gt;
=== Решение ===&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Gimp]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:GIMP</id>
		<title>LXF70:GIMP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:GIMP"/>
				<updated>2008-03-13T16:00:22Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: Новая статья, викификация, оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= Коррекция улыбки в Gimp =&lt;br /&gt;
'''''Майкл Дж. Хэммел''' ('''Michael J Hammel''') поможет вам достичь совершенства в использовании масок, «ножниц», инструмента клонирования и других методах работы с Gimp для создания безупречной, с точки зрения дантиста, улыбки.''&lt;br /&gt;
&lt;br /&gt;
Самый простой способ начать использовать Gimp в небольшом бизнесе — это создавать печатную рекламу для местных газет и журналов. На самом деле, большинство рекламодателей не знают, как выглядит изображение, которое повысит внимание к рекламе и, в конечном счете, доходность бизнеса. Вы легко встретите плохой дизайн, сделанный местными изданиями, в котором изображение слишком придавлено текстом, купается во всех цветах радуги, стоит весьма значительных усилий при выводе на печать, и, в конце концов, выглядит выцветшим и потекшим на дешевой бумаге. Выявление плохого дизайна в рекламе и попытки предложить альтернативные подходы при условии лояльности рекламодателя часто приводят к установлению длительных деловых отношений.&lt;br /&gt;
&lt;br /&gt;
Моя жена создавала рекламу для местной службы доставки еды, которая как раз обслуживала вечеринки одну стоматологическую клинику. Врач этой клиники только что начал работать в этом районе, и ему тоже нужно было создать несколько рекламных объявлений, так что он нанял мою жену. Одно из требований к рекламе включало использование изображения мужчины со сверкающей улыбкой. Жена приобрела подходящее изображение в одной из коллекций, именно его я и буду использовать здесь. Я сделал несколько коррекций, чтобы подчистить улыбку и она отослала получившееся объявление, вместе с другими вариантами дизайна своему клиенту.&lt;br /&gt;
&lt;br /&gt;
Ему очень понравилось полученное изображение, но, в итоге, он отклонил его в пользу совершенно другого дизайна, в котором улыбающейся личности не было (кстати, как раз этот вариант она рекомендовала с самого начала). Однако, откорректированное изображение получилось настолько хорошим, что я почувствовал, что процесс его создания достоин того, чтобы поделиться им с читателями Linux Format.&lt;br /&gt;
&lt;br /&gt;
Это более продвинутое руководство, нежели те, что я опубликовал ранее. здесь вы не сможете просто следовать моим указаниям и делать то же, что и я. Пора применить на практике то, в чем вы тренировались все это время. В какой-то момент колеса должны коснуться земли и это руководство — хороший пример того, как это происходит. И, что более важно, Gimp как раз и предназначен для выполнения настоящей работы. В конечном счете, нужно когда-то перестать исследовать инструмент и просто начать использовать его. Сейчас самое время.&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF70:PHP</id>
		<title>LXF70:PHP</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF70:PHP"/>
				<updated>2008-03-13T11:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Pygoscelis papua: /* Начало и конец */ оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PHP. Загадка Монти Холла =&lt;br /&gt;
''У вас возникли сложности с загадкой из последнего выпуска LXF? '''Пол Хадсон''' ('''Paul Hudson''') покажет вам, как решать такие задачи методом грубой силы, с помощью разума и команды тренированных коз.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Все, кто когда-либо изучал высшую математику, за редким исключением, относятся к числам с большим уважением. Посмотрите, с какой нежностью мы даём названия отдельным классам чисел, выражая своё восхищение их магией! Гармонические числа, совершенные числа, полусовершенные числа, гиперсовершенные числа, дружественные числа, и даже, верите или нет, сверхъестественные числа. Мы любим их за предсказуемость, неизменность и точность. Это даёт уверенность в их логичности, позволяет стоить сложные доказательства и делать с ними почти всё что угодно, кроме оплаты счёта в ресторане.&lt;br /&gt;
&lt;br /&gt;
В те редкие моменты, когда я рискую выглядывать во внешний мир, я замечаю что несведущие в математике люди не имеют той любви и уважения к числам, которые испытывают остальные. Числа пугают их, а как известно страх приводит к злости, злость к ненависти, а ненависть — к страданиям. Как они ошибаются! Но мы можем посочувствовать их иррациональному ужасу, ведь мы тоже можем вспомнить как в начале своего романа с числами были потрясены их невероятной силой или или смущены их экзотической притягательностью.&lt;br /&gt;
&lt;br /&gt;
Возьмём, к примеру, загадку Монти Холла. Этот относительно простой вопрос приводит многих людей в ужас до тех пор, пока они не примут магию чисел. Загадка носит имя Монти Холла (Monty Hall), ведущего старого американского игрового шоу под названием «Давайте заключим сделку» (Let’s make a Deal), в котором в том или ином виде эта ситуация повторялась каждый раз. Сама загадка звучит так: вы участвуете в игре, и ведущий предлагает вам выбрать одну из трёх дверей. За одной из них дорогая машина, главный приз! За другими двумя дверями находятся козы. После того, как вы выбрали дверь случайным образом, ведущий (который, конечно, знает, за какой дверью приз) открывает одну из оставшихся дверей, за который обнаруживается коза. Затем он предлагает вам или остаться у прежней двери, или изменить свой выбор и указать на другую, оставшуюся закрытой. Итак, вы смените дверь или останетесь на месте?&lt;br /&gt;
&lt;br /&gt;
Правильный ответ, конечно же, сменить дверь, так как за второй дверью шанс получить машину гораздо выше. В этом выпуске мы напишем программу на PHP, которая доказывает правильность этого решения загадки Монти Холла. После чего я добавлю несколько настроек, чтобы чуть-чуть увеличить сложность нашего примера.&lt;br /&gt;
&lt;br /&gt;
=== Ломаем голову ===&lt;br /&gt;
Перед тем, как писать какой-либо код, важно понять почему загадка Монти Холла причиняет людям такие страдания. Для начала определим несколько моментов, чтобы не ввести никого в заблуждение. Победой мы будем называть выбор двери, за которой находится машина. Поражение – выбор двери с козой. Двери будем различать по номерам: 1, 2 и 3. Ведущий – это ведущий игрового шоу, а игрок – это участник игры. Уф! Теперь можно приступить к анализу проблемы. В игре вы должны вначале выбрать дверь, и поскольку дверей три и возможность мошенничества мы не рассматриваем, вероятность угадать с первого раза равна одной трети.&lt;br /&gt;
&lt;br /&gt;
Предположим, вы выбрали дверь номер 1. Существует один шанс из трёх (то есть 1/3), что за этой дверью находится приз. Ведущий точно знает, где машина, и он открывает дверь номер 2, чтобы показать козу. При этом двери номер 1 и номер 3 остаются закрытыми. И вот тут большинство людей совершает ошибку, так как они думают, что шансы найти машину за 1 и 3 дверями равные. «В конце концов, - объясняют они,-есть две двери на выбор, мошенничество мы не учитываем, значит мы можем следовать первому закону теории вероятностей, так как это та же самая задачка, какая была при трёх закрытых дверях».&lt;br /&gt;
&lt;br /&gt;
Кончено, это колоссальная ошибка. Первый закон теории вероятностей тут вам не поможет. Вместо него необходимо воспользоваться правилами для ситуации, в которой уже что-то случилось, выражением для условной вероятности. Если вы выбрали первую дверь, то вероятность найти за ней приз равняется 1/3. Однако точно так же можно сказать, что вероятность обнаружения машины за одной из оставшихся дверей равна 2/3.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF70-PHP1.jpg|thumb|1-3 - это двери,&amp;lt;br /&amp;gt; A-C - это возможности]]&lt;br /&gt;
Итак, теперь когда ведущий открывает одну из оставшихся дверей (в нашем примере он открыл дверь номер 2), вероятность найти машину за одной из оставшихся дверей по прежнему равна 2/3, однако вы теперь точно знаете, за которой из этих дверей находится коза! А это значит, что теперь вероятность найти машину за дверью номер 3 равна 2/3, тогда как у 1 двери остались прежние шансы 1/3. Итак, измените&lt;br /&gt;
вы свой выбор или будете стоять на своём? Конечно, измените!&lt;br /&gt;
&lt;br /&gt;
Диаграмма в правом нижнем углу наглядно демонстрирует ситуацию. Если вы выбрали третью дверь, существует три различных варианта развития событий. В случае A дверь номер 3 содержит козу, и ведущий откроет дверь номер два. Если мы останемся с дверью номер 3, то проиграем, а изменение выбора (на дверь номер 1) сулит выигрыш. В случае B за третьей дверью снова коза, а ведущий откроет дверь номер 1. Значит, останутся закрытыми третья дверь (наш выбор) и дверь номер 2. Если мы останемся с дверью номер 3, то проиграем, а победа нам достанется при изменении решения. Итак, и в случаях A и B для победы нам нужно изменить своё решение, в случае C при изменении своего выбора мы проиграем. Таким образом, вероятность выигрыша в случае изменения решения равна 2/3, тогда как настойчивость сулит победу только в 1/3 ситуаций.&lt;br /&gt;
&lt;br /&gt;
=== Ломаем код ===&lt;br /&gt;
Для того, чтобы эмпирически доказать наш вывод, можно написать небольшую программку, которая будет открывать двери тысячи и тысячи раз, менять или не менять изначальное решение и говорить, что получилось в итоге. Нам потребуется PHP-скрипт, который воспринимает указания пользователя (изменять решение или нет, сколько раз проводить проверку), запускает вычисления и выводит результат.&lt;br /&gt;
&lt;br /&gt;
В терминах программирования нам потребуются три функции: Функция для запуска загадки Монти Холла, нечто для анализа полученных от пользователя данных, многократного запуска функции, а затем — печати результатов и небольшой HTML-код, позволяющий указать, какой тест нужно запустить. Всего у нас получится порядка сотни строк кода, но мы будем писать его по частям и начнём с самого лёгкого — с HTML.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Число итераций: &amp;lt;select name=&amp;quot;iterations&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  /// Сгенерируем все варианты автоматически&lt;br /&gt;
  for ($i = 50; $i &amp;lt;= 10000; $i += 50) {&lt;br /&gt;
    if (isset($_POST['iterations']) &amp;amp;&amp;amp; ($_POST['iterations'] == $i)) {&lt;br /&gt;
      print &amp;quot;&amp;lt;option value=\&amp;quot;$i\&amp;quot; selected&amp;gt;$i&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
      print &amp;quot;&amp;lt;option value=\&amp;quot;$i\&amp;quot;&amp;gt;$i&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!--Тут мы выберем &amp;quot;Нет&amp;quot;, если давали этот ответ раньше--&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Нужно ли изменять выбранную дверь?&lt;br /&gt;
&amp;lt;select name=&amp;quot;DoSwitch&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;Yes&amp;quot;&amp;gt;Да&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;option value=&amp;quot;No&amp;quot; &amp;lt;?php&lt;br /&gt;
  if (isset($_POST['DoSwitch']) &amp;amp;&amp;amp; ($_POST['DoSwitch'] == &amp;quot;No&amp;quot;))&lt;br /&gt;
    print &amp;quot;selected&amp;quot;;&lt;br /&gt;
?&amp;gt;&amp;gt;Нет&amp;lt;/option&amp;gt;&amp;lt;/select&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Докажите!&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну да, я немножко слукавил, это чуть больше чем просто HTML. Однако, это в самом деле самая лёгкая часть программы. Я написал два комментария, чтобы показать что происходит, но это всё очень просто: только вывод формы, с помощью которой пользователь может указать, как много раз мы должны решить загадку Монти Холла и должен ли игрок изменять свой выбор.&lt;br /&gt;
&lt;br /&gt;
Двигаемся дальше. Нам надо обработать данные, полученные из формы, которую мы только что написали, и запустить игру нужное число раз:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  if (isset($_POST['DoSwitch'])) {&lt;br /&gt;
  /// запускаем этот код, только если форма была заполнена&lt;br /&gt;
  $wins = 0;&lt;br /&gt;
  $losses = 0;&lt;br /&gt;
  /// Многократный вызов функции&lt;br /&gt;
  /// Она возвращает &amp;quot;Win&amp;quot; (победа) или &amp;quot;Lose&amp;quot; (поражение)&lt;br /&gt;
  for ($i = 0; $i &amp;lt; $_POST['iterations']; ++$i) {&lt;br /&gt;
    $result = MontyHall($_POST['DoSwitch']);&lt;br /&gt;
    /// Сохраняем результат&lt;br /&gt;
    if ($result == &amp;quot;Win&amp;quot;) {&lt;br /&gt;
      ++$wins;&lt;br /&gt;
    } else {&lt;br /&gt;
      ++$losses;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /// Печать результатов&lt;br /&gt;
  print &amp;quot;&amp;lt;h1&amp;gt;Потрясающее устройство для экспериментального решения загадки Монти Холла&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  print &amp;quot;&amp;lt;p&amp;gt;Число итераций: {$_POST['iterations']}&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
  print &amp;quot;&amp;lt;p&amp;gt;Игрок изменял выбор?: {$_POST['DoSwitch']}&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
  print &amp;quot;&amp;lt;p&amp;gt;Число побед: $wins&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
  print &amp;quot;&amp;lt;p&amp;gt;Число поражений: $losses&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Снова довольно простой код. Если форма была отправлена, то инициализируем счётчики нулями и выполняем функцию MontyHall() много раз (указывая ей, должен ли игрок сменить дверь). После каждого запуска функции мы, в зависимости от возвращаемого ею результата, увеличиваем соответствующий счётчик. Вы всё еще со мной?&lt;br /&gt;
&lt;br /&gt;
Пора приступать к серьёзному коду — к функции MontyHall(). Как вы уже видели, она принимает параметр, указывающий, будет ли игрок изменять выбор двери, но это простая часть. А вот остальное:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  function MontyHall($DoSwitch) {&lt;br /&gt;
  /// Создадим массив дверей и перемешаем в случайном порядке&lt;br /&gt;
  $doors = array(1=&amp;gt;&amp;quot;Goat&amp;quot;, 2=&amp;gt;&amp;quot;Goat&amp;quot;, 3=&amp;gt;&amp;quot;Car&amp;quot;);&lt;br /&gt;
  shuffle($doors);&lt;br /&gt;
  /// выберем дверь и удалим её из массива&lt;br /&gt;
  $our_choice = array_rand($doors);&lt;br /&gt;
  $our_door = $doors[$our_choice];&lt;br /&gt;
  unset($doors[$our_choice]);&lt;br /&gt;
  /// а теперь &amp;quot;откроем&amp;quot; дверь&lt;br /&gt;
  /// Берём первую из оставшихся дверей и проверяем, там ли коза&lt;br /&gt;
  if (reset($doors) == &amp;quot;Goat&amp;quot;) {&lt;br /&gt;
    // Первая же дверь из оставшихся содержит козу,&lt;br /&gt;
    // удалим её из списка доступных!&lt;br /&gt;
    // получаем ключ текущей позиции&lt;br /&gt;
    $cur_key = key($doors);&lt;br /&gt;
    unset($doors[$cur_key]);&lt;br /&gt;
  } else { // первая дверь не содержит козу, так что удалим вторую&lt;br /&gt;
    next($doors);&lt;br /&gt;
    $cur_key = key($doors);&lt;br /&gt;
    unset($doors[$cur_key]);&lt;br /&gt;
  }&lt;br /&gt;
  /// Должен ли игрок изменить выбор?&lt;br /&gt;
  if ($DoSwitch == &amp;quot;Yes&amp;quot;) {&lt;br /&gt;
    /// Да, должен. Есть ли машина за оставшейся дверью?&lt;br /&gt;
    if (reset($doors) == &amp;quot;Car&amp;quot;) {&lt;br /&gt;
      // Да - мы выиграли!&lt;br /&gt;
      return &amp;quot;Win&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
      // коза :(&lt;br /&gt;
      return &amp;quot;Lose&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    // игрок не должен изменять решение&lt;br /&gt;
    if ($our_door == &amp;quot;Car&amp;quot;) {&lt;br /&gt;
      // мы с первого раза выбрали верную дверь&lt;br /&gt;
      return &amp;quot;Win&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
      // опять коза! :(&lt;br /&gt;
      return &amp;quot;Lose&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И снова я написал очень подробные комментарии и даже использовал понятные имена переменных, так что вам нет прощения, если вы этого не поймёте! Единственная вещь, которая может остаться неясной — это работа с массивом $doors. В коде используются вызовы не слишком часто используемых функций reset(), next() и keys(). Первая из них устанавливает внутренний указатель массива (определяющий, какая позиция является текущей) на первый элемент и возвращает его значение. Так что строка if (reset($doors) == «Goat») значит перейти к первому элементу массива $doors, получить его значение, и если оно равно «Goat»(коза), то условие истинно. Затем мы используем функцию key(), которая возвращает ключевое значение для текущего элемента массива (то есть для первого, так как мы вызвали reset()). После чего полученное значение мы используем для удаления этого элемента из массива. Это выглядит как странный трюк, но помните, у нас нет другого способа узнать индекс первого элемента, так как мы по сути не знаем, который элемент подлежит удалению. Если значение первого элемента не равно «Goat», то мы удалим второй, перейдя к нему с помощью функции next() (она просто перемещает указатель массива на одну позицию вперёд).&lt;br /&gt;
&lt;br /&gt;
=== Начало и конец ===&lt;br /&gt;
Итак, у нас осталась одна дверь в переменной $our_door и одна дверь в массиве $doors. Финальный вопрос — стоит ли игроку изменить свой выбор. Конечно, мы получили ответ на него в качестве аргумента функции, так что мы просто проверяем его и действуем соответствующим образом. Если мы должны переменить дверь, то мы возвращаем «Win», когда в последнем элементе $doors содержится слово «Car» (машина), в противном случае возвращаем «Lose». Если же игрок должен стоять на своём, то «Win» или «Lose» определяется содержимым переменной $our_door («Car» или «Goat» соответственно). Просто.&lt;br /&gt;
&lt;br /&gt;
Чего мы с вами еще не сделали? Необходимо добавить в наш сценарий начало и конец HTML-файла, чтобы он выглядел приятнее, и, что более важно, надо включить вызов функции srand() где-то ближе к началу программы. Без такого вызова PHP может не озаботиться генерацией достаточно случайных чисел, и получаемые результаты будут повторяться из раза в раз.&lt;br /&gt;
&lt;br /&gt;
Всё, что нам осталось — это скопировать полученный скрипт из вашего домашнего каталога в /var/www/html (этот путь может меняться в зависимости от дистрибутива) и вызвать его через web-браузер. Можете сравнить ваш скрипт с моим, хотя бы для того, чтобы убедиться, что вы соединили кусочки в правильном порядке.&lt;br /&gt;
&lt;br /&gt;
Вот и всё на этот месяц. Я надеюсь, что вы узнали кое-что о числах и вероятности, кое-что о функциях PHP для работы с массивами и многое о том, как можно использовать PHP для тестирования всех возможностей и поиска верного решения задачи. Более того, в процессе поиска решения ни одна коза не пострадала. Изумительно.&lt;br /&gt;
&lt;br /&gt;
Многие люди не согласны с решением о выгоде изменения своего выбора после того, как ведущий показал первую козу. Конечно, они ошибаются и достойны публичного осмеяния. Но если этим непросвещенным человеком является кто-то из ваших близких, то гораздо лучше было бы показать ему, где он ошибается, и привить немного любви к числам. Итак, используйте этот скрипт, чтобы показать как работает загадка Монти Холла, и подбросьте им «Флатландию» Эббота (Abbott, «Flatland»), чтобы они поняли, чего они лишены.&lt;br /&gt;
&lt;br /&gt;
=== Домашнее задание ===&lt;br /&gt;
Настало время отделить коз от овец. Если для вас уже довольно программирования, идите и наслаждайтесь расцветом чисел со своими друзьями. Но если вы настоящий программист, то вы можете подумать о том, как улучшить этот скрипт.&lt;br /&gt;
&lt;br /&gt;
Существует как минимум три изменения, которые вы можете попробовать, чтобы накачать свои программистские мускулы:&lt;br /&gt;
* Облегчить… Заставьте скрипт n раз запускать тест со сменой двери и еще n раз — сохраняя изначальный выбор, для того чтобы избавить пользователя от необходимости переключать кнопки. Результаты надо показать в разных частях экрана.&lt;br /&gt;
* Схитрить… Наш скрипт даже не пытается подсчитать проценты выигрышей или проигрышей на основе полученных данных. Для простых значений это просто сделать в уме. Например, если вы сделали 1000 тестовых запусков, то вы с первого взгляда распознаете ситуацию. Но если у вас было 19350 тестов, то результат уже не настолько очевиден.&amp;lt;br /&amp;gt;Подсчитайте число побед и поражений в процентном соотношении и выведите полученные значения.&lt;br /&gt;
* Расширить… Загадку Монти Холла можно обобщить. Теоретически, мы можем рассмотреть сотню дверей, с 99 козами и 1 машиной — и ведущий должен будет открыть 98 дверей после того, как мы выберем одну. В этой ситуации мы получим шанс на победу при смене двери, равный 99/100. Наш скрипт не может обработать эту ситуацию, но вы можете расширить интерфейс пользователя еще одним элементом, позволяющим задать число дверей, передавать затем это значение в функцию MontyHall() и создавать в функции массив из множества коз и одной машины в конце.&lt;br /&gt;
* Добить! Представьте себе, что ведущий шоу не знает, где находится машина. Что случится тогда с вашими шансами на победу и почему? Я жду ваших ответов на открытках, как обычно.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:PHP]]&lt;/div&gt;</summary>
		<author><name>Pygoscelis papua</name></author>	</entry>

	</feed>