<?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=%D0%90%D0%BA%D1%80%D0%BE%D0%BD%D0%B8%D0%BC</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=%D0%90%D0%BA%D1%80%D0%BE%D0%BD%D0%B8%D0%BC"/>
		<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/%D0%90%D0%BA%D1%80%D0%BE%D0%BD%D0%B8%D0%BC"/>
		<updated>2026-05-13T01:17:25Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A0z7%D0%B57%D0%B07wi%D0%B0350gnt</id>
		<title>Рz7е7а7wiа350gnt</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A0z7%D0%B57%D0%B07wi%D0%B0350gnt"/>
				<updated>2015-06-03T17:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Рz7е7а7wiа350gnt в LXF07:Review2 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF07:Review2]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF07:Review2</id>
		<title>LXF07:Review2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF07:Review2"/>
				<updated>2015-06-03T17:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Рz7е7а7wiа350gnt в LXF07:Review2 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==''Axigen 6.0''==&lt;br /&gt;
: Хотели было настроить себе почтовый Linux-сервер, да испугались загадочных команд и файлов конфигурации? '''Крис Браун''' пробует безболезненную альтернативу.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Почтовый сервер типа «все в одном» на Linux с простым графическим администрированием. &lt;br /&gt;
|также=''Courier''.&lt;br /&gt;
|изображение=LXF107_14_1.jpg&lt;br /&gt;
|подпись= У почтового сервера ''Axigen 6.0'' полноценный web-интерфейс. В данном случае прослушивается порт 8080, для совместимости с ''Apache''.&lt;br /&gt;
|разработчик=Gecad Technologies&lt;br /&gt;
|сайт=http://www.axigen.com&lt;br /&gt;
|цена=€250 (начальный уровень на 25 ящиков)&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=9&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=8&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=9&lt;br /&gt;
|параметр4=Оправданность цены&lt;br /&gt;
|оценка4=6&lt;br /&gt;
|итог=Попробуйте, если вам нужен полноценный, но простой в использовании почтовый сервер.&lt;br /&gt;
|рейтинг=8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Настройка почтового сервера всегда была чем-то вроде обряда посвящения в Linux-администраторы, а постоянные читатели наверняка помнят учебник по этой теме из [[LXF103:Hardcore_Linux|LXF103]]. Тем интереснее было попробовать ''Axigen'', главные козыри которого – простота установки и использования.&lt;br /&gt;
&lt;br /&gt;
''Axigen'' – это комплексный почтовый сервер. Здесь есть SMTP, POP и IMAP, web-сервер со «скинами», сервер списков рассылки, подключение к антивирусным и антиспамовым приложениям, а также календарь и дневник. В терминах свободного ПО это грубый эквивалент ''Sendmail'' или ''Postfix'' плюс ''Dovecot'', плюс ''SquirrelMail''. Продукт можно загрузить с&lt;br /&gt;
сайта ''Axigen'', как в формате RPM, так и в виде Deb-пакета. Все, что нужно сделать с полученным архивом – распаковать его и установить&lt;br /&gt;
из root-терминала. Приложение появится в '''/opt/axigen''' – это один из немногих продуктов сторонней разработки, устанавливаемых&lt;br /&gt;
именно туда, куда предписано стандартом FHS [Filesystem Hierarchy Standard].&lt;br /&gt;
&lt;br /&gt;
Базовую настройку поможет выполнить мастер. К примеру, нужно выбрать пароль администратора, указать «первичный домен»,&lt;br /&gt;
который будет обслуживать ''Axigen'' и определить запускаемые службы и прослушиваемые&lt;br /&gt;
интерфейсы и порты. Это самая запутанная часть процесса, к тому же с уродливым интерфейсом в стиле ''Ncurses''.&lt;br /&gt;
&lt;br /&gt;
Завершив ее, можно запускать комплекс. Все остальное настраивается через web-интерфейс, прослушивающий порт 9000. Из&lt;br /&gt;
главного окна администратора можно добавлять новые домены, создавать в них почтовые учетные записи, управлять списками рассылки, проверять очереди писем и файлы протоколов, настраивать антиспамовые фильтры и делать много чего еще. &lt;br /&gt;
&lt;br /&gt;
===Раз, и готово!===&lt;br /&gt;
&lt;br /&gt;
''Axigen'' имеет Flash-демо для помощи в первичной настройке. Продукт не претенциозен, но со своей задачей справляется. Мы взялись&lt;br /&gt;
за дело и установили комплекс на существующий почтовый сервер (не забыв при этом отключить штатные SMTP и POP). 15 минут&lt;br /&gt;
грузили, устанавливали и делали первичную настройку. Еще 10 минут ушло на загрузку лицензии, создание доменов и добавление&lt;br /&gt;
новых пользователей. Честно говоря, были и еще 15 минут, пока мы вспоминали, как открываются дополнительные порты в брандмауэре. Пусть так, но 40 минут на полную установку почтового сервера – это совсем неплохо.&lt;br /&gt;
&lt;br /&gt;
''Axigen'' не бесплатен. Лицензия начального уровня стоит €250 и рассчитана на 25 почтовых ящиков. С этой точки цены растут&lt;br /&gt;
до €2700 (редакция Service Provider Edition на 5000 ящиков). Для пробы можно загрузить демо-версию – она работает 30 дней безо всякой лицензии (но помечает каждое сообщение маркером об использовании пробного ПО). Можно также получить бесплатный ключ, действительный в течение года, но тогда программа сможет работать только с пятью ящиками, и только в пределах одного домена. &lt;br /&gt;
&lt;br /&gt;
Истые Linux-хакеры обольют презрением мысль выложить €250 за то, что и так возможно с помощью свободных программ. Но&lt;br /&gt;
для простых смертных это деньги, потраченные не зря. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%90pple,_%D0%BFo%D0%B2e%D0%BB%D0%B8%D1%82e%D0%BB%D1%8C_%D0%BFp%D0%B8%D0%BD%D1%82epo%D0%B2</id>
		<title>Аpple, пoвeлитeль пpинтepoв</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%90pple,_%D0%BFo%D0%B2e%D0%BB%D0%B8%D1%82e%D0%BB%D1%8C_%D0%BFp%D0%B8%D0%BD%D1%82epo%D0%B2"/>
				<updated>2015-06-03T17:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Полностью удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF100-101:Review4</id>
		<title>LXF100-101:Review4</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF100-101:Review4"/>
				<updated>2015-06-03T16:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Аpple, пoвeлитeль пpинтepoв в LXF100-101:Review4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fedora 8==&lt;br /&gt;
&lt;br /&gt;
: Современный мир Linux полон здорового соперничества: '''Энди Хадсон''' считает, что Fedora 8 таки утрет нос Gutsy Gibbon…&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|изображение=LXF100_14_1.jpg&lt;br /&gt;
|подпись=При улучшенной внешности Fedora, несомненно, завоюет немало новых поклонников.&lt;br /&gt;
|разработчик=The Fedora Project&lt;br /&gt;
|сайт=http://fedoraproject.org&lt;br /&gt;
|цена=Бесплатно под GPL&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=9&lt;br /&gt;
|параметр2=производительность&lt;br /&gt;
|оценка2=9&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=9&lt;br /&gt;
|параметр4=Документация&lt;br /&gt;
|оценка4=9&lt;br /&gt;
|итог=Если вы стоите на перепутье, выбирая дистрибутив – дайте шанс Fedora. Даже если не понравится, не попробовать нельзя.&lt;br /&gt;
|рейтинг=9&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
За последние 4 года проект Fedora продвинулся весьма заметно. Дистрибутив отпочковался от Red Hat Linux, когда в RH решили ускорить развитие за счет подключения к разработке участников сообщества. Это было тогда, а теперь с нами Fedora 8. В Азии восьмерка считается счастливой&lt;br /&gt;
цифрой: повезет ли Fedora?&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовко=Пол считает…|Содержание=«Это первый дистрибутив&lt;br /&gt;
Fedora за несколько лет, который меня действительно&lt;br /&gt;
восхищает – мне нравится новый интерфейс брандмауэра, а оформление просто&lt;br /&gt;
сказочное! Так держать, команда Fedora!» |Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
===Красота===&lt;br /&gt;
&lt;br /&gt;
Исчезла унылая тема Echo, уступив место современной Nodoka. Новая тема смотрится профессионально и элегантно, особенно при работе ''Compiz'', с его непременными&lt;br /&gt;
дрожащими окнами и вращающимся кубиком. Визуально освежили даже инсталлятор ''Anaconda'', отбросив воздушные шарики Fedora 7 и спирали Fedora 6 ради простой, но&lt;br /&gt;
элегантной темы. Если вы любите внешний лоск, вам понравятся новые обои Fedora&lt;br /&gt;
8, поставляемые по умолчанию. Со сменой времени суток меняется и цвет оформления рабочего стола: утром и вечером заря занимается не только в небе, но и на экране. Gnome 2.20 тоже немало способствует общему великолепию Fedora, выводя дистрибутив в ряды наиболее современных.&lt;br /&gt;
&lt;br /&gt;
Впрочем, известно: не графика «делает» Linux-дистрибутив. Так чем же еще отметилось сообщество Fedora со времени версии 7? Честно говоря, закрома не так уж богаты, но это не значит, что дополнения несущественны. Интеграция в Fedora ''PulseAudio'' обеспечила тонкий контроль громкости в пределах дистрибутива. Если одновременно обрабатывается несколько аудиопотоков, то&lt;br /&gt;
уровень громкости каждого можно менять отдельно, а не на уровне ОС. Аудио- и видеоприложения Gnome тоже выиграли от интеграции ''PulseAudio'', и ''RhythmBox'' теперь опознается по умолчанию. Вероятно, еще важнее, что команда Fedora, наконец, признала, что пользователь должен сам выбирать между проприетарными и свободными кодеками, и включила в дистрибутив ''CodecBuddy/Codeina'' для упрощения загрузки мультимедиа-кодеков (включая MP3). Интересно, что разработчики предпочли для MP3 расширение ''Fluendo'', но при этом поставили пользователя&lt;br /&gt;
в известность относительно разницы между проприетарным и свободным ПО.&lt;br /&gt;
&lt;br /&gt;
А еще нам понравилась манера обращения Fedora с нашей web-камерой (Logitech&lt;br /&gt;
QuickCam Pro 3000). В предыдущих версиях дистрибутивов ветки Red Hat она никогда&lt;br /&gt;
не работала «по умолчанию», но с Fedora достаточно было просто подключить устройство к разъему, и уже через несколько минут мы, запустив ''Ekiga'', участвовали в&lt;br /&gt;
видеоконференции.&lt;br /&gt;
&lt;br /&gt;
===«Под капотом»===&lt;br /&gt;
&lt;br /&gt;
По умолчанию Fedora оснащается ядром 2.6.23, с предусмотренным переходом на 2.6.24, как только оно будет протестировано и выпущено. Улучшена поддержка виртуализации, и теперь, с ''Xen, KVM'' и ''QEMU'', Fedora становится мощной виртуализационной платформой. Администраторам серверов будет интересно узнать, что виртуальные машины теперь можно администрировать удаленно,&lt;br /&gt;
так что приходить в серверную уже необязательно. SELinux, естественно, тоже усовершенствован, работа с безопасным рабочим окружением стала проще и удобнее.&lt;br /&gt;
&lt;br /&gt;
Очень важно для Fedora долгожданное улучшение управления пакетами. ''Yum'' заметно ускорился со времени Fedora 7, а ''pirut'' (стандартный графический инструмент&lt;br /&gt;
управления пакетами), наконец, «научился»&lt;br /&gt;
добавлять, редактировать и удалять репозитории и работать с CD/DVD. Хотя и проигрывая в скорости ''apt, Yum'' изрядно вырос, и,&lt;br /&gt;
вкупе с дополнительной переработкой системы RPM, вскоре даст нам ощутить выгоды от&lt;br /&gt;
этого роста.&lt;br /&gt;
&lt;br /&gt;
Но это еще не все графические усовершенствования: утилита настройки брандмауэра (бывший бедный родственник семьи ''system-config'') стала гораздо более гибким&lt;br /&gt;
инструментом. А как лихо Fedora разделывается с принтерами! Пользователю надо лишь&lt;br /&gt;
включить разъем устройства в порт, остальное система сделает сама. Появится уведомление об определении нового устройства, и секунд через тридцать вы найдете принтер в&lt;br /&gt;
меню своего любимого приложения.&lt;br /&gt;
&lt;br /&gt;
===Если «копнуть» поглубже…===&lt;br /&gt;
&lt;br /&gt;
Указывает ли Fedora 8 на серьезные сдвиги в разработке дистрибутива? В прошлом график проекта был более чем гибким (помните девятимесячный цикл Fedora Core 5?), но&lt;br /&gt;
теперь обещано придерживаться шестимесячного цикла – апрель и октябрь – отражающего график версий Ubuntu. Fedora 8 получил на разработку 5 месяцев, чтобы уложиться в&lt;br /&gt;
новый цикл, так что идея Ubuntu о важном значении предсказуемости релизов явно взята в команде Fedora на вооружение.&lt;br /&gt;
&lt;br /&gt;
Фактически, в Fedora мало что изменилось, просто эта версия добавила дистрибутиву зрелости, недостававшей предыдущим трем вариантам. Не поймите меня превратно,&lt;br /&gt;
эти дистрибутивы, как таковые, не были плохи, но именно сейчас разработчики смогли,&lt;br /&gt;
наконец, окончательно отшлифовать свое изделие. Несомненно, «приятность» теперь&lt;br /&gt;
входит в число функций Fedora, и это привлечет новых поклонников.&lt;br /&gt;
&lt;br /&gt;
===Выбор оружия===&lt;br /&gt;
&lt;br /&gt;
В рамках цикла Fedora 7 сообществу был представлен ''revisor'', с помощью которого&lt;br /&gt;
можно было создавать собственные версии Fedora, и эта идея получила дальнейшее&lt;br /&gt;
развитие с выходом DVD-варианта, варианта GNOME Live CD, отдельных наборов KDE&lt;br /&gt;
(3.5.8), Games и Electonic Lab, каждый из которых существенно расширил потенциальный круг пользователей Fedora. Простота создания собственной версии играет на руку&lt;br /&gt;
дистрибутиву: вообразите, что вы запросто&lt;br /&gt;
создаете особый вариант для своего офиса,&lt;br /&gt;
который можно развернуть на 50-ти машинах&lt;br /&gt;
вместе со специальным установочным скриптом ''Kickstart'', и вы оцените всю подаренную&lt;br /&gt;
вам мощь и удобство.&lt;br /&gt;
&lt;br /&gt;
Так чего же нам ждать от проекта Fedora? Версия 8 дает понять, что вскоре последует&lt;br /&gt;
жесткое соперничество с Ubuntu за количество пользователей. Древний спор о совместимости с MP3 после включения ''CodecBuddy'' потерял смысл; и появились мощные инструменты, предлагаемые Fedora для настройки своей системы. Рискнем даже предположить, что Fedora становится серьезным конкурентом Ubuntu по части простоты использования и дружелюбия. Если вам нужен гибкий дистрибутив, остающийся при этом на позициях свободного ПО, то Fedora должен занять в&lt;br /&gt;
вашем списке одну из верхних строчек. Он резко улучшился, а ''CodecBuddy'' значительно облегчает его использование в качестве мультимедиа-платформы.&lt;br /&gt;
&lt;br /&gt;
Судя по событиям прошлого, Fedora 9 должен послужить основанием RHEL 6, поэтому&lt;br /&gt;
серьезных изменений между 8 и 9 ждать не стоит. Вместо этого дистрибутив ожидают&lt;br /&gt;
дальнейшая шлифовка и доводка до мирового класса. Если вы еще не пробовали Fedora –&lt;br /&gt;
самое время вливаться! '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Шаг за шагом: Получаем поддержку MP3 в Fedora===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF100_14_2.jpg|Шаг 1]]&lt;br /&gt;
&lt;br /&gt;
* '''Предупреждение'''&lt;br /&gt;
Если вы пробуете открыть неподдерживаемый медиа-файл, то Fedora сообщает о том, что его формат проприетарный, и предлагает свободную альтернативу.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF100_14_3.jpg|Шаг 2]]&lt;br /&gt;
&lt;br /&gt;
* '''Выбор'''&lt;br /&gt;
Если вы ответили '''ОК''', то Fedora покажет возможные варианты открытия выбранного файла. Выберите то, что вам нужно, и нажмите '''Get Selected''' [Получить выбранное].&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF100_14_4.jpg|Шаг 3]]&lt;br /&gt;
&lt;br /&gt;
* '''Вы уверены?'''&lt;br /&gt;
Перед загрузкой кодека вам будет представлена лицензия. Неплохо будет хотя бы бегло прочесть ее – ведь это вам выбирать, принять или отклонить.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF100_15_1.jpg|Шаг 4]]&lt;br /&gt;
&lt;br /&gt;
* '''Готово'''&lt;br /&gt;
Fedora загрузил нужный кодек, установил его и приступил к фоновому воспроизведению файла. Все отлично в этом мире!&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%90pple,_%D0%BFo%D0%B2e%D0%BB%D0%B8%D1%82e%D0%BB%D1%8C_%D0%BFp%D0%B8%D0%BD%D1%82epo%D0%B2</id>
		<title>Аpple, пoвeлитeль пpинтepoв</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%90pple,_%D0%BFo%D0%B2e%D0%BB%D0%B8%D1%82e%D0%BB%D1%8C_%D0%BFp%D0%B8%D0%BD%D1%82epo%D0%B2"/>
				<updated>2015-06-03T16:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Аpple, пoвeлитeль пpинтepoв в LXF100-101:Review4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF100-101:Review4]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/IND%D0%95%D0%A5</id>
		<title>INDЕХ</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/IND%D0%95%D0%A5"/>
				<updated>2015-06-03T16:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу INDЕХ в LXF102:Откажись от Windows поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF102:Откажись от Windows]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF102:%D0%9E%D1%82%D0%BA%D0%B0%D0%B6%D0%B8%D1%81%D1%8C_%D0%BE%D1%82_Windows</id>
		<title>LXF102:Откажись от Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF102:%D0%9E%D1%82%D0%BA%D0%B0%D0%B6%D0%B8%D1%81%D1%8C_%D0%BE%D1%82_Windows"/>
				<updated>2015-06-03T16:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу INDЕХ в LXF102:Откажись от Windows поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Как излечить Windows-манию==&lt;br /&gt;
&lt;br /&gt;
: Поддержим друзей и любимых, впавших в зависимость от проприетарной ОС. Сеанс терапии проводит '''Джо Касселз'''...&lt;br /&gt;
&lt;br /&gt;
Всегда тяжело смотреть на друга или родственника, страдающего от какой-то зависимости. Общество помогает наркозависимым и курящим избавиться от их пагубных привычек, но о самой разрушительной зависимости – зависимости от Microsoft Windows – оно еще не сказало своего слова.&lt;br /&gt;
&lt;br /&gt;
Первая доза часто дается бесплатно в виде предустановленного ПО,&lt;br /&gt;
стоимость которого входит в стоимость компьютера. Но очень скоро&lt;br /&gt;
возникает полная зависимость, оставляющая несчастного пользователя во власти поставщика ПО. Ему или ей суждено стать частью другой&lt;br /&gt;
статистики: пожизненных пользователей Windows.&lt;br /&gt;
&lt;br /&gt;
Что же не так с Windows? Как и при любой зависимости, за ее развлекательной составляющей недостатки не просматриваются, но постоянная тяга к конкретному ПО – статья особая. Если вы попросту не в силах загрузить компьютер без Windows или сделать без нее что-либо осмысленное, то вы зависимы, и от этой привычки нужно избавляться.&lt;br /&gt;
&lt;br /&gt;
Многие зависимые люди скажут вам, что делать это нужно постепенно, и тут жизненно необходима поддержка друзей и родственников. В данной статье мы рассмотрим пошаговый процесс отказа от Windows и переключения на альтернативный вариант, при котором&lt;br /&gt;
вы не прикованы к конкретному поставщику ПО.&lt;br /&gt;
&lt;br /&gt;
===По разу в день===&lt;br /&gt;
&lt;br /&gt;
Большинству людей компьютер нужен для работы. Они не купят&lt;br /&gt;
PC, если на нем не установлено соответствующее их целям ПО.&lt;br /&gt;
Подавляющее большинство компьютеров поставляется с Windows,&lt;br /&gt;
поэтому ее и выбирают по умолчанию. Фанаты Apple предпочтут Mac,&lt;br /&gt;
а люди, на которых брэнды особо не влияют, не пойдут по этому&lt;br /&gt;
пути, потому что Mac дороже PC. Если уж вы взвалили себе на плечи&lt;br /&gt;
Windows, вам нужно крепко ею объесться, чтобы возжелать перемен.&lt;br /&gt;
Да нужно и знать, что существуют альтернативы, и обладать умением&lt;br /&gt;
ими воспользоваться.&lt;br /&gt;
&lt;br /&gt;
Компьютеров с предустановленным Linux очень немного, так что&lt;br /&gt;
доступны они лишь осведомленным об их существовании. Мало кто из&lt;br /&gt;
поставщиков продает компьютеры без предустановленной ОС – хотя&lt;br /&gt;
примечательно, что Novatech (http://www.novatech.co.uk) предоставляет возможность приобрести любую конфигурацию без предустановленной&lt;br /&gt;
Windows. Можно купить компьютер и, придя домой, просто установить&lt;br /&gt;
туда Linux.&lt;br /&gt;
&lt;br /&gt;
===Программы или ОС?===&lt;br /&gt;
&lt;br /&gt;
Однако чаще всего люди привыкают к Windows и ее программам.&lt;br /&gt;
Среднестатистический пользователь ПК вряд ли отделяет Windows&lt;br /&gt;
от ее некоторых особенно популярных программ. Тем, кто не энтузи-&lt;br /&gt;
аст, трудно понять, где заканчивается Windows и начинается Microsoft&lt;br /&gt;
Office. Это можно обратить в преимущество: проще убедить кого-то&lt;br /&gt;
попробовать новую программу, чем полностью изменить принцип&lt;br /&gt;
работы его компьютера. Постепенно заменяя программы Windows&lt;br /&gt;
их распространенными Linux-аналогами, можно упростить переход в&lt;br /&gt;
открытое окружение, избежав резких изменений. Расценивайте это&lt;br /&gt;
как аналогичный этап борьбы с никотиновой зависимостью, когда&lt;br /&gt;
количество выкуриваемых сигарет постепенно уменьшается до полно-&lt;br /&gt;
го отказа от курения.&lt;br /&gt;
&lt;br /&gt;
===''Firefox''===&lt;br /&gt;
&lt;br /&gt;
Первый рациональный шаг – замена ''Internet Explorer'' на ''Mozilla Firefox''.&lt;br /&gt;
''Firefox'', наверное, самая популярная программа с открытым исходным&lt;br /&gt;
кодом. Освоиться в ней нетрудно, так как браузер достаточно похож&lt;br /&gt;
на ранние версии ''Internet Explorer''. Чтобы установить версию ''Firefox''&lt;br /&gt;
под Windows, зайдите на страницу http://www.mozilla.com/firefox, загрузите и установите программу. Во время установки можно перенести&lt;br /&gt;
Избранное и домашнюю страницу ''IE'' в ''Firefox''. Не все даже могут отличить ''Firefox'' от ''Internet Explorer 6'', особенно если домашняя страница&lt;br /&gt;
та же самая.&lt;br /&gt;
&lt;br /&gt;
Поборов колебания насчет установки ''Firefox'', попробуйте предъявить преимущества браузера. Для этого добавьте несколько модулей расширения, улучшающих web-серфинг, которые просто обязаны быть у всех. Список модулей можно увидеть, выбрав пункт меню&lt;br /&gt;
'''Инструменты &amp;gt; Дополнения &amp;gt; Загрузить дополнения''' [Tools &amp;gt; Add-ons &amp;gt; Get Extensions]. Установите ''Adblock Plus, Russian spell dictionary'' для&lt;br /&gt;
встроенной проверки правописания и ''NoScript''. Есть море других модулей, но эти три неоценимы: они блокируют раздражающую сетевую&lt;br /&gt;
активность и защищают браузер.&lt;br /&gt;
&lt;br /&gt;
===Электронная почта===&lt;br /&gt;
&lt;br /&gt;
Заведя в Windows браузер с открытым исходным кодом, перейдем к&lt;br /&gt;
электронной почте. Если у «пациента» стоит ''Outlook Express'', поменяйте его на ''Mozilla Thunderbird'' (http://www.mozilla.com/thunderbird). У этого&lt;br /&gt;
клиента есть версия под Linux, и когда дело дойдет до переезда, перенести почтовые архивы будет очень просто. Как и ''Firefox, Thunderbird''&lt;br /&gt;
предлагает импортировать сообщения и настройки из ''Outlook'' или&lt;br /&gt;
''Outlook Express'', так что этот переход тоже относительно безболезненный. Хотя некоторые приемы работы с ''Thunderbird'' немного отличаются от ''Outlook'', в целом возможности ''Thunderbird'' эквивалентны&lt;br /&gt;
''Outlook Express'', есть даже программа для чтения новостей Usenet.&lt;br /&gt;
В ''Thunderbird'' осваиваться чуть дольше, чем при переходе с ''Internet Explorer'' на ''Firefox'', но особых проблем быть не должно.&lt;br /&gt;
&lt;br /&gt;
Если же «пациент» пользуется почтовым web-сервисом, оставьте&lt;br /&gt;
все как есть. При наличии браузера, URL, имени пользователя и пароля для почты, неважно, в какой операционной системе вы работаете.&lt;br /&gt;
&lt;br /&gt;
===Офисные приложения===&lt;br /&gt;
&lt;br /&gt;
А теперь займемся офисными приложениями. Именно здесь Microsoft&lt;br /&gt;
завладела множеством пользователей, окрутив их версиями ''Word'' или&lt;br /&gt;
''Excel'', с которыми они работают. Но это и вызов для Microsoft, потому что&lt;br /&gt;
пользователи не стремятся обновиться до последней версии в силу обычной инертности. Может быть, отчасти по этой причине и появился формат&lt;br /&gt;
'''DOCX''' в ''Office 2007''. Пользователи ''Office 2007'' по-прежнему могут сохранять документы в формате, совместимом с ранними версиями ''Office'',&lt;br /&gt;
но для этого надо изменить настройки по умолчанию, чего многие просто не станут делать. Новый стандарт может принудить пользователей обновиться. Он вызовет похожие проблемы и у желающих пользоваться открытыми офисными пакетами. У ''OpenOffice.org'' (http://www.openoffice.org) есть версия под&lt;br /&gt;
Windows, совместимая с ранними версиями ''Microsoft Office'', но '''DOCX'''-файлы в ней открывать еще нельзя. К счастью, есть web-конвертор '''DOCX''', который преобразует документ для тех, кому нужен более открытый формат. Наберите в адресной строке&lt;br /&gt;
браузера http://docx-converter.com и нажмите на кнопку '''Browse''', чтобы&lt;br /&gt;
найти и загрузить файл '''DOCX''', который нужно преобразовать. Следует&lt;br /&gt;
указать адрес электронной почты, куда придет сообщение по окончании&lt;br /&gt;
преобразования.&lt;br /&gt;
&lt;br /&gt;
Чаще всего переход на ''OpenOffice.org'' (''OOo'') не вызывает больших&lt;br /&gt;
проблем. Самая используемая офисная программа, несомненно, текстовый процессор, и как только вы разберетесь с '''DOCX''', ощутимых&lt;br /&gt;
трудностей с ним у вас не возникнет. Редактор электронных таблиц очень похож на ''Excel'' версий до 2007, а ''Impress'', программа для&lt;br /&gt;
работы с презентациями, открывает файлы ''PowerPoint'' без особых проблем.&lt;br /&gt;
&lt;br /&gt;
Однако есть еще кое-какие начальные мероприятия. Прежде всего, если вы сотрудничаете с людьми, работающими в ''Microsoft Office'',&lt;br /&gt;
позаботьтесь, чтобы ваши документы по умолчанию сохранялись в&lt;br /&gt;
пригодном для них формате. Задать соответствующие настройки&lt;br /&gt;
можно в любом приложении ''OOo''. Выберите '''Сервис &amp;gt; Параметры &amp;gt; Загрузка/сохранение &amp;gt; Microsoft Office''' [Tools &amp;gt; Options &amp;gt; Load/save&lt;br /&gt;
&amp;gt;Microsoft Office] и отметьте все галочки под '''[З]''' и '''[С]''' ([L] и [S]), чтобы&lt;br /&gt;
при открытии и сохранении каждого файла гарантировать его преобразование в совместимый формат.&lt;br /&gt;
&lt;br /&gt;
Переход на ''OOo'' не лишен недостатков. Он запускается гораздо&lt;br /&gt;
медленнее, чем аналог от Microsoft. Это заметно только при запускe какого-либо из приложений, но нетерпеливым пользователям хватит&lt;br /&gt;
задержки и в несколько секунд, чтобы занервничать. Документы со&lt;br /&gt;
сложным форматированием в ''OOo'' будут выглядеть не совсем так, как&lt;br /&gt;
в ''Microsoft Office'', хотя это справедливо для любого другого офисного&lt;br /&gt;
пакета. В презентацию ''Impress'' сложно добавить '''Flash'''-анимацию, тогда&lt;br /&gt;
как в ''Microsoft Office'' это очень просто. Однако эти мелкие недостатки&lt;br /&gt;
обычно перевешивает тот факт, что ''OpenOffice.org'' – свободное ПО.&lt;br /&gt;
&lt;br /&gt;
===Медиа-проигрыватель===&lt;br /&gt;
&lt;br /&gt;
В большинстве дистрибутивов Linux есть излюбленный проигрыватель&lt;br /&gt;
мультимедиа, а пользователям Windows, наверное, знаком ''Windows Media Player''. Однако ''VLC Media Player'' (http://www.videolan.org/vlc) имеет&lt;br /&gt;
ряд преимуществ. При очень простом интерфейсе, он поддерживает множество типов файлов. Плейер также можно использовать для&lt;br /&gt;
воспроизведения потокового видео. Многие пользователи Windows&lt;br /&gt;
предпочитают его проигрывателю по умолчанию, и он истинно кроссплатформенный. Как и ''Firefox, VLC Media Player'' – один из лучших&lt;br /&gt;
представителей приложений с открытым исходным кодом.&lt;br /&gt;
&lt;br /&gt;
Продолжайте в том же духе, заменяя по одному приложению за раз&lt;br /&gt;
на аналог с открытым исходным кодом для Windows, который также&lt;br /&gt;
широко используется в Linux. Для обмена сообщениями попробуйте&lt;br /&gt;
''Pidgin'' (http://www.pidgin.im), работающий со всеми основными протоколами&lt;br /&gt;
обмена сообщениями, хотя сейчас он не поддерживает видео-чаты. В&lt;br /&gt;
некоторых репозиториях он значится под прежним названием ''GAIM'',&lt;br /&gt;
но по сути дела это одна и та же программа. Возможности широко&lt;br /&gt;
используемого графического редактора ''GIMP'' по большому счету не&lt;br /&gt;
уступают ''Photoshop'' или ''Paint Shop Pro'', нужно только привыкнуть к&lt;br /&gt;
интерфейсу. Возможно, труднее всего это будет случайному пользователю графических пакетов. Аналоги под Linux других программ&lt;br /&gt;
Windows можно найти в списке, расположенном по адресу http://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software.&lt;br /&gt;
Зайдя на эту страничку, посмотрите, есть ли Windows-аналог нужной&lt;br /&gt;
вам программы. Заменив основные приложения «пациента» в Windows&lt;br /&gt;
на их аналоги под Linux, вы уменьшите его культурный шок, когда дело&lt;br /&gt;
дойдет до перехода на Linux.&lt;br /&gt;
&lt;br /&gt;
Когда пользователь попривыкнет к Windows-версиям основных&lt;br /&gt;
программ Linux, настанет время великого переселения. Возьмите&lt;br /&gt;
известный, хорошо поддерживаемый дистрибутив, напри-&lt;br /&gt;
мер, Ubuntu, Fedora или OpenSUSE. Обдумайте вариант двойной загрузки, но не забудьте, о чем&lt;br /&gt;
предупреждает раздел «Настройка двойной загрузки: а надо ли?» далее. Может быть, для уменьшения вероятности рецидива лучше сжечь мосты. Как и с другими пагубными привычками, рецидивы случаются. Чтобы понять, как с ними бороться, прочитайте раздел «Рецидив: часть восстановления».&lt;br /&gt;
&lt;br /&gt;
От привычки к Windows можно избавиться, и у многих это получилось. Потребуется немало преданности и&lt;br /&gt;
тяжелой работы, но с поддержкой, силой воли и правильным отношением к этому все вполне реально. Разве не ваш&lt;br /&gt;
моральный долг – помочь другу избавиться от разрушительной привычки? '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Тревожные симптомы===&lt;br /&gt;
&lt;br /&gt;
Проявления Windows- зависимости, и как они могут повлиять на окружающих.&lt;br /&gt;
&lt;br /&gt;
Первый шаг, который нужно сделать для преодоления зависимости – признать, что проблема существует. Это непросто, однако у всех&lt;br /&gt;
зависимостей есть заметные эффекты:&lt;br /&gt;
&lt;br /&gt;
* '''Фрагментирование данных''' Из-за расположения и изменяемого размера swap-файла компьютер с Windows гораздо сильнее подвержен фрагментации данных. В результате падает производительность или тратится время на приведение диска в порядок. Неудивительно, что пользователи Windows испытывают стресс.&lt;br /&gt;
* '''Вредоносное ПО''' Программы Adware и шпионы обычно пишутся в расчете на пользователей Windows. Тем приходится прилагать больше усилий, чтобы содержать систему «в чистоте», и их всегда гнетет подозрение, что к их данным могут получить доступ другие. Инфицирование также замедляет работу компьютера, вызывая у «пациента» раздражение и ослабляя концентрацию внимания.&lt;br /&gt;
* '''Антивирус''' Необходимость ежедневно запускать антивирус и загружать обновления – еще один источник беспокойства многострадальных пользователей Windows. В теории доказано, что вирусы могут быть и в Linux, и антивирусные приложения здесь тоже имеются, но зато не надо снова и снова сканировать систему, чтобы ее уберечь. Необходимость держать это в голове может заставить пользователя забыть о других важных событиях – например, о чьем-нибудь юбилее.&lt;br /&gt;
* '''Испорченный реестр''' Энтузиасту Windows очень легко отредактировать реестр так, чтобы компьютер перестал загружаться. Этот Дамоклов меч доводит пользователя до нервозности, а то и паранойи.&lt;br /&gt;
* '''Обновления''' Любую ОС надо время от времени обновлять, но Windows несчастна уже тогда, когда не может «звонить домой» каждый день. Необходимость постоянно обращаться к поставщику за обновлениями кода – явный признак зависимости.&lt;br /&gt;
* '''Условия зависимости''' Вскоре злополучный пользователь поймает себя на том, что он говорит об Активации и Валидации на пониженных тонах. Эти понятия означают, что он должен выпросить у поставщика разрешение продолжить работу на своем же компьютере. Это классическое поведение зависимых, и единственный метод лечения – полностью отказаться от Windows.&lt;br /&gt;
&lt;br /&gt;
===Заместительная терапия===&lt;br /&gt;
&lt;br /&gt;
Избавиться от влечения к брошенной Windows поможет ''Wine''.&lt;br /&gt;
&lt;br /&gt;
Для облегчения перехода к нормальной жизни наркоманам, употребляющим героин, дают таблетки метадона; курильщики лепят никотиновый&lt;br /&gt;
пластырь, чтобы отвлечься от неприятных симптомов переходного периода. Похожее средство есть и для пользователей Windows, отважившихся&lt;br /&gt;
установить Linux на свой компьютер. Это программа ''Wine''. Ее название&lt;br /&gt;
расшифровывается как Wine Is Not an Emulator (Wine – Не Эмулятор): это&lt;br /&gt;
слой совместимости, дающий пользователям Linux возможность запускать некоторые программы Windows.&lt;br /&gt;
&lt;br /&gt;
Загрузить ее можно с сайта http://www.winehq.com, но необходимые пакеты&lt;br /&gt;
есть в большинстве дистрибутивов – поэтому, наверное, проще установить ''Wine'' с помощью менеджера пакетов. Назначение ''Wine'' – предоставить приложениям Windows данные и ресурсы, необходимые им для работы в Linux. Не все программы работают с ''Wine'' безупречно; список&lt;br /&gt;
совместимости приложений можно найти на странице http://appdb.winehq.org. Там же есть wiki, форум и ссылки на другие сайты, которые помогут&lt;br /&gt;
запустить приложения. Но лучше рассматривать ''Wine'' как последнее&lt;br /&gt;
средство. Запуск проприетарного ПО Windows под ''Wine'' порождает те же&lt;br /&gt;
ограничения закрытого ПО и зависимость от поставщика, что и сама&lt;br /&gt;
Windows. Если вы решили перейти на альтернативное свободное ПО в&lt;br /&gt;
Windows до миграции на Linux, никотиновый пластырь ''Wine'' вам не понадобится.&lt;br /&gt;
&lt;br /&gt;
===Настройка двойной загрузки: а надо ли?===&lt;br /&gt;
&lt;br /&gt;
Может ли двойная загрузка избавить от Windows-зависимости?&lt;br /&gt;
&lt;br /&gt;
Двойная загрузка – обычный этап на пути к перемещению в Linux. Она дает вам полноценно работающий&lt;br /&gt;
дистрибутив и гарантирует спасительную возможность в любой момент перезагрузить компьютер и войти в&lt;br /&gt;
Windows.&lt;br /&gt;
&lt;br /&gt;
Настроить конфигурацию с двойной загрузкой очень просто. В большинстве дистрибутивов это делается при&lt;br /&gt;
установке, если на жестком диске есть раздел с Windows и немного неразмеченного пространства.&lt;br /&gt;
&lt;br /&gt;
Например, для Ubuntu загрузитесь с Ubuntu CD. Запустится live-версия дистрибутива, работающая&lt;br /&gt;
прямо с компакт-диска. Чтобы установить ее на жесткий диск, дважды щелкните на иконке '''Install''' и следуйте&lt;br /&gt;
указаниям мастера. Дойдя до этапа «Разбиение диска», выберите '''Guided''' – используется самая большая область&lt;br /&gt;
неразмеченного пространства, какая есть на жестком диске. Или выберите '''Manual''' и укажите область диска,&lt;br /&gt;
где хотите установить Ubuntu. Завершите установку.&lt;br /&gt;
При загрузке компьютера появится загрузчик ''Grub''.&lt;br /&gt;
Ubuntu будет помечена как система по умолчанию; если&lt;br /&gt;
нужно выбрать другую систему, нажмите '''Esc'''. Выберите&lt;br /&gt;
нужный вариант из списка и нажмите '''Enter'''.&lt;br /&gt;
&lt;br /&gt;
На вид, двойная загрузка – идеальное решение для тех, кто пытается избавиться от Windows, но у нее есть&lt;br /&gt;
и ряд недостатков. Самый важный – то, что большинство «пациентов», имея возможность загрузить&lt;br /&gt;
Windows, пойдут легким путем и снова примут дозу ОС от Microsoft. Извинения типа «я поработаю в Linux&lt;br /&gt;
завтра» или «эта работа слишком важна для меня, чтобы делать ее в незнакомом окружении» могут стать&lt;br /&gt;
оправданием их поведению.&lt;br /&gt;
&lt;br /&gt;
Все старания напрасны, если пользователь хочет по умолчанию загружать Windows, «потому что так удобнее»: от этого один шаг до отключения двойной загрузки и сползания к компьютеру, на котором стоит только Windows.&lt;br /&gt;
&lt;br /&gt;
Двойная загрузка очень похожа на пачку сигарет, которую бросающий курить человек носит в кармане для подстраховки. Сделав так, чтобы вернуться к пагубной привычке было просто, вы значительно усложните полный отказ от нее.&lt;br /&gt;
&lt;br /&gt;
===Рецидив: часть восстановления===&lt;br /&gt;
&lt;br /&gt;
Если пациент возвращается к Windows, пробуйте снова и снова…&lt;br /&gt;
&lt;br /&gt;
Рецидив – часть зависимого поведения. Полный благих намерений, наш пациент изо всех сил&lt;br /&gt;
пытается избавиться от дурной привычки навсегда – и в итоге ослабевает и возвращается к прежним стереотипам поведения.&lt;br /&gt;
&lt;br /&gt;
Это может вызвать чувство угнетения и неудачи. Пациент начинает думать, что нет&lt;br /&gt;
смысла пытаться жить без Windows. Без привычных костылей жизнь кажется ему тяжкой.&lt;br /&gt;
Если ваши друзья угодили в эту ловушку, ваша поддержка нужна им больше, чем обычно.&lt;br /&gt;
&lt;br /&gt;
Мир не рухнет, если они продолжат работу в Windows. Проявите свое понимание, но мягко напоминайте им о пользе свободного&lt;br /&gt;
ПО и программ с открытым исходным кодом. Похвалите их за достигнутые результаты. Напомните им об открытых программах, которыми они успешно пользуются в Windows.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5%D0%B0%D1%81t%D0%9ES</id>
		<title>LХF100-101:RеасtОS</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5%D0%B0%D1%81t%D0%9ES"/>
				<updated>2015-06-03T16:57:43Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:RеасtОS в LXF105:Ответы поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF105:Ответы]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF105:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8B</id>
		<title>LXF105:Ответы</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF105:%D0%9E%D1%82%D0%B2%D0%B5%D1%82%D1%8B"/>
				<updated>2015-06-03T16:57:43Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:RеасtОS в LXF105:Ответы поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ответы==&lt;br /&gt;
&lt;br /&gt;
: Есть вопрос по Open Source? Пишите нам по адресу: [mailto:answers@linuxformat.ru answers@linuxformat.ru]&lt;br /&gt;
&lt;br /&gt;
===Пропал рабочий стол===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Только что установил Mandriva 2008 Free с диска февральского номера за 2008 год ('''LXF102''') на моем ноутбуке Asus серии PRO31F. Он шел с Windows Vista Home Premium с 1 ГБ памяти и жестким диском в 100 ГБ. Установщик правильно разбил мой винчестер и установил Mandriva. И, судя по всему, я не потерял никаких файлов в Windows. Начало хорошее! Пошаговые иллюстрации в журнале были очень полезны вплоть до последнего выражения, под рисунком 8: «Затем, после окончательной настройки, можете перегрузиться, войти в систему и наслаждаться».''&lt;br /&gt;
&lt;br /&gt;
''Когда на экране должно появиться приветствие, предлагающее войти, я увидел только это:''&lt;br /&gt;
&lt;br /&gt;
 localhost login: johnm (my login name)&lt;br /&gt;
 Password: (I type in my password)&lt;br /&gt;
 [johnm@localhost ~] 1$&lt;br /&gt;
&lt;br /&gt;
''Понятно, что я должен набрать команду – но вот какую?''&lt;br /&gt;
&lt;br /&gt;
'''Джон Мейтленд [John Maitland]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Это давно уже раздражает пользователей Mandriva (а до нее – Mandrake). Во время установки программе не удалось определить и автоматически настроить ваше графическое оборудование. Итоговый экран в конце установки выдает указание об этом, но оно в глаза не бросается, и вы могли продолжить работу, не настроив окружение ''X Window System''. В результате вы загрузились в консоль, а не графический рабочий стол. &lt;br /&gt;
&lt;br /&gt;
Приятно, однако, то, что вам не придется тратить время на переустановку всего дистрибутива, чтобы это исправить. Увидев приглашение, войдите в систему как root с паролем, который вы задали для суперпользователя во время установки, а затем запустите ''XFdrake''&lt;br /&gt;
&lt;br /&gt;
Эта команда чувствительна к регистру: первые две буквы должны быть заглавными ['''можно также использовать команду ''drakx11'', – прим. пер.''']. Она запустит консольный вариант инструмента конфигурации ''Х'', где вы можете использовать клавишу '''Tab''' для перемешения между вариантами, '''Enter''' для входа в них и '''Пробел''' для выбора вариантов, например, видеокарты. После задания правильных монитора и видеокарты (проблемы, как правило, начинаются, когда ваш монитор не обнаруживается автоматически), используй опцию Проверить, чтобы убедиться, что ваши настройки работают, и выйти, чтобы сохранить их.&lt;br /&gt;
&lt;br /&gt;
Теперь можете запустить рабочий стол ''Х'', запустив&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/dm start&lt;br /&gt;
&lt;br /&gt;
В дальнейшем рабочий стол должен автоматически стартовать при загрузке Mandriva. Если нет, проверьте, отмечен ли пункт '''Автоматически запускать графический интерфейс...''' в '''Параметрах''' ''XFdrake''. Запустив ''X'', вы можете использовать графическую версию ''XFdrake'' из секции '''Оборудование''' '''Центра управления Mandriva''' для тонкой подстройки окружения «под себя». '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Два в одном===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Недавно я купил 1-ТБ настольный жесткий диск USB от Iomega; он состоит из двух дисков по 500 ГБ, объединенных с использованием JBOD для получения суммарного объема в 1 ТБ. Естественно, на нем применяется единая файловая система FAT32 – оно бы и неплохо, но я хочу хранить файлы больше 4 Гб, а также установить соответствующие права, а это уже не работает.''&lt;br /&gt;
&lt;br /&gt;
''Могу ли я переформатировать диск в '''ext3''' (хорошо бы и с несколькими разделами), не нарушая JBOD-конфигурацию, и если да, то можно ли затем воспользоваться стандартным инструментом разбиения диска, типа '''DiskDrake''', и продолжить нормальную работу?''&lt;br /&gt;
&lt;br /&gt;
''Попробовать я не рискнул, так как не хочу получить убитый 500-ГБ диск или что-нибудь еще хуже!''&lt;br /&gt;
&lt;br /&gt;
'''Пол Фотеринггэм [Paul Fotheringham]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Сколько накопителей показывают ''dmesg'' или ''syslog'' при подключении диска к компьютеру? Один или два? Если устройство выглядит как один привод, магия ''JBOD'' (Just a Bunch Of Disks) зашита в микропрограмму диска, и внутренняя конфигурация нам безразлична. Если появляются два диска (скажем, '''sda''' и '''sdb'''), значит, их объединение выполняет программное обеспечение. Описание на сайте изготовителя дает понять, что используется первый вариант, и настройка ''JBOD'' внутренняя. Тогда вы можете спокойно рассматривать устройство как один диск: количество приводов внутри в этом случае имеет не большее значение, чем число пластин. 1-ТБ диски все еще заметно дороже в пересчете на 1 МБ, чем 500-ГБ, так что объединение, вероятно, сделано ради экономии: даже с учетом дополнительных расходов на микропрограмму, объединяющую диски, они будут дешевле в производстве. Запустите ваш любимый инструмент разбиения диска – ''DiskDrake, cfdisk'' или ''GParted'' – и посмотрите, что он показывает. Если он «видит» один 1-ТБ диск, думаю, у вас не будет проблем при его разметке.&lt;br /&gt;
&lt;br /&gt;
За точным ответом лучше обратиться в Iomega, взяв один из адресов, перечисленных в http://www.iomega.com/support/contact/index.html, и сообщив им номер&lt;br /&gt;
модели вашего диска; но будь это мой диск, я бы разбивал его без опаски. '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Сам себе взломщик?===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Я тут приобрел мой первый за последние много месяцев экземпляр Linux Format ('''LXF103''') и загрузил «Рай дистрибутивов» – 14-дистрибутивный диск: хотел узнать, что я мог пропустить. У меня Dell Inspiron 6000 с PCLinuxOS 2007. Обнаружив, что ни одна из Live-версий не вносит особых улучшений в мою систему, я удалил диск и перезагрузился. В терминале я ожидал увидеть обычную строку''&lt;br /&gt;
&lt;br /&gt;
 peter@Laxey $&lt;br /&gt;
&lt;br /&gt;
''К моему изумлению, приглашение теперь стало''&lt;br /&gt;
&lt;br /&gt;
 peter@ubuntu $.&lt;br /&gt;
&lt;br /&gt;
''Что произошло? выходит, LiveCD каким-то образом изменил мою установленную систему и поменял настройки?''&lt;br /&gt;
&lt;br /&gt;
'''Пит [Pete]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Bаша тревога понятна: на вид похоже, что Ubuntu Live CD совершил захват вашей системы. Но это не так. Все зависит от того, каким образом различные дистрибутивы используют ''DHCP'' для настройки сети и как работает ваш ''DHCP''-сервер. Когда компьютер транслирует ''DHCP''-запрос по сети,&lt;br /&gt;
запрос может содержать (необязательное) имя хоста, которое ''DHCP''-сервер, в свою очередь, может использовать в выдаваемом адресе. Если имя хоста отсутствует, сервер может вполне обойтись и без него.&lt;br /&gt;
&lt;br /&gt;
То, что вы увидели, произошло из-за того, что PCLinuxOS не отправлял имя хоста при запросе, и ''DHCP''-сервер раньше ничего не возвращал, а имя&lt;br /&gt;
хоста брал из ваших настроек. вы запустили Ubuntu Live CD на том же компьютере, и он вставил в ''DHCP''-запрос имя хоста ‘'''ubuntu'''’. ''DHCP''-сервер запомнил это и, получив следующий запрос с того же компьютера, уже без имени хоста, вернул последнее использованное имя (''DHCP''-сервер распознал, что это один и тот же компьютер, по аппаратному MAC-адресу вашего сетевого адаптера).&lt;br /&gt;
&lt;br /&gt;
Простое решение для этого случая (гордого имени «проблема» он не достоин) заключается в том, чтобы заставить PCLinuxOS вести себя так же, как и Ubuntu, т.е. снабжать ''DHCP''-запрос именем хоста. Тогда ''DHCP''-сервер, который думал, что вы просто забыли его отправить, перестанет «помогать» вам&lt;br /&gt;
увидеть последнее используемое имя хоста.&lt;br /&gt;
&lt;br /&gt;
Чтобы сделать это в PCLinuxOS, перейдите в раздел '''Network''' в '''центре управления''', выберите ‘'''Reconfigure A Network Interface'''’ и перейдите на вкладку ''DHCP''. Отметьте ‘'''Assign Host Name From DHCP Address'''’ и наберите выбранное имя хоста в поле ниже. При следующей загрузке компьютер должен быть правильно назван, и будет оставаться таковым независимо от того, сколько Live CD вы ему скормите. '''ГМ'''&lt;br /&gt;
&lt;br /&gt;
===Grub’им в округе===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''На моем ноутбуке ОС по умолчанию установлена на '''hda1'''. Я инсталлировал Debian на '''hda2''', но поставил '''Grub''' не в '''MBR''', а на '''hda2''', чтобы узнать, как установить '''Grub''' на USB-брелок, а не просто переустановить Linux. Но после долгого поиска в Google я все еще не в тупике. Возможна ли установка '''Grub''' на USB-брелок без установки на него Linux?''&lt;br /&gt;
&lt;br /&gt;
'''Михал Нг [Michal Ng]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Существует как минимум три способа сделать вашу установку ''Grub'' рабочей: модифицировать существующий загрузчик (Windows?) на последующую загрузку ''Grub'', установить ''Grub'' в '''MBR''' или установить ''Grub'' на сменное устройство, например, дискету или USB-брелок.&lt;br /&gt;
&lt;br /&gt;
Для последовательной загрузки ''Grub'' из Windows-загрузчика ''NTLDR'' (New Technology Loader), нужно скопировать загрузочный сектор ''Grub'' на Windows-диск. В Debian это делается так:&lt;br /&gt;
&lt;br /&gt;
  dd if=/dev/hda2 of=lin-boot.img bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Эта команда создаст файл с именем '''lin-boot.img''' (имя может быть любым), содержащий первые 512 байт раздела с ''Grub''. Скопируйте этот файл на диск '''C:''' Windows, либо смонтировав ваш раздел с Windows в Debian, либо скопировав файл на USB-брелок и затем перенеся его в Windows.&lt;br /&gt;
&lt;br /&gt;
 Теперь перезагрузитесь в Windows, скопируйте '''lin-boot.img''' в '''C:''', если вы еше не сделали этого, и отредактируйте '''C:\boot.ini''' в ''Блокноте'', добавив в его конец следующую строку&lt;br /&gt;
&lt;br /&gt;
  C:\lin-boot-img=”Debian GNU/Linux”&lt;br /&gt;
&lt;br /&gt;
Отныне загрузчик Windows будет иметь две опции; вторая из них передает контроль ''Grub'' с '''hda2'''.&lt;br /&gt;
&lt;br /&gt;
Второй способ (я бы его и предпочел) – отдать все на откуп ''Grub''. Запустите ''grub'' от имени root, откройте командную строку ''Grub'' и установите его в MBR перво-го диска:&lt;br /&gt;
&lt;br /&gt;
  root (hd0,1)&lt;br /&gt;
  setup (hd0)&lt;br /&gt;
  quit&lt;br /&gt;
&lt;br /&gt;
Здесь ''Grub''’у велено поискать свои файлы в '''hda2''' ('''hd0,1''') (помните, что в ''Grub'' отсчет идет с нуля), а затем установиться на первый диск ('''hd0'''). Теперь нужно модифицировать '''/boot/grub/menu.lst''' (некоторые дистрибутивы используют файл '''/boot/grub/grub.conf''')&lt;br /&gt;
для добавления записи Windows в меню загрузки:&lt;br /&gt;
&lt;br /&gt;
  title Windows&lt;br /&gt;
  rootnoverify (hd0,0)&lt;br /&gt;
  chainloader +1&lt;br /&gt;
&lt;br /&gt;
т.е. велеть ''Grub'' отдать управление загрузчику, расположенному в '''/dev/hda1''', где хранится ''NTLDR'' (именно поэтому Windows нуждается в пометке первого раздела как загрузочного: ведь загрузчик находится в разделе, а не в '''MBR''').&lt;br /&gt;
&lt;br /&gt;
Последний способ – поместить ''Grub'' на съемное устройство: например, дискету или USB-брелок. Так будет медленнее, чем использовать файлы ''Grub'' на&lt;br /&gt;
жестком диске, но зато у вас будет резервная копия, если '''MBR'''-загрузчик вдруг испортится. Для этого скопируйте директорию '''/boot/grub''' с жесткого диска на съемное устройство (тоже в директорию '''/boot/grub'''). Потом установите ''Grub'' на устройстве. Чтобы облегчить определение правильного номера устройства в ''Grub'', сделайте сначала&lt;br /&gt;
&lt;br /&gt;
 touch /media/sda1/findme&lt;br /&gt;
&lt;br /&gt;
заменив '''sda1''' на нужную точку монтирования. Теперь запустите ''grub'' и выполните команду&lt;br /&gt;
&lt;br /&gt;
 find /findme&lt;br /&gt;
&lt;br /&gt;
которая должна вернуть путь ''Grub'' для вашего устройства – скажем ('''hd1,0'''); затем выполните&lt;br /&gt;
&lt;br /&gt;
 root (hd1,0)&lt;br /&gt;
 setup (hd1)&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
''Grub'' теперь настроен и готов к загрузке с USB-брелка, так что попробуйте его. Не исключено, что вы получите сообщение «'''Файл не найден'''» при попытке загрузки Linux из нового загрузочного меню, по причине перестановки BIOS’ом жесткого диска и USB-брелка местами при загрузке с последнего. Лечение состоит в замене всех вызовов '''hd0''' в '''menu.list''' на '''hd1''', или удалении всех абсолютные пути и помещении '''root (hd1,1)''' в верхней части файла. Заметим, что USB-загрузка смахивает на черную магию – не все BIOS’ы и USB-брелки совместимы; и если система откажется&lt;br /&gt;
загрузиться вообще, вам, возможно, придется поэкспериментировать с настройками загрузки BIOS или взять другой USB-брелок.&lt;br /&gt;
&lt;br /&gt;
Если вы решите разместить ''Grub'' в '''MBR''' диска, а затем последовать вышеуказанным шагам, поставив его на USB-устройство, то вам придется повторить&lt;br /&gt;
процедуру на жестком диске с отключенным USB-устройством, в противном случае загрузка с жесткого диска перестанет работать. '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Пока-пока, Windows===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''У нас несколько ПК с двойной загрузкой, и я хотел бы избавиться от Windows, но пока у меня есть нерешенные проблемы. Мне случается менять дистрибутивы Linux, но надо хранить в целости папки с электронной почтой, и это приковывает меня к Windows/Mozilla. Я попытался использовать сетевой жесткий диск, но так выходит очень медленно. Если сделать из старого компьютера почтовый сервер (как показано в [[LXF102:Вторая жизнь старого ПК|LXF102]]), это решит мои проблемы, или у вас есть решение получше?''&lt;br /&gt;
&lt;br /&gt;
'''Джо Марком [Joe Marcom]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Есть два варианта, которые можно совместить. Во-первых, всегда устанавливайте свои дистрибутивы с отдельным разделом '''/home'''. Тогда все ваши личные данные, а не только электронная почта, сохранятся при установке другого дистрибутива или новой версии вашего нынешнего любимца. Однако это решение для одного компьютера, а у вас их несколько. При наличии почтового сервера, описанного в [[LXF102:Вторая жизнь старого ПК|LXF102]], почта всех пользователей находится на нем, и можно читать ее с любого компьютера, используя любую ОС.&lt;br /&gt;
&lt;br /&gt;
Если вы позаботитесь о безопасности, можно даже сделать доступ к серверу извне вашей локальной сети (почтовые ящики защищены паролем, так что это не&lt;br /&gt;
опаснее, чем чтение их с сервера провайдера), а значит, вы сможете имееть доступ ко всей вашей почте отовсюду, где есть Интернет. В упомянутой вами&lt;br /&gt;
статье об этом не сказано, но заслуживает внимания и то, что на достаточно мощном компьютере, как в приведенном примере, но с немного большей памятью, вы можете установить почтовую программу с web-интерфейсом и получать доступ к вашей электронной почте из интернет-кафе или отеля, используя только web-браузер. Есть ряд таких почтовых программ на выбор: самая популярная – ''SquirrelMail'' (http://www.squirrelmail.org), а мне по душе ''RoundCube'' (http://www.roundcube.net). '''ПХ'''&lt;br /&gt;
&lt;br /&gt;
===SATA для всех===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Мой Debian GNU/Linux развернут на ПК на базе Celeron. Я хотел бы подключить дополнительный жесткий диск SATA для обновления системы, и мне нужен Linux-совместимый адаптер SATA в виде PCI-карты, пока я не поставил себе новую материнскую плату. Не могли бы вы помочь мне в поиске, чтобы я подключил SATA-диск с помощью PCI-адаптера SATA, а также сообщить, какие материнские платы имеют SATA-контроллеры, совместимые с Linux?''&lt;br /&gt;
&lt;br /&gt;
'''Генри Чен Лок Хин [Henry Chan Lok Hin]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Здесь в расчет берутся не конкретные марки и модели адаптеров, а используемые ими чипсеты. Изготовители иногда переходят на другой чипсет&lt;br /&gt;
при сохранении того же наименования модели, поэтому ориентироваться на последнее рискованно. Тем не менее, большинство чипсетов работают в Linux, особенно те, что поддерживают стандарт '''AHCI''' (Advanced Host Controller Interface). Ядро содержит драйверы для ряда SATA-контроллеров – те, что включены в ваш дистрибутив, покажет команда&lt;br /&gt;
&lt;br /&gt;
 modprobe -l | grep sata&lt;br /&gt;
&lt;br /&gt;
Я использовал несколько недорогих SATA-контроллеров, все на чипсетах Silicon Image, которые поддерживаются в ядре Linux много лет. SATA-контроллеры материнских плат также хорошо поддерживается, особенно, если вы используете известные брэнды. SATA уже далеко не новая технология, и сейчас SATA-диски дешевле своих PATA-эквивалентов, так что с ними у вас не будет проблем. Список контроллеров и материнских плат (да и любого оборудования) можно найти в базе данных совместимости с Linux на http://www.linuxcompatible.org/compatibility.html. Некоторые дистрибутивы публикуют список известного рабочего оборудования для своих ядер на собственных сайтах.&lt;br /&gt;
&lt;br /&gt;
Существуют также адаптеры PATA-SATA, устанавливаемые на заднюю панель SATA-диска (например, адаптер от Maplins в Великобритании: http://tinyurl.com/2t4j3z). Они обеспечивают PATA-интерфейс (есть и адаптеры, работающие в обратном направлении, так что не перепутайте). В других странах можно также найти поставщиков, предлагающих аналогичные устройства. '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Рабочие столы Ubuntu===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Я впервые использую Linux, а до этого какое-то время использовал MacOS и Windows. Я заменил Windows XP на Ubuntu с Рождественского диска 2007 ['''LXF100'''], но не знаю, как переключиться с Gnome на KDE. Что мне надо сделать для этого? ''&lt;br /&gt;
&lt;br /&gt;
'''Адам Кинг [Adam King]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Диск включает и устанавливает оба этих  рабочих стола: и Gnome, и KDE, а также Xfce. Перехода с одного на другой обеспечивается кнопкой '''Опции''' внизу слева от окна входа. Нажмите на нее и щелкните на выбрать сеанс в появившемся меню. Это позволит вам выбрать тип сеанса, запускаемого при этом и при будущих входах в систему, пока вы опять его не измените. Если вы уже вошли в систему с рабочим столом KDE, выйдите, нажав кнопку '''Завершить''', и выберите '''выход из сеанса''', затем задайте новый тип сеанса и войдите снова. '''МС'''&lt;br /&gt;
&lt;br /&gt;
===Windows издали===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Можно ли использовать Linux-машину для запуска удаленного рабочего стола, размещенного на сервере моей компании? Я часто работаю дома: соединяюсь с их IP-адресом, вхожу в Windows, а затем работаю с приложениями. Как я понимаю, все обработка осуществляется на удаленном сервере (Windows 2003), а мой рабочий стол только рисует изображение экрана да отсылает нажатия клавиш, которые сервер должен интерпретировать. По-моему, это должно быть возможно и с Linux-машины.''&lt;br /&gt;
&lt;br /&gt;
''Пытался искать Wine-приложения, способные проделать это трюк, но ничего не нашел. Не могли бы вы мне помочь? Я бы выкинул Windows и уж так заработал бы!''&lt;br /&gt;
&lt;br /&gt;
'''Чарльз Бигли [Charles Bigley]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Для этого вовсе не нужен ''Wine'': существует родной клиент удаленного рабочего стола (и серверы) для Linux. У вас есть выбор по крайней мере из одной консольной программы и двух графических клиентов, и весьма вероятно, что ваш дистрибутив уже включает хотя бы одну из них, а то и устанавливает ее. Консольная программа – ''rdesktop'' (http://rdesktop.sourceforge.net), и вы можете запустить ее командой&lt;br /&gt;
&lt;br /&gt;
 rdesktop мой.удаленный.сервер&lt;br /&gt;
&lt;br /&gt;
задав доменное имя или IP-адрес, к которому надо подключиться. Bам может потребоваться добавить некоторые опции: например, '''-u''' и следующее за ней&lt;br /&gt;
имя пользователя для соединения, или '''-s''' и название приложения, которое вы хотели бы запустить. Для более графического подхода, попробуйте ''grdesktop'' (http://www.nongnu.org/grdesktop), одну из оболочек ''GTK'' для ''rdesktop''. Она обеспечивает такие же возможности, как ''rdesktop'', но с графическим интерфейсом для установки и сохранения ваших настроек.&lt;br /&gt;
&lt;br /&gt;
Если у вас рабочий стол KDE, то, вероятно, уже установлен клиент удаленного рабочего стола – ''krdc''. Он, как правило, находится в разделе '''Интернет''' меню KDE, и может называться ‘'''Krdc'''’ или ‘'''Remote Desktop Client'''’, в зависимости от того, установлено ли у вас в меню KDE&lt;br /&gt;
отображение названий программ или их описание. Так или иначе, запустите его, укажите адрес компьютера для подключения, и он соединится. Как и в случае с утилитой командной строки, графическому клиенту могут понадобиться дополнительные опции для соединения, но графическая программа имеет то преимущество, что она вспомнит настройки в следующей сессии.&lt;br /&gt;
&lt;br /&gt;
Я предполал, что сервер работает на удаленном рабочем столе ''Windows Remote Desktop'', так как он входит в Windows Server 2003. Но он может использовать и ''VNC'', и тогда вам надо установить ''TightVNC'' (http://www.tightvnc.com), и запускать его. С KDE это не проблема, так как ''krdc'' подерживает оба этих типа соединения. '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Разгребаем место===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Мой ноутбук HP 6710 имеет три основных раздела: Vista, восстановление HP и еще один раздел на 2 ГБ. Правильно ли я полагаю, что могу уменьшить раздел Vista, задать пространство для расширенного раздела, а затем задать три логических раздела внутри для '''/''', домашнего раздела и подкачки? Я хотел бы установить загрузчик в корень и использовать '''EasyBCD''' для его запуска из загрузочного сектора Vista. Альтернативным решением была бы установка на мой внешний 160-ГБ жесткий диск, но мне этого очень не хочется, так как мне нужен постоянный доступ к Linux.''&lt;br /&gt;
&lt;br /&gt;
''Должен ли сначала выполнить разбиение из Vista (у меня есть '''Partition Manager'''), или пусть это сделает дистрибутив? После года испытаний в '''VirtualBox''' я решился на тестовую ветвь Debian, так как она позволяет узнать все об APT и прочих командах терминала. Если мне это будет слишком сложно, я всегда могу перейти на Mepis.'''&lt;br /&gt;
&lt;br /&gt;
'''Стив Фаулер [Steve Fowler]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Bы можете сделать все, о чем спросили, и это очень простой процесс. Однако при каждой модификацим файловых систем и разделов&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;
Шаг номер один – загрузка в Vista и дефрагментация, так как размер фрагментированной файловой системы трудно, а иногда невозможно изменить. Сделав это,&lt;br /&gt;
загрузитесь с диска Debian и доверьте ему разметку. Bыберите опцию '''Manual в Partitioning''', выберите раздел с Windows и нажмите ввод. Появится меню, позволяющее изменить размеры разделов; сделайте это, задав желаемую величину, а затем используйте опцию '''Guided Partitioning''', чтобы Debian выделил подходящий размер для корневого раздела, подкачки и домашнего раздела. Если вы точно не знаете, что вам нужно, лучше положиться на разработчиков дистрибутива, позволив им решить, сколько места отвести для каждого из его компонентов. Но я настоятельно рекомендую вам по возможности использовать отдельный домашний раздел, чтобы потом не пришлось раскаиваться.&lt;br /&gt;
&lt;br /&gt;
В EasyBCD я не очень силен, но загрузчик ''Grub'', установливаемый Debian и большинством других дистрибутивов Linux – отличный способ управляться с&lt;br /&gt;
несколькими ОС, и он хорошо поддерживается. Если вы хотите использовать EasyBCD, велите установщику Debian установить его загрузчик в корневой раздел.&lt;br /&gt;
В противном случае, пусть он установит его в '''MBR''' диска и предоставит ''Grub'' обрабатывать выбор между операционными системами. EasyBCD вроде как связана с Windows, и это не очень хороший выбор, если вы планируете в ближайшее время отказаться от нее; а вот ''Grub'' не зависит от типа ОС. Как всегда с открытым ПО, выбор за вами. '''НБ'''&lt;br /&gt;
&lt;br /&gt;
===Верните курсор!===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Не так давно я устанавливал Fedora 8. Вроде бы, все прошло хорошо, я перезагрузился и даже увидел рабочий стол, вот только на нем не было и намека на курсор мыши! Просмотрев файл '''xorg.conf''', я обнаружил, что никаких строк, описывающих мышь, в нем нет. Пожалуйста, помогите решить проблему!''&lt;br /&gt;
&lt;br /&gt;
'''Роман'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Раз в '''xorg.conf''' отсутствует описание мыши – его нужно добавить! Попробуйте нечто вроде:&lt;br /&gt;
&lt;br /&gt;
 Section “InputDevice”&lt;br /&gt;
       Identifier    “USB Mouse”&lt;br /&gt;
       Driver       “mouse”&lt;br /&gt;
       Option         “Device”          “/dev/input/mice”&lt;br /&gt;
       Option         “SendCoreEvents”      “true”&lt;br /&gt;
       Option         “Protocol”        “IMPS/2”&lt;br /&gt;
       Option         “ZAxisMapping”       “4 5”&lt;br /&gt;
       Option         “Buttons”         “5”&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bам может потребоваться добавить опцию '''Option “CorePointer”''' и изменить путь '''/dev/input/mice''' на подходящий. Далее, добавьте созданный '''USB Mouse''' в раскладку сервера:&lt;br /&gt;
&lt;br /&gt;
  Section “ServerLayout”&lt;br /&gt;
       ...&lt;br /&gt;
       InputDevice “USB Mouse”&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Кстати, один из наших читателей (тоже пользователь Fedora 8) жаловался, что курсор отсутствует даже при наличии описания мыши в '''xorg.conf'''. Это можно попробовать вылечить отключением аппаратной и включением программной отрисовки курсора в секции настроек видеодрайвера. Соответствующие опции&lt;br /&gt;
обычно имеют вид:&lt;br /&gt;
&lt;br /&gt;
 Option “HWCursor” “off”&lt;br /&gt;
&lt;br /&gt;
или&lt;br /&gt;
&lt;br /&gt;
 Option “SWCursor” “on”&lt;br /&gt;
&lt;br /&gt;
Здесь префикс '''HW''' соответствует аппаратному, а '''SW''' – программному курсору. '''ВС'''&lt;br /&gt;
&lt;br /&gt;
===ПО в Fedora===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''После установки Fedora Core 7 из вашего журнала я попытался установить некоторые дополнительные программы в RPM-формате c этого же диска, и получил следующее сообщение об ошибке: «'''Не удается получить информацию о программном обеспечении – это может быть вызвано отсутствием сетевого соединения'''». Что ж, верно: машина, о которой идет речь, не подключена ни к какой сети и будет использоваться как автономная. ''&lt;br /&gt;
&lt;br /&gt;
''Затем я вернулся к Fedora 6, и после мучительного часа установки уперся в ту же проблему. Попытался установить Fedora Core 5 – результат тот же. Завал! Неужели ПО на Fedora можно устанавливать только с Интернета? В моей Mandriva я устанавливал RPM-пакеты с любого места, даже с USB-брелка. Неужели Mandriva – единственный дистрибутив, в котором это сделано нормально?''&lt;br /&gt;
&lt;br /&gt;
''Где-то там есть файл, в котором можно переадресовать менеджер пакетов на другой источник, я уже искал, но не нашел, не подскажете ли правильное направление?''&lt;br /&gt;
&lt;br /&gt;
'''Боб Сэвидж [Bob Savage]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Большинство менеджеров позволяют пакетов устанавливать программное обеспечение за пару кликов. Да, они требуют на это права суперпользователя, но та же картина и в Windows. Windows отличается тем, что разрешает пользователю постоянно работать с привилегиями администратора, а это угрожает ее собственной безопасности.&lt;br /&gt;
&lt;br /&gt;
Вы описали стандартную и неприятную проблему с простым решением. Fedora 7 и предыдущие версии нуждаются в подключении к сети, и попытавшись запустить программу, менеджер выдал описанную вами ошибку. Я согласен с вами, что это неправильно, и, похоже, это дошло до разработчиков Fedora, так как в Fedora 8 проблема была снята. Bы можете исправить ошибку в других версиях Fedora Core, отредактировав файл репозитория, отключив все интернет-источники и добавив новый источник – DVD (у вас должны быть права root для выполнения этих действий).&lt;br /&gt;
&lt;br /&gt;
Загрузите '''/etc/yum.repos.d/fedora.repo''' в ваш любимый текстовый редактор, найдите раздел, начинающийся на '''[fedora]''', и закомментируйте строки '''baseurl''' и '''mirrorlist''', поместив решетку ('''#''') в начало каждой строки. Затем добавьте новую строку&lt;br /&gt;
&lt;br /&gt;
  baseurl=file:///Fedora%207%20i386%20DVD&lt;br /&gt;
&lt;br /&gt;
Создастся новое хранилище в '''/media/Fedora 7 i386 DVD''', где монтируется DVD. Пробелы в в пути&lt;br /&gt;
точки монтирования заменены на %20 для получения действительного URL. Затем отредактируйте другие файлы '''.repo''', заменив все вхождения&lt;br /&gt;
'''enabled=1''' на '''enabled=0'''. Теперь учитывается только один репозиторий на DVD, и запуск '''Добавить/Удалить программы''' позволит установить ПО с DVD. Конечно, у вас не будет доступа к обновлениям безопасности, выпускаемым Fedora, так что было бы целесообразно проверять время от времени сайт&lt;br /&gt;
Fedora на их наличие. Можно загрузить их в другом месте, скопировать в директорию на вашем компьютере и отредактировать '''fedora-updates.repo''', указав на этот каталог, так же, как вы указали в '''fedora.repo на DVD'''. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===* Старый ПК, новый дистрибутив===&lt;br /&gt;
&lt;br /&gt;
'''В:''' ''Я не люблю чрезмерно раздутое ПО, лишние красивости и вообще все, что забивает и сжирает оборудование, и хотел бы восстановить старый ПК и запустить Linux с легким оконным менеджером. Но компьютер, который я надеюсь использовать (старая машина с работы) – это Apple Mac. Я знаю, что Linux, BSD и т.д. портированы на многие процессоры, включая PowerPC, но нет ли у оборудования Apple особенностей, допускающих на нем установку только Mac OS? Можно ли запустить Linux на Apple Mac G4 с видеокартой PCI, процессором PowerPC 400 МГц и 768 МБ ОЗУ?''&lt;br /&gt;
&lt;br /&gt;
'''Дэвид Фрэнсис [David Francis]'''&lt;br /&gt;
&lt;br /&gt;
'''О:''' Оборудование Apple PPC безусловно, поддерживается Linux – я использовал его на 1-Ггц iBook G4 почти три года, до полного износа оборудования. С 400-МГц процессором понадобится нечто легкое, но вы и сами этого хотите. Дистрибутивов для PowerPC не так уж много, но все они предназначены для&lt;br /&gt;
использования на оборудовании Apple. Основной выбор – Yellow Dog Linux (http://www.yellowdoglinux.com), это производная Fedora, Debian (http://www.debian.org), который работает где угодно, и Ubuntu. Ubuntu официально не поддерживает PowerPC, но PPC-версии имеются в директориях портов&lt;br /&gt;
на серверах загрузки. Лучшим выбор для вас будет Xubuntu: он использует рабочий столе ''Xfce'' и доступен на http://cdimage.ubuntu.com/xubuntu/ports/releases/gutsy/release. ''Xfce'' значительно легче, чем его аналоги KDE и Gnome, но может не отвечать вашей идее об истинно легком оконном&lt;br /&gt;
менеджере. Однако Ubuntu, а особенно Debian, имеют массу альтернатив, и вы можете зайти в своем минимализме сколь угодно далеко, взяв ''FluxBox''&lt;br /&gt;
(http://www.fluxbox.org), или ''IceWM'' (http://www.icewm.org), а то и вообще «минимум миниморум» – ''Ratpoison'' (http://www.nongnu.org/ratpoison) или ''EvilWM'' (http://evilwm.sourceforge.net). Наш '''Обзор''' легких оконных менеджерах в [[LXF103:Сравнение|LXF103]] может помочь Вам принять решение.&lt;br /&gt;
&lt;br /&gt;
==Часто задаваемые вопросы... Кто супер, а кто – нет?==&lt;br /&gt;
&lt;br /&gt;
: Почему забытый пароль root является корнем всех зол.&lt;br /&gt;
&lt;br /&gt;
* '''Я тут устанавливаю Linux. Зачем надо создавать двух пользователей?'''&lt;br /&gt;
&lt;br /&gt;
Один из них – root (он же – суперпользователь), применяемый только для администрирования. Второй – обычный пользователь, для повседневной работы в&lt;br /&gt;
вашей системе.&lt;br /&gt;
&lt;br /&gt;
* '''Зачем мне два пользователя – я что, сам не могу администрировать?'''&lt;br /&gt;
&lt;br /&gt;
Linux использует права доступа файлов, устанавливающие владельцев для всех файлов или директорий, и тех, кто может читать или писать в них. У каждого пользователя своя домашняя директория, где он создает и удаляет файлы, как ему заблагорассудится. В других местах пользователям можно читать файлы и&lt;br /&gt;
запускать программы, но не изменять или удалять их. Это обеспечивает надежность и безопасность. Bы не сможете случайно удалить системные файлы, и&lt;br /&gt;
даже запуск вредоносных почтовых вложений не повредит системе, потому что у вас нет права позволить им «распустить руки». Когда вам действительно&lt;br /&gt;
понадобится доступ администратора – скажем, для установки программы – на время выполнения этой задачи вы переключаетесь на пользователя root.&lt;br /&gt;
&lt;br /&gt;
* '''То есть мне надо выйти и снова войти как root, если я хочу установить программу или что-нибудь вроде этого?'''&lt;br /&gt;
&lt;br /&gt;
Нет, выходить не надо, и даже нежелательно входить в полноценный рабочий стол в качестве root. Надо просто выполнять конкретную программу от имени&lt;br /&gt;
root. Многие программы уже настроены таким образом. Если вы попытаетесь запустить инструмент конфигурации ''Yast'' в SUSE или ''Центр управления Mandriva'', у вас попросят ввести пароль для root. Для любой другой программы необходимо открыть терминал, набрать ''su'', указать пароль, а затем запустить программу, набрав ее название.&lt;br /&gt;
&lt;br /&gt;
* '''На моем компьютере работаю один я; надо ли мне каждый раз входить с паролем?'''&lt;br /&gt;
&lt;br /&gt;
Большинство дистрибутивов Большинство дистрибутивов уже имеют возможность автоматического входа под конкретным пользователем (не root); если вы единственный пользователь компьютера, это удобно. В рабочем столе KDE, вы можете задать это через '''Системное администрирование &amp;gt; Менеджер входа в систему''' в '''Центре управления KDE'''. Пользователи Gnome должны выбрать из главного меню '''Рабочий стол &amp;gt; Настройки системы &amp;gt; Экран входа''' и установить '''Автоматический вход''' на вкладке '''Общие'''. Но хорошенько подумайте, прежде чем включить эту опцию на ноутбуке – если компьютер&lt;br /&gt;
будет потерян или украден, любой человек получит доступ к вашей электронной почте и другой конфиденциальной информации. Запрос пароля дает определенную защиту против этого.&lt;br /&gt;
&lt;br /&gt;
==Краткая справка про... Псевдонимы оболочки==&lt;br /&gt;
&lt;br /&gt;
Автозавершение сберегает время набора команд и имен файлов, но еще нужно помнить правильные аргументы, или лазить за ними на man-страницу. При запуске программы всегда с одними и теми же аргументами, не проще ли установить их «по умолчанию»? А может быть, дать одной и той же команде разные названия&lt;br /&gt;
в зависимости от аргументов? Все это, и еще многое, возможно при использовании псевдонимов (alias, «алиасов») оболочки.&lt;br /&gt;
&lt;br /&gt;
Скорее всего, у вас уже есть псевдонимы, установленные по умолчанию. Наберите ‘''ll''’ в оболочке, и, вероятно, увидите список файлов в т.н. «длинном»&lt;br /&gt;
формате, с размером, датой и владельцами. Это происходит потому, что многие дистрибутивы делают ''ll''&lt;br /&gt;
псевдонимом ''ls -l''. Чтобы увидеть, какие псевдонимы уже доступны, наберите ''alias'' без аргументов.&lt;br /&gt;
&lt;br /&gt;
Для создания псевдонима, наберите:&lt;br /&gt;
&lt;br /&gt;
 alias la=”ls -lhA --color=auto”&lt;br /&gt;
&lt;br /&gt;
Теперь, набрав ''la'' (list all, показать все) в текущей оболочке, вы увидите список с цветовыделением, подробной информацией и отображением скрытых&lt;br /&gt;
файлов. Введенный вами псевдоним заменяется соответствующей ему строкой перед выполнением его оболочкой.&lt;br /&gt;
&lt;br /&gt;
Но при открытии новой оболочки вашего псевдонима может там и не быть: в каждой оболочке работает своя команда ''alias''. На вид здесь работы еще&lt;br /&gt;
больше, чем с запоминанием команд, но ее можно автоматизировать. К некоторым файлам оболочка обращается при каждом запуске. Общие для всей&lt;br /&gt;
системы настройки содержатся в '''/etc/profile''', там-то дистрибутив и хранит свои псевдонимы. Затем каждый пользователь может настраивать собственные&lt;br /&gt;
псевдонимы в файлах конфигурации своей оболочки. В случае с ''Bash'' они хранятся в '''~/.bashrc''' или '''~/.bash_profile'''. Первый файл используется во время работы с интерактивной оболочкой, например, в окнах ''Konsole'', а второй – во время работы ''Bash'' в качестве «входной» ('''login shell'''). Обычно псевдонимы добавляются в '''~/.bashrc'''.&lt;br /&gt;
&lt;br /&gt;
Псевдоним может выполнять более чем одну команду за раз, например:&lt;br /&gt;
&lt;br /&gt;
 alias foobar=”foo --foo-opts ; bar --bar-opts”&lt;br /&gt;
&lt;br /&gt;
Таким способом можно автоматизировать простые последовательности команд без обращения к скриптам.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/G%D0%A0Lv3_%E2%80%93_%D0%BDo%D0%B2a%D1%8F_%D1%8D%D0%BFoxa</id>
		<title>GРLv3 – нoвaя эпoxa</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/G%D0%A0Lv3_%E2%80%93_%D0%BDo%D0%B2a%D1%8F_%D1%8D%D0%BFoxa"/>
				<updated>2015-06-03T16:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу GРLv3 – нoвaя эпoxa в LXF102:Qt4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF102:Qt4]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF102:Qt4</id>
		<title>LXF102:Qt4</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF102:Qt4"/>
				<updated>2015-06-03T16:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу GРLv3 – нoвaя эпoxa в LXF102:Qt4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''Новая серия!''' Осваиваем технологии, лежащие в основе нашумевшего KDE4&lt;br /&gt;
&lt;br /&gt;
==Интервью с троллем==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Qt4}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 1''' ''Qt4'' предоставляет в распоряжение программиста целый букет нововведений – но '''Андрей Боровский''' решил начать с того, что не сразу бросается в глаза.&lt;br /&gt;
&lt;br /&gt;
А вы уже пишете программы под ''Qt 4.x''? Хотя на рабочих столах Linux все еще господствует KDE 3.x, а следовательно, и ''Qt 3.x'', все новые версии дистрибутивов Linux поставляются также и с ''Qt 4.x'', причем во многих из них по умолчанию используются именно инструменты ''Qt'' четвертой версии. К этому следует добавить, что и переход на KDE4 – дело ближайшего будущего, а значит, если вы еще не портировали свою программу, использующую ''Qt3'', на новую версию, самое время заняться этим сейчас. Если же вы только собираетесь создавать ''Qt''-проект, ''Qt 3.x'' не стоит даже рассматривать.&lt;br /&gt;
&lt;br /&gt;
В общем и целом можно сказать, что по сравнению с предыдущей версией система ''Qt4'' улучшилась, обогатилась возможностями и усложнилась. Давно прошли те времена, когда вся ''Qt'' умещалась в одной-единственной разделяемой библиотеке. Что касается системы ''Qt4'', то ее основные классы вольготно расположились в 12 библиотеках (тринадцатая библиотека, '''libQt3Support.so''', предназначена для поддержки кода ''Qt3.x'' в тех случаях, когда перенос кода на новую версию представляется совсем уж трудным делом). Мы надеемся, что программисты Linux, привыкшие управлять демонами и убивать зомби, люди не суеверные, и число 13 их не испугает. Заголовочные файлы ''Qt4'' также умножились в числе и распределены теперь по нескольким поддиректориям. Впрочем, как мы увидим дальше, управлять всем этим «зверинцем» не так уж и трудно.&lt;br /&gt;
&lt;br /&gt;
===Дела лицензионные===&lt;br /&gt;
&lt;br /&gt;
Знакомство с '''Qt4''' мы начнем с вопросов лицензирования, которые многим, возможно, покажутся слишком скучными. В ''Qt4'' наконец-то реализована полноценная схема двойного лицензирования для всех платформ (Windows, X11 и Mac), причем открытый вариант ''Qt'' распространяется на условиях GPL 2.0 ['''во время подготовки этой статьи к печати появилось сообщение, что Trolltech перевела ''Qt'' на GPLv3, см. Новости, – прим. ред.''']. Сами представители ''Qt'' именуют свой подход «Quid Pro Quo», что в вольном переводе с древней латыни означает «баш на баш» ['qui pro quo' – лат. путаница, букв. «кто за кого», а англ. 'quid' в разговоре означает «фунт» (стерлингов)''']. Если вы хотите пользоваться &lt;br /&gt;
средствами ''Qt'' бесплатно, взамен вы должны предоставить сообществу &lt;br /&gt;
свой код (открытая модель). Если вы не желаете делиться кодом, вы &lt;br /&gt;
должны заплатить деньги (своего рода «выкуп», который, естественно, &lt;br /&gt;
будет потрачен на дальнейшее совершенствование ''Qt'').&lt;br /&gt;
&lt;br /&gt;
Интересно отметить, что лицензионная политика ''Qt'' не позволяет &lt;br /&gt;
лицензиатам применять тот же принцип двойного лицензирования к &lt;br /&gt;
своим продуктам. Если вы ведете разработку с помощью ''Qt'', ваш проект должен быть либо открытым на условиях GPL, либо коммерческим. &lt;br /&gt;
То есть, вам, конечно, никто не мешает раздавать ваш код бесплатно, &lt;br /&gt;
но если это делается не на основе GPL, то для разработки этого кода &lt;br /&gt;
необходимо использовать (и, естественно, оплатить) коммерческую &lt;br /&gt;
версию ''Qt'' ['''возможны исключения; полный список свободных лицензий, по которым может распространяться программа, скомпонованная с ''Qt'', можно найти на сайте компании, – прим. ред.''']. У открытой версии ''Qt'' для Windows есть одна неприятная особенность: согласно намерениям разработчиков, ее можно использовать только совместно со средой компиляции ''MinGW'', которая нравится не всем (мне, например, не нравится). Чтобы работать с ''MS Visual Studio'' (а это все-таки лучшая платформа разработки для Windows), придется заплатить за коммерческую &lt;br /&gt;
версию ''Qt''. Причины такого ограничения непонятны, и упомянутый &lt;br /&gt;
выше принцип quid pro quo здесь не срабатывает, поскольку даже сама &lt;br /&gt;
Microsoft распространяет бесплатный вариант ''Visual Studio Express Edition''. Кроме того, по сведениям, полученным с различных форумов, после небольшой «обработки напильником» открытую ''Qt4'' можно заставить работать с компиляторами ''С++'' от Microsoft и CodeGear, &lt;br /&gt;
предназначенными для командной строки. По моему мнению, ограничив поддержку компиляторов для открытой версии ''Qt'', разработчики &lt;br /&gt;
из TrollTech сделали глупость, которая, я надеюсь, будет исправлена в дальнейших релизах ''Qt4.x''.&lt;br /&gt;
&lt;br /&gt;
===А что же внутри?===&lt;br /&gt;
&lt;br /&gt;
Перейдем теперь к техническим новшествам ''Qt4''. Похоже, старым добрым контейнерам STL так и не суждено стать настоящим стандартом.&lt;br /&gt;
У каждого набора визуальных компонентов, основанного на ''C++'', есть&lt;br /&gt;
свой набор контейнеров (что, вообще говоря, не очень хорошо, так как&lt;br /&gt;
делает невизуальный код, который особенно часто использует абстрактные типы данных, труднопереносимым между разными платформами&lt;br /&gt;
разработки).&lt;br /&gt;
&lt;br /&gt;
В ''Qt4'' появилась система контейнеров '''Tulip''' (тюльпан), призванная&lt;br /&gt;
заменить старые контейнеры ''Qt3''. '''Tulip''' предоставляет в наше распоряжение стандартный набор контейнеров последовательного доступа&lt;br /&gt;
(список, связный список, очередь, вектор, стек) и несколько ассоциативных контейнеров: отображения (классы '''QMap''' и '''QMultiMap'''),&lt;br /&gt;
хэш-таблицы (классы '''QHash''' и '''QMultiHash''') и множество (класс '''QSet''').&lt;br /&gt;
Теоретически разница между классами '''QMap''' и '''QMultiMap''' и классами&lt;br /&gt;
'''QHash''' и '''QMultiHash''' заключается в том, что первый класс из каждой&lt;br /&gt;
пары позволяет связать с ключом только одно значение, тогда как&lt;br /&gt;
второй класс позволяет назначать несколько значений одному ключу. Напомню, что в ассоциативных контейнерах хранимым значениям&lt;br /&gt;
сопоставляются ключи, которые позволяют организовать произвольный доступ к данным контейнера.&lt;br /&gt;
&lt;br /&gt;
Разделение классов '''QHash''' и '''QMultiHash''' вызывает некоторые&lt;br /&gt;
вопросы. При использовании хэш-таблиц нередко возникают коллизии&lt;br /&gt;
(когда двум хранимым значениям соответствует один и тот же ключ).&lt;br /&gt;
Придумать хэш-функцию, которая бы гарантированно не вызывала&lt;br /&gt;
коллизий, очень трудно (обычно просто нереально). Фактически, возможность связывать несколько значений с одним ключом является&lt;br /&gt;
неотъемлемым свойством хэш-таблиц. Разработчики контейнеров ''Qt'',&lt;br /&gt;
разумеется, об этом знают, и в классе '''QHash''' реализована возможность&lt;br /&gt;
добавления нескольких значений с одним и тем же ключом. В результате различие между контейнерами '''QHash''' и '''QMultiHash''' (второй, кстати,&lt;br /&gt;
является потомком первого) выглядит скорее косметическим.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Системные требования|Содержание=Настоящая серия учебников ориентирована на читателей, знакомых с ''Qt3'', но даже если вы только начинаете программировать с ''Qt'', не расстраивайтесь – мы публиковали учебник по ''Qt3/KDE3'' в номерах – [[LXF78:Qt/KDE|LXF78-85]].|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Еще одно новшество ''Qt4'' – среда ''Interview''. Система ''Interview Framework'' представляет собой вариант реализации парадигмы&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;
объединяются друг с другом. Система ''Interview'' превращает парадигму «модель-контроллер-вид» в парадигму «модель-вид», объединяя&lt;br /&gt;
контроллер и вид в одно целое. Хотя парадигма «модель-контроллервид» (а, следовательно, и ''Interview'') может применяться при написании&lt;br /&gt;
множества типов программ, разработчики ''Interview'', судя по всему,&lt;br /&gt;
ориентировались в основном на создание клиентских приложений для&lt;br /&gt;
работы с базами данных. Именно на примере клиентского приложения&lt;br /&gt;
БД проще всего понять, как работает среда ''Interview''. В клиентском&lt;br /&gt;
приложении БД, использующем ''Interview'', модель играет роль посредника между БД и интерфейсом пользователя. Именно модель определяет логику представления данных. Когда пользователь хочет получить&lt;br /&gt;
информацию о текущем состоянии БД, пользовательский интерфейc (компонент «вид») обращается к модели напрямую. Для работы с&lt;br /&gt;
отдельными элементами данных служат делегаты, которые передают&lt;br /&gt;
команды пользователя модели.&lt;br /&gt;
&lt;br /&gt;
===Играем в классики===&lt;br /&gt;
&lt;br /&gt;
Переходя от абстрактного изложения принципов системы ''Interview'' к&lt;br /&gt;
изложению более конкретному, мы должны познакомиться (простите за каламбур) с тремя абстрактными классами '''QAbstractItemModel''',&lt;br /&gt;
'''QAbstractItemView''' и '''QAbstractItemDelegate'''. Они являются предками&lt;br /&gt;
всех классов, реализующих, соответственно, модели, представления&lt;br /&gt;
(виды) и делегаты. Классы '''QtableView, QtreeView''' и '''QListView''' реализуют три наиболее популярные формы представления данных: таблицу,&lt;br /&gt;
дерево и простой список. Если вам требуется более сложный компонент отображения модели, вам придется создавать собственный класс,&lt;br /&gt;
основанный на '''QAbstractItemView'''.&lt;br /&gt;
&lt;br /&gt;
Класс '''QStandardItemModel''', являющийся потомком '''QAbstractItemModel''', представляет собой реализацию модели в самом&lt;br /&gt;
общем смысле. Помимо прочего, этот класс реализует ряд методов,&lt;br /&gt;
предназначенных для работы с индексами. Индексы используются в&lt;br /&gt;
среде ''Interview'' для указания элементов данных, с которыми работает&lt;br /&gt;
модель. Класс '''QDirModel''' реализует модель для работы с директориями. Этот класс пригодится вам, если вы надумаете писать собственный&lt;br /&gt;
файл-менеджер или свою версию диалоговых окон открытия и сохранения файла. Следует отметить, что один и тот же объект, реализующий модель, может взаимодействовать (в том числе, одновременно)&lt;br /&gt;
с объектами нескольких разных классов, отвечающими за представление данных. Например, уже упомянутый класс '''QDirModel''' может&lt;br /&gt;
использовать для представления информации о директориях классы&lt;br /&gt;
'''QtableView, QtreeView''', и '''QListView'''. Класс '''QStringListModel''', как можно&lt;br /&gt;
догадаться по его названию, реализует модель, основой которой является список строк.&lt;br /&gt;
&lt;br /&gt;
Классы '''QAbstractTableModel''' и '''QAbstractListModel''' могут служить&lt;br /&gt;
основой для ваших собственных классов-моделей, предполагающих&lt;br /&gt;
представление данных в виде таблиц и списков соответственно&lt;br /&gt;
&lt;br /&gt;
Такие классы, как '''QtreeView''' и '''QListView''', предназначены для работы с моделями, но использовать их в качестве самостоятельных виджетов затруднительно. Для решения этой проблемы на базе классов '''QtableView, QtreeView''' и '''QListView''' созданы классы '''QtableWidget, QtreeWidget''' и '''QListWidget'''. Объекты этих классов представляют собой&lt;br /&gt;
обычные визуальные компоненты, при работе с которыми пользователь может добавлять и удалять данные, не заботясь о моделях и&lt;br /&gt;
делегатах. На самом деле, эти классы просто реализуют свои собственные модели данных, незаметные для пользователя. Как видим,&lt;br /&gt;
система ''Interview'' играет в ''Qt'' большую роль, чем может показаться на&lt;br /&gt;
первый взгляд!&lt;br /&gt;
&lt;br /&gt;
===Клиент на базе===&lt;br /&gt;
&lt;br /&gt;
Как отмечалось выше, наиболее удобное средство демонстрации&lt;br /&gt;
возможностей ''Interview'' – клиентские приложения баз данных. Такое&lt;br /&gt;
приложение мы и напишем. Прежде всего, рассмотрим арсенал специальных классов, которые среда ''Interview'' предоставляет нам для&lt;br /&gt;
работы с базами данных. Их три: '''QSqlQueryModel, QSqlTableModel''' и&lt;br /&gt;
'''QsqlRelationalTableModel''', причем '''QSqlQueryModel''' – самый простой.&lt;br /&gt;
Его возможности, фактически, ограничиваются передачей результата&lt;br /&gt;
запроса к базе данных. При этом, правда, стоит отметить, что класс&lt;br /&gt;
'''QSqlQueryModel''' обладает определенными возможностями, позволяющими изменить структуру отображения данных перед передачей ее на&lt;br /&gt;
уровень представления. Класс '''QSqlTableModel''' гораздо функциональнее. Этот класс логически организует результаты ''SQL''-запросов как&lt;br /&gt;
таблицы и предусматривает функции редактирования данных. Наконец,&lt;br /&gt;
класс '''QSqlRelationalTableModel''' позволяет задействовать в приложении&lt;br /&gt;
основные возможности реляционной модели баз данных – работу с&lt;br /&gt;
данными из нескольких таблиц, связанных внешними ключами. Для&lt;br /&gt;
представления данных моделей ''SQL'' наиболее логично использовать&lt;br /&gt;
объекты класса '''QtableView''' (хотя унифицированная структура среды&lt;br /&gt;
''Interview'' позволяет использовать совместно с ''SQL''-моделями и другие&lt;br /&gt;
стандартные «виды», они, как правило, менее удобны или информативны при работе с данными БД).&lt;br /&gt;
&lt;br /&gt;
Для нашего первого приложения ''Interview'' (и ''Qt4''!) воспользуемся&lt;br /&gt;
самой простой ''SQL''-моделью '''QSqlQueryModel'''. Мы создадим программу, позволяющую просматривать некий каталог музыкальных произведений (на самом деле – крошечный фрагмент моего музыкального каталога). Для нашего приложения БД нам понадобится база данных,&lt;br /&gt;
содержащая хотя бы одну таблицу. При написании программы для&lt;br /&gt;
примера я воспользовался СУБД ''PostrgeSQL'', которая присутствует в&lt;br /&gt;
любом дистрибутиве Linux. Если захотите, вы сможете адаптировать&lt;br /&gt;
этот пример к любой другой СУБД.&lt;br /&gt;
&lt;br /&gt;
Для любителей точных инструкций, привожу последовательность&lt;br /&gt;
действий по созданию базы данных '''testdb'''. Настройте и запустите&lt;br /&gt;
сервер ''PostrgeSQL'' на вашем компьютере (см. [[LXF85:PostgreSQL|LXF85]]). Далее скомандуйте&lt;br /&gt;
&lt;br /&gt;
 createdb testdb&lt;br /&gt;
&lt;br /&gt;
войдите в консольный клиент ''PostgreSQL'':&lt;br /&gt;
&lt;br /&gt;
 psql testdb&lt;br /&gt;
&lt;br /&gt;
и скомандуйте&lt;br /&gt;
&lt;br /&gt;
 \i createtable.sql&lt;br /&gt;
&lt;br /&gt;
Файл '''createtable.sql''' вы найдете на прилагаемом диске. Теперь можете выйти из клиента с помощью команды '''\q'''.&lt;br /&gt;
&lt;br /&gt;
Перейдем теперь собственно к программе. Ее исходный текст невелик и состоит всего лишь из одного файла, поэтому я приведу его полностью (вы, конечно, можете найти код на диске, в файле '''main.cpp''').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=cpp-qt&amp;gt; #include &amp;lt;QtDebug&amp;gt;&lt;br /&gt;
 #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
 #include &amp;lt;QSqlDatabase&amp;gt;&lt;br /&gt;
 #include &amp;lt;QSqlQueryModel&amp;gt;&lt;br /&gt;
 #include &amp;lt;QSqlError&amp;gt;&lt;br /&gt;
 #include &amp;lt;QTableView&amp;gt;&lt;br /&gt;
 int main(int argc, char *argv[])&lt;br /&gt;
 {&lt;br /&gt;
     QApplication app(argc, argv);&lt;br /&gt;
      QSqlDatabase db = QSqlDatabase::addDatabase(&amp;quot;QPSQL&amp;quot;);&lt;br /&gt;
      db.setHostName(&amp;quot;localhost&amp;quot;);&lt;br /&gt;
      db.setDatabaseName(&amp;quot;testdb&amp;quot;);&lt;br /&gt;
     db.setUserName(&amp;quot;user&amp;quot;);&lt;br /&gt;
     db.setPassword(&amp;quot;password&amp;quot;);&lt;br /&gt;
     if (!db.open())&lt;br /&gt;
             {&lt;br /&gt;
                         qDebug() &amp;lt;&amp;lt; QObject::trUtf8(&amp;quot;Не смогла я открыть базу данных&amp;quot;) &amp;lt;&amp;lt; db.lastError().text();&lt;br /&gt;
                         return -1;&lt;br /&gt;
             }&lt;br /&gt;
             QSqlQueryModel * model = new QSqlQueryModel(0);&lt;br /&gt;
             model-&amp;gt;setQuery(&amp;quot;SELECT * FROM music&amp;quot;);&lt;br /&gt;
             model-&amp;gt;setHeaderData(0, Qt::Horizontal, QObject::trUtf8(&amp;quot;Автор&amp;quot;));&lt;br /&gt;
             model-&amp;gt;setHeaderData(1, Qt::Horizontal, QObject::trUtf8(&amp;quot;Альбом&amp;quot;));&lt;br /&gt;
             model-&amp;gt;setHeaderData(2, Qt::Horizontal, QObject::trUtf8(&amp;quot;Произведение&amp;quot;));&lt;br /&gt;
             model-&amp;gt;setHeaderData(3, Qt::Horizontal, QObject::trUtf8(&amp;quot;Год выхода&amp;quot;));&lt;br /&gt;
             QTableView * view = new QTableView(0);&lt;br /&gt;
             view-&amp;gt;setModel(model);&lt;br /&gt;
             view-&amp;gt;setWindowTitle(QObject::trUtf8(&amp;quot;Музыкальный каталог&amp;quot;));&lt;br /&gt;
             view-&amp;gt;show();&lt;br /&gt;
             return app.exec();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исходный текст программы начинается, естественно, с заголовочных файлов. Первым следует '''&amp;lt;QtDebug&amp;gt;''', он содержит полезные&lt;br /&gt;
средства для вывода отладочных сообщений. Вследствие некоторых&lt;br /&gt;
особенностей структуры заголовочных файлов ''Qt4.x'', если вы решили включить в текст программы этот файл, вы должны включить его&lt;br /&gt;
прежде всех других заголовочных файлов. Нарушение этого правила&lt;br /&gt;
приводит к тому, что при определенном сочетании версий ''Qt4.x'', набора&lt;br /&gt;
используемых заголовочных файлов и фазы Луны компилятор начинает выдавать довольно странные сообщения об ошибках. Далее следует&lt;br /&gt;
заголовочный файл '''&amp;lt;QtGui&amp;gt;'''. Этот файл содержит объявления классов&lt;br /&gt;
и функций, реализованных в двух базовых модулях ''Qt'' – '''QtCore''' и '''QtGui'''.&lt;br /&gt;
Включив этот файл в текст нашей программы, мы избавляем себя от&lt;br /&gt;
необходимости добавлять по отдельности заголовочные файлы для&lt;br /&gt;
таких классов, как '''QApplication'''. Файл '''&amp;lt;QSqlDatabase&amp;gt;''' содержит объявление класса '''QSqlDatabase''', который мы используем для создания&lt;br /&gt;
соединения с сервером БД. Мы включаем в текст программы определения классов '''QSqlQueryModel''' и '''QtableView'''.&lt;br /&gt;
&lt;br /&gt;
Нашей первой задачей, как всегда, является создание объекта класса '''QApplication'''. Затем мы создаем соединение с сервером баз данных. Объект '''QSqlDatabase''', инкапсулирующий соединение с сервером,&lt;br /&gt;
создается с помощью статического метода '''QSqlDatabase::addDatabase()'''&lt;br /&gt;
Этот метод существует в нескольких вариантах, каждому из которых&lt;br /&gt;
при вызове можно передать несколько аргументов. Мы передаем&lt;br /&gt;
методу '''addDatabase()''' один аргумент (значения остальных заданы по&lt;br /&gt;
умолчанию), представляющий собой имя драйвера СУБД. Поскольку я&lt;br /&gt;
воспользовался ''PostgreSQL'', в программе указывается драйвер ''QPSQL''.&lt;br /&gt;
Если вы захотите использовать ''MySQL'', вам понадобится драйвер&lt;br /&gt;
''QMYSQL''. По умолчанию драйверы скомпилированы в виде отдельных&lt;br /&gt;
модулей, но если хотите, можете встроить код драйвера в свое приложение. Для этого вам понадобятся исходные тексты ''Qt''. Исходные тексты всех драйверов вы найдете в поддиректориях директории '''QTDIR/src/sql/drivers/'''.&lt;br /&gt;
&lt;br /&gt;
Теперь, когда у нас есть объект '''db''' класса '''QSqlDatabase''', реализующий соединение с сервером БД, мы должны настроить это соединение.&lt;br /&gt;
С помощью соответствующих методов объекта '''db''' мы указываем имена узла, базы данных, имя пользователя и его пароль (если вы создавали базу данных так, как описано выше, имя пользователя и пароль для доступа к ней совпадают с именем пользователя и паролем вашеучетной записи Linux). Настроенное соединение открывается с помощью метода '''open()'''. Этот метод возвращает значение типа '''bool''', которое указывает, удалось ли установить соединение с сервером БД. Если '''open()''' возвращает '''false''', наша программа выводит жалобное сообщение, затем более подробное описание ошибки (с помощью метода '''db.lastError().text()'''), и завершает работу.&lt;br /&gt;
&lt;br /&gt;
Успешно установив соединение с БД, мы можем приступить к созданию модели (объект '''model''' класса '''QSqlQueryModel'''). Главным&lt;br /&gt;
методом объекта '''QSqlQueryModel''' является метод '''setQuery()''', который&lt;br /&gt;
позволяет указать текст ''SQL''-запроса с БД. В нашем примере запрос&lt;br /&gt;
выбирает все данные из таблицы '''music'''. Внимательно глядя на этот код,&lt;br /&gt;
вы можете спросить: а откуда объект '''model''' узнает, из какой базы данных, иначе говоря, из какого объекта '''QSqlDatabase''', он должен получить&lt;br /&gt;
данные? Ответ на этот вопрос прост. При вызове статического метода '''addDatabase()''', которым был создан объект '''db''', мы могли бы указать&lt;br /&gt;
уникальное имя соединения. Поскольку мы этого не сделали, созданное нами соединение с БД стало соединением по умолчанию (вполне&lt;br /&gt;
логично: ведь наша программа использует только одну базу данных).&lt;br /&gt;
Получить объект, реализующий соединение по умолчанию, можно с&lt;br /&gt;
помощью статического метода '''QSqlDatabase::database()''', вызванного&lt;br /&gt;
без параметров. Именно так метод '''setQuery()''' объекта '''model''' определяет нужное соединение с БД. Если бы мы работали с несколькими&lt;br /&gt;
соединениями, мы могли бы воспользоваться перегруженным вариантом метода '''setQuery()''', которому помимо текста запроса передается&lt;br /&gt;
ссылка на объект '''QSqlDatabase'''.&lt;br /&gt;
&lt;br /&gt;
Метод '''setHeaderData()''', который мы далее вызываем, позволяет назначить произвольные заголовки столбцам таблицы. Это один&lt;br /&gt;
из немногих «косметических» методов, с помощью которых модель '''QSqlQueryModel''' может внести свою лепту в обработку данных (еще&lt;br /&gt;
один метод – '''removeColumns()''' – позволяет сделать невидимыми&lt;br /&gt;
отдельные столбцы таблицы). Мы используем метод '''setHeaderData()'''&lt;br /&gt;
для присвоения русских названий столбцам таблицы.&lt;br /&gt;
&lt;br /&gt;
Теперь мы переходим к созданию вида (объект '''view'''). Метод&lt;br /&gt;
'''setModel()''' связывает вид с моделью, а метод '''setWindowTitle()''' устанавливает заголовок окна. Нам остается вызывать метод '''show()''', что-&lt;br /&gt;
бы сделать вид действительно видимым, и запустить цикл обработки&lt;br /&gt;
сообщений приложения ''Qt''.&lt;br /&gt;
&lt;br /&gt;
Процедура сборки приложения выглядит несколько сложнее, чем в стандартном случае. После того как мы скомандовали ''qmake -project'',&lt;br /&gt;
нам необходимо «доработать» содержимое созданного файла '''.pro'''.&lt;br /&gt;
Как уже отмечалось, различные компоненты ''Qt'' расположены в разных&lt;br /&gt;
файлах библиотек, а заголовочные файлы – в разных директориях. К&lt;br /&gt;
сожалению, сама утилита ''qmake'' не может определить, какие модули&lt;br /&gt;
''Qt'' использует наша программа, и придется указать их явным образом.&lt;br /&gt;
Впрочем, сделать это несложно. Добавим в файл '''.pro''' строку&lt;br /&gt;
&lt;br /&gt;
 QT += sql&lt;br /&gt;
&lt;br /&gt;
Таким образом мы указываем, что нашей программе потребуется&lt;br /&gt;
модуль '''QtSql'''. В результате в создаваемый '''make'''-файл будут включены директивы, подключающие к проекту необходимые библиотеки&lt;br /&gt;
и указывающие расположение заголовочных файлов, необходимых&lt;br /&gt;
для работы с базами данных. Мы могли бы подключить компоненты&lt;br /&gt;
модуля ''SQL'' и «вручную». Для этого в файл '''.pro''' надо было бы добавить строку&lt;br /&gt;
&lt;br /&gt;
 LIBS += -lQtSql&lt;br /&gt;
&lt;br /&gt;
которая трансформировалась бы в '''make'''-файле в директиву компоновщика на связывание проекта с разделяемой библиотекой '''libQtSql.so'''. Заголовочные файлы модуля '''QtSql''' расположены по умолчанию&lt;br /&gt;
в директории '''/usr/include/QtSql/'''. Если бы мы делали все вручную,&lt;br /&gt;
нам бы следовало либо добавить эту директорию в переменную&lt;br /&gt;
'''INCLUDEPATH''' файла '''.pro''', либо заменить в исходных текстах програм-&lt;br /&gt;
мы директивы типа&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;QSqlDatabase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;QtSql/QSqlDatabase&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как видите, добавление модуля '''sql''' в переменную ''Qt'' избавило нас от&lt;br /&gt;
многих хлопот. Теперь наша программа готова к сборке. Командуем:&lt;br /&gt;
&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
В результате получаем простенькую программу просмотра содержимого таблицы БД (Рис. 1).&lt;br /&gt;
&lt;br /&gt;
===То ли еще будет===&lt;br /&gt;
&lt;br /&gt;
Система ''Qt4'' подготовила для нас много нового. В следующей статье&lt;br /&gt;
мы продолжим знакомство со средой ''Interview'' и созданными на ее&lt;br /&gt;
основе компонентами, а также рассмотрим новые вспомогательные&lt;br /&gt;
средства разработчика ''Qt''. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF102_89_1.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
'''Рис. 1. Программа для просмотра музыкального каталога.'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%90rduin%D0%BE</id>
		<title>LХF100-101:Аrduinо</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%90rduin%D0%BE"/>
				<updated>2015-06-03T16:57:31Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Аrduinо в LXF104:История успеха поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF104:История успеха]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF104:%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0</id>
		<title>LXF104:История успеха</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF104:%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D1%83%D1%81%D0%BF%D0%B5%D1%85%D0%B0"/>
				<updated>2015-06-03T16:57:31Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Аrduinо в LXF104:История успеха поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Бизнес работает для школы ==&lt;br /&gt;
: ''Школа тоже может быть Заказчиком, пусть и не богатым, зато благодарным. Белгородская фирма «ЛВА» и Новооскольский сельскохозяйственный колледж делятся своими впечатлениями о взаимовыгодном сотрудничестве.''&lt;br /&gt;
&lt;br /&gt;
'''Евгений М. Балдин''' ('''LXF'''): Скажите,&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;
по переходу на Linux в Новооскольском сельскохозяйственном колледже от ООО «ЛВА».&lt;br /&gt;
&lt;br /&gt;
Со стороны Новооскольского сельскохозяйственного колледжа со мной взаимодействовала преподаватель информатики Ольга&lt;br /&gt;
Николаевна Русаленко.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Чем занимается ваша фирма?&lt;br /&gt;
&lt;br /&gt;
ВМГ: ООО «ЛВА» (http://www.lvacompany.ru)&lt;br /&gt;
работает в сфере IT с 1991 года. Компания занимается разработкой проектов автоматизации&lt;br /&gt;
бизнес-процессов на предприятиях и реализацией этих проектов, поставкой и внедрением&lt;br /&gt;
программного обеспечения различного направления, а также продажей широкого ассортимента компьютерной техники и популярного ПО, в&lt;br /&gt;
число которого входит и обширный перечень&lt;br /&gt;
образовательных программ.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Как и когда вы впервые столкнулись с&lt;br /&gt;
GNU/Linux? Как протекало знакомство?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Какое-то время играли с Caldera Linux.&lt;br /&gt;
Первая же «фирменная» коробка была с дистрибутивом ASP Linux 7.2 Deluxe, которую мы&lt;br /&gt;
приобрели 14 мая 2002 года.&lt;br /&gt;
&lt;br /&gt;
Мы поставили ASP Linux в качестве внутреннего почтового сервера, и ощутили то, что обычно говорят про GNU/Linux: «поставил и забыл»;&lt;br /&gt;
Windows-сервера же каждый день напоминают о себе. Тогда же мы и поняли, что основные&lt;br /&gt;
преимущества GNU/Linux – это его отказоустойчивость и управляемость. GNU/Linux ничего не&lt;br /&gt;
делает спонтанно, система выполняет только&lt;br /&gt;
то, что в ней прописано.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Какой дистрибутив сейчас используется&lt;br /&gt;
в качестве базового?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Для рабочих станций – ASP Linux 12 Deluxe,&lt;br /&gt;
для серверов – StartCom Enterprise Linux 5. Оба&lt;br /&gt;
дистрибутива из одной линейки (Fedora и RHEL)&lt;br /&gt;
и хорошо «дружат» между собой.&lt;br /&gt;
&lt;br /&gt;
С линейкой ASP мы работаем, можно сказать, по историческим причинам, хотя перепробовали многие другие решения. Связано это, с&lt;br /&gt;
одной стороны, с налаженным каналом поставки именно этих коробок, а с другой стороны,&lt;br /&gt;
я бы сказал, что этот дистрибутив «для наших&lt;br /&gt;
дорог». Все в нем сделано оптимально, и проблем не возникает ни при установке, ни в работе. StartCom Enterprise – это очень добротный&lt;br /&gt;
клон RHEL 5, отличается надежностью и простотой развертывания. У нас все машины включены в VPN, и мы можем из дома пользоваться корпоративным web-сайтом, FTP-сервером,&lt;br /&gt;
смотреть почту и заходить по VNC на свои рабочие места. Также у нас реализован контроллер&lt;br /&gt;
домена для Windows-клиентов на базе Linux и&lt;br /&gt;
Samba. Эти же продукты мы предлагаем своим&lt;br /&gt;
клиентам для решения достаточно широкого&lt;br /&gt;
круга задач.&lt;br /&gt;
&lt;br /&gt;
Мы работаем не только с этими дистрибутивами, но и пробуем другие решения. Из&lt;br /&gt;
всего имеющегося многообразия нам нравится Gentoo, Mandriva, OpenSUSE, Debian Etch,&lt;br /&gt;
Ubuntu, пробуем также OpenSolaris, Nexenta и&lt;br /&gt;
другие сборки.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Кто именно выступил с инициативой перевода Новооскольского сельскохозяйственного колледжа на GNU/Linux?&lt;br /&gt;
&lt;br /&gt;
'''ВМГ''': Инициатором перехода на GNU/Linux&lt;br /&gt;
была наша компания. Основная цель перехода – легализовать абсолютно все программное&lt;br /&gt;
обеспечение, которое использовалось в учебном процессе.&lt;br /&gt;
&lt;br /&gt;
Вообще, это отдельная история. Вначале&lt;br /&gt;
колледж обратился к нам по поводу лицензирования программного обеспечения для&lt;br /&gt;
Windows. Они сами определили, что единственный вариант, который они финансово&lt;br /&gt;
могут «потянуть» – это временная подписка с&lt;br /&gt;
академическими скидками для учебных учреждений. Мы подготовили для них проект, заполнив очень значительное количество всяческих&lt;br /&gt;
форм, и несколько месяцев согласовывали&lt;br /&gt;
его то с поставщиком коммерческого ПО, то с&lt;br /&gt;
заказчиком. В конце концов, изрядно подустав&lt;br /&gt;
от оформления множества документов, мы&lt;br /&gt;
предложили колледжу перейти на GNU/Linux.&lt;br /&gt;
К нашей радости, преподаватель информатики&lt;br /&gt;
колледжа, очень высококвалифицированный&lt;br /&gt;
специалист, Ольга Николаевна Русаленко была&lt;br /&gt;
знакома с Linux и сразу согласилась участвовать в проекте. Мы быстро подготовили новый&lt;br /&gt;
проект, в том числе и потому, что согласовывать его теперь нужно было только с одной&lt;br /&gt;
стороной, то есть заказчиком, и приступили к&lt;br /&gt;
реализации.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Что собой представляло техническое&lt;br /&gt;
задание?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': 35 компьютеров. Задача заключалась&lt;br /&gt;
в том, чтобы легализовать программное обеспечение, установленное на компьютерах.&lt;br /&gt;
Изначально, как уже было сказано, хотели сделать это на базе Windows. Однако даже стоимость ежегодных платежей по подписке оказалась очень высока, и уже поэтому не получилось бы легализовать все программное обеспечение, которое было нужно.&lt;br /&gt;
&lt;br /&gt;
Переход на GNU/Linux, пожалуй, оптимальный способ легализовать именно все ПО.&lt;br /&gt;
Многие идут на легализацию Windows, добиваются ее, но потом не замечают, что на их&lt;br /&gt;
компьютеры каким-то образом пробираются&lt;br /&gt;
WinZip, Nero и др. Ведь это тоже коммерческие&lt;br /&gt;
продукты! Бывает, потом и Photoshop доставляют, «чтобы был».&lt;br /&gt;
&lt;br /&gt;
У нас были спецификации компьютеров&lt;br /&gt;
колледжа, и мы уже знали, какое программное&lt;br /&gt;
обеспечение должно работать. Мы проанализировали все это на предмет совместимости с&lt;br /&gt;
GNU/Linux и смогли дать заказчику гарантию,&lt;br /&gt;
что после перехода учебный процесс не остановится. Часть программ была заменена аналогами из GNU/Linux, а остальные запустились через&lt;br /&gt;
Wine и DosBox.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Какие проблемы встретились при&lt;br /&gt;
переходе?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Пришлось потратить некоторое дополнительное время на установку драйверов для&lt;br /&gt;
Windows-принтеров, особенно Canon.&lt;br /&gt;
Мы получили несколько десятков совершенно разных компьютеров, а также примерно&lt;br /&gt;
столько же разных принтеров и сканеров. Часть&lt;br /&gt;
компьютеров пришлось модернизировать, что-бы современное ПО, такое как OpenOffice.org,&lt;br /&gt;
хорошо на них работало.&lt;br /&gt;
&lt;br /&gt;
Компьютеры мы получили «как есть», со&lt;br /&gt;
всеми данными и пожеланиями их сохранить и&lt;br /&gt;
обеспечить работу с ними в новой системе. В&lt;br /&gt;
основном это, конечно, были тексты, а также&lt;br /&gt;
данные различных самописных учебных программ, которые удалось запустить через Wine&lt;br /&gt;
и DosBox. В первую очередь именно потому,&lt;br /&gt;
что мы это сделали, проблем у преподавателей и администрации почти не возникло, не&lt;br /&gt;
считая некоторых принципиальных отличий&lt;br /&gt;
в работе Windows и Linux, связанных с монтированием/размонтированием дискет и флэш-накопителей.&lt;br /&gt;
&lt;br /&gt;
Еще возникли некоторые сложности, связанные с нестандартным запуском Windows-принтеров HP LaserJet 1018 и 1020. Чтобы такой&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;
У директора на ноутбуке была предустановленная Windows Vista, которую, с одной стороны, он не хотел терять, потому что она легальна, но с другой стороны, она его не устраивала&lt;br /&gt;
своей медленной работой, частыми зависаниями и перезагрузками. В итоге мы оставили ему&lt;br /&gt;
Windows, а параллельно установили и Linux. При&lt;br /&gt;
загрузке он может выбирать, в чем работать.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Как к переходу отнеслись школьники?&lt;br /&gt;
Учителя? Администрация?&lt;br /&gt;
&lt;br /&gt;
'''Ольга Н. Русаленко''' ('''ОНР'''): Переход на&lt;br /&gt;
GNU/Linux в нашем колледже был обусловлен&lt;br /&gt;
тем, что программное обеспечение для учебного процесса было разнородным.&lt;br /&gt;
Чтобы работать в четырех компьютерных&lt;br /&gt;
классах без проблем, решено было установить&lt;br /&gt;
одинаковое программное обеспечение. Мы&lt;br /&gt;
решили сделать обновление имеющихся ПК и&lt;br /&gt;
установить на них ОС Linux. Мотивация здесь&lt;br /&gt;
достаточно простая: это ПО обошлось колледжу в несколько раз дешевле, чем стоили бы&lt;br /&gt;
его Windows-аналоги. Ряд программ, особенно&lt;br /&gt;
офисный пакет, выполняет те же функции, что и&lt;br /&gt;
в Windows, поэтому при работе с текстовым или&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, ведь в основном сейчас&lt;br /&gt;
на рабочих местах Windows?». На него, конечно, можно ответить, что, умея работать с одной&lt;br /&gt;
ОС, не проблема научиться работать и с другой.&lt;br /&gt;
Главное – понять принцип работы.&lt;br /&gt;
&lt;br /&gt;
Не всегда понятна позиция образовательных структур. В типовых программах по дисциплинам указывается ОС Windows, хотя на данном этапе рациональнее было бы указывать не&lt;br /&gt;
конкретную ОС, а основные принципы работы&lt;br /&gt;
с ОС вообще. Получается, что учебный процесс&lt;br /&gt;
ориентирован на Windows, несмотря на то, что&lt;br /&gt;
время диктует совершенно иной подход. Мое&lt;br /&gt;
мнение как преподавателя состоит в том, что&lt;br /&gt;
студента надо обучать не работе с конкретным&lt;br /&gt;
программным обеспечением, а прививать навыки работы с ПО вообще. Ведь после окончания&lt;br /&gt;
учебного заведения студент, придя на рабочее место, может там столкнуться не только с&lt;br /&gt;
Windows, но и с совершенно другой системой, и&lt;br /&gt;
он должен быть готов к этому. Умение реализовать на практике полученные в колледже навыки работы с ПК – вот наша основная задача.&lt;br /&gt;
&lt;br /&gt;
Директор колледжа Сергей Владимирович&lt;br /&gt;
Осипов сам работает с ОС Linux. И, по его словам, большой разницы с Windows он не видит.&lt;br /&gt;
Конечно, при переходе от одной ОС к другой&lt;br /&gt;
появляется дискомфорт, но это продолжается совсем недолго и, как правило, не влияет на&lt;br /&gt;
качество работы.&lt;br /&gt;
&lt;br /&gt;
В колледже около 50% преподавателей стараются использовать информационные технологии для подготовки к занятиям. Например,&lt;br /&gt;
преподаватели экономических дисциплин практически в 100% случаев используют ПК для проведения лабораторных работ. Адаптационный&lt;br /&gt;
период при переходе на Linux прошел достаточно удачно. Конечно, не обошлось без неприятностей типа потери информации, но теперь это&lt;br /&gt;
пройденный этап, и можно двигаться дальше.&lt;br /&gt;
&lt;br /&gt;
Мы планируем использовать программное&lt;br /&gt;
обеспечение под Linux для проведения занятий и для студентов-электриков, и для механиков, ведь такой потенциал у GNU/Linux имеется. Кроме того, при содействии компании ЛВА,&lt;br /&gt;
планируется покупка и установка Linux-класса&lt;br /&gt;
новой модификации. Поэтому я думаю, что перспективы хорошие, желание работать у нас есть.&lt;br /&gt;
Мы с удовольствием постигаем новое.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Вы довольны получившимся результатом? Насколько этот заказ оказался для&lt;br /&gt;
вас интересен? Выгоден?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Мы довольны получившимся результатом. Во-первых, мы получили этот заказ и&lt;br /&gt;
выполнили его. С Windows, у заказчика не хватило бы ресурсов, и заказа не было бы вообще. GNU/Linux дает нам возможность получать&lt;br /&gt;
этот круг заказчиков, и он довольно широк.&lt;br /&gt;
Linux чаще ставят на сервера, а этот заказ был&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;
бы все текстовые файлы открывались с помощью Kwrite, и по умолчанию установили в нем&lt;br /&gt;
кодировку Windows-1251. Выложили на рабочий стол электронную таблицу Calc и текстовый редактор Writer, а также ссылку на папку&lt;br /&gt;
Documents, и назвали ее «Мои документы».&lt;br /&gt;
Сделали шаблоны для создания новых документов по правой кнопке мыши: Текстовый&lt;br /&gt;
документ, Электронная таблица, Презентация и&lt;br /&gt;
др. Настроили Yum так, чтобы он загружал пакеты из локального репозитория.&lt;br /&gt;
&lt;br /&gt;
Такими простыми шагами мы устранили&lt;br /&gt;
около 90% проблем, обычно возникающих при&lt;br /&gt;
первом сеансе работы, поэтому сопротивления&lt;br /&gt;
не было. Люди просто пришли, сели и начали&lt;br /&gt;
заниматься делами.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Будет ли продолжение подобной деятельности? Есть ли у вас сейчас другие&lt;br /&gt;
подобные примеры?&lt;br /&gt;
&lt;br /&gt;
'''ВМГ''': Да, конечно. Вообще ситуация «просто&lt;br /&gt;
купи-продай» нам не очень интересна. Когда&lt;br /&gt;
мы начинали в далеком 1991 году, то уже тогда&lt;br /&gt;
проектировали достаточно непростые системы&lt;br /&gt;
масштаба предприятия, города и даже области.&lt;br /&gt;
Мы продаем готовые решения: собранные нами&lt;br /&gt;
ПК с установленным Linux и пакетом программ,&lt;br /&gt;
необходимым для офисных, графических и&lt;br /&gt;
других работ. В стоимость комплекса входит&lt;br /&gt;
сборка оборудования и небольшая сумма за&lt;br /&gt;
настройку. Представляете стоимость подобного комплекса с Windows, Microsoft Office, и т.п.?&lt;br /&gt;
Поэтому у нас их покупают даже школьники,&lt;br /&gt;
причем именно ученикам не старших классов&lt;br /&gt;
очень нравится Linux. Вот, например, один из&lt;br /&gt;
них: Андрей Глазко, 7-й класс, школа № 49, г.&lt;br /&gt;
Белгород (он приобрел у нас коробочную версию ASP Linux 12 Deluxe).&lt;br /&gt;
&lt;br /&gt;
У нас есть небольшие внедрения в образовательных учреждениях, воинской части, перевод&lt;br /&gt;
бухгалтерии одного производственного предприятия, а также запуск сервера PostgreSQL в&lt;br /&gt;
связке с 1С:Предприятие 7.7 для сети супермаркетов. На этом, естественно, не собираемся останавливаться. Для предприятий собираемся предлагать ПК с OEM Mandriva. Есть и&lt;br /&gt;
еще более смелые проекты, но пока опасаемся&lt;br /&gt;
«сглазить».&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Обычно учебные заведения сейчас пере-&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;
'''LXF''': Была ли польза от сетевого&lt;br /&gt;
сообщества?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Например, мы запустили принтеры с&lt;br /&gt;
помощью материалов, представленных на&lt;br /&gt;
сайте http://linuxprinting.org.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Чего вам сейчас больше всего не хватает&lt;br /&gt;
среди набора свободных программ?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Системы оптического распознавания&lt;br /&gt;
символов. Однако слышал, что недавно вышел&lt;br /&gt;
свободный CuneiForm, но еще не пробовали под Linux запускать. Если заработает, то&lt;br /&gt;
пожелание останется только одно: улучшать и&lt;br /&gt;
локализовывать то программное обеспечение,&lt;br /&gt;
которое уже есть.&lt;br /&gt;
&lt;br /&gt;
'''LXF''': Что бы вы пожелали всем, чтобы продвинуть GNU/Linux?&lt;br /&gt;
&lt;br /&gt;
'''АВГ''': Всем, кто еще этого не сделал, желаем&lt;br /&gt;
перейти на Linux. Пробуйте установить его на&lt;br /&gt;
свой компьютер и пользуйтесь. Можно поначалу использовать Linux в качестве второй ОС.&lt;br /&gt;
Самый простой способ «сделать это» – заказать&lt;br /&gt;
Ubuntu с сайта http://shipit.ubuntu.com. Дистрибутив&lt;br /&gt;
пришлют бесплатно самолетом. Запуститесь с&lt;br /&gt;
компакт-диска, и, если когда-то уже устанавливали Windows, то, думаю, разберетесь, что&lt;br /&gt;
делать дальше.&lt;br /&gt;
&lt;br /&gt;
Нужно, чтобы пользователей GNU/Linux становилось больше. Хорошо бы реально ощутить&lt;br /&gt;
государственную поддержку: ведь многие государственные структуры полностью «погрязли»&lt;br /&gt;
в Windows. Это не дает возможности предприятию полностью перейти на GNU/Linux. Взять,&lt;br /&gt;
например, бухгалтерию. Большинство клиент-банков, программ для сдачи отчетности в электронном виде и для печати двумерных штрих-кодов работает только под Windows. Более того,&lt;br /&gt;
некоторые из них для передачи данных используют собственные протоколы, и их разработчики не желают ни переводить это на GNU/Linux,&lt;br /&gt;
ни раскрывать свои технологии. До тех пор,&lt;br /&gt;
пока так будет, бизнес просто не сможет полностью перейти на GNU/Linux. Слышал, что решением этой проблемы занимается Etersoft.&lt;br /&gt;
&lt;br /&gt;
Чтобы повлиять на ситуацию, нужно заниматься просветительской работой, а именно – учить и пропагандировать GNU/Linux.&lt;br /&gt;
Нужно, чтобы для обычного человека слово «Linux» было не менее знакомо, чем Intel&lt;br /&gt;
Pentium. Этим и занимается журнал Linux&lt;br /&gt;
Format, за что огромное спасибо всей команде&lt;br /&gt;
[улыбается].&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w1</id>
		<title>LХF100-101:Rеviеw1</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w1"/>
				<updated>2015-06-03T16:56:54Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw1 в LXF106 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF106]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF106</id>
		<title>LXF106</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF106"/>
				<updated>2015-06-03T16:56:53Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw1 в LXF106 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Linux Format 106 (6), Июнь 2008==&lt;br /&gt;
&amp;lt;center&amp;gt;[[Изображение:LXF106.jpg|Linux Format 106 (6), Июнь 2008]]&amp;lt;/center&amp;gt;&lt;br /&gt;
=== Постоянные рубрики ===&lt;br /&gt;
&lt;br /&gt;
* '''Обзоры'''&lt;br /&gt;
**[[LXF106:Review1|Nagios 3]]&lt;br /&gt;
**:Инструмент мониторинга корпоративных сетей – и этим все сказано.&lt;br /&gt;
**[[LXF106:Review2|Nokia 810]]&lt;br /&gt;
**:Ура, новый крутой телефон! Ну... ммм... почти: это интернет-планшет. Но выглядит все равно заманчиво...&lt;br /&gt;
**[[LXF106:Review3|UndoDB 2.2]]&lt;br /&gt;
**:Отладчик, способный отправиться в прошлое, чтобы помочь вам отыскать ошибки в собственном коде? Господи Иисусе!&lt;br /&gt;
**[[LXF106:Review4|GOS]]&lt;br /&gt;
**:Дружественная пользователю, дружественная Интернету, избранная Wall-Mart – узнайте, почему. &lt;br /&gt;
**[[LXF106:Review5|Runes of Avalon 2]]&lt;br /&gt;
**:Падающие блоки + средневековый антураж + превосходная графика = истинное золото в мире игр-головоломок.&lt;br /&gt;
**[[LXF106:Review6|MythTV 0.21]]&lt;br /&gt;
**:Никогда больше не пропустите очередную серию Друзей: все, что вам нужно – это ''MythTV'' и ангельское терпение.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Сравнение|'''Сравнение:''' Linux-устройства DVВ]]&lt;br /&gt;
*:Валяться и круглые сутки смотреть телек – подходящая работенка для '''Ника Вейча'''…&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Что за штука|'''Что за штука…''' Android?]]&lt;br /&gt;
*:Похоже, далеко-не-параноик '''Грэм Моррисон''' предпочтёт мобильный Linux-телефон от Google персональному тестеру на «андроидность».&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Спецрепортаж|'''Спецрепортаж''' Eee уже с нами]]&lt;br /&gt;
*:Почему Linux – это большое дело для маленьких компьютеров&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Интервью|'''Интервью''' Крис Кенневэй]]&lt;br /&gt;
*:Кто бы мог подумать, что разработчики FreeBSD тесно дружат с ребятами из Apple?&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:История успеха|'''История успеха''']]&lt;br /&gt;
*:Компания «Химреактивснаб», г. Уфа: полет нормальный!&lt;br /&gt;
&lt;br /&gt;
===А также...===&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Темная сторона Linux|Темная сторона Linux]]&lt;br /&gt;
*:Отмычки нужны не только ворам: обратите хакерский арсенал в свою пользу.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:«Зеленые вычисления»|«Зеленые вычисления»]]&lt;br /&gt;
*:Сейчас об этом говорят многие, и, как всегда, Linux на шаг впереди планеты всей. Плачь и смотри, Гор!&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Терминал-разговорник|Терминал-разговорник]]&lt;br /&gt;
*:Заблудились в Linux? Опасаетесь командной строки? Не стоит – выучите пару фраз и чувствуйте себя, как дома.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Блиц-опрос по Linux|Блиц-опрос по Linux]]&lt;br /&gt;
*:Вы ставили ПО, вы собирали ядро, вы даже настроили ''MythTV'' – но насколько хорошо вы знаете Linux? Давайте разберемся...&lt;br /&gt;
&lt;br /&gt;
=== Учебники ===&lt;br /&gt;
* [[LXF106:Совет месяца|'''Совет месяца:''' ДУ для ''MPlayer'']]&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Google Maps|Изучайте планету]]&lt;br /&gt;
*:Благодаря ''Google Картам'' и ''Google Планета Земля'', весь мир становится на расстоянии вытянутой руки. Подключайтесь к другу новичков '''Энди Чэннелу''' в путешествии из точки А в точку Б.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Вещайте по сети|Вещайте по сети]]&lt;br /&gt;
*:Открыли в себе Юрия Левитана, Игоря Кириллова или Екатерину Андрееву (нас ведь читают и дамы)? '''Дэниел Джеймс''' покажет, как создать сетевую радиостанцию с Dynebolic...&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Разберитесь с GIMP 2.4|Разберитесь с ''GIMP'' 2.4]]&lt;br /&gt;
*:После заслуженного отдыха, ''GIMP''-гуру '''Майкл Дж. Хэммел''' снова с нами – и он жаждет рассказать о возможностях новой версии ''GIMP''.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Безопасные связи|Безопасные связи]]&lt;br /&gt;
*:При удаленной работе через Интернет безопасность приобретает первостепенное значение. '''Дэвид Гемптон''' поражает взломщиков мечом ''Secure VPN Gateway''. &lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Arduino|Вдарим по ударным]]&lt;br /&gt;
*:'''Грэм Моррисон''' утомил всех постукиванием пальцами по столу, и чтобы направить его ритмичную энергию в мирное русло, мы поручили ему собрать драммашину из пьезодатчиков и '''Arduino'''.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:LTSP|Тонкие клиенты]]&lt;br /&gt;
*:Будь то школьный класс или офис, большинству пользователей не нужны полноценные ПК. '''Нейл Ботвик''' плюс ''LTSP'' сэкономят вам время и деньги.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Django|Доступ запрещен]]&lt;br /&gt;
*:Евангелист ''Django'' '''Никита Шультайс''' добавит в проект прошлого номера возможность комментировать новости, а заодно рассмотрит модель разграничения полномочий.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:SciLab|Численная математика]]&lt;br /&gt;
*:Вы все еще используете пиратский ''Matlab''? Тогда мы идем к вам! '''Александр Бикмеев''' предлагает законную альтернативу в лице ''SciLab''.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Qt4|Скрипты в ''Qt'']]&lt;br /&gt;
*:Конечно, в Linux мало вирусов, но это можно нечаянно исправить. '''Андрей Боровский''' раскроет секреты автоматизации ''Qt''-приложений и предостережет от необдуманных шагов.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Шаблоны в Sun Studio|Шаблоны в Sun Studio]]&lt;br /&gt;
*:Программистов «только на ''C++''» просим не беспокоиться – '''Станислав Механошин''' обращается к тем, кто понимает язык ассемблера.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Audacity|''Audacity'': Чистое звучание]]&lt;br /&gt;
*:...ну а если дикторство – не ваша стезя, компьютер снова придет на помощь. '''Андрей Боровский''' мастерски почистит микрофонные записи.&lt;br /&gt;
&lt;br /&gt;
=== Школа LXF  ===&lt;br /&gt;
&lt;br /&gt;
*[[LXF106:School1|Графический редактор ''Tux Paint'']]&lt;br /&gt;
*:Впереди летние месяцы, а значит – яркие краски, солнце и полное отсутствие домашних заданий. Время, проводимое школьниками за компьютером, с полным правом займут игры и графика, считает '''Галина Пожарина'''.&lt;br /&gt;
&lt;br /&gt;
* [[LXF106:Печать в OpenOffice.org|Грамотная печать в OpenOffice.org]]&lt;br /&gt;
*:Сегодня мы не будем говорить о проверке правописания и стилях – речь пойдет именно о печати грамот. '''Сергей Никитин''' готов поделиться своими наработками.&lt;br /&gt;
&lt;br /&gt;
*[[LXF106:School2|Когда юрист приходит на помощь]]&lt;br /&gt;
*:Кругом компьютерная безграмотность? Про GNU/Linux никто не слышал? Никто вас не понимает? Юрист из Череповца '''Лебедев Артем Александрович''' расскажет, что надо делать. Впрочем, это и так понятно – обучать!&lt;br /&gt;
&lt;br /&gt;
*[[LXF106:School4|Консультация юриста]]&lt;br /&gt;
&lt;br /&gt;
*[[LXF106:School3|Будущее КамАЗа обучается на GNU/Linux]]&lt;br /&gt;
*:Большой стране – большие машины. Для их создания нужны грамотные специалисты, именно их и готовят в Камском государственном автомеханическом техникуме. О роли GNU/Linux в этом процессе рассказывает начальник отдела по развитию сетевых технологий и преподаватель специальных компьютерных дисциплин '''Ляпин Андрей Николаевич'''.&lt;br /&gt;
&lt;br /&gt;
===[[LXF106:Ответы|Ответы]]===&lt;br /&gt;
:Наши эксперты дают мудрые советы по двойной загрузке, сети в Mandriva, межсетевым экранам, монтированию устройств и прочим насущным вопросам.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LF%D0%A577:B%D0%BE%D0%BE</id>
		<title>LFХ77:Bоо</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LF%D0%A577:B%D0%BE%D0%BE"/>
				<updated>2015-06-03T16:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LFХ77:Bоо в LXF103:Hardcore Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF103:Hardcore Linux]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF103:Hardcore_Linux</id>
		<title>LXF103:Hardcore Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF103:Hardcore_Linux"/>
				<updated>2015-06-03T16:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LFХ77:Bоо в LXF103:Hardcore Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Почта: собери свой сервер==&lt;br /&gt;
&lt;br /&gt;
Большинство людей пользуется электронной почтой, понятия не имея, как она работает. Светоч знаний '''д-ра Криса Брауна''' рассеет тьму невежества.&lt;br /&gt;
&lt;br /&gt;
Чтобы вы могли представить, с чем вообще едят почтовый сервер, взгляните на '''Рис. 1''': там показана схема доставки почты в Интернете.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF103_67_1.png|thumb|300px|Рис. 1: Один день из жизни почтового сообщения.]]&lt;br /&gt;
&lt;br /&gt;
Проследим продвижение почтового сообщения на его пути через Интернет от отправителя к получателю и разберемся, как все компоненты работают совместно. Пусть Маша сидит за своим компьютером и составляет электронное послание, используя почтовый клиент (Mail User Agent – MUA). В мире Linux клиент Маши будет чем-то вроде ''Evolution'' или ''KMail''. Она пишет своей маме Ане, электронный адрес которой '''&amp;lt;nowiki&amp;gt;anna@example.com&amp;lt;/nowiki&amp;gt;'''. Когда Маша нажимает кнопку Послать, ее MUA соединяется с Mail Transport Agent (MTA – почтовым транспортным агентом), на который Маша настроила свой MUA для отправки почты. Обычно MTA предоставляется Маше ее интернет-провайдером (ISP). MUA и MTA говорят друг с другом на языке протокола SMTP (Simple Mail Transfer Protocol – простой протокол передачи почты), организовывая доставку сообщений. В ходе этого диалога MUA определяет получателя сообщения и передает текст письма.&lt;br /&gt;
&lt;br /&gt;
MTA отвечает за «дальнюю перевозку» сообщения. Он сделает запрос к DNS (Domain Name System, системе доменных имен) на поиск записи MX (Mail Exchanger), которая скажет ему, какая машина действует как почтовый сервер для домена '''&amp;lt;nowiki&amp;gt;example.com&amp;lt;/nowiki&amp;gt;''', где расположен Анин почтовый ящик. Из этого запроса он может узнать, что почтовый сервер, допустим, '''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''. MTA Маши теперь соединяется с MTA на '''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;''', снова использует SMTP для указания получателя письма и передает тело сообщения. Принимающий MTA проверяет, что он и вправду почтовый сервер для домена получателя, а потом уж дает согласие на прием. Если все проходит нормально, принимающий MTA передает сообщение MDA (Mail Delivery Agent – почтовому агенту доставки), который сохраняет сообщение в хранилище сообщений (оно находится в файловой системе почтового сервера). Для этого сообщения работа MTA выполнена.&lt;br /&gt;
&lt;br /&gt;
Аня проводит выходные с дядей Васей, помогая ему разбирать чердак, и не может в эти дни читать почту. Но когда она доберется до компьютера, ее почтовый клиент соединится с Mail Access Agent (MAA – агентом доступа к почте) на ее почтовом сервере &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; для проверки почты, которую MTA ее домена сохранил в ее хранилище. Ее MUA может использовать для этого один или два протокола. Чаще всего это Post Office Protocol (POP3 – почтовый протокол) версии 3. POP – это протокол, который скачивает почту с почтового сервера, затем (как правило) удаляет ее с сервера и оставляет ее на клиенте (компьютере в Аниной квартире), обеспечивая долговременное хранение сообщения. Но если Аня работает в корпорации Example.Com, данное учреждение может иметь почтовый сервер, работающий по протоколу IMAP4. IMAP расшифровывается как Internet Message Access Protocol [интернетпротокол доступа к сообщениям]; он позволяет Аниному MUA получать доступ к ее почтовому архиву, но долговременное хранение писем происходит на сервере (хотя некоторые MUA поддерживают локальные копии). Благодаря IMAP можно подключаться к серверу с любого компьютера с IMAP-клиентом и видеть весь почтовый архив – а вот если бы вы читали почту, используя POP на разных машинах, то в итоге ваши письма были бы раскиданы по этим машинам, что я знаю по своему горькому опыту.&lt;br /&gt;
&lt;br /&gt;
Наш почтовый сервер изображен на Рисунке 1 как большой серый квадрат в правом верхнем углу. В реальности необходимы два компьютера – один для почтового сервера, другой для клиента. Возьмем ''Postfix'' как SMTP-сервер и ''Dovecot'' как почтовый POP3-сервер. На почтовом сервере моя основная ОС – CentOS 5 (CentOS – это клон Red Hat Enterprise Linux), но конфигурация и операции с ''Postfix'' и ''Dovecot'' не зависят от используемого дистрибутива Linux. Клиентская машина может быть любой. В моем случае на ней Ubuntu 7.04 с ''Evolution'' в качестве MUA.&lt;br /&gt;
&lt;br /&gt;
===Начнем: Mail Transfer Agent===&lt;br /&gt;
&lt;br /&gt;
Сперва мы установим ''Postfix''. Но предварительно проверим: вдруг ''Sendmail'' уже установлен и запущен. На системах типа Red Hat это могут сделать следующие команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # rpm -q sendmail&lt;br /&gt;
 # service sendmail status&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ''Sendmail'' запущен, надо его остановить и позаботиться, чтобы он не запустился после перезагрузки:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # service sendmail stop&lt;br /&gt;
 # chkconfig sendmail --del&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При наличии на вашей машине включенного брандмауэра, вы должны открыть порт для SMTP (tcp/25).&lt;br /&gt;
&lt;br /&gt;
Моя собственная установка ''Postfix'' споткнулась, обнаружив отсутствие административной группы под названием &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postdrop&amp;lt;/font&amp;gt;. То есть до установки пакетов нужно было создать эту группу:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # groupadd -r postdrop&lt;br /&gt;
 # yum install postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Возможно, эта проблема касается только моего дистрибутива, и на вашей системе такого не произойдет.&lt;br /&gt;
&lt;br /&gt;
Для обеспечения запуска сервиса ''Postfix'' при загрузке, запустите команду&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # chkconfig --add postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл настройки ''Postfix'' – '''/etc/postfix/main.cf'''. Фактически, ''Postfix'' должен заработать «из коробки» как простой почтовый сервер с минимальной доработкой готовой конфигурации, но есть несколько параметров, требующих внимания. Так, строку в '''main.cf'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  inet_interfaces = localhost&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
нужно заменить на&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  inet_interfaces = all&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это мы велим ''Postfix'' слушать SMTP соединения на всех сетевых интерфейсах машины, а не только на локальном (localhost).&lt;br /&gt;
&lt;br /&gt;
Далее проверим установки параметра &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;myhostname&amp;lt;/font&amp;gt;. Он определяет FQDN этой почтовой системы. Если он не определен, то по умолчанию берется имя хоста машины, на которой запущен сервер, возвращаемое командой &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;hostname&amp;lt;/font&amp;gt;. Так, если ваш хост – &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;, это имя и будет принято по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Наконец, параметр &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;mydestination&amp;lt;/font&amp;gt; задает список доменов, которые эта машина считает для себя пунктом назначения (то есть домены, для которых машина сохраняет сообщения). Минимальное значение этого параметра должно походить на следующее:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  mydestination = example.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установив все эти параметры, можно запускать ''Postfix''. На RedHat-совместимых системах это делается командой&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # service postfix start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, я создал учетную запись для пользователя &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt; и установил пароль:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # useradd anna&lt;br /&gt;
 # passwd anna&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без них не обойтись, потому что «локальный» агент доставки почты в ''Postfix'' требует, чтобы получатель имел учетную запись в Linux-системе: по ней происходит аутентификация в ''Dovecot'' (который мы рассмотрим чуть позже).&lt;br /&gt;
&lt;br /&gt;
Теперь у нас все готово для теста доставки почты в хранилище сообщений. На моей настольной системе с Ubuntu я создал запись в файле '''/etc/hosts''', возвращающую IP-адрес машины '''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''. В моем случае строка выглядела так:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 192.168.0.41 mail.example.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В реальности, почтовый сервер должен иметь DNS-запись, и вам не нужно задавать ее в '''/etc/hosts'''. Затем я сконфигурировал «учетную запись» в моем MUA (''Evolution'') на использование SMTP-сервера &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; для исходящих сообщений. Я включил эту учетную запись Evolution и отключил остальные. Затем я попытался послать несколько писем на &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Сработало? Ну, тот факт, что письма исчезли из моих Исходящих [Outbox] в ''Evolution'', уже обнадеживал, но лучший способ проверки – найти сообщения сохраненными на почтовом сервере. Что выводит нас на ...&lt;br /&gt;
&lt;br /&gt;
===Хранилище сообщений===&lt;br /&gt;
&lt;br /&gt;
Традиционный способ хранения сообщений на почтовом сервере известен как формат Mbox: для каждого пользователя хранится отдельный текстовый файл. Имя этого файла совпадает с именем учетной записи пользователя, чью почту он хранит, а каталог определяется параметром &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;mail_spool_directory&amp;lt;/font&amp;gt; настройки ''Postfix'' (обычно '''/var/spool/mail''' или '''/var/mail'''). Например, Анины сообщения могут заноситься в '''/var/spool/mail/anna'''. Внутри этого файла каждое сообщение начинается строкой с первым словом “&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;From&amp;lt;/font&amp;gt;” и заканчивается пустой строкой. (Вас может сбить с толку наличие в этом файле других строк, тоже начинающихся на “From:” – заметили двоеточие? Это часть заголовков сообщения.) Надеюсь, ''Postfix'' вписал мое тестовое сообщение в этот файл.&lt;br /&gt;
&lt;br /&gt;
Альтернативная схема хранения сообщений (также называемая форматом Maildir) использует отдельную директорию для каждого пользователя (обычно это поддиректория с названием '''maildir''' внутри домашнего каталога пользователя) и, внутри нее, отдельный файл для каждого сообщения. При этом меньше шансов заблокировать или угробить все сообщения разом, чем в формате Mbox.&lt;br /&gt;
&lt;br /&gt;
Если посланное вами сообщение появилось в хранилище, пора перейти к нашему POP3-серверу. Если его нет, прочитайте советы во врезке ''Решение проблем'', внизу .&lt;br /&gt;
&lt;br /&gt;
===Установка и настройка Dovecot===&lt;br /&gt;
&lt;br /&gt;
На моей CentOS для установки ''Dovecot'' надо всего лишь скомандовать:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # yum install dovecot&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нужно найти файл конфигурации ''Dovecot''. Обычно это '''/etc/dovecot.conf'''. Как типичный современный файл конфигурации, он довольно длинен (более 1000 строк), но почти целиком состоит из комментариев. Как оказалось, мне нужно было изменить две строчки; одна задает протокол(ы), которые должен обслуживать ''Dovecot'', а вторая говорит, где находятся файлы почтового ящика. Эти два параметра я изменил так:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 protocols = pop3&lt;br /&gt;
     mail_location = mbox:~/mail:INBOX=/var/spool/mail/%n&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая строка говорит, что мы будем использовать только протокол POP3. Во второй строке, установка &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;INBOX&amp;lt;/font&amp;gt; использует специальный параметр &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;%n&amp;lt;/font&amp;gt; для замены именем пользователя, под которым мы зашли проверить почту (в нашем примере – “&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt;”). Заметим, что значение параметра &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;INBOX&amp;lt;/font&amp;gt; должно совпадать с расположением хранилища почты, указанном в ''Postfix''.&lt;br /&gt;
&lt;br /&gt;
Если у вас на почтовом сервере запущен брандмауэр, нужно также открыть порт POP3 (110/tcp).&lt;br /&gt;
&lt;br /&gt;
Теперь мы готовы к запуску сервиса:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # service dovecot start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пора тестировать. На клиенте, в настройках MUA мне необходимо установить для приема почты использование протокола POP и сервера &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;, затем задать имя '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt;''' и отключить опции шифрования, предлагаемые MUA. Теперь я готов принять мои сообщения. В этом пункте мой MUA должен (надеюсь) запросить пароль '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt;''', а мне необходимо предоставить пароль, который я задал, создавая ее учетную запись Linux на сервере. Если все пройдет гладко, вы должны увидеть ранее посланные письма появившимися во Входящих MUA. И если вы вернетесь на сервер, то обнаружите, что сообщения исчезли из хранилища &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt;. Если опять ничего не выйдет, обратитесь ко врезке ''Решение проблем''.&lt;br /&gt;
&lt;br /&gt;
===Ура, оно работает!===&lt;br /&gt;
&lt;br /&gt;
Если вы дошли досюда, поздравляем! У вас появился работающий почтовый сервер. Как обычно, я создавал максимально простую конфигурацию, чтобы все поскорее заработало. Однако эта реализация подразумевает несколько допущений: во-первых, почтовый сервер обслуживает только один домен (&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;), а во-вторых, все пользователи, желающие получать почту, имеют учетные записи Linux на почтовом сервере. Это последнее ограничение задается как со стороны локального агента доставки в ''Postfix'', так и ''Dovecot'', который, в своей конфигурации по умолчанию, требует действующей учетной записи Linux для аутентификации пользователей, для входа через POP и получения электронной почты. Отметим также, что в нашей конфигурации MTA (''Postfix'') не требуется аутентификации пользователя, в отличие от MAA (''Dovecot'').&lt;br /&gt;
&lt;br /&gt;
===Поддерживаем несколько доменов===&lt;br /&gt;
&lt;br /&gt;
В реальных условиях одной машине приходится быть почтовым сервером для множества доменов. Самый простой путь это обеспечить – добавить домены в параметр mydestination в '''/etc/Postfix/main.cf'''. Например, установка:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mydestination = example.com example.org example.net &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
велит Postfix принимать почту для трех указанных доменов. Конечно, если вы что-то поменяли в '''main.cf''', нужно заставить &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postfix&amp;lt;/font&amp;gt; перечитать его:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # service postfix reload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Конечно, надо также обеспечить, чтобы MX-записи в DNS для всех трех доменов ссылались на сервер &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;mail.example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;. Однако эта методика имеет ограниченное применение, поскольку у всех доменов – общее пространство имен: так, почта на &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;, &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.org&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; и &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.net&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; будет в конце концов сохранена в одном и том же месте. И, конечно, Ане (и всем другим получателям почты) нужна учетная запись Linux на сервере.&lt;br /&gt;
&lt;br /&gt;
Более гибкое решение – использовать так называемые «виртуальные» почтовые домены. При таком способе каждый домен имеет отдельное пространство имен, и письма для &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.com&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; и &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.net&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt; окажутся в разных хранилищах почты. Получателю также не требуется иметь системную учетную запись Linux. Но зато требуется чуть больше работы по настройке...&lt;br /&gt;
&lt;br /&gt;
Требуемые для этого строки в '''main.cf''' показаны в Листинге А ниже. Учтите, что номера строк проставлены только для удобства ссылки: в файле их нет.&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
    |Заголовок=Альтернативы&lt;br /&gt;
    |Содержание=Как всегда в Linux, существует несколько программных решений для построения почтового сервера. Для MTA вы можете использовать ''Postfix'', ''Exim'' или почтенный ''Sendmail''. ''Postfix'' – самый юный; он написан Вьетсе Венема &amp;lt;nowiki&amp;gt;[Wietse Venema]&amp;lt;/nowiki&amp;gt; в 1999 году, имеет прекрасную репутацию по безопасности и служит MTA по умолчанию во многих текущих дистрибутивах Linux. Exim был разработан в 1995 году в Кембриджском университете Филипом Хейзелом &amp;lt;nowiki&amp;gt;[Philip Hazel]&amp;lt;/nowiki&amp;gt;. ''Sendmail'' написан Эриком Оллманом &amp;lt;nowiki&amp;gt;[Eric Allman]&amp;lt;/nowiki&amp;gt; в 1983 году; много лет он тянул на себе большинство интернет-почты, и стало почти обязательным ссылаться на него, как на «почтенный», хотя у него самый непонятный файл конфигурации по эту сторону Бетельгейзе. Для MAA тоже есть выбор. Это может быть IMAP-сервер ''Cyrus'', ''Courier'', ''qpopper'', инструментарий IMAP University of Washington, Dovecot и другие. Более подробный список и сравнение почтовых серверов вы можете найти на http://en.wikipedia.org/wiki/Comparison_of_mail_servers.&lt;br /&gt;
    |Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
===ЛИСТИНГ A===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
virtual_mailbox_domains = example.com example.org example.net&lt;br /&gt;
virtual_mailbox_base = /var/spool/vmail&lt;br /&gt;
virtual_mailbox_maps = hash:/etc/Postfix/virtual_mailbox_map&lt;br /&gt;
virtual_uid_maps = static:550&lt;br /&gt;
virtual_gid_maps = static:101&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строка 1 в ''Листинге А'' содержит список доменов, которые будут поддерживаться. Их надо удалить из параметра &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;mydestination&amp;lt;/font&amp;gt;, так как они теперь будут обрабатываться с использованием «виртуального» агента доставки ''Postfix'', и «локальный» агент им больше не нужен.&lt;br /&gt;
&lt;br /&gt;
Если список доменов по-настоящему большой, вы можете предпочесть поместить его в отдельный файл, например, '''/etc/postfix/virtual_domains''', по образцу:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # list of virtual domains for postfix&lt;br /&gt;
         example.com&lt;br /&gt;
         example.net&lt;br /&gt;
         example.org&lt;br /&gt;
  # ... and lots more ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и ссылаться на этот файл через параметр &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;virtual_mailbox_domains&amp;lt;/font&amp;gt; в '''main.cf''':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  virtual_mailbox_domains = /etc/postfix/virtual_domains&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Аналогично, многие параметры в '''main.cf''' могут иметь список требуемых значений, помещенный в отдельный файл.&lt;br /&gt;
&lt;br /&gt;
Строка 2 в ''Листинге А'' задает директорию верхнего уровня, где должны сохраняться сообщения. Очевидно, надо выбрать схему, совместимую с нашими POP- и IMAP-серверами. Здесь выбрано одно из множества возможных решений.&lt;br /&gt;
&lt;br /&gt;
Создадим то, что ''Postfix'' называет «картой» – для отметки, где получатели почтовых адресов будут сохранять сообщения относительно заданного &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;virtual_mailbox_base&amp;lt;/font&amp;gt;. Я создал простую карту в файле, который назвал '''/etc/postfix/virtual_mailbox_map''':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 anna@example.com anna&lt;br /&gt;
 anna@example.net anna_smith&lt;br /&gt;
 chris@example.org cbrown&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь, например, письмо, посланное на &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;anna@example.net&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;, будет сохранено в '''/var/spool/vmail/anna_smith'''; письмо, посланное на адрес &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;chris@example.org&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;, «упадет» в '''/var/spool/vmail/cbrown''', и так далее. Заметьте, что здесь не требуется совпадения видимых снаружи имен пользователей (в нашем примере, '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna&amp;lt;/font&amp;gt;''' и '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;chris&amp;lt;/font&amp;gt;''') со внутренними именами (&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;anna_smith&amp;lt;/font&amp;gt; и &amp;lt;/font color=&amp;quot;darkred&amp;quot;&amp;gt;cbrown&amp;lt;/font&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Конвертируем этот файл в «карту», используя команду postmap:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # postmap /etc/postfix/virtual_mailbox_map&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате появится файл '''virtual_mailbox_map.db'''. Карта, в данном случае, просто вид индексированной структуры данных, ключи которой могут быть эффективно просмотрены ''Postfix''. ''Postfix'' поддерживает несколько типов «карт»; по умолчанию это обычно «хэш».&lt;br /&gt;
&lt;br /&gt;
Далее, в строке 3 ''Листинга А'', вы сообщаете ''Postfix'', где находится карта.&lt;br /&gt;
&lt;br /&gt;
''Postfix'' нуждается в отождествлении пользователя, используемом для доставки сообщения в хранилище. Возможно задание нескольких карт (&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;uid_map&amp;lt;/font&amp;gt; и &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;gid_map&amp;lt;/font&amp;gt;), определяющих отдельные отождествления для всех и каждого получателя, но мы сделаем проще и используем одну и ту же личность для всех получателей. Я создал пользователя с именем '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postmanpat&amp;lt;/font&amp;gt;''' для этой цели.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # useradd -d /var/spool/vmail -g postdrop -u 550 -m postmanpat&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отметим, что домашняя директория '''&amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postmanpat&amp;lt;/font&amp;gt;''' находится в моей выбранной директории '''virtual_ mailbox_base'''. Далее я смягчил права доступа в '''/var/spool/vmail''', чтобы Dovecot мог ей воспользоваться.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  # chmod 755 /var/spool/vmail&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нет необходимости предварительно создавать файл сохраненных сообщений для индивидуальных получателей – ''Postfix'' сделает это по требованию. Наконец, строки 4 и 5 Листинга А задают тождество пользователя и группы, которые ''Postfix'' будет использовать для помещения сообщений в хранилище. Они соответствуют ID пользователя &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postmanpat&amp;lt;/font&amp;gt; и группы &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;postdrop&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После внесения данных изменений та часть, за которую отвечает ''Postfix'', должна работать. Возвратитесь к клиентской машине и пошлите тестовое сообщение на &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;'''&amp;lt;nowiki&amp;gt;chris@example.org&amp;lt;/nowiki&amp;gt;'''&amp;lt;/font&amp;gt;. На сервере проверьте, что это сообщение появилось в '''/var/spool/vmail/cbrown'''. Если да, то доставка ''Postfix'' на виртуальные почтовые домены работает!&lt;br /&gt;
&lt;br /&gt;
На стороне ''Dovecot'' я просто изменил определение параметра &amp;lt;font color=&amp;quot;darkred&amp;quot;&amp;gt;mail_location&amp;lt;/font&amp;gt; на следующее:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  mail_location = mbox:~/mail:INBOX=/var/spool/vmail/%n&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Продолжение следует===&lt;br /&gt;
&lt;br /&gt;
Пока мы не касались аутентификации POP3 при входе в ''Dovecot''. В текущем состоянии, чтобы Dovecot заработал, вам необходимо создать очередные учетные записи Linux пользователям anna, anna_smith и cbrown, для новой аутентификации ''Dovecot''. Чтобы виртуальные домены применялись правильно, необходимо рассмотреть вопрос об аутентификации учетных записей POP3 через базу данных пользователей, не зависящую от учетных записей Linux. На данном уроке уже подпущено достаточно ежей под череп, но в следующем номере ''Linux Format'' я попытаюсь решить вопрос об аутентификации внутри почтовых систем и в ''Postfix'' и в ''Dovecot''. Пишите на [[mailto://answers@linuxformat.ru]], если у вас возникнут проблемы с вашим почтовым сервером. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Решение проблем (врезка)===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF103_68_1.png|thumb|300px|Пример использования команды telnet.]]&lt;br /&gt;
&lt;br /&gt;
Если вы не можете передать и принять почту, используя ваш почтовый сервер, попробуйте проверить следующее:&lt;br /&gt;
&lt;br /&gt;
1. На клиенте проверьте, что почтовый сервер пингуется по его IP-адресу и имени, используя команды:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # ping 192.168.0.41&lt;br /&gt;
 # ping mail.example.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
(Естественно, подставьте сюда IP-адреc вашего сервера.)&lt;br /&gt;
&lt;br /&gt;
2. На сервере проверьте, что серверы SMTP и POP слушают соединения, используя команду&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # netstat -at&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы должны увидеть LISTEN в конце информации о портах SMTP и POP3.&lt;br /&gt;
&lt;br /&gt;
3. На клиенте, попробуйте использовать telnet для соединения с портом 25 на почтовом сервере, используя команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # telnet mail.example.com 25&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы должны получить отклик с сервера типа такого:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 220 mail.example.com ESMTP Postfix&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы знакомы с SMTP-протоколом, можете вести полный SMTP-диалог вручную и по-настоящему отправить почтовое сообщение. См. экранный снимок справа с примером такого диалога.&lt;br /&gt;
&lt;br /&gt;
4. На сервере проверьте, что брандмауэр не блокирует доступ к портам 25 (SMTP) и 110 (POP3), используя команду:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # iptables -L&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы не уверены, отключите брандмауэр командой:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # itables -F&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и попробуйте снова. Не забудьте потом восстановить работоспособность брандмауэра.&lt;br /&gt;
&lt;br /&gt;
5. На сервере поищите разгадку в системных журналах почты (обычно /var/log/maillog).&lt;br /&gt;
&lt;br /&gt;
[[Категория:Учебники]]&lt;br /&gt;
[[Категория:Hardcore Linux]]&lt;br /&gt;
[[Категория:Крис Браун]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LF%D0%A592:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E</id>
		<title>LFХ92:Интepвью</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LF%D0%A592:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E"/>
				<updated>2015-06-03T16:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LFХ92:Интepвью в LXF103:Авиаторы выбирают GNU/Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF103:Авиаторы выбирают GNU/Linux]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF103:%D0%90%D0%B2%D0%B8%D0%B0%D1%82%D0%BE%D1%80%D1%8B_%D0%B2%D1%8B%D0%B1%D0%B8%D1%80%D0%B0%D1%8E%D1%82_GNU/Linux</id>
		<title>LXF103:Авиаторы выбирают GNU/Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF103:%D0%90%D0%B2%D0%B8%D0%B0%D1%82%D0%BE%D1%80%D1%8B_%D0%B2%D1%8B%D0%B1%D0%B8%D1%80%D0%B0%D1%8E%D1%82_GNU/Linux"/>
				<updated>2015-06-03T16:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LFХ92:Интepвью в LXF103:Авиаторы выбирают GNU/Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Авиаторы выбирают GNU/Linux==&lt;br /&gt;
&lt;br /&gt;
: Авиация – теория и практика полета на воздушных судах в атмосфере. Для обеспечения полетов создается Авиационная инфраструктура. Без грамотной технической поддержки особо не налетаешь. Технарей нужно готовить смолоду – именно этим и занимается '''Павел Владимирович Скребнев''' в авиаколледже уездного города Рыльска (Курская область).&lt;br /&gt;
&lt;br /&gt;
'''''Евгений М. Балдин (LXF)'': Представьтесь, пожалуйста, Павел Владимирович.'''&lt;br /&gt;
&lt;br /&gt;
'''Павел Владимирович Скребнев (ПВC)''': Я закончил Рыльский авиаколледж (http://www.ratkga.ru) в 1997 году, и остался в нем работать на должности сначала лаборанта, потом техника, и в конечном итоге заведующего лабораторией ЭВМ. Еще в бытность лаборантом,&lt;br /&gt;
мне приходилось обеспечивать проведение практических и лабораторных работ вместе с преподавателями-предметниками. После&lt;br /&gt;
окончания Московского государственного института радиотехники, электроники и автоматики (МИРЭА) в 2003 году перешел на ставку&lt;br /&gt;
преподавателя на отделении ЭВМ.&lt;br /&gt;
&lt;br /&gt;
Сейчас являюсь председателем цикловой комиссии ВТ (вычислительной техники) на отделении ЭВМ. Цикловая комиссия – это наш&lt;br /&gt;
аналог кафедры.&lt;br /&gt;
&lt;br /&gt;
Наш колледж готовит авиационных специалистов по эксплуатации и обслуживанию светотехнического оборудования аэропортов, навигационных систем, систем авиационной связи, радиоэлектронного оборудования самолетов, информационных систем управления воздушным движением, вычислительных комплексов и систем. По ряду специальностей наше учебное заведение является единственным в России.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Зачем авиатехникам может пригодиться Linux?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Современное оборудование – это сложный программно-аппаратный комплекс, функционирующий под управлением промышленных компьютеров. В качестве операционной системы все чаще стали применять Linux и QNX. Любое аппаратное и программное&lt;br /&gt;
обеспечение, используемое для управления воздушным движением,&lt;br /&gt;
обязательно проходит сертификацию. Благодаря открытости Linux и&lt;br /&gt;
QNX, проблем с сертификацией не возникает.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Когда вы впервые узнали про GNU/Linux? '''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Сложно уже называть точные даты. Почетное место «старейшины» у нас по праву занимает Александр Сергеевич Жуковский, возглавлявший отделение ЭВМ в момент его образования. &lt;br /&gt;
&lt;br /&gt;
'''Александр Сергеевич Жуковский (АСЖ)''': Есть такая аппаратура обработки радиолокационной информации (АПОИ) – «Приор».&lt;br /&gt;
Она сертифицирована для применения в гражданской авиации. Это монстр из семи компьютеров промышленного класса плюс «аппаратка» на ПЛИС (программируемых логических интегральных схемах), причем четыре из них работают под управлением MS DOS, а 3 под UNIX. Видимо, у разработчиков возникли проблемы с лицензированием, поэтому вместо коммерческих UNIX они стали использовать Linux.&lt;br /&gt;
&lt;br /&gt;
В 1999 г. я с коллегами был на курсах повышения квалификации в славном Санкт-Петербурге. Изучали как раз АПОИ. Встретил там своего выпускника Валеру Юркунса, который оказался адептом, фанатом и т.д. Linux. Он-то и подарил мне Red Hat (по-моему, 6.2). Дня три (естественно, с перерывом на работу) я его устанавливал, потому как он хотел знать о компьютере все, включая и то, что не знал я. В результате, развернуть X-Window так и не удалось. В общем, купив пару книг и поработав с командной строкой, вернулся я к знакомому Windows. Тем более что под Linux почти не было нужных мне приложений. Так что&lt;br /&gt;
первое «хождение» в Linux кончилось почти без результатов (как для пользователя), оставив адреналин от преодоления трудностей.&lt;br /&gt;
&lt;br /&gt;
Возвращение через 8 лет было кошмаром и ничего хорошего поначалу не сулило. Спустя год можно оценить итоги. В минусе: пришлось переделать все методическое обеспечение, а это очень много рутинной работы, которую в противном случае можно было бы не делать. Все&lt;br /&gt;
же в ''OpenOffice.org'' много проблем. В плюсе: познакомился с ''GIMP, Blender, Quanta'' – вполне приемлемые продукты. ''Blender'', по моему&lt;br /&gt;
мнению, даже лучше, чем ''3Dmax''. Получаю доступ к портам прямо из ''C'' без всяких API-функций. Нет вирусов. Кажется, стал более глубоко&lt;br /&gt;
понимать программно-аппаратное взаимодействие.&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Александр Сергеевич сделал самое главное – он показал, что мир значительно шире, чем нас пытался убедить Microsoft.&lt;br /&gt;
Воспитанные на ZX-Spectrum и ассемблере я и мой друг Сергей Губанов с энтузиазмом начали «ковырять» новую ОС. Это было&lt;br /&gt;
потрясающе! У нас заработала сеть и звук, мы «поставили иксы»! Первым настольным дистрибутивом был украинский Black Cat.&lt;br /&gt;
Огромное спасибо разработчикам за то, что они показали, что GNU/Linux может быть и «дружественным».&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': По какой причине вы решили начать преподавать информатику в колледже?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Не совсем информатику. Наш колледж отраслевой и выпускает авиационных специалистов. С вычислительной техникой, особенно на старших курсах, связано множество предметов. Лично я преподаю следующие дисциплины: «Операционные системы и&lt;br /&gt;
среды», «Периферийные устройства», «Управляющие системы», «Системы управления объектами УВД», «Прикладное программное обеспечение», веду практические работы по предметам «Сети», «Программирование» и практику по специальности.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Какой дистрибутив сейчас используется в колледже в качестве базового?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Так сложилось, что используется 3 дистрибутива: ASPLinux, Mandriva, Ubuntu. Почему именно эти? Выбор базового дистрибутива&lt;br /&gt;
для учебного заведения – это очень серьезный и ответственный шаг. Это дома можно ставить эксперименты. Методический материал в&lt;br /&gt;
учебном процессе строится на конкретном списке программ. Кроме того, нужно показать курсантам и преподавателям, так сказать, товар&lt;br /&gt;
лицом. Честно скажу, перед принятием решения неделю ходил – маялся, взвешивал все «за» и «против». Ведь от того, как преподнести GNU/Linux, фактически зависит дальнейшее его продвижение. А выбирать, согласитесь, было из чего. Простота установки, настройки – Mandriva, передовые технологии – Fedora, стабильность – Debian, качество – SUSE, «дружелюбность» – Ubuntu, поддержка русского&lt;br /&gt;
языка – ASPLinux, просто поддержка – ALTLinux. Gentoo, по понятным&lt;br /&gt;
причинам, не рассматривался, хотя я всегда его рекомендую тем, кто&lt;br /&gt;
хочет полностью разобраться с Linux.&lt;br /&gt;
&lt;br /&gt;
В качестве первого базового выбор был в пользу ASPLinux. Плюсы: у нас уже была коробочная версия ASPLinux 11, отечественный производитель, хорошо собираются программы из исходных текстов (спасибо Fedora), нормальная подборка приложений (правда, в версии 11.2 хуже), кодеки в комплекте и самое главное – он стоял у меня дома. Минус – после установки нужно «тщательно обработать напильником».&lt;br /&gt;
&lt;br /&gt;
Второй базовый – Mandriva Free. Плюсы: простая установка и настройка, вполне современна, дружелюбна. Минусы: очень трудно&lt;br /&gt;
установить программу не из комплекта и трудно настроить что-либо на «низком» уровне.&lt;br /&gt;
&lt;br /&gt;
Третий базовый – Ubuntu. Плюс: очень дружественна к пользователю. Минусы: пригодна только для мультимедиа и офиса.&lt;br /&gt;
&lt;br /&gt;
К сожалению, несколько раз пробовал, но сам себя не переубедил в пользу использования ALT Linux. Очень хороший дистрибутив,&lt;br /&gt;
отечественный, замечательная поддержка, но – репозиторий никуда не годится. Дело не в том, что он плохой, маленький и т.д. Недостатком&lt;br /&gt;
являются его достоинства: он постоянно обновляется, причем двоичные сборки требуют по зависимостям только последние версии пакетов. Как результат, если надо обновить один пакет, то обновляется вся система, и часто неудачно.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Каков сейчас состав компьютерного парка колледжа?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Всего в колледже около 250 компьютеров: это 8 лабораторий + компьютеры на цикловых комиссиях + АРМ преподавателей + электронная библиотека + административные службы + общежития курсантов. Почти все компьютеры связаны в вычислительную сеть.&lt;br /&gt;
«География» дистрибутивов зависит от того, кто устанавливал и где.&lt;br /&gt;
Сами понимаете, что я лично не в состоянии полностью проделать такую работу. Поэтому по учебному отделу установлен ASPLinux&lt;br /&gt;
под моим руководством (наибольшая функциональность); в электронной библиотеке и 2-м уч. корпусе, а также в учебных мастерских – Mandriva (просто и со вкусом) под руководством инженера Игоря Николаевича Халявина; в администрации – Ubuntu (установил, и работай), разворачивал программист Евгений Владимирович Бессонов.&lt;br /&gt;
&lt;br /&gt;
Microsoft Windows, по известным причинам, осталась в бухгалтерии, на радиополигоне, так как там используются спецпрограммы;&lt;br /&gt;
кроме того, в одной аудитории была сделана двойная загрузка – в ней изучают ''1С бухгалтерию'' и ''Консультант+''. Кроме того, ведь Windows&lt;br /&gt;
тоже надо показать, и привить базовые навыки по работе с ней [улыбается].&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Как производился переход?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Прежде всего, это был именно переход, а не паническое бегство. Миграция была обдумана и проходила в несколько этапов. Использовать GNU/Linux в учебном процессе я начал еще в 2004 году, когда по новому образовательному стандарту был введен предмет «операционные системы и среды». На практических работах мы изучали процесс установки, набор приложений, работу с графическими интерфейсами, пользовательские настройки.&lt;br /&gt;
На практике по специальности более углублено изучали строение системы, сетевые возможности, работу с командной строкой, администрирование.&lt;br /&gt;
&lt;br /&gt;
Естественно, после практических работ Linux с компьютеров никто не удалял (работали с двойной загрузкой), и каждый желающий, из&lt;br /&gt;
любопытства или целенаправленно, мог попробовать себя в открытой среде. Кроме того, опыт использования свободных программ имелся&lt;br /&gt;
и в окружении Windows: в частности, на компьютерах был установлен ''OpenOffice.org''. К весне 2006 г. достаточно многие уже свыклись&lt;br /&gt;
с мыслью, что GNU/Linux может полностью заменить Windows, и я сам был тому живым примером. Я нашел в сети списки аналогов программ Linux-Windows и продемонстрировал их. В результате созрело решение запустить осенью одну аудиторию полностью под GNU/Linux&lt;br /&gt;
и посмотреть, что из этого выйдет.&lt;br /&gt;
&lt;br /&gt;
Как говорится, инициатива наказуема, поэтому мне первому и пришлось протаптывать дорожку. Решено было начать с самого легкого – информатики. Попутно составлялся методический материал, отмечались наиболее частые ошибки и затруднения. По окончании семестра был подведен итог: GNU/Linux полностью удовлетворяет нужды образовательного процесса. Решено было в период зимних каникул перевести на Linux и остальные классы. Попутно было проведено несколько занятий с преподавателями, где продемонстрировались возможности новой ОС, аналоги программ, разъяснены причины смены ОС. Конечно, реакция была неоднозначна. Естественно, каждый представил тот объем методической работы, что нужно будет переделать. Но! Часть работы была уже проведена, наработки уже были. Были намечены пути.&lt;br /&gt;
&lt;br /&gt;
Когда курсанты пришли с каникул в начале 2007 года, то они обнаружили на компьютерах новое ПО. Никаких с этим проблем не возникло. Некоторые даже не заметили, что сменилась ОС. На самом деле, ребята довольно быстро адаптировались, и нам даже пришлось повысить меры по защите сети!&lt;br /&gt;
&lt;br /&gt;
Когда по нашему городу прокатилась волна проверок лицензионности ПО, то нас она тоже не обошла стороной. И вот тут окончательно стало ясно, что курс нами был взят правильный, а средства верны. Даже выбор первого основного дистрибутива был сделан верно! А дело вот в чем. При проверке ПО нам пришлось доказывать, что оно не контрафактное. Можно ли это доказать, показывая диски, подписанные маркером? Мы установили ASPLinux Deluxe, у нас была коробочная версия, покупка которой оформлена через бухгалтерию, и в комплекте имелось уведомление о наших правах. Кроме того, сама&lt;br /&gt;
демонстрация коробки оказалась весьма эффективной. В общем, был составлен акт, что контрафактного ПО не обнаружено! Была и еще&lt;br /&gt;
более глубокая проверка, которая лишь подтвердила заключение предыдущей. Я думаю, что это было серьезное испытание не только для&lt;br /&gt;
нашего колледжа, но и для GNU/Linux в учреждениях вообще.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Какие программные продукты используются для обучения?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Кроме стандартного набора, обеспечиваемого практически любым дистрибутивом, пришлось разыскивать и самостоятельно&lt;br /&gt;
устанавливать ''KiCAD'' – САПР разработки печатных плат, ''Qucs'' – моделирование электронных схем, ''Lazarus'' – IDE для ''Free Pascal'', ''QCAD'' –&lt;br /&gt;
САПР для чертежников, ''Maxima'' – математические расчеты, ''iTest'' – тестирование знаний. Единственное, чего нам очень не хватает, так&lt;br /&gt;
это программы распознавания текста, хотя есть ''FineReader 8'' под Linux ['''видимо, речь об SDK, – прим. ред.'''], но он платный и закрытый. Надеемся, что ''CuneiForm'' все же портируют в Linux. Также пока не нашли достойного редактора Flash-анимации.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': А по каким программам и учебникам работаете?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': В основном, вся учебная литература собственного производства. Дело в том, что за многие годы преподавания дисциплин было&lt;br /&gt;
изучено большое количество самой разной литературы, и выбрано самое лучшее, из того, что нам подходит.&lt;br /&gt;
&lt;br /&gt;
Конечно, в Интернете есть множество информационных порталов, но использовать их напрямую нельзя. Необходима методическая обработка, адаптация под программу обучения. Сейчас основная работа направлена на переработку имеющегося материала, обновление, дополнение.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Есть ли какие-либо проблемы c использованием GNU/Linux?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Я не вижу каких-то больших проблем. Информатика – это наука об обработке и преобразовании информации. И предмет «информатика» был введен в школьную программу еще до появления там компьютеров. GNU/Linux – это не просто инструмент для «запуска игр» и&lt;br /&gt;
«набора текста». На базе этой ОС можно решить практически любую задачу. Необходимо только просвещение.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': При нашем первом контакте вы упомянули олимпиады (гуманитарно-технические). Что имелось в виду?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Уже несколько лет среди учебных заведений гражданской авиации России, Украины и Беларуси проводятся отраслевые&lt;br /&gt;
гуманитарно-технические олимпиады. Участники соревнуются по истории авиации, по спорту, по работе на авиационных тренажерах,&lt;br /&gt;
в использовании ПК. Также на ПК проводится тестирование знаний по основным спецдисциплинам. В прошлом году олимпиада проводилась с использованием только открытого ПО. Участникам давали 2 тренировочных дня, в течение которых они привыкали к работе с&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;
'''''LXF'': Как реагируют на GNU/Linux курсанты?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Давайте спросим у них самих.&lt;br /&gt;
&lt;br /&gt;
'''Максим Ефимов, 252 гр.''': Операционная система Linux, установленная на большинстве компьютеров РАТКГА, имеет ряд отличий от&lt;br /&gt;
Windows, из-за которых у пользователя, работающего долгое время под Windows, могут возникнуть сложности. В остальном – это прекрасная операционная система!&lt;br /&gt;
&lt;br /&gt;
'''Никита Долженко, 252 гр.''': Мое отношение к операционным системам сугубо личное. Операционная система Linux, представленная в большом ассортименте, является одной из самых лучших ОС современного поколения, имеет в наличии огромное количество разнообразного и разнопланового софта, который обновляется и совершенствуется чуть ли не каждый день, по принципу «одна голова – хорошо, а две лучше». Является одной из наилучших ОС, подходящих для средне-специальных и высших учебных заведений, занимающихся образованием молодежи, так как на ОС Linux можно выполнить почти любую поставленную задачу в плане учебы и человеческих потребностей. А если сказать просто: ОС Linux мне нравится своим графическим интерфейсом и простотой&lt;br /&gt;
использования.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Кто-нибудь из курсантов использует GNU/Linux дома или в общежитии?'''&lt;br /&gt;
&lt;br /&gt;
'''Петр Евмененко, 351 уч. гр.''': О Linux я узнал от своего друга, которому теперь очень благодарен. Работа с компьютером для&lt;br /&gt;
меня является обязательным занятием в жизни, а без Linux достичь такого ее уровня уже не получится. Я благополучно мигрировал на&lt;br /&gt;
новую ОС еще до того, как осознал, что получу. И теперь возвращаться к старым стандартам работы с компьютером я не могу. В&lt;br /&gt;
Linux я выполняю как учебные, так и любые другие задачи. В общем, он полностью выполняет роль домашней операционной системы во&lt;br /&gt;
всем многообразии задач, возникающих у студента. Это и написание рефератов, и выполнение практических работ, программирование, и,&lt;br /&gt;
конечно, так как это домашний компьютер, он используется и для развлечения (фильмы, музыка, игры), общения, да всего и не перечислишь. Можно сказать, что без Linux я буду как без компьютера вообще.&lt;br /&gt;
&lt;br /&gt;
'''Константин Новиков, 351 уч. гр.''': Почему я использую Linux? Во-первых, это большое количество программ для различных нужд, не требующих регистрации, следовательно, отпадает необходимость искать в Интернете ключи и патчи. Более того, все эти программы&lt;br /&gt;
находятся на диске с дистрибутивом, то есть их не нужно где-то искать. Во-вторых, следует отметить высокую стабильность системы, в отличие от печально известного своими неполадками Windows. Даже если произойдет сбой в приложении, то оно аварийно завершится, никак не&lt;br /&gt;
повлияв на стабильность системы. В-третьих, следует отметить простоту настройки Linux, так как файлы конфигурации хранятся в одном&lt;br /&gt;
месте. В-четвертых – это большое количество документации, также поставляющейся вместе с дистрибутивом, в которой имеется подробное описание всех команд и возможностей данной ОС. Многие жалуются на то, что данные тексты написаны на английском языке, что мне&lt;br /&gt;
абсолютно непонятно, так как английский язык сейчас преподают во всех учебных заведениях, да и в Интернете этой документации «пруд&lt;br /&gt;
пруди». Малая распространенность Linux на домашних компьютерах связана, прежде всего, с его принципиальным отличием от Windows&lt;br /&gt;
в плане графического интерфейса, устройств, необходимости иметь как минимум две учетные записи и т.д. Многие дистрибутивы (Ubuntu,&lt;br /&gt;
Mandriva, OpenSUSE) ориентированы на начинающих пользователей и предоставляют доступ практически ко всем настройкам из графического интерфейса, что также следует отметить как их достоинство.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Как реагируют на эти нововведения родители?'''&lt;br /&gt;
&lt;br /&gt;
'''Константин''': Они не знают, что такое операционная система [улыбается].&lt;br /&gt;
&lt;br /&gt;
'''Петр''': Мои родственники тоже пользуются благами Linux. Хотя, наверное, это потому, что их требования сводятся к насущному (разложить пасьянс, набрать текст, посмотреть видео) и никакой разницы, какую ОС использовать, нет. Каждый найдет здесь то, что он искал.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Как относятся к вашей деятельности другие преподаватели? Ведь не все имеют отношение к информационным технологиям, да и с возрастом сложнее переучиваться.'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Да, действительно, возрастной состав наших преподавателей внушает уважение и почтение. По большей части – это наши ветераны. Я не ошибусь, если скажу, что все преподаватели волей-неволей вынуждены использовать вычислительную технику в своей преподавательской деятельности. Прежде всего это подготовка учебных материалов и документации. С этим особых трудностей не возникает.&lt;br /&gt;
Конечно, приходится оказывать некоторую помощь, но не больше, чем в случае Windows!&lt;br /&gt;
&lt;br /&gt;
Показательный пример: заведующий отделением «Техническая эксплуатация транспортного радиоэлектронного оборудования»&lt;br /&gt;
Владимир Валентинович Артемов, не имея никаких навыков по установке операционных систем, самостоятельно без посторонней&lt;br /&gt;
помощи установил на 2-х компьютерах у себя на цикловой комиссии ASPLinux 11.2 и настроил печать на принтере. После всех этих&lt;br /&gt;
упражнений Владимир Валентинович утверждает, что GNU/Linux его полностью устраивает. Единственно, в чем была моя помощь – это&lt;br /&gt;
настройка сети. Может, не так страшен GNU/Linux в настройке, как о нем думают?&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Было упомянуто, что есть значительное количество учебного материала. К нему можно получить доступ со стороны?'''&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;
случае.&lt;br /&gt;
&lt;br /&gt;
Что касается состава материала – это слайд-лекции, практические и лабораторные работы по предметам, методические пособия, конспекты лекций, программы обучения, тематические планы, программы практик, тесты, карточки индивидуальных опросов, экзаменационные&lt;br /&gt;
материалы, наглядные пособия, методический материал для заочного отделения.&lt;br /&gt;
&lt;br /&gt;
Вторая проблема – материал хоть и отработан, но еще не оформлен подобающим образом. Сами понимаете, что время – наш самый главный враг [улыбается].&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Помогает ли вам сетевое сообщество?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Сетевое сообщество учителей и преподавателей еще не сформировалось. Помощь же сообщества пользователей GNU/Linux опосредованная. С другой стороны, самим существованием GNU/Linux мы обязаны именно сообществу!&lt;br /&gt;
На мой взгляд, большую помощь сообщество оказывает в составлении документации и переводе. Так же одна из самых важных заслуг&lt;br /&gt;
сообщества заключается в просвещении.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Что вы планируете делать дальше?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Наш колледж сейчас переживает очередную информационную структурную реорганизацию. Прокладываются оптические линии, устраивается нормальная серверная. Предстоит большая работа по вводу сервера на основе Novell OES 2. Мне лично хочется запустить вычислительный кластер и оценить его&lt;br /&gt;
производительность с помощью LinPack. Есть мысли о подключении к городской сети, о создании единой информационной системы. Было бы время…&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Чего вам не хватает на этом пути?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': К сожалению, активность сообщества в нашем регионе очень мала. Мало литературы не о GNU/Linux вообще, а о конкретных сферах применения, а та, что есть, стоит очень дорого. &lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Чего бы вы всем пожелали, чтобы продвинуть GNU/Linux в образование?'''&lt;br /&gt;
&lt;br /&gt;
'''ПВC''': Не бояться начинать. Оно того стоит. Консерватизм в обучении не должен занимать основные позиции. Не надо ждать, пока&lt;br /&gt;
сверху спустят бумажку (а спустят обязательно). Нужно быть уже готовым. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%97a%D0%BFyc%D0%BA_%D0%BFo_ce%D1%82%D0%B8</id>
		<title>LХF100-101:Зaпycк пo ceти</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%97a%D0%BFyc%D0%BA_%D0%BFo_ce%D1%82%D0%B8"/>
				<updated>2015-06-03T16:56:48Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Зaпycк пo ceти в LXF108:Дырки в паутине поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF108:Дырки в паутине]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF108:%D0%94%D1%8B%D1%80%D0%BA%D0%B8_%D0%B2_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D0%B5</id>
		<title>LXF108:Дырки в паутине</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF108:%D0%94%D1%8B%D1%80%D0%BA%D0%B8_%D0%B2_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D0%B5"/>
				<updated>2015-06-03T16:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Зaпycк пo ceти в LXF108:Дырки в паутине поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Дырки в паутине ==&lt;br /&gt;
: ''Утечка ресурсов — в первую очередь, памяти — одна из проблем современных сложных приложений. '''Андрей Кузьменко''' покажет, как избежать ее в ваших программах.''&lt;br /&gt;
&lt;br /&gt;
Можно смело считать 2007 год переломным моментом&lt;br /&gt;
в переходе на многоядерные процессоры и активном&lt;br /&gt;
внедрении многопоточного программирования в повседневную практику. Компании Intel и AMD обозначили производство&lt;br /&gt;
многоядерных процессоров как основное направление своего развития на ближайшие несколько лет. Покупая современный ноутбук&lt;br /&gt;
или ПК, вы обязательно увидите шильдик Core2Duo или Athlon X2. В&lt;br /&gt;
текущем году производители чипов уже делают упор на четырехъядерные процессоры. Очевидно, что производители ПО должны адекватно реагировать на эти изменения, выпуская продукты, задействующие все преимущества новых технологий. А на чем они пишутся?&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Мы про это уже писали&lt;br /&gt;
|Содержание=Если вы хотите&lt;br /&gt;
узнать больше&lt;br /&gt;
о программировании с использованием Pthreads,&lt;br /&gt;
обратитесь к&lt;br /&gt;
нашим учебникам,&lt;br /&gt;
опубликованным&lt;br /&gt;
в [[LXF86:Unix API|LXF86]]-[[LXF87-88:Unix API|87/88]].&lt;br /&gt;
|Ширина=100px}}&lt;br /&gt;
В языке C++, в отличие, например, от Java, отсутствует встроенная поддержка многопоточного программирования. Иными словами, с помощью «голого» C++ нельзя создавать соответствующие&lt;br /&gt;
стандарту языка многопоточные приложения. Разумеется, данная&lt;br /&gt;
функциональность все же доступна в виде библиотек, например,&lt;br /&gt;
Pthreads (POSIX Threads), особенной популярной в мире Unix. Кроме&lt;br /&gt;
нее, разработчик может использовать библиотеку Boost (http://www.boost.org) или ThreadWeaver (http://api.kde.org). Коммерческие Unix-системы,&lt;br /&gt;
например, Sun Solaris, предлагают собственные библиотеки многопоточного программирования.&lt;br /&gt;
&lt;br /&gt;
На данном уроке мы рассмотрим некоторые проблемы, возникающие при написании программ на C++ с использованием библиотеки Pthreads. Наряду со встроенными базовыми типами (int,&lt;br /&gt;
char, double) в функциях работы с потоками могут использоваться&lt;br /&gt;
объекты классов. Вот тут-то нас и подстерегают проблемы и неожиданности, которые мы сегодня обсудим. Кроме этого, мы оценим&lt;br /&gt;
работу многопоточных программ, написанных на C++ и Pthreads, в&lt;br /&gt;
различных Linux-системах.&lt;br /&gt;
&lt;br /&gt;
=== И снова классы… ===&lt;br /&gt;
Одной из серьезных проблем языка C++ (настолько серьезной,&lt;br /&gt;
что иные компании создают целые платформы со сборкой мусора, лишь бы с нею не сталкиваться) является утечка ресурсов. Это&lt;br /&gt;
может быть память, выделенная с помощью оператора new, файловые дескрипторы, сетевые сокеты, мьютексы. Для освобождения&lt;br /&gt;
ресурсов, используемых объектом, в C++ предусмотрены специальные методы — деструкторы. Задача программиста — правильно&lt;br /&gt;
написать деструктор и убедиться в том, что в программе происходит&lt;br /&gt;
его вызов. Только так можно гарантировать, что ресурсы будут возвращены системе.&lt;br /&gt;
&lt;br /&gt;
Во всех тестах, описываемых в этой статье, будет использоваться класс checker, объявленный в файле checker.hpp. Вот он:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;class checker{&lt;br /&gt;
 private: string name;&lt;br /&gt;
 public:&lt;br /&gt;
 explicit checker(string s) ;&lt;br /&gt;
 ~checker( );&lt;br /&gt;
 void calc(long N);&lt;br /&gt;
 void say_hello(void);&lt;br /&gt;
};&amp;lt;/source&amp;gt;&lt;br /&gt;
Класс обладает «говорящими» конструктором и деструктором,&lt;br /&gt;
метод calc() имитирует длительную по времени расчетную задачу, а&lt;br /&gt;
функция say_hello() выводит сообщение на консоль.&lt;br /&gt;
&lt;br /&gt;
=== С вещами на выход! ===&lt;br /&gt;
Выполнение потоковой функции может быть прервано по трем&lt;br /&gt;
причинам:&lt;br /&gt;
# В результате «естественного завершения» оператором return;&lt;br /&gt;
# В результате вызова функции pthread_exit();&lt;br /&gt;
# В результате аннулирования другим потоком.&lt;br /&gt;
Особый интерес для нас будет представлять вызов деструкторов&lt;br /&gt;
объектов в случаях 2 и 3.&lt;br /&gt;
&lt;br /&gt;
В документе The Open Group Base Specifications Issue 6 IEEE Std&lt;br /&gt;
1003.1, 2004 Edition в разделе, посвященном функции pthread_exit(),&lt;br /&gt;
по этому поводу говорится следующее [здесь и далее перевод автора]: «Функция void pthread_exit(void *value_ptr) завершает вызывающий поток и делает значение value_ptr доступным для успешного присоединения к завершающему потоку. Любые обработчики&lt;br /&gt;
отмены, помещенные в стек, но еще не извлеченные из него, будут&lt;br /&gt;
извлечены в порядке, обратном по отношению к порядку помещения в стек, а после выполнены. Если потоку принадлежат данные, то&lt;br /&gt;
после выполнения всех обработчиков отмены будут вызваны соответствующие функции деструкторов, при этом порядок их вызова&lt;br /&gt;
не определен. При завершении потока ресурсы процесса, включая&lt;br /&gt;
мьютексы и дескрипторы файлов, не освобождаются, и не выполняются никакие восстановительные действия уровня процесса, включая всевозможные вызовы любых функций atexit()». То есть, если&lt;br /&gt;
объект в потоковой функции представляет собой локальную переменную с классом памяти auto, то после вызова pthread_exit() для&lt;br /&gt;
него должен быть автоматически выполнен деструктор. Однако, как&lt;br /&gt;
показывает практика, бывают случаи, когда этого не происходит.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим следующую программу:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void* task1(void *X) {&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Start task_1!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 checker P(&amp;quot;First&amp;quot;); P.calc(5);&lt;br /&gt;
 pthread_exit(NULL);&lt;br /&gt;
 return 0;&lt;br /&gt;
}&lt;br /&gt;
void* task2(void *X) {&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Start task_2!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 checker Q(&amp;quot;Second&amp;quot;); Q.calc(8);&lt;br /&gt;
 return 0;&lt;br /&gt;
}&lt;br /&gt;
int main(void){&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Start test #1!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 pthread_t threadA, threadB;&lt;br /&gt;
 pthread_create(&amp;amp;threadA, NULL, task1, NULL);&lt;br /&gt;
 pthread_detach(threadA);&lt;br /&gt;
 pthread_create(&amp;amp;threadB, NULL, task2, NULL);&lt;br /&gt;
 pthread_detach(threadB);&lt;br /&gt;
 pthread_exit(NULL);&lt;br /&gt;
 return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Здесь объявлены две потоковых функции: task1() и task2(). В&lt;br /&gt;
качестве элемента данных в каждой из них используется объект&lt;br /&gt;
класса checker, выделенный в стеке. Функция task1() завершается&lt;br /&gt;
принудительно с помощью pthread_exit(), а task2() выходит «естественным образом» через return 0. При этом потоки создаются&lt;br /&gt;
как открепленные, то есть при их уничтожении ресурсы, которые они&lt;br /&gt;
использовали, сразу же возвращаются системе.&lt;br /&gt;
Рассмотрим результат работы программы в различных дистрибутивах Linux. Например, в SLAX 6.0.3 вывод на консоль будет таким:&lt;br /&gt;
&amp;lt;pre&amp;gt;Start test #1!&lt;br /&gt;
Start task_1!&lt;br /&gt;
Constructor done! Name:First&lt;br /&gt;
Start task_2!&lt;br /&gt;
Constructor done! Name:Second&lt;br /&gt;
Destructor done! Name:First&lt;br /&gt;
Destructor done! Name:Second&amp;lt;/pre&amp;gt;&lt;br /&gt;
А вот что получается в ALT Linux 3.0.4:&lt;br /&gt;
&amp;lt;pre&amp;gt;Start test #1!&lt;br /&gt;
Start task_1!&lt;br /&gt;
Constructor done! Name:First&lt;br /&gt;
Start task_2!&lt;br /&gt;
Constructor done! Name:Second&lt;br /&gt;
Destructor done! Name:Second&amp;lt;/pre&amp;gt;&lt;br /&gt;
Видите? Деструктор объекта из потоковой функции task1()&lt;br /&gt;
вызван не был! Конечно, 3.0.4 — не самая актуальная версия данного дистрибутива, но, как мы увидим далее, аналогичные проблемы&lt;br /&gt;
имеют место и в более современных ОС.&lt;br /&gt;
&lt;br /&gt;
=== Поел — убери за собой ===&lt;br /&gt;
Очень часто при завершении потока бывает необходимо выполнить некоторые заключительные операции: освободить память,&lt;br /&gt;
закрыть файлы, снять блокировки с разделяемых переменных и&lt;br /&gt;
т.п. Желательно, чтобы эти действия выполнялись единообразно,&lt;br /&gt;
как для стандартного завершения потоковой функции оператором return, так и при аннулировании другим потоком. Библиотека&lt;br /&gt;
Pthreads предоставляет для этого возможность, называемую «стеком очистительно-восстановительных операций». Как она работает? С каждым потоком, имеющимся в программе, связывается&lt;br /&gt;
стек очистительно-восстановительных операций, который содержит указатели на функции, вызываемые во время аннулирования&lt;br /&gt;
(завершения) потока. Для работы с данным стеком используются&lt;br /&gt;
две функции (или макроса):&lt;br /&gt;
* pthread_cleanup_push() Принимает в качестве параметров указатель на помещаемую в стек функцию и передаваемый ей аргумент;&lt;br /&gt;
* pthread_cleanup_pop() Принимает в качестве параметра целочисленное значение и извлекает завершающую функцию с вершины стека. Если аргумент отличен от нуля, завершающая функция выполняется.&lt;br /&gt;
&lt;br /&gt;
Давайте рассмотрим еще один пример. Здесь мы определяем&lt;br /&gt;
потоковую функцию, которая в зависимости от значения параметра,&lt;br /&gt;
заданного пользователем, завершается либо «обычным образом»,&lt;br /&gt;
либо вызовом pthread_exit():&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void* task1(void *X){&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Start test thread!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 checker *Z = new checker(&amp;quot;agent&amp;quot;);&lt;br /&gt;
 pthread_cleanup_push(del_ptr_checker, Z);&lt;br /&gt;
 int *counter = static_cast&amp;lt;int*&amp;gt;(X);&lt;br /&gt;
 for(int i=0; i&amp;lt;(*counter); ++i)&lt;br /&gt;
 {&lt;br /&gt;
  if(i==1000) pthread_exit(NULL);&lt;br /&gt;
 }&lt;br /&gt;
 pthread_cleanup_pop(1);&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Thread go boom!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Обратите внимание, что в качестве элемента данных теперь&lt;br /&gt;
используется экземпляр класса checker, расположенный в динамической памяти. Для ее освобождения была написана функция del_ptr_checker(), указатель на которую помещается в стек&lt;br /&gt;
очистительно-восстановительных операций. Мы вызываем деструктор объекта при помощи pthread_cleanup_pop(1) — кажется, это&lt;br /&gt;
должно гарантировать выполнение очистительных действий вне&lt;br /&gt;
зависимости от способа завершения потока.&lt;br /&gt;
Функция del_ptr_checker() сама по себе довольно проста:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void del_ptr_checker(void *X){&lt;br /&gt;
checker *del = static_cast&amp;lt;checker*&amp;gt;(X);&lt;br /&gt;
std::cout&amp;lt;&amp;lt;&amp;quot; #-&amp;gt; START del_ptr_checker!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
delete del;&lt;br /&gt;
del = 0;&lt;br /&gt;
std::cout&amp;lt;&amp;lt;&amp;quot; #-&amp;gt; END del_ptr_checker!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Мы приводим переданный указатель к типу checker * и вызываем оператор delete для освобождения памяти. del_ptr_checker()&lt;br /&gt;
определена в файле helper.hpp. Функция main() для нашего примера&lt;br /&gt;
выглядит так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;int main(void)&lt;br /&gt;
{&lt;br /&gt;
std::cout&amp;lt;&amp;lt;&amp;quot; START TEST #2!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
int N=0;&lt;br /&gt;
std::cout&amp;lt;&amp;lt;&amp;quot; Enter N:&amp;quot;; std::cin&amp;gt;&amp;gt;N;&lt;br /&gt;
pthread_t threadA;&lt;br /&gt;
pthread_create(&amp;amp;threadA, NULL, task1, &amp;amp;N);&lt;br /&gt;
pthread_detach(threadA);&lt;br /&gt;
std::cout&amp;lt;&amp;lt;&amp;quot; End MAIN&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приведу результаты выполнения двух тестов в SLAX 6.0.3:&lt;br /&gt;
&amp;lt;pre&amp;gt;START TEST #2!&lt;br /&gt;
Enter N:222&lt;br /&gt;
Start test thread!&lt;br /&gt;
Constructor done! Name:agent&lt;br /&gt;
#-&amp;gt; START del_ptr_checker!&lt;br /&gt;
Destructor done! Name:agent&lt;br /&gt;
#-&amp;gt; END del_ptr_checker!&lt;br /&gt;
Thread go boom!&lt;br /&gt;
End MAIN&lt;br /&gt;
START TEST #2!&lt;br /&gt;
Enter N:4589&lt;br /&gt;
Start test thread!&lt;br /&gt;
Constructor done! Name:agent&lt;br /&gt;
#-&amp;gt; START del_ptr_checker!&lt;br /&gt;
Destructor done! Name:agent&lt;br /&gt;
#-&amp;gt; END del_ptr_checker!&lt;br /&gt;
End MAIN&amp;lt;/pre&amp;gt;&lt;br /&gt;
Как мы видим, функция del_ptr_checker() вызывается независимо от значения параметра N, задаваемого пользователем, и динамическая память, занимаемая объектом класса checker, всегда корректно освобождается.&lt;br /&gt;
А вот что происходит в OpenSUSE 10.1:&lt;br /&gt;
&amp;lt;pre&amp;gt;linux@linux:~/super&amp;gt; ./test_2&lt;br /&gt;
Enter N:654&lt;br /&gt;
End MAIN&lt;br /&gt;
linux@linux:~/super&amp;gt; ./test_2&lt;br /&gt;
Enter N:8888&lt;br /&gt;
End MAIN&lt;br /&gt;
linux@linux:~/super&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Любопытно, но судя по выводу на консоль, поток, использующий&lt;br /&gt;
динамическую переменную класса checker, даже не создается, не говоря уже о вызове деструктора для объекта. Очень интересный результат!&lt;br /&gt;
Кстати, аналогичное поведение наблюдается и в Mpentoo Linux 2006.1.&lt;br /&gt;
&lt;br /&gt;
=== Я тебя породил… ===&lt;br /&gt;
Бывают ситуации, когда одному потоку нужно завершить другой:&lt;br /&gt;
это может делаться при организации управления программой&lt;br /&gt;
или для экономии ограниченных ресурсов. В библиотеке Pthreads&lt;br /&gt;
для этих целей предназначена функция pthread_cancel(). В качестве параметра она принимает идентификатор потоковой функции, которую надо завершить, и возвращает 0 в случае успешного выполнения. В уже упоминавшемся документе The Open Group&lt;br /&gt;
Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition в разделе,&lt;br /&gt;
описывающем функцию pthread_cancel(), говорится: «Функция&lt;br /&gt;
pthread_cancel() создает запрос на отмену потока. Когда он будет&lt;br /&gt;
реализован, зависит от текущего состояния потока и его типа. При&lt;br /&gt;
отмене потока должны быть вызваны обработчики, которые выполнят связанные с отменой подготовительные действия. По завершению последнего обработчика должны быть вызваны деструкторы&lt;br /&gt;
данных, используемых потоком».&lt;br /&gt;
&lt;br /&gt;
Посмотрим, что же действительно происходит в данной ситуации, с помощью следующей простой программы:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void *task1(void *X){&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; Start thread!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 checker Q(&amp;quot;spy&amp;quot;);&lt;br /&gt;
 checker *Z = new checker(&amp;quot;agent&amp;quot;);&lt;br /&gt;
 pthread_cleanup_push(del_ptr_checker, Z);&lt;br /&gt;
 pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; @-&amp;gt; Hello, Threads!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 for(int i=0; i&amp;lt;5; ++i)&lt;br /&gt;
 {&lt;br /&gt;
  Z-&amp;gt;say_hello( );&lt;br /&gt;
  sleep(1);&lt;br /&gt;
 }&lt;br /&gt;
 pthread_testcancel();&lt;br /&gt;
 pthread_cleanup_pop(1);&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; @-&amp;gt; Logical End of THREAD function&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
}&lt;br /&gt;
int main(int argc, char * argv[]){&lt;br /&gt;
 cout&amp;lt;&amp;lt;&amp;quot; Start test #3!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 int ret;&lt;br /&gt;
 pthread_t thread;&lt;br /&gt;
 pthread_create(&amp;amp;thread, NULL, task1, NULL);&lt;br /&gt;
 ret = pthread_cancel(thread);&lt;br /&gt;
 if(ret==0)&lt;br /&gt;
 {&lt;br /&gt;
  std::cout&amp;lt;&amp;lt;&amp;quot; $$$ Thread CANCEL OK!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 }&lt;br /&gt;
 pthread_join(thread, NULL);&lt;br /&gt;
 std::cout&amp;lt;&amp;lt;&amp;quot; $$$ The thread go boom!&amp;quot;&amp;lt;&amp;lt;std::endl;&lt;br /&gt;
 return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
В качестве элемента данных потоковая функция task1() использует&lt;br /&gt;
два объекта класса checker: один расположен в динамической памяти,&lt;br /&gt;
второй имеет класс auto. Для уничтожения первого экземпляра мы&lt;br /&gt;
опять используем стек очистительно-восстановительных операций.&lt;br /&gt;
Вызов pthread_setcancelstate() разрешает аннулирование нашего потока другим. Функция pthread_testcancel() проверяет наличие необработанных запросов на уничтожение. Если они есть, процесс аннулирования активизируется в точке вызова pthread_testcancel(). Обратите внимание, что в потоковой функции не используются разделяемые переменные и не происходит вызова системных функций (кроме вывода&lt;br /&gt;
сообщений на консоль), что обеспечивает ее безопасное прекращение.&lt;br /&gt;
&lt;br /&gt;
Результат выполнения тестовой программы в SLAX 6.0.3 таков:&lt;br /&gt;
&amp;lt;pre&amp;gt;Start test #3!&lt;br /&gt;
Start thread!&lt;br /&gt;
Constructor done! Name:spy&lt;br /&gt;
Constructor done! Name:agent&lt;br /&gt;
@-&amp;gt; Hello, Threads!&lt;br /&gt;
Hello from cheker!&lt;br /&gt;
#-&amp;gt; START del_ptr_checker!&lt;br /&gt;
Destructor done! Name:agent&lt;br /&gt;
#-&amp;gt; END del_ptr_checker!&lt;br /&gt;
Destructor done! Name:spy&lt;br /&gt;
$$$ Thread CANCEL OK!&lt;br /&gt;
$$$ The thread go boom!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А вот вывод в системе Mpentoo 2006.1:&lt;br /&gt;
&amp;lt;pre&amp;gt;Start test #3!&lt;br /&gt;
$$$ Thread CANCEL OK!&lt;br /&gt;
Start thread!&lt;br /&gt;
$$$ The thread go boom!&amp;lt;/pre&amp;gt;&lt;br /&gt;
Мы видим, что работа потоковой функции, судя по выводу на&lt;br /&gt;
консоль, завершилась раньше ее начала. При этом объекты класса&lt;br /&gt;
checker в потоковой функции не создаются.&lt;br /&gt;
&lt;br /&gt;
Давайте проанализируем полученные результаты: для удобства&lt;br /&gt;
они сведены в таблицу. Ситуации, отмеченные знаком ?, очевидно,&lt;br /&gt;
нуждаются в комментариях.&lt;br /&gt;
* Тест № 1. При запуске программы в OpenSUSE 10.1 наблюдается порядок вызова деструкторов, отличный от всех других систем, получивших +. Однако все деструкторы вызываются, и утечки памяти не происходит.&lt;br /&gt;
* Тест № 2. В двух системах, отмеченных ?, наблюдалась неустойчивая работа теста. Она проявлялась в том, что в одном случае результат теста был «правильным», и вывод на консоль полностью соответствовал ожидаемому, а в другом случае наблюдалась проблема с запуском потоковой функции.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:white;color:black;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+ Сводная таблица результатов тестирования&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| №&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| Операционная система&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| Номер теста&lt;br /&gt;
|-&lt;br /&gt;
!1 || 2|| 3&lt;br /&gt;
|-&lt;br /&gt;
!1&lt;br /&gt;
|&lt;br /&gt;
; Mandriva 2008 KDE LiveCD&lt;br /&gt;
: Ядро: 2.6.22&lt;br /&gt;
: GCC: 4.2.2*&lt;br /&gt;
: Glibc: 2.6.1&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.9&lt;br /&gt;
| + ||?|| +&lt;br /&gt;
|-&lt;br /&gt;
!2&lt;br /&gt;
| &lt;br /&gt;
; Fedora 8 LiveCD&lt;br /&gt;
: Ядро: 2.6.23&lt;br /&gt;
: GCC: 4.1.2*&lt;br /&gt;
: Glibc: 2.7&lt;br /&gt;
: Libstdc++: 6.0.8&lt;br /&gt;
| + || X|| +&lt;br /&gt;
|-&lt;br /&gt;
!3&lt;br /&gt;
| &lt;br /&gt;
; ASP Linux 11 LiveCD&lt;br /&gt;
: Ядро: 2.6.14&lt;br /&gt;
: GCC: 4.0.2&lt;br /&gt;
: Glibc: 2.3.5&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.7&lt;br /&gt;
| + || X|| X&lt;br /&gt;
|-&lt;br /&gt;
!4&lt;br /&gt;
| &lt;br /&gt;
; Knoppix 5.3.1 LiveDVD&lt;br /&gt;
: Ядро: 2.6.24&lt;br /&gt;
: GCC: 4.2.3&lt;br /&gt;
: Glibc: 2.7&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.10&lt;br /&gt;
| + || +|| +&lt;br /&gt;
|-&lt;br /&gt;
!5&lt;br /&gt;
| &lt;br /&gt;
; SLAX 6.0.3 LiveCD&lt;br /&gt;
: Ядро: 2.6.24&lt;br /&gt;
: GCC: 4.2.3&lt;br /&gt;
: Glibc: 2.7&lt;br /&gt;
: Libstdc++: 6.0.8 / 6.0.9&lt;br /&gt;
| +|| +|| +&lt;br /&gt;
|-&lt;br /&gt;
!6&lt;br /&gt;
| &lt;br /&gt;
; Ubuntu 8.0.4 LiveDVD&lt;br /&gt;
: Ядро: 2.6.24&lt;br /&gt;
: GCC: 4.2.3&lt;br /&gt;
: Glibc: 2.7&lt;br /&gt;
: Libstdc++: 6.0.9&lt;br /&gt;
| + || +|| +&lt;br /&gt;
|-&lt;br /&gt;
!7&lt;br /&gt;
| &lt;br /&gt;
; Ubuntu 7.10 LiveCD&lt;br /&gt;
: Ядро: 2.6.22&lt;br /&gt;
: GCC: 4.1.3&lt;br /&gt;
: Glibc: 2.6.1&lt;br /&gt;
: Libstdc++: 6.0.9&lt;br /&gt;
| + || ?|| X&lt;br /&gt;
|-&lt;br /&gt;
!8&lt;br /&gt;
| &lt;br /&gt;
; ALT Linux 3.0.4 LiveCD&lt;br /&gt;
: Ядро: 2.6.12&lt;br /&gt;
: GCC: 3.4.4*&lt;br /&gt;
: Glibc: 2.3.5&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.3&lt;br /&gt;
|X||X|| X&lt;br /&gt;
|-&lt;br /&gt;
!9&lt;br /&gt;
| &lt;br /&gt;
; ALT Linux 4.0.3&lt;br /&gt;
: Ядро: 2.6.18&lt;br /&gt;
: GCC: 4.1.1&lt;br /&gt;
: Glibc: 2.5&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.8&lt;br /&gt;
| + || X|| X&lt;br /&gt;
|-&lt;br /&gt;
!10&lt;br /&gt;
| &lt;br /&gt;
; MPentoo 2006.1 LiveCD&lt;br /&gt;
: Ядро: 2.6.16&lt;br /&gt;
: GCC: 3.3.6&lt;br /&gt;
: Glibc: 2.3.6&lt;br /&gt;
: Libstdc++: 5.0.7&lt;br /&gt;
|X|| X|| X&lt;br /&gt;
|-&lt;br /&gt;
!11&lt;br /&gt;
| &lt;br /&gt;
; Puppy Linux (rus_100) LiveCD&lt;br /&gt;
: Ядро: 2.6.21&lt;br /&gt;
: GCC: 4.1.2*&lt;br /&gt;
: Glibc: 2.5&lt;br /&gt;
: Libstdc++: 5.0.6 / 6.0.8&lt;br /&gt;
| + || X|| X&lt;br /&gt;
|-&lt;br /&gt;
!12&lt;br /&gt;
| &lt;br /&gt;
; Gentoo 2008 Beta2 LiveCD&lt;br /&gt;
: Ядро: 2.6.24&lt;br /&gt;
: GCC: 4.1.2&lt;br /&gt;
: Glibc: 2.6.1&lt;br /&gt;
: Libstdc++: 6.0.8&lt;br /&gt;
| + || +|| +&lt;br /&gt;
|-&lt;br /&gt;
!13&lt;br /&gt;
| &lt;br /&gt;
; OpenSUSE 10.1 LiveDVD&lt;br /&gt;
: Ядро: 2.6.16&lt;br /&gt;
: GCC: 4.1.0*&lt;br /&gt;
: Glibc: 2.4&lt;br /&gt;
: Libstdc++: 5.0.7 / 6.0.8&lt;br /&gt;
| ? || X ||X&lt;br /&gt;
|}&lt;br /&gt;
{| align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Обозначения:&lt;br /&gt;
: X — тест выполнен с ошибками, результат не соответствует ожиданиям&lt;br /&gt;
: ? — неожиданный результат выполнения теста, интересен для анализа&lt;br /&gt;
: + — тест успешно выполнен, результат адекватен ожиданиями&lt;br /&gt;
: * — на диске компилятор отсутствует, проверка на бинарной сборке из SLAX&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Что в итоге? ===&lt;br /&gt;
Какие же выводы можно сделать на основании результатов, отраженных в таблице? Во-первых, при разработке многопоточных&lt;br /&gt;
приложений с использованием библиотеки Pthreads программист&lt;br /&gt;
должен уделять повышенное внимание тем фрагментам кода,&lt;br /&gt;
где используются объекты классов. Несмотря на то, что Pthreads&lt;br /&gt;
имеет средство автоматического освобождения ресурсов — стек&lt;br /&gt;
очистительно-восстановительных операций, гарантировать обязательность и правильность его использования нельзя. В описании&lt;br /&gt;
многих функций библиотеки сообщается, что при завершении потока сначала вызываются процедуры из очистительного стека, а потом&lt;br /&gt;
деструкторы потоковых данных, а на самом деле это не всегда так.&lt;br /&gt;
&lt;br /&gt;
Во-вторых, разработчики Linux-систем вполне осведомлены об&lt;br /&gt;
особенностях поведения функций библиотеки Pthreads при использовании в качестве данных объектов классов. Ведется активная&lt;br /&gt;
работа в этом направлении, и положительные результаты есть!&lt;br /&gt;
Показателен пример Ubuntu.&lt;br /&gt;
&lt;br /&gt;
В-третьих, анализ характеристик дистрибутивов, получивших +&lt;br /&gt;
по всем тестам, обнаруживает, что версия ядра (в этих тестовых&lt;br /&gt;
образцах) не ниже 2.6.24 (это обязательное условие), библиотека glibc — не ниже 2.6.1 (лучше 2.7), библиотека libstdc++ — не&lt;br /&gt;
ниже 6.0.8 (лучше 6.0.9), версия компилятора GCC — не ниже 4.1.2.&lt;br /&gt;
Соответственно, дистрибутивы, получившие за тест -, имеют другие&lt;br /&gt;
версии библиотек. Например, в ALT Linux 4.0.3 используется библиотека glibc версии 2.5. Кстати, очень интересно сравнить результаты&lt;br /&gt;
Gentoo 2008 Beta 2 и Fedora Core 8. Исход их «спора» решила версия ядра. У Gentoo она выше, хотя у Fedora библиотека glibc новее.&lt;br /&gt;
Это говорит о том, что своевременное обновление ядра и ключевых&lt;br /&gt;
системных библиотек позволяет повысить надежность работы операционной системы.&lt;br /&gt;
&lt;br /&gt;
Читателя наверняка интересует вопрос: а что будет, если программу, скомпилированную в «правильной» системе, например,&lt;br /&gt;
Knoppix 5.3.1, попробовать запустить в «неправильной», скажем,&lt;br /&gt;
Knoppix 3.2 RE? Здесь возможны два варианта:&lt;br /&gt;
# Программа не запустится из-за отсутствия необходимых библиотек и выдаст сообщение следующего содержания:&lt;br /&gt;
#: &amp;lt;pre&amp;gt;knoppix@ttyp0[knoppix]$ ./etalon&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;./etalon: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;knoppix@ttyp0[knoppix]$&amp;lt;/pre&amp;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;
 uname -a&lt;br /&gt;
* Компилятор GCC:&lt;br /&gt;
 gcc --version&lt;br /&gt;
* Библиотека glibc :&lt;br /&gt;
 getconf GNU_LIBC_VERSION&lt;br /&gt;
* Библиотека libstdc++:&lt;br /&gt;
 ls -l /usr/lib/libstdc++.so.*&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Что можно посоветовать, чтобы свести к минимуму издержки, связанные с особенностями взаимодействия библиотеки Pthreads с&lt;br /&gt;
объектами классов?&lt;br /&gt;
&lt;br /&gt;
Что касается теста № 1, то тут может помочь метафора «песочницы»: прием, при котором вся работа с объектами классов, имеющих тип памяти auto (не динамические, а «обычные» переменные), ведется в пределах блока, выделенного в тексте программы&lt;br /&gt;
фигурными скобками {…}. При выходе из блока происходит автоматический вызов деструкторов, после чего можно «запускать»&lt;br /&gt;
pthread_exit().&lt;br /&gt;
&lt;br /&gt;
Однако возникает вопрос: что делать, если pthread_exit() вызывается в результате выполнения некоторого условия при работе&lt;br /&gt;
программы, как, например, в тесте № 2, или происходит аннулирование потока, как в тесте № 3? Здесь относительно универсальным,&lt;br /&gt;
хотя и достаточно трудозатратным будет такой выход, как «ручное»&lt;br /&gt;
управление памятью посредством операторов new и delete. Да, это&lt;br /&gt;
трудно и хлопотно, однако на текущий момент это, наверное, единственный эффективный выход из ситуации. Кстати, для объектов с&lt;br /&gt;
классом памяти auto деструктор можно вызвать как обычную функцию.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Андрей Кузьменко]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%9D%D0%A0_L%D0%B0s%D0%B5r_J%D0%B5t_2700n</id>
		<title>НР Lаsеr Jеt 2700n</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%9D%D0%A0_L%D0%B0s%D0%B5r_J%D0%B5t_2700n"/>
				<updated>2015-06-03T16:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу НР Lаsеr Jеt 2700n в LXF102:Scool2 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF102:Scool2]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF102:Scool2</id>
		<title>LXF102:Scool2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF102:Scool2"/>
				<updated>2015-06-03T16:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу НР Lаsеr Jеt 2700n в LXF102:Scool2 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==«У самовара» с Александром Поносовым==&lt;br /&gt;
&lt;br /&gt;
Из официального пресс-релиза ОАО «Армада»&lt;br /&gt;
'''Первые дистрибутивы на базе ОС Linux в рамках программы по оснащению свободным программным обеспечением российских школ вручены учителям информатики Пермской области для ознакомления. Разработчики уверены, что их продукт не только обезопасит учителей от ревнителей авторских прав, но и приведет к росту технической грамотности школьников.'''&lt;br /&gt;
&lt;br /&gt;
Первое официальное знакомство российской школы и ОС Linux можно считать состоявшимся. В пятницу, 11 января 2008 г., в Верещагинском районе Пермского края учитель Александр Поносов и заместитель гендиректора компании ALT Linux Алексей Новодворский ознакомили сельских учителей информатики с результатами работы консорциума, признанного в 2007 г. победителем в конкурсе Рособразования на разработку пакета СПО для внедрения в школах трех пилотных регионов - Татарстана, Томской области и Пермского края.&lt;br /&gt;
&lt;br /&gt;
Проект по внедрению свободного ПО в российские школы станет крупнейшим в мире: уже в этом году комплекты свободного ПО будут установлены в 1200 школах пилотных регионов – Пермского края, Томской области и Татарстана. Хотя за границей Linux используется в госучреждениях и в школах довольно широко (в испанской провинции Эстремадура он установлен на всех школьных компьютерах), такой масштабной миграции на СПО история еще не знала. После тестирования&lt;br /&gt;
в трех пилотных регионах и доработок школьного дистрибутива с учетом замечаний в 2008 г., Linux планируется установить более чем в 61 тыс. российских школ.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w5</id>
		<title>LХF100-101:Rеviеw5</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w5"/>
				<updated>2015-06-03T16:55:40Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw5 в LXF107:Kino поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF107:Kino]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF107:Kino</id>
		<title>LXF107:Kino</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF107:Kino"/>
				<updated>2015-06-03T16:55:40Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw5 в LXF107:Kino поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''Новая серия!''' Linux в основе домашней киностудии: от захвата с камеры до мастеринга DVD&lt;br /&gt;
&lt;br /&gt;
==Kino: К захвату готовы==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Video}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 1''' Если друзья отказываются смотреть видеозапись вашего отпуска на Багамах, то это либо из-за черной зависти, либо из-за вашего неумения обработать фильм. С первым ничего не поделаешь, а что касается второго – '''Алексей Маслий''' к вашим услугам.&lt;br /&gt;
&lt;br /&gt;
Около года назад я приобрел MiniDV-камеру. Естественно, сразу же встал вопрос: как обрабатывать отснятое видео на компьютере и делать из него диски DVD Video? Вариант с простым переписыванием материала с камеры на видеокассеты или DVD я отбросил сразу: поглядев парочку таких фильмов (а они,&lt;br /&gt;
пожалуй, есть в коллекции у каждого из нас), неизбежно приходишь к выводу, что видео, которое потом предполагается смотреть&lt;br /&gt;
(а не держать на полке), надо обрабатывать хотя в минимальном объеме.&lt;br /&gt;
&lt;br /&gt;
Разумеется, в комплекте с камерой поставлялся диск с какимто ПО, предназначенным как раз для этих целей – но, естественно,&lt;br /&gt;
работающим только под Windows и Mac OS (поэтому он до сих пор и лежит в коробке нераспечатанным). Я же, немного поразмышляв,&lt;br /&gt;
решил реализовать весь цикл обработки в Linux, тем более, что к тому моменту у меня уже был некоторый опыт (собственно, я знал&lt;br /&gt;
две вещи: первое – это можно сделать, и второе – какие инструменты для этого требуются). На протяжении следующих нескольких&lt;br /&gt;
уроков мы поговорим о захвате видео- и аудиопотоков с цифровой&lt;br /&gt;
камеры, монтаже видеофильма и наложении эффектов (заставки,&lt;br /&gt;
плавные переходы между сюжетами, титры), кодировании результата в формате MPEG-2 и, наконец, создании DVD-Video с меню,&lt;br /&gt;
фоновой музыкой и заставками.&lt;br /&gt;
&lt;br /&gt;
Пользуясь случаем, хочу сказать мастерам монтажного стола, что я не занимаюсь профессиональной видеосъемкой, поэтому,&lt;br /&gt;
если вы ждете увидеть пошаговое ''HOWTO'' по созданию собственного блокбастера, рекомендую поискать его в другом месте. Зато для&lt;br /&gt;
приведения репортажей со скромных и не очень скромных домашних торжеств и офисных праздников в божеский вид этих рецептов&lt;br /&gt;
вполне хватит. Ну что, приступим?&lt;br /&gt;
&lt;br /&gt;
===Подбираем оборудование===&lt;br /&gt;
&lt;br /&gt;
Стандартным интерфейсом для DV-камер является '''IEEE1394''', также&lt;br /&gt;
известный как '''FireWire'''. Некоторые модели, включая и мою собственную, оборудуются также портом '''USB 2.0''', но из-за сравнительно низкой пропускной способности данной шины, максимум, что вы сможете получить при таком подключении – это видео VHS-качества, т.е. 320х200 при 30 кадрах в секунду либо 640х480 – при 15. Камера же реально снимает с разрешением стандарта PAL/NTSC&lt;br /&gt;
(720х576/720х480) при 25 или 30 кадрах в секунду. PCI-адаптер для IEEE1394 в комплекте с кабелем обойдутся вам рублей в 200, так&lt;br /&gt;
что, даже если на вашем компьютере нет порта FireWire, не стоит экономить на спичках.&lt;br /&gt;
&lt;br /&gt;
Вторым крайне важным показателем является объем винчестера. Поскольку по интерфейсу '''IEEE1394''' передается сырое несжатое видео&lt;br /&gt;
(то есть каждый кадр в отдельности) плюс звук в формате '''WAV''', то дискового пространства требуется довольно много: 12–14 ГБ на час&lt;br /&gt;
записи. Дальнейшая обработка и подготовка DVD-диска потребует еще около 10 ГБ (мы вернемся к этому вопросу на последующих уроках). Ну и конечно, диск должен бы ь настолько быстрым насколько это возможно для вашего ПК.&lt;br /&gt;
&lt;br /&gt;
Третий фактор – мощность процессора. Вообще говоря, она играет заметную роль лишь на одном этапе, а именно – кодировании в MPEG-2, но разница может быть весьма значительной.&lt;br /&gt;
&lt;br /&gt;
Чтобы не быть голословным, приведу пример. Я попытался смонтировать один и тот же фильм на двух разных компьютерах: AMD Athlon XP 2500+ / 1 ГБ ОЗУ (DDR PC3200 Dual Chanel) / 80-ГБ HDD ATA100 7200rpm и AMD Athlon64 4000+ / 1 ГБ ОЗУ (DDR2 PC5300 Dual Chanel) / 120-ГБ HDD SATA II 7200rpm. Результаты – 4 часа 52 минуты на первой системе и 2 часа 48 минут на второй – говорят сами за себя. Различие становится еще более существенным (не&lt;br /&gt;
по величине, а по сути), если вы ограничены в машинном времени (например, разделяете домашний компьютер со своими родными).&lt;br /&gt;
&lt;br /&gt;
Производительность дисковой подсистемы особенно критична при захвате видео с камеры. Если скорости только-только хватает&lt;br /&gt;
на выполнение данной задачи, во время работы к компьютеру лучше не прикасаться. Подумайте также об останове прочих процессов&lt;br /&gt;
в системе: часть материала может быть загублена, если какомунибудь ''beagled'' внезапно придет в голову светлая мысль срочно проиндексировать ваши файлы.&lt;br /&gt;
&lt;br /&gt;
===Открытый инструментарий===&lt;br /&gt;
&lt;br /&gt;
На данном фронте особого разнообразия не наблюдается (что, вообще говоря, нетипично для Open Source). Безусловным фаворитом является редактор для нелинейного видеомонтажа ''Kino'' (http://www.kinodv.org), базирующийся, несмотря на заглавную '''K''' в имени, на&lt;br /&gt;
''GTK+''. Кроме захвата видео с камеры, в ''Kino'' также производится видеомонтаж, наложение эффектов (заставки, титры, переходы) и кодирование видео- и аудиопотоков (с помощью сторонних программ-помощников).&lt;br /&gt;
&lt;br /&gt;
Для создания DVD-дисков (DVD-мастеринга) приложений уже значительно больше. Лично я предпочитаю ''QDVDAuthor'' (http://qdvdauthor.sourceforge.net) – по сути, оболочку к консольной программе ''DVDAuthor''. ''QDVDAuthor'' позволяет визуально создавать меню (с заставками, анимацией, переходами, фоновой музыкой и т.д.), а затем преобразует все это к формату, необходимому для записи DVD-Video, и генерирует XML-файл с инструкциями для ''DVDAuthor''.&lt;br /&gt;
В качестве альтернативы можно посмотреть ''DVDStyler'' (http://www.dvdstyler.de), который также является оболочкой к ''DVDAuthor'' и входит в&lt;br /&gt;
состав LiveCD '''Dyne:bolic''' ([[LXF106:Вещайте_по_сети|LXF106]]).&lt;br /&gt;
&lt;br /&gt;
Для подготовки заставок я буду использовать графический редактор ''GIMP'' (http://www.gimp.org), для обработки звука (если таковая&lt;br /&gt;
потребуется) – ''Audacity'' (http://audacity.sourceforge.net), а для разных вспомогательных целей – ''Avidemux'' (http://www.avidemux.org), видеоредактор, который, помимо прочего, может заменить ''Kino'' в области кодирования видео/аудио.&lt;br /&gt;
&lt;br /&gt;
На самом деле и ''Kino'', и ''QDVDAuthor'', и даже ''Avidemux'' полагаются в своей работе на ряд консольных приложений, таких как&lt;br /&gt;
''mjpegtools, lavc, mencoder'' и др. За исключением данного случая, я не буду упоминать о них, поскольку внутренняя механика обычно&lt;br /&gt;
бывает хорошо скрыта от глаз пользователя (по крайней мере до тех пор, пока не вылезет в виде зависимостей и не стукнет больно).&lt;br /&gt;
&lt;br /&gt;
На протяжении всей серии уроков я буду использовать дистрибутив ALT Linux Desktop 4.0.1. Как и всегда, этот факт не будет иметь&lt;br /&gt;
решающего значения – вы сможете следовать приведенным рекомендациям в любом современном дистрибутиве общего назначения. Разумеется, названия пунктов меню и расположение программ могут слегка отличаться, но общая суть от этого не пострадает.&lt;br /&gt;
&lt;br /&gt;
===Приступим к делу===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF107_X1_1.png|Рис. 1|900px]]&lt;br /&gt;
&lt;br /&gt;
Рис. 1 а) Все в порядке; б) Если вы видите это, значит, ваша камера не отвечает... в) ...а если это – значит, не загружены драйвера '''IEEE1394'''.&lt;br /&gt;
&lt;br /&gt;
В первую очередь, убедитесь, что с оборудованием все в порядке и не требуется никаких дополнительных действий (это справедливо в&lt;br /&gt;
подавляющем большинстве случаев, если вы не модифицировали аппаратную часть, т.е. не устанавливали дополнительных устройств и,&lt;br /&gt;
в особенности, интерфейсных плат '''IEEE1394''' после инсталляции дистрибутива). При необходимости, воспользуйтесь стандартными конфигураторами, чтобы обнаружить и настроить новое оборудование. Для проверки подключите камеру к порту '''IEEE1394''' и включите ее в&lt;br /&gt;
режиме воспроизведения ('''Play'''). Запустите ''Kino'' (как правило, он обозначен в меню приложений как '''Мультимедиа &amp;gt; Медиа(Видео) редактор'''). В меню программы выберите пункт '''Правка &amp;gt; Настройка''' и найдите вкладку '''IEEE1394''' в появившемся диалоге. На ней присутствует&lt;br /&gt;
всего один пункт: '''Устройство AV/С''' (правда, в более старых версиях программы число элементов на данной вкладке может быть существенно большим). Если все хорошо, то здесь будет отображаться название вашей камеры ('''рис. 1а'''), если же нет, то его не будет и/или появится предупреждающее сообщение. Так, на '''рис. 1б''' изображена ситуация, когда от камеры нет отклика, а на '''рис. 1в''' – сбой, вызванный отсутствием в системе драйверов для '''IEEE1394'''. В первом случае необходимо проверить соединение интерфейсного кабеля с камерой и компьютером и убедиться, что устройство включено и находится в режиме воспроизведения. Во втором необходимо подгрузить соответствующие модули ядра. Эта процедура производится от имени&lt;br /&gt;
суперпользователя. Откройте терминал и выполните в нем команду:&lt;br /&gt;
&lt;br /&gt;
  su -&lt;br /&gt;
  modprobe raw1394&lt;br /&gt;
  modprobe dv1394&lt;br /&gt;
&lt;br /&gt;
Если не было получено сообщений об ошибках, значит, загрузка прошла удачно, но на всякий случай проверьте это, введя команду&lt;br /&gt;
''lsmod | grep 1394''. Вы получите список загруженных модулей ядра, имеющих отношение к подсистеме '''FireWire''':&lt;br /&gt;
&lt;br /&gt;
 raw1394            32048 0&lt;br /&gt;
 dv1394             23312 0&lt;br /&gt;
 ohci1394           38088 1 dv1394&lt;br /&gt;
 ieee1394          369784 4 raw1394,dv1394,sbp2,ohci1394&lt;br /&gt;
&lt;br /&gt;
Драйвера '''FireWire''' входят в стандартную поставку ядра Linux и должны быть доступны в вашем дистрибутиве (возможно, хотя и&lt;br /&gt;
маловероятно – в виде отдельного пакета). Если же вы собирали ядро вручную, убедитесь, что вы не забыли установить группы параметров '''CONFIG_FIREWIRE_*''' и '''CONFIG_IEEE1394_*''' в '''m'''.&lt;br /&gt;
&lt;br /&gt;
Теперь присоедините камеру к компьютеру и включите ее в режиме воспроизведения. Набрав ''cat /var/log/messages | grep 1394'',&lt;br /&gt;
вы увидите сообщения вида:&lt;br /&gt;
&lt;br /&gt;
 Apr 2 14:34:35 helavista kernel: ohci1394: fw-host0: OHCI-1394 1.1&lt;br /&gt;
 (PCI): IRQ=[10] MMIO=[df002000-df0027ff] Max Packet=[2048] IR/IT&lt;br /&gt;
 contexts=[4/8]&lt;br /&gt;
 Apr 2 14:38:05 helavista kernel: ieee1394: raw1394: /dev/raw1394 device&lt;br /&gt;
 initialized&lt;br /&gt;
&lt;br /&gt;
Далее, запустите ''Kino'' и перейдите в диалог настроек, как было рассказано выше. На вкладке '''IEEE1394''' должно появиться название&lt;br /&gt;
подключенной камеры, как на '''рис. 1а'''.&lt;br /&gt;
&lt;br /&gt;
Следует заметить, что большинство современных дистрибутивов подгружают модули ядра при обнаружении нового устройства автоматически, так что в первую очередь попробуйте подключить видеокамеру в режиме воспроизведения и посмотреть настройки ''Kino''.&lt;br /&gt;
&lt;br /&gt;
И последнее – если включить камеру не в режиме воспроизведения, а режиме записи (съемки; иногда он также обозначается как CAMERA),&lt;br /&gt;
то настройка тоже пройдет удачно, а вот захват работать не будет.&lt;br /&gt;
&lt;br /&gt;
===Подготовим рабочее место===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF107_X2_1.jpg|Рис. 2|400px]] Рис. 2. Главное окно программы ''Kino''.|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Скажу пару слов об интерфейсе ''Kino''. Главное окно программы (рис. 2) состоит из традиционных элементов: меню, панель инструментов, статусная строка и рабочая область. Последняя разделена на четыре части. В вертикальном столбце слева отображается раскладка видеофрагментов с подробной информацией о них в порядке воспроизведения. В правой части рабочей области вертикально располагаются вкладки рабочих режимов: '''Редактор, Захват, Шкала времени, Срезка, Эффекты, Экспорт'''. По умолчанию активирован первый режим, '''Редактор''', а переключаться между ними можно также с помощью основного меню (пункт '''Вид''') или функциональными клавишами '''F2'''-'''F7'''. Все самое интересное происходит в центральной&lt;br /&gt;
части, а ее содержимое зависит от выбранного режима работы. В&lt;br /&gt;
первых четырех случаях здесь находится окно просмотра видео,&lt;br /&gt;
под которым располагаются стандартные элементы управления&lt;br /&gt;
(пауза, воспроизведение, перемотка и т.д.), регулятор громкости и временная шкала, видом которой можно управлять из специального&lt;br /&gt;
выпадающего меню.&lt;br /&gt;
&lt;br /&gt;
Перед тем, как приступить к работе с ''Kino'', рекомендую вам внести свои предпочтения в настройки по умолчанию: тогда они&lt;br /&gt;
будут автоматически действовать на все новые проекты. Конечно, в каждом конкретном случае их можно переопределить, но если вы&lt;br /&gt;
вдруг забудете это сделать, а такое иногда случается, то домашний каталог захламляться не будет. Диалог настроек, как мы уже знаем, доступен через меню '''Правка &amp;gt; Настройка'''. Помимо уже известной нам (и сейчас не особенно нужной) третьей по счету вкладки '''IEEE1394''', там присутствует еще шесть: '''Общее, Захват, Экран, Звук, Jog/Shuttle, Прочее'''. Проделайте следующее:&lt;br /&gt;
&lt;br /&gt;
* '''Общее''' Здесь необходимо выбрать формат видео по умолчанию (PAL или NTSC), частоту дискретизации звука и соотношение сторон (4:3 или 16:9).&lt;br /&gt;
* '''Захват''' Тут следует указать полный путь к файлу, в который будет сохраняться сырой видеопоток. По умолчанию, это '''captureХХХ.dv''' в вашем домашнем каталоге, что, на мой взгляд, неудобно. Далее, выберите тип файла (я оставляю '''RawDV''') и параметры записи. '''Авторазбивка на файлы''' означает, что для каждого сюжета (или отрезка записи длиннее 2 ГБ) будет создаваться новый файл. &lt;br /&gt;
* '''Экран''' управляет выводом видеопотока на ваш монитор. Подберите здесь параметры на свой вкус, но на слабых машинах и с видеокартами без аппаратного ускорения я бы рекомендовал активировать '''Reduced Xvideo''' и '''Терять кадры при необходимости''' и отключить '''Просмотр во время захвата'''. Оптимальный для вашего компьютера набор опций составляется путем проб и ошибок.&lt;br /&gt;
* '''Прочее''' Здесь доступны дополнительные настройки программы, из которых нам сейчас будет интересен '''Каталог проекта по умолчанию''' (название, полагаю, говорит само за себя).&lt;br /&gt;
&lt;br /&gt;
Теперь, когда наш инструментарий в сборе и настроен как надо,&lt;br /&gt;
можно приступать к делу.&lt;br /&gt;
&lt;br /&gt;
===Захват видеопотока===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF107_X2_2.png|Рис. 3|400px]] Рис. 3. Приступить к захвату!|Ширина=400px}}&lt;br /&gt;
&lt;br /&gt;
Запустите ''Kino'' и выберите вкладку '''Захват'''. В этом режиме к стандартному виду над кнопками управления просмотром добавляются еще четыре и строка с именем файла для сохранения (рис. 3). Дополнительные кнопки будут активны только в том случае, если камера подключена к компьютеру и работает в режиме воспроизведения.&lt;br /&gt;
&lt;br /&gt;
Проследите, чтобы кнопка '''AV/C''' была нажата – это позволит управлять камерой с компьютера. Далее, при помощи кнопок перемотки найдите начало сюжета, который необходимо загрузить. Для навигации по носителю (в случае MiniDV – кассете) удобно пользоваться кнопками '''Перейти к началу предыдущего/следующего сюжета'''. Для более точного позиционирования имеются инструменты покадрового сдвига.&lt;br /&gt;
&lt;br /&gt;
Перед началом захвата не забудьте указать имя файла и каталог для сохранения видеоданных. Также желательно выбрать формат индикатора положения в видеопотоке. По умолчанию, показывается '''порядковый номер кадра''', но гораздо удобнее выбрать режим '''Счетчик''', как на рис. 3; в этом случае индикатор примет вид '''часы:минуты:секунды.доли секунды'''.&lt;br /&gt;
&lt;br /&gt;
Для начала захвата необходимо нажать кнопку '''Захват''' (с большой красной точкой). Камера автоматически начнет воспроизведение, которое будет записываться в файлы с указанным названием, с прибавлением номера и расширения '''dv'''. Если в указанном каталоге&lt;br /&gt;
уже есть файлы видеоданных ''Kino'', нумерация будет начата с первого свободного слота.&lt;br /&gt;
&lt;br /&gt;
Остановить захват можно кнопкой '''Стоп'''. Оставшиеся два органа управления позволяют записать стоп-кадр и отключить вывод звука на внешнюю акустическую систему (естественно, аудиопоток продолжает сохраняться).&lt;br /&gt;
&lt;br /&gt;
По завершении процесса загрузки материала не забудьте выключить видеокамеру или отожмите кнопку '''AV/C'''. В противном случае любые перемещения по загруженному на компьютер видеоряду заставят камеру искать в видеопотоке соответствующее местоположение, что особенно вредно для MiniDV-устройств&lt;br /&gt;
c их кассетами.&lt;br /&gt;
&lt;br /&gt;
Вот и вся процедура захвата отснятого материала с цифровой видеокамеры – как видите, это несложно. Ну, а про обработку полученного ролика мы поговорим в следующий раз – пока что положите его на полку. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100</id>
		<title>LХF100</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100"/>
				<updated>2015-06-03T16:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100 в LXF104:Arduino поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF104:Arduino]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF104:Arduino</id>
		<title>LXF104:Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF104:Arduino"/>
				<updated>2015-06-03T16:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100 в LXF104:Arduino поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: Свободная электроника&lt;br /&gt;
&lt;br /&gt;
== Аппаратный хакинг по новой ==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Arduino}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 2''' Игра, которую мы создали месяц назад – немая, и это дает '''Грэму Моррисону''' повод добавить звук, используя только Arduino и динамик.&lt;br /&gt;
&lt;br /&gt;
Месяц назад мы создали игру типа «Саймон сказал», используя Arduino – аппаратную платформу для простых и не очень электронных проектов. Мы разместили три кнопки и три светодиода на макетной плате и написали маленькую программу, передававшую на них случайную последовательность вспышек, которую игрок должен был повторить, нажимая на кнопки в заданном порядке. При каждом правильном воспроизведении последовательности ее длина увеличивалась на единицу, и все повторялось снова. Чем большей длины случайные последовательности вы запоминали, тем больше очков получали.&lt;br /&gt;
&lt;br /&gt;
Мы собираемся надстроить проект прошлого месяца, добавив другую важную особенность – звук! Это очень просто, но оказывает потрясающий эффект на игровой процесс. Если вместе с Arduino вы купили стартовый набор компонентов, есть хороший шанс, что туда включено нечто вроде пьезоэлемента – обычно это маленькая черная круглая штука (размером примерно с «нажималку» кнопки), с маленькой дырочкой наверху. Пьезоэлемент&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;
Подсоединив динамик к Arduino, придадим вспышкам светодиодов&lt;br /&gt;
звук, чтобы каждой из них соответствовала определенная нота. Тогда&lt;br /&gt;
случайная последовательность вспышек заодно будет сопровождать-&lt;br /&gt;
ся сгенерированной мелодией, а игрок пусть повторяет последовательность вспышек/мелодию, нажимая на три кнопки.&lt;br /&gt;
&lt;br /&gt;
Даже если игра «Саймон сказал», которую мы создаем, вам ни к чему, вы можете использовать то, что изучите на следующих&lt;br /&gt;
страницах, для использования в больших проектах. Звук в Arduino будет просто работать, и есть немало приложений, где ему найдется&lt;br /&gt;
применение.&lt;br /&gt;
&lt;br /&gt;
===Генерация звука===&lt;br /&gt;
&lt;br /&gt;
Существует несколько способов генерировать звук с помощью Arduino,&lt;br /&gt;
разных уровней сложности. Мы воспользуемся простейшим, известным также как «битье по битам». Этот метод позволяет генерировать&lt;br /&gt;
ноты различной тональности, но не более – просто «бип» некоторой&lt;br /&gt;
длительности. Не спешите воротить нос – звук на самом деле очень&lt;br /&gt;
приятный, и он знаком всем, кто вырос в 1980-х. Наш звук будет очень&lt;br /&gt;
похож на тот, что порождали подлинные игры «Саймон» и много других электронных устройств, в том числе типичный «бип», который&lt;br /&gt;
звучит при включении компьютера. Выбран он потому, что это самый&lt;br /&gt;
простой и дешевый способ получения звука, и вам не нужны никакие&lt;br /&gt;
аудиосредства, кроме динамика.&lt;br /&gt;
&lt;br /&gt;
Если вы интересуетесь звуком и хотите сделать что-нибудь чуть&lt;br /&gt;
более амбициозное, то есть другие методы генерации, использующие цифро-аналоговый преобразователь для воссоздания сэмплов и&lt;br /&gt;
реальных звуков; есть и проекты Arduino, которые воспроизводят различные дискретные компоненты синтезаторов, включая осцилляторы,&lt;br /&gt;
фильтры и огибающие, а также увязку всего этого с MIDI. Тем, кому&lt;br /&gt;
интересны такие приложения, сайт Arduino предоставляет исчерпы-&lt;br /&gt;
вающую информацию.&lt;br /&gt;
&lt;br /&gt;
====Бип... Бип...====&lt;br /&gt;
&lt;br /&gt;
Но нам-то нужен всего лишь «бип». Смотрите, как легко это делается. Присоедините положительный контакт динамика к контакту питания '''9 В''' на Arduino (на плате динамика должны находиться маленькие знаки «плюс» и «минус», показывающие полярность). Далее&lt;br /&gt;
соедините минусовый провод с цифровым контактом '''9''' на Arduino –&lt;br /&gt;
вот и все необходимые соединения. Если у вас уже собрана игра&lt;br /&gt;
«Саймон сказал» из прошлого номера, эти два соединения должны&lt;br /&gt;
располагаться параллельно проводам, идущим к и от светодиодов и&lt;br /&gt;
кнопок на макетной плате. Осталось написать код, создающий звук.&lt;br /&gt;
Основной принцип очень похож на переключение светодиодов из&lt;br /&gt;
«включено» в «выключено», по крайней мере с точки зрения программирования. Поэтому метод и назван битье по битам. Сперва&lt;br /&gt;
надо установить режим для контакта, подключенного к динамику,&lt;br /&gt;
затем послать сигналы '''HIGH''' и '''LOW''' на тот же контакт, тем самым&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;
Хватит теории – перейдем к шумам. Откройте новый проект Arduino в&lt;br /&gt;
''Arduino IDE'' (или в любимом текстовом редакторе) и введите следующие строки в начале файла:&lt;br /&gt;
&lt;br /&gt;
  #define note_len 200000&lt;br /&gt;
  int speakerOut = 9;&lt;br /&gt;
  void setup() {&lt;br /&gt;
    pinMode(speakerOut, OUTPUT);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Эти строки говорят контроллеру Arduino, как мы хотим использовать контакты на плате. Теперь надо добавить код, генерирующий звук.&lt;br /&gt;
Для этого просто вставьте следующую функцию:&lt;br /&gt;
&lt;br /&gt;
 void playTone(int note) {&lt;br /&gt;
   long elapsed_time = 0;&lt;br /&gt;
   while (elapsed_time &amp;lt; note_len) {&lt;br /&gt;
      digitalWrite(speakerOut,HIGH);&lt;br /&gt;
      delayMicroseconds(note / 2);&lt;br /&gt;
      digitalWrite(speakerOut, LOW);&lt;br /&gt;
      delayMicroseconds(note / 2);&lt;br /&gt;
      elapsed_time += (note);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
В цикле ‘'''while'''’, цифровой импульс посылается на динамик, используя функции '''digitalWrite''' – '''HIGH''' для включения и '''LOW''' для выключения. Между каждым применением '''digitalWrite''' задается задержка с помощью функции delayMicroseconds. Как следует из ее названия,&lt;br /&gt;
она останавливает работу программы на число микросекунд, заданное в скобках. В нашем случае мы присвоили это число переменной ‘'''note'''’,&lt;br /&gt;
так как именно от значения этой задержки зависит требуемый тон: чем меньше задержка, тем быстрее импульсы посылаются на динамик, и&lt;br /&gt;
тон будет выше. Мы затем добавляем суммарную длину всех задержек в переменную '''elapsed_time''', чтобы знать, сколько времени у нас проигрывается звук, и когда нота проиграется с длительностью, заданной в '''note_len''', мы выйдем из цикла '''while'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF104_50_1.jpg|300px]]  Все звуки в проекте генерируются с помощью функции '''playTone'''.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Для создания звука, переходим к окончательной функции – '''loop'''. Она выполняется Arduino постоянно, и здесь можно вызвать функцию&lt;br /&gt;
'''playTone''' для создания звука:&lt;br /&gt;
&lt;br /&gt;
 void loop() {&lt;br /&gt;
 playTone (3830);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Поместим его в игру ===&lt;br /&gt;
&lt;br /&gt;
Теперь, создав основу для генерации звука с помощью Arduino и&lt;br /&gt;
дешевого динамика, применим изученное к нашей игре. Первый&lt;br /&gt;
шаг – скопировать функцию '''playTone''' из нашего предыдущего примера в исходный код игры. Мы будем использовать ее похожим&lt;br /&gt;
способом, вызывая ее, когда необходимо издать звук. Чтобы идти&lt;br /&gt;
в ногу с новой функцией, нам также необходимо добавить похожую строку '''pinMode''' в функцию '''setup()''' и убедиться, что описания&lt;br /&gt;
'''note_len''' и '''speakerOut''' скопированы в начало файла. Нам также надо&lt;br /&gt;
задать через '''#define''' различные задержки при проигрывании функции '''playTone'''. Их использование позволит нам избежать голых чисел&lt;br /&gt;
в качестве значений, какие мы использовали в функции '''loop()''', и так&lt;br /&gt;
как у нас всего три кнопки, нам нужно три тона:&lt;br /&gt;
&lt;br /&gt;
 #define play_c 3830&lt;br /&gt;
 #define play_d 3400&lt;br /&gt;
 #define play_e 3038&lt;br /&gt;
&lt;br /&gt;
Мы взяли величину задержки с сайта Arduino, где подобраны готовые значения для каждой ноты. Теперь можно использовать константы '''play_c''', '''play_d''' и '''play_e''' [в музыке, '''С, D''' и '''E''' – обозначения нот до, ре, ми, – прим. ред.] как аргументы функции '''playTone''' для задания требуемого тона. Следующее, что надо добавить – издание звука&lt;br /&gt;
при вспышке соответствующего светодиода; мы можем сделать это&lt;br /&gt;
с помощью '''playSequence''' – функции, которая зажигает светодиоды.&lt;br /&gt;
Перескочив в середину этой функции, вы можете вспомнить, что на&lt;br /&gt;
прошлом уроке мы использовали условие case: требуемый светодиод зажигался в зависимости от заданного значения в текущей позиции массива. Можно просто добавить команду '''playTone''' в каждое&lt;br /&gt;
условие для проигрывания звука, когда загорается светодиод:&lt;br /&gt;
&lt;br /&gt;
 switch (rand_array[i]) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      digitalWrite(ledPin1, HIGH);&lt;br /&gt;
      playTone(play_c);&lt;br /&gt;
      break;&lt;br /&gt;
    case 1:&lt;br /&gt;
      digitalWrite(ledPin2, HIGH);&lt;br /&gt;
      playTone(play_d);&lt;br /&gt;
      break;&lt;br /&gt;
    case 2:&lt;br /&gt;
      digitalWrite(ledPin3, HIGH);&lt;br /&gt;
      playTone(play_e);&lt;br /&gt;
      break;&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;
мы создали функцию, названную '''readButtons''', отвечающую за ввод.&lt;br /&gt;
Вместо распределения всех нажатий кнопки по условиям case, мы&lt;br /&gt;
использовали вложенные '''if''', и сюда тоже надо добавить корректные&lt;br /&gt;
значения '''playTone'''.&lt;br /&gt;
&lt;br /&gt;
 if (val1==LOW){&lt;br /&gt;
   playTone(c);&lt;br /&gt;
   return 0;&lt;br /&gt;
 } else if (val2==LOW) {&lt;br /&gt;
   playTone(d);&lt;br /&gt;
   return 1;&lt;br /&gt;
 } else if (val3==LOW) {&lt;br /&gt;
   playTone(e);&lt;br /&gt;
   return 2;&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;
отвечающие за эти действия – '''flashSuccess''' и '''flashFailure''', они обе&lt;br /&gt;
были исключены из исходного кода по причине нехватки места. Вы&lt;br /&gt;
можете захотеть добавить соответствующий унизительный звук провала, чтобы игрок осознавал свою ошибку – например, длинный низкий тон типа такого:&lt;br /&gt;
&lt;br /&gt;
 playTone(8000);&lt;br /&gt;
 playTone(8000);&lt;br /&gt;
&lt;br /&gt;
Но, может быть, вам захочется создать нечто более раздражающее. Звук, генерируемый динамиком, не обязан быть мелодичным,&lt;br /&gt;
и можно устроить настоящую какофонию, быстро подавая ноты на&lt;br /&gt;
динамик. Наша функция '''playTone''' имеет фиксированную задержку, и нам надо исправить это, если мы хотим менять звуки быстро.&lt;br /&gt;
Решение – ввести еще один аргумент для длительности ноты. Для&lt;br /&gt;
этого изменим функцию playTone следующим образом:&lt;br /&gt;
&lt;br /&gt;
  void playTone(int note, long note_len )&lt;br /&gt;
&lt;br /&gt;
Необходимо также сменить значение '''#define note_len 200000''' в начале исходного кода на '''#define duration 200000''', чтобы не путать&lt;br /&gt;
имена переменных. Проделав этих два изменения, надо обеспечить,&lt;br /&gt;
чтобы каждый раз при вызове '''playTone''' подставлялась длительность.&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
  playTone(play_c, duration);&lt;br /&gt;
&lt;br /&gt;
Теперь у вас есть больший контроль над продолжительностью&lt;br /&gt;
звука, генерируемого динамиком, и вы можете быстро передавать&lt;br /&gt;
одну ноту за другой. Вот как мы заменили функцию '''flashFailure''' на&lt;br /&gt;
устрашающий звук ошибки, вместо набора огоньков:&lt;br /&gt;
&lt;br /&gt;
  void flashFailure(){&lt;br /&gt;
  for (int i=0; i&amp;lt;=10; i++){&lt;br /&gt;
    playTone (play_c, 10000);&lt;br /&gt;
    playTone (play_d, 10000);&lt;br /&gt;
    playTone (play_e, 10000);&lt;br /&gt;
  }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Это просто цикл, который очень быстро проигрывает три ноты,&lt;br /&gt;
имитируя битву лазерных пушек и ясно информируя игрока, что&lt;br /&gt;
он сделал ошибку при попытке воспроизвести последовательность.&lt;br /&gt;
Мы обнаружили, что при наличии звука можно обойтись без функции реакции на успех: функция ошибки достаточно информативна.&lt;br /&gt;
Удалите '''flashSuccess()''' из '''void loop()''', и увидите, что мы имели в виду.&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;
семисегментный дисплей, напоминающий решения 1970-х, и используем его для вывода очков, а также для текущего статуса запущенной&lt;br /&gt;
игры. До встречи, и удачи вам в аппаратном хакинге. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Мультиметры===&lt;br /&gt;
&lt;br /&gt;
Немного освоившись в играх с Arduino, вы можете наткнуться на одно полезное устройство – мультиметр [или тестер]. Это эквивалент инструментов отладки программиста для инженера-электронщика, и он неоценим, когда у вас что-то не заработает и надо выяснить, почему.&lt;br /&gt;
&lt;br /&gt;
Он также является прекрасным инструментом для обучения, помогая вам увидеть, что и как происходит в вашей схеме. Другое хорошее качество мультиметра – его дешевизна, особенно для любителей, ведь базовые модели стоят несколько сотен рублей. Большинство&lt;br /&gt;
имеют похожие режимы и функциональность, с круговым переключателем режимов и цифровым дисплеем ['''в России еще встречаются стрелочные индикаторы, – прим. пер.'''], отображающим выходные параметры. Мультиметром можно измерять напряжения, или сопротивления резисторов, но самая полезная функция для маленьких проектов Arduino – «проводимость». Это когда вы проверяете, соединены ли два компонента или участка цепи, подавая на них небольшое&lt;br /&gt;
напряжение с мультиметра. Для этой цели Arduino должен быть отключен от источника питания – как и любая тестируемая схема – и&lt;br /&gt;
тест проводимости генерирует звук, когда достаточное напряжение передается от одного сенсора к другому. На переключателе эта&lt;br /&gt;
функция обычно изображается в виде ноты или динамика. Тест на проводимость – лучший способ проверить целостность ваших проводов, до перехода к тестированию отдельных компонентов.&lt;br /&gt;
&lt;br /&gt;
===Принципиальная схема===&lt;br /&gt;
&lt;br /&gt;
В прошлом месяце была упущена одна вещь, которая облегчает понимание устройства цепи. Для проектов, состоящих более чем&lt;br /&gt;
из двух светодиодов, трудно описать словами, как все соединено. Мы собирались включить вам в помощь электросхему, но не&lt;br /&gt;
хватило места. К счастью, нас выручил один из читателей: Стюарт Уоткисс [Stewart Whatkiss] прислал собственную схему&lt;br /&gt;
проекта, и мы печатаем ее здесь, добавив динамик, чтобы отразить изменения урока этого месяца.&lt;br /&gt;
&lt;br /&gt;
Даже если вы не видели таких схем со школьных времен, понять ее не трудно, и она очень упрощает работу по конструированию электрической цепи. Вы можете видеть различные выходные контакты платы Arduino, и как они подключены к резисторам (показанным с их сопротивлением в 1 КОм). Другие&lt;br /&gt;
символы обозначают переключатели и светодиоды. Переключатели показаны как кратковременный разрыв цепи, а&lt;br /&gt;
светодиоды – как перевернутые треугольники со стрелками, изображающими излучаемый свет, идущий от элемента. Еще одно&lt;br /&gt;
устройство – динамик; ну, его-то легко узнать.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF104_51_1.jpg]]&lt;br /&gt;
[[Изображение:LXF104_51_2.jpg]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E_L%D0%A5F</id>
		<title>LХF100-101:Интepвью LХF</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E_L%D0%A5F"/>
				<updated>2015-06-03T16:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Интepвью LХF в LXF109:BB поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF109:BB]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF109:BB</id>
		<title>LXF109:BB</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF109:BB"/>
				<updated>2015-06-03T16:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Интepвью LХF в LXF109:BB поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Почему Linux готов войти в Большой Бизнес==&lt;br /&gt;
&lt;br /&gt;
: '''Джеймс Литтон''', бывший ИТ-директор Cray and Symantec America, считает, что Microsoft скоро приведет тысячи новых пользователей в Linux. Спасибо, ребята!&lt;br /&gt;
&lt;br /&gt;
30 июня изготовители ПК прекратили продажи компьютеров  с предустановленной Windows XP; 31 января 2009 Microsoft&lt;br /&gt;
прекратит продажи Windows XP; а 14 апреля завершится централизованная поддержка Windows XP. Windows XP лидирует в мире&lt;br /&gt;
по числу корпоративных установок, но ИТ-директоров, похоже, собираются вынудить перейти на новую&lt;br /&gt;
операционную систему, невзирая на время и силы, потраченные на&lt;br /&gt;
создание процессов и процедур поддержки вокруг ХР.&lt;br /&gt;
&lt;br /&gt;
Момент изъятия Microsoft’ом Windows XP с рынка все ближе и ближе, и пора проанализировать возможности, которые этот шаг открывает для перехода на Linux. Ценовое преимущество Linux для рабочего&lt;br /&gt;
стола никогда не оспаривалось: ну что поставишь против бесплатности? Реальность в том, что для смены статус-кво ПО, «free» (имеется&lt;br /&gt;
ли в виду свобода слова или бесплатное пиво) – недостаточно веский аргумент. Стоит лишь прикинуть, насколько глубоко Linux или иные&lt;br /&gt;
свободные и открытые программы проникли на корпоративные ПК, чтобы, как это ни горько, осознать: «свободы» и «бесплатности» мало,&lt;br /&gt;
чтобы ИТ-директора отказались от Windows или MS Office и заменили их на Linux или OpenOffice.org, при всех затратах на лицензирование и&lt;br /&gt;
поддержку.&lt;br /&gt;
&lt;br /&gt;
Так как же нам достичь нашей цели по увеличению количества свободных и открытых программ в коммерческой сфере? Последние&lt;br /&gt;
несколько лет наблюдались значительные улучшения Linux в управлении пакетами, в инструментах GUI и в общей стабильности, и все это вместе взятое превращает его в&lt;br /&gt;
конкурентоспособную систему для значительно большего числа пользователей, чем когда бы то ни было. Хотя пуристы не в восторге от этого, быстрое распространение инструментов GUI не только придает Linux&lt;br /&gt;
практичности и гибкости, но и упрощает его сравнение с существующими решениями для настольного ПК. Я полагаю, что Linux – превосходное решение для любого уровня, но в корпоративном мире это не&lt;br /&gt;
самое главное. Главное – найти решение, которое при желании можно сравнить, по пунктам, с существующим (а в большинстве случаев это&lt;br /&gt;
Windows) – и только тогда мы сможем убедить ИТ-директоров хотя бы задуматься о возможности применения Linux на рабочем столе.&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;
Если вы помните об успехе, достигнутом Linux в публичном секторе,&lt;br /&gt;
вы, возможно, удивляетесь вышесказанному. Коли правительственные департаменты и образовательные учреждения стали переходить&lt;br /&gt;
на Linux, то и все остальные тоже перейдут на него – это лишь вопрос времени, верно? Нет, неверно. Общественные организации и частный&lt;br /&gt;
сектор подходят к затратам с совершенно разных позиций. Я вовсе не намерен огрублять картину принятия решений в государственных&lt;br /&gt;
учреждениях, но нельзя отрицать, что организации, существующие на средства налогоплательщиков, куда больше зависят от стоимости,&lt;br /&gt;
чем коммерческие фирмы, и в результате при противопоставлении решения, подразумевающего нулевые затраты на лицензии, и решения,&lt;br /&gt;
подразумевающего хоть какие-то лицензионные выплаты, даровой вариант выглядит куда привлекательнее, даже если это новое решение&lt;br /&gt;
не идет ни в какое сравнение со старым. Защищая Linux и пытаясь убедить ИТ-директора предпочесть его существующей системе, слишком&lt;br /&gt;
многие из нас концентрируются исключительно на стоимости, и вот здесь-то наши усилия и пропадают впустую. Возможность сэкономить&lt;br /&gt;
на цене зачастую кажется куда более интересной, чем все прочие оспариваемые возможности, но для нас главное – помнить, что финансовые затраты – это лишь часть дискуссии, но никак не вся дискуссия.&lt;br /&gt;
&lt;br /&gt;
Хорошая новость для тех, кто отстаивает интересы свободного и открытого ПО, в том, что на данный&lt;br /&gt;
момент мы имеем сильный, жизнеспособный и конкурентный набор инструментов – которого просто не&lt;br /&gt;
существовало, или он существовал в весьма незрелом виде, еще несколько лет назад. Для примера возьмем ''OpenOffice.org''. Раскладка и функции ''ООо'' сравнимы с существовавшими до 2007 года версиями ''Microsoft Office'', а значит, переходя с ''Office'' на ''OOo'', пользователи вряд ли заблудятся в новом интерфейсе. Еще одно преимущество ''OpenOffice.org'', говорящее в его пользу –&lt;br /&gt;
совместимость с форматами файлов ''Microsoft Office''. И этот факт касается проблем совместимости, которые любой ИТ-директор непременно&lt;br /&gt;
выдвинет как обязательное требование. С такими инструментами, как, например, ''Evolution'' для электронной почты, мы выполняем львиную&lt;br /&gt;
долю требований по функциональности, характерных для большого процента средних корпоративных пользователей. А теперь добавьте&lt;br /&gt;
сюда такие браузеры, как ''Firefox, Konqueror'' или ''Epiphany'' – и вот вам практически готовое решение. Но, к сожалению, остаются еще досадные обстоятельства, с которыми приходится считаться.&lt;br /&gt;
&lt;br /&gt;
===Динамический web===&lt;br /&gt;
&lt;br /&gt;
Одно из таких обстоятельств – сайты, основанные на проприетарных технологиях. Будучи сам владельцем бизнеса, я борюсь с этой проблемой. Я использую онлайн-версию ''QuickBooks'' для управления финансами, но, как вы можете догадаться, сайт требует ''Internet Explorer'', поскольку он использует элементы ''ActiveX'', и получается, что мне нужна физическая или виртуальная рабочая станция ХР; а если я хочу&lt;br /&gt;
работать в Linux, придется заставлять более старую версию ''Internet Explorer'' работать на моей Linux-машине, например, через технологию Wine. Любое из этих решений вполне жизнеспособно, но для специалиста по ИТ они оба работают на идею неготовности не-Microsoft’овского решения для «ответственного момента», побуждая покамест держаться того, что есть.&lt;br /&gt;
&lt;br /&gt;
Еще одна реальная проблема – слабые наборы инструментов для таких областей, как управление проектами и создание диаграмм.&lt;br /&gt;
Многие в корпоративном мире полагаются в своей повседневной работе на такие инструменты, как ''Microsoft Project''. Хотя ''Planner'' и другие&lt;br /&gt;
инструменты очень быстро заполняют этот пробел, нам все же предстоит еще пройти некий путь, чтобы сказать: да, у нас на платформе Linux есть все необходимые инструменты, доступные на других платформах; или – наши инструменты на 100% совместимы по функциональности с инструментами других платформ, например, Windows. При всем при том существуют разные сетевые инструменты, которые, будучи соединены с ОС Linux и ее инструментами, дадут мириады вариантов замены дорогостоящих Microsoft’овских и чисто-Windows решений свободными или недорогими Linux- и web-приложениями.&lt;br /&gt;
&lt;br /&gt;
===Апология===&lt;br /&gt;
&lt;br /&gt;
Уверен, что многие из вас, читая эти строки, отнюдь не ликуют. Возможно, вы думаете, что свободное ПО не предназначено для эмуляции Microsoft, и не должно этого делать. Глубоко вдохните, и давайте еще раз рассмотрим нашу цель: она заключается в том, чтобы на рабочих станциях стало больше Linux и меньше всего остального. Это означает готовность выложить на стол сравнительный анализ, предусмотрев жизнеспособную альтернативу тем инструментам, которых на платформе Linux пока нет – или они есть, но им не хватает функциональности. Отсутствие родного решения в Linux для инструмента,&lt;br /&gt;
имеющегося на платформе Microsoft, не означает, что мы должны развернуться и уйти, потерпев фиаско; просто надо взамен предъявить, например, web-инструмент, обеспечивающий такую же или похожую&lt;br /&gt;
функциональность.&lt;br /&gt;
&lt;br /&gt;
Сейчас важно, важнее чем когда-либо раньше, суметь проложить пути в корпоративную среду: ведь у нас действительно есть решение, способное поспорить с Microsoft практически на всех уровнях. И ключевой момент здесь – умение доказать это тем, кто принимает решения по приобретению технологий. Это означает, что помимо стоимости, мы&lt;br /&gt;
должны выдвигать совершенно иные аргументы, и мы сможем это сделать, если сконцентрируемся на функциональности, управляемости и удобстве использования.&lt;br /&gt;
&lt;br /&gt;
Еще одна проблема, с которой неизбежно столкнутся защитники свободного и открытого ПО – интерес ИТ-руководителей к поддержке и надежности тех программ, которые их просят рассмотреть. Большинство из тех,&lt;br /&gt;
кто принимает решения в сфере ИТ, выбирает некое проприетарное ПО в предположении, что этот продукт соответствует их нуждам, но не менее важно и&lt;br /&gt;
то, что им обещают: если что-то разладится, они получат адекватное содействие. И поэтому, наравне с демонстрацией сравнимой функциональности как аргумента в пользу свободного ПО, нам следует показать, что мы способны предложить не меньшую степень поддержки и надежности для открытых решений.&lt;br /&gt;
&lt;br /&gt;
Для многих это болевая точка, и тем не менее, это крайне важно, и с этим необходимо считаться. Если вы, например, надеетесь убедить&lt;br /&gt;
ИТ-директора отказаться от коммерческого решения типа Windows XP в пользу Linux, а не Vista, единственный ваш шанс преуспеть в&lt;br /&gt;
этом деле – объяснить ему, что имеется более чем достаточная поддержка на случай проблем. Это означает коммерческую поддержку; и&lt;br /&gt;
это означает, что деньги перейдут в другие руки. Пусть для некоторых это звучит ужасно, но это вовсе не порочит принципы свободного и&lt;br /&gt;
открытого ПО – оно остается свободным и открытым, но вы платите за то, чтобы в нужный момент получить необходимую экспертизу. Это&lt;br /&gt;
отнюдь не непреодолимое препятствие, и при правильном к нему отношении мы получим убедительный аргумент. ИТ-директора рассчитывают на выплату некой суммы за поддержку/эксплуатацию продукта – а&lt;br /&gt;
в мире Open Source эти расходы намного меньше, чем в мире аналогичных проприетарных решений; и ИТ-руководители увидят функциональность, надежность и поддержку, сопоставимые с коммерческими&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;
Многие в сообществе FOSS с неприязнью относятся к крупным технологическим корпорациям, однако объективная критика Microsoft и других гигантов индустрии за их подход к обучению целой армии специалистов по поддержке их продукции далеко не гениальна. Нравится это кому или нет, но любой ИТ-руководитель, выбирая продукт, будет учитывать и этот фактор как решающий. Предложите отказаться от&lt;br /&gt;
Windows в пользу Linux, и один из пяти первых вопросов коснется квалификации персонала, необходимой для поддержки новой платформы.&lt;br /&gt;
&lt;br /&gt;
===Обучение персонала===&lt;br /&gt;
&lt;br /&gt;
Как владелец собственного бизнеса, я постоянно ищу персонал с хорошими навыками работы в Linux, и реальность такова, что квалифицированных инженеров Linux значительно меньше, чем квалифицированных инженеров Windows. Самое подходящее решение этой проблемы – поэтапное внедрение при интенсивном обучении имеющегося персонала. Высоки шансы, что ИТ-персонал вполне способен обучиться поддержке настольного Linux.&lt;br /&gt;
&lt;br /&gt;
Это не означает, что каждый сотрудник должен стать экспертом в Linux: им просто понадобятся базовые навыки для повседневной работы. Персонал следует укрепить экспертами, способными справиться с проблемами, ставящими в тупик команду поддержки первого, а возможно, что и второго уровня; понадобится всего несколько человек сверх вашего переобученного штата, и вы сможете сопровождать систему практически безболезненно. Как вы выполните данное требование – неважно, но надо учесть эту проблему и освободить от нее руководителя.&lt;br /&gt;
&lt;br /&gt;
===Начните прямо сегодня!===&lt;br /&gt;
&lt;br /&gt;
Сейчас позиции Linux, а также свободного и открытого ПО на платформе Linux, позволяющие им посягать на корпоративные ПК, сильнее, чем когда-либо прежде. Решение Microsoft прекратить поддержку ХР и&lt;br /&gt;
продвигать на новые ПК Vista означает, что у сторонников свободных программ появилась уникальная возможность склонить баланс от Vista к Linux в борьбе за место Windows XP.&lt;br /&gt;
&lt;br /&gt;
Ключ к успеху в том, чтобы мыслить не только в категориях экономии, но прийти к столу переговоров с готовыми планами, опередив все вопросы, неизбежные для типичного ИТ-руководителя. А это означает упор на функциональность, поддержку и дополнительное обучение ИТ-персонала компании, вовлечение сообщества, наличие эквивалентных или альтернативных инструментов для каждого приложения и достойное обеспечение поддержки и надежности продукта. Уделив этим вопросам должное внимание и эффективно представив их ИТ-руководителю, мы обнаружим, что на Linux перейдет еще больше коммерческих ПК во всем мире,&lt;br /&gt;
и обеспечим Linux возможность успешно заместить ХР. Теперь вы знаете, что делать – ну так идите и делайте! '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===''Wine'': подходящий выбор===&lt;br /&gt;
&lt;br /&gt;
Для тех компаний, которые не могут найти родные альтернативы Linux для всех необходимых программ, ''Wine'' – отличная возможность заставить приложение Windows работать на&lt;br /&gt;
платформе Linux без создания виртуальной машины. Такой подход может сократить затраты, причем новая среда покажется пользователям знакомой и привычной. Количество приложений, способных работать, используя библиотеки ''Wine'', просто ошеломляет. Зайдите на http://winehq.org и посмотрите в '''AppDB''' – сами убедитесь.&lt;br /&gt;
&lt;br /&gt;
Не огорчайтесь, если нужной вам программы нет в списке. Если у вас система, еще более запутанная, чем популярные приложения типа ''MS Office'', вполне возможно, что вы будете первым, кто попробует запустить ее в Linux, и может оказаться, что после мелких переделок она прекрасно заработает.&lt;br /&gt;
&lt;br /&gt;
===Windows на Linux?===&lt;br /&gt;
&lt;br /&gt;
Некоторым организациям волей-неволей придется по-прежнему держать критически важные приложения Windows, неспособные работать с инструментами эмуляции вроде ''Wine'' и не имеющие родных эквивалентов в Linux. К счастью, выход есть.&lt;br /&gt;
&lt;br /&gt;
Один из вариантов для малых групп – взять небольшой инструмент виртуализации, например, ''VirtualBox''; он позволит запускать Windows в Linux, обеспечивая, таким образом, приложению платформу&lt;br /&gt;
для работы. Для программ, которые должны быть доступны большому числу пользователей, есть коммерческие решения, способные решить проблему, пока не появятся нужные приложения на основе web, или&lt;br /&gt;
родные для Linux, позволяющие вашей организации отказаться от чисто Microsoft’овского решения.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w4</id>
		<title>LХF100-101:Rеviеw4</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w4"/>
				<updated>2015-06-03T16:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw4 в LXF106:Темная сторона Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF106:Темная сторона Linux]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF106:%D0%A2%D0%B5%D0%BC%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%B0_Linux</id>
		<title>LXF106:Темная сторона Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF106:%D0%A2%D0%B5%D0%BC%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%B0_Linux"/>
				<updated>2015-06-03T16:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw4 в LXF106:Темная сторона Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Темная сторона Linux==&lt;br /&gt;
&lt;br /&gt;
: Взламывать компьютеры могут не только плохие парни. '''Джон Брэндон''' откроет вам несколько способов обеспечения собственной безопасности с помощью инструментов с Той стороны.&lt;br /&gt;
&lt;br /&gt;
Все мы наслышаны о мрачном и опасном мире хакеров – тема номера в прошлом выпуске была целиком посвящена безопасности, так что мы вовсе не закрываем глаза на угрозы. Но правда заключается в том, что хакерство – это совсем необязательно деятельность, отличающаяся жестокостью и бессердечием.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание= [[Изображение:LXF106_41_1.jpg|300px]]Ювал Бен-Ицхак [Yuval Ben-Itzhak], технический директор Finjan Security, стоит на передовой в борьбе с нарушениями безопасности.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание= [[Изображение:LXF106_41_2.jpg|300px]]Филип Вейтенс [Filip Waeytens] – старший консультант по безопасности, работающий над проектом Remote Exploit BackTrack.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Инструменты, используемые в недостойной и гнусной хакерской субкультуре, могут оказаться очень полезными, если вы – администратор, отвечающий за безопасность корпоративной сети, или предпочли бы не делиться с кем попало своим 3-мегабитным каналом в Интернет. Многие пользователи Linux экспериментировали с хакерством, чтобы убедиться в безопасности собственного компьютера, или загружали Linux-утилиты для взлома личного сервера, дабы показать, к примеру, что ключ WEP далеко не так безопасен, как WPA.&lt;br /&gt;
&lt;br /&gt;
Хакерство – очень туманный термин; он используется для обозначения попытки взлома защищенного маршрутизатора, сетевого устройства, компьютера или сервера.&lt;br /&gt;
Сегодня многие пользователи считают эту деятельность противозаконной, и результаты, выдаваемые Google по запросу ‘define:hacking’ только подтверждают это мнение.&lt;br /&gt;
&lt;br /&gt;
«Юридическое определение [взлома чего-либо] – это «сначала пуля, потом – намерение», – объясняет консультант по безопасности Джастин Пелтьер [Justin Peltier]. – Сканирование портов и уязвимостей обычно считается допустимым, но как только происходит проникновение на другой компьютер – закон нарушен». «Могут быть некоторые разночтения в трактовке хакерства в законодательстве разных стран, – добавляет Торальв Дирро [Toralv Dirro], специалист по стратегии безопасности из McAfee Avert Lab EMEA в Гамбурге. – С технической точки зрения, это часто одно и то же. В ходе поиска имеющихся уязвимостей или неверных настроек, тест предпринимает попытку проникновения, чтобы обнаружить «дыру». Если она оказывается успешной, получается, что вы&lt;br /&gt;
взломали машину». По большей части, говорит Дирро, определение хакерства зависит не от того, какими инструментами вы пользуетесь, а от того, предпринимаете ли вы попытку взлома, и насколько эта попытка удачна. Как выясняется, лучшие инструменты для хакеров реализованы в Linux, а не Windows или Mac OS X. Ни одна ОС не имеет такого многообразия утилит безопасности, как Linux. И, что еще важнее, у нас есть дистрибутивы, которые предоставляют все эти инструменты «в одном флаконе».&lt;br /&gt;
&lt;br /&gt;
Конечно же, Linux опережает Windows и OS X и по количеству дистрибутивов и программ для этичного хакерства, которое также называют тестированием на проникновение. BackTrack 3 – бета-версия которого выложена на http://remote-exploit.org – явный лидер в этой сфере, хотя более старые дистрибутивы, такие как Operator и Metasploit, являют собой наиболее мощные из имеющихся инструментариев типа «все-в-одном». Дистрибутивы и пакеты делятся на определенные категории.&lt;br /&gt;
&lt;br /&gt;
===Что встречается в дистрибутивах===&lt;br /&gt;
&lt;br /&gt;
* '''Сканеры Wi-Fi''' Такие программы, как ''Aircrack-NG'' и ''Kismet'', взламывают шифры, применяемые в 802.11g. Обратите внимание, что в Великобритании незаконно даже пытаться влезть в защищенную беспроводную публичную сеть, например, хот-спот BT в Лондоне. (BT предоставляет как открытые общественные сети, так и закрытые частные для правительственных и бизнес-приложений). «Взломать WEP – пустяк, а вот чтобы вскрыть WPA с помощью ''Cowpatty'', потребуется не только время, но и везение», – утверждает Пелтьер. «Cowpatty взламывает только WPA-PSK, но и на это может уйти несколько месяцев, и чтобы достичь успеха, необходимо захватить аутентификационный пакет».&lt;br /&gt;
&lt;br /&gt;
* '''Взломщики VPN''' Другие излюбленные хакерами инструменты могут проникать в соединение VPN – наиболее распространенный способ входа в частную сеть для корпоративных пользователей. В отличие от Windows, почти любой дистрибутив Linux – кроме тех, которые изначально задумывались как легковесные, навроде Fluxbuntu – включает в себя клиент IPSEC для создания защищенных соединений. «Имеется множество взломщиков VPN, как, например, ''Ikescan'' или ''Ikecrack'', – говорит Филип Вейтенс, один из создателей BackTrack и старший консультант по безопасности. – Кроме того, VPN, работающей в режиме split-tunnel, могут воспользоваться трояны. Есть множество клиентов VPN для Linux, в том числе от таких производителей, как Cisco. Дистрибутивы вроде Astaro (http://www.astaro.org) также предоставляют VPN».&lt;br /&gt;
&lt;br /&gt;
* '''Вирусы и шпионское ПО''' Хотя сам по себе Linux не так восприимчив к вирусным атакам и воздействию шпионских программ, как Windows, все же он не является неуязвимым. Атаки на порты (когда хакер сканирует ваш компьютер на предмет наличия открытых портов, затем устанавливает на нем клиента, который будет рассылать спам или воровать данные) являются редкостью, но они все же возможны. Такие эксперты в области безопасности, как Ювал Бен-Ицхак, технический директор Finjan, советуют пользователям Linux как можно чаще устанавливать патчи. «Исправления безопасности могут быть разными – все зависит от проекта и сообщества», – считает он. Пелтьер сообщает, что патчи иногда довольно медленно проникают в сообщество Linux, и, кроме того, в Интернете очень легко найти весьма доступные версии устаревшего ПО с уязвимостями.&lt;br /&gt;
&lt;br /&gt;
===Как защитить ваш Linux?===&lt;br /&gt;
&lt;br /&gt;
Эксперименты с этичным хакерством в Linux и тестирование на проникновение могут раскрыть вам глаза на жестокий и путаный мир&lt;br /&gt;
хакерства, и в точности покажут, что может сделать преданный конечный пользователь.&lt;br /&gt;
&lt;br /&gt;
Например, мы успешно применили пакет ''Aircrack'', разработанный Кристофом Девином [Christophe Devine] (http://download.aircrack-ng.org)&lt;br /&gt;
для взлома маршрутизатора D-Link DIR-655 802.11n с простым WEP-ключом. На самом деле, это потрясающая картина: экран заполняют пакеты, и инструменты задействуют свое волшебство, а потом, буквально через несколько минут, вы получаете доступ к сетевому ресурсу. Да, потрясающе, по крайней мере, до тех пор, пока вы не осознаете, насколько это просто, и как уязвимо большинство машин – не говоря уже о том, что многие точки доступа и домашние беспроводные&lt;br /&gt;
сети совершенно не предусматривают никаких мер предосторожности. Взламывая WEP-кключ, мы получаем полный доступ ко всем сетевым&lt;br /&gt;
подключениям маршрутизатора.&lt;br /&gt;
&lt;br /&gt;
===Сделай сам===&lt;br /&gt;
&lt;br /&gt;
Защита в Linux – то, чем занимаются исключительно по собственному почину. Здесь не так много коммерческих продуктов, которые болтаются в системном лотке и защищают ноутбук от взлома или автоматически настраивают порты на брандмауэре. Главные усилия нужно сосредоточить на безопасности&lt;br /&gt;
основной точки входа: беспроводном маршрутизаторе. Вейтенс из Remote Exploit рекомендует включить WPA2 и использовать ключ длиной не менее 12 символов верхнего и нижнего регистров, включая неалфавитно-цифровые (например, '''$''' и '''^'''). Вейтенс также напоминает, что фильтрация MAC-адресов и запрет на рассылку SSID вашей сети остановят только начинающих хакеров-любителей.&lt;br /&gt;
&lt;br /&gt;
Конечно, чем более сильное шифрование используется на маршрутизаторе, тем сложнее запомнить ключ, и это вынуждает вас записывать его и вводить при каждом входе в домашнюю сеть. Эмпирическое правило гласит, что если вы можете запомнить свою парольную фразу, значит, она недостаточно хороша.&lt;br /&gt;
&lt;br /&gt;
Непосредственно на компьютере Вейтенс рекомендует использовать инструменты обнаружения руткитов, например, ''Rootkit Hunter'' (http://www.rootkit.nl) и ''Chkrootkit'' (http://www.chkrootkit.org); включить персональный брандмауэр (в такие дистрибутивы, как SLED, они встроены «из коробки»); и использовать мощное антивирусное ПО, например, ''Vexira'' (http://www.centralcommand.com) и ''Panda Software Anti-Virus'' (http://www.pandasoftware.com).&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 неработоспособным.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
«Черная шляпа» – это злонамеренный хакер, чья цель – украсть код или подсадить вам вирус. А «белая шляпа» – это, соответственно, тот кто тестирует систему на проникновение, но при этом не собирается нарушать закон (названия пришли из старых вестернов 50-х годов, когда&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;
===Теневой оператор===&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;
от ответственности за их нарушение.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Один из самых почтенных дистрибутивов Linux для всех видов тестирования на проникновение – это Operator, который существует уже&lt;br /&gt;
несколько лет, и успел обзавестись верными последователями, несмотря на то, что его создатель, Джеффри Барбер [Jeffrey Barber], бывший&lt;br /&gt;
аналитик сетевой безопасности, уже давно переключился на другие вещи, и даже больше не работает в данной области.&lt;br /&gt;
&lt;br /&gt;
«Я создал Operator, потому что у меня был собственный арсенал инструментов, и мне нужен был CD, с которого я мог бы загрузиться и&lt;br /&gt;
получить их все сразу, – поведал Барбер Linux Format. – Operator был просто игрушкой. Но моим друзьям он понравился, и я приложил уси-&lt;br /&gt;
лия к тому, чтобы им могли пользоваться другие люди, а потом станазывать его инструментарием безопасности. Наконец, Operator попал&lt;br /&gt;
на на Slashdot.org».&lt;br /&gt;
&lt;br /&gt;
Барбер объясняет, что в Operator есть три вида основных инструментов. ''Nikto'' сканирует сеть на предмет наличия уязвимостей на серверах и задействует SSL, чтобы проверить защищенность VPN; ''Nessus'' – программа аудита сетевой безопасности, которая сканирует&lt;br /&gt;
компьютеры и ищет лазейки; а ''Metasploit'' – это инструмент тестирования на проникновение. Основная идея, используемая в Operator, такова:&lt;br /&gt;
загрузить в компьютер программу, которая реплицирует уязвимость, и продемонстрировать, как хакеры могут воспользоваться этим черным&lt;br /&gt;
ходом – в общем, доказательство концепции для менеджмента. В руках&lt;br /&gt;
черной шляпы все три инструмента могут стать орудием взлома,&lt;br /&gt;
хотя подобное редко является намерением тех людей, которые&lt;br /&gt;
создают данные программы и занимаются их распространением. Все они, как правило, являются аналитиками по безопасности и системными администраторами.&lt;br /&gt;
&lt;br /&gt;
«Я собрал дистрибутив сам, но он был бы совершенно бесполезен, если бы не люди, создающие инструменты безопасности, – говорит Барбер. – Operator давал мне средства для поиска уязвимостей. В то время я отвечал за безопасность системы и сети. Этот инструмент позволял мне легко и быстро убедить руковод-&lt;br /&gt;
ство в том, что безопасности надо уделять больше внимания и воспринимать ее серьезнее».&lt;br /&gt;
&lt;br /&gt;
На вопрос, не планирует ли он обновить Operator, добавив в него новые инструменты, Барбер ответил, что он решил заморозить дальнейшую разработку, чтобы Operator можно было и впредь использовать для тестирования возможностей проникновения на старых системах. Он говорит, что периодически беседует с экспертами по безопасности о хакерских атаках середины 90-х и о том, как тогда находили и залатывали «дыры». Его совет нынешним специалистам:&lt;br /&gt;
обязательно используйте что-то вроде Operator для поиска возможностей проникновения и закрывайте уязвимости соответствующими способами, например, межсетевыми экранами, а также установкой патчей и обновлениями.&lt;br /&gt;
&lt;br /&gt;
«Тестирование на проникновение никогда и никуда не денется, – говорит он. – Если вы – аналитик отдела безопасности, вы должны проводить эти тесты по крайней мере для того, чтобы не отставать от черных шляп – в противном случае вы просто проедаете деньги и зря теряете время». '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Торальв Дирро из McAfee===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание= [[Изображение:LXF106_41_3.jpg|300px]]|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
: '''Linux Format''' запинговал '''Торальва Дирро''' из McAfee вопросами, чтобы заставить его поговорить о состоянии хакерских дел в Linux.&lt;br /&gt;
&lt;br /&gt;
'''''Linux Format'': Как различить инструменты для этичного хакерства и взлома со злым умыслом?'''&lt;br /&gt;
&lt;br /&gt;
'''Торальв Дирро''': Инструменты для этичного хакерства – например, аудита безопасности или теста на возможность проникновения в&lt;br /&gt;
систему с явного согласия владельца в строго законных рамках – в большинстве случаев, те же самые. Дело не в инструменте, а в том, как&lt;br /&gt;
и с какими целями его используют. &lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Назовите, пожалуйста, несколько лучших дистрибутивов для тестов на проникновение. В чем уникальность каждого из них, и к чему они подходят наиболее оптимально?'''&lt;br /&gt;
&lt;br /&gt;
'''ТД''': Те, кто серьезно работают в данной области, обычно используют универсальный дистрибутив по своему выбору, и устанавливают или компилируют все нужные инструменты, обновляя их, когда это необходимо.&lt;br /&gt;
&lt;br /&gt;
Есть несколько специализированных дистрибутивов, в которых собраны наиболее общие инструменты. Самый известный – BackTrack, Live CD, который был специально разработан для анализа безопасности. Другой пример – Knoppix Security Tools Distribution. Учитывая, что в разных странах законодательство трактует хакерские инструменты по-разному, следует всякий раз узнавать, допустимо ли использование того или иного приложения и дистрибутива.&lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Какие шаги надо предпринять в Linux, если вы, сидя в обычной кофейне, захотите проверить, можно ли взломать некий ноутбук?'''&lt;br /&gt;
&lt;br /&gt;
'''ТД''': Первый, и самый важный шаг – получить разрешение хозяина этого ноутбука, а также владельца сети – и сделать это до того, как вы загрузите какие-либо инструменты или запустите уже установленные программы. Опять же, не забудьте о местных законах. &lt;br /&gt;
&lt;br /&gt;
'''''LXF'': Как вы думаете, почему Linux так часто встречается на компьютерах хакеров?'''&lt;br /&gt;
&lt;br /&gt;
'''ТД''': Наиболее очевидная причина – это доступность инструментов, которые легко можно настроить под определенные цели: компиляторы и все необходимое наличествует. За последние несколько лет все это стало доступным и для других платформ, поэтому на сегодняшний день вряд ли есть разница, что&lt;br /&gt;
использовать: Linux, BSD, Windows или Mac OS X.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w2</id>
		<title>LХF100-101:Rеviеw2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w2"/>
				<updated>2015-06-03T16:55:19Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw2 в LXF106:Review4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF106:Review4]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF106:Review4</id>
		<title>LXF106:Review4</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF106:Review4"/>
				<updated>2015-06-03T16:55:19Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw2 в LXF106:Review4 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==gOS Rocket==&lt;br /&gt;
&lt;br /&gt;
: Познакомьтесь – еще один последователь Ubuntu. '''Майк Сондерс''', заправив баки, стартует на gOS Rocket...&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Дистрибутив Linux, нацеленный главным образом на интернет-приложения, в особенности ''Firefox''.&lt;br /&gt;
|также=Puppy Linux и другие дистрибутивы, в которых ''Firefox'' занимает центральное место.&lt;br /&gt;
|изображение=LXF106_13_1.jpg&lt;br /&gt;
|подпись=У ''Enlightenment'' приятный рабочий стол, но разные размеры шрифтов придают дистрибутиву дилетантский вид.&lt;br /&gt;
|разработчик=Good OS LLC&lt;br /&gt;
|сайт=http://www.thinkgos.com&lt;br /&gt;
|цена=Бесплатно (лицензия Creative Commons)&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=5&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=9&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=8&lt;br /&gt;
|параметр4=Документация&lt;br /&gt;
|оценка4=2&lt;br /&gt;
|итог=Замечательная система для походов по Интернету, в остальном же довольно неуклюжая.&lt;br /&gt;
|рейтинг=6&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Эндрю считает...|Содержание=«Майк слишком суров. Для многих, Интернет – это единственное, ради чего вообще стоит&lt;br /&gt;
подходить к компьютеру, и gOS, с его быстрыми и информативными пиктограммами придется им как раз впору».|Ширина=150px}}&lt;br /&gt;
&lt;br /&gt;
В двух словах: gOS – это облегченная версия Ubuntu 7.10 с рабочей средой ''Enlightenment'', которая предустанавливается на малобюджетные ($199) ПК, продающиеся в США через Wall-Mart, и субноутбук Everex CloudBook, так что для многих&lt;br /&gt;
он будет «моим первым Linux’ом». Система загружается прямо с CD (ISO-образ занимает 536 МБ), есть возможность установки на&lt;br /&gt;
жесткий диск с помощью знакомого – простого и удобного – инсталлятора Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Рабочий стол ''Enlightenment'' ужасно пестрый,&lt;br /&gt;
с рядом значков в стиле Mac OS X внизу экрана, которые вырастают в размерах при наведении курсора мыши. Выглядит симпатично.&lt;br /&gt;
&lt;br /&gt;
''Firefox'' правит бал: почти каждая пиктограмма запускает браузер с каким-либо особым сайтом, например Google Mail, Google&lt;br /&gt;
Docs, Google Maps, Blogger, Facebook или Wikipedia. Есть значки для запуска ''Skype, Xine'' и ''Rhythmbox''. Дополнительные программы (упомянем ''Pidgin, GIMP, Thunderbird'' и ''OpenOffice.org'') доступны по щелчку левой кнопкой мыши на рабочем столе, поддержка воспроизведения Flash и DVD прилагается. То есть, дистрибутив вполне «упакован» для Linux-новичка, но среднего линуксоида скудость арсенала администрирования разочарует.&lt;br /&gt;
&lt;br /&gt;
Зато системные требования ''Enlightenment'' весьма умеренны. После загрузки система&lt;br /&gt;
занимает всего 96 МБ ОЗУ: существенно меньше Xubuntu с его 156 МБ. На винчестере&lt;br /&gt;
дистрибутив размещается всего на 1,8 ГБ, сверхсовременного оборудования не требует. ''Enlightenment'' легко настроить с помощью&lt;br /&gt;
привлекательной панели управления, а значит, не понадобится плутать в конфигурационных файлах, чтобы подправить рабочий стол&lt;br /&gt;
«под себя».&lt;br /&gt;
&lt;br /&gt;
===Стартовая площадка===&lt;br /&gt;
&lt;br /&gt;
Главный недостаток – документация. О руководстве пользователя и говорить не приходится – только горстка полуосвещенных (либо&lt;br /&gt;
вовсе оставленных без ответа) вопросов на http://www.faqly.com. Пусть пользователь большую&lt;br /&gt;
часть времени будет проводить в ''Firefox'' – хотелось бы видеть общее руководство по ОС,&lt;br /&gt;
охватывающее вопросы настройки оборудования, установки ПО и т.п.&lt;br /&gt;
&lt;br /&gt;
gOS очень портит бессвязность и разрозненность во всем, что не касается рабочего&lt;br /&gt;
стола. Да, дистрибутив служит в основном запускалкой для ''Firefox'', но ведь никто еще&lt;br /&gt;
не обходился без текстового редактора для заметок, офисного пакета для документов ,&lt;br /&gt;
медиаплейера для воспроизведения локальной музыки. Здесь-то gOS и спотыкается:&lt;br /&gt;
вскоре после эффектного старта из-под блестящей облицовки проступает грубый каркас.&lt;br /&gt;
Темы и размеры шрифтов прилагаемого ПО расположились как попало – взгляните на&lt;br /&gt;
экранный снимок.&lt;br /&gt;
&lt;br /&gt;
Поклонники gOS могут возразить, мол, дистрибутив «заточен под ''Firefox''». Хорошо,&lt;br /&gt;
но ведь ''Firefox'' есть во многих дистрибутивах – можно пользоваться любым из них. В общем,&lt;br /&gt;
нам хотелось бы видеть в gOS не только интернет-приложения, пусть и изрядно «причесанные». Дистрибутив неплохой, направление выбрано правильно, но перед окончательным выпуском еще предстоит потрудиться. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Свойства навскидку==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF106_13_2.jpg]]&lt;br /&gt;
*'''Док'''&lt;br /&gt;
*:Док-область внизу рабочего стола отображает работающие программы и позволяет добавлять значки быстрого запуска.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF106_13_3.jpg]]&lt;br /&gt;
*'''Настройки'''&lt;br /&gt;
*:''Enlightenment'' подкреплен мощным инструментом настройки рабочего окружения.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BEntribut%D0%BErs</id>
		<title>Соntributоrs</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/%D0%A1%D0%BEntribut%D0%BErs"/>
				<updated>2015-06-03T16:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Соntributоrs в LXF100-101:Меняем прописку поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF100-101:Меняем прописку]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF100-101:%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%BA%D1%83</id>
		<title>LXF100-101:Меняем прописку</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF100-101:%D0%9C%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%BA%D1%83"/>
				<updated>2015-06-03T16:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу Соntributоrs в LXF100-101:Меняем прописку поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''Мигрируем из Windows на Linux''' Меняем «прописку» без лишних проблем&lt;br /&gt;
[[Категория:Учебники]][[Категория:Первые шаги]]&lt;br /&gt;
&lt;br /&gt;
==Экспорт: календарь, почта и контакты==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Миграция из Windows}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 1:''' Экспорт ваших контактов из Outlook или Outlook Express может стать настоящей головной болью. '''Джо Касселc''' объяснит, как ее избежать.&lt;br /&gt;
&lt;br /&gt;
Сейчас на свете полно простых в использовании дистрибутивов Linux, и мигрировать из Windows не так уж и сложно. Перенести данные также легко. Если у вас конфигурация с двойной загрузкой, создайте общий раздел для данных; в противном случае проще всего скопировать данные из одной системы в другую&lt;br /&gt;
с помощью USB-брелка, так как не придется иметь дело с сетевыми правами доступа.&lt;br /&gt;
&lt;br /&gt;
Если вы какое-то время пользовались Windows-версиями популярных приложений с открытым исходным кодом, то, начав работать в&lt;br /&gt;
KDE или Gnome, культурного шока не испытаете. Обе среды ближe к Windows, чем Mac OS. Зато пользователей ''Outlook'' ожидает реальная&lt;br /&gt;
головная боль. Перенос персональных данных из файлов закрытого Microsoft формата '''PST''' – дело, мягко говоря, непростое. Нельзя просто&lt;br /&gt;
скопировать '''PST'''-файл в Linux и импортировать его в ''Kontact, Evolution'' или ''Thunderbird:'' он не будет работать. Этот файл запутан покруче иного морского узла – классический пример «иглы одного поставщика».&lt;br /&gt;
&lt;br /&gt;
Если этот файл нельзя открыть нигде, кроме ''Outlook'', а ''Outlook'' нельзя запустить нигде, кроме Windows – считай, при переходе мы&lt;br /&gt;
хорошо завязли. Предстоит сделать выбор: похоронить свои данные, убедиться, что ''Outlook'' запускается на виртуальной машине Windows,&lt;br /&gt;
или продолжать использовать раздел Windows. Любому, кто собрался послать Windows прощальный поцелуй, придется крепко подумать.&lt;br /&gt;
&lt;br /&gt;
===Экспорт из Windows===&lt;br /&gt;
&lt;br /&gt;
Осознаем ключевой момент: переезд требует планирования. Пока вы в Windows, нужно предпринять шаги, обеспечивающие экспорт данных в формат, с которым сможет работать новая программа.&lt;br /&gt;
&lt;br /&gt;
Решить эту проблему можно несколькими способами. ''Outlook'' может экспортировать данные в файлы разных форматов, но для нас действительно полезен только один из них – '''CSV''' (‘comma-separated values’ – «значения, разделенные запятыми»). Внутренность папки&lt;br /&gt;
преобразуется в простой текст, содержащий поля, разделенные запятыми. Это хороший вариант для списка контактов и других небольших&lt;br /&gt;
баз данных, но он провалится, если попытаться экспортировать архив электронной почты. Если вы пользуетесь почтовым сервером '''IMAP'''&lt;br /&gt;
вместо '''POP''', то сможете считать оттуда все сообщения, так как не храните их локально, но проблема с сообщениями в архиве останется.&lt;br /&gt;
&lt;br /&gt;
====Календарь====&lt;br /&gt;
&lt;br /&gt;
События календаря можно экспортировать из ''Outlook'' в файл формата '''CSV''', но в данном случае это не лучший выбор. Гораздо практичнее&lt;br /&gt;
конвертировать календарь в стандартный формат '''ICS''', используемый web-календарями.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Ресурсы|Содержание= * ''Outlook2iCal'' Утилита экспорта для ранних версий ''Outlook'', не поддерживающих экспорт в формат '''iCal'''. http://outlook2ical.sourceforge.net&lt;br /&gt;
&lt;br /&gt;
* ''Mozilla Thunderbird'' Версия для Windows. Нужна для экспорта почтовых архивов ''Outlook'' в формат, который могут обрабатывать программы для электронной почты в Linux. http://www.mozilla-russia.org/products/thunderbird/&lt;br /&gt;
&lt;br /&gt;
* ''Mozilla Sunbird'' Версия для Linux http://www.mozilla-russia.org/projects/calendar/sunbird/|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В ''Outlook 2007'' есть возможность выслать календарь по электронной почте в файле формата '''ICS'''. '''ICS'''-файл легко импортируется в&lt;br /&gt;
''Evolution'' или любую другую программу-календарь. Чтобы сделать это, откройте ''Outlook'' и переключитесь на календарь. На панели навигации&lt;br /&gt;
выберите '''Отправить Календарь По Почте''' [Send Calendar Via Email].&lt;br /&gt;
Задайте диапазон дат, который нужно экспортировать, и другие необходимые настройки. После завершения работы мастера будет создано&lt;br /&gt;
электронное сообщение с прикрепленным к нему файлом '''ICS'''. Теперь сохраните вложение на жесткий диск или другой носитель, с помощью&lt;br /&gt;
которого вы будете передавать данные в Linux.&lt;br /&gt;
&lt;br /&gt;
В более ранних версиях ''Outlook'' экспортировать данные непосредственно в '''ICS''' нельзя, поэтому нам понадобится макрос, который сделает эту работу. Загрузить макрос ''Outlook2iCal'' можно с сайта http://outlook2ical.sourceforge.net, причем на ваш ПК с Windows, поскольку файл надо будет распаковать и установить в ''Outlook''. Но сперва позаботьтесь, чтобы ''Outlook'' был не против принять макросы. Для этого&lt;br /&gt;
откройте '''Сервис &amp;gt; Макросы &amp;gt; Безопасность''' [Tools &amp;gt; Macro &amp;gt; Security]&lt;br /&gt;
и измените уровень безопасности на '''Средний''' [Medium] или более&lt;br /&gt;
низкий.&lt;br /&gt;
&lt;br /&gt;
Для установки макроса откройте редактор ''Visual Basic''. Выберите '''Сервис &amp;gt; Макросы &amp;gt; Редактор Visual Basic''' [Tools &amp;gt; Macro &amp;gt; Visual Basic&lt;br /&gt;
Editor]. В окне проекта слева кликните правой кнопкой мыши на иконке проекта в верхней части дерева и выберите «'''Импорт файла'''» (Import&lt;br /&gt;
File). Найдите каталог, куда вы распаковали ''Outlook2iCal'', и выберите файл '''frmSaveiCalStep1.frm'''. Сделайте то же самое с другими файлами&lt;br /&gt;
в этом же каталоге: '''frmSaveiCalStep2.frm, frmSaveiCalStep3.frm, clsFTP.cls''' и '''icalendar.bas'''. Закройте редактор Visual Basic.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF100_71_1.jpg|300px]]  Импортируйте почтовые сообщения с помощью ''Mozilla Thunderbird'' для Windows.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Теперь можете запустить макрос, выбрав '''Tools &amp;gt; Macro &amp;gt; Macros &amp;gt; export_icalendar &amp;gt; Run'''. Макрос запустит несложного Мастера. Выберите&lt;br /&gt;
календарь, который хотите экспортировать, и нажмите '''Далее''' [Next].&lt;br /&gt;
Если календарь у вас большой, придется немного подождать. При наличии в календаре категорий, на этой стадии вы сможете отобрать&lt;br /&gt;
из них только нужные, либо выбрать '''Export All Appointments In Calendar''' [Выбрать все]. Сохраните календарь на диске, задав ему имя и местоположение. Нажмите '''Завершить''' [Finish]. Теперь календарь можно скопировать на носитель, предназначенный для переноса данных.&lt;br /&gt;
&lt;br /&gt;
====Почта====&lt;br /&gt;
&lt;br /&gt;
Сложнее всего экспортировать почтовый архив, особенно если он рассортирован по папкам, а некоторых сообщений нет ни в одной папке&lt;br /&gt;
''Outlook''. Прежде чем начать, создайте каталог для таких сообщений и перенесите их туда. Вы также обнаружите, что чем больше файл '''PST''',&lt;br /&gt;
тем выше вероятность возникновения проблем с его экспортом, и лучше уменьшить количество сообщений до начала процесса. Сейчас&lt;br /&gt;
самое время найти сообщения, которые вряд ли понадобятся снова и просто занимают место, и удалить их. Небольшое «обезжиривание»&lt;br /&gt;
повысит шансы на успех.&lt;br /&gt;
&lt;br /&gt;
''Outlook'' не экспортирует данные в какой-либо из открытых почтовых форматов, и нам потребуется программа-посредник. Другие программы, запущенные в той же системе, что и ''Outlook'', могут импортировать почту непосредственно из ''Outlook'', так как у них есть доступ к библиотекам для декодирования '''PST'''-файлов. Это означает, что данные из ''Outlook'' можно перенести в Windows-версию ''Thunderbird'', конвертируя их в открытый формат.&lt;br /&gt;
&lt;br /&gt;
Загрузить ''Thunderbird'' для Windows можно с сайта http://www.mozilla-russia.org/products/thunderbird/. Установите ее в Windows обычным образом. При первом запуске ''Thunderbird'' будет предложено импортировать данные и настройки. Выберите «'''Не импортировать ничего на этом этапе''' [Don’t Import Anything At This Stage]. Также не нужно делать ''Thunderbird'' почтовой программой по умолчанию. Потом&lt;br /&gt;
можно будет импортировать сообщения поэтапно, если потребуется.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF100_71_2.jpg|300px]] Если ''Thunderbird'' импортировал почтовые папки, значит, они пригодны для переноса в Linux.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
В ''Thunderbird'' выберите пункт меню '''Сервис &amp;gt; Импорт''' [Tools &amp;gt; Import] и затем '''Почта''' [Mail]. Нажмите '''Далее''' [Next] и выберите импорт&lt;br /&gt;
данных из ''Outlook''. Снова нажмите ''Далее'', чтобы начать импорт. ''Thunderbird'' сконвертирует почтовые папки ''Outlook'' и после завершения импорта покажет результат. Полюбопытствуйте в какой-нибудь из папок, правильно ли были импортированы сообщения или нет. Если все хорошо, закройте ''Thunderbird'', так как теперь можно просто скопировать почтовые папки, которые он использует. Обычно они находятся в каталоге '''C:\Documents and Settings\имя_пользователя\Application Data\Thunderbird\Profiles\идентификатор_профиля\Mail\Local Folders''' в Windows XP и в каталоге '''C:\Users\имя_пользователя\AppData\Local\Thunderbird\Profiles\идентификатор_профиля\Mail\Local Folders''' в Vista. Чтобы увидеть каталог '''AppData''', нужно включить отображение скрытых файлов и каталогов. Для этого в XP откройте папку и выберите '''Сервис &amp;gt; Свойства папки &amp;gt; Вид &amp;gt; Показывать скрытые файлы и папки''' [Tools &amp;gt; Folder Options &amp;gt; View &amp;gt; Show hidden files and folders]. В Vista быстрее всего это можно сделать, напечатав '''Folder Options''' в строке поиска меню «Пуск». Скопируйте содержимое папки '''Mail''' целиком на диск для переноса данных в Linux.&lt;br /&gt;
&lt;br /&gt;
При импорте большого объема писем в ''Thunderbird'' могут возникнуть проблемы. В этом случае полезно попробовать экспортировать&lt;br /&gt;
данные порциями, каждый раз сохраняя копию файла '''PST''' и удаляя все сообщения, которые не входят в заданный диапазон дат. Оставшиеся&lt;br /&gt;
сообщения затем можно импортировать в ''Thunderbird'' и скопировать файлы таким же образом, как и раньше. После этого нужно вернуться&lt;br /&gt;
в ''Outlook'', импортировать '''PST'''-файл из резервной копии и повторить эти операции с другим диапазоном дат. Воспользуйтесь этим подходом, если импортировать архив целиком не удается.&lt;br /&gt;
&lt;br /&gt;
====Контакты====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=При экспорте данных из файла ICS диапазон дат ограничен десятью годами. Для повторяющихся событий, вроде&lt;br /&gt;
дней рождения, которые выпадают из этого диапазона, может потребоваться изменение их повторяемости при импорте в ''Evolution''.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Самый простой способ перенести контакты – экспортировать их в '''CSV'''-файл из ''Outlook''. Выберите пункт меню '''Файл &amp;gt; Импорт и Экспорт &amp;gt; Экспорт в файл &amp;gt; Разделенные запятыми значения (DOS) &amp;gt; Контакты''' [File &amp;gt; Import and Export &amp;gt; Export to a file &amp;gt; Comma Separated Values (DOS) &amp;gt; Contacts] и укажите имя файла и каталог, в который он будет сохранен. После создания файла скопируйте его на диск для переноса&lt;br /&gt;
данных.&lt;br /&gt;
&lt;br /&gt;
Альтернатива – импортировать контакты ''Outlook'' в Windows-версию ''Thunderbird'' и затем экспортировать их оттуда. Этот подход удобен,&lt;br /&gt;
когда файл '''CSV''' не импортируется должным образом в новую почтовую программу. В ''Thunderbird'' выберите '''Сервис &amp;gt; Импорт &amp;gt; Адресные книги &amp;gt; Outlook''' [Tools &amp;gt; Import &amp;gt; Address Books &amp;gt; Outlook] и подождите, пока импортируются контакты. Затем нажмите кнопку '''Адресная книга''' [Address Book] на панели инструментов и выберите адресную книгу, предназначенную для экспорта. Выберите пункт меню '''Сервис &amp;gt; Экспорт''' [Tools &amp;gt; Export] и укажите имя файла. Оставьте тип адресной книги по умолчанию ('''LDIF''') и нажмите кнопку '''Сохранить''' [Save]. Теперь&lt;br /&gt;
можно скопировать этот файл на диск с остальными файлами.&lt;br /&gt;
&lt;br /&gt;
====Задачи====&lt;br /&gt;
&lt;br /&gt;
С задачами будет посложнее, потому что, в отличие от календарей, единого формата файлов для них нет. Как и список контактов, задачи можно экспортировать в файл формата '''CSV'''. К несчастью, этот файл не получится импортировать ни в ''Evolution'', ни в ''Kontact'', что немного&lt;br /&gt;
раздражает. Впрочем, можно распечатать список контактов из ''Outlook'', чтобы потом было проще снова вводить их вручную.&lt;br /&gt;
&lt;br /&gt;
===Импорт в Linux===&lt;br /&gt;
&lt;br /&gt;
Экспортировав календарь, сообщения электронной почты, контакты и задачи в лучших возможных для ''Outlook'' форматах, можете переносить&lt;br /&gt;
их в Linux и импортировать в подходящую программу. Подключите диск для переноса данных или смонтируйте CD или DVD с ними и скопируйте данные в ваш домашний каталог. Можно этого и не делать, но гарантия того, что данные сохранены локально, поможет существенно упростить все, что мы будем делать дальше.&lt;br /&gt;
&lt;br /&gt;
====Контакты====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=Воспользуйтесь утилитой экспорта ''Outlook'' для сохранения резервной копии '''PST'''-файла.&lt;br /&gt;
Это поможет восстановить данные, если вы случайно удалите не те сообщения или угробите данные в процессе переноса. Записав эту копию на DVD,&lt;br /&gt;
вы будете уверены, что данные в сохранности, пусть и в закрытом формате. В чрезвычайной ситуации вы можете воспользоваться компьютером друга&lt;br /&gt;
с ОС Windows.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Начнем с самого простого. Откройте ''Evolution'' и нажмите на кнопку '''Контакты''' [Contacts]. Выберите '''Файл &amp;gt; Импорт''' [File &amp;gt; Import]; запустится '''Мастер Импорта Evolution''' [Evolution Import Assistant]. Нажмите '''Вперед''' [Forward] и выберите '''Импорт из файла''' [Import a single&lt;br /&gt;
file]. Нажмите '''Вперед''' [Forward], затем кнопку '''Имя файла''' [Filename]. Выберите '''CSV'''-файл, содержащий данные о контактах. Нажмите&lt;br /&gt;
'''Вперед''' [Forward] и укажите каталог, куда будут импортированы данные (скорее всего, персональные папки). Нажмите '''Вперед''' [Forward], затем&lt;br /&gt;
'''Импорт''' – и дело сделано. Просмотрите некоторые контакты, чтобы убедиться в правильности импорта. Если в '''CSV'''-файле есть ошибки&lt;br /&gt;
сдвига строки или поля, не распознаваемые ''Evolution'', могут возникнуть проблемы.&lt;br /&gt;
&lt;br /&gt;
Если импорт не удался, откройте '''CSV'''-файл с контактами в редакторе электронных таблиц и сравните содержимое полей с контактами,&lt;br /&gt;
чтобы понять причину ошибки. Попробуйте отредактировать файл таким образом, чтобы поля в нем появлялись в том же порядке, в котором они импортируются ''Evolution''. Сохраните копию файла под другим именем и удалите все контакты в ''Evolution''. Импортируйте измененную версию '''CSV'''-файла. Если счастья все нет, попробуйте сгенерировать адресную книгу в формате '''LDIF''' с помощью Windows-версии ''Thunderbird'' и импортируйте в ''Evolution'' ее.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF100_73_1.jpg|300px]] Импортируйте свой список контактов в формате '''CSV''' в ''Evolution'', чтобы создать адресную книгу под Linux.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Если вы используете ''Kontact'', запустите программу и нажмите на кнопку '''Контакты''' [Contacts]. Выберите '''Файл &amp;gt; Импорт &amp;gt; Импорт файла CSV''' [File &amp;gt; Import &amp;gt; Import CSV list] и укажите файл с контактами. Здесь можно столкнуться с теми же проблемами, что и в случае с ''Evolution'', и&lt;br /&gt;
если импорт данных из '''CSV''' не получается, решением опять будет импорт из '''LDIF'''-файла. Если вы предпочитаете ''Thunderbird'', то там импортировать контакты очень просто. Запустите программу и выберите '''Сервис &amp;gt; Импорт &amp;gt; Адресные книги''' [Tools &amp;gt; Import &amp;gt; Address Books] и укажите файл, который хотите импортировать. Для лучшей совместимости можно пропустить контакты ''Outlook'' через ''Thunderbird'' для Windows, а уж потом переносить их в Linux.&lt;br /&gt;
&lt;br /&gt;
====Календарь====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF100_73_2.jpg|300px]] Можно импортировать календарь в формате '''ICS''' в ''Evolution'' или связать его с web-календарем.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Теперь импортируем ваши встречи. В ''Evolution'' переключитесь на календарь и выберите '''Файл &amp;gt; Импорт''' [File &amp;gt; Import]. Запустится мастер импорта. Нажмите '''Вперед''' [Forward] и выберите '''Импорт из файла''' [Import a single file]. Нажмите кнопку рядом с именем файла и выберите свой файл формата '''ICS'''. Нажмите '''Открыть''' [Open], затем '''Вперед''' [Forward] и выберите календарь, который хотите импортировать. Нажмите '''Импортировать''' [Import] для выполнения импорта.&lt;br /&gt;
&lt;br /&gt;
В ''Kontact'' переключитесь на календарь и выберите пункт меню '''Файл &amp;gt; Импорт &amp;gt; Импортировать календарь''' [File &amp;gt; Import &amp;gt; Import Calendar].&lt;br /&gt;
Найдите '''ICS'''-файл и нажмите '''Открыть''' [Open]. Выберите '''Объединить с текущим календарем''' [Merge Into Existing Calendar] и нажмите '''OK'''.&lt;br /&gt;
&lt;br /&gt;
Если вы хотите работать с почтой и контактами в ''Thunderbird'', то знайте, что календаря в нем нет. Поэтому вам может пригодиться программа ''Mozilla Sunbird'', найти которую можно на странице http://www.mozilla-russia.org/projects/calendar/sunbird/. Загрузите версию под Linux и распакуйте содержимое архива в свой домашний каталог. В окне терминала перейдите в каталог '''Sunbird''' и введите команду ''sh sunbird'' для запуска программы. Выберите '''Файл &amp;gt; Импорт''' [File &amp;gt; Import], найдите '''ICS'''-файл, содержащий календарь, и выберите '''Открыть''' [Open], чтобы импортировать его.&lt;br /&gt;
&lt;br /&gt;
====Почта====&lt;br /&gt;
&lt;br /&gt;
Экспортировав почтовые папки с помощью ''Thunderbird'' для Windows, импортировать их в Linux на удивление просто: нужно всего лишь&lt;br /&gt;
скопировать файлы в правильное место. Откройте свой домашний каталог и выберите '''Вид &amp;gt; Отображать скрытые файлы''' [View &amp;gt; Show hidden files]. Откройте каталог '''.evolution''', а затем – почтовый каталог и локальный каталог. Туда-то и нужно скопировать файлы почтовых папок. Откройте новое окно для просмотра экспортированных файлов. Скорее всего, вы найдете их в папке '''Local Folders''', куда бы вы их ни копировали. С каждой почтовой папкой связано два файла; оба они называются так же, как и папка, но у одного есть расширение '''MSF'''.&lt;br /&gt;
&lt;br /&gt;
Например, для папки '''Входящие''' [Inbox] есть файлы '''inbox''' и '''inbox.msf'''. Скопируйте эти файлы в локальный каталог в '''.evolution/mail.''' Сделайте то же самое для остальных каталогов, которые нужно импортировать. Откройте ''Evolution'' и нажмите на кнопку '''Почта''' [Mail], и вы увидите&lt;br /&gt;
импортированные папки и электронные сообщения.&lt;br /&gt;
&lt;br /&gt;
В ''Kontact'' все примерно так же. Нужно найти каталог '''~/.kde/share/apps/kmail/mail''', где '''~/''' – ваш домашний каталог. Как и для ''Evolution'',&lt;br /&gt;
скопируйте туда почтовые папки. Запустите ''Kontact'' и переключитесь на вкладку '''Почта''' [Mail]. Там вы увидите свои почтовые папки и сообщения. В ''Thunderbird'' процедура практически аналогична. Откройте каталог '''~/.mozilla-Thunderbird/идентификатор_профиля/Mail/Local Folders''',&lt;br /&gt;
скопируйте туда почтовые папки и запустите ''Thunderbird'', чтобы проверить, что все в порядке. Помните, что папки, имена которых начинаются&lt;br /&gt;
с точки, вы увидите, только включив показ скрытых файлов. Если все подготовительные действия в Windows были правильными, то импорт&lt;br /&gt;
почтовых папок в Linux – это всего лишь копирование файлов в правильное место.&lt;br /&gt;
&lt;br /&gt;
====Задачи====&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Заголовок=Скорая помощь|Содержание=Проверить содержимое '''CSV'''-файла можно в редакторе электронных таблиц ''OpenOffice.org''. Это поможет&lt;br /&gt;
вам определить, не сбились ли в файле границы полей, из-за чего данные могут распознаваться неправильно. Если вы решили произвести изменения в файле,&lt;br /&gt;
сохраните его под другим именем и убедитесь, что также сохранили его в '''CSV'''.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
К сожалению, '''список задач''', он же To Do list, похоже, придется создавать заново. И это очень обидно, потому что теории он должен быть небольшим, но я еще не придумал, как надежно перенести данные из ''Outlook'' в другую программу. Экспортировав список задач в '''CSV'''-файл, можно открыть его в редакторе электронных таблиц и скопировать и вставить содержимое каждой записи, но это не очень удобно, так как каждое поле нужно копировать и вставлять отдельно. Может, проще просто распечатать этот список и потратить некоторое время на его ручной ввод.&lt;br /&gt;
&lt;br /&gt;
И в ''Evolution'', и в ''Kontact'' есть возможность импортировать список задач. В ''Evolution'' переключитесь на список задач и выберите '''Файл &amp;gt; Импорт''' [File &amp;gt; Import]. Откроется мастер импорта. В ''Kontact'' выберите '''Список задач &amp;gt; Файл &amp;gt; Импортировать в Kontact''' [Todo list &amp;gt; File &amp;gt; Import in Kontact]. ''Evolution'' импортирует список нормально, но всегда перемешивает его со списком контактов, и от этого мало толку.&lt;br /&gt;
Обе программы импортируют список задач из '''ICS'''-файлов, но для этого нужно иметь возможность экспортировать его из ''Outlook'' в этом формате. С календарем все более или менее просто, но для задач нет соответствующего фильтра. Некоторые web-календари выполняют импорт '''CSV'''-файлов, после чего теоретически возможно подключиться к соответствующему web-календарю или списку задач при помощи обоих приложений, но так как стандартного способа записи задач в '''ICS'''-файл нет, то от этого тоже мало проку: вы можете только зря потерять время, экспортируя и импортируя файлы из приложения в приложение.&lt;br /&gt;
&lt;br /&gt;
Единственный выход в том случае, если вы не хотите вводить данные вручную в ''Evolution, Kontact'' или ''Sunbird'' – воспользоваться web-ориентированным списком задач. Проект '''Remember The Milk''' (http://www.rememberthemilk.com) предоставляет список задач, в который можно&lt;br /&gt;
очень просто импортировать свои задачи. Зайдите на сайт и создайте учетную запись (бесплатно). После заполнения необходимых полей и подтверждения регистрации можно отправить список задач по электронной почте. Зайдите в свой профиль и кликните на ссылке '''Settings''' в правом верхнем углу. Затем выберите вкладку '''Info'''. На ней вы найдете электронный адрес для импорта сообщений (Import Email Address). Скопируйте его и создайте новое письмо на этот адрес. В теме письма введите имя файла списка, в котором будет отправлен список задач. Откройте свой '''CSV'''-файл в редакторе электронных таблиц и скопируйте столбец, содержащий названия задач. Вставьте этот столбец в текст письма и отправьте его. Список задач будет импортирован на сайт, но даты и времена все-таки будут отсутствовать. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===''Outlook Express''===&lt;br /&gt;
&lt;br /&gt;
Хотя ''Outlook Express'' и не использует файлы формата '''PST''', проблем с ним не меньше. Выбрав '''Файл &amp;gt; Экспорт &amp;gt; Сообщения''' [File &amp;gt;&lt;br /&gt;
Export &amp;gt; Messages], можно экспортировать сообщения электронной почты, но только в ''Outlook'' или ''Microsoft Exchange'' – ни то, ни другое вас не спасет. Но можно воспользоваться тем же приемом, что и с ''Outlook''. В ''Thunderbird'' выберите '''Сервис &amp;gt; Импорт''' [Tools &amp;gt; Import] и затем '''Почта''' [Mail]. Затем кликните '''Дальше''' [Next] и выберите '''Импорт данных из Outlook Express''' [Import from Outlook Express].&lt;br /&gt;
Почтовые папки будут преобразованы в формат ''Thunderbird'': скопируйте их на диск для переноса данных. Адресную книгу ''Outlook Express'' можно экспортировать, выбрав пункт меню '''Файл &amp;gt; Экспорт &amp;gt; Адресная книга &amp;gt; Текстовый файл (Разделенные запятыми значения) &amp;gt; Экспорт''' [File &amp;gt; Export &amp;gt; Address Book &amp;gt; Text File (Comma Separated Values) &amp;gt; Export]. Укажите имя файла и каталог и завершите работу мастера.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF104:Review5</id>
		<title>LXF104:Review5</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF104:Review5"/>
				<updated>2015-06-03T16:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101 в LXF104:Review5 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Business Accountz==&lt;br /&gt;
&lt;br /&gt;
: Вести бухгалтерию небольшого предприятия можно только в Windows? '''Алекс Синглтон''' не согласен – взять, к примеру, вот этот удобный пакет.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Профессиональный бухгалтерский пакет, со встроенным мастером создания документов, средствами отслеживания неоплаченных счетов и расчета возврата НДС. &lt;br /&gt;
|также=''GnuCash''&lt;br /&gt;
|изображение=LXF104_17_1.jpg&lt;br /&gt;
|подпись= Оформить счет, кредитное письмо, или смету с логотипом компании и шрифтом по выбору? Со встроенным мастером создания документов это легко!&lt;br /&gt;
|разработчик=Accountz.com Ltd&lt;br /&gt;
|сайт=http://www.accountz.com&lt;br /&gt;
|цена= 59,67 евро&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=9&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=7&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=8&lt;br /&gt;
|параметр4=Оправданность цены&lt;br /&gt;
|оценка4=9&lt;br /&gt;
|итог=Идеальное решение для компаний, работающих в сфере услуг и наипростейшая бухгалтерская программа для любой платформы.&lt;br /&gt;
|рейтинг=9&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Если вы решили попытать счастья и открыть собственное дело, одной из первых перед вами встанет задача организации бухгалтерии. Некоторые предпочитают вести расчеты на бумаге. Процесс трудоемкий и скучный, но причины такого подхода очевидны, ведь большинство&lt;br /&gt;
компьютерных бухгалтерских программ громоздки и сложны в изучении. Относительно простые решения, вроде ''QuickBooks'', к сожалению, недоступны для Linux, что вынуждает пользователей загружать Windows для ведения расчетов. К счастью, с появлением ''Business Accountz'' это можно считать пройденным этапом.&lt;br /&gt;
&lt;br /&gt;
По сравнению с другими бухгалтерскими пакетами, интерфейс ''Business Accountz'' на удивление прост. В программах типа ''MYOB, QuickBooks, Sage Instant Accounting'' большинство данных вводится в формы. ''Business Accountz'' в основном использует для этого электронные таблицы. Да, пользоваться&lt;br /&gt;
формами удобно: например, оплачивая счет в ''MYOB'', вы вводите текст прямо в экранную копию чека. С другой стороны, на каждом&lt;br /&gt;
экране можно оформлять только одну транзакцию, а если их много – недолго и запутаться. ''Business Accountz'' отображает сразу&lt;br /&gt;
несколько транзакций; и если вы ошиблись в одной из них, то, оформляя оставшихся, сможете это заметить. Кроме того, у приложений на основе форм для разных операций и формы разные, что осложняет изучение программ новичкам.&lt;br /&gt;
&lt;br /&gt;
===Глядя в окна===&lt;br /&gt;
&lt;br /&gt;
В ''Business Accountz'' три типа табличных окон:&lt;br /&gt;
для продаж, для закупок и для переноса&lt;br /&gt;
средств между счетами. Выпадающие списки ускоряют ввод данных, и хотя программа ведет бухгалтерию по профессиональной&lt;br /&gt;
системе двойной записи, она обходится без нудного финансового жаргона. Это понравится владельцам небольших компаний, которые в бухгалтерии обычно не сильны.&lt;br /&gt;
&lt;br /&gt;
Превосходно организованная клиентская база данных позволяет отслеживать неоплаченные счета, устанавливать и менять условия кредитов и анализировать завершенные сделки. Хорош встроенный мастер создания документов, позволяющий пользователю изготовлять солидного вида счета к оплате,&lt;br /&gt;
кредитные письма, сметы и ведомости. Было бы неплохо, однако, добавить интеграцию с ''Thunderbird'' и ''Evolution'', для автоматической&lt;br /&gt;
отправки счетов по электронной почте.&lt;br /&gt;
&lt;br /&gt;
===Подведение итогов===&lt;br /&gt;
&lt;br /&gt;
''Business Accountz'' удобна для расчета НДС. В конце НДС-квартала программа выводит страницу возврата НДС, которую пользователь может скопировать в официальную форму (британской) налоговой инспекции. В конце года формируются сводки доходов и&lt;br /&gt;
расходов, подводится баланс. Пользователи, которые передают данные бухгалтерам, тоже&lt;br /&gt;
не будут разочарованы: транзакции можно экспортировать в CSV-файлы. Все транзакции редактируются, поэтому обнаруженные&lt;br /&gt;
ошибки легко исправить.&lt;br /&gt;
&lt;br /&gt;
''Business Accountz'' – важная веха на пути Linux к настольным системам для малых предприятий. Замечательно низкая цена,&lt;br /&gt;
естественно, предполагает и некоторые ограничения. Данная версия программы не может отслеживать складские остатки, поэтому,&lt;br /&gt;
будучи превосходным решением для компаний, работающих в сфере услуг, для розничной торговли она непригодна. Средств расчета заработной платы тоже нет, и подоходный налог сотрудников придется вычислять вручную. На подходе две более дорогих версии пакета, свободные от этих недостатков. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101</id>
		<title>LХF100-101</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101"/>
				<updated>2015-06-03T16:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101 в LXF104:Review5 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF104:Review5]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF107:%D0%A1%D0%BE%D0%B2%D0%B5%D1%82_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0</id>
		<title>LXF107:Совет месяца</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF107:%D0%A1%D0%BE%D0%B2%D0%B5%D1%82_%D0%BC%D0%B5%D1%81%D1%8F%D1%86%D0%B0"/>
				<updated>2015-06-03T16:53:53Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Тrinitу DАW в LXF107:Совет месяца поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Администратор-'''root''' ''MySQL'' и суперпользователь '''root'''&lt;br /&gt;
используют разные пароли, и если вы забыли первый,&lt;br /&gt;
вам может показаться, что все пропало. Но если у вас&lt;br /&gt;
есть стандартный '''root'''-доступ к машине, на которой запущен сервер ''MySQL'', сбросить пароль вовсе не проблема.&lt;br /&gt;
&lt;br /&gt;
Остановите службу ''MySQL'' командой&lt;br /&gt;
&lt;br /&gt;
  /etc/init.d/mysql stop&lt;br /&gt;
&lt;br /&gt;
и запустите демона снова, вот так:&lt;br /&gt;
&lt;br /&gt;
 mysqld_safe --skip-grant-tables &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Вы прикажете серверу не проверять пароли – это определенно небезопасно, так что поторопитесь! Войдите как&lt;br /&gt;
'''root''' и установите себе новый пароль:&lt;br /&gt;
&lt;br /&gt;
 mysql -u root&lt;br /&gt;
 use mysql;&lt;br /&gt;
 update user set&lt;br /&gt;
 password=PASSWORD(“НОВЫЙ-ПАРОЛЬ-ROOT”) where&lt;br /&gt;
 User=’root’;&lt;br /&gt;
 flush privileges;&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Остановите сервер и вновь запустите его командами:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/mysql stop&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
а затем используйте новый пароль '''root''' для общения с&lt;br /&gt;
СУБД обычным образом. Вы изменили пароль только у '''root''' – остальных пользователей это не касается, и приложения, базирующиеся на ''MySQL'', такие как блоги, CMS-системы и ''MythTV'', ничего не заметят.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%A2rinit%D1%83_D%D0%90W</id>
		<title>LХF100-101:Тrinitу DАW</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%A2rinit%D1%83_D%D0%90W"/>
				<updated>2015-06-03T16:53:53Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Тrinitу DАW в LXF107:Совет месяца поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF107:Совет месяца]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF106:%D0%91%D0%BB%D0%B8%D1%86-%D0%BE%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D0%BE_Linux</id>
		<title>LXF106:Блиц-опрос по Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF106:%D0%91%D0%BB%D0%B8%D1%86-%D0%BE%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D0%BE_Linux"/>
				<updated>2015-06-03T16:53:52Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw3 в LXF106:Блиц-опрос по Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Блиц-опрос по Linux==&lt;br /&gt;
&lt;br /&gt;
: Вы полагаете, что знаете Linux? Докажите это – проверьте себя на тесте д-ра '''Криса Брауна'''! Наши вопросы варьируются от детских до чрезвычайно сложных, так что мы приветствуем тех из вас, кто решит их все (без помощи Google!).&lt;br /&gt;
&lt;br /&gt;
=== Раунд 1 Персоналии===&lt;br /&gt;
&lt;br /&gt;
# Кто нарисовал оригинальное изображение Тукса, талисмана Linux (он же создал и обезьянку Ximian)?&lt;br /&gt;
# Кто был изначальным автором редактора ''Vi''?&lt;br /&gt;
# Кто из основателей популярного дистрибутива Linux провел 10 дней в космосе?&lt;br /&gt;
# Кто создал язык программирования Python?&lt;br /&gt;
# Какой язык программирования изобрел Ларри Уолл [Larry Wall]?&lt;br /&gt;
# Как называется популярный почтовый сервер, написанный Уитцем Винема [Wietse Venema] ?&lt;br /&gt;
# Кто написал ''sendmail''?&lt;br /&gt;
# Кто создал операционную систему Minix, а в 1992 опубликовал письмо с темой: «Linux устарел» ?&lt;br /&gt;
# Кто автор оригинальной оболочки Unix (известной как ''sh'')?&lt;br /&gt;
# Кто основал проект GNU и Фонд Свободного ПО [Free Software Foundation]?&lt;br /&gt;
&lt;br /&gt;
=== Раунд 2 Системное администрирование===&lt;br /&gt;
&lt;br /&gt;
11 Вы выполняете команду ''ls f*'' и получаете в ответ одну строку: &lt;br /&gt;
&lt;br /&gt;
: '''apple orange banana''' &lt;br /&gt;
&lt;br /&gt;
: Что происходит?&lt;br /&gt;
&lt;br /&gt;
12 В каком файле настроек вы можете найти строку: &lt;br /&gt;
&lt;br /&gt;
: '''%admin ALL=(ALL) ALL'''&lt;br /&gt;
&lt;br /&gt;
13 … а как на счет этой? &lt;br /&gt;
&lt;br /&gt;
: '''root (hd0,0)'''&lt;br /&gt;
&lt;br /&gt;
14 В каком каталоге вы можете найти файлы журналов Linux?&lt;br /&gt;
&lt;br /&gt;
15 Что должна вывести первая написанная вами программа, в соответствии с традициями Linux?&lt;br /&gt;
&lt;br /&gt;
16 Каков цифровой '''ID''' учетной записи пользователя '''root''' (известного также как суперпользователь)?&lt;br /&gt;
&lt;br /&gt;
17 Какой порт слушает сервер ''SSH'' (безопасная оболочка)?&lt;br /&gt;
&lt;br /&gt;
18 Вы знаете, что файл '''foo''' имеет две ссылки. Как найти вторую из них?&lt;br /&gt;
&lt;br /&gt;
19 Какая ключевая часть информации об учетной записи пользователя не содержится в файле '''/etc/passwd'''?&lt;br /&gt;
&lt;br /&gt;
20 В чем разница между файловыми системами '''ext2''' и '''ext3'''?&lt;br /&gt;
&lt;br /&gt;
=== Раунд 3 Команды ===&lt;br /&gt;
&lt;br /&gt;
21 Что делает команда ''shopt -s dotglob'' в оболочке ''Bash''?&lt;br /&gt;
&lt;br /&gt;
22 Если сканирование режимов VESA провалилось, кому вам следует сообщить об этом? (Внимание: этот вопрос имеет крайне высокий уровень сложности!)&lt;br /&gt;
&lt;br /&gt;
23 Как бы вы удалили файл с именем '''-r'''?&lt;br /&gt;
&lt;br /&gt;
24 Допустим, у вас есть файл с именем '''foo''' и вы выполнили команду ''chmod 7000 foo''. Как будет выглядеть девятисимвольная строка прав доступа в выводе ''ls -l foo''?&lt;br /&gt;
&lt;br /&gt;
25 Что делает команда '''dd''' в редакторе ''Vi''?&lt;br /&gt;
&lt;br /&gt;
26 Какой системный вызов Linux используется для создания нового процесса?&lt;br /&gt;
&lt;br /&gt;
27 Какова разница в результатах выполнения следующих двух команд? (В обоих случаях предполагается, что файл '''foo''' до выполнения команды не существует) &lt;br /&gt;
&lt;br /&gt;
: ''su -c date &amp;gt; foo'' &lt;br /&gt;
&lt;br /&gt;
: ''su -c ‘date &amp;gt; foo’''&lt;br /&gt;
&lt;br /&gt;
28 Как называется команда, используемая для манипуляции наборами правил фильтрации пакетов в Linux?&lt;br /&gt;
&lt;br /&gt;
29 Какой конфигурационный файл читает программа ''init''?&lt;br /&gt;
&lt;br /&gt;
30 Если в результате выполнения команды ''ls'' вы видите следующую строку: &lt;br /&gt;
&lt;br /&gt;
: '''drwxr-xr-x 8 chris chris 4096 2007-08-12 12:03 tutorials''' &lt;br /&gt;
&lt;br /&gt;
: то сколько подкаталогов находится в каталоге '''tutorials'''?&lt;br /&gt;
&lt;br /&gt;
31 Какая команда может найти все именованные каналы (fifo) в файловой системе?&lt;br /&gt;
&lt;br /&gt;
32 Каким образом можно отбросить стандартный вывод команды?&lt;br /&gt;
&lt;br /&gt;
=== Раунд 4 Названия ===&lt;br /&gt;
&lt;br /&gt;
33 Как назывался ''Wireshark'' до того, как получил имя ''Wireshark''?&lt;br /&gt;
&lt;br /&gt;
34 Gnome – это популярное окружение рабочего стола. Что изначально означало слово «Gnome»?&lt;br /&gt;
&lt;br /&gt;
35 … и что означает «K» в KDE?&lt;br /&gt;
&lt;br /&gt;
36 Какой стандарт открытых офисных документов имеет то же имя, что и популярная Британская рок-группа?&lt;br /&gt;
&lt;br /&gt;
37 Почему язык программирования ''Awk'' получил такое имя? &lt;br /&gt;
&lt;br /&gt;
38 Linux использует систему авторизации под названием PAM. Что означает PAM?&lt;br /&gt;
&lt;br /&gt;
39 Какие два слова представляли собой имя первого релиза Ubuntu, вышедшего в октябре 2004 года?&lt;br /&gt;
&lt;br /&gt;
40 SUSE – это популярный дистрибутив Linux. А что означает данная аббревиатура?&lt;br /&gt;
&lt;br /&gt;
41 Какой дистрибутив Linux первым начал распространяться на CD-ROM (в 1993 году) и был назван в честь древа жизни в скандинавской мифологии?&lt;br /&gt;
&lt;br /&gt;
42 Откуда пришло название дистрибутива Debian GNU/Linux?&lt;br /&gt;
&lt;br /&gt;
===Раунд 5 Сквозь замочную скважину===&lt;br /&gt;
&lt;br /&gt;
: Сможете ли вы определить приложение по этим фрагментам экранных снимков?&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF106_45_1.jpg|1]]&lt;br /&gt;
[[Изображение:LXF106_45_2.jpg|2]]&lt;br /&gt;
[[Изображение:LXF106_45_3.jpg|3]]&lt;br /&gt;
[[Изображение:LXF106_45_4.jpg|4]]&lt;br /&gt;
[[Изображение:LXF106_45_5.jpg|5]]&lt;br /&gt;
[[Изображение:LXF106_45_6.jpg|6]]&lt;br /&gt;
[[Изображение:LXF106_45_7.jpg|7]]&lt;br /&gt;
[[Изображение:LXF106_45_8.jpg|8]]&lt;br /&gt;
[[Изображение:LXF106_45_9.jpg|9]]&lt;br /&gt;
[[Изображение:LXF106_45_10.jpg|10]]&lt;br /&gt;
&lt;br /&gt;
=== Раунд 6 Дистрибутивы ===&lt;br /&gt;
53 Чтобы стать UCP (Ubuntu Certified Professional), необходимо сдать три экзамена. Какие?&lt;br /&gt;
&lt;br /&gt;
54 Как назывался Linspire до того, как стал Linspire?&lt;br /&gt;
&lt;br /&gt;
55 … и как назывался Mandriva Linux до того, как стал Mandriva?&lt;br /&gt;
&lt;br /&gt;
56 Какое животное изображено на логотипе SUSE Linux?&lt;br /&gt;
&lt;br /&gt;
57 Какой дистрибутив Linux используется на мини-ноутбуке Asus Eee PC?&lt;br /&gt;
&lt;br /&gt;
=== Раунд 7 Приложения===&lt;br /&gt;
&lt;br /&gt;
58 Как называется графический файловый менеджер в Gnome?&lt;br /&gt;
&lt;br /&gt;
59 Как называется популярный web-сервер с открытым кодом, используемый в Linux?&lt;br /&gt;
&lt;br /&gt;
:Что такое:&lt;br /&gt;
&lt;br /&gt;
60 ''Bluefish''?&lt;br /&gt;
&lt;br /&gt;
61 ''FluxBox''?&lt;br /&gt;
&lt;br /&gt;
62 ''Joomla''?&lt;br /&gt;
&lt;br /&gt;
63 ''Kopete''?&lt;br /&gt;
&lt;br /&gt;
64 ''Mutt''?&lt;br /&gt;
&lt;br /&gt;
65 Stonith-устройства?&lt;br /&gt;
&lt;br /&gt;
===Раунд 8 Назовите логотип===&lt;br /&gt;
&lt;br /&gt;
: Каким приложениям или дистрибутивам Linux принадлежат эти логотипы?&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF106_46_1.jpg|1]]&lt;br /&gt;
[[Изображение:LXF106_46_2.jpg|2]]&lt;br /&gt;
[[Изображение:LXF106_46_3.jpg|3]]&lt;br /&gt;
[[Изображение:LXF106_46_4.jpg|4]]&lt;br /&gt;
[[Изображение:LXF106_46_5.jpg|5]]&lt;br /&gt;
[[Изображение:LXF106_46_6.jpg|6]]&lt;br /&gt;
&lt;br /&gt;
===Раунд 9 Всякая всячина===&lt;br /&gt;
&lt;br /&gt;
73 Сколько      пальцев у Тукса? (Подсказка: это четное число!)&lt;br /&gt;
&lt;br /&gt;
74 Как называется .NET-совместимое окружение времени выполнения  для Linux?&lt;br /&gt;
&lt;br /&gt;
75 В каком году Линус Торвальдс написал письмо, анонсировав свою новую свободную операционную систему?&lt;br /&gt;
&lt;br /&gt;
76 Сколько строк кода на ''C'' содержит ядро Linux 2.6.24 (с точностью до миллиона)?&lt;br /&gt;
&lt;br /&gt;
77 В каком фильме есть такая фраза: «Это Unix-система! Я знаю это!» ?&lt;br /&gt;
&lt;br /&gt;
78 Какая компания недавно купила ''MySQL'' (разработчика популярной базы данных с открытым кодом)?&lt;br /&gt;
&lt;br /&gt;
79 Какое животное изображено на обложке книги издательства O’Reilly 'SSH, The Definitive Guide', написанной Барретом [Barret] и Сильверменом [Silverman]?&lt;br /&gt;
&lt;br /&gt;
80 Одна из популярных книг O’Reilly называется «книга с верблюдом», потому что на ее обложке изображен верблюд. О чем она?&lt;br /&gt;
&lt;br /&gt;
81 Какая компания вышла на рынок в 1999 году и прославилась одним из крупнейших заработков за первый день работы в истории Уолл-стрит?&lt;br /&gt;
&lt;br /&gt;
82 Какая организация разрабатывает SELinux?&lt;br /&gt;
&lt;br /&gt;
===Раунд 10 Назовите этих гуру===&lt;br /&gt;
&lt;br /&gt;
: Здесь несколько человек, которые создали мир свободного ПО, которым мы наслаждаемся сегодня — но скольких из них вы узнаете?&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF106_47_1.jpg|1]]&lt;br /&gt;
[[Изображение:LXF106_47_2.jpg|2]]&lt;br /&gt;
[[Изображение:LXF106_47_3.jpg|3]]&lt;br /&gt;
[[Изображение:LXF106_47_4.jpg|4]]&lt;br /&gt;
[[Изображение:LXF106_47_5.jpg|5]]&lt;br /&gt;
[[Изображение:LXF106_47_6.jpg|6]]&lt;br /&gt;
[[Изображение:LXF106_47_7.jpg|7]]&lt;br /&gt;
[[Изображение:LXF106_47_8.jpg|8]]&lt;br /&gt;
&lt;br /&gt;
===Ответы===&lt;br /&gt;
&lt;br /&gt;
Что, вы ожидали увидеть ответы, напечатанные вверх ногами в конце страницы? Фу – это было бы слишком просто. Для того, чтобы понять, являетесь ли вы неучем в Linux или знаете достаточно, перейдите по адресу http://www.linuxformat.ru/quiz. Нет приза лучше, чем похвастаться набранными очками перед обожающими/ненавидящими оппонентами на форуме. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w3</id>
		<title>LХF100-101:Rеviеw3</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R%D0%B5vi%D0%B5w3"/>
				<updated>2015-06-03T16:53:52Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Rеviеw3 в LXF106:Блиц-опрос по Linux поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF106:Блиц-опрос по Linux]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF105:Review5</id>
		<title>LXF105:Review5</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF105:Review5"/>
				<updated>2015-06-03T16:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:R в LXF105:Review5 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==StreamMyGame==&lt;br /&gt;
&lt;br /&gt;
: '''Грэм Моррисон''' привлекает к работе ПК с Windows, отговариваясь недовольством обзорами Linux-игр.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Обзоры]]&lt;br /&gt;
&lt;br /&gt;
{{Сравнение&lt;br /&gt;
|кратко=Транслирует (с обратной связью) многие популярные Windows-игры на Linux-машины, включая PlayStation 3 с Linux.&lt;br /&gt;
|также=Cedega и CrossOver.&lt;br /&gt;
|изображение=LXF105_15_1.jpg&lt;br /&gt;
|подпись=''StreamMyGame'' позволяет играть в игры типа ''BioShock'' на ПК с Linux или даже на PlayStation 3 (на рисунке – Yellow Dog), в оконном или полноэкранном режиме.&lt;br /&gt;
|разработчик=Tenomichi/SSP&lt;br /&gt;
|сайт=http://www.streammygame.com&lt;br /&gt;
|цена=От 0 до $19, 99 в год&lt;br /&gt;
|параметр1=Функциональность&lt;br /&gt;
|оценка1=8&lt;br /&gt;
|параметр2=Производительность&lt;br /&gt;
|оценка2=10&lt;br /&gt;
|параметр3=Простота использования&lt;br /&gt;
|оценка3=5&lt;br /&gt;
|параметр4=Оправданность цены&lt;br /&gt;
|оценка4=9&lt;br /&gt;
|итог=Реальное воплощение блестящей идеи, стоит лишь немного потрудиться.&lt;br /&gt;
|рейтинг=8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
''StreamMyGame'' (''SMG'') здорово придумано. Вы играете себе в игру на ПК с Windows, а ''SMG'' потихоньку сжимает&lt;br /&gt;
звук и видео и рассылает их на остальные компьютеры сети. Эти остальные не только воспроизводят трансляцию, но и позволяют&lt;br /&gt;
управлять игрой, контролируя мышь и клавиатуру компьютера-хоста. Таким образом новейшие игры становятся доступны на довольно&lt;br /&gt;
скромных устаревших машинах или ноутбуках. А лучше всего то, что, хотя сервер работает только под Windows (ну ладно, это всего&lt;br /&gt;
лишь игры), машины-клиенты могут быть и с Windows, и с Linux. Есть даже версия, оптимизированная под Linux на PS3.&lt;br /&gt;
&lt;br /&gt;
Мы установили сервер на скромную Windows-машину с Intel Dual Core 2,13 ГГц, 2 ГБ памяти и видеокартой Nvidia 8800 GTS.&lt;br /&gt;
''SMG'' работает не с каждой игрой, поэтому сначала нужно убедиться, что ваш вариант подойдет. Существует онлайн-база данных со списком совместимости, и она постоянно расширяется. Например, в последней версии добавлена совместимость со ''Steam'', а многие брэнды вроде ''Crysis'' и ''BioShock''&lt;br /&gt;
уже поддерживаются. В любом случае, придется создать учетную запись на web-сайте:&lt;br /&gt;
именно через web-интерфейс осуществляется управление основными функциями программы. Предполагается, что ''SMG'' будет взимать ежегодную плату за суперсервис: разблокирование крупных экранных разрешений (до 3200х3200!) и наложение картинки web-камеры. Установив серверное ПО, приступаем&lt;br /&gt;
к активации любимых игр. С web-страницы открываем окно поиска и загружаем исполняемые файлы, пока ''SMG'' анализирует способности нашей машины. Если все в порядке, игра активируется и транслируется на все машины-клиенты.&lt;br /&gt;
&lt;br /&gt;
===Приятный биошок===&lt;br /&gt;
&lt;br /&gt;
Настройка клиента немного сложнее. Сначала на Linux-машину загружается и запускается из командной строки небольшой скрипт.&lt;br /&gt;
Сценарий устанавливает пару программ, одна из которых служит для настройки ассоциаций типов файлов, необходимых для управления вторым приложением через Web. На PlayStation 3 пользователь Yellow Dog должен проделать все это вручную, с помощью окна настройки ''Firefox''.&lt;br /&gt;
&lt;br /&gt;
В результате, когда пользователь входит в свою учетную запись ''SMG'' и выбирает игру,&lt;br /&gt;
сеанс автоматически запускает клиентские двоичные файлы, установленные на машине,&lt;br /&gt;
и игра начинается. Придется еще повозиться, чтобы найти баланс экранного разрешения&lt;br /&gt;
и пропускной способности сети; для большинства известных игр качество изображения вполне приемлемо. Мы обнаружили, что&lt;br /&gt;
беспроводная G-сеть поддерживает только 800 х 600, тогда как проводная связь без проблем транслирует BioShock на 1440 x 900. Вот&lt;br /&gt;
это и есть самое невероятное в ''SMG'': она реально работает! Задержка едва заметна, и если ширины канала хватает, на Linux-машине&lt;br /&gt;
будет получена безукоризненная копия игры. Даже PlayStation 3 справляется замечательно. Единственная проблема – технология нуждается в доводке. Программа делает большую часть работы, достаточно быстро транслируя игры, но порой спотыкается на мелочах (например, при переключении на окно&lt;br /&gt;
настройки или при выборе игр в окне программы). Новые версии совершенствуются, добавляется даже поддержка для Windows-приложений, но для правильной настройки трансляции все же необходимо терпение. Впрочем, низкие разрешения игры доступны бесплатно, можете попробовать сами. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R</id>
		<title>LХF100-101:R</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:R"/>
				<updated>2015-06-03T16:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:R в LXF105:Review5 поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF105:Review5]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF109:Flickr</id>
		<title>LXF109:Flickr</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF109:Flickr"/>
				<updated>2015-06-03T16:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Интepвью LХF–2 в LXF109:Flickr поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''Rails''' Устройте на своем сайте личную фотогалерею с нужными вам функциями [[Категория:Учебники]]&lt;br /&gt;
&lt;br /&gt;
==Rails: Добавим функции Web 2.0==&lt;br /&gt;
&lt;br /&gt;
: '''Часть 2''' Простейшие возможности галереи реализованы; '''Алекс Янг''' приобщит вас к Web 2.0 через супер-технологии ''Ajax'' и вспомогательные классы ''Rails''.&lt;br /&gt;
&lt;br /&gt;
На данном этапе наша галерея на ''Rails'' поддерживает регистрацию пользователей и загрузку фотографий (считая, что вы прошли урок [[LXF108:Rails|прошлого номера]]), но в ней кое-чего не хватает – нет нумерации страниц, нет модульного тестирования и нет ''Ajax'', столь любимого Web 2.0-сайтами типа Flickr. Чтобы восполнить пробелы, я расскажу вам о тестировании моделей ''Rails'', использовании вспомогательных классов ''Rails'' и крутых технологиях JavaScript,&lt;br /&gt;
делающих интерфейс более дружелюбным.&lt;br /&gt;
&lt;br /&gt;
Данный урок основан на коде из предыдущей статьи, найти который можно в PDF-файле в разделе '''Журнал/Rails''' нашего DVD. Класс&lt;br /&gt;
редактирования на месте средствами JavaScript может пригодиться вам и в других проектах.&lt;br /&gt;
&lt;br /&gt;
===Часть 1 Тесты===&lt;br /&gt;
&lt;br /&gt;
Тестирование – неотъемлемая часть процесса разработки на ''Ruby on Rails''. Написание тестов во время изучения ''Rails'' также помогает исследовать эту среду, экспериментировать с различными подходами&lt;br /&gt;
и в конечном счете получить лучший код. Создатели ''Rails'' вложили в&lt;br /&gt;
пакет все необходимое для обучения тестированию, включая несколько&lt;br /&gt;
задач ''Rake''. До запуска тестов выполните из каталога проекта следующую команду:&lt;br /&gt;
&lt;br /&gt;
 rake db:test:prepare&lt;br /&gt;
&lt;br /&gt;
Она подготовит базу данных ''SQLite'' в каталоге '''db/test.sqlite3''' и скопирует схему для нашего проекта. Если вы измените БД посредством миграции, не забудьте выполнить команду ''rake db:test:clone_structure''&lt;br /&gt;
до прогона тестов.&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить все тесты, наберите:&lt;br /&gt;
&lt;br /&gt;
 rake test:units&lt;br /&gt;
&lt;br /&gt;
Когда вы создаете модели и контроллеры с помощью скрипта&lt;br /&gt;
'''generate''', ''Rails'' автоматически генерирует заглушки для тестов в каталоге '''test/'''. Модульные тесты предназначены для моделей, а функциональные – для контроллеров. Первые позволяют проверить, что модели работают как ожидается. Это невероятно удобно, если проект меняется с течением времени: при модификации модели можно убедиться,&lt;br /&gt;
что сопутствующая система не затронута.&lt;br /&gt;
&lt;br /&gt;
Для тестовых данных ''Rails'' использует наработки ['''fixtures''']. По умолчанию они пишутся на YAML и хранятся в каталоге '''test/fixtures/'''. Наработки могут даже содержать фрагменты на ''Ruby'', как HTML-шаблоны ''Rails'':&lt;br /&gt;
&lt;br /&gt;
 quentin:&lt;br /&gt;
 id: 1&lt;br /&gt;
 login: quentin&lt;br /&gt;
 email: quentin@example.com&lt;br /&gt;
 salt: 7e3041ebc2fc05a40c60028e2c4901a81035d3cd&lt;br /&gt;
 crypted_password: 00742970dc9e6319f8019fd54864d3ea740f04b&lt;br /&gt;
 1 # test&lt;br /&gt;
 created_at: &amp;lt;%= 5.days.ago.to_s :db %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример взят из '''test/fixtures/users.yml''' – обратите внимание, что мы&lt;br /&gt;
добавили дату при помощи ''Ruby'', с тэгами '''&amp;lt;%= %&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Покамест фотографии добавляются без заголовков – а какая же&lt;br /&gt;
галерея без них? Чтобы решить проблему, добавим новую валидацию&lt;br /&gt;
в '''Photo''' и протестируем ее. Откройте файл '''app/models/photo.rb''' и впишите в него строку:&lt;br /&gt;
&lt;br /&gt;
  validates_presence_of :title, :if =&amp;gt; Proc.new { |photo| photo.thumbnail.nil? }&lt;br /&gt;
&lt;br /&gt;
Валидация включает блок проверки, не является ли фото миниатюрой – потому что они спокойно сохраняются и без заголовков: так уж&lt;br /&gt;
устроен модуль '''attachment_fu'''. Давайте проверим, что все работает как&lt;br /&gt;
надо: откройте файл '''test/unit/photo_test.rb'''. Мы добавим туда несколько новых тестов и удалим заглушку, сгенерированную ''Rails'':&lt;br /&gt;
&lt;br /&gt;
  require File.dirname(__FILE__) + ‘/../test_helper’&lt;br /&gt;
  class PhotoTest &amp;lt; ActiveSupport::TestCase&lt;br /&gt;
   fixtures :photos&lt;br /&gt;
     def test_titles_are_required_on_create&lt;br /&gt;
       assert Photo.create.errors.on(:title)&lt;br /&gt;
     end&lt;br /&gt;
     def test_titles_are_required_on_update&lt;br /&gt;
       photo = photos(:one)&lt;br /&gt;
       photo.title = nil&lt;br /&gt;
       photo.save&lt;br /&gt;
       assert photo.errors.on(:title)&lt;br /&gt;
     end&lt;br /&gt;
     def test_titles_are_not_required_for_thumbnails&lt;br /&gt;
       assert photos(:thumbnail).valid?&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что все тестовые методы имеют префикс '''test_''' и включают один или несколько вызовов '''assert'''. Все методы, имя которых начинается с '''test_''', запускаются тестовым пакетом автоматически.&lt;br /&gt;
&lt;br /&gt;
Теперь нам недостает лишь распознавания миниатюр. Откройте файл&lt;br /&gt;
'''test/fixtures/photos.yml''' и дополните его следующим кодом YAML:&lt;br /&gt;
&lt;br /&gt;
  thumbnail:&lt;br /&gt;
  description: MyText&lt;br /&gt;
  filename: MyString&lt;br /&gt;
  content_type: MyString&lt;br /&gt;
  size: 1&lt;br /&gt;
  user_id: 1&lt;br /&gt;
  width: 1&lt;br /&gt;
  height: 1&lt;br /&gt;
  thumbnail: example.png&lt;br /&gt;
  content_type: image/png&lt;br /&gt;
&lt;br /&gt;
Чтобы тест завершился успешно, все утверждения ['''assertions''']&lt;br /&gt;
должны быть истинными. Многие из них предоставляются как ''Rails'', так&lt;br /&gt;
и библиотекой '''Ruby Test::Unit'''. Мы взяли простейшее: оно проверяет,&lt;br /&gt;
что выражение не возвращает '''nil''' или '''false'''. Строка с '''fixtures''' использует&lt;br /&gt;
файл '''test/fixtures/photos.yml''' для создания фотографий в базе данных.&lt;br /&gt;
Доступ к «наработке» обеспечивается методом '''photos()''' – он любезно сгенерирован для нас. В примере выше используется '''photos(:one)'''.&lt;br /&gt;
Тесты фото вызываются командной строкой ''ruby test/unit/photo_test.rb'', а можно запустить все модульные тесты сразу, набрав команду &lt;br /&gt;
&lt;br /&gt;
  rake:test:units.&lt;br /&gt;
&lt;br /&gt;
===Часть 2 ''Ajax'' и вспомогательные классы ''Rails''===&lt;br /&gt;
&lt;br /&gt;
{{Врезка | Заголовок=Скорая помощь | Содержание=Использование блоков '''respond_to''' в контроллерах позволяет ''Rails'' разумно отвечать на запросы различных форматов. Они лежат в основе XML Rest API и респондеров ''Ajax''.| Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Нашим приложением было бы проще пользоваться, имей оно пару&lt;br /&gt;
функций, реализованных на JavaScript. ''Rails'' предоставляет богатый&lt;br /&gt;
функционал для работы с JavaScript через каркас '''Prototype''' и библиотеку '''Scriptaculous'''. Обработка текста и HTML реализуется библиотеками '''Ruby ActiveSupport''' и '''ActionView''', поставляемыми с ''Rails''.&lt;br /&gt;
Воспользуемся вспомогательными классами ''Rails'' для создания удобных дат, а также заголовков и описаний с редактированием на месте, как во Flickr. Выводом при просмотре тоже будут управлять вспомогательные классы. На прошлом уроке вы могли заметить вызовы '''link_to''', '''image_tag''' и '''form_for'''. Эти методы предоставляются различными вспомогательными классами внутри '''ActionView::Helpers'''. Прежде чем самим писать вспомогательные функции, всегда полезно проверить, нет ли их&lt;br /&gt;
в '''ActionView''', так как в ''Rails'' их сотни.&lt;br /&gt;
&lt;br /&gt;
В нашей галерее фотографии отображаются без всяких дат, поэтому откройте файл, касающийся фото ('''app/views/photos/_photo.html.erb'''), и добавьте следующую строку после тэга заголовка &amp;lt;nowiki&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;/nowiki&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Added on &amp;lt;%= photo.created_at %&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
К сожалению, это выглядит не очень хорошо. Дата содержит&lt;br /&gt;
информацию о времени и часовом поясе, а хватило бы только числа,&lt;br /&gt;
месяца и года. Измените эту строку на такую:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Added on &amp;lt;%= photo.created_at.to_date.to_s :long %&amp;gt;&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь дата отображается в британском полном формате: Месяц&lt;br /&gt;
День, Год. Это работает благодаря методу ''Rails'' '''to_formatted_s''', с синонимом '''to_s'''. И даты, и времена работают подобным образом, поэтому значение, сохраняемое в '''created_at''', преобразуется в дату, а время размещения фото игнорируется.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать больше о форматах даты и о том, как добавить свой&lt;br /&gt;
собственный, выполните следующую команду для вывода документации ''Ruby'' по теме:&lt;br /&gt;
&lt;br /&gt;
  ri ActiveSupport::CoreExtensions::Date::Conversions&lt;br /&gt;
&lt;br /&gt;
====Живые заголовки====&lt;br /&gt;
&lt;br /&gt;
Хотя функция «Редактировать на месте» выглядит весьма продвинутой, реализовать ее довольно просто. Большую часть работы сделает библиотека '''Scriptaculous''', по умолчанию поставляемая с ''Rails'', но&lt;br /&gt;
'''PhotosController''' нужно немного адаптировать, чтобы он смог работать&lt;br /&gt;
с тем, чего ожидает '''Scriptaculous'''. Во-первых, нужно приспособить действие '''PhotosController#update''' для работы с JavaScript. Отредактируйте действие обновления в файле '''app/controllers/photos_controller.rb''':&lt;br /&gt;
&lt;br /&gt;
 def update&lt;br /&gt;
   @photo = current_user.photo&lt;br /&gt;
    respond_to do |format|&lt;br /&gt;
   if @photo.update_attributes params[:photo]&lt;br /&gt;
    format.html do&lt;br /&gt;
     flash[:notice] = ‘Photo was successfully updated.’&lt;br /&gt;
     redirect_to(@photo)&lt;br /&gt;
    end&lt;br /&gt;
    format.xml { head :ok }&lt;br /&gt;
    format.js do&lt;br /&gt;
     if params[:field]&lt;br /&gt;
      render :inline =&amp;gt; ‘&amp;lt;%= h photo.attributes[params[:field]]} %&amp;gt;’&lt;br /&gt;
     else&lt;br /&gt;
      head :ok&lt;br /&gt;
     end&lt;br /&gt;
    end&lt;br /&gt;
   else&lt;br /&gt;
    format.html { render :action =&amp;gt; “edit” }&lt;br /&gt;
    format.xml { render :xml =&amp;gt; @photo.errors, :status =&amp;gt; :  unprocessable_entity }&lt;br /&gt;
    format.js { render :text =&amp;gt; @photo.errors.full_messages, :status =&amp;gt; :unprocessable_entity }&lt;br /&gt;
   end&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Этот код делает кое-что новое. Обработка запросов JavaScript поддерживается в '''format.js''' в блоке '''respond_to'''. Когда фотография успешно сохранена и используется JavaScript, выводится заголовок, поскольку&lt;br /&gt;
'''Ajax.InPlaceEditor''', предоставляемый библиотекой ''Scriptaculous'', ожидает, что сервер возвратит обновленный текст. Обратите внимание, что для этого используется '''render :inline''', позволяя контроллеру вызвать&lt;br /&gt;
вспомогательный метод. Текст экранируется, чтобы избежать опасных&lt;br /&gt;
метасимволов. Также добавьте в начало контроллера (после строки '''before_filter''') следующую строку:&lt;br /&gt;
&lt;br /&gt;
  skip_before_filter :verify_authenticity_token, :only =&amp;gt; [ :update ]&lt;br /&gt;
&lt;br /&gt;
По соображениям безопасности в ''Rails'' используется механизм&lt;br /&gt;
аутентификации, порождающий проблемы при обновлении с помощью&lt;br /&gt;
JavaScript, и пока мы его отключим.&lt;br /&gt;
&lt;br /&gt;
====Позаботимся о редактировании====&lt;br /&gt;
&lt;br /&gt;
Нам надо, чтобы редактирование на месте предоставлялось только&lt;br /&gt;
зарегистрированным пользователям, но чтобы проверить это, не будем&lt;br /&gt;
забивать наш файл выражениями с '''if''', а создадим новый вспомогательный класс. Откройте файл '''app/helpers/application_helper.rb''' и добавьте следующий метод:&lt;br /&gt;
&lt;br /&gt;
  def in_place_editor_if(condition, object, field, &amp;amp;block)&lt;br /&gt;
    if condition&lt;br /&gt;
      object_id = “#{object.class.name.downcase}_#{field}_#{object.id}”&lt;br /&gt;
      in_place_class = “in_place_#{field}”&lt;br /&gt;
      concat ‘&amp;lt;span id=”%s” class=”%s”&amp;gt;’ % [object_id, in_place_class], block.binding&lt;br /&gt;
      yield&lt;br /&gt;
  concat ‘&amp;lt;/span&amp;gt;’, block.binding&lt;br /&gt;
   else&lt;br /&gt;
      yield&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Это довольно-таки продвинутый ''Ruby'' – ничего страшного, если&lt;br /&gt;
понять его сейчас трудно, но обязательно вернитесь к нему позже! Его&lt;br /&gt;
нужно использовать примерно так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;% in_place_editor_if current_user, photo, :title do %&amp;gt;&amp;lt;%= h photo.title %&amp;gt;&amp;lt;% end %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если переменная '''current_user''' установлена, заголовок фото будет&lt;br /&gt;
обернут в тэг '''&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;''' с атрибутами '''id''' и '''class''', для упрощения ссылок на&lt;br /&gt;
него из JavaScript. У незарегистрированных пользователей заголовок&lt;br /&gt;
будет выводиться без тэга '''&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;''', а значит, JavaScript его проигнорирует. В данном фрагменте кода заголовок упрятан в блок с синтаксисом скобок '''do ... end'''. Таким образом, этот вспомогательный класс&lt;br /&gt;
может инкапсулировать все, даже многострочный HTML. Внутри вспомогательного класса для доступа к этому HTML-коду и добавления в&lt;br /&gt;
него дополнительного текста вызываются '''yield''' и '''concat'''.&lt;br /&gt;
&lt;br /&gt;
Хотя это уже высший пилотаж, настоятельно рекомендую вам применять его и в других вспомогательных методах, которые вы соберетесь писать. Отредактируйте файл '''app/views/photos/_photo.html.erb''',&lt;br /&gt;
чтобы употребить в нем этот хитрый вспомогательный класс для изменения способа отображения заголовков:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;% in_place_editor_if current_user, photo, :title do %&amp;gt;&amp;lt;%= h photo.title %&amp;gt;&amp;lt;% end %&amp;gt;&lt;br /&gt;
 &amp;lt;%= link_to ‘Edit’, edit_photo_path(photo) %&amp;gt;&lt;br /&gt;
 &amp;lt;%= link_to ‘Delete’, photo, :confirm =&amp;gt; ‘Are you sure?’, :method =&amp;gt; :delete %&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это упростит поиск HTML в JavaScript и применит редакторы к каждому заголовку.&lt;br /&gt;
&lt;br /&gt;
====Добавим редактирование через JavaScript====&lt;br /&gt;
&lt;br /&gt;
Последний кусочек мозаики – код JavaScript для редактирования на&lt;br /&gt;
месте. Прежде чем писать его, поправим HTML-код основного файла и&lt;br /&gt;
подключим туда наши скрипты. В ''Rails'' для этого есть вспомогательный&lt;br /&gt;
класс '''javascript_include_tag''' – добавьте его в секцию '''&amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/nowiki&amp;gt;''' файла '''app/views/layouts/application.html.erb''':&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;%= javascript_include_tag :all %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавьте следующий код в файл '''public/javascripts/application.js''':&lt;br /&gt;
&lt;br /&gt;
 var EditorGenerator = Class.create({&lt;br /&gt;
  initialize: function(class_name, url_base, error_message) {&lt;br /&gt;
   this.item_selector = ‘.’ + class_name&lt;br /&gt;
   this.update_url = ‘/’ + url_base + ‘/update/’&lt;br /&gt;
   this.error_message = error_message&lt;br /&gt;
   this.field = class_name.replace(/in_place_/, ‘’)&lt;br /&gt;
   this.create_editors()&lt;br /&gt;
  },&lt;br /&gt;
     create_editors: function() {&lt;br /&gt;
     $$(this.item_selector).each(function(element) {&lt;br /&gt;
      var item_id = element.id.match(/_(\d+)$/)[1]&lt;br /&gt;
      this.create_editor(element, item_id)&lt;br /&gt;
     }.bind(this))&lt;br /&gt;
   },&lt;br /&gt;
  create_editor: function(element, item_id) {&lt;br /&gt;
   new Ajax.InPlaceEditor(element, this.update_url + item_id + ‘?field=’ + this.field, {&lt;br /&gt;
     onFailure: this.onFailure.bind(this),&lt;br /&gt;
   callback: function(form, value) { return ‘photo[‘ + this.field + ‘]=’ + escape(value) }.bind(this)&lt;br /&gt;
     })&lt;br /&gt;
  },&lt;br /&gt;
   onFailure: function(editor, transport) {&lt;br /&gt;
   alert(this.error_message + ‘: ‘ + transport.responseText)&lt;br /&gt;
   }&lt;br /&gt;
  })&lt;br /&gt;
   document.observe(‘dom:loaded’, function() {&lt;br /&gt;
     var title_generator = new EditorGenerator(‘in_place_title’, ‘photos’, ‘Error saving photo’)&lt;br /&gt;
  })&lt;br /&gt;
&lt;br /&gt;
Этот код создает класс JavaScript, применяющий редактор '''Ajax.InPlaceEditor''' к заданным HTML-элементам. Функционал, который здесь используется, предоставляется библиотеками JavaScript '''Scriptaculous''' и&lt;br /&gt;
'''Prototype''' – они у нас есть. Класс инициализируется вызовом '''document.observe(‘dom:loaded’, ...)''', который ждет готовности браузера, прежде чем выполнить какой-либо JavaScript. Как только класс '''EditorGenerator'''&lt;br /&gt;
будет создан, он добавит '''Ajax.InPlaceEditor''' в каждый из span’ов, которые сгенерировал наш вспомогательный класс. Другая интересная строка кода – это итератор, используемый в цикле для прохода по&lt;br /&gt;
каждому заголовку:&lt;br /&gt;
&lt;br /&gt;
  $$(this.item_selector).each(function(element) { ...&lt;br /&gt;
&lt;br /&gt;
В нем используется функция '''Prototype $$()''' для выбора списка элементов на основе селектора CSS. Он хранится в свойстве '''this.item_selector''', устанавливаемом при инициализации класса. Функция '''$$()''' возвращает массив элементов, и, значит, для прохода по нему можно использовать метод '''each()''', также предоставляемый '''Prototype'''.&lt;br /&gt;
Это итератор, и он считается лучше читаемым по сравнению с обычным циклом.&lt;br /&gt;
&lt;br /&gt;
{{Врезка | Заголовок=Скорая помощь | Содержание= Для отладки JavaScript или даже исследования объектной модели документа DOM или CSS страницы, настоятельно рекомендую модуль расширения ''Firefox'' под названием ''Firebug'' (https://addons.mozilla.org/en-US/firefox/addon/1843). Без него причины ошибок в JavaScript будет понять очень трудно.| Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь можно добавить редактируемые поля всюду, где отображаются заголовки. В качестве примера откроем файл '''app/views/photos/&lt;br /&gt;
show.html.erb''' и изменим его заголовок на этот:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;% in_place_editor_if current_user, @photo, :title do %&amp;gt;&amp;lt;%= h @photo.title %&amp;gt;&amp;lt;% end %&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Другой хороший кандидат на редактирование – описания. Измените их в '''app/views/photos/show.html.erb''' таким образом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;% in_place_editor_if current_user, @photo, :description do&lt;br /&gt;
 %&amp;gt;&amp;lt;%= textilize_without_paragraph h(@photo.description) %&amp;gt;&amp;lt;% end %&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Потом замените описание в файле '''app/views/photos/_photo.rhtml'''&lt;br /&gt;
на следующее:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;% in_place_editor_if current_user, photo, :description do&lt;br /&gt;
 %&amp;gt;&amp;lt;%= textilize_without_paragraph h(photo.description) %&amp;gt;&amp;lt;% end %&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем добавьте еще один объект '''EditorGenerator''' в '''public/javascripts/application.js''', после '''title_generator''':&lt;br /&gt;
&lt;br /&gt;
 var description_generator = new EditorGenerator(‘in_place_description’, ‘photos’, ‘Error saving photo’)&lt;br /&gt;
&lt;br /&gt;
То же самое можно сделать с любым другим полем. Есть лишь&lt;br /&gt;
небольшая загвоздка: если кликнуть по ссылке для редактирования&lt;br /&gt;
описания, текст будет представлен в виде HTML-кода. Это можно&lt;br /&gt;
поправить, добавив в '''Ajax.InPlaceEditor''' параметр '''loadingText''', указывающий на действие в '''PhotosController''', которое удалит ненужную разметку.&lt;br /&gt;
&lt;br /&gt;
===Часть 3 Разбивка на страницы===&lt;br /&gt;
&lt;br /&gt;
Чтобы достойно завершить наш второй урок по разработке галереи,&lt;br /&gt;
добавим функцию постраничного вывода. Как ни странно, решение&lt;br /&gt;
этой задачи в web-приложениях сопряжено с трудностями, так как&lt;br /&gt;
случайно написать увесистый SQL-запрос очень просто. К счастью,&lt;br /&gt;
Мислав Марохнич [Mislav Marohnic] создал невероятно простой модуль&lt;br /&gt;
расширения '''will_paginage''', удовлетворяющий требованиям большинства приложений.&lt;br /&gt;
&lt;br /&gt;
Предпочтительный метод установки – с помощью ''gem'':&lt;br /&gt;
&lt;br /&gt;
  sudo gem1.8 install mislav-will_paginate --source http://gems.github.com/&lt;br /&gt;
&lt;br /&gt;
Теперь откройте файл '''config/environment.rb''' и добавьте в него следующие строки в конце:&lt;br /&gt;
&lt;br /&gt;
  gem ‘mislav-will_paginate’, ‘~&amp;gt; 2.2’&lt;br /&gt;
  require ‘will_paginate’&lt;br /&gt;
&lt;br /&gt;
Перезапустите сервер, чтобы приложение загрузило модуль.&lt;br /&gt;
&lt;br /&gt;
Пользоваться им очень просто. Откройте '''app/controllers/photos_controller.rb''' и измените индексирование при загрузке фотографий таким образом:&lt;br /&gt;
&lt;br /&gt;
  @photos = Photo.paginate :all, :conditions =&amp;gt; ‘thumbnail is&lt;br /&gt;
  NULL’, :page =&amp;gt; params[:page], :order =&amp;gt; ‘created_at DESC’&lt;br /&gt;
&lt;br /&gt;
Теперь откройте файл '''app/views/photos/index.html.erb''' и добавьте туда строку:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;%= will_paginate @photos %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все почти готово, но чтобы разбивка на страницы хорошо читалась,&lt;br /&gt;
нужно немного приятного CSS. Добавьте следующий код в файл '''public/stylesheets/screen.css''':&lt;br /&gt;
&lt;br /&gt;
  .pagination { text-align: center; padding: .3em; clear: both; margintop:&lt;br /&gt;
  1em; width: 100%; float: left; }&lt;br /&gt;
  .pagination a, .pagination span { padding: .2em .5em; }&lt;br /&gt;
  .pagination span.disabled { color: #AAA; }&lt;br /&gt;
  .pagination span.current { font-weight: bold; color: #FF0084; }&lt;br /&gt;
  .pagination a { border: 1px solid #DDDDDD; color: #0063DC;&lt;br /&gt;
 textdecoration: none; }&lt;br /&gt;
 .pagination a:hover, .pagination a:focus { border-color: #003366;&lt;br /&gt;
 background: #0063DC; color: white; }&lt;br /&gt;
 .pagination .page_info { color: #aaa; padding-top: .8em; }&lt;br /&gt;
 .pagination .prev_page, .pagination .next_page { border-width: 2px; }&lt;br /&gt;
 .pagination .prev_page { margin-right: 1em; }&lt;br /&gt;
 .pagination .next_page { margin-left: 1em; }&lt;br /&gt;
&lt;br /&gt;
Пока вы не добавите не менее 30 фотографий, номеров страниц&lt;br /&gt;
вам не видать. Для тестовых целей добавьте опцию '''per_page''' в действие '''index''':&lt;br /&gt;
&lt;br /&gt;
 @photos = Photo.paginate :all,&lt;br /&gt;
 :conditions =&amp;gt; ‘thumbnail is NULL’,&lt;br /&gt;
 :page =&amp;gt; params[:page],&lt;br /&gt;
 :per_page =&amp;gt; 5&lt;br /&gt;
 :order =&amp;gt; ‘created_at DESC’&lt;br /&gt;
&lt;br /&gt;
Итак, мы изучили основы модульных тестов, разбивки на страницы, ''Ajax'' и объектно-ориентированный JavaScript; можете применить&lt;br /&gt;
эти технологии в своих проектах. Библиотеки JavaScript '''Scriptaculous'''&lt;br /&gt;
и '''Prototype''' имеют стабильное API, поэтому у вас будет возможность&lt;br /&gt;
взять пример редактирования на месте и создать на его основе более&lt;br /&gt;
сложные элементы управления. Модульное тестирование ''Rails'' поможет убедиться в работоспособности вашего кода. Вы почти полностью вооружены для профессиональной разработки на ''Rails''! '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Комплект библиотек JavaScript===&lt;br /&gt;
&lt;br /&gt;
''Rails'' поставляется с библиотеками '''Prototype''' и '''Scriptaculous'''. '''Scriptaculous''' (http://script.aculo.us) построена на '''Prototype''' (http://prototypejs.org). На сайтах обеих библиотек есть подробная документация. '''Prototype''' упрощает использование JavaScript на различных платформах, а также включает средства объектно-ориентированной разработки, библиотеку ''Ajax'' и абстракцию DOM для упрощения навигации в&lt;br /&gt;
HTML-документах из ваших программ.&lt;br /&gt;
'''Scriptaculous''' предоставляет средства для анимации, эффектов, drag and drop, сложные элементы управления ''Ajax'' и модульное тестирование.&lt;br /&gt;
&lt;br /&gt;
===Вспомогательные классы Rails: Быстрая справка===&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable border=1 cellpadding=5|+ table name&lt;br /&gt;
|-&lt;br /&gt;
! textilize text &lt;br /&gt;
| Конвертирует текст в HTML с помощью '''Textile''' (установите gem-пакет ''RedCloth'', чтобы получить эту функциональность).&lt;br /&gt;
|-&lt;br /&gt;
! truncate text, length&lt;br /&gt;
| Если текст длиннее, чем '''length''', он будет обрезан и дополнен ‘...’.&lt;br /&gt;
|-&lt;br /&gt;
! tag name &lt;br /&gt;
| Создает HTML-тэг, самозакрывающийся, если это необходимо.&lt;br /&gt;
|-&lt;br /&gt;
! content_tag name, content &lt;br /&gt;
| Создает блок с тэгом HTML, например:'''content_tag :p, “Example”'''&lt;br /&gt;
|-&lt;br /&gt;
! number_to_human_size size&lt;br /&gt;
| Преобразует размер файла в байтах в читаемый формат, при необходимости добавляя KB, MB, GB.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E_L%D0%A5F%E2%80%932</id>
		<title>LХF100-101:Интepвью LХF–2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%98%D0%BD%D1%82ep%D0%B2%D1%8C%D1%8E_L%D0%A5F%E2%80%932"/>
				<updated>2015-06-03T16:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Интepвью LХF–2 в LXF109:Flickr поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF109:Flickr]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF108:Python</id>
		<title>LXF108:Python</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF108:Python"/>
				<updated>2015-06-03T16:53:03Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Зaгpyзить нeзaгpyжaeмoe в LXF108:Python поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Python: мой первый язык ==&lt;br /&gt;
: ''Многие из нас начинали изучать программирование с Pascal или Basic – но действительно ли это оптимальный выбор? '''Светлана Шапошникова''' представляет нового претендента на роль первого языка программирования.''&lt;br /&gt;
&lt;br /&gt;
Большинство российских школьников и студентов начинают&lt;br /&gt;
изучать основы программирования, используя язык Pascal.&lt;br /&gt;
Возможно, когда-то это был действительно разумный выбор,&lt;br /&gt;
но в настоящее время он, скорее, дань привычке и комплексу старой&lt;br /&gt;
методической литературы. Сегодня, когда учебным заведениям предстоит миграция на Linux, разработчики большинства «школьных»&lt;br /&gt;
дистрибутивов включают в состав своих продуктов компилятор Free&lt;br /&gt;
Pascal (http://www.freepascal.org) и среду Lazarus (http://www.lazarus.freepascal.org).&lt;br /&gt;
Понятно, что это скорее необходимость, делающая переход на новую&lt;br /&gt;
систему более спокойным. Но насколько она уместна, если исходить из&lt;br /&gt;
позиции, что методические разработки – дело наживное? Нет ли языка,&lt;br /&gt;
более родного для Linux и в то же время не уступающего Pascal’ю по&lt;br /&gt;
своим образовательным возможностям (а ведь Pascal был создан для&lt;br /&gt;
обучения программированию)?&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF108 94 1.png|thumb|Рис. 1. Pascal и Python: почувствуйте разницу.]]&lt;br /&gt;
Если вам доводилось работать с детьми и обучать их основам программирования (да, в принципе, неважно чему), то вы могли заметить&lt;br /&gt;
следующее: детская психология при изучении нового материала весьма&lt;br /&gt;
требовательна к наглядности, концентрации на главном и сведению к&lt;br /&gt;
минимуму иных «раздражающих» факторов. Кроме того, сегодняшние дети начинают изучать программирование несколько раньше, чем&lt;br /&gt;
десять лет назад. Зачастую предмет «Информатика» уже присутствует&lt;br /&gt;
в третьем-четвертом классах, а следовательно, к программированию&lt;br /&gt;
можно подойти уже к пятому-шестому. 11-12-летние дети могут быть&lt;br /&gt;
психологически не готовы воспринимать то, что вполне приемлемо для&lt;br /&gt;
15-летних. Например, обилие числовых типов данных в Pascal, «громоздкий» синтаксис языка. Хочется, чтобы первый язык программи-&lt;br /&gt;
рования был достаточно прост и ясен. Конечно, для средней школы&lt;br /&gt;
может подойти Лого, однако он более ориентирован на младшеклассников, а также чаще используется при изучении темы «Алгоритмика»,&lt;br /&gt;
а не «Программирование». Лого – хороший заменитель алгоритмического языка А.П. Ершова (широко используемого на уроках информатики в 80-90-х годах) для детей младшего школьного возраста. Если же&lt;br /&gt;
говорить о первом настоящем языке программирования, то, возможно,&lt;br /&gt;
следует обратить внимание на язык Python (http://python.org). В русском языке это имя часто читают как «Питон», но вообще-то правильное произношение – английское, «Пайтон».&lt;br /&gt;
&lt;br /&gt;
=== Почему Python? ===&lt;br /&gt;
[[Изображение:LXF108 94 2.png|thumb|Рис. 2. Строгий синтаксис Python заставляет ученика правильно оформлять код.]]&lt;br /&gt;
Python был создан Гвидо ван Россумом [Guido van Rossum] примерно в&lt;br /&gt;
1991 г. Его отличительной особенностью является простой и ясный синтаксис. С одной стороны, вспомогательные элементы языка сведены к&lt;br /&gt;
минимуму: это позволяет делать меньше ошибок на начальном этапе&lt;br /&gt;
обучения программированию и быстрее писать программы. С другой&lt;br /&gt;
стороны, Python жестко регламентирует «правила отступов», поэтому&lt;br /&gt;
воспитание аккуратности и внимательности не пострадает. Учащиеся&lt;br /&gt;
привыкнут к хорошему стилю программирования. Чтобы преимущества&lt;br /&gt;
Python стали очевидными, достаточно сравнить код небольшой программы, написанной на нем и на Pascal (рис. 1). Большое количество&lt;br /&gt;
«begin-end» в сочетании с необязательностью соблюдения отступов&lt;br /&gt;
делают проверку программы, написанной на Pascal, мукой. Кроме того,&lt;br /&gt;
приучив ученика к строгости стиля Python, мы вынуждаем его видеть и&lt;br /&gt;
понимать управляющие структуры (рис. 2).&lt;br /&gt;
&lt;br /&gt;
Если при написании программы с использованием языка Pascal&lt;br /&gt;
каждая переменная должна быть обязательно объявлена перед своим&lt;br /&gt;
использованием, то в Python ей можно просто присвоить значение,&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;
В пользу Python как первого языка программирования говорит и&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;
&amp;lt;gallery perrow=1 align=right&amp;gt;&lt;br /&gt;
Изображение:LXF108 95 1.png&lt;br /&gt;
Изображение:LXF108 95 2.jpg|Рис. 3. Среды разработки для Python: выбирай на вкус.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
В качестве одного из достоинств Pascal некоторые авторы отмечают&lt;br /&gt;
наличие у него интегрированной среды программирования, включающей редактор, компилятор, компоновщик, отладчик и др. С Python не&lt;br /&gt;
все так однозначно. Чтобы начать работать в интерактивном режиме,&lt;br /&gt;
следует набрать команду python в консоли. Кроме этого, существует&lt;br /&gt;
специальная интегрированная среда разработки IDLE (в дистрибутиве&lt;br /&gt;
для Windows она присутствует по умолчанию, в Linux требуется доустановить пакет). Преимущество консоли – в возможности прокручивать историю команд, а IDLE – в подсветке синтаксиса. Но поскольку&lt;br /&gt;
в режиме интерпретатора более-менее длинных программ все равно&lt;br /&gt;
не напишешь, то первое преимущество, думается, значительнее. Для&lt;br /&gt;
создания же скриптов [так часто называют программы на Python, второй вариант – «сценарии». Скрипты Python обычно имеют расширение .py, хотя это совершенно не обязательно, – прим. ред.] пригодно&lt;br /&gt;
большинство текстовых редакторов Linux (не считая IDLE, в которой&lt;br /&gt;
тоже можно набирать и сохранять файлы). Чтобы выполнить скрипт,&lt;br /&gt;
достаточно дать команду python путь/имя_программы. И, наконец,&lt;br /&gt;
для Python существуют специальные (содержащие большее количество инструментов, чем IDLE) среды разработки: например, DrPython&lt;br /&gt;
(http://drpython.sourceforge.net) и Eric (http://www.die-offenbachs.de/eric) – см. рис. 3.&lt;br /&gt;
И если первая ориентирована на школьников, то вторая больше подходит для серьезных задач. Помимо прочего, синтаксис Python поддерживает и KDevelop, так что каждый может выбрать «на свой вкус&lt;br /&gt;
и цвет».&lt;br /&gt;
&lt;br /&gt;
=== А дальше? ===&lt;br /&gt;
Наконец, нельзя не сказать о том, что Python – это полноценный универсальный язык программирования. Освоите азы – всегда будет, куда&lt;br /&gt;
двигаться дальше. Python поддерживает функциональное и объектно-ориентированное программирование, для него существует большое&lt;br /&gt;
количество библиотек, в том числе – для создания графического пользовательского интерфейса.&lt;br /&gt;
&lt;br /&gt;
Каждый язык программирования имеет свои особенности и области наиболее частого применения. В качестве первого можно выбрать&lt;br /&gt;
почти любой, однако не каждый из них будет эффективным. Также&lt;br /&gt;
при выборе следует учитывать возраст обучаемых и род задач. Так,&lt;br /&gt;
если цель – познакомить учащихся среднего школьного возраста с&lt;br /&gt;
современным и используемым настоящими (вроде как бывают и игрушечные?) программистами языком, то на эту роль может прекрасно&lt;br /&gt;
подойти Python.&lt;br /&gt;
&lt;br /&gt;
Содержание образования меняется, должны меняться и его «инструменты». Следует, конечно, учитывать и человеческий фактор: многим&lt;br /&gt;
учителям с большим стажем и энным количеством методических разработок по Pascal или Basic трудно перейти на что-то новое (да и приемные комиссии некоторых ВУЗов еще требуют от абитуриента знания&lt;br /&gt;
именно Pascal). Поэтому включение в «школьные» дистрибутивы компилятора FreePascal сегодня является необходимостью. Однако начинающие учителя информатики, не обремененные опытом, возможно,&lt;br /&gt;
найдут Python весьма подходящим языком для обучения основам программирования.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Узнайте больше!&lt;br /&gt;
|Содержание=Заинтересовались? Linux Format публиковал уроки Python в выпусках [[LXF74-75:Python|LXF74/75]]–[[LXF84:Python|84]]. Вы можете загрузить их в электронном виде&lt;br /&gt;
с сайта журнала: http://www.linuxformat.ru/pdf.phtml.&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Python]]&lt;br /&gt;
[[Категория:Светлана Шапошникова]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%97a%D0%B3py%D0%B7%D0%B8%D1%82%D1%8C_%D0%BDe%D0%B7a%D0%B3py%D0%B6ae%D0%BCoe</id>
		<title>LХF100-101:Зaгpyзить нeзaгpyжaeмoe</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%97a%D0%B3py%D0%B7%D0%B8%D1%82%D1%8C_%D0%BDe%D0%B7a%D0%B3py%D0%B6ae%D0%BCoe"/>
				<updated>2015-06-03T16:53:03Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Зaгpyзить нeзaгpyжaeмoe в LXF108:Python поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF108:Python]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF108:Django</id>
		<title>LXF108:Django</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF108:Django"/>
				<updated>2015-06-03T16:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Aнaнac в LXF108:Django поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Цикл/Django}}&lt;br /&gt;
== Финальные штрихи ==&lt;br /&gt;
: ''ЧАСТЬ 4 Уроки Django подходят к концу, наступает пора экзаменов – если не для вас, то для приложений уж точно. '''Никита Шультайс''' (http://shultais.ru) разберется с тестированием и пробежится по другим возможностям этого каркаса.''&lt;br /&gt;
&lt;br /&gt;
Новостная лента готова – но оправдает ли она ожидания&lt;br /&gt;
пользователей? Ответ на этот вопрос может дать тестирование, лучше всего – в реальных условиях; но какие-то&lt;br /&gt;
основные вещи можно проверить еще на этапе разработки. Если вы&lt;br /&gt;
успели заглянуть в учебник [[LXF108:Rails|Rails]], то уже знаете о методологии TDD. Мы, однако, пойдем другим путем, и будем тестировать&lt;br /&gt;
приложение не до написания, а после.&lt;br /&gt;
&lt;br /&gt;
Дело это – серьезное и сложное, так как нам нужно учитывать&lt;br /&gt;
взаимодействие с БД, компиляцию шаблонов, обработку GET- и&lt;br /&gt;
POST-запросов и прочие компоненты системы: сбой в любом из&lt;br /&gt;
них может вызвать нарушить работу всего сайта. К данной задаче&lt;br /&gt;
можно подойти с двух сторон:&lt;br /&gt;
* Тестирование в браузере. Речь идет о программах Twill (http://twill.idyll.org) и Selenium (http://selenium.openqa.org): они «запоминают» последовательность ваших действий для каждой страницы, а затем воспроизводят ее по запросу. Например, можно ввести в поля формы заведомо неверные данные, получить ожидаемую ошибку и повторять этот тест при каждом серьезном изменении в коде вашего приложения.&lt;br /&gt;
* Тестирование на сервере. И тут Django не оставляет нас на произвол судьбы, предлагая сразу два варианта: doctest (тестирование через документацию) и unittest (модульное тестирование), плюс специальный клиент для отправки GET- и POST-запросов.&lt;br /&gt;
&lt;br /&gt;
Если вы давно программируете на Python, то вам, наверное,&lt;br /&gt;
будет ближе doctest, а мигрантам из мира Java скорее придется по&lt;br /&gt;
вкусу unittest. Никаких ограничений на их использование не накладывается: вы можете выбрать одну систему или применять обе сразу. Мы же остановимся на doctest.&lt;br /&gt;
&lt;br /&gt;
=== Документируй это! ===&lt;br /&gt;
Строка документации в Python – это обычный текст, размещаемый&lt;br /&gt;
после определения функции или класса непосредственно в исходном&lt;br /&gt;
коде. Она же предоставляет содержимое для атрибута __doc__. Как&lt;br /&gt;
правило, ее помещают в тройные кавычки (&amp;quot;&amp;quot;&amp;quot;), что позволяет вводить&lt;br /&gt;
сложные конструкции с переносами строк, отступами, теми же кавычками и... тестами. Этим мы и воспользуемся.&lt;br /&gt;
&lt;br /&gt;
Тесты могут находится в файлах моделей (models.py) – для проверки последних – и в специальных файлах tests.py, расположенных&lt;br /&gt;
в директории приложения. К примеру, создайте файл news/tests.py&lt;br /&gt;
такого содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from news.models import News&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from datetime import datetime&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; news = News(title=&amp;quot;Заголовок&amp;quot;,description=&amp;quot;Описание&amp;quot;,pub_date=datetime.now(), text=&amp;quot;Текст&amp;quot;)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; news.save()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; news = News.objects.get(pk=1)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print news.title.encode('utf-8')&lt;br /&gt;
 Заголовок&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В строке 1 задается кодировка, а начиная с третьей идет сам&lt;br /&gt;
тест. Заметьте, что каждая строка начинается с трех знаков «больше» (&amp;gt;&amp;gt;&amp;gt;), как в интерактивном режиме работы Python. В строке 10&lt;br /&gt;
этих знаков нет, так как она содержит ожидаемый вывод команды&lt;br /&gt;
print со строки 9.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:LXF108 85 1.png|thumb|200px|Рис. 1. Тест пройден удачно!]]&lt;br /&gt;
Перед тем, как запустить тест, в settings.py нужно добавить&lt;br /&gt;
строку&lt;br /&gt;
 TEST_DATABASE_CHARSET=&amp;quot;UTF8&amp;quot;&lt;br /&gt;
чтобы кодировки файла и базы данных совпадали. Перед выполнением теста Django создаст специальную вспомогательную БД, поэтому&lt;br /&gt;
пользователь, указанный в settings.DATABASE_USER, должен иметь&lt;br /&gt;
соответствующие права. Для начала тестирования введите команду:&lt;br /&gt;
 python manage.py test news&lt;br /&gt;
после выполнения которой вы увидите примерно то, что показано&lt;br /&gt;
на рис. 1.&lt;br /&gt;
&lt;br /&gt;
Сообщения похожи на появляющиеся во время создания таблиц&lt;br /&gt;
при первой установке, но теперь все происходит в тестовой БД. В&lt;br /&gt;
конце отображается число выполненных тестов, их результаты и&lt;br /&gt;
уведомление об уничтожении тестовой базы. Мы проверяли наше&lt;br /&gt;
приложение (news), но, как вы помните, Django содержит несколько&lt;br /&gt;
собственных приложений и представлений (например, «админку») –&lt;br /&gt;
и они тоже снабжаются своими тестами. Чтобы выполнить их все,&lt;br /&gt;
нужно ввести команду:&lt;br /&gt;
 python manage.py test&lt;br /&gt;
добавив предварительно в главный файл URL-карт следующие&lt;br /&gt;
строки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;urlpatterns += patterns('django.contrib.auth.views',&lt;br /&gt;
url(r'^auth/password_reset/$','password_reset'),&lt;br /&gt;
)&amp;lt;/source&amp;gt;&lt;br /&gt;
Здесь мы подключаем одно из встроенных представлений, предназначенное для восстановления пароля. Это необходимо, так как при&lt;br /&gt;
тестировании всего проекта происходит обращение по указанному URL,&lt;br /&gt;
и если представление не определено, тест будет провален. Кстати, вы&lt;br /&gt;
тоже можете попробовать password_reset в работе (рис. 2).&lt;br /&gt;
[[Изображение:LXF108 85 2.png|frame|center|Рис. 2. Забыли пароль? Это проблемы Django!]]&lt;br /&gt;
&lt;br /&gt;
=== Имитатор Сети ===&lt;br /&gt;
Количество тестов уже достигло шести, но помимо создания и&lt;br /&gt;
извлечения объектов из базы, нам нужно проверить реакцию на&lt;br /&gt;
GET- и POST-запросы. Как вы знаете, для этих целей существует&lt;br /&gt;
специальный клиент: он эмулирует запрос и возвращает переменные, которые передаются в шаблон для данного URL. Добавьте в&lt;br /&gt;
файл tests.py после строки 10 следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot; line start=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from django.contrib.auth.models import User&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; user = User.objects.create_user('django_guru', 'user@example.com', 'password')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; user.save()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from django.test.client import Client&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; c = Client()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; c.login(username='django_guru',password=“password”)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response = c.get('/news/1/')&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response.status_code&lt;br /&gt;
200&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print response.context[0]['user'].username&lt;br /&gt;
django_guru&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response = c.post('/news/1/',{'username':“testuser”,'text':»»})&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response.status_code&lt;br /&gt;
200&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response = c.post('/news/1/',{'username':“testuser”,'text':»Comment text»})&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; response.status_code&lt;br /&gt;
302&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; from news.models import Comment&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; comment = Comment.objects.get(news=news)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print comment.text&lt;br /&gt;
Comment text&amp;lt;/source&amp;gt;&lt;br /&gt;
Разберемся, что здесь происходит. В строках 11–13 мы создаем&lt;br /&gt;
нового пользователя (django_guru), а в 14–15 – тестовый клиент. В&lt;br /&gt;
строке 16 django_guru авторизуется, и отныне все действия в системе&lt;br /&gt;
будут совершаться от его имени. В строке 18 мы переходим на страницу нашей первой новости, передав средствами клиента GET-запрос.&lt;br /&gt;
Для проверки, что нам это удалось, мы изучаем код ответа сервера&lt;br /&gt;
(строка 19) – он должен равняться 200, или тест будет провален.&lt;br /&gt;
Затем (строки 21–22), чтением дополнительных данных ответа, мы&lt;br /&gt;
убеждаемся, что запрос сделал зарегистрированный пользователь&lt;br /&gt;
django_guru. Теперь самое время оставить комментарий – не зря же&lt;br /&gt;
мы авторизовались? В строке 23 генерируется POST-запрос (второй&lt;br /&gt;
аргумент метода post() – словарь отсылаемых на сервер данных).&lt;br /&gt;
Обратите внимание, что значение ключа text оставлено пустым, а&lt;br /&gt;
значит, комментарий не добавится, однако сервер по-прежнему должен возвращать код 200 (строка 25). А вот в строке 26 мы передаем&lt;br /&gt;
все необходимые данные, и так как после создания комментария нас&lt;br /&gt;
перенаправляют на страницу новости, код ответа должен быть равен&lt;br /&gt;
302 (Требуемый URL перемещен). В строках 29–32 проверяется, что&lt;br /&gt;
комментарий был действительно добавлен: мы сравниваем его текст&lt;br /&gt;
с исходным значением. Уфф... тест пройден.&lt;br /&gt;
&lt;br /&gt;
=== Действительно простая синдикация ===&lt;br /&gt;
Какой новостной сайт без ленты? RSS и/или Atom есть везде – будут&lt;br /&gt;
и у нас, а Django нам в этом поможет. Откройте главный файл URL-карт и добавьте в его конец следующие строки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
from feeds import LatestNews&lt;br /&gt;
&lt;br /&gt;
feeds = {&lt;br /&gt;
'latest': LatestNews,&lt;br /&gt;
}&lt;br /&gt;
urlpatterns += patterns('',&lt;br /&gt;
(r'^feeds/(?P&amp;lt;url&amp;gt;.*)/$', 'django.contrib.syndication.views.feed',&lt;br /&gt;
{'feed_dict': feeds}),&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Далее нужно приготовить ленту LatestNews, которую мы импортируем в строке 1. Создайте в корне проекта каталог feeds с файлом&lt;br /&gt;
__init__.py следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from django.contrib.syndication.feeds import Feed&lt;br /&gt;
from news.models import News&lt;br /&gt;
from django.contrib.syndication.feeds import FeedDoesNotExist&lt;br /&gt;
&lt;br /&gt;
class LatestNews(Feed):&lt;br /&gt;
title = &amp;quot;Последние новости нашего сайта&amp;quot;&lt;br /&gt;
description = &amp;quot;Последние события на сайте mysite.com&amp;quot;&lt;br /&gt;
link = &amp;quot;http://127.0.0.1:8000/news/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def items(self):&lt;br /&gt;
return News.objects.order_by(&amp;quot;-pub_date&amp;quot;)[:5]&lt;br /&gt;
&lt;br /&gt;
def item_link(self, obj):&lt;br /&gt;
from django.core.urlresolvers import reverse&lt;br /&gt;
return 'http://127.0.0.1:8000%s' % reverse('news.news_detail',kwargs={&amp;quot;news_id&amp;quot;:obj.pk})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Изображение:LXF108 86 1.png|thumb|250px|Рис. 3. Firefox предлагает подписаться на обновления нашего новостного сайта – теперь держитесь!]]&lt;br /&gt;
Поля title, description и link класса LatestNews являются обязательными и отвечают за одноименные элементы RSS. Метод items()&lt;br /&gt;
передает в ленту требуемые объекты, а item_link() отвечает за ссылку&lt;br /&gt;
на сайт. Теперь создайте каталог feeds в media/templates и добавьте&lt;br /&gt;
в него два файла, latest_description.html и latest_title.html: они будут&lt;br /&gt;
отвечать за вид новостной ленты. В lates_description.html напишите:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ obj.description }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
а в latest_title.html:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[{{ obj.pub_date|date:&amp;quot;d.m.Y&amp;quot; }}] {{ obj.title }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Объект obj представляет собой запись из выборки, которую мы&lt;br /&gt;
возвращаем в строке 13 файла feeds/__init__.py. Пройдя по адресу&lt;br /&gt;
http://127.0.0.1:8000/feeds/latest/, мы увидим предложение Firefox&lt;br /&gt;
сохранить ленту новостей. Пользователи KDE, вероятно, предпочтут&lt;br /&gt;
Akregator – с ним тоже нет никаких проблем (рис. 3, 4)&lt;br /&gt;
&lt;br /&gt;
=== Общие представления ===&lt;br /&gt;
Чтобы облегчить жизнь web-разработчика, Django включил большое&lt;br /&gt;
число представлений для решения стандартных задач. Так, добавив&lt;br /&gt;
в главный файл URL-карт следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from django.views.generic.list_detail import object_list&lt;br /&gt;
from news.models import News&lt;br /&gt;
urlpatterns += patterns('',&lt;br /&gt;
('^lastnews/$', object_list, {&lt;br /&gt;
'queryset': News.objects.all().order_by('-pub_date')[:10],&lt;br /&gt;
'template_name':'news/last_news.html',&lt;br /&gt;
'template_object_name':'last_news'})&lt;br /&gt;
)&amp;lt;/source&amp;gt;&lt;br /&gt;
а также заменив в файле news/templates/news/last_news.html&lt;br /&gt;
 {% for news in last_news %}&lt;br /&gt;
на&lt;br /&gt;
 {% for news in last_news_list %}&lt;br /&gt;
мы сможем просматривать последние новости по адресу&lt;br /&gt;
http://127.0.0.1:8000/lastnews/, не вызывая представление news.last_news. Чтобы сделать доступными оба варианта, нужно найти в представлении news.last_news строку&lt;br /&gt;
 &amp;quot;last_news&amp;quot;:news,&lt;br /&gt;
и заменить ее на&lt;br /&gt;
 &amp;quot;last_news_list&amp;quot;:news,&lt;br /&gt;
Как вы уже догадались, общее представление object_list предназначено для работы со списком объектов. Еще есть представления для&lt;br /&gt;
вывода объектов в зависимости от даты (django.views.generic.date_based.*), что позволяет очень просто создавать архивы записей:&lt;br /&gt;
* archive_index – вывод последних объектов, добавленных в базу данных;&lt;br /&gt;
* archive_{year,month,week,day,today} – вывод всех объектов за определенный год, месяц, неделю, день или за сегодня;&lt;br /&gt;
* object_detail – вывод одного объекта за определенный день.&lt;br /&gt;
Доступны общие представления для создания, обновления и&lt;br /&gt;
удаления объектов. Все они работают немного быстрее, чем созданные вручную, но позволяют решать лишь самые элементарные задачи. Если данные в вашем приложении выбираются из нескольких&lt;br /&gt;
таблиц и это сопровождается расчетами, то общие представления&lt;br /&gt;
не помогут – на то они и общие.&lt;br /&gt;
&lt;br /&gt;
=== Добавляем переменные на лету ===&lt;br /&gt;
В глубинах Django скрываются глобальные контекстные процессоры, основная задача которых – снабжать шаблоны переменными&lt;br /&gt;
и объектами. Узнать, какие из них подключены, можно в кортеже&lt;br /&gt;
TEMPLATE_CONTEXT_PROCESSORS в файле settings.py. Например, у&lt;br /&gt;
нас сейчас работают следующие процессоры:&lt;br /&gt;
* auth – информация о пользователе: объект user, его права доступа и сообщения, которые были ему отправлены;&lt;br /&gt;
* i18n – сведения о текущем языке сайта и клиента;&lt;br /&gt;
* request – данные о запросе.&lt;br /&gt;
Кроме них, существует еще процессор debug, передающий в&lt;br /&gt;
шаблон данные о выполненных SQL-запросах, плюс мы можем&lt;br /&gt;
написать свой собственный! Для этого создадим в корне нашего&lt;br /&gt;
проекта каталог processors и добавим в него два файла: __init__.py&lt;br /&gt;
и context_processors.py. Последний должен содержать такой код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import settings&lt;br /&gt;
def site_settings(request):&lt;br /&gt;
return {'SETTINGS': settings}&amp;lt;/source&amp;gt;&lt;br /&gt;
Чтобы подключить процессор, просто перечислите его в кортеже&lt;br /&gt;
TEMPLATE_CONTEXT_PROCESSORS. Проверим работоспособность:&lt;br /&gt;
добавим в шаблон news.html следующее:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ SETTINGS.TIME_ZONE }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Конечно, TIME_ZONE можно заменить на любую другую переменную, определенную в settings.py.&lt;br /&gt;
&lt;br /&gt;
=== Сам себе фильтр ===&lt;br /&gt;
С фильтрами мы познакомились еще в [[LXF105:Django|LXF105]], однако часто возникают ситуации, когда поставляемых с Django вариантов недостаточно. Чтобы написать свой собственный фильтр, создайте в корне&lt;br /&gt;
проекта каталог templatetags/ и добавьте в него файлы __init__.py&lt;br /&gt;
и filters.py. В filters.py напишите:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
from django import template&lt;br /&gt;
&lt;br /&gt;
register = template.Library()&lt;br /&gt;
&lt;br /&gt;
@register.filter&lt;br /&gt;
def exp(value, arg):&lt;br /&gt;
if value.isdigit() and arg.isdigit():&lt;br /&gt;
return int(value)**int(arg)&lt;br /&gt;
else:&lt;br /&gt;
return '&amp;lt;span style=“color:red”&amp;gt;Error&amp;lt;/span&amp;gt;'&lt;br /&gt;
exp.is_safe = True&amp;lt;/source &amp;gt;&lt;br /&gt;
Мы создали фильтр exp, который получает значение и показатель степени и возводит одно в другое; если аргументы не являются числами, генерируется ошибка. В строке 5 мы регистрируем&lt;br /&gt;
фильтр в системе с помощью декоратора. Строка 11 указывает,&lt;br /&gt;
что exp может возвращать HTML-код. Поскольку (в целях безопасности) он автоматически экранируется (&amp;lt; и &amp;gt; заменяются на &amp;amp;amp;lt; и&lt;br /&gt;
&amp;amp;amp;gt; и т.д.), то, желая видеть чистый HTML, мы должны запретить&lt;br /&gt;
такое поведение вручную. Следующим шагом является подгрузка&lt;br /&gt;
библиотеки фильтров в шаблон, для чего нужно добавить в него&lt;br /&gt;
следующую строку:&lt;br /&gt;
 {% load filters %}&lt;br /&gt;
Вообще-то Django ищет созданные библиотеки шаблонов в корне приложения, поэтому наш фильтр пока не будет доступен. Это&lt;br /&gt;
не очень удобно, особенно если мы хотим использовать один и тот&lt;br /&gt;
же фильтр во многих приложениях. Решение – создать для проекта&lt;br /&gt;
единую библиотеку, а в приложения помещать лишь символьные&lt;br /&gt;
ссылки на нее.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /var/www/myproject/templatetags/ /var/www/myproject/news/&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь проверим работу фильтра, добавив в какой-нибудь шаблон&lt;br /&gt;
строку.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ &amp;quot;4&amp;quot;|exp:&amp;quot;4&amp;quot; }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Во время компиляции она будет заменена на 256. Если же мы&lt;br /&gt;
напишем&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ &amp;quot;a&amp;quot;|exp:&amp;quot;4&amp;quot; }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
то увидим слово «Error», выделенное красным цветом.&lt;br /&gt;
Кстати, если бы мы не указали в строке 11 фильтра exp.is_safe= True, можно было бы просто применить фильтр safe прямо в&lt;br /&gt;
шаблоне:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ &amp;quot;a&amp;quot;|exp:&amp;quot;4&amp;quot;|safe }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
После регистрации фильтра в системе, информация о нем становится доступной по адресу http://127.0.0.1:8000/admin/doc/filters/&lt;br /&gt;
(рис. 4)&lt;br /&gt;
[[Изображение:LXF108 87 1.png|frame|center|Рис. 4. Система любезно подскажет, как использовать созданный вами фильтр.]]&lt;br /&gt;
&lt;br /&gt;
=== Компоненты ===&lt;br /&gt;
Если нам надо выполнить какие-либо действия до или после того,&lt;br /&gt;
как будет вызвано представление, либо в случае ошибки, можно создать свой компонент (middleware) или воспользоваться&lt;br /&gt;
поставляемым с Django. Мы уже делали это, когда изучали кэширование ([[LXF107:Django|LXF107]]). Напомню, что в файле settings.py есть кортеж&lt;br /&gt;
MIDDLEWARE_CLASSES, который перечисляет компоненты, задействованные в проекте. У нас это:&lt;br /&gt;
* django.middleware.common.CommonMiddleware Решает общие задачи: нормализует URL (добавляет префикс www и завершающий /), запрещает доступ к сайту определенным роботам, взаимодействует с Etag.&lt;br /&gt;
* django.contrib.sessions.middleware.SessionMiddleware Это сессии.&lt;br /&gt;
* django.contrib.auth.middleware.AuthenticationMiddleware А это – авторизация.&lt;br /&gt;
* django.middleware.doc.XViewMiddleware Используется для автоматического документирования Django.&lt;br /&gt;
* django.middleware.locale.LocaleMiddleware Интернационализация.&lt;br /&gt;
Помимо перечисленных выше, в Django доступны следующие&lt;br /&gt;
компоненты (django.middleware.*):&lt;br /&gt;
* gzip.GZipMiddleware Сжатие отправляемой страницы для экономии трафика.&lt;br /&gt;
* http.ConditionalGetMiddleware Поддержка условных GET-запросов для работы с Last-Modified и Etag.&lt;br /&gt;
* http.SetRemoteAddrFromForwardedFor Обратное проксирование.&lt;br /&gt;
* cache.CacheMiddleware Тот самый кэш, с которым мы сталкивались на прошлом уроке.&lt;br /&gt;
* transaction.TransactionMiddleware Компонент для включения в SQL-запросы транзакционных конструкций: COMMIT, ROLLBACK.&lt;br /&gt;
Заметьте, что не все базы данных поддерживают транзакции.&lt;br /&gt;
&lt;br /&gt;
И, наконец, django.contrib.csrf.middleware.CsrfMiddleware, защищающее от CSRF-атак.&lt;br /&gt;
&lt;br /&gt;
По сложившейся уже традиции, рассмотрим, как написать свой&lt;br /&gt;
собственный компонент. С точки зрения программиста, это просто&lt;br /&gt;
класс Python, имеющий ряд методов, вызываемых Django в определенные моменты времени. Первым из них является конструктор&lt;br /&gt;
__init__(self), регистрирующий компонент в системе. Дальше следуют методы, определяющие порядок выполнения кода:&lt;br /&gt;
* process_request() – запускается после того, как поступил запрос,но перед тем как Django начнет искать запрашиваемый адрес в URL-картах;&lt;br /&gt;
* process_view() – отрабатывает, когда конкретное представление уже определено, но еще не запущено;&lt;br /&gt;
* process_response() – выполняется после представления.&lt;br /&gt;
Используется для сжатия сгенерированного HTML.&lt;br /&gt;
process_exception() – вызывается, если что-то пошло не так или&lt;br /&gt;
было возбуждено необработанное исключение.&lt;br /&gt;
&lt;br /&gt;
Вот, в сущности, и все. Впрочем, нет – взгляните на врезку И&lt;br /&gt;
прочая, прочая, прочая, почитайте документацию или свободную&lt;br /&gt;
книгу о Django – Django Book (http://www.djangobook.com); если же вам&lt;br /&gt;
больше по душе русский, советую заглянуть на http://cargo.caml.ru/djangobook. Наконец, примените полученные знания на практике – и дайте нам знать, если у вас получится что-то действительно стоящее!&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=И прочая, прочая, прочая...&lt;br /&gt;
|Содержание=За четыре урока мы успели рассмотреть почти все возможности&lt;br /&gt;
Django, но кое-что осталось неохваченным...&lt;br /&gt;
*; Электронная почта&lt;br /&gt;
Django предлагает высокоуровневый API для отправки письма в&lt;br /&gt;
одно действие:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;from django.core.mail import send_mail&lt;br /&gt;
send_mail('Тема', 'сообщение.', 'from@example.com', ['to@example.com'], fail_silently=False)&amp;lt;/source&amp;gt;&lt;br /&gt;
Кроме того, есть функции массовой рассылки сообщений, оповещения администраторов и менеджеров сайта, а также работы с&lt;br /&gt;
различным содержимым (HTML, текст, графика и т.п.)&lt;br /&gt;
*; CSV и PDF&lt;br /&gt;
Django позволяет легко формировать файлы с данными, разделенными запятыми (CSV), а также PDF-документы, используя&lt;br /&gt;
библиотеку ReportLab (http://www.reportlab.org/rl_toolkit.html).&lt;br /&gt;
*; Постраничный вывод&lt;br /&gt;
Когда количество объектов настолько велико, что одной страницы становится мало, на помощь приходит специальный класс&lt;br /&gt;
Paginator, который помогает организовать постраничный вывод:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;gt; from django.core.paginator import Paginator&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; objects = ['django', 'python', 'mysql', 'apache']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; p = Paginator(objects, 2)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; page1 = p.page(1)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; page1.object_list&lt;br /&gt;
['django', 'python']&amp;lt;/source&amp;gt;&lt;br /&gt;
Поскольку большинство наших объектов хранятся в базе данных,&lt;br /&gt;
Django также предлагает класс QuerySetPaginator, который принимает не список, а множество объектов из СУБД.&lt;br /&gt;
*; Карты сайта&lt;br /&gt;
Хотите, чтобы ваш сайт правильно индексировался поисковыми&lt;br /&gt;
машинами? Необходимо создать его карту! Django поможет и&lt;br /&gt;
здесь, а функция django.contrib.sitemaps.ping_google «заставит»&lt;br /&gt;
Google обновить индексы для вашего сайта.&lt;br /&gt;
*; Управление несколькими сайтами&lt;br /&gt;
Одной из задач, с которой успешно справляется Django, является&lt;br /&gt;
управление несколькими схожими по тематике сайтами из одной&lt;br /&gt;
инсталляции. Проект первоначально разрабатывался как платформа для новостных порталов, и одна новость могла появиться&lt;br /&gt;
сразу на нескольких ресурсах.&lt;br /&gt;
*; В помощь дизайнерам&lt;br /&gt;
Подгрузив к шаблонам модуль помощи дизайнерам:&lt;br /&gt;
 {% load webdesign %}&lt;br /&gt;
вы получите в свое распоряжение тэг {% lorem %}, с помощью&lt;br /&gt;
которого можно выводить известную латинскую фразу «lorem&lt;br /&gt;
ipsum ...» для заполнения шаблонов «рыбой».&lt;br /&gt;
*; И более того&lt;br /&gt;
Django содержит много других «вкусностей», которые очень&lt;br /&gt;
хорошо описаны в прилагающейся документации на английском&lt;br /&gt;
языке.&lt;br /&gt;
|Ширина=}}&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:A%D0%BDa%D0%BDac</id>
		<title>LХF100-101:Aнaнac</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:A%D0%BDa%D0%BDac"/>
				<updated>2015-06-03T16:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Aнaнac в LXF108:Django поверх перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF108:Django]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/LXF105:Ardour</id>
		<title>LXF105:Ardour</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/LXF105:Ardour"/>
				<updated>2015-06-03T16:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Наrdсоrе Linuх в LXF105:Ardour поверх перенаправления: восстановление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: '''Учебник''' Профессиональная запись музыки с ''Ardour 2.1''[[Категория:Учебники]]&lt;br /&gt;
&lt;br /&gt;
==''Ardour'': Cтать мастером музыки==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Ardour}}&lt;br /&gt;
&lt;br /&gt;
: '''ЧАСТЬ 4''': В последней статье об ''Ardour'' '''Дэниел Джеймс''' объясняет, как завершить сессию звукозаписи с помощью '''Jamin'''.&lt;br /&gt;
&lt;br /&gt;
Давным-давно, во времена винила, уровень звука ограничивался максимумом, при достижении которого пишущая игла уже слетала с пластинки; поэтому инженер по мастерингу присматривал за производством мастер-дисков, используемых затем для штамповки пластинок. Когда стандартом стал CD, инженеры стали&lt;br /&gt;
думать, как повысить средний уровень звука, при этом не превысив 0 dbFS, новый максимальный уровень, принятый в цифровых системах. Как мы помним из предыдущих статей, превышение этого уровня вызывает цифровое искажение, т.н. клиппирование, неприятное на&lt;br /&gt;
слух и утомляющее человеческое ухо.&lt;br /&gt;
&lt;br /&gt;
Максимальный уровень звука на CD никак не может превысить 0 dbFS, но средний уровень последние 25 лет постоянно растет. Это&lt;br /&gt;
происходит по коммерческим причинам, потому что средний покупатель, сравнив две записи, предпочтет более громкую. Было даже нечто&lt;br /&gt;
вроде гонки вооружений в стремлении создать самые громкие и четкие записи, а если запись должна была воспроизводиться на радио, то там&lt;br /&gt;
ее дополнительно обрабатывали.&lt;br /&gt;
&lt;br /&gt;
===Беглое сравнение===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_76_1.jpg|300px]] Два непохожих стиля мастеринга: сверху Gymnopedies Сати, внизу — Doggfather Снупа Догга.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Переключитесь с радиостанции BBC Radio 1 с популярной музыкой на Radio 3 с классической, и вы услышите огромную разницу в среднем&lt;br /&gt;
уровне звука. Причина этого кроется в понятии, известном как динамический диапазон звука. У классических произведений большой динамический диапазон: это значит, что в них есть очень тихие фрагменты – вроде вокального соло – и очень громкие, когда все инструменты&lt;br /&gt;
оркестра играют в полную силу. В отличие от них большинство современных записей звучат громко все время, то есть их динамический диапазон относительно небольшой. Вместо динамики «тихо, громко, тихо» у Pixies и Nirvana это динамика «громко, очень громко, чрезвычайно&lt;br /&gt;
громко», когда в ход идут все средства цифровой обработки звука.&lt;br /&gt;
&lt;br /&gt;
Люди, которым это не безразлично, все чаще сходятся на том, что в погоне за субъективной громкостью некоторые из этих технологий применяются излишне широко и завышают средний уровень звука. Чтобы исследовать звуковую дорожку коммерческого CD, конвертируйте ее в формат '''WAV''' и откройте в ''Ardour'', используя пункт меню '''Session &amp;gt; Add Existing Audio'''. Если между максимальными уровнями звука и отметкой&lt;br /&gt;
0 dbFS нет свободного пространства, а в середине звуковой дорожки – плотная область данных, то CD, вероятно, был «жестко клиппирован».&lt;br /&gt;
Это самый грубый способ повышения среднего уровня звука: верхушки просто срезаются, а остальное усиливается. От умышленного клиппирования способ практически не отличается. Можете попрощаться с изысканностью музыки, а минут через пять слушания – здравствуй,&lt;br /&gt;
ломота в висках.&lt;br /&gt;
&lt;br /&gt;
В следующем, отчасти забавном сопоставлении крайностей мы рассмотрим произведение для фортепиано Gymnopedies Эрика Сати [Erik Satie], записанное для EMI в исполнении Питера Лоусона [Peter Lawson] на аналоговый носитель в Уигмор-Холле [Wigmore Hall] в Лондоне в 1979 году и перенесенное на CD в студии Abbey Road в 1989 году. Потом параллельно загрузим композицию Doggfather Снупа Догга [Snoop Dogg] с альбома Tha Doggfather 1996 года в записи Death&lt;br /&gt;
Row/Interscope.&lt;br /&gt;
&lt;br /&gt;
===О, эта тишина===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Загловок=Скорая помощь|Содержание=Очень подробная книга о цифровом мастеринге звука – Mastering Audio: The Art And The Science (второе&lt;br /&gt;
издание) Боба Каца [Bob Katz] (издательство Focal Press). Единственный недостаток первого издания в том, что Катц ни слова не сказал о ''Jamin'', GNU/Linux и свободном ПО.|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
Во-первых, на записи Сати много свободного пространства (см. рисунок). Вероятно, это одна из самых тихих записей, когда-либо издававшихся на CD. Новички могут спросить, почему инженер студии Abbey Road просто не пропустил этот трек через программный модуль (плагин) «нормализатора» чтобы повысить уровень звука. Дело в том, что профессиональные инженеры не полагаются на автоматику при расчете максимального усиления для каждой дорожки. Они сначала слушают материал, потом регулируют уровни дорожек  а слух, пока все дорожки вместе не будут звучать хорошо. Инженер&lt;br /&gt;
в этом случае, наверное, решил что Gymnopedies, очень мягкий фрагмент фортепианного соло, вполне достоин быть тихим. Потом на этом&lt;br /&gt;
CD идут более громкие треки, и тихий открывающий трек подчеркивает&lt;br /&gt;
естественный динамический диапазон инструмента.&lt;br /&gt;
&lt;br /&gt;
Закона о запрете пользоваться динамической обработкой звука,&lt;br /&gt;
разумеется, нет, но вставьте этот диск в обычную стереосистему автомобиля в транспортном потоке в час пик, и он будет звучать так тихо,&lt;br /&gt;
что многие люди поинтересуются: исправны ли динамики?&lt;br /&gt;
&lt;br /&gt;
На записи Снупа Догга, наоборот, не только максимумы звука упираются в 0 dbFS при каждом ударе барабана и хлопке в ладоши, но и&lt;br /&gt;
средний уровень звука гораздо больше. Да, песню отлично слышно&lt;br /&gt;
даже при выкрученном в нуль регуляторе усилителя громкости, но&lt;br /&gt;
хлопки в ладоши режут ухо, и обо всякой динамике, наблюдавшейся в&lt;br /&gt;
студии, можно забыть. Мы стремимся к золотой середине: обработке,&lt;br /&gt;
достаточной для хорошей слышимости микса и сохраняющей свойства&lt;br /&gt;
звука, заметные при записи.&lt;br /&gt;
&lt;br /&gt;
===Полюбите ''Jamin'', как мы===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_76_2.jpg|300px]]''Jamin'' подключен между выходами основной шины ''Ardour'' и первыми двумя портами внутренней звуковой карты.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Средства инженера цифрового мастеринга – все те же сжатие, ограничение и выравнивание, что применяются и при микшировании.&lt;br /&gt;
Плагины для мастеринга отличаются разве что меньшей агрессивностью: они не рассчитаны на очевидный эффект. Предполагается, что&lt;br /&gt;
вы ощутите увеличение среднего уровня и насколько лучше запись&lt;br /&gt;
адаптируется к смене воспроизводящих аудиосистем, без влияния на&lt;br /&gt;
тональную окраску или искажения. Для мастеринга сессии можно воспользоваться LADSPA-плагинами, но микшер ''Ardour'' не очень приспособлен для этой задачи. Вместо него воспользуемся ''Jamin'' (сокращение от Jack Audio Mastering Interface). Это свободная ''GTK''-программа,&lt;br /&gt;
распространяемая по лицензии GNU GPL; ее можно загрузить с сайта http://jamin.sourceforge.net. Она автономна, и ее можно использовать с&lt;br /&gt;
любым ''Jack''-приложением, а не только с ''Ardour''.&lt;br /&gt;
&lt;br /&gt;
Jamin предоставляет интерфейс для набора наиболее популярных плагинов мастеринга стереозвука, с возможностью сохранять и восстанавливать глобальные настройки плагинов. Он содержит 1023-полосный эквалайзер с параметрическим управлением и подстраиваемую&lt;br /&gt;
вручную кривую частот. Есть и более традиционные 30-полосный эквалайзер с фейдерами и встроенный спектроанализатор. Далее в цепочке&lt;br /&gt;
находится трехполосный компрессор: им можно регулировать басы,&lt;br /&gt;
средние и низкие частоты независимо друг от друга. Для обнаружения&lt;br /&gt;
случайных пиков, превышающих уровень 0 dbFS, на выходе предусмотрен упреждающий ограничитель (Look-ahead Limiter). Благодаря упреждению эффект от этого ограничения не такой грубый, как от простого порогового, когда все пики плоско срезаются.&lt;br /&gt;
&lt;br /&gt;
Пакет ''Jamin'' обязан быть в каждом приличном дистрибутиве GNU/Linux. (Если в вашем его не оказалось, можно просто скомпилировать&lt;br /&gt;
его из исходных текстов, если установлены нужные библиотеки разработчика.) Перед стартом ''Jamin'' запустите ''Jack'', иначе ''Jamin'' просто&lt;br /&gt;
не будет работать. Откройте предыдущую сессию ''Ardour''. Для сравнения обработанного и необработанного звука воспользуемся кнопкой&lt;br /&gt;
обхода ''Jamin''’а. Это означает, что в цепочке сигнала ''Jamin'' помещается&lt;br /&gt;
между выходами основной шины ''Ardour'' и портами воспроизведения&lt;br /&gt;
звуковой карты. Обратите внимание, что в версиях ''Jack'' начиная с 1.0.9&lt;br /&gt;
названия портов ''Jack'' были изменены для удобства. Так, первый порт&lt;br /&gt;
звуковой карты, который раньше назывался '''alsa_pcm:playback_1''', сейчас называется '''system:playback_1''', и т.д. С помощью меню '''Ports''' ''Jamin'' можно управлять соединениями ''Jack'', но сначала отключите все предыдущие прямые соединения выходов основной шины ''Ardour'' с вашей&lt;br /&gt;
звуковой картой.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_77_1.jpg|300px]] Окно кривых в ''Compressor'' показывает графики для баса, средних частот и низких частот.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Не пугайтесь, когда график загрузки '''DSP''' в ''Jack'' рванет вверх: для&lt;br /&gt;
выполнения сложных задач обработки звука в реальном времени ''Jamin'' необходимы ресурсы процессора. Вернемся в ''Ardour'': справа от двух&lt;br /&gt;
больших часов на верхней панели вы увидите скромное выпадающее&lt;br /&gt;
меню, где по умолчанию выбран пункт '''Internal'''. Переключите его на ''Jack'' и кликните по зеленой кнопке '''Time Master''' под ним; она станет серой. Теперь можно удаленно управлять кнопками воспроизведения ''Ardour'' с помощью синих элементов управления в левом верхнем углу окна&lt;br /&gt;
''Jamin''. Это позволяет избежать лишних кликов и переключений между окнами по ходу процесса.&lt;br /&gt;
&lt;br /&gt;
Ну вот, мы готовы к мастерингу. Перво-наперво, перейдите к началу сессии, кликнув по синей стрелке влево в элементах управления воспроизведением ''Jamin''. Потом нажмите на кнопку ''Play'' (синий треугольник), и запустятся часы ''Jamin'' справа. '''Индикатор подачи''' (тоже справа)&lt;br /&gt;
должен переключиться в '''rolling'''. Если все в порядке, зеленые индикаторы входного и выходного сигнала в левой и правой частях окна&lt;br /&gt;
''Jamin'' активизируются, а вы услышите воспроизведение сессии через звуковую карту.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|left|Заголовок=Скорая помощь|Содержание=При прослушивании старайтесь перебрать несколько систем воспроизведения – автомобильные стереосистемы, наушники и клубные аудио-системы сильно различаются по частотным характеристикам. Если у ваших слушателей есть только встроенные динамики&lt;br /&gt;
ПК, на них-то и нужно оценивать мастер-запись…|Ширина=200px}}&lt;br /&gt;
&lt;br /&gt;
По умолчанию особой обработки звука не производится. Первым делом проверьте уровень входного сигнала. Если тонкие синие горизонтальные линии, соответствующие максимальному уровню, находятся ниже отметки 0 dbFS, то место для увеличения уровня звука имеется. Если вы задрали входной уровень слишком высоко, просто кликните правой кнопкой мыши в любом месте шкалы чтобы сбросить синие линии. Потом посмотрите на&lt;br /&gt;
пляшущую зеленую линию в главном окне '''HDEQ''' (Hand-Drawn Equaliser,ручной эквалайзер) в центре окна ''Jamin''. На этом спектроанализаторе&lt;br /&gt;
показана кривая частот сессии. (На вкладке '''Spectrum''' также есть анализатор гистограмм, если кому надо).&lt;br /&gt;
&lt;br /&gt;
Превышения максимального уровня можно устранить с помощью '''HDEQ''', нарисовав их усечение на волновом профиле – так мы добудем немного свободного места. Беря в руки инструмент '''Карандаш''' (Pencil) '''HDEQ''', помните, что обычно басы несут гораздо больше энергии, чем&lt;br /&gt;
верхние частоты, и график понижается к правой части окна '''HDEQ'''. Как&lt;br /&gt;
только вы переместите карандаш по звуковой дорожке, прямо под&lt;br /&gt;
окном появится строка символов, которая сообщит вам, какие частоты вы пересекли от 25 Гц с левого края до 20000 Гц с правого края. В&lt;br /&gt;
ней также появится регулировка эквалайзера, как если бы вы кликнули в этой точке, а также текущее состояние спектроанализатора.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_78_1.jpg|300px]] Диапазон экспорта задается маркерами '''Location''' и '''Range'''. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Попробуйте перебрать варианты усилений и ослаблений звука, рисуя '''Карандашом''' белую линию нужной формы. Теперь кликните, и ''Jamin'' соединит эту кривую с уже нарисованной линией. В случае ошибки кликните правой кнопкой, чтобы сбросить белую линию эквалайзера, сделав ее плоской. Если вы&lt;br /&gt;
не уверены, что изменения привели к улучшению, кликните по кнопке '''Bypass''' в правом нижнем углу&lt;br /&gt;
окна ''Jamin'', чтобы временно нейтрализовать всю обработку. Если вы&lt;br /&gt;
предпочитаете обычный эквалайзер, кликните на вкладке '''30-band EQ''' – появится более привычное представление этих же установок. Все&lt;br /&gt;
выполненные здесь изменения автоматически применяются к окну '''HDEQ'''.&lt;br /&gt;
&lt;br /&gt;
===Ударное давление===&lt;br /&gt;
&lt;br /&gt;
Теперь рассмотрим трехполосный стереокомпрессор, расположенный&lt;br /&gt;
под окном '''HDEQ'''. Метки-буквы на вертикальных регуляторах не совсем&lt;br /&gt;
очевидны, но они означают''' Attack (Атака), Release (Спад), Threshold (Порог), ratio (маленькая ‘r’) (Отношение), Knee (Затухание)''' и '''Makeup&lt;br /&gt;
Gain (Подстройка усиления)'''. Под каждой панелью компрессора есть направленный вправо зеленый индикатор, показывающий входной&lt;br /&gt;
уровень соответствующей полосы частот – '''Low, Mid''' или '''High''' (низких, средних или высоких). Сразу под ним находится индикатор, направленный влево и показывающий снижение усиления, применяемое компрессором. По умолчанию он желтый, но я сделал его оранжевым ('''Edit &amp;gt; Preferences &amp;gt; Colours'''): так его лучше видно.&lt;br /&gt;
&lt;br /&gt;
Кликните на кнопке '''Solo''' для низких частот под компрессором.&lt;br /&gt;
Вы должны услышать только низкие частоты (басы) сессии. На низких частотах, обладающих относительно высокой энергией, сжатие&lt;br /&gt;
может помочь больше всего. Снижайте регулятор '''Threshold''', пока&lt;br /&gt;
оно не заработает. Если в треке есть ударные, вероятно, потребуется&lt;br /&gt;
сдвинуть вниз регулятор '''Attack''', к значению около 50 мс или меньше.&lt;br /&gt;
Кликните на кнопке '''Auto''' в верхней части регулятора '''Makeup Gain'''.&lt;br /&gt;
Должно последовать явственно слышное усиление низких частот.&lt;br /&gt;
После этого снимите выделение с '''Solo''' и повторите этот процесс для&lt;br /&gt;
остальных полос частот. Используйте кнопку '''Bypass''', чтобы убедиться, что звук в самом деле улучшился. Кликнув на вкладке '''Compressor Curves''' над основным окном Jamin, можно увидеть диаграмму входных уровней в зависимости от выходных, которая изменяется в&lt;br /&gt;
реальном времени, когда вы изменяете положение регуляторов. Эти графики особенно удобны для демонстрации работы '''Knee''' – попробуйте сами, и увидите.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_78_1.jpg|300px]] Выходные порты ''Jamin'' (здесь – левый и правый) должны появиться в окне '''Available Connections Ardour'''. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Над ограничителем ('''Limiter'''), который находится в правой нижней части окна ''Jamin'', есть элемент управления усилением ('''Boost'''). С его&lt;br /&gt;
помощью можно по-быстрому поднять уровень звука. Пользуйтесь&lt;br /&gt;
им с осторожностью, если не хотите намеренно внести искажения.&lt;br /&gt;
Boost имитирует перегруженный ламповый усилитель, но вы уж сами&lt;br /&gt;
решайте, полезен для вас этот эффект или его нужно добавлять на&lt;br /&gt;
этапе микширования.&lt;br /&gt;
&lt;br /&gt;
Теперь мы добрались до упреждающего ограничителя. Установки&lt;br /&gt;
по умолчанию '''Input=0.0''' и '''Limiter=0.0dB''', наверное, лучше пока оставить как есть. Конечно, можно увеличить значение для входного сигнала, тем самым мгновенно увеличив громкость, но если сессия и без того была хорошо смикширована, послышатся звуки обстриженных&lt;br /&gt;
синусоид. Возможно, потребуется установить регулятор '''Limiter Release'''&lt;br /&gt;
в значение, меньшее 50 мс, выбранных по умолчанию, если влияние&lt;br /&gt;
ограничителя слишком заметно, но это может просто означать, что&lt;br /&gt;
он используется слишком часто. Если вам интересно оценить влияние&lt;br /&gt;
ограничителя, поставьте галочку '''Limiter Bypass''' внизу и наблюдайте за&lt;br /&gt;
индикатором выходного сигнала (справа): он будет заходить в красную&lt;br /&gt;
область при каждом кратковременном превышении уровня сигнала.&lt;br /&gt;
Можно также воспользоваться обходом ограничителя ('''Limiter Bypass'''),&lt;br /&gt;
чтобы услышать искажения, вносимые им при задании слишком больших значений уровней усиления ('''Boost''') и входного сигнала ('''Input''').&lt;br /&gt;
&lt;br /&gt;
===Устроить сцену===&lt;br /&gt;
&lt;br /&gt;
При таком количестве настроек большим облегчением становится поддержка автоматизации плагинов с помощью функции '''Scene'''.&lt;br /&gt;
Взгляните на ряд цветных лампочек вдоль верхней части окна ''Jamin'';&lt;br /&gt;
крайняя левая из них должна быть желтой, остальные – красными.&lt;br /&gt;
Кликните правой кнопкой на желтой и выберите '''Set''' (Установить) –&lt;br /&gt;
она должна позеленеть. С помощью опции '''Name''' можно задать ей имя&lt;br /&gt;
(такое же, как имя сессии) или даже части сессии, например, '''Куплет''' (Verse) или '''Припев''' (Chorus). Затем задайте нужные настройки ''Jamin'' и&lt;br /&gt;
кликните правой кнопкой на второй лампочке. Теперь должно быть две зеленых лампы с активными настройками в более яркой.&lt;br /&gt;
&lt;br /&gt;
Штука очень удобная: по клику на любой из зеленых лампочек не&lt;br /&gt;
только загрузятся сохраненные настройки, но и начнет изменяться&lt;br /&gt;
положение регуляторов, мягко переходя от одной настройки к другой,&lt;br /&gt;
так что можно сохранять и восстанавливать настройки мастеринга&lt;br /&gt;
несколько раз за сессию, и ''Jamin'' очень плавно обработает переход&lt;br /&gt;
между разными настройками (сценами). Когда вы будете довольны&lt;br /&gt;
всеми настройками, сохраните их в подкаталог '''.jamin''' своего домашнего каталога с помощью пункта меню '''File &amp;gt; Save As'''.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_79_1.jpg|300px]]  Ручной эквалайзер ''Jamin'' позволяет отрегулировать участки звуковой дорожки вручную,&lt;br /&gt;
и это уникальное средство мастеринга среди свободного ПО.&lt;br /&gt;
|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Настала пора экспортировать сессию в файл '''WAV''' для записи на CD или перекодировать ее в форматы '''FLAC/Vorbis'''. Это делается точно&lt;br /&gt;
так же, как и экспорт сессии, который мы делали ранее, с тем исключением, что мы не будем экспортировать основную шину ''Ardour'' – это&lt;br /&gt;
дало бы нам немастерированный микс. Вместо этого в ''Ardour'' выберите&lt;br /&gt;
пункт меню '''Session &amp;gt; Add Track/Bus''', выберите новую шину и назовите&lt;br /&gt;
ее, например, '''jamin return'''. Перед выполнением следующего шага убедитесь, что выходы этой новой шины не соединены со входами основной шины ''Ardour'', иначе вы получите гигантскую обратную связь.&lt;br /&gt;
&lt;br /&gt;
Теперь воспользуйтесь кнопкой '''Input''' на шкале микшера ''Ardour'' этой шины и выберите левый выход ''Jamin'' в качестве первого входа, а&lt;br /&gt;
правый выход – второго. Вы должны увидеть, как индикатор на шкале микшера для шины '''jamin return''' перемещается вверх и вниз. При минимальном везении, он должен показывать больший средний уровень звука по сравнению с основной шиной ''Ardour'', но без перегрузок.&lt;br /&gt;
&lt;br /&gt;
Осталось лишь открыть в ''Ardour'' диалог '''Session &amp;gt; Export dialog''', снять выделение с выходов основной шины, кликнуть на '''Specific Tracks''' и поставить галочки напротив шины ‘'''jamin return'''’ и вторых выходов для левого и правого каналов соответственно. Поскольку нужно&lt;br /&gt;
уменьшить разрядность, от внутреннего 32-битного формата ''Jack'' к&lt;br /&gt;
16-битному формату компакт-диска, советую включить опцию '''Dither''' (Добавление псевдослучайного сигнала), одно из трех: '''Rectangular''' (Прямоугольный), '''Shaped Noise''' (Шум заданной формы) или '''Triangular Dither''' (Треугольный); лучшим вариантом считается '''Shaped Noise Dither''' – попробуйте все три, и посмотрим, почувствуете ли вы разницу. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
===Беды мастеринга с ограничением===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF105_79_2.jpg|300px]]В этом примере из Doggfather Снупа верхушка сложной звуковой волны полностью срезана. |Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Некоторые записи нужно слушать на большой&lt;br /&gt;
громкости, но за счет неумеренного использования ограничения инженер принимает это&lt;br /&gt;
решение за вас. Именно из-за излишней обработки звука на стадии мастеринга CD многие&lt;br /&gt;
предпочитают «естественное» звучание винила, хотя артефакты случаются и при его мастеринге.&lt;br /&gt;
&lt;br /&gt;
Сложное музыкальное произведение – это, по сути, результат сложения множества звуковых волн разной формы и частоты. В итоге&lt;br /&gt;
получается нечто вроде синусоидальной волны со множеством пульсаций. После жесткого ограничения вся информация выше 0 dbFS&lt;br /&gt;
теряется, и остаются лишь волны со срезанными верхушками. Представьте, что в пьесе Шекспира каждое четвертое слово заменили&lt;br /&gt;
на ‘бум’: «Нет повести – бум – на свете, чем – бум – о Ромео и – бум…» К окончанию трехчасового спектакля вы порядком устанете от&lt;br /&gt;
назойливого ‘бум’. Точно так же ваши уши реагируют на прямоугольные волны.&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%9D%D0%B0rd%D1%81%D0%BEr%D0%B5_Linu%D1%85</id>
		<title>LХF100-101:Наrdсоrе Linuх</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/L%D0%A5F100-101:%D0%9D%D0%B0rd%D1%81%D0%BEr%D0%B5_Linu%D1%85"/>
				<updated>2015-06-03T16:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;Акроним: Акроним переименовал страницу LХF100-101:Наrdсоrе Linuх в LXF105:Ardour поверх перенаправления: восстановление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[LXF105:Ardour]]&lt;/div&gt;</summary>
		<author><name>Акроним</name></author>	</entry>

	</feed>