<<

20882 87974 с. 46 с. Игры

с. 66 с. » Arduino Любительская – подписной индекс – подписной индекс » » Ь И VirtualBox Т И А С Оконные менеджеры Ч С Е » О П Р

DVD С А О С Р РОСПЕЧАТЬ « С

Е а Р в ПЛЮС: П ПРЕССА РОССИИ т « с

возвращается! г т электроника за $50 о н е л г а а т

а г К Каталог о Дистрибутивы! Попробуйте все лучшее, что может предложить л LXF а т а Почтовые сервера Создайте свой собственный! Ну же, мы знаем, вы этого хотите! К Каталог агентства ) 3 0 1 (

3

8 с. 99 с. с. 54 с. 0 PulseAudio 0 2

» т р а одного перехода Фотоальбомы Правильный способ хранить ваши снимки М Март 2008 № 3 (103) История Arduino » с. 18 с. с. 50 с. Не надо ждать, пока сверху спустят бумажку. Нужно быть уже готовым с. 12 с. Eve Online Многопользовательская сетевая космическая сага – наконец-то и для Linux Оконные менеджеры Быстрые, мощные, простые – выберите все три! Мы отобрали для вас 14 лучших Linux’ов – узнайте, какой из них подойдет именно вам Из винила в MP3 Превратите свою стареющую фонотеку в карманную Рай дистрибутивов Рай Главное в мире Linux Главное Linux на CES

LXF103 LXF Март 2008 № 3 (103) Рай дистрибутивов Eve Online Arduino Оконные менеджеры Семейство Ubuntu Ardour Linux на CES Винил – в MP3 Содержание Весь номер – прямо как на ладони: приятного чтения!

Учебники LXF DVD103 Майк вам покажет ...... 118

Начинающим Из винила в MP3 ...... 50 Мегапак дистрибутивов Любимый проигрыватель отдает концы? 10 готовых к установке систем – причем Портируйте музыку в 21 век, следуя этому руководству. половина из них загружаются прямо с диска. Да, вы не ослышались – в этом Фотография месяце у нас двухсторонний DVD с Linux-студия ...... 54 пятерной загрузкой! Попробуйте Ubuntu, Любите ли вы KDE или предпочитаете GNOME, OpenSUSE, Mandriva, PCLinuxOS, Debian, мы отыщем вам лучшее ПО для хранения Mepis и кое-что еще... цифровых снимков и управления ими. Ardour VirtualBox Играй, как профи...... 58 Познакомьтесь с новой системой, не Сегодня вы узнаете, как добавить в вашу удаляя с жесткого диска старую – в этом запись новые дорожки, смикшировать все это вам поможет превосходная виртуальная с убойными басами и свести воедино. А затем машина от Innotek. экспортировать в WAV и покорить мир! Программирование Оконные менеджеры Игра с мячами ...... 62 Восемь участников нашего Сравнения Последние два зимних месяца мы занимались готовы занять свое место на вашем серьезными вещами – пришла пора рабочем столе развеяться! Благодаря Python, увлекательную игру можно написать практически мигом. А также... Hardcore Linux Куча дополнительного ПО – GnuCash, F- Выберите свой стиль жизни, работу, ТВ-шоу и дистрибутив Linux! Собери почтовый сервер ...... 66 Spot, , средства разработки, игры. Их конфигурационные файлы сложны, но наш учебник покажет вам прямой путь к Postfix, Dovecot и виртуальным доменам. Что за штука... Matplotlib Строим диаграммы ...... 70 PulseAudio? Украсьте свои программы на Python Лучшие новинки открытого диаграммами и графиками – с Matplotlib это Долой ESD – теперь у нас есть плевое дело. новый клевый сервер с. 44 ПО на планете ...... 114 Антиспаммер Фильтруем ненужные письма...... 74 Парочка изящных приемов позволит держать ваш новый почтовый сервер вдали от зомби- сетей и других асоциальных элементов Интернета. Wordpress Плагин своими руками ...... 76 Сделайте свой вклад в Open Source – напишите расширение к блог-движку, и благодарные потомки вас не забудут! Миграция с Windows Рабочий треугольник ...... 79 Сменить рабочую ОС и не сойти с ума? ‘Q’ DVD Author – качественный инструмент для Возможно, если знать как. Мы обсудим редактирования DVD. тонкости перехода в разрезе отечественных реалий. Программируем с Arduino . 46 Qt4 По вашим многочисленным заявкам: новая статья об Еще немного об MVC ...... 82 аппаратном хакинге. Знакомый ТБА, не правда ли? 4 привносит в парадигму «модель-вид-контроллер» свою специфику – разберитесь с ней на реальном примере. R Типы данных ...... 86 Векторы, факторы, матрицы, таблицы – как не заблудиться во всем этом многообразии? Eve Online с. 22

2 Linux Format Март 2008 Содержание LXF DVD Подпишись внутри! на Linux Format Хотите узнать, что на нем? и сэкономь! См. с. 118

Тема номера Обзоры

Eve Online ...... 12 Развлечение в духе MMORPG: отправляйтесь в космос и займитесь «ганкингом» других участников (да, есть такой термин). Navicat 8 ...... 14 Рай Надоело играться с MySQL из командной строки? Предлагаем обратить внимание на кросс-платформенный графический дистрибутивов интерфейс к вашей любимой БД.

Разновидностей Linux так много, а времени так мало... Мы отобрали для вас ассорти из 14 самых вкусных – пробуйте! c. 28

А также... Тихий, надежный, симпатичный и по доступной цене – выберите любые три Linux на CES ...... 36 пункта! Крутые гаджеты с Linux внутри прямо из Лас-Вегаса! Open Source приносит инновации на рынок мобильных устройств. Mandriva Flash 2008 ...... 15 Возьмите Linux в дорогу или упростите Клан Ubuntu ...... 40 переход с Windows благодаря этой маленькой, Запутались в отпрысках и вариациях «дистрибутива номер один»? Мы покажем но умелой штучке. вам родословную этой дружной, счастливой семьи. Shuttle LinuXPC ...... 16 Компактный и круто выглядящий настольный ПК с предустановленным OpenSUSE или SLED Arduino возвращается ...... 46 на выбор. Вы попросили – мы сделали: вот еще один проект Arduino. Хватайте ваши Zenoss Core 2.1 ...... 17 светодиоды и вспоминайте старую иру «Саймон сказал». Интерфейс в стиле «пан или пропал»: не проще ли обойти всю сеть пешком?

Сравнение: Легковесные ОМ Постоянные рубрики aewm ...... 19 ...... 19 IceWM ...... 20 Новости ...... 04 Что за штука ...... 44 без сети, шрифты, компиляция ПО, ...... 20 События мира Linux глазами наших PulseAudio: Linux наконец-то может брандмауэры и поиски Луны с KMoon. lwm ...... 21 экспертов и репортаж из Москвы. сыграть по-крупному? ...... 21 Через месяц ...... 128 ...... 22 DistroWatch ...... 24 Игрострой ...... 92 Не пропустите LXF104! Wmii ...... 22 Предварительные релизы новых Ubuntu, Второй урок Blender и немного об SDL. Mandriva и OpenSUSE, а также FreeBSD 7 и конкурс Школа LXF ...... 98 на самый крупный репозиторий. Наша образовательная рубрика. История успеха ...... 26 Ответы ...... 107 Компания «Айс-Логистик», Екатеринбург Устраняем проблемы Linux: память, смена IP-адреса, проблемы с загрузкой, apt-get

Март 2008 Linux Format 3 Новости Новости ГЛАВНЫЕГЛАВНЫЕ НОВОСТИ: KDE для Windows Время покупать... компании Коммерческое ППОО длядля Ubuntu CCompizompiz 0.7.0 Trend Micro против CClamAVlamAV Форматы документов MMSS OOfficeffice – в свободном доступе

Экспансия свободы

азговоры о том, что неплохо бы порти- переносе на заведомо проприетарную плат- ровать одну из наиболее популярных форму свободной графической среды, и не Новости короткой строкой Рв среде Linux графических оболочек является ли данный проект пустой тратой KDE в Windows, ходили давно. Более того, еще времени? На самом деле, создатели KDE Компания «Аквариус» с 1 февраля 2008 года выпускает в пять лет назад с помощью слоя UNIX-совмес- для Windows преследуют сразу несколько продажу компьютеры с предустановленной операционной тимости с уже подзабытым названием Cygwin целей, каждая из которых в той или иной системой Mandriva Linux 2008 Free. в операционной системе от Microsoft можно степени помогает разработке данной графи- было попробовать данную графическую среду ческой среды и для UNIX-платформ. Прежде в действии. Но то были лишь эксперименты, а всего, возможность знакомства Windows- Вышла в свет очередная стабильная версия популярного не так давно, одновременно с объявлением о пользователей с графической оболочкой и свободного «движка» для web-сайтов 6.0. релизе KDE 4.0, разработчики сообщили, что приложениями, обычно используемыми в данная версия проходит процесс адаптации к Linux, позволяет в дальнейшем значительно Согласно недавно опубликованному разработчиками пла- работе в Windows и Mac OS X. В доказатель- облегчить процесс перехода на использова- ну выпуска дистрибутивов Debian, очередной стабильный ство своих слов они выложили в свободный ние свободных операционных систем. Также релиз намечен на сентябрь 2008 года. доступ тестовые пакеты KDE и популярных подобные разработки позволяют значитель- приложений, вполне пригодные для запуска и но расширить аудиторию пользователей про- функционирования в «чужеродной» среде. граммных продуктов проекта KDE, а это, в По данным влиятельного издания Forbes, компания Red Специалисты отметили неплохую работу свою очередь, приведет к притоку свежих Hat занимает 11 место среди самых быстроразвивающих- таких программ, как браузер , фай- сил в команду разработчиков, да и просто ся компаний в мире. ловый менеджер Dolphin, текстовый редак- увеличит базу добровольных тестеров, сооб- тор Kate, а к работе игровых приложений щающих о найденных ошибках. И, в конце Компания Google начала оказывать поддержку проек- вообще не было высказано никаких претен- концов, расширение числа поддерживаемых ту по разработке пакета Wine, обеспечивающего запуск зий. Впрочем, в связи с тем, что KDE для платформ является признаком значительно- Windows-приложений на платформе GNU/Linux. Windows (windows..org) находится пока в го роста проекта в целом. стадии альфа-тестирования, разработчики Конечно, на данном этапе пока не стоит не рекомендуют использовать данный про- надеяться на ажиотажный интерес Windows- Вышла первая версия дистрибутива Eeedora, предназна- граммный продукт в повседневной работе. пользователей к приложениям KDE, но в ченного для установки на субноутбуки Asus Eee PC и осно- Также для удобства пользователей участники дальнейшем, при повышении качества разра- ванного на дистрибутиве Fedora. проекта подготовили специализированный ботки, данная графическая среда может ока- установщик, позволяющий быстро развер- заться востребованной среди тех, кто пред- нуть в среде Windows все доступные компо- почитает изменять стандартный вид опера- ненты KDE. ционной системы в соответствии со своими Если же оставить технические детали, то запросами, тем более что свободная лицен- возникает резонный вопрос: а какой смысл в зия способствует этому как нельзя лучше.

4 Linux Format Февраль 2007 Новости Сезон закупок

рошедший месяц принес сразу популярного пакета виртуализации VirtualBox несколько сообщений о крупных компании Innotek. Данный шаг позволит повы- Пприобретениях из числа свободных сить совместимость VirtualBox и Solaris, а так- проектов и фирм, сделанных гигантами IT- же будет способствовать улучшению средств индустрии. В конце января финская компания виртуализации xVM, встроенных в собствен- Nokia сообщила сенсационную новость – она но операционные системы производства Sun класса SGI HPC (High-Performance Computing, приступила к приобретению норвежской ком- Microsystems. Напомним, что это уже второе высокопроизводительные вычисления). пании Trolltech, являющейся создателем плат- громкое приобретение компании за послед- Любопытно, что сама SGI вышла из состояния формы разработки Qt, широко используемой нее время: всего месяц назад «солнечная» банкротства только в 2006, но сразу же пока- как в операционных системах семейства GNU/ компания раскошелилась на круглую сумму в зала, что намерена активно возвращаться в Linux, так и в разработке мобильных приложе- $1 млрд. на приобретение разработчика попу- привычную рыночную нишу. ний. Данная сделка может привести к доволь- лярной базы данных компании MySQL AB. Все Все вышеуказанные сделки обладают но интересным перспективам для участников говорит о том, что Sun нацелилась на ведущие одним общим благоприятным признаком: проекта KDE, т.к. совсем недавно компания позиции в области свободного ПО. компании-покупатели твердо обещают, что Trolltech перешла к более тесному сотрудни- Наконец, еще одно интересное вложение не намерены менять лицензионную политику честву с командой этого проекта. Другими средств произвела компания SGI, выкупившая на приобретенные программные продукты. словами, формально разработкой KDE пос- по случаю программное обеспечение, патенты И это не может не радовать: любой проект ле приобретения Trolltech займется компания и технологии у компании Linux Networx, явля- остается популярным, пока обладает хорошей Nokia, что не может не радовать поклонников ющейся одним из лидеров в области создания перспективой, а переход под крыло крупных популярной графической среды. Общая сумма высокопроизводительных Linux-кластеров. По корпораций как раз и означает очередную сделки составит около $150 млн. задумке руководства SGI, данное приобре- ступень к новому, до сих пор недостижимому Другой сенсацией стало приобретение тение окажется весьма полезным для даль- уровеню, а также открывает новые направле- компанией Sun Microsystems разработчика нейшего развития собственных разработок ния для развития. Головная боль для «лекаря»

атентные «домогательства» к свобод- разбирательства программные механизмы ным проектам со стороны компаний- являются, по сути, широко используемыми; П разработчиков проприетарного ПО что, впрочем, не отменяет существующие аме- время от времени всплывают в новостных риканские патенты, какими бы абсурдными лентах, вот и на этот раз не повезло антиви- они ни были. русной программе ClamAV, входящей практи- В ответ руководство фонда чески во все популярные дистрибутивы: аме- Foundation (FSF) призвало пользователей бой- риканский истец в лице Trend Micro обвинил котировать программную продукцию Trend компании Barracuda Networks и Panda Software Micro, пояснив в своем заявлении, опубли- International в нарушении ряда своих патентов. кованном на web-сайте фонда, что патентные При этом косвенно досталось и свободному претензии к свободному ПО со стороны «про- антивирусу, код которого использовала в сво- приетарщиков» являются самым позорным граммным обеспечением, лицензия которого их программных продуктах Barracuda Networks. инструментом конкурентной борьбы, а посе- отличается от GPL2. Данное заявление получило Основные претензии касаются механизмов му должны вызывать соответствующую нега- ответную реакцию: разработчики почтового кли- локального поиска вирусов и удаленного ска- тивную реакцию со стороны потенциальных ента , распространяемого по лицензии нирования компьютерных сетей, в которых, или уже существующих клиентов компании- GPL3+, решили «на всякий пожарный» отделить по утверждению юристов Trend Micro, как раз скандалиста. модуль взаимодействия с ClamAV от своего основ- и используются запатентованные технологии. Между тем, для разработчиков ClamAV дан- ного кода. Некоторые аналитики усмотрели в этом Ну, и уж для верности Trend Micro также обви- ный инцидент оказался не единственным в инциденте признаки скрытой доселе нестыковки нила Barracuda Networks в импортировании ПО наступившем году: компания Sourcefire, зани- двух версий популярной свободной лицензии, хотя с нарушениями на рынок США и ряда других мающаяся платной поддержкой пакета ClamAV, ситуация больше смахивает на то, что в Sourcefire стран. Надо сказать, что ставшие предметом запретила использовать его совместно с про- просто слегка запутались в двух редакциях GPL.

Февраль 2007 Linux Format 5 Новости

Один кубик Параллельные миры... на ПЕРЕСЕКАЮТСЯ двоих самого своего появления композитный рабочий стол о недавнего времени миры свобод- ния станет возможность установки и приобре- привлек внимание миллионов пользователей ного и проприетарного ПО сущест- тения коммерческих приложений для пользо- СLinux: трудно не устоять перед соблазном «покрутить Д вовали довольно обособленно друг вателей этого дистрибутива. Одной из первых кубик» на рабочем столе, тем более что требования к аппарат- от друга: даже в коммерческие дистрибутивы в качестве «подопытного кролика» выступила ным ресурсам оказались более чем скромными. Впрочем, как это GNU/Linux входило только избранное закры- компания Parallels, представляющая на рын- всегда бывает, в начале своей жизни программные средства не тое ПО, не говоря уже о свободных версиях ке ПО свою разработку в области виртуали- всегда дают пользователям полный спектр возможностей, потен- операционных систем, вообще не содержа- зации – Parallels Workstation. Пользователи циально доступных при использовании данного ПО. Не минула щих проприетарного кода. Между тем, такая Ubuntu уже сейчас могут загрузить на свой чаша сия и Compiz – первые версии композитного рабочего стола пограничная ситуация не могла долго про- компьютер оценочную версию данного пакета, предлагали довольно скромный функционал, позволяющий лишь должаться: динамичное развитие свободного а при желании и приобрести активационный частично задействовать имеющееся в наличии оборудование. ПО и, как следствие, расширение аудитории ключ для него на портале Canonical Store. Поэтому выход каждой новой версии всегда с энтузиазмом встре- пользователей (в том числе и за счет корпора- Данное начинание Canonical Ltd открыва- чается пользователями, ожидающими различные «вкусности» тивных) заставляет разработчиков закрытых ет для других разработчиков коммерческого от своего любимца. Не обманул своих поклонников и очередной приложений искать пути выхода на просто- ПО для Linux прямую дорогу на компьюте- релиз Compiz 0.7.0, обладающий сразу несколькими заметными ры Linux-рынка. Поначалу дело ограничива- ры пользователей, которые, в свою очередь, новшествами. лось лишь портированием программ на Linux получают возможность привычным способом Прежде всего, появилась долгожданная поддержка работы платформу силами самих компаний-разра- и без особых проблем приобретать закры- с несколькими мониторами, что значительно облегчает работу ботчиков, а с недавних пор им на помощь все тые программные продукты. Ранее иногда дизайнеров, да и заядлые геймеры, без сомнения, оценят такую чаще начали приходить и создатели свобод- приходилось основательно повозиться, что- возможность. Другим заметным новшеством является изменение ных дистрибутивов. бы установить в операционную систему GNU/ в работе подключаемых модулей. В частности, разработан новый Одним из примеров подобного взаимо- Linux коммерческий пакет сторонних разра- объектный механизм, позволяющий добавлять объекты без вне- проникновения является новая партнерская ботчиков, теперь же, благодаря техническо- сения изменений в интерфейс и нарушения целостности API. программа Ubuntu Partner Repository, старто- му решению от Canonical, данная процедура Помимо этого, значительно расширены возможности использо- вавшая по инициативе компании Canonical Ltd, станет такой же привычной и простой, как вания манипулятора «типа мышь» и улучшена прорисовка види- руководящей разработкой свободного дистри- и установка штатного ПО из оригинального мой части куба. В общем и целом, довольно качественный релиз, бутива Ubuntu. Результатом данного начина- репозитория. все больше продвигающий нас из двухмерного мира на просторы 3D-окружения. Как бы открытые, как бы спецификации

сеобщая мода на открытость коснулась прак- полиста. В частности, разработчики OpenOffice.org судебными исками со стороны собратьев по цеху тически всех игроков рынка программного по-прежнему получают упреки пользователей в недо- и многомиллионными штрафами, выплачиваемыми Вобеспечения: чуть ли ни каждая мало-мальски статочно полной поддержке офисных форматов доку- редмондским гигантом. Принимая же во внимание, что известная компания так или иначе заявляет о своей ментов от Microsoft. На самом деле, сетовать на плохих даже несмотря на подобную «открытость» специфика- приверженности открытым стандартам. Многие ради программистов в команде разработчиков свободного ций офисных форматов документов, сторонним разра- поднятия престижа даже громко рапортуют об откры- пакета офисных приложений может только человек ботчикам не всегда удается обеспечить свои приложе- тии исходных текстов какого-нибудь своего мало- несведущий: редмондский гигант ревностно охраня- ния их полноценной поддержкой, легко предположить, известного детища. Даже на международном уров- ет свои «промышленные секреты» – спецификации что не все тайны «редмондского двора» можно узнать не постоянно идут дебаты о том, что пришло время своих офисных форматов. А без детального описания из пространных технических описаний. Впрочем, вре- открытых стандартов. На этом фоне даже такой ярый данные сложные технологии невозможно освоить в мя покажет. LXF сторонник проприетарности, как Microsoft, вынужден полном объеме. не выбиваться из общей колонны и тоже каким-то И вот тут придирчивый читатель может запо- образом доказывать пользователям, что и им не чуж- дозрить несоответствие фактам: многие знают, что При подготовке данного выпуска были ды современные модные течения: то выложат чего- Microsoft на определенных условиях и раньше предо- использованы материалы сайтов нибудь на SourceForge, то свой открытый офисный ставляла спецификации своих офисных форматов PDAStreet.com Phoronix , , The Wild BeastUbuntu формат документов попытаются сделать международ- документов, а с недавнего времени даже выложила , Sun MicrosystemsKDE.org ным стандартом, даже продажей подписки на Linux- материалы, касающиеся наиболее популярных DOC-, . , дистрибутивы не побрезгуют. XLS- и PPT-версий 97-2007, в свободный доступ – дру- , Впрочем, те немногие акции, что устраивает соф- гими словами, ознакомиться с «секретными материа- тверный гигант в плане открытости и свободности лами» теперь может любой желающий (www.microsoft. (чаще напоминающие плохо скрытое заигрывание с com/interop/docs/OfficeBinaryFormats.mspx). И все бы публикой), не решают проблем, накопившихся за вре- ничего, но привычка Microsoft вести недобросовест- мя работы компании в должности рыночного моно- ную конкурентную борьбу постоянно дает о себе знать

6 Linux Format Февраль 2007

LXF Репортаж

РЕПОРТАЖ С КОНФЕРЕНЦИИ

Свободное ПО и информатизация в школах

20 февраля 2008 г. CNews, при поддержке Министерства информационных технологий и связи РФ, провела конференцию «Свободное ПО и информатизация в школах: политика государства и взгляд бизнеса». Что вынес с нее Иван Зорин?

ероприятие началось с демонстрации ролика, подготовлен- Поносов Александр Михайлович – бывший директор школы п. Сепыч, а ного каналом CNews и, в общих чертах, повествующего об ныне заместитель председателя правления РОО «ЦеСТ». Моперационной системе Linux [но мы-то знаем, что Linux – Представитель Мининформсвязи рассказал о необходимости вне- название ядра, а не ОС, – прим.авт.], а также проблеме внедрения СПО дрения свободного ПО в учреждениях образования, напомнил, что в школах и государственных органах на федеральном уровне. В первой проприетарное ПО для школ закуплено на ближайшие три года; по части в качестве докладчиков выступали Шалаев Макскут Игоревич истечении этого срока планируется полностью завершить разработку Представители – представитель Министерства информационных технологий и связи комплекта школьного СПО, чтобы в дальнейшем само учреждение Мининформсвязи РФ; Филиппов Станислав Александрович – заместитель начальника могло выбирать, использовать ли СПО в образовательном процес- и Федерального отдела информатизации образования Федерального агентства по обра- се, или же приобретать проприетарное ПО, но за свой счёт. Также агенства зованию; Алкснис Виктор Имантович – экс-депутат Государственной была отмечена необходимость создания в рамках проекта качествен- по образованию Думы, а ныне председатель правления Региональной Общественной ной документации и локализации свободных программ – именно по и, ставшие почти национальными Организации поддержки разработки и развития свободного программ- этой причине одной из пилотных республик был выбран Татарстан: героями, ного и аппаратного обеспечения «Центр Свободных Технологий» (РОО здесь есть возможность продемонстрировать гибкость свободного Виктор Алкснис «ЦеСТ») – недавно созданной некоммерческой структуры, целью кото- ПО в плане локализации и адаптации под национальные особенности и Александр Поносов. рой будет пропаганда и распространение свободного ПО у нас в стране; потенциальных пользователей. Затем Станислав Филиппов обрисовал состояние разработки СПО для школ на сегодняшний день, упомянул про три пилотные республи- ки, в которых проводятся тестовые испытания по внедрению, напомнил, что всего будет три дистрибутива под три типовые конфигурации. Виктор Алкснис рассказал о необходимости использования СПО в школах и поделился своими взглядами на проблему информаци- онной безопасности и независимости от программного обеспечения наиболее вероятного противника. Был упомянут случай с сервисом Windows Update, который осенью прошлого года, во-первых, без ведома пользователей заменил ряд системных DLL-библиотек на компьютерах с ОС Windows, а во-вторых, делал это даже в тех слу- чаях, когда служба автоматического обновления была полностью отключена. Эта и подобные ситуации, по словам докладчика, говорят о подготовке к новому виду противостояний – кибервойн, когда в качестве основного оружия используется не боевая техника, а про- граммное обеспечение и методы, позволяющие средствами такого ПО частично или полностью получить несанкционированный доступ к компьютерам врага. Это может быть использовано для разруше- ния инфраструктуры государства-противника – и в США уже активно

8 Linux Format Март 2008 Репортаж LXF

проводятся боевые учения в данном направлении (так, база Баксдейл любых целей и в любом месте, например, не только в школьных ком- Во второй ВМФ США на сегодняшний день обладает подобными средствами). пьютерных классах во время уроков, но и на домашних компьютерах части конференции В случае же использования СПО, где вместе с исполняемым файлом школьников в повседневной жизни. Затем на вопрос, который задают к докладчикам доступен исходный код, всегда можно провести ревизию на предмет многие: «Почему нельзя было взять для проекта уже существующий присоединились наличия «дыр» и уязвимостей, которые потенциально могут исполь- любой хороший дистрибутив» в качестве ответа были приведены сле- представители зоваться для подобных кибератак. дующие доводы: во-первых, многие современные дистрибутивы не АРМАДЫ и ALT Linux. Далее выступил Александр Поносов, который изложил свой работают на слабых компьютерах; во-вторых, не учитывается спец- взгляд на СПО в школах и то, как это должно выглядеть. Так, к основ- ифика программы образования – отсутствуют специализированные ным преимуществам свободных решений были отнесены чистота программы, необходимые для использования в школах, документа- пользователей, особенно самых юных, перед законом, а также рацио- ция; в-третьих, существует проблема с товарными знаками – многие нальное расходование средств. компании запрещают распространять доработанные сторонними раз- В перерыве у посетителей конференции была возможность пооб- работчиками дистрибутивы в больших масштабах для общего пользо- щаться друг с другом, посмотреть в действии школьные дистрибути- вания; в-четвёртых – отсутствие для таких дистрибутивов качествен- вы от ALT Linux – в коридоре был оборудован стенд, завести деловые ной и эффективной поддержки. Поддержку же «отечественного дис- и партнёрские отношения с компаниями, занимающимися разработ- трибутива» планируется осуществлять в три уровня: первый – часто кой и внедрением СПО. задаваемые вопросы и общая база знаний, второй – решение слож- Во второй части конференции выступили Горбатов Игорь ных проблем, не требующих вмешательства разработчиков, третий Евгеньевич – заместитель генерального директора группы компаний – доработка и дополнительное тестирование ПО, создание необходи- АРМАДА, которая и выиграла тендер на разработку и поставку СПО в мых для учебного процесса приложений по требованию. школы пилотных регионов; Новодворский Алексей Евгеньевич – заме- После этого Алексей Новодворский рассказал об организации ститель генерального директора ALT Linux. поддержки пользователей в проекте внедрения пакета СПО. Были Игорь Горбатов рассказал о ходе реализации пилотного проекта более подробно освещены все три уровня поддержки, принципы их внедрения СПО в школах России. Было ещё раз сказано о преиму- функционирования и работы со школами. Оказалось, что в рамках ществах СПО, но уже в несколько ином ключе – это независимая проекта планируется создание единой системы учёта инцидентов, инфраструктура, которая, в отличие от проприетарного ПО, не при- базы вопросов и ответов; объединение технической и методической вязывает пользователя к одному единственному поставщику, а так- поддержки, а также использование имеющейся инфраструктуры сво- же разработка отечественных программных продуктов – отсутствие бодного программного обеспечения. необходимости вкладывать деньги в экономику иностранных госу- В качестве вывода хочется отметить, что, с одной стороны, наме- дарств. «На данный момент не существует операционной системы для рения организаций и компаний-разработчиков выглядят очень радуж- широкого зоопарка ПК, которая бы устанавливалась на все школьные но и перспективно, а с другой, независимое сообщество пользовате- компьютеры,» – сказал И. Горбатов. Именно это – одна из ключевых лей и разработчиков свободного ПО (а это, в том числе, и мы с вами) задач всего проекта. Преимущества использования СПО для школ – должно сделать всё возможное, чтобы проект по внедрению СПО в это, по словам докладчика, снижение расходов на лицензии, наличие школы страны не оказался «мыльным пузырём» и «распиливанием поддержки, возможность неограниченного использования ПО для средств налогоплательщиков». LXF

Март 2008 Linux Format 9

3D modelling tool Reviews Обзоры НовинкиНовинки программного и аппаратного ообеспечениябеспечения в описании наших эксэкспертовп

Алексей Федорчук Его слабости – mass storage, разметка диска и файловые системы. Сегодня мы рассматриваем... Shuttle LinuXPC c. 16 12 Eve Online Семинары, Сразитесь с 200 000 пользователями онлайн в семинары... открытом космосе. Торгуйте, добывайте, пиратствуйте и разбойничайте – такова доля чего начинается Родина? игрока в Eve Online. Известно, с чего – с картин- 14 Navicat 8 С ки в твоем букваре. А с чего Если, набивая SELECT’ы в командной строке, начинается информатика? Со школь- вы заработали себе туннельный синдром, эта ной скамьи. И именно этому (впро- оболочка предоставит вашим пальчикам чем, и вузовской скамейке – тоже) долгожданный покой. был посвящен семинар, проходив- 15 Mandriva Flash Почему ни один производитель еще не выпустил iPod рынка электронных книг? Для нас это ший в Санкт-Петербурге 24–25 января Это Mandriva – но на USB-брелке, придающем китайская грамота... 2008 года. Говорили там о многом – и мобильности и имеющем достаточно места об истории свободного ПО на Руси, и для хранения ваших данных. На вид – тоже Eve Online c. 12 о теоретически-юридических аспек- ничего. тах его использования, и о практике 16 Shuttle LinuXPC этого дела в его правовой ипостаси. О Броская и компактная Linux-система со практике применения свободного ПО стильными металлическими вставками. Этот говорили тоже. поставляющийся с SUSE компьютер имеет Однако... А для чего учат в шко- больше портов, чем все тихоокеанские государства! ле и ВУЗе? Не для того ли, чтобы полученные знания использовать в 17 Zenoss Core 2.1 практической работе? И потому семи- Используете Linux в бизнесе? Надоело нар в Старом Осколе выглядел как отслеживать ИТ-инфраструктуру вручную? Тогда данный инструмент может прийтись как Космические путешествия такого рода никогда не бы логическим продолжением санкт- нельзя кстати. станут реальностью. Чарли Стросс с грустью петербургского. На нем говорили рассказывает, почему, на http://tinyurl.com/yt6275. уже о внедрении свободного про- граммного обеспечения на реально работающих предприятиях – горно- НАШ ВЕРДИКТ: пояснение обогатительных комбинатах, электро- Все попавшие в обзор про- «Top Stuff». Номинантами ста- металлургических и машинострои- дукты оцениваются по один- новятся лучшие из лучших – Вердикт тельных заводах, строительных ком- надцатибальной шкале простопр высокой (10 – высшая оценка, оценкиоц здесь Google Earth паниях и так далее. Будет ли оно 0 – низшая). Как прави- недостаточно.не Разработчик: Google Сайт: http://earth.google.com успешным? А вот это зависит от мно- ло, мы оцениваем функ- Рассматривая циональность, произво- свободноесв ПО, Цена: Бесплатно по закрытой лицензии гих факторов. В том числе, и от наших дительность, простоту мым обычно ука- Функциональность 10/10 использования и цену, зываемзы предпо- Производительность 9/10 с вами усилий. Поле для приложения Простота использования 9/10 а для бесплатных про- чтительныйчт дис- Документация 9/10 сил огромно, и не только в Старом грамм учитывается доку- трибутив.тр Иногда Осколе. Цели ясны. Задачи определе- ментация. Кроме того, этоэт означает ком- Если весь мир – сцена, то Google мы всегда выставляем общую пиляцию из исходных текстов, Earth – театр. Простая в использовании, захватывающая и ободряюще практичная ны. За работу, товарищи? оценку, демонстрирующую наше но, если разработчики рекомен- программа. [email protected] отношение к продукту. дуют Autopackage, мы следуем Выдающиеся решения могут этому совету. получить престижную награду Рейтинг 9/10

Март 2008 Linux Format 11 Обзоры Онлайн-игра Eve Online Наконец-то одна из крупнейших онлайн-игр обзавелась Linux-клиентом. Мастер Орестис Бастоунис растолкует, почему нам необходимо тренироваться.

бычной игрой Eve Online никак не назовешь. Она способна всосать с Вкратце… Опотрохами, сожрать все свободное время, оборвать социальные связи и дать Не единственная супругу повод для развода. возможность поиг- Eve настолько велика и сложна, что осваи- рать в многополь- вать ее можно годами. Вы ловите себя на зовательскую постоянных мыслях о ней: в обед устрем- онлайн-игру на Linux, но первая, ляетесь на форумы, планируете приобрести получившая новый навык, подсчитываете расход топли- официальную ва и сравниваете конструкции кораблей. И поддержку. все это – чтобы на шаг опередить остальных 200 000 игроков, рассеянных во всемирной онлайн-галактике. До сих пор Eve была доступна только из Windows, хотя спрос на достойно поддержива- емый Linux-клиент ощущался постоянно. Eve была буквально последней причиной, по кото- рой одни игроки цеплялись за свои Windows, а другие тщились запустить игру с Wine. К сожалению, клиент не создан для Linux «с нуля». Вместо этого, в результате сделки CCP с TransGaming, появилась связка нового кли- Eve изрядно постаралась, чтобы «раскрасить» космос. По жизни, туманностей и газовых ента с Cedega, и Eve теперь имеет офици- облаков в межзвездном пространстве не так много. альный статус кросс-платформенной игры. Windows-версия пока превосходит «нашу». и запустить, то в основном все работает, как иная. Карты ATI официально не поддерживаются. на Windows. И хотя мы, Linux-пользователи, Того, кто уже играл в Eve, убеждать в ее Чтобы игра «пошла», может потребоваться не можем насладиться всей производительно- увлекательности излишне. Тем же, кто еще не чуть-чуть повозиться с ней; работа с обновля- стью и первоклассной графикой, старый дви- слышал о ней, мы вкратце расскажем, куда емыми моделями и текстурами пока на подхо- жок все-таки способен воспроизводить впе- может завести дальний космический рейс и де. Но, если графику все же удалось настроить чатляющие космические сцены. Может быть, зачем нужна вторая учетная запись. Eve не по силам детализация, характерная «Видом – но не сюжетом – для лидеров 3D-гейминга, однако графика Типичная карьера игрока позволяет создать особую атмосферу игры в Первые несколько дней пройдут в изучении Eve очень напоминает безвоздушном пространстве сюжета: ты чув- методов сражений, оснащения кораблей и ствуешь себя пылинкой в бездне Космоса. Да, общей механики игры. Естественно, придет- классическую Elite». это очень напоминает Elite, хотя суть совсем ся исследовать «рудные» астероиды вроде Шаг за шагом: Космический разбой

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

12 Linux Format Март 2008 Онлайн-игра Обзоры

Veldspar и Scordite. Можно подстрелить жел- торотого сетевого соперника, ну а если «пове- зет» – ваш корабль разнесет в куски игрок из соседней мощной звездной системы или грозной зоны 0.0. Через пару недель, Eve или будет заброше- на, или «подсадит» на свою иглу. Тогда-то и выяснится бесконечность выбора и безмерная сложность игры. Вы уже должны разобрать- ся, что делать дальше. Добыча ископаемых, строительство кораблей и получение дохода – неплохая возможность приобрести начальный капитал, поэтому стоит задержаться на этой стадии. А можно совершенствовать воору- жение и способности пилота (связав себя с одной из четырех рас). Но самое важное – теперь можно примкнуть к одной из игровых корпораций. Игра «толпой» Вступив в корпорацию, игроки собираются в небольшие флотилии для совместной добычи ископаемых, выполнения различных миссий В галактике, среди тысяч звездных систем, рассеяны обломки множества разбитых кораблей. и, возможно, сражений с врагами. Имея опыт Рассекая пространство, гляди в оба – как бы «коллега» не подловил! меньше месяца, едва ли можно победить кого- нибудь в одиночку. Участие в групповых бит- вах сводится к командованию летучими фре- союз. Воюя за мощную империю (или про- постигнет безмерную глубину игры и сохранит гатами или крейсерами (если кому-то удалось тив нее), возможно, придется участвовать в преданность ей на годы. такое заиметь). Лучшая тактика – используя гигантской космической битве. Сотни кора- быстрый фрегат, оборудованный ловушкой блей с обеих сторон, всевозможных видов Что предстоит сделать (tackler), обездвиживать вражеские корабли, и размеров, у каждого своя роль, и каждый Перенос Eve на Linux – без сомнения, великое пока не подтянутся тяжеловооруженные суда делает для общей победы все возможное. достижение: продукт получает новую ауди- союзников. К тому времени придется слушать приказы торию, а Linux обзаводится первоклассной Еще через несколько месяцев придет командира флотилии на ежевечерних учени- онлайн-игрой (большинство производителей новый опыт. В производственной сфере, веро- ях – даром что он весь день работал продав- игрового ПО равнодушны к идее разработки ятно, удастся прикупить чертежей для строи- цом в дешевом магазине. Linux-клиентов). Графика для нас не главное, тельства судов, да и баржи будут сновать за И это только первые шаги в Eve Online. и многие рьяные приверженцы запускают по рудой гораздо быстрее. Для битвы пригодит- Тренировка не закончится никогда. Искусство несколько «оконных» Eve-клиентов (да-да, у ся тяжелый крейсер (Battlecruiser) или одно строительства кораблей усложняется. многих игроков несколько учетных записей), из малых судов (tech II), вроде перехватчика Проекты могут длиться месяцами, требуя а ведь через эмулятор это делать очень непро- (interceptor) или фрегата для секретных опе- множества компонентов и неизбежных рас- сто. Но выпущена лишь первая версия; посмо- раций (covert ops frigate). четов. А кому-то больше нравится разбой- трим, что будет дальше. Получение офици- Если за год игра не надоест – вероятно, ничать, делая деньги на шантаже и воруя альной Linux-поддержки игры свидетельствует захочется хоть раз опробовать вторую учет- ценности. Разбогатев, можно организовать о растущей популярности Linux-платформы. ную запись. Добыча руды ускоряется в два собственную империю. Одно из уникальных Надеемся, что это только начало грядущих раза! В опасный рейс – с напарником! И все- качеств Eve – она никогда не сковывает перемен в индустрии компьютерных игр. LXF го несколько гиней сверху! Это же совсем игрока рамками одной профессии. Хочется просто! заняться чем-то другим – пожалуйста: нау- Хорошо, если корпорация, в которую уда- чился – и флаг в руки! лось вступить, располагается в зоне 0.0. Вердикт Может быть, она входит в крупный военный Жестокий мир Порой Eve бывает безжалостна, иногда даже Eve Online Linux несправедлива. Если везешь что-то ценное и Разработчик: CCP Games попал в засаду – дело плохо, это конец. Если Сайт: www.eve-online.com Цена: Бесплатный 14-дневный пробный все деньги потрачены на строительство кора- период, $19,95 – регистрация, $14,95 в месяц бля, а на страховку ничего не осталось – после Сюжет 9/10 «смерти» теряется все. Здесь нет безопас- Производительность 7/10 ных мест, есть лишь «относительно безо- Простота использования 8/10 пасные». Зазеваешься – отнимут нажитое, а Документация 9/10 самого «прикончат». Без сомнения, лучшая онлайн- игра, Eve, несомненно, одна из самых изобре- доступная сегодня на Linux (хоть тательных современных онлайн-игр, но это реализован и не весь функицонал классический случай или любви, или ненави- Windows-клиента). сти. Медленный прогресс в начале, неудачный Множество данных для любителей расчетов: держи OOo Calc под боевой опыт и сложность игры могут отбить Рейтинг 8/10 рукой! В Eve есть и встроенный калькулятор – без него не обойтись! к ней охоту. Но тот, кто превозмог трудности,

Март 2008 Linux Format 13 Обзоры Управление базами данных Navicat 8 Нужен кросс-платформенный инструмент для администрирования MySQL? Web-интерфейсам недостаёт гибкости? Марко Фиоретти, кажется, нашёл верное решение.

avicat 8 – графический клиент и Вкратце… менеджер баз данных с поддержкой NUnicode, поддерживающий и Mac Полноценный OS X, и Windows, и Linux. Правда, «родной» графический версии для Linux нет – и в обозримом буду- инструмент для щем не планируется: рассматриваемая здесь администрирования локальных и программа – на самом деле комплект из удалённых баз Windows-версии, копии Wine и скрипта для данных MySQL. запуска. Есть также версия ‘Lite’, лишенная См. также: MySQL большинства администраторских функций, Control Center или PHPMyAdmin. зато бесплатная. Документация программы хороша, а на http://support.navicat.com немало толковых и подробных руководств. Даже если не обра- щать внимания на внешность и поведение про- граммы, в нескольких местах заметны «уши» Windows. Например, каталог для хранения данных пользователя по умолчанию – $HOME/ navicat8_mysql_en/Navicat/profiles – отобра- жается как Y:\navicat8_mysql_en\Navicat\ profiles\. Несмотря на это, Navicat в компа- Visual Query Builder – удобный графический инструмент для создания сложных запросов, хотя командная строка SQL в любой момент даст подправить их «вручную». нии с Wine безупречно вели себя в Fedora 8, использованном нами для оценки. Есть окна для создания таблиц, индексов, точной функциональности (экзотика вроде Интерфейс позволяет отображать как триггеров и внешних ключей, а базы данных и картинок и дампов не в счет). Серьезный недо- таблицы, так и результаты запросов, в сетке структуру таблиц можно и просмотреть, и рас- статок Navicat 8 как клиента – отсутствие или в виде MySQL-форм. Записями можно печатать. Navicat – все, что нужно для переда- функции создания и просмотра отчетов. управлять, как заблагорассудится, отбирая чи информации в другую базу данных на этом С администрированием ситуация иная. их любыми мыслимыми фильтрами, кото- же или на другом сервере, для синхронизации. К Navicat 8 стоит присмотреться начинающе- рые можно сохранять для будущих поисков. Туннели SSL и SSH для безопасного админи- му администратору MySQL, или при управ- Запрос к базе данных можно формировать стрирования удаленных баз данных поддер- лении базами данных на удаленном сервере, загрузкой любого файла, содержащего коман- живаются полностью. где нет доступа ни к оболочке, ни к Cron. ды SQL, или с помощью Visual Query Builder Navicat обладает множеством функций для Интерфейс программы дружественный, цель- (визуального компоновщика запросов, недо- обслуживания существующих баз данных – ный и обладает всем необходимым для уда- ступного в «облегченной» версии), поэто- от восстановления, оптимизации, анализа и ленной диагностики. Элементарные операции му механизм построения сложных запросов исправления отдельных таблиц до резервно- SQL не выставляются напоказ, но и не пря- должен быть знаком пользователям Microsoft го копирования или мероприятий по пакет- чутся слишком глубоко, поэтому при желании Access. Командная строка SQL всегда под ной обработке. Окно мониторинга показы- нетрудно выяснить, как же все-таки Navicat рукой. Кнопками Image и Hex отображаются вает состояние сервера в мельчайших дета- 8 обрабатывает «мышиные» щелчки. В этом (редактируемые) рисунки и «сырые» шестнад- лях. Запланированные работы транслируют- отношении, Navicat 8 может быть интересен и цатеричные данные. ся в стандартные вызовы Crontab. Однако как учебное пособие. LXF эти вызовы не срабатывают, если, например, Хранимые процедуры! забыть сохранить имя пользователя и пароль MySQL 5 поддерживает хранимые процедуры в Navicat, или во время выполнения задачи Вердикт (мини-SQL-программы, написанные и сохра- Cron не запущен X. ненные внутри самой базы данных): в Navicat По умолчанию, резервные копии сохраня- Navicat 8 для MySQL, Linux Standard Version 8 есть собственный мастер для их созда- ются в нестандартном формате – если пона- Разработчик: PremiumSoft ния и настройки. Эти программы прекрасно добится дамп базы данных в обычном ASCII, Сайт: www.navicat.com переносятся и легко поддерживаются, ведь понятный любой MySQL-программе, необхо- Цена: $129 (загружаемая версия) единственная процедура, выполняющаяся на димо создать его отдельно, кнопкой Extract Функциональность 7/10 сервере, непосредственно доступна всем его SQL (Извлечь SQL). Однако мастер импорта- Производительность 8/10 клиентам. Кроме того, снижается нагрузка экспорта умеет работать и с другими формата- Простота использования 9/10 на сеть, ведь количество запросов к серверу ми (подробнее см. онлайн-руководство). Если Оправданность цены 7/10 существенно сокращается. отбросить вопросы цены и доступа к коду, то Администрировать базы данных MySQL Администраторская часть Navicat 8 впечат- для обычных пользователей (не администра- просто – даже не имея опыта и доступа ляет. Можно создавать базы данных, управ- торов), специальные Linux- или web-клиенты через удалённую оболочку! лять учетными записями и редактировать пра- (PHPMyAdmin) могут предложить более глу- ва доступа – и все из единого интерфейса. бокую интеграцию в рабочую среду при доста- Рейтинг 8/10

14 Linux Format Март 2008 Дистрибутив Linux Обзоры Mandriva Flash 2008 Грэм Моррисон долго не мог понять, какая польза от USB-дистрибутивов Linux. Mandriva и проблема коллеги раскрыли ему глаза.

дею Linux на USB-накопителе мы Вкратце… всегда одобряли, но особого вос- Mandriva Flash меньше торга от нее не испытывали. Live большинства распространённых И USB-устройств, а за изящную Полноценный CD (вкупе с USB-устройством для хранения петельку его можно прицепить дистрибутив на данных) казался лучшим решением – диски к любому колечку для ключей. 4-гигабайтном USB- недороги, постоянно обновляются, да и к накопителе, со сво- единственному дистрибутиву не привязывают. бодным местом для пользовательских Однако присланный в редакцию по инициати- файлов. Знакомый ве Mandriva экземпляр заставил нас изменить рабочий стол свое мнение. можно загрузить В прошлом году компания раздавала почти на любом компьютере. Это 4-гигабайтные USB со своим дистрибутивом чисто коммерчес- среди приглашенных на конференцию KDE в кое решение: ведь Глазго. А пару месяцев спустя наша знакомая поместить дистри- воспользовалась корпоративным ноутбуком, а бутив на USB трогать установленную на нем Windows 2000 можно и самому. в личных целях было чревато… Решение пришло в виде USB-брелка. Вместо запуска версия включает новейший релиз ОС Mandriva В остальном, рабочий стол идентичен Live CD и подключения накопителя для хра- (мы рассматривали его в LXF100), оптими- Mandriva 2008: можно даже воспользоваться нения, мы просто вставили устройство в порт зированный для совместного использования менеджером пакетов для загрузки необходи- и включили ноутбук – получился полноцен- с Windows. Например, в Windows прямо с мых приложений. Пользователю оставлено ный, настраиваемый рабочий стол Mandriva. USB можно запустить или Thunderbird около 2,5 ГБ свободного места на накопителе. и получить прямой доступ к web-закладкам Adobe Flash 9 входит в комплект, а с ним и и почтовой корреспонденции, сохраненным Java 1.6 от Sun. Музыка в MP3 воспроизводит- «Mandriva – единственный в Mandriva. (Единственная замеченная нами ся без лишней суеты. Вот на это мы и рассчи- Linux-поставщик USB- проблема – если в Windows уже есть уста- тываем, отдавая свои деньги за дистрибутив, а новленный Firefox, он имеет преимущество, а на новичка такое знакомство с Linux произве- версии дистрибутива». функция импорта закладок не работает). Но дет самое благоприятное впечатление. основной интерес, конечно, вызывает работа Трудно поверить, что Mandriva – един- Система работает гораздо быстрее, чем с Live дистрибутива на USB-устройстве. ственная Linux-компания, производящая CD, и гораздо проще в обращении. Это поч- подобные устройства: ведь они так полез- ти то же, что работать с инсталлированной Подгонка BIOS ны. С крохотным брелком можно бороздить Mandriva, только вот все свои данные (работу, Мы пробовали Mandriva на четырех ПК. Один Интернет и работать над персональными фай- почту и настройки), возвращая ноутбук, вы загрузился без проблем; для другого понадо- лами, воспользоваться «заемным» компьюте- забираете с собой. бился ISO-образ (хранится тут же, на USB); а ром и посидеть в интернет-кафе – при этом Пример, может быть, и длинноват, но вот оставшиеся два потребовали кое-какой все ваши данные будут всегда с вами. Мы именно он делал известие о USB-варианте настройки BIOS. Это, скорее, не вина Mandriva, покорены. LXF Mandriva 2008 приятной новостью. Данная а проблема неспособности компьютеров загружаться с USB-устройств, но помнить об этом не мешает. При первом запуске Mandriva Flash ведет Вердикт Свойства навскидку себя как обычный инсталлятор Mandriva, но этот процесс достаточно провести только Mandriva Flash 2008 раз, а затем перезагрузиться. Через секун- Разработчик: Mandriva ды компьютер готов к работе. В нашем слу- Сайт: www.mandriva.com Цена: $79 (в РФ: 1945 руб. для 2-ГБ чае, разрешение экрана было установлено версии) на безопасные 1024x768, но Compiz Fusion Функциональность 9/10 работал прекрасно – качающиеся окна, кру- Производительность 9/10 тящийся кубик и все такое. Mandriva Flash Простота использования 8/10 определил нашу Nvidia 8800 GTS и установил Оправданность цены 8/10 для нее проприетарные драйверы – многие дистрибутивы «срезались» на этом. В ком- Превосходное решение, еще раз Интеграция с Windows Проприетарное ПО подтверждающее знаменитую плект входит даже пакет настройки дисплея Можно запустить Firefox и В комплект входит Skype, способность Mandriva работать на любом Thunderbird прямо из Windows а через менеджер пакетов Nvidia. Еще более удивительно, что при пере- оборудовании. и получить доступ к интернет- можно загрузить и клиент носе накопителя на другой компьютер мож- закладкам и почте. Second Life. но изменить настройки 3D-стола прямо из Рейтинг 8/10 окна входа.

Март 2008 Linux Linux Format Format 1515 Обзоры ПК с Linux Shuttle LinuXPC Грэм Моррисон, голоснув подкатившему Linux Shuttle, тестирует большие достоинства маленькой Linux-машины.

айванская компания Shuttle всег- Вкратце… да выпускала дельные компьютеры, Токопавшись на рынке машин, вполне Компактный ПК. уместных в уголке гостиной: эти тишайшие Возможности кубики настолько малы, что способны уме- модернизации ститься практически везде, но по производи- ограничены, тельности не уступают здоровенным гудящим зато надежный и… тихий. монстрам. Из такого аппарата может вый- Альтернативы – ти превосходный медиа-центр или домашний Isis, рассмотренный интернет-киоск. в LXF98, а также Следуя замечательному движению, воз- растущее число ПК никшему среди изготовителей компьютеров, от других производителей. Shuttle в ноябре объявила, что будет осна- щать свои машины дизайна XPC операцион- ной системой Linux. Доступно два варианта XPC: OpenSUSE, для домашних пользова- Наша телей, и SUSE Linux Enterprise Desktop 10, система рассчитанный на корпоративных клиентов. CPU: Intel Core 2 Аппаратура в обоих случаях одинакова, но Duo (E4400), программную конфигурацию можно выбрать 2 ГГц по своим потребностям. Чтобы сэкономить, Память: 1 ГБ мы выбрали OpenSUSE, который почти на Жесткий диск: €50 дешевле. Shuttle LinuXPC компактен и тих, но его потенциал модернизации ограничен – мощную 250 ГБ видеокарту в этот скромный ящичек не засунешь… DVD/RW: Sony Алюминий, говорите? NEC Optiarc (18x) Первое, что бросается в глаза – тот самый бле- Графика: стящий алюминий, которым Apple отделывает подход, чем создание простой учетной записи Модернизация при таком компактном раз- Встроенный свои портативные MacBook Pro и MacBook Air. «по умолчанию» с полной пользовательской мере вряд ли возможна, а без SLI-слота и чипсет Intel (GMA950) Алюминий хорош и для охлаждения; и даже свободой (такие машины попадаются не так мощного блока питания этой машине никогда Слот расширения: пишущий DVD оснащен серебристой передней уж редко). не стать игровой станцией. Зато, благодаря PCI панелью. Любители темных тонов могут при- Другой полезный шаг – создание раздель- OpenSUSE, профессиональной поддержке и Цена: обрести черный корпус, но нам такой выбор ных корневого и домашнего разделов (8 ГБ солидной гарантии, такой компьютер обеща- ок $900 с НДС показался слишком мрачным. Запустив маши- под /, остальное для /home). Рядовому поль- ет быть сверхнадежным. LXF ну в первый раз, необходимо провести пару зователю организовать такое не всегда по пле- административных операций для настройки чу. Между тем, такая разбивка может очень OpenSUSE: добавить учетную запись супер- и выручить, если захочется попробовать другой обычного пользователя, а также установить дистрибутив или обновить текущий. локализацию. Это более профессиональный Периферия Добравшись до рабочего стола, мы обнару- жили стандартный KDE от OpenSUSE. Никаких «примочек», никакого Compiz. Перед нами серьезная, крепко сбитая, отлаженная и ста- Вердикт бильная Linux-система. Именно этого многие из нас и ждали, и очень здорово, что Shuttle, LinuXPC SD300Q2 наконец, разглядела преимущества Linux в Разработчик: Shuttle Сайт: http://eu.shuttle.com использовании и продаже. Встроенный кар- Цена: От прим. $650 с НДС дридер работает без проблем, а в целом Функциональность 7/10 ПК, оправдывая ожидания, почти бесшумен. Производительность 9/10 Как Linux-пользователи, мы порадовались Простота использования 8/10 и спутнику многих Windows PC – восстано- Оправданность цены 7/10 вительному DVD. Он значительно упрощает Маленькая, бесшумная и надёжная восстановление системы после серьезного Linux-машина, достойное дополнение повреждения, а вкупе с двухлетней гаранти- продуктовой линейки Shuttle. Кард-ридер, два USB и mini-Firewire порты на передней панели ей типа «попробовал-вернул», такое устрой- компьютера. Сзади – Ethernet, четыре USB, стандартный Firewire, ство можно всерьез рассматривать как Linux- Рейтинг 8/10 PS2 и аудио-порты. машину для повседневного использования.

16 Linux Format Март 2008 Управление сетями Обзоры Zenoss Core 2.1 Мониторинг доступности, управление событиями, контроль производительности и учет ИТ-инфраструктуры – в одном флаконе? Дэвид Картрайт спешит убедиться…

становить и запустить Zenoss нетруд- Вкратце… но. Двойной щелчок на RPM – и Fedora Усообщил мне о немногих пакетах, кото- Комплект рые необходимо загрузить дополнительно. Это программ на базе были очевидные MySQL (для хранения данных) Linux, доступный и библиотека SNMP (необходима для взаимо- также в виде действия разнообразных сетевых устройств). образа VMWare. Попытка застолбить Все необходимое было загружено, а оставшие- место на рынке, ся части программы установлены. Хитрость в наводнённом том, что серверы MySQL и SNMP необходимо продуктами типа включить до первоначального запуска Zenoss, SpiceWorks иначе будет куча сообщений об ошибках. и PacketTrap. Zenoss управляется через web-браузер: нужно только навести его на порт 8080 маши- ны, выполняющей Zenoss. Войдя, можно сме- нить пароль администратора и сделать неко- торые элементарные вещи, вроде настрой- ки адреса SMTP-сервера для отправки уве- домлений (по умолчанию, это localhost) и параметров SNMP, используемых в ваших сетевых устройствах. Раскладка интерфейса ничем особым не выделяется. Слева – столбик основных разделов, сверху – корешки вкладок Это бесплатная версия; к Enterprise ‘Silver’ добавлены функции LDAP и интеграция с подпунктами разделов. Остаток окна занят со справочным столом Remedy, а к ‘Gold’ – еще и управление заплатками и удаленное деталями текущего раздела или подраздела. администрирование.

Инвентаризация сети Закончив авто- или ручное определение навигации. За свои годы я изредка сталки- Естественно, первым делом хочется заста- устройств, укажите программе, чем же кон- вался с суперинтуитивными интерфейсами; вить программу исследовать сеть и найти кретно в них предстоит управлять. На Event встречались и сотни хороших, интуитивно все сетевые устройства: необходимо указать Console (консоль событий) выводится текущий понятных. Zenoss заставляет заглядывать в диапазон(ы) сетевых адресов, находящихся список данных различных системных монито- учебник на каждом шагу. Что нужно сетево- под вашим управлением, после чего програм- ров: как раз во время подготовки обзора му администратору? Науськать программу на ма примется «прозванивать» каждый адрес один из моих Windows-серверов выдал через указанный участок и скомандовать: «Прочеши внутри указанного диапазона. Обнаруженное WMI несколько сообщений об ошибках сети. это, а все найденное расставь по категориям». устройство проверяется SNMP и/или WMI Просмотренные сообщения можно пометить Работая в современном приложении, пользо- (современный интерфейс управления как «прочитанные» и удалить из списка, что- ватель привык думать примерно так: «Чтобы Windows). По мере определения устройств, бы не мешали. В Zenoss можно делать вещи и узнать сведения X об устройстве Y, достаточно можно «объяснять» системе в деталях, что же покруче: например, убедиться в том, что неко- щелкнуть вот здесь». Боюсь, с Zenoss такое не она все-таки нашла. торый процесс (вроде httpd на web-сервере) пройдет. LXF Набор типов устройств (или «классов», в действительно запущен на указанном сервере; терминологии Zenoss) построен иерархиче- или в том, что какая-либо служба действи- ски, с учетом особенностей каждого типа (к тельно прослушивает указанный порт (напри- которым, при желании, можно добавить что- мер, порт 25 для SMTP). Контроль производи- Вердикт то свое). Начав с «верхушки» типа /Server тельности основывается на базовых функциях Zenoss Core 2.1 или /Network и опускаясь все ниже (/Network/ мониторинга с добавлением результатов теку- Разработчик: Zenoss Router/Firewall), можно получать все более щих измерений – например, загрузки процес- Сайт: www.zenoss.com подробные сведения. Наряду с добавлением сора. Раздел отчета очень гибок в настройке – Цена: Поддержка: $66; Silver $100; простых функций через графический интер- отчет можно представить и в виде таблицы, и Gold: $150 фейс, можно импортировать ‘ZenPacks’. Это в виде графика – и, хотя все можно изменить Функциональность 8/10 модули расширения, предназначенные для до неузнаваемости, колдуя над HTML-кодом, Производительность 8/10 выполнения особых задач (разработчики в большинстве случаев стандартный вариант Простота использования 2/10 включили только основные, например MySQL- достаточно информативен. Оправданность цены 6/10 монитор, а на сайте Zenoss можно найти Zenoss – очень гибкая программа, отлича- Казалось бы, всё есть у Zenoss. Но поди несколько модулей сторонней разработки). ющаяся внешней привлекательностью и при- отыщи это «всё» через дурацкий Тянет на подвиги? Создайте собственный личным набором функций для мониторинга интерфейс! модуль – только учтите, что сложные задачи и отчетности. Но насколько интерфейс хорош могут потребовать написания кода на Python. визуально, настолько же он «непроходим» в Рейтинг 6/10

Март 2008 Linux Format 17 Сравнение Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать! Легковесные ОМ Пусть ваш рабочий стол заработает еще быстрее благодаря легким оконным менеджерам. Ваш проводник – Майк Сондерс...

Про наш тест

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

Maker или . В любом случае, ОМ – это программа, управляющая окнами на экране, формирующая их заголовки, кнопки закрытия, рукоятки для изменения размеров и так далее. Некоторые ОМ предоставляют дополнительные возможности – например, панели задач или меню запуска программ; в редставьте себе мир без заго- например, Firefox. Однако выбор оконного большинстве ОМ можно назначить комбина- Наш ловков окон, кнопок закрытия менеджера существенно влияет на вашу рабо- ции клавиш для операций с окнами (напри- выбор и меню программ. Представьте, ту, и последствия тут могут быть любыми: от мер, Alt+F4 для закрытия окна). что на экране нет ничего, кро- падения производительности до запоминания В данном обзоре мы собрали самые инте- aewm c. 19 П ме единственной запущенной программы, и наизусть всех клавиатурных комбинаций. В ресные легкие ОМ, то есть те, что не требуют Fluxbox c. 19 непонятно, как закрыть окно, запустить новую некоторых кругах Linux-сообщества оконные много оперативной памяти. У всех канди- IceWM c. 20 программу или переключиться между задача- менеджеры вызывают даже более яростные датов есть свои преимущества, а у некото- Ion c. 20 споры, чем текстовые редакторы или языки рых – умышленно минимизированные тре- lwm c. 21 ми. Такой была бы жизнь без обычного окон- Openbox c. 21 ного менеджера (хотя, как мы увидим, есть программирования. бования к ресурсам. Низкий балл отнюдь не Ratpoison c. 22 люди, которые сильно тоскуют по подобному Итак, что же такое оконный менеджер означает, что оконный менеджер плох: просто Wmii c. 22 минимализму!). (ОМ)? Каким бы рабочим столом вы ни поль- в нем нет функций, которые предлагаются Большинство пользователей Linux особо зовались, вы запускаете ОМ. В KDE это KWin, другими. И, конечно, все описанные здесь не задумываются о своем оконном менедже- а в Gnome – . Быть может, вам по душе программы есть на нашем DVD, так что дочи- ре: в конце концов, есть вещи и поинтереснее, другой оконный менеджер, например, тывайте и пробуйте их в действии!

18 Linux Format Март 2008 Оконные менеджеры Сравнение aewm An Exiguous – скудный ОМ.

а словом ‘exiguous’ пришлось сгонять в ловке окна, оно всплывет на передний план словарь: оно означает «очень скудный» поверх остальных окон. Зили «постный». Нечего и удивляться То же самое относится и к единственной крайнему минимализму этого ОМ: он предла- кнопке в заголовке: щелчок на ней левой гает только «голую основу» и настолько прост, кнопкой мыши свернет окно в иконку, сред- что для его сборки вам даже не придется воз- ней – изменит его размер, правой – закроет иться с ./configure – просто наберите make, и окно. Все это неочевидно, и на привыкание получите крохотный исполняемый файл. В требуется время, но зато заголовки окон отли- основе aewm лежит 9wm, который пытается чаются компактностью. К сожалению, в aewm эмулировать оконный менеджер, применяе- нет виртуальных рабочих столов. Они появи- Верхняя панель использует GTK – но существует еще маленькая мый в Plan 9 (это ОС, разрабатываемая Bell лись только в ветке 1.3.x, которая пока еще в (и уродливая) реализация на чистом Xaw. Labs как возможный преемник Unix). Хорошо разработке и нестабильна. это или плохо, зависит от вашей точки зрения Сам по себе aewm гол как сокол, но с (и от того, работали ли вы в Plan 9), но похва- ним поставляется набор клиентских программ, Вердикт лы разработчикам, прибегнувшим к подража- реализующих панельки и меню для запуска нию, вот именно что скудны. программ, написанных для старого инстру- aewm Запустив aewm в первый раз, вы увиди- ментария Xaw или для нового GTK. При неко- Версия: 1.2.7 те, что все привычные способы управления торой настройке aewm через текстовый файл Сайт: www.red-bean.com/ ~decklin/software/aewm окнами… вышвырнуты в окно. Видите заго- конфигурации можно создать гораздо больше Лицензия: X11 ловок? Не пытайтесь таскать его левой кноп- удобств, чем после установки по умолчанию – Очень крохотный, имеет полезные кой мыши! Чтобы свести толчею к минимуму, ни иконок, ни тем не прибавится, но с допол- дополнения, но визуально пустоват в aewm отвергли инструменты управления нениями aewm явно дружелюбнее. и лишен виртуальных рабочих столов. окошками, предпочтя использовать клавиши Если вы захотите поиграть с этим ОМ, мыши: так, для перемещения окна использу- обзаведитесь мышью со средней кнопкой – Рейтинг 4/10 ется средняя, а если кликнуть левой на заго- без нее тут не обойтись! Fluxbox Знакомая панель задач, но с закладками...

аписанный на C++ Fluxbox появил- во-первых, это вкладки. С их помощью мож- ся как ответвление почтенного ОМ но группировать окна, перетаскивая вклад- НBlackbox. Ну, в то время он не назы- ку одного окна (над заголовком) на другие вался ответвлением, так как разработка окна. Как и виртуальные рабочие столы, эта застоялась – его сочли развитием концепция чужда постоянным пользователям кодовой базы. Blackbox и Fluxbox завоева- Windows и Mac, но позволяет держать ситуа- ли множество поклонников, благодаря упо- цию под контролем, когда окон слишком много. ру на экономию места на экране и изящным Другая заметная возможность – узкая панель темам, даже несмотря на то, что оба исполь- (slit), куда можно насадить небольшие апплеты зуют стандартный инструментарий X-сервера. (индикаторы загрузки или энергопотребления), А для нас, конечных пользователей, это озна- сходная с системными лотками Gnome и KDE. Это MerleyKey, одна из многих тем Fluxbox с ясной структурой чает, что не придется вникать в квадриллион Но главным образом Fluxbox набрал бал- и градиентами, реализуемая встроенным графическим движком. зависимостей, чтобы попробовать их в дей- лы по двум ключевым пунктам: он очень ствии. Уф... наряден (здесь 27 элегантных тем с широ- Fluxbox строится на тонкой панели пос- ким диапазоном цветов и эффектами теней и Вердикт реди нижней части экрана (хотя ее можно градиента) и очень прост в настройке. Через Fluxbox переместить). Там находятся переключатель контекстное меню по клику правой кнопки Версия: 1.0.0 виртуальных рабочих столов, панель задач и мыши можно изменить все что угодно, от рас- Сайт: http://fluxbox.sf.net часы. Заголовки окон украшены известными положения и прозрачности окон до переда- Лицензия: Собственная открытая лицензия тремя кнопками «свернуть», «развернуть» и чи фокуса и формата отображения времени. Превосходный ОМ: в высшей степени «закрыть»; вдобавок, кликнув правой кнопкой Предусмотрены и текстовые файлы конфи- быстр, красив и прост в настройке. мыши на рабочем столе, можно открыть меню гурации, но возможность точной настройки Если IceWM слишком напоминает вам запуска программ и настроек. ОМ из меню достойна аплодисментов. Fluxbox Windows, берите Fluxbox. Сверх конфигурации по умолчанию, ОМ сохраняет некий минималистский шарм, но Fluxbox имеет ряд удобных дополнений: без несносной нехватки возможностей. Рейтинг 8/10

Март 2008 Linux Format 19 Сравнение Оконные менеджеры IceWM Ну и кто посмеет сказать «не айс»?

остоянные читатели LXF знают, что красить под Windows, MWM, QNX, OS/2 или я давний поклонник IceWM. Если другие ОС. Это, в основном, пиксельные изо- Пне считать пары месяцев флирта с бражения, и создать новую тему в Gimp мож- , я пользуюсь IceWM почти десять лет, но за пару минут. Можно также назначить со времен Red Hat 5.2. И за все это время изображения для папок и кнопок запуска в он не падал ни разу. Нашел я один дефект, главном меню; этот ОМ выглядит гораздо да и тут нужно было изловчиться, чтоб он более удобным и гостеприимным к новичкам, смог навредить, а в остальном все было чем Fluxbox и иже с ним. безупречно. Единственное, из-за чего IceWM не дотя- IceWM повторяет Windows 9x/2000 с гивает до заветных 10/10 баллов – отсутствие панелью в нижней части экрана, где находят- встроенного графического средства настрой- Тема OS/2 Warp 3 – простая и четкая. Здесь в нее добавлены ся меню запуска программ, переключатель ки. Существует, правда, внешняя программа иконки из KDE. виртуальных рабочих столов, панель задач, Iceconf, но мы бы предпочли увидеть что-то системный лоток и часы. Имеется хоро- в стандартной поставке. Все же, файлы кон- шая поддержка «дока» программ – напри- фигурации IceWM очень просты – в файле Вердикт мер, иконки Pidgin и X-Chat остаются акти- основных настроек каждая строка проком- Icewm вированными, даже если закрыть их окна. ментирована, так что изменить способ пере- Версия: 1.2.34 Средство запуска программ чутко реагирует дачи фокуса, прозрачность и многое другое – Сайт: www..org на нажатия буквенных клавиш: например, пара пустяков. Лицензия: GNU LGPL можно нажать A I F и выбрать Applications > В целом, благодаря совершенному соче- Очень простой, богатый возможностями > Firefox. Это здорово экономит вре- танию удобства, простоты и возможностей, и темами, IceWM преуспевает практически мя, если ваши руки снуют по клавиатуре и IceWM – король легких оконных менеджеров. во всем. некогда тянуться к мыши. Хотя в его оформлении есть кое-что общее Темы восхитительны и во множестве с Windows, оно не раздражает, как в ОС от Рейтинг 9/10 доступны через сеть, и IceWM легко пере- Microsoft. Ion В чем-то чемпион.

аверное, Linux – самое известное ПО, в зависимости от приоритета окон экран вышедшее из Финляндии, но многие разбивается либо как «черепица», либо на Нсоотечественники г-на Торвальдса «фреймы». тоже выдают интересный код. Туомо Скажем, у вас открыты Firefox и терми- Валконену [Tuomo Valkonen], автору Ion, не нал, и каждое из этих приложений занима- нравятся обычные графические интерфей- ет целый экран. Нажмите Alt+S или Alt+K, и сы – он хочет создать удобный. Большинство экран будет разбит вертикально или горизон- аналогов он сравнивает с фаст-фудом: пере- тально соответственно. Теперь у вас есть два кусить можно, но не лучший вариант для дли- окна, в которых можно запускать программы. тельного потребления. Поэтому в Ion отвер- К этому надо попривыкнуть, но зато вас не Ненавидите перекрытие окон, хотите иметь самые важные всегда гаются общепринятые принципы построения ждут никакие сюрпризы: Firefox как был в на виду? Решение: Ion. GUI ради эффективного использования кла- левой половине экрана, так там и останется – виатуры и экрана. а вы можете делать все, что хотите, в правой Но все это только слова, пока не дойдет половине. Вердикт до работы с ним. Тут вы мигом поймете, что Потом можно перетащить заголовки окон имел в виду Туомо. После запуска Ion сра- один на другой, чтобы объединить их, создав Ion зу развернет на весь экран все открытые мини-панель задач в левой части экрана, или Версия: 20040729 окна, назначив каждому кнопку в верхней кликнуть правой кнопкой мыши на заголов- Сайт: www.modeei.fi/~tuomov/ion/ Лицензия: GNU LGPL части экрана – это похоже на панель задач. ках или названиях фреймов, чтобы закрыть Необычный и расширяемый, Ion Однако когда вы начинаете разбивать экран их. Имеется гибкий скриптовый движок Lua пригодится владельцам больших экранов, на «фреймы» [frames], оконный менеджер с прекрасной документацией, поэтому Ion предпочитающим четкую расстановку окон. оживает. В обычных оконных менеджерах открыт для широкой настройки. Даже если одни окна развернуты, другие заслонены, а все это кажется вам сюрреалистичным, сове- Рейтинг 6/10 в Ion чувство пространства очень строгое: туем попробовать.

20 Linux Format Март 2008 Оконные менеджеры Сравнение lwm Оконный менеджер аскета.

олюбуйтесь на это введение от как вы подумали: у окон есть заголовки, автора: «lwm – оконный менеджер щелчком средней кнопкой мыши на рабочем Пдля X-сервера, который пытается столе можно открыть терминал, и есть кноп- скрыться с глаз. Нет ни иконок, ни панелей ки для закрытия окна (в самом элементарном с кнопками, ни ветвистых меню – ничего; на оконном менеджере их нужно добав- это существуют другие программы. Настроек лять вручную!). тоже нет: если они вам нужны, обратитесь к Ну и пускай. Для существования lwm другому оконному менеджеру, пусть помога- две-то причины есть. Во-первых, это хоро- ет вашей ОС пожирать ваше дисковое про- ший вариант для устройств типа киоска, где странства и оперативную память». кроме как открывать программу, ничего Во как. Мы все здесь в Башнях LXF про- делать нельзя. Если компьютер будет стоять тив раздутых программ, но это уж чересчур: в библиотеке или классной комнате, то lwm Заголовок, кнопка закрытия, милый фон цвета шаровой вообще ничего?! Все-таки один из главных сохранит пространство экрана свободным, а (моряки знают!) краски и рукоятки для изменения размеров окна – принципов, лежащих в основе Unix, таков: любопытные (или нечестные) пользователи вот ваш жребий! Дзен да и только. «одно приложение для каждой задачи» – дру- не смогут покопаться в меню программ и гими словами, большие программы строятся диалогах настроек. из маленьких. Юниксоиды старой школы Во-вторых, если вы уже нашли средство Вердикт предпочитают разделять задачи между боль- для запуска программ и переключатель про- шим количеством маленьких программ: так, грамм своей мечты, lwm не будет ему поме- lwm вместо многофункционального почтового хой, занимаясь исключительно перемеще- Версия: 1.2.1 клиента у вас есть одна программа для полу- нием, масштабированием и закрытием окон. Сайт: www.jfc.org.uk/software/lwm.html чения почты, одна – для создания сообщения, Большинству из нас он абсолютно бесполе- Лицензия: GNU GPL одна – для отправки, и так далее. зен, разве что в столь полном минимализме Сознательно лишен всех функций, С новой волной мега-программ типа есть некий шарм. Если кто-то из наших чита- зато рай для тех, кто уважает только кнопку «закрыть окно». OpenOffice.org и Evolution этот подход отми- телей пользуется lwm постоянно, будем рады рает, но lwm дает ему последний вздох. услышать об этаком экзоте! Рейтинг 3/10 Забавно, что lwm отнюдь не так аскетичен, Openbox Силою мысли расширим коробку. Черепную...

ногие оконные менеджеры воз- файлах – примеры можно найти в каталоге никают как ответвления от других data и в директории с исходниками. Для Мпроектов, когда их код преобразу- настройки оконного менеджера скопируйте ется в нечто более удобное для разработчи- rc. и menu.xml в каталог .config/Openbox/ ков. Так было и с Openbox: как вы, наверное, в вашем домашнем каталоге и откройте их в поняли, этот ОМ – член семьи Blackbox и текстовом редакторе. Fluxbox, хотя его код был полностью пере- Многие настройки в этих файлах любез- писан в версии 3.0. В нем пока немало от но прокомментированы, и вам не придется оформления Blackbox, но есть и серьезные пробираться через массы непознаваемого Прекрасные файлы настроек Openbox хранятся в формате XML отличия. вздора. Настроить Openbox его собственны- и обильно прокомментированы. Прежде всего, Openbox не проектиро- ми средствами нельзя, но есть сторонняя вался как полноценный отдельный ОМ. Да, программа ObConf, готовая помочь. его можно использовать в этом качестве, но Особенно стильная штука в Openbox – Вердикт вы обнаружите, что многих возможностей канальные меню [pipe menus], генерируемые не хватает – лучше его кое-чем дополнить, скриптами на лету, так что можно созда- Openbox например, панелью задач. В Openbox есть вать динамические меню, которые постоянно Версия: 3.4.5 знакомое по его *box-братьям контекстное будут обновляться. Напишите скрипт, кото- Сайт: http://icculus.org/openbox Лицензия: GNU GPL меню по правой кнопке мыши и виртуаль- рый создает XML-код для метки и команды, Openbox – самая распространенная ные рабочие столы, но во всем прочем явная Openbox разберет его и отобразит в меню. замена для Metacity в рабочих столах нехватка. Например, можно создать подменю, которое Gnome. Лучше использовать его В стандартной поставке десять тем, отли- будет отображать ленты RSS и открывать с некоторыми дополнениями. чия которых минимальны, разве что в цве- ссылки в Firefox. Круто! Было бы здорово те заголовков окон: бальзама для глаз не увидеть эту возможность или хотя бы ее Рейтинг 7/10 ждите. Настройки Openbox хранятся в XML- вариации в других оконных менеджерах.

Март 2008 Linux Format 21 Сравнение Оконные менеджеры Ratpoison Смерть грызунам!

ак видно на экранном снимке, лого- Нажмите Ctrl+T и знак вопроса, и появит- тип Ratpoison сделан весьма про- ся подробный список комбинаций клавиш Кфессионально. И название этого ОМ Ratpoison. В нем вы увидите, какие клавиши [Ratpoison – англ. крысиный яд] отражает его нужно нажать, чтобы открыть новый терми- цель: избавиться от грызуна! А грызун – мышь нал, закрыть окно, разделить экран на два у вас в руке. Сначала идея оконного менедже- фрейма (как в Ion) и т.д. ра без мыши кажется безумной – в конце кон- Попробуйте нажать Ctrl+T и S, чтобы раз- цов, разве GUI не для того затевались, чтобы бить экран на два фрейма по горизонтали, работать с помощью управляемого мышью а потом Ctrl+T и , чтобы переключать- курсора и клавиатуры? ся между ними. Нажатие Ctrl+T и C откроет Ну да, но не для всех. Для web-серфинга и новый терминал. Поклонники Emacs будут работы в Gimp мышь в самом деле нужна, но чувствовать себя здесь как дома, а те, кто не Ни заголовков окон, ни кнопок закрытия окна, программисты и системные администраторы может жить без мыши, найдут Ratpoison ужас- все делается с клавиатуры; Ratpoison – отличный вариант проводят львиную долю времени в текстовом ным: кроме программ, с которыми вы рабо- для любителей командной строки. редакторе и терминале, и мышь им только таете, кликать мышью больше негде. Кроме мешает. Если ваши руки 99% времени при- того, этот оконный менеджер эффективнее кованы к клавиатуре, зачем тянуться к мыши всех прочих участников Сравнения по части Вердикт только для того, чтобы закрыть, переместить использования пространства экрана. Ratpoison или изменить размер окна? Тем, кто страдает мышечными болями из- Версия: 1.4.2 Ratpoison – это Emacs среди оконных за злоупотребления мышью, Ratpoison может Сайт: www.nongnu.org/ratpoison менеджеров: все действия производятся с оказать реальную помощь. Купите хорошую Лицензия: GNU GPL клавиатуры. При первом его запуске вас эргономичную клавиатуру, и мышь вам боль- Его нельзя просто взять и поиграть с сильно удивит недостаток «обратной свя- ше не понадобится; все органы управления ним, но это хороший способ избавиться зи»; если не считать сообщения, изредка будут у вас под руками. Переназначьте Ctrl на от грызуна. возникающего в правом верхнем углу экра- Caps Lock, как юниксоид старой школы, и вы на, ничто не говорит вам о происходящем. в дамках! Рейтинг 6/10 Wmii Нет, это не оконный менеджер для Wii…

азработчики Wmii стремятся сохранить зации виртуальных рабочих столов: после объем исходных кодов ОМ в пределах запуска есть единственный «столбец» под Р10000 строк, чтобы «добиться про- названием «nil» в левом верхнем углу экра- стоты и ясности» – цель благородная. Этот на. Можно добавить другие столбцы, нажав уровень минимализма ясен с первого взгляда: Alt+Shift+<номер>. Так окнам приписываются Wmii совсем не стремится мило выглядеть. Он тэги – номера столбцов. Нужно некоторое не такой неприкрашенный, как Ratpoison: есть время, чтобы привыкнуть, но это работает заголовки окон, есть панель с индикаторами очень хорошо. загрузки, датой и временем; однако как им Хотя во Wmii нет ни растровых тем, ни пользоваться, поймешь не сразу. других графических прелестей – можно лишь В левом нижнем углу экрана (узкая черная область) можно Как и Ion, Wmii основан на идее «фрей- изменять цвета и шрифты – настроек здесь разобраться в переключении столбцов. мов» [frames] или «черепицы» – разбиения чудовищно много; они задаются в текстовом экрана на части для размещения в них окон. файле (примеры – в каталоге rc в исход- По нажатию Alt+Enter откроется новый тер- никах). Можно задать всевозможные дей- Вердикт минал xterm, а при последующих запусках ствия, обрабатываемые нажатиями клавиш, и xterm экран будет разбит на меньшие участ- управлять оконным менеджером с помощью Wmii ки, и каждый терминал всегда будет виден внешних скриптов Wmiir (средство удаленно- Версия: 3.6 полностью. Поклонников старых текстовых го доступа). Совет напоследок: после перво- Сайт: www.suckless.org/wiki/wmii Лицензия: Собственная открытая лицензия редакторов, незнакомых с курсорными кноп- го запуска Wmii выполните скрипт welcome. Увлекательный и сложный, Wmii дает ками, порадует то, что для переключения sh из каталога rc для вывода списка всех наибольший простор в часы, проводимые между окнами по умолчанию используются команд. Это не исчерпывающая помощь, но за тонкой настройкой и хакерством. сочетания клавиш Alt+H, J, K и L. для начала неплохо. Самая замечательная штука в Wmii – под- Рейтинг 7/10 держка «тэгов», а именно, способ реали-

22 Linux Format Март 2008 Оконные менеджеры Сравнение

Оконные менеджеры Вердикт IceWM 9/10 так, победитель... lwm! Шутка. При мусора. Для подавляющего большинства из всей любви к простоте и компакт- нас он на грани пригодности, но нельзя не ува- Иности кода, все равно хочется иметь жить тех пользователей, особенно программи- под рукой меню и пиксельную графику в темах. стов, которые любят минимализм и проводят IceWM объединяет все основные возможности, 99% своего времени в терминале. Ion также которые обязан иметь оконный менеджер, в заслуживает добрых слов в этом отношении; опрятную, изящную и легкую программу с на его освоение требуется время, но если у гибкой настройкой и огромным выбором тем. вас супер-монитор с большим разрешением, Можно, конечно, сердиться на IceWM за сход- Ion определенно поможет держать самое важ- ство с Windows – особенно памятуя кошмары ное на виду. Настройки IceWM хранятся в текстовых файлах, но внешняя интерфейса от Microsoft – но IceWM использу- программа Iceconf добавляет и графический интерфейс. ет проверенную на практике концепцию панели Окна – это не больно задач и создает умело запрограммированный Заметьте, что в любом из этих оконных менед- terminal’ в Ubuntu. Запустится чистая сессия и послушный ОМ, упаковавший множество жеров свободно можно запускать программы X без оконного менеджера – на самом деле функций в небольшую панель. для KDE и Gnome, так что фанатам вы увидите лишь подсказку командной стро- По пятам за ним идет Fluxbox. Он не так или Epiphany страдать без любимых программ ки. Здесь можно запустить любой оконный набит значками, как IceWM, с ним нельзя не придется. Для старта этих приложений, менеджер, который вы собрали или устано- сразу начать работать, но некоторые его конечно, придется запустить фоновые серви- вили ранее, введя имя исполняемого файла в темы просто великолепны, и его очень легко сы KDE и Gnome – но беспокоиться не о чем. командную строку, например, icewm. LXF настроить. Как и у IceWM, код у него очень Легкие оконные менеджеры экономят десятки зрелый, и все пользователи Fluxbox, которых мегабайт оперативной памяти по сравнению мы расспрашивали, хвалят его за скорость и с обычной рабочей сессией, и они прекрасно Обратная связь надежность. Если у вас серьезная аллергия подойдут для старых компьютеров, или для на любое сходство с Windows, но не хватает компьютеров с небольшим объемом памяти. Влюбились в оконный менеджер, который оконного менеджера с приличным набором Напоследок: если вы новичок в Linux и не здесь не описан? Считаете, что принцип возможностей, вас спасет Fluxbox. знаете, как подключить другой оконный менед- вертикального разбиения окна в Ion самым большим достижением GUI или просто пус- жер, вот указания. На рабочем столе заверши- тышкой? Можно ли улучшить lwm, добавив те сеанс или нажмите Ctrl+Alt+Backspace, что- Была бы лошадь в заголовки окон маленькие иконки? Будем Как говорилось в начале, наши баллы даются бы вернуться к экрану входа в систему. В зави- рады услышать ваше мнение – напишите не качество программы, а за ее удобство. И симости от дистрибутива, там могут быть раз- нам пару строк по адресу letters@linuxformat. хотя lwm чахнет на ничтожной отметке 3/10, ные наборы опций, но вам нужно выбрать про- ru или присоединяйтесь к диалогу на фору- это не повод считать его дымящейся кучей стую сессию в терминале, например, ‘Failsafe мах www.linuxforum.ru.

Таблица возможностей

Размер Название Версия Размер исполняемого Инструментарий Использование Тем Настройка Рабочие исходников* файла памяти** [МБ] пространства*** Через aewm 1.2.7 41K 23K Xaw/GTK 1.1MB 7 текстовый файл 7 Fluxbox 1.0.0 954K 1.3MB X 5.7MB 4 Через GUI 4 Через IceWM 1.2.34 811K 606K X 4.5MB 4 текстовый файл 4 Через Ion 20040729 391K 151K X 2.5MB 4 текстовый файл 4 lwm 1.2.1 46K 44K X 1.4MB 7 Нет 7 Openbox 3.4.5 741K 271K X 13MB 4 Через XML 4 Ratpoison 1.4.2 398K 116K X 1.4MB 7 4 (группы) Через Wmii 3.6 204K 648K X 1.8MB Одна текстовый файл Свой вариант

*Размер архива.tar.gz с исходными текстами. **Значение RSS при трех открытых терминалах. ***Поддерживает ли оконный менеджер виртуальные рабочие столы?

Март 2008 Linux Format 23 Distrowatch Ежемесячная сводка новостей дистрибутивов Linux

ЛАДИСЛАВ БОДНАР основатель, редактор, начальник и сотрудник DistroWatch.com. Вновь работа Обзор дистрибутивов Linux перед выходом: Ubuntu, OpenSUSE Eee PC и Mandriva выложили альфа-версии.

первые услышав об ASUS Eee PC, ав себе передышку после релизов, разработчи- ультралегком ноутбуке с Linux, я ки всех главных дистрибутивов Linux вернулись Вотнесся к нему скептически. Кому Д к обычной работе по отладке следующей вер- нужна машина с 900-МГц процессором, сии. И Ubuntu и OpenSUSE анонсировали свои первые 7-дюймовым монитором, 512-МБ ОЗУ и альфа-сборки в начале декабря, Mandriva присоедини- флэш-диском на 4 ГБ? Можно ли на нем лась чуть позднее. Как обычно, ранние альфы не содер- работать всерьез? жат значительных нововведений; они предоставляют Но не только Майк Сондерс из LXF первые слепки древа разработки после масштабного восхищался им в своем обзоре на стр. 12 обновления пакетов. Эти первые «моментальные сним- в LXF100/101; «абсолютно оправданная ки» обычно мало говорят о виде финального релиза, цена», заключил ZDNET на своем британ- но тем не менее подсказывают вероятное направле- ском сайте; TrustedReviews.com отметил: ние движения дистрибутива в следующие несколько «Освежающее нов и скандально дешев». месяцев. Сами конечные пользователи не увиде- Грядущая версия Ubuntu будет так называемым LTS- ли здесь проблем: 24 из 27 покупателей релизом, специальным редким вариантом с поддерж- на Amazon.com дали ему оценку 5 из 5. кой обновлений безопасности и исправления ошибок в Спецы Linux также сочли систему впечат- течение 3–5 лет. Поэтому весьма маловероятно, что она ляющей: «ASUS Eee = восторг», написал включит экспериментальные или не протестированные в своем личном блоге Дэйв Джонс [Dave функции, и единственным улучшением по сравнению с Jones] из Red Hat; внезапное появление предыдущей версией будет исправление ошибок, стаби- ISO-образов с именами типа eeeXubuntu лизация и полировка. Но все же первая альфа включает Пример новой темы Ubuntu 8.04… Коричневый цвет все еще в фаворе! или EeeDora также говорит о растущем X.Org 7.3 (xorg-server 1.4.1), немного глючную версию интересе к этому ноутбуку со сторон раз- оконной системы X, которая может потребовать для работчиков дистрибутивов. стабилизации всестороннего тестирования. В остальном новым ядром и содержит просьбу к тестерам сообщать Так в чем же причина необычайного обновление пакетов не ошеломляет: версия ядра оста- о них. Сообщается также о мелких проблемах с установ- успеха Eee PC? Во-первых, он легок – лась 2.6.22, а GCC – 4.1.2, тогда как glibc обновилась щиком системы. В остальном, разработчики OpenSUSE 910 грамм: вы ботинки сносите, пыта- до версии 2.7. проявляют спокойствие насчет списка новых функций. ясь найти ноутбук с меньшим весом. Что до улучшения функциональности, то говорится Также в декабре вышел первый альфа-релиз Во-вторых, он дешев – модели с 4 ГБ о косметических улучшениях утилиты Установки/удале- Mandriva Linux 2008.1. В отличие от умеренного обнов- продаются за $400, а с 8 ГБ – за $550. ния ПО, новом онлайн-репозитории с функцией добав- ления с 2007 до 2007.1 в прошлом году, этот релиз И в-третьих, открытые спецификации ления программ в одно нажатие и более интуитивном выглядит как крупная переработка, с новым ядром и легкость настройки делают его пре- совместном использовании файлов в локальных сетях. 2.6.24-rc5 и X.Org 7.3. Бета-тестеры могут также ожи- красным инструментом для технических Одним из самых заметных обновлений в Ubuntu 8.04 дать набора других добавлений, включая PulseAudio пользователей. будет новое оформление – радикальная переработка (новый многообещающий звуковой сервер – более Проанализировав начальный спрос, дизайна всех компонентов и тем рабочего стола. Все детально см. стр. 44), средства родительского контроля, ASUS заявила, что в 2008 г. планирует про- эти функции появятся в последующих альфа-сборках. поддержку импорта почты в инструменте миграции с дать около 4 миллионов Eee PC. Если 2008 Команда разработчиков Ubuntu запланировала шесть Windows, представленного в версии 2008, и автоматиче- и не станет годом Linux на настольных альфа-релизов с интервалом в три недели, с обычны- скую настройку репозитория пакетов через GeoIP. компьютерах, он определенно выглядит ми бета-версией и релиз-кандидатом перед финальным Ubuntu 8.04 будет выпущен 24 апреля 2008, а окон- как год Linux для ультрапортативов: сигнал релизом. чательная Mandriva Linux 2008.1 предварительно запла- к этому – бешеная разработка дистрибути- Руки разработчиков OpenSUSE не связаны ограниче- нирована на 2 апреля 2008. О дате выхода OpenSUSE вов для данного типа платформ. ниями LTS, но они также придерживаются шаблона, схо- 11.0 никаких заявлений нет, но разработчики намекнули [email protected] жего с первым альфа-релизом Ubuntu. Они включили на возможность релиза самое раннее в мае-июне 2008 X.Org 7.3 и добавили нестабильную версию ядра 2.6.24- года. rc4 со столь же нестабильным компилятором GCC 4.3, но оставили библиотеку glibc версии 2.6.1. Список ошибок предупреждает о потенциальных проблемах с

24 Linux Format Март 2008 Distrowatch

FreeBSD стал 7.0 Linux inside Новый планировщик, улучшенная поддержка Geubuntu – шустрый клон Ubuntu несет устройств и оптимизация производительности. Enlightenment на ваш рабочий стол.

FreeBSD был год затишья. nlightenment – необычный окон- После выхода в январе 2007 ный менеджер. Хотя кажется, У версии 6.2-STABLE, все Eчто большинство людей в вос- взгляды были прикованы к следую- торге от его скорости и красоты, вряд щей основной версии проекта – 7.0. ли многие используют его в повсед- Непредвиденная задержка объясняет- невной работе. Возможно, это вызва- ся увеличением периода тестирования но неуловимой несовместимостью до 4 бета-версий (вместо запланиро- оформления рабочего стола или нео- ванных двух), из-за чего окончатель- бычными эффектами, сперва восхи- ный релиз перенесли на январь 2008. Благодаря своему сообществу щающими, а затем начинающими раз- Geubuntu предлагает две темы – вот Такова уж природа ПО с открытым разработчиков, FreeBSD 7 теперь дражать. Сонливость разработки вер- эту золотую ‘Sunshine’ [Солнечный кодом: лучше припоздать с релизом, доступна в виде LiveCD с графической сии 17 – весьма ожидаемого первого свет] и темную ‘Moonlight’ [Лунный чем выпустить продукт с ошибками. системой установки. крупного релиза с 2000 года – также свет]. Объем изменений в FreeBSD 7.0 может стать фактором, вызывающим огромен. Большая часть работы при- Администраторы FreeBSD- раздражение. Enlightenment. шлась на улучшение ядра, оптимиза- серверов порадуются интеграции пла- Geubuntu, новый дистрибутив, соче- Данная реализация оказалась цию производительности и поддержку нировщика ULE, новой функции ауди- тающий стабильность Ubuntu с кра- очень удачной. При всех эффектах, драйверов, но достаточно сделано и та событий безопасности и GCC 4.2.1. сотой Enlightenment, пытается попу- Geubuntu значительно быстрее Ubuntu для удовлетворения настольных поль- Число портов увеличилась до 18000, и ляризировать этот необычный менед- по части запуска приложений или зователей. Например, многие драйвера двоичные обновления системы могут жер окон. Разработчики не просто выполнения сложных задач. К панели беспроводных устройств работают пря- выполняться одной командой. Но те, посадили его поверх дистрибутива, а настройки Enlightenment, возможно, мо из коробки. Добавлена оверлейная кто надеялся использовать во FreeBSD тщательно интегрировали с другими требуется привыкнуть, и некоторые файловая система UnionFS с поддерж- некоторые высокооцененные техно- компонентами рабочего стола и вид- модули не всегда работают так, как кой чтения/записи в режиме LiveCD. А логии Solaris, будут разочарованы: жетами. Так, Geubuntu 7.10 включа- ожидается, но это и неудивительно также доступен (хотя по умолчанию файловая система ZFS остается экс- ет верхнюю панель Xfce (заменившую для тестовой версии. Сам Geubuntu не включен) новый Linuxlator – сред- периментальной, тогда как DTrace панель Gnome предыдущей версии), еще в младенчестве, но обещает мно- ство запуска двоичных файлов Linux удалена. разработанную для расширения функ- гое. Превосходен для пользователей, 2.6. Все это должно облегчить жизнь FreeBSD – не ОС Linux, но имеет циональности собственной панели желающих иметь быстрый, но мощ- сторонним поставщикам решений двоичную совместимость со многими Enlightenment. Другие функции и при- ный рабочий стол, или для тех, кто типа PC-BSD, при распространении Unix-подобными системами, включая ложения GTK+ помогают сделать рабо- просто хочет быть не как все. http:// настольных решений FreeBSD в буду- Linux. чий стол более завершенным, чем один geubuntu.intilinux.com. LXF щие месяцы. www.freebsd.org

Источники пакетов

Число доступных пакетов в дистрибу- Релиз Пакетов Репозитории тивах все растет. Хотя некоторые могут возразить, что не всегда хорошо иметь FreeBSD 7.0 16,397 ports в наборе пакетов 15 текстовых редак- торов, другие будут отстаивать возмож- Ubuntu 7.10 13,586 contrib, main, non-free ность выбора именно того, что им нуж- Debian 4.0 10,562 main, multiverse, restricted, universe но. Данная таблица содержит список нескольких источников пакетов (плюс Mandriva 2008 9,087 contrib, main, non-free несвободные двоичные пакеты, если такие есть) для x86-й ветки каждого Gentoo 2007.0 9,036 stable дистрибутива. Fedora 8 4,835 Everything Для лучшего сравнения различий дистри- бутивов по наборам пакетов и версиям Arch Linux 2007 4,256 core, extra, community программ, а также чтобы просмотреть картину текущей популярности для около PCLinuxOS 2007 3,926 extra, kde, main, nonfree 100 дистрибутивов Linux за последние 12, OpenSUSE 10.3 3,735 oss, non-oss 6, 3 месяца или 30 дней, посетите www. distrowatch.com. Slackware 12.0 1,126 source, extra

Март 2008 Linux Format 25 История успеха Linux для снабженцев Екатеринбурга

Нам думается, что вскоре настанут времена, когда использование GNU/Linux у оптовиков станет хорошим тоном. Стабильная система в серьeзной организации – к деньгам. LXF беседует с Виктором Вячиславовичем Долгановым, внедрившем открытое ПО в компании «Айс-Логистик».

Евгений М. Балдин (LXF): Виктор Вячеславович, расскажи- ВВД: Базовый дистрибутив – это OpenSuSE. Изначально выбра- те, пожалуйста, немного о себе. ли его из-за брэнда и хорошей совместимости с доменом Windows. Виктор Вячеславович Долганов (ВВД): Я – cистемный Сейчас, правда, в этом уже нет необходимости. Для терминалов администратор и, по необходимости, программист 1С в компании опто- используется Ubuntu от LTSP (www.ltsp.org). Контракт на сопровожде- вой торговли «Айс-Логистик» (г. Екатеринбург). Образование высшее. ние не покупали, так как не видели необходимости: сообщество впол- не способно оказывать качественную поддержку через Интернет. LXF: Когда вы впервые столкнулись с GNU/Linux? ВВД: Где-то в 1996 году, дистрибутив я уже не помню. LXF: В чeм заключались основные сложности перевода офиса на GNU/Linux? Виктор Долганов LXF: Сколько людей работает в вашей организации? Какой ВВД: Основная проблема – это привыкание пользователей к компьютерный парк находится под вашим управлением? новому. Я начинал с наиболее лояльных коллег, а остальные «потя- ВВД: Людей в офисе порядка 35. Настольных компьютеров, соот- нулись» за ними, так как не хотели казаться глупыми. Ещe одна про- ветственно, столько же. Двадцать из них – это Linux-терминалы, блема – приходилось экспериментировать на людях, так как опыта остальные – Linux-рабочие станции. Кроме одного Linux-сервера для не было. Linux-терминалов, есть ещe два Windows-сервера: сервер 1С (он же сервер терминалов) и SQL-сервер (MSSQL, DB2). Связь с филиалом LXF: И какова оказалась выгода от перехода? организована через OpenVPN (www.openvpn.net). Хочу сразу отметить, ВВД: Солидная экономия средств. По самым грубым расчeтам, на что меня приятно поразила скорость работы терминала сервера Linux. лицензиях сэкономили порядка 300–400 тыс. руб. Кроме того, благо- даря LTSP, отпала необходимость в постоянной модернизации парка. LXF: Почему вы начали переход на GNU/Linux? Ну и, естественно, администрирование стало более удобным. ВВД: Причина проста – экономия средств. LXF: Если вдруг потребуют откатиться назад, во что это LXF: А есть что-то, что пока заменить не удалось? выльется? ВВД: В число «незаменимых» попала, разумеется, 1С (для склада ВВД: Боюсь подумать [улыбается]. купили локальную версию Wine@EterSoft). Различные мелкие бухгал- терские программы используются тоже под Windows. Ну и, наряду с LXF: А какие планы на будущее? OpenOffice.org, люди пока что пользуются и Microsoft Office. ВВД: Пока что основная задача – перенести DB2 на Linux-сервер.

LXF: Какой дистрибутив вы выбрали в качестве базового и поче- LXF: Чего вам больше всего не хватало при переходе? му? Пользуется ли ваша компания коммерческой поддержкой? ВВД: Личного опыта.

Рабочая станция...... и сервер к ней

26 Linux Format Март 2008 История успеха

Март 2008 Linux Format 2 7 Тема номера Рай дистрибутивов

Рай дистрибутивов

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

ишь немногие дистрибутивы могут считаться «оригиналь- Как мы отбирали дистрибутивы для обзора? Некоторые были оче- ными». Большая же их часть – производные (не всегда видными: сородичи Slackware и Debian применялись еще тогда, когда прямые) от Slackware, Red Hat и Debian; исключениями Линус пешком под стол ходил. SUSE, Fedora, Mandriva и Ubuntu тоже являются Gentoo и Arch Linux. Значит ли это, что стоит нельзя проигнорировать. А как с остальными? Для выживания дистри- Наш Лрассказать о четырех-пяти дистрибутивах, и с остальными уже все бутив должен отличаться чем-то оригинальным: большой базой поль- эксперт ясно? Отнюдь нет, поскольку производные дистрибутивы обычно воз- зователей, уникальными возможностями, простотой в использовании – Нейл Ботвик никают, когда кому-то дистрибутив понравился, да не совсем, вот он и тем, чего не хватает другим. Мы надеемся, что наш выбор достаточно Эксперт по создал ответвление. Классический пример – Mandrake (ныне Mandriva), показателен, но поскольку это журнал, а не книга, простите нас, если установкам и начинавший как Red Hat с рабочим столом KDE вместо Gnome, но раз- мы упустили ваш любимый дистрибутив – попробуйте какой-нибудь дистрибутивам; за последние пятнадцать вившийся в совершенно отдельную систему. другой, чтобы увидеть, чего вы, возможно, лишены. лет без его работ Много ли на свете дистрибутивов? Ну, в общем, да. Проблема ли Вы, вероятно, обдумываете, как самому испробовать эти дистри- не обошелся ни один это, надо ли что-то с этим делать? Конечно, нет. Linux и Open Source бутивы, сколько разделов понадобится, чтобы всех их проинсталли- раздел LXF и Amiga всегда означали свободу выбора. Если вы решите подстроить ваш ровать? Все предусмотрено: мы включили VirtualBox на DVD этого Format. любимый дистрибутив «под себя», это здорово. Если вы выложите его месяца, чтобы вы могли установить их на виртуальную машину, испы- на Sourceforge, чтобы его попробовали другие – тоже неплохо. Главное, тать и найти достойный полной установки для дальнейшего изучения. не отчаивайтесь, если он вдруг не станет новым Ubuntu. Дистрибутивы Страницы о диске (стр. 118 ниже) содержат инструкции по использо- подчиняются процессам эволюции и естественного отбора: создается ванию VirtualBox, но имейте в виду, что в нем могут быть недоступны намного больше вариантов, чем необходимо, и выживают лишь силь- некоторые из возможностей дистрибутива. В частности, 3D-эффекты нейшие. Многие начинают без сильной финансовой базы, и борют- рабочего стола требуют аппаратного ускорения графики, каковое ся за выживание на равных основаниях. Если дистрибутив все еще в виртуальные машины (VirtualBox, VMware или Qemu) не обеспечива- ходу после пары лет существования и по-прежнему разрабатывается, ют. Фактически большая часть тестов проделывалась на VMware: это значит, в нем что-то есть, и его следует изучить, иначе без разработ- позволяло запускать одновременно два или три дистрибутива, упро- чиков и пользователей он начнет загнивать. Да, для свободного ПО и щая сравнение. Мы также взяли новый ноутбук, чтобы проверить, как пользователи тоже очень важны. Они могут не оказывать финансовую дистрибутивы поддерживают наиболее проблемное оборудование: поддержку, но они дают то, что не менее важно: обратную связь и беспроводную сеть. поощрение.

28 Linux Format Март 2008 Рай дистрибутивов Тема номера

Повод попробовать: Почти 19000 пакетов приложений Выбор стабильных или самых новых пакетов Debian Доступен для разных аппаратных платформ Дедушка многих других дистрибутивов все еще ого-го!ого

DebianDeb – один из первоначальных дистрибути- жений. Некоторые дистрибутивы из нашего ввов,ов, он восходит к 1993 г. Традиционно счита- обзора умещаются на DVD, некоторые – на ется,ется что система управления пакетами Debian CD, а вот Debian поставляется на трех DVD! превосходитпрев RPM, хотя последняя и сократи- Там 13 ГБ программных пакетов. На данный ллаа рразрыв (в основном благодаря заимство- момент сайт Debian заявляет, что у них в вваниямани из системы Debian). наличии 19000 пакетов свободного ПО. Еще ЕгоЕ много критиковали за отставание вер- одно философское отличие Debian – он при- сийсий программ и долгий цикл разработки, но держивается идей свободного ПО и отселяет таковтако осознанный выбор руководства Debian. не-свободные приложения, например, родные ОсновныеОсн репозитории пакетов сосредоточе- видеодрайверы Nvidia, в отдельные репози- ны на стабильности, и это значит не только тории. Debian содержит не только широкий «не слетает», но также и «не меняется»: то диапазон приложений, он также доступен для и другое важно для предприятий. Если у вас одиннадцати различных аппаратных архитек- запущен десяток серверов и пара сотен рабо- тур. Неудивительно, что цикл разработки так чих станций, вы вряд ли захотите поминутно велик: ведь сколько же тут надо тестов ради все обновлять и возиться с сопутствующими контроля качества! Одно из самых больших этому трудностями, помноженными на сто. преимуществ Debian – то, что всегда можно Здесь в Debian Стабильность Debian идеальна для исповеду- обновить версию до следующей, не переуста- запущен Gnome, Главное: ющих принцип «не сломалось – не чини». навливая и не настраивая все с нуля. но можно выбрать Вдобавок Debian имеет тестовые и экс- Debian выбран как базовая система для и другой рабочий стол, или вообще Рабочий стол На выбор пользователя периментальные ветки, куда более передо- многих других дистрибутивов, включая и обойтись без него. Архитектуры i386, amd64, ppc, s390, ia64 вые. Но какую бы версию вы ни выбрали, некоторые рассмотренные здесь, так что это – m68k, sparc, alpha, arm, mips, hppa вас ошеломит количество доступных прило- дистрибутив для создателей дистрибутивов. URL www.debian.org

Повод попробовать: Частые обновления Автоматическая поддержка мультимедийных кодеков Fedora Высокая защищенность Дистрибутив сообщества от Red Hat.

Fedora (ранее известная как Fedora Core) – ляемыми приложениями и функциями; это дистрибутив сообщества, спонсируемый Red дистрибутив сообщества, не ограниченный Hat, отпрыск ее коммерческих дистрибути- потребностями корпоративных пользовате- вов. Fedora теперь более ищущий, современ- лей в стационарных приложениях и наборах ный и интересный дистрибутив, чем какой функций, где единственные желаемые изме- бы то ни было другой, ориентированный на нения – это исправления уязвимостей. предприятие. Улучшена поддержка несвободных фор- Последние версии Fedora не отличались матов файлов, например, MP3 – вместо динамичностью и затерялись в тени своих того, чтобы отказываться воспроизводить их, конкурентов, но, похоже, Fedora 8 исправит Fedora выдает информационное окно, пред- дело. Это солидная и отшлифованная версия лагающее скачать и установить требуемый со всеми возможностями, ожидаемыми в дис- кодек. Также улучшена система управления трибутиве общего назначения, и еще сверх пакетами: теперь она работает и без сетевого того. Так, утилита базовой настройки бранд- соединения, используя пакеты только с уста- мауэра имеется в большинстве дистрибутивов, новочного диска. Настройка однако ее охват в Fedor’е сильно расширился, Копия, установленная с настройками по брандмауэра Главное: превзойдя многие другие. Fedora также содер- умолчанию, менее чем через два месяца после у Fedorа самая жит систему SELinux (Security Enhanced Linux), даты релиза немедленно возжелала устано- гибкая из всех. Рабочий стол Gnome по умолчанию активированную по умолчанию, что создает вить 143 обновления – нельзя пожаловаться, KDE доступен дополнительную защиту от взломщиков. что парни из Fedora не заботятся о «свежести» Архитектуры i386, x86_64, ppc Fedora сочетает прочный фундамент Red своего детища! URL http://fedoraproject.org Hat с более современными свободно постав-

Март 2008 Linux Format 29 Тема номера Рай дистрибутивов

Повод попробовать: YaST Простая настройка оборудования OpenSUSE Отличная онлайн-документация Абсолютно открытый дистрибутив Linux от Novell.

Сегодня все основные коммерческие дис- чите его и идите в соответствующий раздел трибутивы имеют community-редакции – сво- YaST’а. Пользователям Windows это пока- бодные версии, поддерживаемые (и частич- жется непривычным, но как только вы пой- но разрабатываемые) сообществом, хотя мете, что ответом на многие вопросы служит обычно подключаются и официальные «запустите YaST», жизнь сразу упростится. разработчики. Как и у некоторых других дистрибути- OpenSUSE – это свободная версия SUSE, вов данного обзора, огромную часть опыта и еще недавно работа с ней напоминала езду работы с OpenSUSE формирует сообщество. по кочкам: версии 10.1 и 10.2 страдали от Просиживать в форумах вовсе не обязательно, серьезных дефектов, в частности, у менедже- но такие ресурсы сообщества, как форумы и ров пакетов. Да, именно во множественном wiki, весьма ценны, если вам нужна помощь, числе: в 10.2 было два менеджера пакетов, и если вы нашли ошибку или хотите расспро- оба плохие. Версия 10.3 избавилась от таких сить о новой функции. проблем: это солидный дистрибутив, увязав- Установочные диски SUSE не включают Центр Управления ший все, что полагается, в обычную систему Live CD: он поставляется отдельно. Live CD OpenSUSE и YaST пакетов SUSE. Панель управления YaST (Yet доступны с рабочими столами Gnome или позволят выполнять Главное: another Setup Tool) исчерпывает практиче- KDE, а инсталлятор позволяет выбрать один любое ски все, что можно сделать с системой, и из них при установке. Кстати о выборе: это администрирование Рабочий стол Gnome по умолчанию через единый KDE доступен она – ключ ко всем богатствам OpenSUSE. один из немногих дистрибутивов, все еще интерфейс. Архитектуры i386, x86_64, ppc, ia64 Если вы хотите задействовать новое обору- поддерживающий версию для пользователей URL www.opensuse.org дование, не ищите драйвер: просто подклю- PowerPC.

Повод попробовать: Прост для новичков в Linux Быстрая и простая установка Mandriva Хорошее распознавание оборудования Золотой мальчик возвращается.

Mandriva и его предыдущая инкарнация, кость Debian’овской системы apt, а Центр Mandrake, несколько лет назад были наибо- Управления добавляет к нему графический лее популярными дистрибутивами среди чита- интерфейс. Не составит труда добавить нео- телей Linux Format. Когда он попадал на диск фициальные репозитории, например, Penguin к журналу, номер расходился на -ура. Liberation Front: он снабдит вас пакетами, Однако, столкнувшись с широко обсуж- которые нельзя распространять вместе с давшимися финансовыми трудностями, Mandriva по юридическим причинам – в част- Mandriva, похоже, отвел взгляд от мяча, и ности, кодеками мультимедиа и средствами дистрибутивы наподобие Ubuntu побивают его воспроизведения DVD. на собственном поле простых в использова- Установка также весьма быстрая, и не нии дистрибутивов, годных и зеленым нович- в ущерб выбору. Некоторые дистрибутивы кам, и искушенным ветеранам. С проблемами ускоряют процесс, устанавливая стандарт- Mandriva справился, но для восстановления ный набор пакетов. Mandriva предоставля- былой славы предстоит еще поработать. Тем ет вам выбор окружений рабочего стола, не менее это хороший дистрибутив, упрощаю- серверов и средств разработки. Если у вас Один из козырей щий жизнь тем, кому Linux в новинку. Центр подходящая видеокарта, то поддерживают- Mandriva – Главное: Управления Mandriva, где выполняются поч- ся и 3D-эффекты. Хотя корона Mandriva, универсальный ти все административные задачи, до сих пор может быть, сползла, это до сих пор пре- Центр Управления. Рабочий стол KDE по умолчанию является хорошим примером всесторонней, тендент на звание лучшего дистрибутива GNOME доступен но и простой административной утилиты. общего назначения, достойный детального Архитектуры i586, x86_64 Менеджер пакетов urpmi от Mandriva при- изучения. URL www.mandriva.com дает RPM-пакетам почти всю мощь и гиб-

30 Linux Format Март 2008 Рай дистрибутивов Тема номера

Повод попробовать: Простой, понятный интерфейс Частые и легкие обновления Мощное сообщество пользователей Ubuntu и разработчиков Популярнейший дистрибутив всех времен... пока!

Несомненно, Ubuntu – это история успеха дом новой версии Ubuntu, за исключением, дистрибутива последних годов: он возник из понятно, исправлений безопасности. ниоткуда и за три года стал одним из самых Как правило, Ubuntu устанавливается пря- популярных дистрибутивов. Что же обуслови- мо с LiveCD, хотя доступен и DVD-вариант. ло его успех? Размер CD ограничивает число устанавливае- Вливание десяти миллионов долла- мых пакетов, поэтому вариант рабочего стола ров, конечно, отнюдь не вредит, но швырять только один – Gnome; другие могут быть уста- деньги на свободное ПО не значит сделать его новлены через онлайн-репозитории. Если вы сказочно хорошим: Mandrake это испытал на не любитель Gnome, попробуйте Kubuntu или своей шкуре. В Ubuntu привлекает то, что он Xubuntu, они используют рабочие столы KDE и «просто работает». Вы нажимаете на значок Xfce, соответственно. установки, отвечаете на пару вопросов, а об Новые версии выпускаются каждые остальном он заботится сам. Многие дист- шесть месяцев (даты отражены в их номе- рибутивы поддерживают двойную загрузку рах), и если вы захотите обновить систему, с Windows, но Ubuntu к тому же распознает переустанавливать ее не потребуется. Ubuntu другие установленные Linux’ы и добавляет их основан на Debian, так что переход на акту- к загрузочному меню. альный релиз возможен простым обновлени- Ubuntu построен на базе Debian, отсюда ем, а графические средства Ubuntu позволят Просто и ясно – и многие его преимущества. Причем выгода вам сделать это без обращения к командной это и про внешний Главное: не односторонняя: Ubuntu шлет свои улуч- строке. Распознавание оборудования хоро- вид Ubuntu, и про шения обратно в Debian. Будучи основан шее: на тестовом ноутбуке заработало все, работу с ним. Рабочий стол Gnome по умолчанию, на тестовой ветке, Ubuntu поставляет более включая web-камеру, которую Google объя- KDE доступен современные приложения, хотя обновления вил не работающей под Linux. Архитектуры i386, amd64, sparc до новых версий обычно происходят с выхо- URL www.ubuntu.com

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

По ряду причин Gentoo стоит особняком среди USE-флаги, позволяющие изменять спо- представленных здесь дистрибутивов. соб компиляции приложений, выбор исполь- Наиболее очевидная причина та, что, за зуемых пакетов (стабильных, или из тестовых редкими исключениями, приложения уста- веток, или смеси таковых), текстовые конфи- навливаются не как заранее скомпилирован- гурационные файлы – все это позволяет уточ- ные двоичные пакеты, как в других дистри- нить каждую мелочь, и поэтому дистрибутив бутивах, а из исходного кода. Звучит слож- обычно везде характеризуется как «Только но, но механизмы компиляции управляются для маньяков контроля». менеджером пакетов, и единственное, что вы Кто ищет простую установку «указал-и- заметите – намного большее время перво- щелкнул», тем лучше обратиться к большинс- начальной установки, хотя для ускорения тву других рассмотренных дистрибутивов на дисках присутствует и набор двоичных Linux; но для желающих установить конкрет- пакетов. А основное отличие состоит в том, но то, что им требуется, Gentoo останется в Это не типовой что Gentoo не пытается спрятать внутрен- списке после отсева. снимок экрана, Главное: нюю работу дистрибутива за спину простых В отличие от других дистрибутивов, Gentoo но типовой установки GUI-программ. Это дистрибутив для тех, кто не имеет версий. Установочные диски прону- Gentoo в природе и не существует. Рабочий стол На выбор пользователя хочет знать, что происходит за сценой, и не мерованы, но поддерживаемая в актуальном Архитектуры x86, sparc, amd64, ppc, ppc64, боится замарать руки настройкой. Главная состоянии система будет одинаковой, незави- alpha, hppa, mips, ia64, arm сила Gentoo – абсолютный контроль, предо- симо от того, развернули ее в прошлом меся- URL www.gentoo.org ставляемый пользователю. це или пять лет назад.

Март 2008 Linux Format 31 Тема номера Рай дистрибутивов

Повод попробовать: DSL Работает на всем, чья память превышает память золотой рыбки Крохотный дистрибутив для старых машин. Безопасный, способен уместиться в бумажнике. DSL означает Damn Small Linux (чертовски использует тщательно выбранный набор при- маленький Linux – не путайте с обозначением ложений, чтобы оставаться в пределах 50 MБ. DSL-канала в Интернет). Его имя говорит почти Некоторые программы, включая ядро Linux, все, что следует знать об этом дистрибутиве. имеют более старые версии, но в DSL больше Еще одно производное от Debian, на базе места нет: если он выйдет за пределы 50 MБ, Knoppix; DSL появился как попытка создать Live это будет уже другой маленький дистрибутив. CD, помещающийся на 50-MБ CD – визитной Не надо думать, что малый размер делает карточке. Если вы знаете, с каким трудом LXF его непригодным в использовании. Выбранные Главное: удается запихнуть CD Knoppix на 650-MБ бол- программы работают хорошо и охватывают Рабочий стол Fluxbox ванку, вы, безусловно, оцените такое достиже- обычный диапазон потребностей, а малый Архитектура i386 ние, как уложить дистрибутив с рабочим столом размер означает, что они могут запускать- URL www.damnsmalllinux.org на диск, меньший в тринадцать раз! Конечно, ся на настольной системе, имеющей лишь там нет OpenOffice.org, Gnome или KDE: DSL 24 МБ ОЗУ.

Arch Linux Повод попробовать: Создать дистрибутив по своей Самособранный дистрибутив для искушенных пользователей. потребности Узнать, как это все работает Arch Linux – еще один дистрибутив, даю- просто выберите при установке подходящую Непосредственное управлять пакетами щий власть пользователю: на CD только опцию. Arch использует собственную систему 160 MБ, и устанавливается лишь основа управления пакетами под названием pacman. системы. Оттуда вы уже можете выбирать, Эта программа работает из командной строки что ставить дальше: рабочий стол, сервер или и обеспечивает обычный функционал уста- что-нибудь еще. новки, удаления и разрешения зависимостей. Очевидно, что этот дистрибутив – не для Официальный репозиторий имеет большой новичков, с его спартанским текстовым уста- выбор пакетов и дополняется репозиторием новщиком и отсутствием графического рабо- сообщества AUR. Главное: чего стола. Но если вы знаете, чего хотите, то Если вы пользуетесь man’ом чаще, чем сумеете скомпоновать систему, четко отвеча- мышью, изучите этот дистрибутив. Если вы Рабочий стол На выбор пользователя Архитектуры i686, x86_64 ющую вашим требованиям. Надо загружаться предпочитаете, чтобы все делалось несколь- URL www.archlinux.org с зашифрованных разделов, программных кими щелчками мыши, не вдумываясь, что за RAID’ов или с LVM’а? Arch это сделает – этим скрыто, то он не для вас.

Повод попробовать: CentOS Полностью свободный дистрибутив для предприятия Основан на Red Hat Enterprise Linux Вариант Red Hat Enterprise Linux от сообщества. Стабильность

CentOS имеет особую цель: использование на использования на предприятии, где стабиль- предприятии. Будучи ответвлением от Red Hat ность и сопровождение важнее 3D-эффек- Enterprise Linux, CentOS взял у RHEL исходный тов и поддержки новейших устройств Wi-Fi. код (выпущенный, разумеется, под GPL) и Пользователи CentOS не оставлены на произ- сменил нем вывеску. вол судьбы: у них есть активное сообщество в Главное: Согласно требованиям Red Hat по перерас- форумах CentOS и IRC. Лишены они разве что пространению, все ссылки на Red Hat были поддержки по телефону и гарантированного Рабочий стол Gnome Архитектуры i386, x86_64 полностью удалены. А в остальном это тот же времени ответа на вопросы по электронной URL www.centos.org RHEL, но без контракта о поддержке. CentOS почте. Если вам без этого тяжко, купите кон- адресован тем, кому нужна система, для тракт RHEL.

32 Linux Format Март 2008 Рай дистрибутивов Тема номера

Повод попробовать: Простые и постоянные обновления PCLinuxOS Live CD наряду с установочной системой Создание собственных CD Победит ли он Ubuntu в 2008?

PCLinuxOS выделяется среди представлен- 2008 находится в стадии разработки, и уже ных здесь дистрибутивов тем, что он начинал- может стать доступен, когда вы будете читать ся не как дистрибутив. Он произошел из репо- эти строки. Для PCLinuxOS это не проблема, зитория пакетов для Mandrake, стал Live CD поскольку его репозитории обычно содержат дистрибутивом, а затем заполучил собствен- последние версии пакетов, и для обновления ный инсталлятор и превратился в полностью вам не нужно ждать выхода нового релиза. То оперившийся устанавливаемый дистрибутив. есть хотя с CD устанавливается KDE 3.5.6, вы PCLinuxOS все еще загружается как Live- можете несколькими щелчками мыши обно- диск, а установщик запускается с рабочего вить его до 3.5.8. стола. Этот метод был усвоен многими други- Наряду с установкой на жесткий диск, ми дистрибутивами, самый заметный из кото- PCLinuxOS имеет утилиту создания нового рых – Ubuntu. Live CD из содержимого вашего жесткого Мы рассмотрели PCLinuxOS 2007, пос- диска. Пользовательский Live CD создается ледний полный релиз, и некоторые пакеты всего лишь установкой нужных вам программ здесь постарше, чем в других дистрибутивах и запуском mklivecd. с более новыми датами выхода. PCLinuxOS Такой способ просмотра web- страниц не для меня, Главное: но эффект шатания окон в PCLinuxOS Рабочий стол KDE очень неплох, если Архитектуры x86 вам нравятся URL www.pclinuxos.com подобные вещи.

Повод попробовать: Испробовать Gentoo без долгой установки Бинарные пакеты обновляются быстрее Sabayon Всеобъемлющий Live DVD-дистрибутив Двоичный дистрибутив, собранный из Gentoo.

Sabayon основан на Gentoo, но не так, как Entropy и иметь доступ к двоичным пакетам. Ubuntu основан на Debian. Gentoo — мета- Мы испытывали первый бета-релиз 3.5, так дистрибутив: он не предоставляет выбор что репозитории были ограничены, хотя снаб- пакетов и установщик, а дает средства для жение двоичными пакетами для дистрибутива, того, чтобы сделать это самому. построенного на Gentoo, не лишено смысла: Sabayon – самый известный пример дис- ведь иначе проще использовать сам Gentoo. трибутива на базе Gentoo. Это любопыт- DVD Sabayon работает как Live-диск и ная комбинация двоичных файлов и исхо- как установщик, и это был первый дистрибу- дных текстов, так как Sabayon не поставля- тив, включивший трехмерный рабочий стол ет заранее скомпилированные пакеты, кроме Compiz на Live-диск. DVD грузит специальный тех, что находятся на установочном диске. рабочий стол KDE, с интересной вариацией Обновления, исправления и новые приложе- стартового меню, хотя во время установки ния придется компилировать во время уста- можно выбрать Gnome, Fluxbox или отсутс- новки. В Sabayon 3.5 все будет иначе: он будет твие рабочего стола. использовать собственный менеджер пакетов Рабочий стол по умолчанию у Sabayon вполне Главное: индивидуален; «Альтернативный способ то же касается всего Рабочий стол KDE по умолчанию, дистрибутива. доступны Gnome и другие компиляции дистрибутива: Архитектуры i386, x86_64 из бинарников и исходников.» URL www.sabayonlinux.org

Март 2008 Linux Format 33 Тема номера Рай дистрибутивов

Повод попробовать: Превосходное определение и автонастройка оборудования Работает с USB-брелка KNOPPIX Полезен как диск аварийного восстановления Король Live CD пока что сидит хорошо.

Слово Knoppix стало синонимом для Live CD, Live CD, который побивает Knoppix на всех точно так же, как термос – для вакуумных фронтах. сосудов, а Biro – для шариковых ручек. Knoppix использует рабочий стол KDE, и Knoppix не был первым Live CD: SUSE, доступен сейчас и на CD, и на DVD, что дает например, имел демонстрационный Live CD куда больший выбор программного обеспе- еще до того, как нам разрешили распростра- чения. Для домашнего каталога он может нять этот дистрибутив на дисках. Knoppix использовать разделы жесткого диска, диске- заработал репутацию отца Live CD потому, что ту или USB-брелок, т.е. создает портативный имел на диске полностью годный к исполь- настольный компьютер, а также годится как зованию дистрибутив. Успех ему обеспечили механизм восстановления, если вдруг что-то отличное распознавание устройств и подде- пойдет наперекосяк: он даже способен восста- ржка автоматической настройки на лету, бла- новить файлы из битых систем Windows. годаря чему он загружался почти на любом Если выбор приложений вам не подходит, оборудовании. В наши дни это само собой то Knoppix в душе является Debian’ом, и вы разумеется, но до Knoppix об этом и не слы- можете его переделать, добавив или удалив Король Live CD хивали, и даже сейчас сложно найти Linux пакеты по своему усмотрению. теперь еще и Live DVD. Главное:

«Обязан усилиям одиночки – Рабочий стол KDE Архитектуры x86 Клауса Кноппера. LXF снимает URL www.knoppix.com шляпу перед его достижением.»

Повод попробовать: Требует гораздо меньшей мощности процессора и памяти, чем многие дистрибутивы Очень простой процесс установки Zenwalk Хороший выбор приложений Легковесная производная от Slackware идеально реанимирует слабосильные старые ПК.

Zenwalk происходит от Slackware. Несколько Zenwalk содержит приложения, подобающие предыдущих лет он назывался Minislack, любому дистрибутиву. Просмотр web осу- так что вы уже смекнули: это дистрибутив ществляется IceWeasel (ребрендинг Firefox’а), небольшой. а рабочий стол – быстрый и эффективный Подобно Vector Linux, рассмотренному Xfce 4. OpenOffice.org отсутствует, но кто ж нами месяц назад, Zenwalk нацелен на мало- захочет запускать его на PII с 128 MБ опера- мощные машины. Он чувствует себя как дома тивки; и, конечно, на рабочем столе не будет на PII с 128 MБ ОЗУ. Не думайте, что его нель- никаких пульсирующих окон и вращающихся зя использовать в более современной кон- кубов. По сравнению с другими, – например, фигурации – тут уж он просто летает; однако SUSE и Mandriva с их всепроникающими про- 64-битной версии, по очевидным причинам, граммами контроля – ничего особенного, но не существует. Установка быстрая и сильно он легок и быстр, идеальный выбор для сла- автоматизирована, в особенности если это бых компьютеров. единственная ОС на компьютере. Несмотря на свои скромные требования к оборудованию, Если вы не фанат командной строки, можете проделать Главное: большую часть «Новичкам в Linux лучше настройки системы Рабочий стол Xfce через GUI. Архитектура x86 выбрать Zenwalk, а не Slackware, URL www.zenwalk.org из-за автоматической установки.»

34 Linux Format Март 2008 Рай дистрибутивов Тема номера Slackware Назад, к основам – вместе с самым старым дистрибутивом Повод попробовать: из существующих. По возможности придерживается исходных приложений Помогает понять, как работает Linux Считается, что Slackware – самый первый же к исходным версиям приложений. Вы не Также хорош для старого оборудования дистрибутив Linux. На самом деле до него найдете здесь чрезмерно залатанных ядер и был Yggdrasil [не говоря уж об SLS и MCC, – настраиваемых систем меню – только стан- прим.ред.], но это имечко сложно и прочитать, дартные приложения, такие, какими их сде- и произнести, и тем более запомнить – вот лали авторы. он и вымер, оставив Slackware старейшиной Столь минималистический подход озна- дистрибутивов. чает, что украшательств будет поменьше, При его установке вполне проститель- но зато меньше и возгласов разочарования: Главное: ны мысли о возврате к ранним девяностым. ведь чем проще система, тем меньше при- Установщик с зелеными буквами на сером чин поломаться. Вы также становитесь бли- Рабочий стол KDE фоне, конечно, выглядит примитивно по срав- же к сути. Есть старое выражение, которое в Архитектура x86 нению со, скажем, YaST’ом от SUSE, но делает настоящее время применимо не только к Red URL www.slackware.com свою работу тихо и эффективно. То же можно Hat: «Пользуйтесь Red Hat, и вы разбере- сказать и о Slackware в целом. Прочие дис- тесь в Red Hat; пользуйтесь Slackware – трибутивы стараются быть оригинальными во и вы разберетесь в Linux». всем, а Slackware держится как можно бли-

К чему я GNU

то не сравнительный обзор; мы не пытались гих подобных сайтах существует множество тем для выяснить, какой дистрибутив лучше. Вместо скачивания. Мы слабо касались только одного аспек- этого мы хотели рассказать о немногих дис- та – сообщества. Все представленные дистрибутивы трибутивах из моря имеющихся в наличии – имеют сильные сообщества разработчиков и пользова- Экак они появились и, самое главное, почему стоит их телей. Можно (и, наверно, стоит) утверждать, что такие попробовать. сообщества являются предпосылками развития и про- Каждый из отобранных дистрибутивов может оказать- цветания дистрибутива (да и любого проекта Open ся полезен – в зависимости от ваших потребностей. Source) Лучший выбор – Ubuntu, DSL или Gentoo – зависит от Мы хотели разобраться, какие рабочие столы и прочие того, что вы делаете на компьютере, и какой он у вас. важные моменты популярны среди дистрибутивов. При Мы собирались привести списки приложений, доступ- ближайшем рассмотрении оказалось, что и это значит не ных для каждого дистрибутива, а также номера версий, много. Многие дистрибутивы поставляются сейчас на но это, похоже, большой роли не играет. Почти для всех DVD, предлагая и KDE, и Gnome, и еще несколько окон- дистрибутивов можно найти дополнительные програм- ных менеджеров полегче – например, Xfce, IceWM и мы в огромных репозиториях. Все они (за очевидными Fluxbox. Даже в дистрибутивах на одном CD имеются исключениями) содержат приложения типа OpenOffice. альтернативы: когда Ubuntu завоевал признание с org и Firefox. Многие предлагают выбор рабочего стола, рабочим столом Gnome, тут же последовали каждый с набором своих приложений. Те, что ставятся с Kubuntu (KDE) и Xubuntu (Xfce). Аналогично, DVD, способны дать больший выбор, чем с CD, но ведь PCLinuxOS использует KDE, но включает всегда есть приложения, доступные в онлайн-репозито- программу создания собственного риях. А значит, вы зачастую будете иметь дело по край- CD, и уже есть сообщество версии ней мере с тремя типами каждой программы – один для PCLinuxOS с Gnome. KDE, другой для Gnome, а третий – для какого-нибудь И это прекрасно: ведь получается, более легкого рабочего стола. что какой дистрибутив ни выбери, в Так что же отличает один дистрибутив от другого, и дальнейшем ограничений не будет. справедливо ли старое выражение «все они – это Представьте, если бы OpenSUSE шел Linux»? Все дистрибутивы основаны на ядре Linux и только с Gnome, в то время как вы пред- инструментарии GNU. Различия невелики – вернее, почитаете ему KDE, а Центру Управления невелики, пока все работает, но огромны, когда пере- Mandriva – YaST. Каждый выбор – это ком- стает. Тут и определение и настройка оборудования, и промисс, а значит, чем больше выбор – тем воспроизведение различных форматов мультимедиа, и копромиссов меньше. слабая эргономика и вечное балансирование между Итак, слово за вами: мы дали несколько простотой в использовании и предоставлением кон- указаний, с чего начать, но вы можете не троля пользователю. Первые ощущения от работы и сомневаться, что дистрибутив вашей мечты суще- внешнего вида значат не много: ведь все рабочие ствует. Если это не так, берите Gentoo или Arch и столы допускают тонкую настройку. Даже если ваши стройте его сами. Ознакомьтесь на стр. 118 с инструк- знания о GIMP ограничиваются правильным прочтени- циями для DVD, запустите VirtualBox и приступайте к ем этого слова, на kde-look.org, -look.org и мно- испытаниям. LXF

Март 2008 Linux Format 35 Linux на CES

РЕПОРТАЖ С ВЫСТАВКИ Linux на CES Везунчик-критикан Джон Брэндон измеряет температуру Linux на выставке потребительской электроники Consumer Electronics Show в Лас-Вегасе.

жегодно самые крутые и успешные тех- личных гаджетах, включая устройства потоко- ющий gOS Rocket), Linux позволяет и умень- нические новинки выставляются в Лас- вого видео, позволяющие перенести музыку шить время разработки, и снизить затраты, ЕВегасе на Consumer Electronics Show. и видео с домашнего ПК в гостиную; цифро- и обеспечить лучшую поддержку сообщес- Мы уже наслышались льстивых отзывов о вые видеомагнитофоны; MID (Mobile Internet тва. С другими операционными системами последних достижениях Apple, но много ли Device – мобильные интернет-устройства) – по путь разработки нового продукта изобилует имеется новых продуктов Linux? сути, ультра-портативные маломощные ноут- «рытвинами и ухабами» вроде поддержки и Наш Как оказалось, правильнее было бы поста- буки; и даже рамки для цифровых фото. лицензионных отчислений, а свободная ОС эксперт вить вопрос иначе: «Где нет Linux?» В этом Причина роста популярности Linux оче- позволяет компаниям ускорить процесс ввода году, больше чем когда-либо прежде, Linux видна: для начинающих компаний, таких, как инноваций и уменьшить количество препятс- Джон Брэндон напропалую резвится на выставочных ноут- MediaGate (производитель устройств потоко- твий на этом пути. ветеран-компьютер- щик с 20-летним ста- буках и ПК, либо установлен как ОС на раз- вого вещения) или Everex (ноутбук, использу- жем, работавший с Протолкнемся вперед Linux с момента его Инновациями Linux пестрил весь выставоч- появления, а также ный зал CES, но они отнюдь не звучали и с другими ОС (включая Lisa, OS/2, лейтмотивом выступлений. Например, Билл Mac и несколько ком- Гейтс [Bill Gates] в своем докладе затронул мерческих). Что темы нового оборудования типа MID, одна- характерно, он – быв- ко не упомянул, что некоторые продукты ший ИТ-директор, этой категории, работающие на чипсетах Intel превратившийся в журналиста. MID, применяют ядро Linux – например, MID- прототип на стенде Toshiba, где использова- лась модифицированная ОС Linux. Многие компании только под давлением сообщали, какую операционную систему они исполь- зуют, а несколько изготовителей ноутбуков, включая Fujitsu, говорили, что не планируют предустанавливать на свою продукцию Linux, но рассматривают эту идею. На выставке было немало глянца и лоска, но большинство самых интересных и толковых CES 2007 посетило новинок можно было увидеть в задних залах и более 400 000 тихих коридорах, вдали от бесконечных рядов человек, а в этом HDTV-панелей и MP3-плейеров. Инновации году ожидается Linux делятся на две обширные сферы: порта- еще больше. тивные ноутбуки и медиа-устройства.

36 Linux Format Март 2008 Linux на CES

Linux более всего проявил себя на CES в ноутбуках и портативных устройствах потокового медиа.

Это становится совершенно очевидно, ког- когда видят, что надо делать, либо методом да вы смотрите на ноутбуки, где красуется экспериментов». предустановленный или модифицированный Linux. Крошечный ноутбук Asus Eee, кото- gOS, поди! ная система, сфокусированная на Google и web- рому посвящен обзор в LXF100/101 – из Еще одной компанией, вызвавшей сенсацию приложениях. Мы обращаем особое внимание последних. Интерфейс чрезвычайно прост: на CES, стала Everex, чей Think Cloudbook на привлекательность Linux с эстетической точ- надо нажать на один большой значок, чтобы работает на gOS. Если Dell и Lenovo предла- ки зрения, чтобы его визуальный облик отли- запустить браузер или, например, математи- гают модели ноутбуков с предустановленным чался от Mac OS X и Windows/Vista». ческую игру. Новшества очевидны даже в цве- Linux (как правило, Ubuntu), то gOS настроена Внедрение инноваций – это отчасти настрой- товой палитре, которая, по словам Asus, на работу с компьютерами Everex, в том ка и отладка операционной системы под опре- является частью простого интерфейса смысле, что она оптимизирована под деленную платформу, а отчасти – процесс и дизайна оборудования. программы Google – например, создания уникальных устройств, который был «Наша система разработана для Gmail и поиск – а также под Skype, бы совершенно невозможен с Windows или старшеклассников и студентов, кото- YouTube, Blogger и Facebook, чтобы Mac OS X. Например, в одном из прототипов рые ведутся на яркие цвета,» – сооб- вы могли загрузить систему, войти E-Lead MID используется сенсорная площад- щает Венди Лой [Wendy Leu], дизайнер в Интернет и продуктивно провести вре- ка (touchpad), способная функционировать в систем Asus, чья задача – графический мя (или убить его) – причем без установки качестве мыши или клавиатуры: в Windows это интерфейс. «Интерфейс Linux создан каких-либо дополнительных приложений. будет невозможным до тех пор, пока Microsoft таким образом, чтобы люди видели то, «gOS основана на ядре Linux; конкретно, на не опубликует специальный API. что им надо, и нажимали на нужный Ubuntu,» – сообщает Дэвид Лю [David Liu], соз- «Linux – открытая среда, дающая простор значок. Пользователи обучаются, либо датель и руководитель gOS. «Это – операцион- для инноваций. В нашем интерфейсе для сен-

Март 2008 Linux Format 37 Linux на CES

сорной площадки вы нажимаете одну кнопку – и она превращается в мышь, потом нажимаете другую – и она становится клавиатурой,» – говорит Стивен Чен [Stephen Chen], генераль- ный директор E-Lead. «Мы используем 7-дюй- мовый экран, слишком маленький для Windows или любой другой проприетарной ОС». Toshiba также продемонстрировала прото- тип устройства MID, работающий на модифи- цированной версии Linux. «В данном устрой- стве крайне важна роль интерфейса поль- зователя, потому что никакой клавиатуры не предусмотрено», сообщил Акихиро Койо [Akihiro Kojo], системный инженер Toshiba. «Интерфейс пользователя для сенсорной панели должен быть очень простым. Для web- браузера и медиа-плейера мы используем программную клавиатуру». Конечно, не все производители ПК сходят с ума по Linux, включая HP (где, однако, Linux установлен на серверах) и Gateway. Пол Мур [Paul Moore], директор по мобильному рын- ку Fujitsu, выказал определенные сомнения насчет немедленного перехода на Linux, но весьма положительно отозвался о перспек- тивах для этой ОС в ближайшие несколь- ко лет. «Рассматривается ли Linux в каче- стве перспективы? А как же», – говорит он. «Когда наши клиенты спрашивают нас о нем, мы направляем их на нужные web-сайты. Предлагаем ли мы его сами? Нет. Мы пока не дошли до того, чтобы предустанавливать Linux. Обратитесь к розничным продавцам – и они вам его установят». Потоковые медиа Домашние медиа-устройства – еще одна важная сфера применения Linux. Это вполне логично: бессмысленно лицензировать техно-

38 Linux Format Март 2008 Linux на CES

Nvidia – играм

Когда дело доходит до игр в Linux, надо обратить внимание на Nvidia. Unreal Tournament (на фото) – мощная многопользовательская стре- лялка, поддерживаемая в Linux, и с ее помощью компания продолжает продвигать свою иннова- цию – технологию SLI (Scaleable Link Interface – масштабируемый интерфейс соединения), кото- рая дает возможность использовать более одной видеокарты. В одном из анонсов на CES говори- лось об использовании в ПК дочерней карты PCI Express с видеокартой Nvidia на материнской плате – они соединяются, чтобы еще больше увеличить производительность.

Уджеш Десаи [Ujesh Desai], главный менеджер Nvidia по настольным графическим процессорам GeForce.

логии Windows ради продукта, созданного высоким разрешением, хранящиеся на вашем Еще одно медиа-устройство с Linux – с единственной целью – чтобы вы мог- удаленном ПК, и позволяет вам просма- Sonos. Хотя в этом году компания не делала ли наслаждаться музыкой и фильмами, тривать эти файлы на плейере, который никаких анонсов о выходе новых продуктов которые хранятся на вашем ПК. Чаще работает через сеть Wi-Fi. (разве что о снижении цен), она продолжает всего для передачи этих данных исполь- «Наши инженеры выбирают Linux, расширять возможности встроенного ПО – зуется 802.11g Wi-Fi, а интерфейс пред- потому что программировать в нем намно- например, поддержкой музыкального онлайн- ставлен пультом ДУ. го проще, а открытый код дает куда боль- сервиса Rhapsody. Например, MediaGate использу- ше возможностей в области ПО,» – говорит «Вся наша операционная система, целиком ет Linux для передачи медиа-данных Тони Дьеп [Tony Diep], директор по марке- и полностью создана нами на основе Linux», – по проводной или беспроводной сети. тингу MediaGate. «Мы считаем, что Linux говорит Мэтт Бруэн [Matt Bruen], специалист MediaGate MG-350HD содержит жесткий намного проще в использовании, а откры- по продажам Sonos. «[Мы использовали Linux диск для локального хранения инфор- тый код отличается большей гибкостью. потому что] мы можем разобрать всю ОС и мации и USB-порт для передачи данных. Каждые три-четыре месяца мы выпуска- создать нечто модульное в соответствии с Идея проста: когда устройство подклю- ем обновления для нашего оборудования с нашими потребностями. Мы используем гиб- чается к сети, оно находит все видео- новыми функциями, что было бы невозмож- кую архитектуру, и наши планы на 2008 – рас- файлы MPEG и WMV с нормальным и но с другими ОС». ширять эту архитектуру и дальше». LXF

Что день грядущий нам готовит

Ронан Бохан [Ronan Bohan], архитектор ПО, IBM Дэвид Лю [David Liu], основатель и руководитель «Среди работников традиционной сферы – инжене- gOS ров и системных администраторов – растет тенден- «Границы между программами для рабочих столов и ция к использованию Linux. Мне видится использо- для web станут более размытыми. Например, Google вание этой платформы в научных сообществах и в Gears – это инструмент синхронизации, позволяю- области визуализации, именно эти области рассмат- щий web-приложениям работать в режиме offline и ривает IBM. Вовсе не обязательно, что он заменит синхронизирующий [ваши данные], как только вы Windows на рабочих столах, но потенциал у него вернетесь в Сеть». имеется. Наибольшее влияние у него будет в техни- ческих сообществах, где нужна большая мощ- Шридхар Вемху [Sridhar Vemhu], директор, Zoho.com ность.» «Пользователи ПК, которые придут на рынок в сле- дующее десятилетие, могут и не захотеть выклады- Пол Мур [Paul Moore], директор по мобильному вать $300–400 за одну программу. Так что основным рынку, Fujitsu преимуществом является стоимость. У Linux есть и «Linux подобен Windows, но кое-чего не хватает. На еще одно преимущество – скорость: он намного рынке Tablet PC вообще все мимо. Сообщество Linux быстрее других операционных систем. В этой ОС расширяется и делает многие вещи намного проще – можно разобрать сервер и выжать из него намного я думаю, так и будет – и все зависит от реакции больше, чем из других серверов, и она позволяет поставщиков других ОС». поддерживать этот сервер и далее».

Март 2008 Linux Format 39 Варианты Ubuntu

Ubuntu: Найти свою любовь

На Ubuntu основано немало дистрибутивов, и у каждого собственное сочетание целей, ПО и философии. Джон Брэндон разбирается в причинах.

идеальном мире все пользователи были бы программиста- это в Google – весьма вероятно, что найдется реальный дистрибутив с ми и технарями, но это не только отдает утопией – это еще и до активным сообществом и своими целями. Даже если какая-то версия В ужаса скучно. Часть людей интересуется только просмотром Ubuntu (например, сатанинская) планируется как шутка, иногда она Интернета и e-mail; малое число избранных – асы в создании цифро- созревает до вполне реальной. Это напоминает мне розыгрыш с «бес- вого мультимедиа, но не отличат код Ajax от моющего средства Аякс; проводным источником энергии», опубликованный на ThinkGeek.com Наш гуру маркетинга умеют написать идеальное прозаическое произведе- несколько лет назад, про устройство, способное заряжать сотовый эксперт ние, но редактирование графики для них – черная магия. И… вы буде- телефон без кабеля. Сейчас подобное становится реальностью – про- Джон Брэндон те смеяться, но это нормально. Linux, набирая мощь как ОС, пригодная дажи начнутся в конце 2008 года. Компьютерный вете- для любого пользователя, превращается в нечто удивительно гиб- Между тем, в центре всех этих версий Ubuntu находится Canonical – ран с 20-летним ста- кое и хорошо подстраиваемое под компания, предоставляющая ком- жем, использующий новые миссии. Ни один дистрибутив «На свете есть мерческую поддержку официаль- Linux со времен его не иллюстрирует это лучше, чем ных дистрибутивов Ubuntu, таких появления и на чем только его ни уста- Ubuntu, который имеет королевские дистрибутивы Linux как Kubuntu и Edubuntu. Canonical навливавший: Mac, регалии системы на любой вкус. стремится сузить растущий рынок устройства UMPC, Не верите? Смотрите сами: это на любой вкус и цвет.» «отпрысков», побуждая большин- смартфоны, систем- дистрибутив и для христиан, жела- ство пользователей выбирать ники из мусорного ющих побольше читать Библию; и для компьютера, куда больше не базовую версию с сайта Ubuntu.com и предлагая несколько своих ящика, карманные ПК и игровые ноутбуки. влезают постоянно раздувающиеся версии Windows; и для производи- специализированных дистрибутивов. Но какие уж там ограничения в Джон – уникальный телей мультимедиа, и для преподавателей, и для сетевых экспертов, и мире свободного ПО! Итак, чтобы помочь вам (или вашим друзьям и тип: он сменил долж- даже для мобильных устройств, типа Samsung Q1. На самом деле дис- родственникам, не знакомым с Linux), вот описание лучших вариантов ность IT-директора на трибутивов Ubuntu так много, что сайт http://tinyurl.com/yrbmv7 пред- Ubuntu, включая причину их создания, комментарии разработчиков и перо журналиста... ставил список из 25 лучших версий Ubuntu (а это отнюдь не все). способ получения. Если подражание – высшая форма лести, то есть даже список шуточных вариантов Ubuntu: один установит вирус и уничтожит ваш LLinuxinux MintMint ПК, другой – для фанатов Star Trek, третий выглядит как Матрица. Начнем с одного из самых элегантных и полезных «потомков». Linux Приставьте к слову “ubuntu” любую букву (например, f) и наберите Mint, помаленьку дрейфующий от типичного облика Ubuntu, делает

40 Linux Format Март 2008 Варианты Ubuntu

ставку на интерфейс, а также включает кодеки и средства разработки. не связанные с полем их деятельности. Неудивительно, что ISO-образ Mint выглядит необычно уже начиная с экранного логотипа и развет- дистрибутива Ubuntu Studio – самый большой из всех, что мы нашли вленного меню, позволяющего видеть все программы (и сильно напо- (в нем 820 MБ), но и самый подстроенный к абсолютно конкретным Скорая минающего новое меню Пуск в ), а также имеет несколь- задачам. На нем содержится специализированная версия Ubuntu для помощь ко уникальных цветовых схем и обоев рабочего стола. Но подлинная медиаразработчиков, оформленная в художественном стиле. Важнее его сила – в совместимости. Я протестировал Mint не меньше чем на всего то, что пакеты по умолчанию, выбираемые в процессе инсталля- шести разных ПК: среди них – стареющие реликты домашней сборки, ции по принципу «только аудио/видеоприложения» и т.п., совершенно В Linux Mint немало скрытых один настольный Dell 8500 и один Fujitsu LifeBook T (гибрид ноутбука и надежны. Studio включает программы – очевидные лидеры, такие как достоинств. планшета). Услышав стартовую мелодию на Fujitsu, я был поражен – до Audacity, GIMP и Ardour. А действительно блестящая идея – предложе- Например, этого ни один другой дистрибутив не сумел определить аудиосистему, ния малоизвестных пакетов: эмуляторов синтезатора, программ для щелкнув по файлу по крайней мере, прямо из коробки. Кроме того, без проблем установи- создания зацикленного видео или аудио, stopmotion (покадровая ани- правой кнопкой лись Wi-Fi-соединение и доступ в сеть через Gigabit Ethernet. мация) и enblend – инструмента визуальной композиции. мыши, можно закинуть его Mint также поставляется с web-установщиком пакетов, предназна- Другая сильная сторона Ubuntu Studio в том, что это ОС реального в Интернет. Или ченным для новичков – тех, кто не знаком с синтаксисом стандартных времени – вы можете смело положиться на нее, воспроизводя анима- вот еще: можно утилит Debian. Поскольку Mint основан на Ubuntu, вы можете устано- цию или проигрывая файл с несколькими звуковыми дорожками: рас- преобразовать вить любой пакет, найденный в репозиториях последнего. синхронизации не будет. Studio – всесторонний, мощный дистрибутив любой файл, даже текстовый, «Linux Mint существует, потому что отражает взгляд на то, какой для тех, кому некогда искать нужные утилиты в громадных библиоте- в формат PDF, может и должна быть настольная ОС. Другие дистрибутивы концентри- ках Ubuntu. просто используя руются на том, что они хотят делать, и технически им проще реализо- «Ubuntu Studio хорош, потому что он ставится так, как хочется мне диалоговое окно вывать эти идеи», – говорит Клеман Лефевр [Clement Lefebvre], осно- и другим: прямо из коробки», – говорит Корк Контрос [Cork Kontros], Print и выбрав ватель и главный разработчик. ведущий разработчик проекта. «У нас есть активное сообщество и в качестве выходного Лефевр очертил некоторые планы, касающиеся Mint. В 2007 коман- интеграция пакетов Ubuntu. На следующий год мы не строим глобаль- формата PDF. да выпустила полную версию, добившуюся большинства изначально ных планов, призванных изменить мир. Будем просто поддерживать поставленных целей. Сейчас они работают над решением ряда вспо- последние мультимедийные разработки GNU/Linux и собирать их могательных задач, таких как выпуск версии на базе Fedora, локали- в удобные всем пакеты. Мы очень тесно связаны с тем, что делает зация и подготовка особых версий Mint со специфическим подбором Ubuntu и его обширное сообщество». пакетов. Разработчики также заняты службой резервирования домаш- него каталога и готовятся к версии Ubuntu 2008 года, с долгосрочной поддержкой.

Попробуйте Linux Mint, если вы: 1 Предпочитаете простую и элегантную ОС более сложным технически. 2 Хотите использовать мощные функции, которые просто найти и которые не упрятаны глубоко в ОС. www.linuxmint.com/download.php UUbuntubuntu SStudiotudio Производители мультимедиа – особая порода людей. Они требуют мощных приложений, способных состязаться с и Avid В Ubuntu Studio Media Composer, и им глубоко безразличны посторонние инструменты, полно утилит для работы с музыкой; примеры – Muse и Jackbeat.

Работа с видео в Ubuntu Studio

Представленные в Ubuntu Studio приложения Ffmpeg Умелый мультимедиа-плейер, для создания видео включают: сервер и кодировщик. Ffmpeg2theora Кодировщик видео в формат , использующий . Pitivi Видеоредактор. Kino Нелинейный видеоредактор. Cinepaint Программа для рисования и рету- Stopmotion Программа для покадровой ширования, созданная для работы с 35-мм анимации. фильмами и другими изображениями высоко- Dvgrab Загрузка цифрового видео через Пользовательский интерфейс Mint выдержан в элегантной го динамического диапазона и разрешения. интерфейс IEEE1394. цветовой гамме.

Март 2008 Linux Format 41 Варианты Ubuntu

Попробуйте Ubuntu Studio, если вы: 1 Работаете в сфере мультимедиа и вам необходим быстрый доступ к свободным утилитам. 2 Хотите изучить технику создания аудио и видео. www.ubuntustudio.org UUbuntubuntu CChristianhristian EEditiondition Возможно, что эта ветка Ubuntu, как никакая другая, демонстрирует, сколь узко направ- EEdubuntudubuntu ленным может быть дистрибутив Linux. Как ответвление базовой ОС, Edubuntu – официальный релиз от Canonical для рынка услуг обу- Christian Edition не имеет никаких особенных удобств или технических чения в системе 12-классного образования, включающий несколько улучшений, кроме мощного «родительского фильтра» для блокирова- викторин и обучающих программ – в основном, ориентированных на ния «нехороших» сайтов. Вместо этого дистрибутив включает несколь- маленьких детей. Однако команда разработчиков Edubuntu планирует ко программ для чтения Библии, запоминания ее стихов и даже запуска сделать дистрибутив привлекательным и для высших образователь- «виртуальных четок» для моления. Программа GnomeSword позволяет ных учреждений; фактически, он уже содержит несколько приложений организовывать поиск по Библии и читать комментарии к определен- нужного уровня, вроде GIMP (редактирование фотографий), Scribus ным стихам. Mozilla Firefox имеет тему Bible Fox Theme, где кнопки (визуальная верстка) и стандартного набора для электронной перепи- «Вперед» и «Назад» выполнены в виде христианского символа рыбы ски (Evolution) и просмотра web-страниц (Firefox). [«рыба» по-гречески – анаграмма слов «Иисус Христос, Сын Божий», Edubuntu не просто помогает школьникам встать на ноги и быстро этот символ возник во времена гонений на христиан, – прим. ред.]. научиться работать в Linux. Это еще и очень легкий дистрибутив, запу- Другая поисковая программа для Библии, The Word [Слово Божье, а скаемый на старых ПК – таких, которые часть школ уже давно спихнула не MS Word, – прим. ред.], имеет некоторый недостаток: при установке в чулан. Эта легкость – я протестировал Edubuntu на машине шестилет- она использует испанский язык, а не английский. ней давности – в известном смысле доказывает, что Linux хорошо под- Главная причина выбрать Ubuntu Christian Edition – это фильтр для ходит школам благодаря нетребовательности к оборудованию, а также блокировки сайтов со «взрослым содержимым», доступный по умол- подтверждает, что специализированная версия Ubuntu имеет смысл чанию. То есть вы можете, не задумываясь, дать эту версию Ubuntu и для администраторов, желающих стандартизовать и использовать вашим детям или религиозным организациям, не опасаясь, что поль- старое оборудование. зователи примутся искать в Интернете порносайты или другую непод- Edubuntu, как и другие официальные версии Ubuntu, можно полу- ходящую информацию. Для фильтрации сайтов Ubuntu Christian Edition чить на CD бесплатно, оставив заявку на edubuntu.org. Не путайте использует DansGuardian (danguardian.org). Тесты показали, что фильтр Edubuntu с Eubuntu – европейским ответвлением Ubuntu. блокирует такие общеизвестные сайты, как Playboy.com и Fleshbot.com, но не блокирует, например, Zinio.com, который торгует, в частности, и Попробуйте Edubuntu, если вы: журналами для взрослых. Christian Edition – хороший пример того, как 1 Работаете в школе и хотите использовать дистрибутив Linux на небольшая команда добавляет к базовой Ubuntu специфические ленты школьных ПК. RSS, закладки, а также инструменты и целые приложения, не нарушая 2 У вас есть дети, которые хотят использовать Linux, делая уроки. основной сборки и поддержки на уровне драйверов. www.edubuntu.org/download

Ubuntu Christian Попробуйте Ubuntu Christian Edition, если вы KKubuntuubuntu Edition доказывает, 1 Христианин и хотите использовать приложения для изучения Библии. Похоже, большинство ответвлений Ubuntu использует в качестве что найдется 2 версия Ubuntu Хотите использовать для ваших детей (или для себя!) настроенный рабочего стола Gnome, но Kubuntu отошел от этого курса. Это во для любой группы родительский фильтр. многом стандартная сборка KDE с Konqueror вместо Firefox в каче- пользователей. www.whatwouldjesusdownload.com/christianubuntu стве браузера, менеджером пакетов Adept и Ubiquity для установки программ, а также генератором отчетов о сбоях Apport. Поскольку эквиваленты всего этого есть и в Gnome, рабочая среда KDE, в прин- ципе, дело вкуса – она более броская и больше похожа на Windows

Сейчас большинство программ, включенных в Edubuntu, рассчитано на школьные занятия в 12-классной системе образования.

42 Linux Format Март 2008 Варианты Ubuntu

твует множество доступных драйверов для PC-карт, включая даже Скорая малоизвестные или устаревшие. Рабочий стол незатейлив: вы може- помощь те сосредоточиться на записи телепередач. Черная и синяя цветовые схемы хорошо подходят для видео. Однако в ходе тестирования у нас Дерево было несколько сбоев, в основном связанных с просмотром сайтов дистрибутива при помощи Firefox. Linux Mint, как и множество веток Ubuntu, имеет (по крайней мере, на первый взгляд), тогда как Gnome – более тради- Попробуйте Mythbuntu, если вы: много вариантов и ционный Linux-вариант. Konqueror поддерживает работу с вкладками 1 Хотите записывать телевизионные передачи при помощи MythTV. ответвлений. www. и запускается достаточно быстро, не создавая проблем при работе с 2 Хотите изучить дистрибутив, не содержащий посторонних пакетов. linuxmint.com/up- традиционными приложениями вроде Gmail или утилитами Web 2.0 www.mythbuntu.org load/mint_ubuntu. типа ThinkFree. png Kubuntu отличается от дистрибутивов Ubuntu на основе Gnome FFluxbuntuluxbuntu волнениями, которые связаны с выходом новой, четвертой версии Говоря о Fluxbuntu, будем откровенны: это, с рабочей среды KDE 4 и которых пользователи Gnome не ощущают – одной стороны, удивительная версия Ubuntu пока. Джонатан Риддел [Jonathan Riddell], контактное лицо Canonical из списка лидеров, дающая новую жизнь по Kubuntu, сказал, что приготовления к KDE 4 – это дело первой старым ПК, а с другой – подверженная сбо- важности. ям гадость, нуждающаяся в дополнитель- «Главная задача – подготовиться к KDE 4», – говорит Риддел. ном тестировании. При широком канале вы «Большая часть работы связана сейчас с вопросами параллельной можете скачать его всего за несколько минут: размер ISO-образа – работы приложений для KDE 3 и KDE 4. Есть несколько частей Kubuntu, около 300 MБ, чуть больше, чем у Nubuntu (сетевой дистрибутив без например, инструменты для обновления версий и набор утилит дис- GUI). Установка Fluxbuntu привела к фатальному сбою на Dell 8500, танционного администрирования Guidance, которые надо портировать двух компьютерах домашней сборки и ноутбуках Fujitsu и HP (поэтому в KDE 4». мы считаем, что несовместимость с оборудованием тут ни при чем). И, честно говоря, выглядит он слегка уродливо и размыто, что вызвано Попробуйте Kubuntu, если вы: скудным выбором цветов. 1 Предпочитаете рабочую среду KDE, а не Gnome. В чем же его сила? Основная идея – иметь настолько чистый и 2 Хотите придерживаться официально одобренной версии Ubuntu. быстрый GUI, насколько это вообще возможно. Fluxbuntu создан в www.kubuntu.org расчете на возможность запуска на любом компьютере. Его рабочий стол Fluxbox имеет чистые и четкие края (несмотря на вышеупомя- нутую размытость цвета). В отличие от KDE, эта рабочая среда не ослепляет анимацией, и все включенные в дистрибутив программы достаточно легки, чтобы не вызывать трудностей на старых системах. В качестве текстового процессора предлагается AbiWord, браузер менее требователен к оперативной памяти, чем Firefox, а почтовый клиент Claws ограничен базовыми функциями. Легкость у Fluxbuntu необыкновенная: он запускается быстрее всех ОС, что мы тестировали, и прямо-таки выбрасывает рабочий стол буквально через пару секунд.

Попробуйте Fluxbuntu, если вы: 1 Работаете на старом ПК, который не потянет более сложные дистрибутивы. 2 Хотите использовать облегченную ОС, работающую с быстротой Kubuntu отличается от других дистрибутивов тем, молнии. что он основан на KDE3. www.fluxbuntu.org LXF

MMythbuntuythbuntu Не секрет, что Linux – идеальная ОС для просмотра, записи и хранения видео. Это доказывается популярностью MythTV, программного видео- магнитофона (DVR). Mythbuntu – это облегченная версия Linux без вся- ких излишеств вроде текстового процессора и редактора изображений (хотя интернет-браузер все-таки есть), назначение которой – помочь вам настроить MythTV (www.mythtv.org) и запустить его по возможно- сти быстро. Здесь есть два шага. Первый – настроить «front-end» для той части видеопотока, которую вы смотрите. Как и любое хорошее DVR-приложение, эта программа запускает видеопоток на полном экране, предполагая, что вы будете смотреть видео по телевизору. Для минимизации Можно переключать каналы, записывать любую передачу и смотреть требований к оперативной архивные записи. памяти Fluxbuntu Второй процесс настройки относится к «back-end» для дочерней использует FluxBox – платы ПК, получающей ТВ-сигнал. Мы использовали Pinnacle Micro он работает EyeTV и сразу же уселись смотреть телевизор при помощи приставки практически Dish Network ViP622. Поскольку у MythTV активное сообщество, сущес- на любом ПК.

Март 2008 Linux Format 43 Что за штука... PulseAudio

вызова VoIP. При всем этом можно сохранять удач- но настроенные сочетания. Пусть, например, музы- кальные проигрыватели воспроизводят залихватские Что за штука… ритмы на 100% громкости, а системному зуммеру и 40% хватит. Кроме того, можно сгруппировать несколько аппа- ратных звуковых устройств в один виртуальный ком- плекс, что удобно, если нужны дополнительные аудио- каналы, а дорогой многоканальной карты нет. Такого PulseAudio? можно добиться и в ALSA, написав файл настройки для pcm_multi, но в PulseAudio это делается в графи- Дэниел Джеймс разъясняет, зачем может пригодиться ческой оболочке, да еще и с компенсацией разбежки кроссплатформенный звуковой сервер на вашем между разными картами. рабочем столе… А я думал, что JACK – «последнее слово» сре- ди звуковых серверов. Может ли быть что-то лучше него? Чем-то название знакомо… это не тот регги- «горячего подключения» (например, USB-наушники). Да, JACK по-своему хорош, но он предназначен для бэнд из Бирмингема? Сходство с aRts, звуковой системой KDE, куда меньше, других целей. Профессионалов заботит частота дис- Да нет, это вы со Pulse путаете. Речь идет о но функциональность двух систем частично перекры- кретизации, соотношение между латентностью и раз- свободном проекте, ранее известном как Polypaudio, вается (aRts тоже способен распределять звуковые мером буфера, синхронизация подачи (управление включающем в себя аудиосервер и некоторые другие потоки между устройствами). подачей в JACK служит для того, чтобы несколько новшества. Исходный код PulseAudio опубликован под GNU LGPL и протестирован на GNU/Linux, Solaris, Небось в системах GNU/Linux новый сервер FreeBSD, Windows 2000 и Windows XP. Вероятно, он работает только с GNOME? будет работать и на других платформах, если написать Нет, поддержка KDE возможна, путем настройки aRts соответствующие модули. на использование ESD-демона (на самом деле, это будет PulseAudio – на него ведет символьная ссылка). И зачем мне звуковой сервер? Серверов я дома Прямой зависимости между Gnome и PulseAudio нет, не держу… но элементы графического интерфейса программы В данном контексте мы говорим о системном демоне, требуют наличия gtkmm. который обычно работает на локальной машине, а не на удаленном суперкомпьютере. Вспомните, что боль- Ну куда мне столько несовместимых звуковых шинство настольных приложений на системах GNU/ систем для Linux-дистрибутива: за последние Linux, работая, монополизируют входные и выходные годы у меня были OSS, ALSA, ESD и aRts – и все рабо- каналы звуковой карты. Это может стать проблемой, тают по-разному… например, если во время просмотра Flash-клипа в бра- По крайней мере, PulseAudio вселяет надежду на уни- узере вы получаете входящий вызов VoIP. Если сов- фикацию рабочих столов и дистрибутивов свобод- местное использование ресурсов невозможно, модуль ного ПО, при функциональности современных про- браузера не пропустит телефонный звонок. Решить приетарных ОС или даже превосходящей ее. Пакеты задачу может звуковой сервер, способный управлять PulseAudio для большинства основных дистрибутивов аудиоаппаратурой и распределять входные и выход- уже готовы. Fedora 8 первой включила новый сервер ные сигналы между программами. Если такой сервер по умолчанию, Ubuntu также обдумывает его вне- будет поддерживаться всеми программами, то сооб- дрение. Дополнения ко многим настольным аудио- щения ‘device not available’ (устройство недоступно) мы приложениям уже готовы, но проблемы несовмести- больше никогда не увидим. мости некоторых (особенно, устаревших) программ неизбежны. Хорошо, но на моем компьютере уже есть ALSA (Advanced Linux Sound Architecture), которая Зачем же тогда спешить? Стоит ли жертвовать «рулит» источниками звука. обратной совместимостью? Верно подмечено, но ведь параметры dmix от ALSA Помните, я говорил о некоторых новшествах? О «горя- необходимо настраивать вручную, редактируя файлы чем подключении» уже упоминалось, поддержка сети конфигурации; а PulseAudio предназначен для автома- тоже усовершенствована: трансляция звука с одной тической работы или графического управления. При машины на другую доступна в GNU/Linux уже дав- этом PulseAudio не заменит ALSA: задача последне- но, но PulseAudio обещает существенно облегчить ее го – работа со звуковыми драйверами ядра на низком настройку. Это не простое совпадение, что ведущий уровне. PulseAudio действует в системе на более высо- программист PulseAudio, инженер Red Hat Леннарт ком уровне, но все-таки ниже мультимедиа-сред, вроде Поттеринг [Lennart Poettering], является также и веду- GStreamer. Это другой уровень абстракции, PulseAudio щим разработчиком проекта Avahi mDNS/DNS-SD (он не работает со звуковыми драйверами напрямую. же zeroconf, или, в терминологии Apple, Bonjour). Автоопределение сетевых аудиоисточников и синхро- А не похоже ли это на ESD, Enlightenment Sound низация по LAN – требование сегодняшнего дня. Daemon? Доступна настройка индивидуального уровня гром- Да, PulseAudio задуман как замена ESD, только с набо- кости для каждого приложения, а также возможность ром новых функций, наподобие автоматического пере- менять эти уровни динамически – например, снижать направления звукового вывода на внешние устройства громкость звучания фильма при получении входящего

44 Linux Format Март 2008 PulseAudio Что за штука...

аудиоприложений могли стартовать с одного такта). в среде ядра реального времени разработаны сравни- ложения, окно которого активно, воспроизводится в Здесь недопустимо вмешательство компьютерных тельно недавно, и поддержка JACK нуждается в допол- полную громкость, остальные же получают около 20% звуков в выходной аудиоканал: вообразите радио- нительном тестировании. Предполагается, что специ- номинального уровня. В планах – относительная груп- станцию, на которой, в живом эфире, при получе- ализированные дистрибутивы, построенные вокруг повая регулировка звука (то есть, понижая громкость нии каждого электронного письма пиликает систем- JACK, не будут включать PulseAudio (по крайней мере, звука медиа-плейера ползунком, можно будет соот- ный зуммер! Большинство обычных пользователей, по умолчанию). Есть сведения о том, что разработчи- ветственно понизить и громкость остальных источни- напротив, эти вещи совершенно не волнуют, для ки PulseAudio собираются пойти навстречу профес- ков звука). них главное – приятное звучание да интуитивное сионалам, упростив переключение между звуковыми управление. серверами. А где можно узнать о проекте подробнее? Сайт, на котором можно узнать о ходе даль- Значит, войне форматов между PulseAudio и В каком направлении предполагается развитие нейшей разработки – www.pulseaudio.org. Версия JACK не бывать? PulseAudio? PulseAudio 0.9.7 вышла в конце октября 2007. API счи- Именно из-за возможной несовместимости PulseAudio Кое-какие «изюминки» в планах есть, например, пано- тается стабильным, но приложения нуждаются в допол- первоначально встретили в штыки. Теперь в PulseAudio рамирование звука. Это означает, что, щелкнув мышью нительном тестировании. Как вариант – просмотрите добавлена совместимость с JACK, и JACK-клиенты на краю рабочего стола, можно переместить центр сте- документацию вашего дистрибутива к PulseAudio, что- могут обмениваться с ним аудиопотоками. Однако реозвучания в ту же сторону (как если бы оба динами- бы разыскать готовые пакеты. Есть также обзор в фор- поддержка подачи JACK была удалена из PulseAudio ка сместились к одной стороне монитора). Еще одна мате Theora на сайте http://dev.gentooexperimental. (разработчики посчитали, что рядовому пользователю интересная вещь – динамический контроль громкости org/~flameeyes/mezcalero-pulse-demo.ogm, он может это ни к чему). Заплатки для использования PulseAudio звучания в зависимости от фокуса. То есть, звук при- служить прекрасным практическим руководством. LXF

Март 2008 Linux Format 45 СвободнаяСвободная электроника элэлектроникаектроника

СОЗДАЙ СВОЙ ГАДЖЕТ Возвращение По многочисленным просьбам читателей, наш цикл аппаратного хакинга вернулся. Грэм Моррисон собирает игру типа «Саймон сказал», используя Arduino и несколько светодиодов.

Пропустили татья об аппаратном хакинге из LXF100/101 оказалась ряют то, что делает или просит сделать ведущий, – прим. пер.]. Игроки LXF100/101? столь популярной, что мы решили продолжить. В ста- должны нажимать клавиши в соответствии с проигранными Саймоном тье говорилось об Arduino – небольшой печатной плате, нотами. Сперва вы слушаете последовательность звуков, а затем пыта- Предварительный включающей простое окружение ввода/вывода и USB- етесь воссоздать мелодию с помощью четырех больших кнопок на материал для этого порт,С которыми легко управлять, используя несложный язык програм- игровой системе. Последовательность становится все длиннее и слож- проекта содержался мирования и IDE на Java. Самое замечательное то, что в ней все – от нее для повторения. в статье про Arduino в LXF100/101. дизайна платы до управляющего ПО – открытое (Creative Commons Мы сделаем упрощенную версию этой игры, используя три све- Если вы пропустили для аппаратной схемы и GPL для ПО). В результате вокруг проекта тодиода (вместо нот) и три кнопки. Идея игры следующая: компью- этот номер, можете Arduino образовалось сплоченное сообщество, и это также повлияло тер выбирает последовательность включения светодиодов, а игрок ее скачать PDF на выбор его как платформы для нашей «железной» статьи. Другая повторяет, нажимая на соответствующие кнопки. Каждый раз, когда со статьей с www.linuxformat.ru/ причина – дешевизна решения. Примерно за 2000 рублей вы може- игрок вводит ее правильно, мы удлиняем последовательность на еди- download/LXF100- те приобрести полный набор для новичка, содержащий все, что нуж- ницу, и количество очков игрока будут зависеть от запомненной им 101.arduino.pdf. но для начала, включая зуммер, светодиоды, сенсоры и кнопки – и, последовательности. конечно, сам Arduino. В статье этого месяца мы собираемся продолжить начатое и, опи- Пишем игру раясь на основы, раскроем чуть больше потенциала Arduino. После Вот что нам понадобится для построения собственного «Саймона»: этого у вас будет вполне достаточно информации для уверенной рабо- Плата Arduino. ты над собственными проектами. В следующие несколько месяцев 3 переключателя. мы будем опираться на этот фундамент, не используя ничего, кро- 3 светодиода. ме дешевых компонентов и открытых кодов. Но прежде 3 резистора по 1 КОм для переключателей. чем замахнуться на большее, заполним несколько 3 резистора по 1 КОм для светодиодов. пробелов, оставшихся от первого урока. В сти- Мы также будем использовать монтажную плату из оригинальной ле Linux Format, мы превратим это в забаву, статьи для скрепления всех компонентов и проводов вместе. воссоздав классическую игру 80-х – Simon, Первым делом разместим переключатели. Они имеют четыре кон- простую игру на повторение [«Саймон такта, но нам нужны только два, на любой из сторон. Наши три пере- сказал», игра, в которой все повто- ключателя поместим так, чтобы они выглядели как «мостик» над цен-

46 Linux Format Март 2008 ССвободнаявободная ээлектроникалектроника

тральной канавкой макетной платы, а соединять будем только две дом с одним из контактов ввода/вывода Arduino – у нас это контакты ножки по одну сторону канавки; другую сторону используем для при- 10, 11 и 12. соединения светодиодов. Дизайн игры должен учитывать эргономику: До начала работы приведем список соединений, использованных люди захотят поиграть с вашим устройством, но не с проводами и нами на Arduino. резисторами, путающимися у них под руками. Кроме того, продумай- те, как разместить светодиоды – они должны быть рядом с кнопками, 1-й переключатель на Вход 7, светодиод на 12. чтобы было ясно, какой светодиод какой кнопке соответствует. У нас 2-й переключатель на Вход 6, светодиод на 11. получилась не слишком успешная раскладка, и если у вас тоже отсут- 3-й переключатель на Вход 5, светодиод на 10. ствуют навыки дизайна а-ля Джонатан Ив, вы можете обнаружить, что 5 В питания на шину к трем переключателям. весь процесс лучше начать заново, хорошенько разобравшись в про- GND (Земля) на шину к трем переключателям. блемах размещения проводов и резисторов. Другой GND, соединенный с шиной, используемой светодиодами. Расставим кнопки Программирование Следующая задача – подсоединить переключатели. Соединим выход Ну вот, мы все собрали – теперь перейдем в программное окружение питания 5 В на Arduino с одной из горизонтальных шин на углу платы. для написания кода, необходимого для игры. Мы рассмотрели работу Как и полагается «шине», при соединении с одной точкой на горизон- в окружении в первой статье, это довольно просто. Клиент использует тальной линии сигнал передается в любую точку по всей длине платы. Java, и если вы испытываете проблемы с его запуском, вероятно, нуж- Шина обычно используется для передачи питания и заземления на но убрать программное обеспечения терминала Брайля: оно конфлик- различные компоненты, присоединяемые к центральной части макет- тует с установленным ПО Arduino. ной платы (также известной как терминальная полоса), и это именно Вверху нового файла исходного кода следует добавить строки, ини- наш случай. От горизонтальной линии, несущей теперь 5 В, мы долж- циализирующие все наши соединения и глобальные значения: ны «прокинуть» резистор к ножке каждого переключателя, чтобы не #DEFINE MAXSEQ 20 подавать на переключатели слишком большое напряжение. Если у int rand_array[MAXSEQ]; вас нет макетной платы с шинами, это не мешает продолжить работу int ledPin1 = 12; над нашим проектом, но тогда придется выполнять каждое соедине- int ledPin2 = 11; ние с платой Arduino вручную. Надо также подвести провод от ножки, int ledPin3 = 10; на которую подано напряжение, к трем отдельным цифровым кон- int inPin1 = 7; некторам Arduino, чтобы мы могли читать состояние каждой кнопки. int inPin2 = 6; Используем контакты 5, 6 и 7. int inPin3 = 5; Еще надо соединить другую ножку каждого переключателя с «зем- int score = 1; лей» на Arduino (мы использовали следующий контакт за выходом Первая директива DEFINE задает максимальное значение последо- 5 В). Простейший способ сделать это – соединить все эти ножки с вательности мигания светодиодов, и эта последовательность хранит- шиной, соседней с шиной питания, а эту новую шину подключить к ся в массиве, создаваемом в следующей строке. Массив – это строка контакту «земля» на Arduino. Вот и весь монтаж переключателей; уста- элементов, и каждый элемент в нашем примере говорит плате Arduino, новка светодиодов будет еще проще. какой светодиод зажечь и какая кнопка должна быть нажата: коро- че, это число от 1 до 3. Строкой ниже мы сообщаем Arduino, к каким Подключим светодиоды входам подключены светодиоды и переключатели (соответственно, На другой стороне канавки, или паза, посреди макетной платы, надо ledPin и inPin). Последняя строчка создает глобальную переменную теперь прикрепить наши три светодиода – поближе к кнопкам, но для хранения очков, отмечающую, до какой длины последовательно- оставив достаточно места для присоединения земли (GND) к одной сти добрался игрок. ножке и управляющего провода к другой. Мы использовали шину по Теперь надо добавить функцию setup, используемую Arduino для другую сторону паза для соединения с GND и воткнули светодиоды настройки различных входов и выходов: отрицательной стороной (короткая ножка, или плоская сторона голов- void setup() { ки) прямо в нее. Другую ножку надо соединить через резистор прово- long val_rand = 0; pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); IDE Arduino использует Java, pinMode(inPin1, INPUT); и вы можете послать pinMode(inPin2, INPUT); вашу игру прямо pinMode(inPin3, INPUT); на устройство, randomSeed(analogRead(0)); присоединенное for (int i=0; i<=MAXSEQ; i++){ к USB-порту. rand_array[i] = random (3); } } В этом фрагменте кода мы делаем две вещи. Сперва мы говорим плате Arduino, какие контакты использованы как выходы (для мигания светодиодов), а какие – как входы (для считывания состояния кнопок). Мы также используем функцию setup() для заполнения массива слу- чайными значениями, и делаем это в два приема. Функция randomSeed читает вход с ножки 0. Так как ножка не подсоединена, то с нее, факти- чески, снимается случайный шум, который мы используем как затрав- ку для генератора случайных чисел, а генератор встроен внутрь цикла ‘for’, заполняющего массив случайными значениями между 1 и 3. Покончив с конфигурацией, перейдем к логике программы. Вот как должна протекать игра:

Март 2008 Linux Format 47 ССвободнаявободная ээлектроникалектроника

1 Длина последовательности принимается 1. Мы проигрываем всю последовательность на светодиодах. 2 Игрок должен в ответ нажать на переключатель, соответствующий светодиоду. 3 Если игрок полностью повторил последовательность, ее длина уве- личивается на 1. 4 Когда игрок допускает ошибку, игра повторяет последовательность текущей длины. Мы осуществим это с помощью четырех функций. Первая будет считывать, какая кнопка нажата (мы назовем ее readButtons), вторая – проигрывать последовательность на светодиодах (playSequence), и понадобятся еще две функции для сигнализации об успехе попытки или сбое (flashSuccess и flashFailure). Вот функция readButtons: Не обязательно цепляться за int readButtons() скверный редактор { Arduino. Используйте int val1 = 0; int val2 = 0; int val3 = 0; свой любимый do { редактор и сохраните val1 = digitalRead(inPin1); val2 = digitalRead(inPin2); val3 = код в той же digitalRead(inPin3); директории эскизов. } while (val1 == HIGH && val2 == HIGH && val3 == HIGH); if (val1==LOW){ return 0; } else if (val2==LOW) { при каждом правильном нажатии кнопки и длинную паузу, если игрок return 1; допустит ошибку. Здесь нет места для печати обоих функций, но вам } else if (val3==LOW) { необходимо сочетать вызовы функций digitalWrite(ledPin1, LOW) и return 2; digitalWrite(ledPin1, HIGH) для каждого светодиода, а затем запускать } delay (100). Как мы это сделали, показывает исходный код на www. } linuxformat.co.uk/mag/arduino. Она ожидает нажатия кнопки пользователем, а затем возвращает Последняя функция зовется void loop(), и без нее не обходится ни значение 0, 1 или 2, в зависимости от нажатой кнопки. Мы выбра- один проект Arduino: она заставляет устройство циклически работать, ли эти цифры, потому что они в точности соответствуют номерам, пока идет игра. Вот наша версия: используемым для зажигания каждого светодиода. Важное замеча- void loop(){ ние: переключатель возвращает значение HIGH, когда он отпущен int input_key; и LOW – когда нажат. Так происходит потому, что в нормальном int winning = true; состоянии переключатель пропускает ток, а его нажатие разрыва- int i=0; ет цепь. playSequence (score-1); Далее добавим функцию, проигрывающую последовательность на while (winning && i

48 Linux Format Март 2008 3D modelling tool Reviews Учебники НашиНаши эксперты помогут вам с люлюбымбым приложением LiLinuxnux В этомэтом выпуске...выпуске ЕВГЕНИЙ БАЛДИН 50 Винил в цифровой век 70 Диаграммы – это просто! Начинал с Агатов. Когда- Нравится, как звучит настоящий винил, Необходимо визуализировать данные, но то даже знал, что такое но нет места хранить пластинки? Энди специализированные пакеты кажутся Робик. Ченнел расскажет, как эм-пэ-три- чересчур громоздкими? Не беда – хватит фицировать фонотеку при помощи и скрипта на Python. Олег Попов Audacity и Lame. представляет библиотеку Matplot! Почему? Потому что 54 Навести порядок в снимках 74 Спам не пройдет не будем, и всё В Linux нет недостатка в инструментах Ваш свежесобранный почтовый сервер управления фотографиями. Дэйл нуждается в защите, как и любой другой. Стрикланд-Кларк рассмотрит все Евгений Кропоткин покажет, как бороться Будьте самоучками – не варианты и найдет для вас лучший, будь с зомби и прочей нечистью. ждите, чтобы вас научила то DigiKam, Picasa или F-Spot. жизнь. 76 WordPress на свой лад 58 Звук для профессионалов Добавьте самому популярному блог- Станислав Ежи Лец Ardour и Jack неразлучны, как Чук и движку недостающие функции – Гек – Дэниел Джеймс поможет свести напишите свой собственный плагин. ожно жить просто. Делать мастер-трек и создать WAV-файл для Валентин Развозжаев сообщает, что это только то, что говорят. прослушивания всем миром. совсем не трудно. МПриходить на работу раньше 62 Набросай игрушку 79 Миграция продолжается начальника, чтобы он заметил это, точнее, Завершаю серию статей о Хотите установить в офисе Linux – программировании, Майк Сондерс решил спросите нас, как! Дмитрий Дроздов именно для того, чтобы он это заметил. поразвлечься – его игру с мячами можно перенимает эстафету у Джо Касселса. Говорить только то, что от тебя захотят написать за пару минут. Бинго! услышать и только тогда, когда тебя об 82 И вновь про MVC Qt 4 – это, конечно, не Rails, по писать этом попросят. А как же дело? А какое 66 Почта подана «формочки к СУБД» с его помощью едва дело? И зачем? Ведь по сравнению с лич- Надоели ненадежные и заспамленные ли сложнее. Андрей Боровский припас SMTP-сервера? Соберите свой, хороший, для вас пример из реальной практики. ной устроенностью всё остальное не так при содействии Postfix и д-ра Криса уж и важно. Пусть жилы рвут фанатики. Брауна, а затем поднимите Dovecot и 86 Мир с точки зрения R забирайте почту через POP. С любезного разрешения участника Люди делятся на две категории: те, кто знают понятие «категориальный тип» и дискуссии на LOR (www.linux.org.ru) kernel: те, кто не знают. Перейдите из одной из «За каждой инсталляцией Linux в России них в другую под руководством Алексея Шипунова и Евгения Балдина! (до определённого момента – за каж- дой) стоит мрачная фигура линуксоида- активиста с монтировкой в одной руке и плакатом в другой с надписью: нет, мы Совет месяца: Счастье луковое не будем ставить сюда Windows. Почему? Почтовая служба Google, Gmail, известна как более гиб- интернет-сервер, вероятно, не сможет определить, что Потому что не будем, и всё.» кая и удобная альтернатива сервисам старой школы. К вы находитесь в Великобритании, так что, зайдя на стра- Интересно, это только мне такие фана- сожалению, прямой Gmail-адрес недоступен для тех, кто ницу регистрации нового ящика вы имеете хороший тики симпатичны? Те, на ком всё держит- живет в Германии или Великобритании: слово «Gmail» в шанс увидеть за полем ‘Desired login name’ желанное ‘@ этих странах является зарегистрированным товарным gmail.com’. Если же вы по-прежнему наблюдаете ‘@ ся? Те, кто не ждёт указки сверху, а дела- знаком. googlemail.com’, значит, вам попался немецкий или анг- ет нужное дело? Те, кто живёт не только Можно ли как-нибудь завести себе новый Gmail-адрес, лийский -сервер. В этом случае просто остановите вне, но и на работе? Это тяжёлая жизнь – если вам случилось жить в туманном Альбионе или клиента Tor и перезапустите его, чтобы подключиться к жизнь в школе, ВУЗе, в науке, да и в биз- Шварцвальде? Вообще говоря, да. новой сети. Перво-наперво, вам нужно обзавестись клиентом Tor, Если вы хотите узнать, какой Tor-сервер используется несе непростая – но это жизнь. Свободное позволяющим подключаться к сетям The Onion Routing в настоящее время, посетите www.whatismyipaddress. программное обеспечение имеет одно, но (Tor). Сеть Tor – это множество анонимных серверов, com, и вам покажут, где (по мнению остального очень значительное преимущество перед разбросанных по всему миру и позволяющих подклю- Интернета) вы изволите находиться. чаться к другим компьютерам, скрывая собственный После регистрации нужного вам Gmail-адреса вы закрытым кодом: оно может существо- адрес (подробности на http://tor.eff.org). Вам также потре- можете откатить все сделанные изменения и использо- вать и распространяться не по приказу, и буется установить и запустить Privoxy. И наконец, скачай- вать для доступа к ящику нормальный web-браузер. именно поэтому в конце концов завоюет те для Firefox расширение Torbutton, позволяющее легко • Спасибо Робу Певису [Rob Pervis], г. Торвертон включать и отключать «луковую» защиту. (Великобритания), приславшему Совет этого месяца. весь мир. Важно то, что при использовании Firefox вместе с Tor, Ура Робу! [email protected]

Март 2008 Linux Format 49 Первые шаги Советы для тех, кто только начинает знакомится с Linux Первые шаги: Вернись, винил: Энди Ченнел принялся за перенос своей коллекции пластинок на компьютер...

узыкальную жизнь большинства людей старше 30 можно поделить на две части: до и после CD. Эта точка, где-то с М середины до конца 80-х, отмечает момент, когда мы пере- стали покупать музыку на больших черных пластинках в художествен- ных конвертах, которые потом украшали стены в комнатах подростков, и начали приобретать небольшие серебристые диски, снабженные скучными «буклетами» и предлагавшими 72 минуты музыки (отсюда термин «заполнитель» [filler]). Многие решили, что это идеальная воз- можность продублировать свою фонотеку на указанных дисках и слу- шать ее на небольших Hi-Fi системах. Но другие сочли надувательством трату денег на то, что у них уже есть, а некоторые не нашли на CD ту музыку, которую собирали несколько лет. Переход на музыкальные файлы типа MP3 и OGG для пользователей CD был менее болезнен- ным, но фанатам винила вновь предлагалось заплатить за свою музыку повторно, чтобы проигрывать ее на своих компьютерах, iPod’ах и т.д. Есть решение получше, чем заново оплачивать свою же собствен- ность, и для этого не нужно дорогого оборудования. Однако потребует- ся проигрыватель пластинок, звуковая карта и кабель, чтобы соединить их вместе. Большинство бытовых проигрывателей имеют фоно-гнездо для подключения наушников [оно напоминает старый разъем PS/2 для подключения клавиатуры, то есть для штекера с пятью штырьками- контактами, окруженных жестким экраном, – прим. пер.], а у большин- ства звуковых карт – гнездо мини-джек, поэтому, возможно, потребу-

Интерфейс Audacity Наш эксперт Управление перемещением Эти большие кнопки управляют Энди Чэннел воспроизведением, записью Энди делает свои и навигацией по аудиофайлу. первые шаги в Linux Слева направо: пауза, уже шесть лет, воспроизведение, остановка, а технологиями перейти в начало, интересуется со перейти в конец, запись. времен Dragon 32. Вторая панель инструментов Содержит кнопки Вырезать, Копировать и Вставить, а также ползунок увеличения/ уменьшения скорости воспроизведения.

Окно редактирования Его вид зависит от выбранного инструмента. Слева от осцилло- граммы (голубой линии с загогулинами) находятся Основная панель Мониторы Микшеры опции трека, включая громкость, инструментов Раздел монитора дает Управляют начальным и конечным прокрутку и кнопку отключить/соло Здесь находятся самые важные визуальное представление уровнем громкости ваших треков – они в основном используются при инструменты для манипулирова- громкости при записи и выбором источника. работе с многотрековым проектом. ния выделенной областью трека. или воспроизведении.

Месяц назад Really Simple Syndication стала еще проще: мы разобрались с RSS.

50 Linux Format Март 2008 Первые шаги Учебник с винила в MP3

ется еще и переходник фоно/мини-джек (его можно купить в любом Audacity настроен магазине электроники). Требования к ПО и того меньше, поскольку мы на автоматическую будем использовать прекрасную программу с открытым кодом Audacity. проверку наиболее Перенос с винила может оказаться дольше, чем с CD, поскольку запись распространенных идет в реальном времени, но зато не исключено, что, занимаясь этим, местоположений файлов. вы заново откроете для себя множество чудесных треков. Настройте себе ПО Вероятно, Audacity – лучший свободный пакет для редактирования зву- ка, пригодный для любой платформы; он доступен в двоичном виде для различных дистрибутивов Linux, а также для OS X и Windows. На сайте Audacity (http://audacity.sourceforge.net) имеются двоичные фай- лы и последней стабильной версии, и версии в разработке; в большин- стве случаев, установка – это просто загрузка, распаковка и помеще- ние файлов в каталог. Скорее всего, вы также найдете эту программу менеджере пакетов вашего дистрибутива или LAME, или LAME_ENC. в своем менеджере пакетов, если захотите использовать версию, опти- В дистрибутивах на базе Ubuntu потребуется запустить Synaptic, а мизированную под ваш дистрибутив. В данный момент стабильная затем перейти в Settings > Repositories [Настройки > Репозитории] и версия – 1.2.6, но более продвинутые могут попробовать версию в выбрать опцию с названием Software restricted by legal or copyright разработке, 1.3.4. Наш урок не зависит от выбора версии, поскольку issues (multiverse) [ПО с правовыми или авторскими ограничениями основные инструменты с тех пор не менялись. Однако мы воспользу- (multiverse)]. Вернитесь к основному окну поиска, введите «LAME», а емся стабильной версией программы, и рекомендовали бы вам сделать затем отыщите lame и liblame0 и поставьте напротив них галочку для то же, если вы хотите идти проверенным путем. установки. Нажмите кнопку Применить, и пусть APT поколдует. Теперь Поскольку окончательные файлы мы будем сохранять в форма- закройте Synaptic, откройте Audacity и выполните Правка > Настройки те МР3, нам, возможно, потребуется кое-что настроить перед тем, еще раз. В разделе Настройка экспорта в MP3, нажмите кнопку Найти как засучить рукава и взяться за работу. Первое, что следует прове- библиотеку, а на запрос, желаете ли вы поискать (совместно использу- рить – установлен ли у вас MP3-кодер Lame, и если нет, то добавить емый) файл libmp3lame.so, ответьте Да. Наконец, добавьте «.0» к име- его. Чтобы выполнить первое, запустите Audacity, а затем выполните ни файла, прокликайте сквозь различные предупреждения и закройте Правка > Настроить и посмотрите на вкладке Форматы. Внизу в раз- диалоговое окно. Теперь, когда из Audacity можно экспортировать деле Настройка экспорта в MP3, нажмите кнопку Найти библиотеку и файлы MP3, мы готовы начать перенос. Однако если вы используе- поищите libmp3lame.so или libmp3lame.so.0. Другой способ – открыть те Audacity в Ubuntu, вам придется преодолеть еще одно препятствие. ваш файловый менеджер и посмотреть /usr/local/lib/libmp3lame.so или Для открытого файла, выберите File > Export [Файл > Экспорт]. Если /usr/lib/libmp3lame.so. вы щелкнете на кнопке Options [Опции], то увидите, что для MP3- Если, используя оба метода, вы ничего не нашли, придется устано- кодирования опций нет; поэтому нажмите небольшую стрелку рядом с вить Lame самостоятельно – Audacity не поставляется с кодеком из-за Browse For Other Folders [Обзор других папок] и в выпадающем списке патентов на формат МР3. Простейший способ установки – поискать в

Если вы хотите переводить файлы в MP3 для вашего iPod, надо установить Lame (другие устройства-проигрыватели также доступны). Путь к настройкам MP3 в Ubuntu немного извилист.

Март 2008 Linux Format 51 Учебник Первые шаги

справа внизу выберите MP3, затем нажмите кнопку Options [Опции]. Теперь там должно быть все. На уровне Перенос – это не просто нажатие кнопок, ведь музыка на этих больших черных пластинках не цифровая (см. внизу справа врезку Аналоговый против цифрового). Первый шаг к хорошим записям – это подключе- ние проигрывателя к нужному гнезду и корректный выбор «уровней». Звуковое оборудование обычно выдает линейный уровень сигнала; его требуется подключить в гнездо Line In вашей звуковой карты. Если вы направите выход вашего проигрывателя на микрофонный (Mic) вход, сигнал будет так усилен, что вы услышите лишь дикий шум. Перегрузка при аналоговой записи иногда приводит к довольно приятному шуму, Первые два всплеска на осциллограмме – это треск и щелчок от благодаря теплому колориту искажений, вносимых при записи; некачественного (или поцарапанного) винилового диска. но перегрузка при цифровой записи создает скрежет, способный понравиться разве что Лу Риду [Lou Reed – вокалист группы The Velvet Underground, считающейся родоначальником авангарда, панк, нойз- разбить его мы сможем потом. Но на старой машине лучше переносить рока и т.д. В своих композициях парни часто экспериментировали со каждую песню отдельно. Тогда дождитесь завершения трека, нажмите звуком, который у них получался сложным, необработанным, неприят- кнопку Стоп, а затем выполните Файл > Сохранить проект как и запи- ным, – прим. пер.]. Проверьте уровни, убедитесь, что выбран правиль- шите звук на жесткий диск. Теперь выполните Файл > Закрыть, чтобы ный вход в выпадающем списке справа от всех ползунков, и опускайте закрыть текущий файл, затем нажмите кнопку Записать вновь, поме- иглу звукоснимателя. Звук пойдет в компьютер, но вы ничего не услы- стите иглу на запись и обработайте второй трек. Это немного нудно, но шите. Щелкните на стрелочке рядом с иконкой микрофона под линей- в итоге окупится. Обработав сторону 1, сохраните файл, переверните кой и выберите пункт Мониторинг входа; теперь вы должны услышать диск и займитесь стороной 2. дивное звучание вашего винила на компьютере. Вы также увидите, что Итак, мы имеем вариант альбома на двух отдельных треках, сохра- индикаторы затряслись и заплясали. Индикаторы – это важно: следите ненных в виде больших файлов .aup, но нам-то нужна коллекция MP3, за ними, чтобы убедиться, что самая длинная полоса не стала красной, которую можно воспроизвести при помощи или Amarok. поскольку это выльется в щелчки на вашем треке. Желательно, чтобы Откройте сторону 1. Неплохо будет прослушать пару мест, чтобы на протяжении всего трека они имели в основном темно-зеленый или убедиться, что вы получили нормальную запись, перед тем, как тратить время на ее улучшение. Для этого воспользуй- тесь полосой прокрутки в нижней части экрана, «Одно из преимуществ хранения для навигации по трекам; используя инстру- музыки в цифровом формате – мент выделения, щелкните где-нибудь на треке и нажмите кнопку Воспроизвести. Воспроизведение возможность добавки метаданных.» начнется с того места, где вы щелкнули. Поищите области высокой и низкой громкости, соответ- синеватый цвет. Если цвет индикатора постоянно красный или светло- ствующие очень широкой и очень узкой полосам волновой формы, и зеленый, придется отрегулировать сигнал, убавив громкость проигры- воспроизведите их, чтобы проверить уровни. Увеличьте отображение вателя. Будьте осторожны: большинство старых записей для хорошего волнового профиля при помощи инструментов масштабирования; звучания были микшированы, обычно без намерения охватить все эле- делайте это до тех пор, пока не распознаете на экране отдельные тре- менты гармонического спектра, так что ждите множества пиков и впа- ки – на их концах будет несколько секунд относительной тишины на дин в записи. Постарайтесь найти самое громкое место альбома или форме. Но будьте осторожны, не ошибитесь: лучше перепроверить. Подсвечиванием песни и убедитесь, что оно не вызывает красного свечения. Выбрав инструмент выделения, щелкните мышью в начале трека и выборки в файле Теперь мы готовы начать перенос; подключите приличные колон- перенесите курсор в конец, подсвечивая волновую форму по мере обеспечивается ки или наушники, нажмите кнопку Записать на панели перемещения движения. Теперь выполните Файл > Экспортировать выделенное..., а применение любых изменений только и опустите иголку. Наслаждайтесь. Если в вашем компьютере хватит затем, если у вас достаточно места, сохраните файл в виде WAV, или к этому куску. памяти, разумно будет записать одну сторону альбома как один трек – в виде MP3, если места мало. Причина выбора формата WAV в том, что позднее мы вернемся к этому треку с целью его обработки, а WAV сохраняет без потерь, и качество конечного MP3 будет выше. Сделайте

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

52 Linux Format Март 2008 Первые шаги Учебник

это для каждого трека обеих сторон альбома; по завершении, удалите исходные записи. После 15 лет прослушивания CD шум, исходящий от виниловых записей, способен вызвать шок, так что следующим этапом процесса является некоторая их очистка, путем работы с каждым треком. Итак, выполните Файл > Открыть и укажите первый трек вашего альбома. Первое, что следует сделать – это отсечь начало и конец трека, что- бы убрать звук иглы, задевающей царапины пластинки. При помощи инструмента выделения пройдитесь от начала файла к месту начала музыки, выберите Создать > Silence и нажмите кнопку OK. Бывшая шумовая секция заменится моментом тишины в стиле Джона Кейджа [John Cage]. Проделайте то же самое и в конце песни. Ели в конце песни звук затухает постепенно, или она заканчивается длительной нотой, то определение, где этот конец, будет проблемой; поэтому создадим затухание до полной тишины. Выделите последние несколько секунд песни (или больше, если у нее действительно долгое затухание), затем выберите Эффекты > Плавное затухание и нажмите кнопку OK. Вы обнаружите, что волновая форма изменилась, и в конце трека у вас тишина. Теперь мы готовы перегнать первый трек в MP3. Выберите Файл > Как и для Тут вы можете решить, что пустые интервалы в начале и конце трека Экспортировать (в ранних версиях Audacity было Файл > Экспортировать большинства вам ни к чему. От них можно избавиться, выделив ненужные области и в MP3). Как указывалось ранее, может потребоваться выполнить компьютерных нажав клавишу Delete. Помните, однако, что пара секунд между сосед- Browse For Other Folders [Просмотреть другие каталоги], чтобы подклю- штучек, большие значения означают ними треками позволяет переключить эмоции, так что оставьте для чить опцию экспорта в MP3, но если это сделано, жмите кнопку Опции лучшее качество. этой цели по секунде в начале и конце. для настройки формата. Здесь множество опций, но обычно достаточ- Если вы переносите запись с кассеты, вам, возможно, пригодится но помнить, что большие числа в настройках качества [Quality] (исчис- опция Эффекты > Удаление шума (для которого понадобится записать ляющихся в килобитах в секунду) приводят к лучшему качеству файлов несколько секунд шипения в начале ленты), но мы оставим треки таки- и их большему размеру. Большинство людей производят конвертиро- ми, какими они слышны. Можете, конечно, обработать всю вашу кол- вание при 128 или 256 kbps, и стоит помнить, что хоть и можно снизить лекцию – тогда изучите Нормализацию, Компрессор, Удаление щелчков битрейт файла – например, если вы хотите вместить побольше компо- и треска и Усиление сигнала, расположенные в меню Эффекты; но зиций на небольшой MP3-проигрыватель – но увеличение со 128 kbps помните, что по неосторожности можно существенно исказить звуча- до 256 ничего не придаст музыке. Вы можете даже решить сделать ние музыки. мастер-запись ваших треков без сжатия (например, как WAV-файлы) чтобы сохранить резервные копии, затем перекодировать в MP3 для Готовы к выводу воспроизведения на переносном устройстве или вашем компьютере. Одним из преимуществ хранения музыки в цифровом формате явля- Удовлетворившись настройками, задайте имя файла, нажмите кнопку ется возможность добавить метаданные: это намного упрощает управ- OK и созерцайте, как на ваш диск кодируется MP3, готовый для добав- ление большими фонотеками. Для добавления этой информации ления в Amarok или какой-то другой аудиопроигрыватель. выполните Файл > Открыть редактор метаданных [File > Open Перенос солидной коллекции записей на ваш компьютер – тяжкий Editor] и впишите столько сведений, сколько считаете нужным. Чаще труд; но большинство людей отнесутся к этому, как и к самой музыке, всего это имя артиста и название песни, но, как обычно, чем больше с любовью. Посмотрим правде в глаза: если вам неохота слушать эти данных вы предоставите, тем легче будет потом ее найти. По заверше- вещи, незачем было покупать их с самого начала. Просто будьте гото- нии, нажмите кнопку Готово [Done] для закрытия диалогового окна и вы осознать, что сингл Тони Бэйзила [Toni Basil], который вы урвали возврата к музыке. Информация останется в вашем треке до тех пор, в горячке 1982-го, вообще-то является, вероятно, худшей записью за пока вы сохраняете его в формате, способном ее помнить, поэтому всю историю цивилизации. Нам легко так говорить: мы эту запись не MP3 или OGG вполне подойдут; но в большинстве WAV-файлов она покупали, нам ее подарили. Честно. LXF будет утрачена.

Аналоговый против цифрового

В стародавние времена вся музыка была анало- набор дискретных значений. Музыка на CD, говой, то есть она была записана, а затем например, состоит из 44100 значений на одну зашифрована на ленте или виниле в виде секунду; это запись на 44,1 КГц. Как и для гра- непрерывного потока информации. Если бы вы фики, эти значения могут иметь разную раз- взглянули на звук в осциллограф – прибор, поз- рядность – для CD это 16 бит, но профессио- воляющий визуализировать его – то увидели бы нальная звукозапись дошла уже до 24 или серию кривых, которые становились бы шире 32 бит. Чем больше разрядность и частота дис- при большей громкости и уже в тихих местах. кретизации, тем ближе цифровая запись к При оцифровке звука он преобразуется в исходной аналоговой. Добавление метаданных (например, имени артиста) к песням упрощает управление большой фонотекой.

Через месяц Мы создадим и отредактируем фото-галерею в web, используя F-Spot.

Март 2008 Linux Format 53 УчебникФотография: Фото в Linux Программы, советы и технологии цифровой фотографии Фотография: ЧАСТЬ 2: Менеджеры фотоальбомов – Дэйл Стрикланд-Кларк дает обзор лучшего ПО для архивирования, сопровождения и поиска цифровых изображений.

прошлый раз мы занимались способами передачи изображе- ний на компьютер. Мы выяснили, что современные камеры Вмогут работать как обычные USB-накопители, что весьма упро- щает процесс копирования снимков с фотоаппарата на жесткий диск. В этом месяце, чуть отклонившись от плана, мы рассмотрим популяр- ные менеджеры альбомов, работающие в Linux, и решим, нужны ли Наш они нам. эксперт Протокол передачи изображений Дэйл Перед тем как начать, обсудим еще один способ сохранения изоб- Стрикланд- ражений, не затронутый месяц назад: Picture Transfer Protocol (PTP, Кларк зарабатывает Протокол передачи изображений). PTP обычно поддерживается стары- на жизнь как IT- ми цифровыми камерами, но некоторые из современных камер вклю- консультант чают его наряду с режимом USB-носителя, потому что он допускает и фотограф. кое-какое управление с ПК. PTP поддерживается в Linux благодаря Последние пять пакету gphoto2, который вам необходимо установить перед исполь- лет для обработки своих зованием (например, в SUSE: sudo zypper install gphoto; или в Ubuntu: изображений sudo apt-get install gphoto2). он использует После установки команда gphoto2 станет доступна, и для нача- исключительно ла необходимо подключить камеру и посмотреть, обнаружит ли ее Linux. gphoto2. gphoto2 --auto-detect Сайт gphoto.org предоставит вам уйму информации об этой Если название вашей камеры будет в выведенном списке, посмот- многосторонней утилите. рите при помощи параметра abilities, что она умеет делать: gphoto2 --abilities опция периодической съемки с настройкой интервала между кадрами, Эта команда выведет список поддерживаемых вашей камерой полезная при наблюдениях за природой или в режиме слежения. операций. Съемка подключенной к ПК камерой принята на вооружение некото- Основные операции, вроде передачи файлов из памяти камеры, рыми профессиональными фотографами в студийных сессиях, потому поддерживаются посредством опций типа --get-file и --get-all-files, но что позволяет немедленно просматривать снимки на большом экране могут быть доступны и дополнительные опции. Можно поэкспери- ПК, где легче обнаружить и исправить мелкие детали. Можно написать Album Shaper ментировать с такими интересными функциями, как --capture-image, скрипт для команды съемки и обновлять web-сайт снимками ситуации выглядит хорошо, заставляющая камеру немедленно сделать снимок и вернуть изобра- на дороге, а кому повезет – погоды на курортном побережье. но функциональность жение, и --capture-tethered, которая, прежде чем сделать снимок и PTP за последние годы утратил популярность из-за перехода изго- его ограничена. передать его в ПК, ждет срабатывания затвора камеры. Имеется также товителей на режим USB-носителя, но недавние события показывают, что есть еще порох в пороховницах. Новые расширения протокола позволяют передавать изображения и управлять камерой в беспровод- ной сети. Это приводит к возможности беспроводной съемки с привяз- кой. Попытайтесь объяснить эту, на первый взгляд – противоречивую, концепцию кому-нибудь! Если вы счастливый обладатель одной из камер, использующих PTP/IP, вам будет приятно узнать, что gphoto2 уже поддерживает это. Для gphoto имеется графическая оболочка под названием gtkam, но благодаря библиотеке libgphoto, поддержка базо- вой передачи изображений включена также и во многие менеджеры коллекций. Файловый менеджер KDE, Konqueror, также поддерживает PTP посредством kioslave (механизм KDE для отображения различных внешних медиаустройств в виде файлов). Менеджеры коллекций Месяц назад мы кратко описали способы организации ваших циф- ровых изображений и предложили возможную структуру каталогов. Теперь рассмотрим менеджеры коллекций детально. Грубо говоря,

Фото в Linux Есть предложения по урокам обработки изображений? Дайте нам знать!

54 Linux Format Март 2008 Фото в Linux Учебник студия в Linux

имеется два подхода к управлению библиотекой фотографий: с помо- щью стандартных инструментов файл-менеджмента – или при помощи Он еще придет... специализированных программных пакетов. Естественно, оба подхода можно совместить. Несомненно, по мере роста ваших запросов, вы Этот номер я хотел посвятить обзору редакто- сия, которую я ждал, не успела выйти (в этом не обойдетесь без целого набора средств, но чтобы все было хорошо, ров изображений и пообещал новости о редак- месяце), и появилась после завершения ста- ваш основной менеджер коллекций должен удовлетворять следующим торе LightZone, который собирался обсудить. тьи; мы займемся им через месяц – надеюсь! простым правилам. Его возрожденная и обновленная Linux-вер-

1 Никогда не изменять исходное изображение. Это важно. В сущ- ности, как только вы удалите явный брак после загрузки новых изоб- ражений, неплохо будет исключить доступ к ним на запись, чтобы ет никакой активности в разработке, вряд ли это хороший выбор для избежать случайностей. Данное правило имеет лишь пару второсте- общего управления коллекцией. пенных исключений. Первое – добавление ключевых слов, или тэгов. Некоторые форматы изображений, включая JPEG, позволяют хранить F-Spot (0.4.0) эту метаинформацию вместе с изображением, облегчая их поиск. Этот менеджер коллекций для Gnome имеет минималистский интер- Наличие тэгов не влияет на вид изображения. Другое исключение – фейс пользователя с очень малым набором опций настройки под лич- вращение изображения. Если ваше изображение неверно ориентиро- ные нужды. При импорте ваших фотографий он предоставит выбор: вано, перед удалением прав на запись необходимо произвести кор- скопировать их в выбранное вами место или оставить там, где они рекцию. Имеются правильный и неправильный способы это сделать; находятся – это хорошее начало. Однако после загрузки изображений далее мы их рассмотрим. логика теряется. Этот инструмент разрабатывается в фирме, веря- 2 Работать с выбранной мною структурой каталогов: не переносите щей, что изображение говорит само за себя. Исходное имя файла и не копируйте изображения без необходимости. Некоторые менед- не отображается, пока вы не измените его; не показан ни исходный жеры коллекций собирают все изображения в указанных вами ката- путь, ни комментарии, которые вы могли прикрепить к изображению. логах изображений или пытаются навязать другую структуру вашей Единственный кусочек текста, отображаемый с картинкой – дата ее коллекции. К сожалению, классификация выполняется не идеально, создания. Не похоже, что кто-то рвется исправить этот недостаток, что усложняет работу с внешними хранилищами и затрудняет – или поскольку на вопрос об отсутствии имен файлов один из разработчи- вообще отменяет – использование других инструментов. К тому же, ков ответил: «имена файлов в фотографии бессмысленны». Гм. Он, если исходные и преобразованные изображения хранятся вместе, это небось, все еще снимает на пленку. осложняет их резервное копирование обычным способом. Группировка изображений производится при помощи тэгов, упоря- Скупой интерфейс 3 Не изменять имена изображений. Номер изображения, данный ему доченных в некую иерархию: например, у вас может быть тэг Живая пользователя камерой – полезная, уникальная ссылка, и вы можете использовать его природа, а внутри него тэги Лошади и Птицы. Если вы выберете тэг и отсутствие для определения происхождения изображений. Изменение имен изоб- Живая природа, то получите и Лошадей, и Птиц. информации ражений крайне неполезно. Отдельно от редактора имеется просмотрщик изображений, а так- в просмотрщике 4 Хорошо масштабироваться. Ваша коллекция изображений обяза- же слайд-шоу, запускающееся в полноэкранном режиме. Большая изображений тельно будет расти. Менеджер коллекций должен справляться с этим проблема F-Spot – отсутствие структуры в хранилище, куда попадают не украшают F-Spot. ростом, и не зависать при обращении к разбухшей коллекции. Данную способность довольно трудно определить при беглом осмотре функ- ций, и это известная проблема некоторых коммерческих пакетов. 5 Уметь отображать миниатюры всех графических форматов, с которыми вы хотите работать, в режиме браузера изображений.

Основная работа менеджера коллекций – помочь найти изобра- жение, какой бы способ поиска вы ни выбрали. Хороший менеджер коллекций при этом ведет себя скромно, не путаясь под ногами. К счастью, в Linux мы не страдаем от отсутствия выбора. Мы рассмотрим плюсы и минусы наиболее популярных вариантов. Некоторые из них предоставляют функции редактирования изображений – это нам пока не интересно, а некоторые имеют просмотрщики изображений – вещь полезная, но просмотрщиков изображений и так полно, в основном потому, что создание такового – популярное упражнение для людей, изучающих программирование. Album Shaper (2.1) Это симпатичный менеджер коллекций нарушает наши правила: он копирует фотографии в свою собственную структуру каталогов и пере- именовывает их. К тому же он распознает мало графических форматов и не умеет читать RAW-файлы. Поскольку с 2005 года он не проявля-

Март 2008 Linux Format 55 Учебник Фото в Linux

все ваши изображения. Начальное местоположение не пропадает, но и не помогает организации ваших изображений. digiKam (0.9.2) Скорая digiKam основан на KDE и, как большинство KDE-приложений, битком помощь набит опциями настройки. Но этот, в остальном толковый, менеджер коллекций нарушает наше второе правило: он копирует все ваши изоб- ражения в собственную структуру каталогов, которую он называет кор- IPTC-тэги Запомните: невым альбомом. Впрочем, так будет не всегда. Уже достаточно далеко International Press зашла работа над версией 1.0, которая предоставляет несколько кор- Telecommunica- невых альбомов, хотя релиз основан на KDE4 и планируется не ранее tions Council середины 2008. Это не единственная проблема. С опасной легкостью [Международный можно изменить исходное изображение, поэтому до работы с альбо- Совет по Прессе и Телекоммуника- мом обязательно делать его резервную копию. циям] – это орган, Отвлекаясь от этих двух недостатков, digiKam чрезвычайно много- представляющий сторонен и богат. Как и F-Spot, он поддерживает иерархические тэги, основные ново- и он один из немногих менеджеров, способных к чтению и редактиро- стные агентства мира и, среди про- ванию метаданных изображений, типа EXIF- и IPTC-тэгов (см. Скорую чего, разрабатыва- помощь слева) – хотя доступ к ним мог бы быть и полегче. Как и F-Spot, Настраиваемый уровень детализации и интуитивный интерфейс ющий стандарты digiKam имеет отдельный редактор, просмотрщик и полноэкранное скоро выведут digiKam в серьезные претенденты на звание для упрощения слайд-шоу. На данный момент, digiKam к использованию не рекомен- идеального менеджера коллекций. обмена новостями. дуется, но следует серьезно присмотреться к выходящей версии 1.0. Тэги IPTC – это специальные набо- изображение не трогает – если его специально не попросить. При отоб- ры меток, вклю- Picasa (для Linux 2.7) ражении в Picasa, преобразования происходят мгновенно, а вы и не ченные в различ- Picasa не является открытой, но предлагается для бесплатной загрузки подозреваете о фоновой деятельности. Если вы хотите создать копию, ные типы изобра- с Google. В отличие от прочих рассмотренных здесь программ, это не включающую все изменения, можете сохранить их или экспортировать жений, что помога- ет классифициро- родное приложение Linux, и запускается как приложение Windows под изображение в другой каталог. вать и искать Wine. Но если глубоко не копать, то это не слишком заметно. Picasa сейчас не лишена недостатков, но все они касаются только снимки. Они также Первое, что вы отметите – элегантный интерфейс пользователя. удобства использования и второстепенны. Главное, она не нарушает ни могут включать Элементы не появляются: они разрастаются до видимых размеров, а одного из наших правил, а значит, это хороший выбор. информацию о при отмене уменьшаются до исчезновения; либо приобретают яркость правообладании. или выцветают. При первом запуске у вас запрашивается каталог с kPhotoAlbum (3.0) изображениями для сканирования. По завершении сканирования вы Это приложение KDE уровня предприятия относит себя не столько к при- можете воспользоваться Folder Manager [Менеджером каталогов] для ятным в использовании, сколько к просто работающим. Разработчики добавления других директорий. Каталоги будут просканированы на явно осознают, что пользоваться им не так-то просто, раз они нашпи- своем месте, но не скопированы. говали его всплывающими окнами, уговаривающими вас немедля про- Сканирование довольно быстрое и запускается как фоновый про- честь руководство пользователя. И они правы: чтобы освоиться здесь, цесс, и в это время можно работать с уже сосканированными изоб- требуется немного больше времени, чем для остальных рассматривае- ражениями. Поддерживаются самые разные графические форматы, мых нами менеджеров коллекций. При первом запуске потребуется ука- включая RAW; имеется также элементарная поддержка IPTC-тэгов. зать корневой каталог вашего альбома, и вновь мы ограничены только При элегантном Picasa позволяет подключать каталоги двумя способами: Сканировать одним. Потом возникает вопрос, как загружать в него изображения. Это интерфейсе и умении один раз и Постоянное сканирование. Во втором случае изменения оказывается легче, чем казалось, потому что kPhotoAlbum ничего никуда работать с любой в каталогах отслеживаются и тут же отображаются миниатюрами. не копирует: в каталог альбома картинки придется копировать самим. структурой Предусмотрен отдельный просмотрщик, показывающий ленту мини- Приложение в основном посвящено каталогизированию и индек- каталогов, Picasa – атюр: на ней можно щелкать, просматривая изображения не подряд. сированию картинок. Можно присоединять к изображению или группе весьма удобный Интересно, что просмотрщик – заодно и редактор, причем изменения изображений метки, даты, описания, ключевые слова и имена людей менеджер коллекций. он сохраняет в виде последовательности преобразований, а исходное или мест. По окончании каталогизирования вы сможете искать и про- сматривать файлы и копаться в них при помощи браузера. Оно чрезвы- чайно многогранно и по сути ограничено лишь тем, насколько деталь- ными вы хотите видеть свои аннотации. Это чистый менеджер коллекций, действительно облегчающий поиск. В нем нет редактора изображений, но зато предлагается быст- рый доступ к любому установленному у вас, через контекстное меню. Имеется просмотрщик с удобными горячими клавишами для быстрого вращения и масштабирования. А вот расширяемость остается проблемой. Все текстовые данные изображения хранятся в отдельном XML-файле. В большой коллек- ции с тысячами изображений и широким использованием описаний и ключевых слов, этот индексный файл непомерно разрастается и обра- батывается медленно. Предполагается поддержка внешней SQL-базы данных, но в нашей версии она была недоступна. Поддержка нашего формата Pentax RAW также отсутствовала, но она несомненно будет возвращена в релизе 3.1, который уже доступен для загрузки. В общем, если вы сумеете изучить его, то kPhotoAlbum – хороший кандидат, лишь слегка отягощенный единственностью корневого аль- бома и примитивным интерфейсом пользователя.

56 Linux Format Март 2008 Фото в Linux Учебник

Без менеджера альбомов: imgSeek Встроенные Konqueror или Nautilus Если поиск по ключевым словам или заметкам не работает, почему инструменты Нужен ли вам менеджер коллекций кроме и свыше вашего обычно- бы не поискать по подобию. ImgSeek – интересная программа, поз- Konqueror означают, го файлового менеджера? Файловые менеджеры KDE и Gnome пре- воляющая искать картинки, похожие друг на друга; а можно задать что вы всегда доставляют все базовые инструменты для преобразования катало- ей набросок, и она начнет поиск соответствующих ему изображений. можете просмотреть гов в альбомы, и к тому же отображают миниатюры для большин- Ее чрезвычайно легко настроить и запустить, и единожды проскани- изображения, ства типов изображений. Оба они легко настраиваемы (Konqueror – ровав вашу коллекцию изображений, поиск она выполняет момен- не выходя из него. в большей степени) и приспособляются под ваши нужды. тально. Результаты иногда бывают неожиданными, но моя довольно Настройки менеджеров файлов чрезвычайно гибки, и вы може- жалкая попытка нарисовать лошадь добыла мне изображение, как те привязать файлы к приложениям обработки изображений, соот- видно на рисунке. LXF ветствующим типу изображения. Затем ваши приложения станут быстро доступны в меню Открыть с помощью при правом щелчке на изображении. Одной из проблем ПО с открытым кодом являет- ся эфемерная природа некоторых проектов. Кому захочется пот- ратить уйму времени, сортируя и документируя свои изображе- ния, лишь затем, чтобы обнаружить, что обзавелись миловидным образчиком заброшенного ПО? Большие и более стабильные про- екты подвержены этой участи в меньшей степени, но все равно не дают полной уверенности. Один из способов самозащиты – избе- гать хранения своих данных в форматах, не имеющих широкой поддержки. Например, уж лучше использовать тэги IPTC, чем тэги какого-нибудь F-Spot. Или создавайте небольшие текстовые файлы для классификации каждого изображения: например, imgp1234.jpg сопроводите текстовым файлом с именем imgp1234.txt, содержа- щим заметки и ключевые слова. Тогда вы сможете использовать Beagle или grep для поиска изображений. Как я сказал в начале, если выбранный вами менеджер альбо- мов не реорганизует ваши файлы, ничто не мешает вам одновре- менно использовать другие подходы для создания комбинации, соответствущей вашим пожеланиям. Можно даже использовать разные менеджеры альбомов для одного и того же корневого Инструменты вроде imgSeek поначалу кажутся излишеством, альбома. но при использовании могут дать прекрасный результат.

Через месяц Рассмотрим редактирование и улучшение изображений.

Март 2008 Linux Format 57 УчебникУчебник Ardour 2.1Профессиональная запись музыки с Ardour 2.1 Ardour: на ЧАСТЬ 2: Дэниел Джеймс покажет, как добавить дорожек в сессию Ardour, опишет режимы редактирования и экспортирует целую песню.

С помощью маркеров на шкале Tempo выберите любой темп – от почти бесшумного эмбиент до самого бешеного габба. [Эмбиент – тихая обволакивающая музыка без определённого ритма, отдаленных голосов, ревербераций и др. Габба – самая тяжелая форма hardcore techno, часто ритм превышает 200 ударов в минуту, – прим. пер.]

а прошлом уроке мы рассмотрели установку Ardour и Click. Нажмите на нее, и кнопка позеленеет, показав, что режим click настройку JACK, и записали нашу первую дорожку. В рок- track включен. Теперь нажмите кнопку Rewind (самая дальняя слева Нсессии это обычно ударные, и все остальные дорожки мож- из кнопок подачи) и затем кнопку Play. Вы должны услышать наи- но синхронизовать с ними. Это значит, что ударника можно услать грыш из щелчков 4/4 (высокий, низкий, низкий, низкий), как будто за пивом, а остальные участники группы могут обсудить вопрос о ребенок играет на ксилофоне. лишении его (или ее) гонорара. Если вы решите вовсе обойтись без По умолчанию проигрывается 120 ударов в минуту. Чтобы изме- Наш ударных (настоящих или электронных), в Ardour есть удобная функ- нить этот параметр, обратите внимание на шкалы Meter и Tempo, эксперт ция click track, с помощью которой можно синхронизировать дорож- расположенные над кнопками управления отдельными дорожками в Дэниел Джеймс ки. Запустите JACK с помощью QjackCtl, затем загрузите Ardour и левой части редактора. Рядом с ними – маленькие красные маркеры. один из откройте предыдущую сессию. В правом верхнем углу редактора вы Кликните правой кнопкой мыши на маркере Tempo и выберите Edit. разработчиков увидите группу из шести кнопок, где правой нижней будет кнопка Обратите внимание, что после изменения темпа и нажатия кнопки дистрибутива Apply изменяется не только положение маркера. Числа на шкале Bars: 64 Studio, давно Beats и соответствующие бледные вертикальные линии в окне редак- пользуется Ardour для записи музыки. тора перемещаются вперед в соответствии с новым значением. Это Главное, не давать происходит потому, что маркеры темпа не просто управляют опцией ему петь на публике. click track – они задают отсчет времени для всей сессии. То же относится и к настройке музыкального размера (meter); впрочем, для большинства рок-композиций вполне подходит 4/4. Если вы используете другой ритм, может быть, играете прогрессив- ный джаз-рок-фьюжн – будьте внимательны. Не обязательно играть в одном и том же темпе или ритме в течение всей сессии; просто кликните правой кнопкой мыши на соответствующей горизонтальной полоске под шкалой времени в точке, где нужно поместить новый При включении маркер, и выберите New Tempo. Снова нажмите на кнопку Play и про- режима ‘click track’ слушайте изменения в ритме в момент пересечения курсором каж- кнопка Click дого маркера. подсвечивается. Конечно, щелчки click track не должны быть слышны в оконча-

Месяц назад Введение в Ardour – мы зажигали рок под Open Source.

58 Linux Format Март 2008 Ardour 2.1 Учебник верной дорожке!

называется vkeybd). Если она не установлена, загрузить ее можно Скорая с сайта http://www.alsaproject.org/~tiwai/alsa.html – в дистрибутивах, помощь основанных на Debian, достаточно установить пакет vkeybd. Итак, настоящая или виртуальная фортепианная клавиатура и Подумайте, на ка- синтезатор подключены. Вернитесь к QjackCtl и взгляните на окно ком оборудовании Connect. В нем две вкладки – Audio и MIDI. Если JACK уже запущен будут прослуши- (а он запущен, раз открыт Ardour), выходы amSynth автоматически ваться ваши запи- подсоединятся к портам JACK звуковой карты. В случае внешней си – в зависимости от того, будут ли фортепианной клавиатуры на вкладке MIDI будет нужно соединить это небольшие соответствующий порт звуковой карты с amSynth. ПК-колонки Теперь вернитесь в Ardour и выберите Session > Add Track/Bus, для MP3 или Ogg чтобы добавить новую дорожку. По умолчанию (если дорожка с удар- или специальные ными уже имеется) она будет названа Audio 2. Нажмите на кнопку стереосистемы, сводить запись записи дорожки (маленький красный круг справа от названия дорож- можно по-разному. ки), и место вокруг нее порозовеет в знак активации. В QjackCtl нуж- Подробности по но соединить выходы amSynth со входами дорожки Audio 2 в Ardour, адресу http://tinyurl. иначе ничего не запишется. Обратите внимание, что при щелчке по com/26d9la. Теперь amSynth подключен к дорожке Audio 2 в Ardour. порту с одной стороны окна Connect, цвет шрифта текущего подклю- ченного порта с другой стороны всегда изменяется на синий. тельной записи. Обычно во время записи музыканты слушают этот Переключитесь на amSynth и активизируйте окно с виртуальной ритм в наушниках, и Ardour предоставляет для этого отдельный порт клавиатурой, на которой теперь можно кое-что сыграть. В английской JACK. Если у вас многоканальная звуковая карта, можно вывести этот раскладке QWERTY-клавиатуры нижний ряд от Z до ? соответствует порт на отдельный выход или даже несколько выходов для наушни- белым клавишам (натуральным нотам), а средний ряд от A до L – ков для каждого члена группы. Если ударник вернется из пивной, черным клавишам (диезам и бемолям). Можно нажимать на клавиши уже неспособный отсчитывать такты (так мы и знали), то этот подход мышью прямо на экране, но басовую партию так играть трудно, если, особенно удобен. А тем, кто пока только осваивает барабаны, ‘click конечно, вы не записываете стилофон. (Кто родился в восьмидеся- track’ поможет учиться. тые или позже, загляните в статью ‘Dubreq Stylophone’ в Википедии, чтобы понять, что это такое.) Неплохим для начала будет пресет Привет, мистер Бас amSynth, Lazy Moon Lead, но вообще-то, задав положение регулято- Покончив с ударными, перейдем к басовой партии. Если у вас есть ров с помощью мыши, можно получить практически любой желае- бас-гитара, но нет усилителя, то использовать микрофонный вход мый звук. Чтобы играть басовую партию на виртуальной клавиатуре, звуковой карты для гитары непрактично. Обычно из-за несоответс- выберите View > Key Velocity и перетащите ползунок Key к значению твия сопротивлений звук получается очень высоким. Неплохой звук 24, иначе вы будете играть на пару октав выше необходимого тона. можно получить, воткнув выход гитары на 1/4” вход микшера с высоким входным сопротивлением (иногда помеченного как Hi-Z). Впрочем, есть и малобюджетный вариант – устройство прямого ввода (DI): это маленькая коробочка, обычно с питанием от батареек. На ней есть вход для гитары с высоким сопротивлением, а выход – с низким сопротивлением. DI можно купить в любом приличном музыкальном магазине, объяснив продавцу, что нужно устройство для подключе- ния к звуковой карте компьютера с несбалансированным уровнем сигнала на выходе. Если бас-гитары нет, то басовую партию вполне можно записать с помощью программного синтезатора. Это не означает впадать в элек- тропоп: The Doors использовали вместо бас-гитары орган. Идеальный вариант – клавиатура фортепианного типа, подключенная к компью- теру через MIDI-порт, но если бюджет не позволяет, то вполне можно обойтись обычной QWERTY-клавиатурой. Неплохой басовый синтезатор, с которого можно начать – amSynth, он включен в стандартную поставку большинства дистрибутивов. Если в вашем его не оказалось, последние исходные тексты можно загрузить с сайта http://amsynthe.sourceforge.net (это не опечатка, название в URL действительно пишется по-другому). Установите и запустите его. Вы должны увидеть графический интерфейс amSynth, который эмулирует классический аналоговый синтезатор. Если у вас нет фортепианной клавиатуры, откройте виртуальную, выбрав Utils > Virtual Keyboard. Это одна из утилит ALSA (ее исполняемый файл amSynth с подключенной виртуальной MIDI-клавиатурой.

Март 2008 Linux Format 59 Учебник Ardour 2.1

С помощью кнопок подачи в редакторе Ardour (в левом верхнем углу) установите курсор в начало сессии. Нажмите на кнопку Play, и вы, играя басовую партию на клавиатуре (при активном окне с вирту- альной MIDI-клавиатурой), должны слышать дорожку ударных. Если используется несколько виртуальных рабочих столов, задача может усложниться, но нам поможет оконный менеджер. В Gnome можно кликнуть правой кнопкой на заголовке окна виртуальной клавиату- ры и выбрать «Всегда на видимом рабочем столе» (‘Always on Visible Workspace’). Подготовившись к записи басовой партии, активируйте управление записью основного канала Ardour в кнопках подачи, пере- местите курсор в начало дорожки и нажмите кнопку Play. Вашу игру будет сопровождать осциллограмма на дорожке Audio 2. Если после деактивации управления записью основного канала и проигрывания первого дубля результат вас не очень устраива- ет, просто повторите все сначала. Новая запись будет в отдельной Скорая помощь области на новом слое поверх первой. По умолчанию, два дубля не смешиваются, воспроизводится только верхний слой. Слои поч- ти прозрачны, и нижележащие видны сквозь верхние как области Не хватает инстру- серого цвета. Дорожки ударных и баса готовы. ментов? А почему бы не попробовать создать пару соб- Гитары и клавы Редактирование в Ardour ственных ремик- Запись электрогитары почти не отличается от записи бас-гитары, Итак, мы выложили несколько дорожек; пора их отредактировать. сов, позаимствовав разве что устройство прямого ввода (DI) работает здесь не так хоро- Даже если вы сыграли без ошибок, при использовании микрофонов существующие треки? Насколько шо: гитарный усилитель, как и диффузор динамика во внешнем уси- в запись часто попадают внешние шумы, которые нужно вырезать. все это легально, лителе, видоизменяет тон аналогового сигнала, снятого с гитары. Началу и концу каждой области нужно уделить особое внимание, не совсем ясно, Если у вас нет усилителя, можно приобрести устройства, эмулирую- чтобы вырезать чей-то счет тактов или удары ноги, которой музыкант но сообщество щие усилитель, динамик и микрофон, но раз у вас есть Linux, то есть отбивал ритм, если они не был скрыты инструментом. Для редакти- www.gybo-v3.co.uk и вычислительные ресурсы, и доступ к программам, которые делают рования есть и творческие, и эстетические причины: запись можно – неплохая стар- товая площадка, ту же работу. Creox – программный гитарный процессор для GNU/ сделать более интересной или расчистить акустический спектр для там много чего Linux. Его исходники можно скачать с сайта http://zyzstar.kosoru.com/ инструментов, которые иначе затерялись бы в нем. подскажут. ?creox, там же есть ссылки на готовые пакеты для разных дистрибу- Многие задачи подобного рода выполняются с помощью кур- тивов. Есть и другие способы создания моделей усилитель/динамик сора редактирования – это синяя вертикальная линия; в начальный и добавления эффектов, но Creox – неплохой вариант для начала, момент времени находящаяся на нулевой отметке. Она совершен- так как некоторые из самых популярных эффектов уже установлены. но независима от красного курсора воспроизведения. Перемещать С его помощью можно добавить к звуку бас-гитары немного хрипа, курсор можно за треугольники в его верхней и нижней частях или с если звук с DI или усилителя на ваш вкус слишком чистый. Это JACK- помощью комбинаций клавиш, перечисленных в пункте Edit > Move приложение, и его можно использовать для преобразования звука подменю курсора. Creox – это набор синтезаторов типа amSynth или драм-машин типа Hydrogen. В Ardour 2.1 есть четыре основных режима редактирования, педалей гитарных Ввод дорожек с внешней MIDI-клавиатуры проще, чем с электрон- каждому из которых соответствует маленькая кнопка под кнопками эффектов, ных струнных инструментов, потому что даже в самых дешевых кла- управления подачей: воссозданных виатурах есть выход ‘line out’, достаточно близкий по уровню сигнала 1 Режим объектов Здесь каждая область записи рассматривается в программе и сопротивлению ко входу на звуковой карте, так что подойдет даже как строительный блок, который можно переместить в любую дорож- с открытым простой кабель-адаптер. ку и в любое место временной шкалы точно так же, как и в Audacity. исходным кодом. Режим подходит для общего редактирования или для более точной работы, когда запись уже четко разделена на фрагменты. Несколько фрагментов можно разрезать одновременно в одной точке, поместив туда курсор редактирования и выбрав пункт Trim или Split контекст- ного или всплывающего меню. (Trim используется, когда нужно уда- лить фрагмент записи до или после курсора, тогда как Split оставляет их на месте.) 2 Режим диапазона В этом режиме можно выделить, вырезать, скопировать и вставить фрагмент записи внутри области. Этот режим удобен при выполнении множества мелких операций редак- тирования над отдельными дорожками или когда нужно создать несколько областей из одной. В Ardour используются общеприня- тые сочетания клавиш: Ctrl+X – чтобы вырезать фрагмент, Ctrl+C для копирования и Ctrl+V для вставки. Обратите внимание, что по умолчанию фрагмент вставляется в то место, где находится курсор редактирования. 3 Автоматический контроль усиления Иногда нужно не удалить область полностью, а изменять уровень сигнала в этой области дина- мически. В данном режиме можно щелчком левой клавиши мыши проставить на звуковой волне несколько точек, означающих начало подъема или спада. 4 Режим растяжения/сжатия времени В некоторых музыкальных жанрах, обычно в электронной музыке, бывает нужно сделать под-

60 Linux Format Март 2008 Ardour 2.1 Учебник

гонку записи к электронным ударным, выравнивая их по временным отметкам шкалы Bars:Beats. Растяжение или сжатие времени позво- лит вам управлять длительностью фрагмента, не меняя его тон. Сохранив сессию, попробуйте каждый из этих режимов в обла- стях вашей записи. Для отмены предыдущих действий всегда можно нажать Ctrl+Z или воспользоваться пунктом меню Edit > Undo. Экспорт сессии Мультитрековый подход к записи и редактированию очень гибок, но сессия Ardour – не тот формат, в котором запись могут послушать «конечные пользователи». Сессию надо экспортировать, чтобы ваша запись воспроизводилась на Hi-Fi, портативном или медиа-проигры- вателе. Формат CD audio, из которого посредством сжатия образуют- ся многие интернет-форматы хранения музыки, содержит два канала с 16-битной модуляцией и частотой дискретизации 44100 Гц. Пока мы работали только со стереоканалами, а значит, два канала – не проблема. По соображениям качества внутри Ardour и JACK по умол- чанию используется 32-битный звук, и этот показатель нужно умень- шить при экспорте. Как мы видели в предыдущем обзоре, многие звуковые карты лучше работают на частотах 48000 Гц или 96000 Гц, и здесь частоту дискретизации тоже придется уменьшить. К счастью, в Ardour есть диалоговое окно для задания этих и других параметров. Если вы довольны сессией, пора ее экспортировать. В меню Session > Export menu перед нами три варианта экспорта. В первом вопрос спорный, но вы можете поэкспериментировать с вариантами Для задания (Export session) все достаточно просто – экспортируется вся сессия Rectangular, Shaped Noise и Triangular, выбрав тот, что даст наилуч- области, от маркера start до маркера end в шкале Location Markers. Во вто- ший результат. экспортируемой ром (Export selection) процедура применяется только к выделенной Справа от диалога экспорта есть область, в которой указывается в файл, пригодятся в режиме диапазона части сессии – что удобно, например, в случае соответствие каналов в сессии и в экспортированном файле. Очень маркеры Location длинной сессии живого концерта, из которого надо выбрать одну важно взглянуть на нее, потому что по умолчанию ни один из кана- и Range. песню. В третьем случае (Export range markers) диапазон выби- лов не экспортируется, и в файле будет только тишина. Для экс- рается левой кнопкой мыши и перетаскивается в шкалу Range портируемого прямо в файл стереопроекта, расставьте галочки так, Markers. Преимущество маркеров диапазона в том, что они могут чтобы первый канал был левым каналом в результирующем файле, быть поименованы и сохранены в сессии, тогда как выделения не а второй – правым. Для более сложной настройки можно нажать на сохраняются. кнопку Specific tracks... и экспортировать отдельные дорожки из сес- Диалог экспорта начинается с имени экспортируемого файла, по сии. Например, можно экспортировать все, кроме дорожек вокала, и умолчанию создаваемого в подкаталоге сессии. Выгода тут в том, что получить чистый инструментал. При этом не нужно ничего изменять так сложнее потерять этот файл или смешать его с другим проектом, в самой сессии. но одновременно растет размер каталога с сессией, и это следует Наконец, нажимаем кнопку Export, и индикатор в нижней части учитывать при копировании сессии на носитель с ограниченным объ- окна должен промчаться от начала до конца. Если окно редакто- емом, например, DVD-R или USB-брелок. ра открыто, вы увидите, как курсор движется по сессии. Должен Теперь можно задать подходящие настройки для экспортируемо- получиться файл WAV, пригодный для записи на CD. А в следую- го файла. При записи на CD для опций Channels и File Type следует щий раз мы выясним, как добиться классного звучания вашей установить значения ‘Stereo’ и ‘WAV’. При экспорте в 16-битный фор- музыки. LXF мат лучше выбрать один из способов размывания сигнала (dithering), так как простое отсечение лишних битов сведет на нет преимущества высокой частоты дискретизации. Какой из этих способов лучше,

USB-микрофоны

При записи акустических инструментов и ра». На самом деле драйвер есть: это типовой человеческого голоса от хорошего качества аудиодрайвер USB, и в системах GNU/Linux он микрофона зависит многое. Для поочередной представлен ALSA. Такие микрофоны хороши записи инструментов можно купить недорогой тем, что позволяют обойтись без отдельного конденсаторный (емкостной) микрофон со аппаратного интерфейса со входом XLR, осо- встроенным USB-интерфейсом. Вместо обыч- бенно при работе на ноутбуке или в ситуации ного аналогового интерфейса с трехконтакт- записи на лету. Если у вас уже есть набор кон- ным разъемом XLR, эти микрофоны предо- денсаторных аналоговых микрофонов или ставляют цифровой интерфейс, обычно сов- нужно использовать несколько штук за раз, местимый с USB. Они часто рекламируются они уже не столь удобны. обманчивым слоганом «работает без драйве-

В окне Export укажите, какие каналы куда пойдут.

Через месяц Микширование, автоматика и эффекты с модулями LADSPA.

Март 2008 Linux Format 61 УчебникПрограммирование Игра Получаем новые знания, создавая небольшие программы Кодируем: игра

ЧАСТЬ 3 На последнем уроке этой серии, Майк Сондерс займется кодированием простой, но захватывающей игры...

saystuff(“Wowzers”) Если вы новичок в Python, то убедитесь, что он у вас установлен (большинство дистрибутивов инсталлируют его по умолчанию, но если это не ваш случай, то он доступен в вашем менеджере пакетов). Введите указанный выше код в текстовом редакторе и сохраните в вашем домашнем каталоге как test.py. Затем откройте терминал и наберите: python test.py Если все в порядке, то Python интерпретирует код и выдаст строку текста. В данном примере просто определяется подпрограмма с име- нем saystuff – она выводит любую строку текста, которая ей передается. Вы можете видеть, что код подпрограмы имеет отступ на одну табуля- цию. Выполнение начинается с первого вызова saystuff, приводящего к печати строки Wowzers. Вот так все просто; вы практически готовы к кодированию. Еще один момент: для данного урока вам понадобятся модули PyGame. PyGame – это дополнительный слой, связывающий SDL и Python и позволяющий отображать картинки и использовать зву- ковые эффекты в ваших программах. Он широко распространен и скорее всего доступен в репозиториях вашего дистрибутива; в про- тивном случае обратитесь к разделу Разработка нашего DVD. (Если вы выполнили урок проекта прошлого месяца, то PyGame у вас уже установлен!) Скачки по кругу а последние два урока мы неплохо набили руку, создав IRC- Хотя жанр игр весьма разнообразен, основы механики большинства бота и программу всплывающих карточек – вещи довольно из них, включающих передвижение спрайтов (изображений объектов), Зсерьезные; давайте же в последнем проекте развлечемся игрой. укладываются в следующее описание: Создание большинства современных игр требует тысячи человеко- часов, не считая армии художников и музыкантов, но все еще есть 1 Настраиваем экран, графику, счетчик очков и т.д. Наш область, где хакеры-одиночки могут написать что-то забавное. В кон- 2 Запускаем цикл до момента смерти/выхода игрока. эксперт це концов, для создания Тетриса не потребовалась команда из 500 3 Отрисовываем графические объекты на экране. Майк Сондерс кодеров и бюджет голливудского фильма – Алексей Пажитнов вполне 4 Получаем ввод пользователя (например от мыши или с клавиатуры). недавно нашел обошелся своими силами (конечно, пока подлые акулы капитализ- 5 Следуем логике игры (например, ударил игрок врага?). копию ZEUS для ZX ма с запада не подхватили его идею...). Как и для проекта прошло- 6 Соответственно обновляем графику. Spectrum и зарылся го месяца, в качестве основы нашего проекта используем Python и 7 Возвращаемся к шагу 3. в язык ассемблера для Z80. http:// PyGame. Кстати, уже имеется три реализации Тетриса на базе PyGame, mikeos.berlios.de см. www.pygame.org/tags/tetris. Мы напишем небольшую игру, где будет несколько мячей, прыгаю- Если это первый номер LXF, который вы взяли в руки, и до этого щих по экрану, а задача игрока – постараться избегать столкновения вы ни строчки не написали на Python, вы будете приятно удивлены, указателя мыши с мячами. Звучит просто? Ну, если мы введем некото- насколько прост он в понимании: код Python знаменит в мире про- рую случайность в движение мячей – то есть они не всегда будут дви- граммирования своей самодокументированностью. А если вы знакомы гаться с одинаковой скоростью – то все мигом осложнится. Вы, напри- с другим языком программирования, типа C или PHP, вы восхититесь мер, не сможете просто держать указатель мыши в нижнем левом углу простотой Python. Например, блоки кода выделяются отступами, а не экрана, потому что мяч может упасть туда в любой момент. Счетчик фигурными скобками – взгляните сюда: будет отслеживать, сколько секунд вы продержались. Это очень про- def saystuff(somestring): стая концепция, но она требует немалой ловкости с мышью и букваль- print “String passed: “, somestring но лазерной фокусировки на экране.

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

62 Linux Format Март 2008 Игра Учебник

с мячом! На DVD

Но все по порядку: давайте подумаем, как заставить один мяч ска- кать по экрану. Как мяч узнает, что пора менять направление? К сча- стью, для этого имеется очень простой метод: заведем две переменные, которые используем для изменения движения мяча. Для каждого про- хода цикла игры будем добавлять их значения к позиции мяча. Если мяч, движется, например, вправо – это потому, что мы на каждом шаге цикла добавляем 1 к его горизонтальной координате. Если мяч ударя- ется о правый край экрана, то мы начинаем прибавлять к его горизон- тальной координате -1, и он пойдет влево. Представили? Если вы не понимаете, как это работает, вот вам программа на Python, демонстрирующая это в действии. Вы може- те найти этот код в разделе DVD Журнал/CodeProject в файле ball1. py. Для запуска программы, кроме кода, нужно еще изображение с именем ball.png – это картинка размером 32х32 пикселя: закрашен- ный белый круг на черном фоне. На DVD оно есть, но вы можете нарисовать его за пару секунд в GIMP – создайте новое изображение 32х32 пикселя, залейте его черным, вырежьте кружок инструментом выделения окружности и залейте его белым. Сохраните файл как ball. png в том же каталоге, что и ball1.py, а затем запустите программу, набрав python ball1.py. from pygame import * # Подключаем функционал PyGame! Прототип нашей программы скачущего мяча – пока смотреть особо не на что, но уж если мы это видим, значит, основа заложена. ballpic = image.load(‘ball.png’)

done = False for e in event.get(): # Проверяем нажат ли ESC ballx = 0 # переменные позиции мяча if e.type == KEYUP: bally = 0 if e.key == K_ESCAPE: ballxmove = 1 done = True ballymove = 1 Пройдемся по шагам. В первой строке мы сообщаем Python, что хотим использовать подпрограммы из библиотеки PyGame. Затем init() # Запуск PyGame загружаем созданное нами изображение мяча, сохраняем его в объек- screen = display.set_mode((640, 480)) # Получаем прекрасное те с именем ballpic и создаем логическую [true/false] переменную для окно определения завершения игры. display.set_caption(‘Ball game’) # И устанавливаем его Следующие четыре строки очень важны: в них описываются заголовок переменные, управляющие позицией и перемещением мяча. ballx и bally хранят положение (в пикселях) мяча в нашем игровом окне: while done == False: 0,0 означает верхний левый, а 640,480 – правый нижний пиксель. screen.fill(0) # Заполняем экран черным (цвет 0) ballxmove и ballymove хранят числа, добавляемые к позиции мяча на screen.blit(ballpic, (ballx, bally)) # Рисуем мяч каждом шаге; в начале мы устанавливаем в них 1, и когда начина- display.update() ется игра, 1 добавляется к ballx и bally на каждом шаге цикла, тем самым перемещая мяч направо вниз. Итак, при запуске программы time.delay(1) # Задержка! наш мяч находится слева вверху и начинает двигаться по диагонали вправо вниз. ballx = ballx + ballxmove # Обновляем позицию мяча Затем мы открываем новое окно PyGame и запускаем основной bally = bally + ballymove цикл игры, заполняя (очищая) экран черным и отрисовывая наш мяч в текущей позиции (комментарии в коде обозначены символом #). if ballx > 600: # Мяч достиг границ экрана? Следующий кусок кода определяет, как будет двигаться мяч: ballxmove = -1 ballx = ballx + ballxmove if ballx < 0: bally = bally + ballymove ballxmove = 1 if ballx > 600: if bally > 440: ballxmove = -1 ballymove = -1 if ballx < 0: if bally < 0: ballxmove = 1 ballymove = 1 if bally > 440:

Март 2008 Linux Format 63 Учебник Игра

ballymove = -1 if bally < 0: ballymove = 1 В первых двух строках мы обновляем положение мяча по гори- зонтали (x) и вертикали (y), прибавляя две переменные передвижения. Если ballxmove и ballymove равны 1, то мяч переместится на 1 пиксель вправо и 1 пиксель вниз на каждом шаге цикла. Но затем оператор if проверяет, достиг ли мяч края экрана, и если это так, изменяет соот- ветственно ballxmove и ballymove. Если, например, значение горизон- тальной координаты мяча более 600 пикселей, он должен отскочить и начать двигаться влево – то есть мы начинаем прибавлять к его пози- ции -1 (по сути, вычитая 1). Несколькими строками кода мы создали впечатление, что мяч отскакивает от границ экрана – неплохо! Последние строки этой про- Скорая граммы устанавливают связь с клавиатурой, чтобы вы могли в любой помощь момент выйти из игры, нажав клавишу Esc.

Есть проблемы Игра с мячом 2.0 с проектом Пока все отлично – мы создали базовую структуру нашей игры. Теперь PyGame? Отсле- добавим мячей, а также определим столкновения курсора мыши с живайте значения любым их них. Для первой задачи введем массив-словарь для отсле- переменных, просто выводя живания мячей. Это придаст программе гибкость: мы сможем иметь их в терминал с столько мячей, сколько захотим, не ограничиваясь ball0, ball1, ball2 помощью простого и т. д. Словари – плевое дело в Python: оператора print. mydict = {‘Bach’: 100, ‘Handel’: 75, ‘’: 90} Например, если в нашей игре с перемещением print mydict[‘Vivaldi’] мяча что-то пошло Здесь мы ставим числа в соответствие трем словам, а затем выво- наперекосяк, дим значение, содержащиеся в ‘Vivaldi’, то есть 90. Используем словарь вы сможете легко для хранения значений X, Y, X-перемещения и Y-перемещения каждого screen.fill(0) выяснить причину, выводя значения мяча – почти как структуру в C. Но если C погружает нас в сумятицу переменных xmove управления памятью, то в Python можно создавать наборы объектов- for count in range(numballs): или ymove – разме- мячей без труда, давая им свои записи в словаре. screen.blit(ballpic, (balls[count][‘x’], balls[count][‘y’])) стите в основном Наконец, подумаем об обнаружении столкновений. Как угадать, что цикле игры print имя_переменной, указатель мыши столкнулся с мячом? Логически кажется очевидным display.update() и сможете следить идти от позиции каждого мяча и сравнивать ее с позицией курсора за изменениями мыши. Но мы пойдем на хитрость: мячи белые, а фон черный, так time.delay(delay) во время работы почему бы просто не проверять, находится ли курсор мыши над белым программы for count in range(numballs): в терминале. пикселем? Это всего одна строка кода, и так быстро... Вот код, который вы можете найти в файле ball2.py в разделе balls[count][‘x’] = balls[count][‘x’] + balls[count][‘xmove’] Журнал/CodeProject на DVD, вместе с картинкой ball.png, которую мы balls[count][‘y’] = balls[count][‘y’] + balls[count][‘ymove’] создали ранее (он точно такой же). from pygame import * for count in range(numballs): import random if balls[count][‘x’] > 620: balls[count][‘xmove’] = random.randint(-2, 0) ballpic = image.load(‘ball.png’) if balls[count][‘x’] < -10: ballpic.set_colorkey((0,0,0)) balls[count][‘xmove’] = random.randint(0, 2) if balls[count][‘y’] > 470: numballs = 10 balls[count][‘ymove’] = random.randint(-2, 0) delay = 5 if balls[count][‘y’] < -10: balls[count][‘ymove’] = random.randint(0, 2) done = False for e in event.get(): balls = [] if e.type == KEYUP: if e.key == K_ESCAPE: for count in range(numballs): done = True balls.append(dict) balls[count] = {‘x’: 0, ‘y’: 0, ‘xmove’: random.randint(1, 2),‘ymove’: if screen.get_at((mouse.get_pos())) == (255, 255, 255, 255): random.randint(1, 2)} done = True

init() print “You lasted for”, time.get_ticks()/1000, “seconds!” screen = display.set_mode((640, 480)) Основная идея этой программы та же, что и раньше, но добавился display.set_caption(‘Ball game’) смачный код, требующий объяснений. В самом начале, где мы загружа- event.set_grab(1) ем изображение мяча, мы заодно устанавливаем его colorkey в (0,0,0), что соответствует черному в RGB (Red/Green/Blue – Красный/Зеленый/ while done == False: Синий). Так мы превращаем черные пиксели картинки нашего мяча в

64 Linux Format Март 2008 Игра Учебник

Хочу красивые

Окончательная версия нашей игры – не прорыв на графическом фрон- те, но мы можем принарядить ее, добавив фоновое изображение. Важно только помнить, как мы определяем столкновение с мячом – мы ищем белые пиксели. Поэтому фоновое изображение не должно содержать пикселей совершенно белого цвета (255,255,255 RGB), не то игра закончится, когда мышь окажется над ними! Подыщите изображение и измените его размер до 640х480. Если на изображении окажется белый пиксель, вы всегда можете понизить яркость в GIMP и избавиться от проблемы. Сохраните изображение рядом с ball2.py и назовите его background.jpg. Теперь, в ball2.py, вве- дите следующий код под строкой ballpic.set_ colorkey: backdrop = image.load(‘background.jpg’) Теперь наша фоновая картинка находится в памяти и готова к использованию. Нам необходимо отображать ее на экране на каждом шаге, так что переместитесь вниз по ball2.py и замените строку screen. fill(0) следующим: screen.blit(backdrop, (0,0)) и фоновое изображение будет отрисовываться до мячей. Заметьте, что если изображение сложное (то есть в нем много цветов), этот дополнительный процесс немного замедлит игру – но вы можете подстроить скорость мячей и переменную delay, чтобы это скомпен- сировать. Вот это уже похоже на дело! Рой летящих мячей требует молниеносной реакции и пиксельной точности курсора мыши...

прозрачные. Это важно, когда у нас перемещается несколько мячей, Последние три строки кода новые: screen.get_at() возвращает зна- если мы хотим, чтобы они накладывались изящно, не создавая чер- чение цвета пиксела в указанной позиции, то есть в положении курсо- ных углов поверх друг друга. Итак, у наших мячей будут отображаться ра мыши, определяемого при помощи mouse.get_pos(). Мы говорим: только белые пиксели. «если цвет пикселя в точке нахождения курсора белый (255,255,255), Следующие переменные, numballs и delay, влияют на сложность то выполнить done = True», и главный цикл игры while закончится. игры. numballs управляет числом мячей, а delay – время (в миллисекун- И наконец, мы выводим число секунд, в течение которых игрок дах) остановки игры после каждой итерации цикла. Можете оставить смог выжить – time.get_ticks() возвращает его в миллисекундах, так что их как есть; но если вы стремитесь к большей сложности, увеличьте перед выводом мы делим его на 1000. число мячей и снизьте задержку. Строка balls = [] создает новый массив объектов-мячей, и, в типич- Отделка ной манере Python, количество объектов не ограничивается (и не нужно Неплохо для 55 строк кода, не так ли? Как уже говорилось, вы може- указывать его прямо сейчас). Строка те усложнить игру, увеличив значение numballs в начале – стандарт- for count in range(numballs): ное значение 10 достаточно непросто, но если вы надеетесь на свое создает цикл, который выполняется numball раз (10), добавляя новые проворство, рискните установить 15 или 20, для уворачивания с бук- объекты словаря к массиву balls и присваивая им начальные значения – вально бешеной скоростью. Есть еще много аспектов игры, с кото- левый верхний угол экрана и случайные смещения вниз-вправо. Числа рыми можно поэкспериментировать: например, изменить случайные 1, 2 в генераторе случайных чисел означают «любое число в промежут- числа в разделе основной логики программы (при ударе мяча о край ке от 1 до 2 (включительно)». Итак, мы получили 10 мячей, стартующих экрана). со случайными скоростями. PyGame ломится от функций, готовых к экспериментам, и, исполь- Затем мы настраиваем экран, как раньше, и добавляем строку event. зуя несколько строк кода, вы можете добавить в игру звуковые эффек- set_grab(1), которая заключает курсор мыши внутри окна игры – было ты или даже фоновую музыку. На www.pygame.org/docs/ имеется бы слишком просто, если бы курсор мыши мог сбежать за границы! фантастически основательная документация, помогающая пользова- Затем идет главный цикл игры. Как и ранее, мы заполняем экран чер- телям изучить функциональность библиотеки, включая подпрограм- ным, а затем в другом цикле for вбрасываем все мячи на экран. мы, использованные на нашем уроке. Имея опыт программирования После обновления экрана и задержки (чтобы игра шла с одинако- на бесчисленном множестве языков и в различных средах, от Amiga вой скоростью на всех машинах), мы вновь проходимся по массиву Blitz Basic до C#-SDL в Mono/.NET, я могу смело заявить, что PyGame – мячей, обновляя их позиции при помощи переменных перемещения. один из самых простых в мире наборов для программирования игр: Каждый мяч имеет свою собственную копию xmove и ymove в своем это прекрасный способ воплотить любые идеи, возникшие в вашей словаре, так что все они передвигаются независимо. Далее следует голове. Удачи! LXF логика игры, определяющая, достигли ли мячи границ экрана. Здесь мы слегка подогнали значения так, чтобы мячи могли чуть-чуть захо- дить за край экрана (помните, их размер 32х32 пикселей). Это жизнен- но важно для игрового процесса, поскольку означает, что вам нельзя просто забиться курсором мыши в угол, где мячи вас не достанут! Мячи теперь достигают любой точки экрана, так что пошевеливайте мышью.

Через месяц Соберем сервер rsync, для экономии трафика.

Март 2008 Linux Format 65 УчебникHardcore Почтовый Linux сервер Проверьте себя как продвинутого пользователя Почта: собери Большинство людей пользуется электронной почтой, понятия не имея, как она работает. Светоч знаний д-ра Криса Брауна рассеет тьму невежества.

щий MTA передает сообщение MDA (Mail Delivery Agent – почтовому агенту доставки), который сохраняет сообщение в хранилище сообще- ний (оно находится в файловой системе почтового сервера). Для этого сообщения работа MTA выполнена. Аня проводит выходные с дядей Васей, помогая ему разбирать чер- дак, и не может в эти дни читать почту. Но когда она доберется до ком- пьютера, ее почтовый клиент соединится с Mail Access Agent (MAA – агентом доступа к почте) на ее почтовом сервере example.com для про- верки почты, которую MTA ее домена сохранил в ее хранилище. Ее MUA может использовать для этого один или два протокола. Чаще всего это Post Office Protocol (POP3 – почтовый протокол) версии 3. POP – это протокол, который скачивает почту с почтового сервера, затем (как правило) удаляет ее с сервера и оставляет ее на клиенте (компьютере в Аниной квартире), обеспечивая долговременное хранение сообщения. Но если Аня работает в корпорации Example.Com, данное учреждение может иметь почтовый сервер, работающий по протоколу IMAP4. IMAP расшифровывается как Internet Message Access Protocol [интернет- протокол доступа к сообщениям]; он позволяет Аниному MUA полу- чать доступ к ее почтовому архиву, но долговременное хранение писем происходит на сервере (хотя некоторые MUA поддерживают локаль- ные копии). Благодаря IMAP можно подключаться к серверу с любого компьютера с IMAP-клиентом и видеть весь почтовый архив – а вот если бы вы читали почту, используя POP на разных машинах, то в ито- тобы вы могли представить, с чем вообще едят почтовый сер- ге ваши письма были бы раскиданы по этим машинам, что я знаю по вер, взгляните на Рис. 1 на следующей странице: там показана своему горькому опыту. Чсхема доставки почты в Интернете. Наш почтовый сервер изображен на Рисунке 1 как большой серый Проследим продвижение почтового сообщения на его пути через квадрат в правом верхнем углу. В реальности необходимы два ком- Интернет от отправителя к получателю и разберемся, как все компо- пьютера – один для почтового сервера, другой для клиента. Возьмем ненты работают совместно. Пусть Маша сидит за своим компьютером Postfix как SMTP-сервер и Dovecot как почтовый POP3-сервер. На Наш и составляет электронное послание, используя почтовый клиент (Mail почтовом сервере моя основная ОС – CentOS 5 (CentOS – это клон Red эксперт User Agent – MUA). В мире Linux клиент Маши будет чем-то вроде Hat Enterprise Linux), но конфигурация и операции с Postfix и Dovecot Д-р Крис Браун Evolution или KMail. Она пишет своей маме Ане, электронный адрес не зависят от используемого дистрибутива Linux. Клиентская маши- Пользователь Unix которой [email protected]. Когда Маша нажимает кнопку Послать, ее на может быть любой. В моем случае на ней Ubuntu 7.04 с Evolution в с более чем двадцатипятилетним MUA соединяется с Mail Transport Agent (MTA – почтовым транспорт- качестве MUA. стажем. Его ным агентом), на который Маша настроила свой MUA для отправки компания Interactive почты. Обычно MTA предоставляется Маше ее интернет-провайдером Начнем: Mail Transfer Agent Digital Learning (ISP). MUA и MTA говорят друг с другом на языке протокола SMTP Сперва мы установим Postfix. Но предварительно проверим: вдруг предоставляет (Simple Mail Transfer Protocol – простой протокол передачи почты), Sendmail уже установлен и запущен. На системах типа Red Hat это курсы, консультации и материалы для организовывая доставку сообщений. В ходе этого диалога MUA опреде- могут сделать следующие команды: обучения по Linux. ляет получателя сообщения и передает текст письма. # rpm -q sendmail Он также MTA отвечает за «дальнюю перевозку» сообщения. Он сделает # service sendmail status специализируется запрос к DNS (Domain Name System, системе доменных имен) на поиск Если Sendmail запущен, надо его остановить и позаботиться, чтобы на системах электронного записи MX (Mail Exchanger), которая скажет ему, какая машина дей- он не запустился после перезагрузки: обучения. ствует как почтовый сервер для домена example.com, где расположен # service sendmail stop Анин почтовый ящик. Из этого запроса он может узнать, что почтовый # chkconfig sendmail --del сервер, допустим, mail.example.com. MTA Маши теперь соединяется с При наличии на вашей машине включенного брандмауэра, вы MTA на mail.example.com, снова использует SMTP для указания получа- должны открыть порт для SMTP (tcp/25). теля письма и передает тело сообщения. Принимающий MTA проверя- Моя собственная установка Postfix споткнулась, обнаружив отсут- ет, что он и вправду почтовый сервер для домена получателя, а потом ствие административной группы под названием postdrop. То есть до уж дает согласие на прием. Если все проходит нормально, принимаю- установки пакетов нужно было создать эту группу:

Месяц назад Как настроить виртуальный сервер Linux, избежав всех капканов.

66 Linux Format Март 2008 Почтовый сервер Учебник свой сервер

Машин Компьютер Анин почтовый компьютер провайдера Маши сервер

SMTP SMTP MTA MTA MTA

MDA

хранилище Маша сообщений

Рис. 1: Один день из жизни почтового сообщения. MAA

# groupadd -r postdrop # yum install postfix POP3 Возможно, эта проблема касается только моего дистрибутива, и на вашей системе такого не произойдет. Анин IMAP Для обеспечения запуска сервиса Postfix при загрузке, запустите компьютер команду # chkconfig --add postfix Файл настройки Postfix – /etc/postfix/main.cf. Фактически, Postfix должен заработать «из коробки» как простой почтовый сервер с мини- Аня MUA мальной доработкой готовой конфигурации, но есть несколько пара- метров, требующих внимания. Так, строку в main.cf inet_interfaces = localhost нужно заменить на inet_interfaces = all Это мы велим Postfix слушать SMTP соединения на всех сетевых системе: по ней происходит аутентификация в Dovecot (который мы интерфейсах машины, а не только на локальном (localhost). рассмотрим чуть позже). Далее проверим установки параметра myhostname. Он определяет Теперь у нас все готово для теста доставки почты в хранилище FQDN этой почтовой системы. Если он не определен, то по умолчанию сообщений. На моей настольной системе с Ubuntu я создал запись в берется имя хоста машины, на которой запущен сервер, возвращаемое файле /etc/hosts, возвращающую IP-адрес машины mail.example.com. командой hostname. Так, если ваш хост – mail.example.com, это имя и В моем случае строка выглядела так: будет принято по умолчанию. 192.168.0.41 mail.example.com Наконец, параметр mydestination задает список доменов, которые В реальности, почтовый сервер должен иметь DNS-запись, и вам эта машина считает для себя пунктом назначения (то есть домены, для не нужно задавать ее в /etc/hosts. Затем я сконфигурировал «учетную которых машина сохраняет сообщения). Минимальное значение этого запись» в моем MUA (Evolution) на использование SMTP-сервера mail. параметра должно походить на следующее: example.com для исходящих сообщений. Я включил эту учетную запись mydestination = example.com Evolution и отключил остальные. Затем я попытался послать несколько Установив все эти параметры, можно запускать Postfix. На RedHat- писем на [email protected]. совместимых системах это делается командой Сработало? Ну, тот факт, что письма исчезли из моих Исходящих # service postfix start [Outbox] в Evolution, уже обнадеживал, но лучший способ проверки – Далее, я создал учетную запись для пользователя anna и устано- найти сообщения сохраненными на почтовом сервере. Что выводит вил пароль: нас на.... # useradd anna # passwd anna Хранилище сообщений Без них не обойтись, потому что «локальный» агент доставки почты Традиционный способ хранения сообщений на почтовом сервере изве- в Postfix требует, чтобы получатель имел учетную запись в Linux- стен как формат Mbox: для каждого пользователя хранится отдельный

Март 2008 Linux Format 67 Учебник Почтовый сервер

текстовый файл. Имя этого файла совпадает с именем учетной записи Теперь мы готовы к запуску сервиса: пользователя, чью почту он хранит, а каталог определяется параме- # service dovecot start тром mail_spool_directory настройки Postfix (обычно /var/spool/mail or Пора тестировать. На клиенте, в настройках MUA мне необходимо /var/mail). Например, Анины сообщения могут заноситься в /var/spool/ установить для приема почты использование протокола POP и серве- mail/anna. Внутри этого файла каждое сообщение начинается строкой ра mail.example.com, затем задать имя anna и отключить опции шиф- с первым словом “From” и заканчивается пустой строкой. (Вас может рования, предлагаемые MUA. Теперь я готов принять мои сообщения. сбить с толку наличие в этом файле других строк, тоже начинающихся В этом пункте мой MUA должен (надеюсь) запросить пароль anna, а на “From:” – заметили двоеточие? Это часть заголовков сообщения.) мне необходимо предоставить пароль, который я задал, создавая ее Надеюсь, Postfix вписал мое тестовое сообщение в этот файл. учетную запись Linux на сервере. Если все пройдет гладко, вы должны Альтернативная схема хранения сообщений (также называемая увидеть ранее посланные письма появившимися во Входящих MUA. И форматом Maildir) использует отдельную директорию для каждого если вы вернетесь на сервер, то обнаружите, что сообщения исчезли пользователя (обычно это поддиректория с названием maildir внутри из хранилища anna. Если опять ничего не выйдет, обратитесь ко врезке домашнего каталога пользователя) и, внутри нее, отдельный файл Решение проблем. Узнать для каждого сообщения. При этом меньше шансов заблокировать или побольше угробить все сообщения разом, чем в формате Mbox. Ура, оно работает! Если посланное вами сообщение появилось в хранилище, пора Если вы дошли досюда, поздравляем! У вас появился работающий Исчерпывающее перейти к нашему POP3-серверу. Если его нет, прочитайте советы во почтовый сервер. Как обычно, я создавал максимально простую кон- руководство по врезке Решение проблем, внизу. фигурацию, чтобы все поскорее заработало. Однако эта реализация Postfix написал Кайл Ден [Kyle подразумевает несколько допущений: во-первых, почтовый сервер Den]: Postfix: The Установка и настройка Dovecot обслуживает только один домен (example.com), а во-вторых, все поль- Definitive Guide, На моей CentOS для установки Dovecot надо всего лишь зователи, желающие получать почту, имеют учетные записи Linux на издательство скомандовать: почтовом сервере. Это последнее ограничение задается как со стороны O’Reilly, ISBN # yum install dovecot локального агента доставки в Postfix, так и Dovecot, который, в своей 0-596-00212-2. Теперь нужно найти файл конфигурации Dovecot. Обычно это конфигурации по умолчанию, требует действующей учетной записи /etc/dovecot.conf. Как типичный современный файл конфигурации, Linux для аутентификации пользователей, для входа через POP и полу- он довольно длинен (более 1000 строк), но почти целиком состоит из чения электронной почты. Отметим также, что в нашей конфигурации комментариев. Как оказалось, мне нужно было изменить две строчки; MTA (Postfix) не требуется аутентификации пользователя, в отличие от одна задает протокол(ы), которые должен обслуживать Dovecot, а вто- MAA (Dovecot). рая говорит, где находятся файлы почтового ящика. Эти два параметра я изменил так: Поддерживаем несколько доменов protocols = pop3 В реальных условиях одной машине приходится быть почтовым mail_location = mbox:~/mail:INBOX=/var/spool/mail/%n сервером для множества доменов. Самый простой путь это обеспе- Первая строка говорит, что мы будем использовать только прото- чить – добавить домены в параметр mydestination в /etc/Postfix/main. кол POP3. Во второй строке, установка INBOX использует специальный cf. Например, установка: параметр %n для замены именем пользователя, под которым мы заш- mydestination = example.com example.org example.net ли проверить почту (в нашем примере – “anna”). Заметим, что значе- велит Postfix принимать почту для трех указанных доменов. Конечно, ние параметра INBOX должно совпадать с расположением хранилища если вы что-то поменяли в main.cf, нужно заставить postfix перечитать почты, указанном в Postfix. его: Если у вас на почтовом сервере запущен брандмауэр, нужно также # service postfix reload открыть порт POP3 (110/tcp). Конечно, надо также обеспечить, чтобы MX-записи в DNS для

Решение проблем

Если вы не можете передать и принять почту, Вы должны получить отклик с сервера типа используя ваш почтовый сервер, попробуйте такого: проверить следующее: 220 mail.example.com ESMTP Postfix Если вы знакомы с SMTP-протоколом, 1 На клиенте проверьте, что почтовый сервер можете вести полный SMTP-диалог вручную и пингуется по его IP-адресу и имени, используя по-настоящему отправить почтовое сообще- команды: ние. См. экранный снимок справа с примером # ping 192.168.0.41 такого диалога. # ping mail.example.com (Естественно, подставьте сюда IP-адреc 4 На сервере проверьте, что брандмауэр не вашего сервера.) блокирует доступ к портам 25 (SMTP) и 110 (POP3), используя команду: 2 На сервере проверьте, что серверы SMTP и # iptables -L POP слушают соединения, используя команду Если вы не уверены, отключите брандмауэр # netstat -at командой: Вы должны увидеть LISTEN в конце инфор- # itables -F мации о портах SMTP и POP3. и попробуйте снова. Не забудьте потом вос- становить работоспособность брандмауэра. 3 На клиенте, попробуйте использовать telnet для соединения с портом 25 на почтовом сер- 5 На сервере поищите разгадку в системных вере, используя команду: журналах почты (обычно /var/log/maillog). # telnet mail.example.com 25

68 Linux Format Март 2008 Почтовый сервер Учебник

всех трех доменов ссылались на сервер mail.example.com. Однако эта методика имеет ограниченное применение, поскольку у всех доме- Альтернативы нов – общее пространство имен: так, почта на [email protected], [email protected] и [email protected] будет в конце концов сохране- Как всегда в Linux, существует несколько себе большинство интернет-почты, и стало на в одном и том же месте. И, конечно, Ане (и всем другим получате- программных решений для построения почти обязательным ссылаться на него, как лям почты) нужна учетная запись Linux на сервере. почтового сервера. Для MTA вы можете на «почтенный», хотя у него самый непонят- Более гибкое решение – использовать так называемые «вирту- использовать Postfix, Exim или почтенный ный файл конфигурации по эту сторону альные» почтовые домены. При таком способе каждый домен имеет Sendmail. Postfix – самый юный; он написан Бетельгейзе. отдельное пространство имен, и письма для [email protected] и Вьетсе Венема [Wietse Venema] в 1999 году, Для MAA тоже есть выбор. Это может быть [email protected] окажутся в разных хранилищах почты. Получателю имеет прекрасную репутацию по безопасно- IMAP-сервер Cyrus, Courier, qpopper, инстру- сти и служит MTA по умолчанию во многих ментарий IMAP University of Washington, также не требуется иметь системную учетную запись Linux. Но зато текущих дистрибутивах Linux. Exim был раз- Dovecot и другие. Более подробный список и требуется чуть больше работы по настройке... работан в 1995 году в Кембриджском универ- сравнение почтовых серверов вы можете Требуемые для этого строки в main.cf показаны в Листинге А ниже. ситете Филипом Хейзелом [Philip Hazel]. найти на http://en.wikipedia.org/wiki/ Учтите, что номера строк проставлены только для удобства ссылки: в Sendmail написан Эриком Оллманом [Eric Comparison_of_mail_servers. файле их нет. Allman] в 1983 году; много лет он тянул на ЛИСТИНГ A 1. virtual_mailbox_domains = example.com example.org example.net 2. virtual_mailbox_base = /var/spool/vmail Далее, в строке 3 Листинга А, вы сообщаете Postfix, где находится 3. virtual_mailbox_maps = hash:/etc/Postfix/virtual_mailbox_map карта. 4. virtual_uid_maps = static:550 Postfix нуждается в отождествлении пользователя, используемом 5. virtual_gid_maps = static:101 для доставки сообщения в хранилище. Возможно задание нескольких Строка 1 в Листинге А содержит список доменов, которые будут карт (uid_map и gid_map), определяющих отдельные отождествления поддерживаться. Их надо удалить из параметра mydestination, так как для всех и каждого получателя, но мы сделаем проще и используем они теперь будут обрабатываться с использованием «виртуального» одну и ту же личность для всех получателей. Я создал пользователя с агента доставки Postfix, и «локальный» агент им больше не нужен. именем postmanpat для этой цели. Если список доменов по-настоящему большой, вы можете предпо- # useradd -d /var/spool/vmail -g postdrop -u 550 -m postmanpat честь поместить его в отдельный файл, например, /etc/postfix/virtual_ Отметим, что домашняя директория postmanpat находится в моей domains, по образцу: выбранной директории virtual_ mailbox_base. Далее я смягчил права # list of virtual domains for postfix доступа в /var/spool/vmail,чтобы Dovecot мог ей воспользоваться. example.com # chmod 755 /var/spool/vmail example.net Нет необходимости предварительно создавать файл сохраненных example.org сообщений для индивидуальных получателей – Postfix сделает это # ... and lots more ... по требованию. Наконец, строки 4 и 5 Листинга А задают тождество и ссылаться на этот файл через параметр virtual_mailbox_domains в пользователя и группы, которые Postfix будет использовать для поме- main.cf: щения сообщений в хранилище. Они соответствуют ID пользователя virtual_mailbox_domains = /etc/postfix/virtual_domains postmanpat и группы postdrop. Аналогично, многие параметры в main.cf могут иметь список требу- После внесения данных изменений та часть, за которую отвечает емых значений, помещенный в отдельный файл. Postfix, должна работать. Возвратитесь к клиентской машине и пошли- Строка 2 в Листинге А задает директорию верхнего уровня, где те тестовое сообщение на [email protected]. На сервере проверьте, должны сохраняться сообщения. Очевидно, надо выбрать схему, сов- что это сообщение появилось в /var/spool/vmail/cbrown. Если да, то местимую с нашими POP- и IMAP-серверами. Здесь выбрано одно из доставка Postfix на виртуальные почтовые домены работает! множества возможных решений. На стороне Dovecot я просто изменил определение параметра mail_ Создадим то, что Postfix называет «картой» – для отметки, где location на следующее: получатели почтовых адресов будут сохранять сообщения относитель- mail_location = mbox:~/mail:INBOX=/var/spool/vmail/%n но заданного virtual_mailbox_base. Я создал простую карту в файле, который назвал /etc/postfix/virtual_mailbox_map: Продолжение следует [email protected] anna Пока мы не касались аутентификации POP3 при входе в Dovecot. [email protected] anna_smith В текущем состоянии, чтобы Dovecot заработал, вам необходимо [email protected] cbrown создать очередные учетные записи Linux пользователям anna, anna_ Теперь, например, письмо, посланное на [email protected], будет smith и cbrown, для новой аутентификации Dovecot. Чтобы вирту- сохранено в /var/spool/vmail/anna_smith; письмо, посланное на адрес альные домены применялись правильно, необходимо рассмотреть [email protected], «упадет» в /var/spool/vmail/cbrown, и так далее. вопрос об аутентификации учетных записей POP3 через базу данных Заметьте, что здесь не требуется совпадения видимых снаружи имен пользователей, не зависящую от учетных записей Linux. На данном пользователей (в нашем примере, anna и chris) со внутренними имена- уроке уже подпущено достаточно ежей под череп, но в следующем ми (anna_smith и cbrown). номере Linux Format я попытаюсь решить вопрос об аутентификации Конвертируем этот файл в «карту», используя команду postmap: внутри почтовых систем и в Postfix и в Dovecot. Пишите на answers@ # postmap /etc/postfix/virtual_mailbox_map linuxformat.ru, если у вас возникнут проблемы с вашим почтовым сер- В результате появится файл virtual_mailbox_map.db. Карта, в дан- вером. LXF ном случае, просто вид индексированной структуры данных, ключи которой могут быть эффективно просмотрены Postfix. Postfix подде- рживает несколько типов «карт»; по умолчанию это обычно «хэш».

Через месяц Научим наш почтовый сервер аутентификации.

Март 2008 Linux Format 69 УчебникMatplotlib Графики Графики в Python и диаграммы – несколькими строчками переносимого кода!

на DVD

NumPy 1.0.4 Строим Matplotlib 0.9.12 Код примеров статьи графопостроитель

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

ечь в этой статье пойдет о Matplotlib – мультиплатформенном некоторых дистрибутивов Linux – /usr/share/Matplotlib/.Matplotlibrc). пакете для создания двумерных диаграмм на языке программи- Опытным пользователям Linux должно быть очевидно, что можно Ррования Python. С его помощью можно отрисовывать самые раз- скопировать этот файл в свой домашний каталог (точнее, в каталог / нообразные диаграммы, причем объем кода, в большинстве случаев, не home/[user]/Matplotlib/.Matplotlibrc) и изменить желаемые настройки. превысит несколько десятков строк. Другая замечательная особенность Очень рекомендуется сразу поправить имена шрифтов, используемых данного пакета – это способность встраивать диаграммы в различные по умолчанию, например, на стандартные шрифты TrueType/OpenType библиотеки графического интерфейса: Tk, wxWidgets, Qt и GTK+. от Microsoft или шрифты Postscript, содержащие русские символы. Я Итак, для сегодняшнего урока нам потребуются: установил следующие имена шрифтов: Язык программирования Python. font.serif : Verdana Библиотека графического интерфейса GTK+. font.sans-serif : Arial,Verdana Интерфейс к библиотеке GTK+ для языка Python – PyGTK. font.cursive : Arial Библиотека для работы с многомерными массивами и численными font.fantasy : Comic Sans MS методами NumPy (эта библиотека интенсивно используется Matplotlib font.monospace : Arial для оптимизации обработки числовых данных). При использовании русского языка не возникает никаких проблем, Собственно сам пакет Matplotlib. если сохранять исходные тексты программ в кодировке UTF-8. Для Я не буду описывать магию установки программ во всех мыслимых этого в первых строках программы лучше явно указать кодировку с вариантах, но скажу, что для большинства дистрибутивов Linux (и для мощью следующего заклинания: ОС Windows) доступны скомпилированные пакеты, в том числе в виде #!/usr/bin/env python RPM, Deb и Fink. Если же вы пожелаете воспользоваться исходными тек- # -*- coding: UTF-8 -*- стами, нужно просто распаковать архив в какой-нибудь каталог, а затем Для строк, содержащих русские символы, также следует указывать выполнить команды: кодировку явно: python setup.py build unistring=u'Это строка в кодировке Unicode - UTF-8' sudo python setup.py install По умолчанию пакет устанавливается в каталог /usr/local/lib/ Рисуем график функции python2.x/site-packages/Matplotlib/. Чтобы изобразить диаграмму средствами Matplotlib, нужно создать В этом каталоге следует открыть файл font_manager.py и обратить экземпляр класса Figure, который служит контейнером для одного внимание на строки, указывающие на каталоги со шрифтами: или нескольких экземпляров класса Subplot. Класс Subplot является, в X11FontDirectories = [ свою очередь, контейнером для одной-единственной диаграммы. # an old standard installation point Конструктор класса Figure принимает следующие параметры: «/usr/X11R6/lib/X11/fonts/TTF/», figsize = (width,height) – размер изображения в дюймах. Как показали # here is the new standard location for fonts эксперименты, этот параметр не влияет на размер диаграммы в окнах «/usr/share/fonts/», GTK+, он влияет только на размер диаграммы при ее сохранении во # documented as a good place to install new fonts внешний файл. «/usr/local/share/fonts/», dpi – количество точек на дюйм. Этот параметр задает размеры # common application, not really useful всех элементов диаграмм, включая масштаб шрифтов и линий. Для «/usr/lib/openoffice/share/fonts/truetype/», аккуратного отображения диаграмм на экране дисплея значения этого ] параметра можно варьировать от 60 до 120 .При разрешении монитора Если в вашей системе кириллические шрифты находятся в других 1280х1024 приемлемое качество получится примерно при 75–85 dpi. каталогах, то очевидно, их нужно добавить в список. В противном слу- facecolor – цвет фона для диаграмм. чае Matplotlib возьмет нелокализованные шрифты из своего каталога, Область рисования диаграмм может быть обведена рамкой. Для этого и тогда уж не ждите корректоного отображения кириллицы. можно задать следующие параметры: Маtplotlib использует конфигурационный файл .Matplotlibrc, кото- edgecolor = цвет рамки. рый находится в каталоге /usr/local/share/Matplotlib/.Matplotlibrc (для linewidth = 1.0, толщина линий рамки.

70 Linux Format Март 2008 Графики в Python Учебник

frameon = True/False – рисовать/не рисовать рамку вокруг диаграмм. первый раз изображается синяя линия, а второй раз – маркеры в виде Каждый С помощью параметра subplotpars можно задать поля (свободное красных окружностей. охотник место) вокруг диаграмм. Для этого существует класс SubplotParam, #рисуем график функции сплошной синей линией желает знать... который создается следующим конструктором: line2=self.subplot1.plot(X2,f(X2),color='blue') Несколько слов о params=SubplotParams(left=0.1, bottom=0.1, right=0.9, #рисуем график функции для точек X1 маркерами (красными том, как задается top=0.9,wspace=0.1,hspace=0.1) окружностями) цвет. В пакете Параметры задаются в десятичных долях от общего размера обла- line1=self.subplot1.plot(X1,f(X1),'ro') Matplotlib это мож- сти рисования. Параметры left, bottom, right и top задают соответствен- После того, как создан график, экземпляр класса Figure следует но сделать одним из трех способов: но положение левой, нижней, правой и верхней границ диаграммы. упаковать внутрь стандартного виджета .DrawingArea. Для этого 1 Однобуквенные Параметры wspace и hspace задают свободное место между диаграм- нужно создать экземпляр класса FigureCanvas и передать ему в каче- аббревиатуры: мами по вертикали и горизонтали и нужны только в том случае, если стве параметра экземпляр Figure: b : blue Figure содержит более одной диаграммы. #scrolled window g : green Пример создания экземпляра Figure: self.scrolledwindow1 = gtk.ScrolledWindow() r : red fig = Figure(figsize=(4,3), dpi=85,facecolor='white',edgecolor='lightblue', self.scrolledwindow1.show () c : cyan linewidth = 4.0, frameon = True, self.vbox1.pack_start (self.scrolledwindow1, True,True, 0) m : magenta subplotpars=SubplotParams(left=0.1, bottom=0.1, right=0.9, self.scrolledwindow1.set_border_width ( 8) y : yellow top=0.9,wspace=0.1,hspace=0.1)) # k : black Теперь можно добавить в fig контейнер для диаграммы self.canvas = FigureCanvas(self.figure1) # «упаковать» диграмму w : white myplot = fig.add_subplot(1,1,1) внутрь gtk.DrawingArea 2 В виде строки Параметры метода add_subplot(numRows,numCols,plotNum) имеют self.canvas.set_size_request(700,500) # минимальнй размер области RGB в шестнадца- теричном пред- следующий смысл: рисования ставлении – numRows – количество диаграмм в строке. self.scrolledwindow1.add_with_viewport(self.canvas) '#rrggbb', numCols – количество диаграмм в столбце. Диаграммы при этом нуме- Поведение диаграммы в Matplotlib достаточно умное: можно уве- например: руются последовательно, слева направо, построчно, и для каждой диа- личивать и уменьшать масштаб, можно экспортировать диаграмму mycolor= '#00008B' граммы задается параметр plotNum – номер диаграммы по порядку. во внешний файл (поддерживаются форматы PNG, JPEG и Postscript). 3 Название цвета. Например: Для более наглядной манипуляции с диаграммами, есть специаль- Список используе- plot1=fig.add_subplot(2,2,3) ный управляющий виджет – NavigationToolbar, который также можно мых названий цве- Так можно создать диаграмму, разделив область рисования на два использовать как виджет GTK+. тов можно увидеть столбца и две строки, и вывести ее в первом столбце второй строки. в файле colors.py Или: Столбцовые и круговые диаграммы (см. исходные plot2=fig.add_subplot(2,2,2) Наиболее распространенными видами диаграмм являются столбцовые тексты). что означает: создать диаграмму, разделив область рисования на два и круговые, и пакет Matplotlib успешно справляется с их построением. столбца и две строки, и вывести диаграмму во втором столбце первой В следующем примере я попытаюсь показать, как строить несколько строки. диаграмм разного вида внутри контейнера Figure. Давайте, к примеру, изобразим график функции y=sin(2*pi*x)*exp(-x) На сайте Департамента Энергетики США (http://www.eia.doe.gov/ipm/) на интервале (0,5) с шагом 0.02 и отрисуем на нем красные окружности можно найти разнообразную статистику по мировой добыче нефти и (точки) с шагом 0.1. Сначала создадим экземпляр класса-контейнера газа. Попробуем оценить долю РФ в мировых запасах нефти и долю, Figure и добавим в него экземпляр класса subplot: занимаемую РФ в мировой добыче. #рисуем график функции Для начала давайте построим столбцовую диаграмму «Мировые Осцилограмма self.figure1 = Figure(figsize=(4,4), dpi=85,facecolor='lavender', запасы нефти на 1 января 2006 года». Опишем исходные данные в виде затухающих edgecolor='lavenderblush',linewidth = 12.0, списка: колебаний, как frameon = True,subplotpars=SubplotParams(left=0.1, bottom=0.1, сказали бы физики. right=0.9, top=0.9,wspace=0.1,hspace=0.1)) self.subplot1=self.figure1.add_subplot(1,1,1)# self.subplot1.set_title(u' График функции y=sin(2*pi*x)*exp(-x)', fontsize=18) Matplotlib интенсивно использует модуль NumPy, который содер- жит библиотеку математических и служебных функций. Одной из них является функция arange(start, stop, step), которая создает массив из последовательности чисел в диапазоне (start, stop) c шагом step. Эта функция часто используется для задания значений осей диаграммы. Определим с ее помощью массивы значений для оси X. #массивы значений для оси X X1=arange(0.0,5.0,0.1) X2=arange(0.0,5.0,0.02) А вот и сама функция, которую нужно рисовать. #определим функцию для графика def f(t): s1 = sin(2*pi*t) e1 = exp(-t) return multiply(s1,e1) Отображение графика выполняет метод plot() класса Subplot, кото- рый принимает множество параметров (в том числе цвет, толщину и прозрачность линии и т.д.). Параметры эти детально описаны в доку- ментации. Кроме рисования линиями, можно рисовать специальными символами-маркерами. В нашем примере график рисуется дважды:

Март 2008 Linux Format 71 Учебник Графики в Python

вать метод bar класса subplot, который, собственно, и рисует столбцо- вую диаграмму. Параметр width задает процент заполнения столбцом отведенного ему прямоугольника по ширине. В нашем примере каждый столбец будет занимать 75 % от максимально возможной ширины: #массивы значений для оси X X=arange(len(DataSource)) dataY=[x[1] for x in DataSource ] width = 0.75 barchart= self.subplot1.bar(X1, dataY1, width) Теперь осталось только настроить диграмму: self.subplot.set_axisbelow(True)#координатную сетку на задний план self.subplot.grid(True)# координатную сетку рисовать self.subplot.set_xlim(-1,len(X)+1)# Максимальные и минимальные значения по оси X labels=[x[0] for x in DataSource] # Список меток оси х self.subplot.set_xticks(X+width/2.,) # Местополжение меток строго по центру столбца self.subplot.set_xticklabels(labels,rotation=90) # установить метки для оси X, повернуть их на 90 градусов self.subplot.set_ylabel(YLabel) # название оси Y Для каждого столбца диаграммы мы устанавливаем цвет из спи- ска cl_bars: indcolor=0 Да, на этом долго for bar in barchart: # не протянешь... OilReservesbyCountry=(('Saudi Arabia',264.3),('Canada',178.8),('Iran', bar.set_facecolor(cl_bars[indcolor]) 132.5),('Iraq',115.0), indcolor=indcolor+1 'Kuwait',101.5),('UAE',97.8),('Venezuela',79.7),('Russia',60.0), Круговая диаграмма создается тремя строчками кода с вызовом ('Libya',39.1), метода pie класса Subplot. Параметры этого метода, на мой взгляд, ('Nigeria',35.9), ('United States',21.4),('China',18.3),('Qatar',15.2), самоочевидны. ('Mexico',12.9),('Algeria',11.4),('Brazil',11.2), ('Kazakhstan',9.0), self.subplot3=self.figure1.add_subplot(2,2,3)# ('Norway',7.7),('Azerbaijan',7.0), self.subplot3.set_title(u'Доля России в мировых запасах',fontsize=14) ('India',5.8),('Rest of World',68.1)) self.subplot3.pie(RussiaPartOilReserves,labels=(u'Россия',u'прочие\n Его элементами является список пар вида (страна, запасы нефти). страны '), Для выборки данных из таких структур язык программирования Python autopct = '%1.1f%%',explode=(0.2,0.2),colors=('#C9A24B','#CCCC99'), имеет специальный синтаксис. Так, для получения списка стран можно shadow=True) использовать следующую конструкцию: Вид нашей тестовой программы приведен на рисунке. Как можно labels=[x[0] for x in OilReservesbyCountry]#Получаем список стран видеть, Россия имеет не такую уж значительную долю в мировых запа- Совершенно аналогично можно выбрать и второй элемент (запасы сах нефти, при этом добывается огромное количество сырья на экс- нефти): порт. Это означает, что наше правительство должно проводить поли- dataY1=[x[1] for x in OilReservesbyCountry] тику сокращения добычи экспортной нефти и использовать текущие Для рисования диаграммы будем использовать следующие цвета: доходы для развития других экспортных (несырьевых) возможностей #цвета нашей страны. cl_background='#E8D6BB'#фон cl_grid='#330000'#линии сетки Настройка диаграммы cl_bars=('#330000','#660000','#993300','#996600','#CC6600', В предыдущих примерах мы задавали параметры оформления диа- '#CC6666','#CC9900', грамм (такие как цвет линий и фона, шрифты и т.д.) с помощью вызо- '#CC9966','#CCCC99','#CCCC00','#C9A24B','#94AB27','#8A8B75', ва методов различных классов. Тем самым мы неявно переопределяли '#8A725E','#A080A4', параметры, заданные в .Matplotlibrc. Но есть и другой путь: переопре- '#9C8BBF','#969CE7', '#976CD1','#983BBA','#A92998','#AAAA9A', делить нужные значения конфигурационного файла Matplotlibrc всего '#EFBEAA','#CCCC66') один раз. Это намного удобнее, чем задавать многочисленные настрой- Cобственно отрисовку диаграммы вынесем в метод класса ки с помощью параметров различных методов классов, и позволяет drawbarchart: сократить код в том случае, если приходится создавать несколько диа- def draw_barchart(self,NumChart,Title,DataSource,YLabel): граммами и хочется иметь одинаковый внешний вид. '''метод создает столбцовую диаграмму параметры : numChart- номер диаграммы Полезные ссылки Title- заголовок DataSource- исходные данные http://www.python.org – официальный сайт Python. Здесь вы можете YLabel-метка для оси Y найти документацию и самую важную информацию об этом замечательном ''' языке программирования. Теперь можно создать экземпляр класса subplot: http://www.pygtk.org – интерфейс к GTK+ для языка программирования Python. Особую ценность представляет FAQ по использованию PyGTK. self.subplot=self.figure1.add_subplot(2,2,NumChart,axisbg=cl_ http://numpy.scipy.org/ – библиотека численных методов NumPу. background)# Matplotlib использует эту библиотеку и без нее не работает. self.figure1.subplots_adjust(left=0.1,bottom=0.05,hspace=0.9) http://Matplotlib.sourceforge.net/ – сайт библиотеки Matplotlib: доку- self.subplot.set_title(Title,fontsize=14) ментация, примеры и FAQ. Далее нужно подготовить исходные данные для диаграммы и вызы-

72 Linux Format Март 2008 Графики в Python Учебник

Решение этой задачи оказывается на редкость простым. Нужно И напоследок... всего-навсего импортировать из модуля Matplotlib функцию с име- Matplotlib имеет множество функций, не описанных в данной ста- нем rc: тье. На сайте разработчиков можно найти многочисленные примеры from matplotlib import rc практического использования пакета для визуализации самых разноо- Эта магическая функция позволяет переопределить любые параме- бразных данных. Все, чем мы пользовались в наших примерах – язык тры Matplotlibrc в простой и наглядной форме: программирования Python, GTK+, PyGTK и Matplotlib – распространяет- rc('xtick', labelsize=12,color='white',direction='out') # x tick labels ся под свободными лицензиями. rc('lines', lw=0.5, color='#FFCF00') # thicker black lines И, наконец, в качестве бонуса для самых любознательных отмечу, rc('grid', c='#FFCF00', lw=0.5) # solid gray grid lines что все примеры из данной статьи (как и подавляющее количество при- rc('text', color='#FFCF00') меров, распространяемых вместе с библиотекой) без каких-либо моди- rc('axes', labelcolor='#FFCF00') # axes сolor фикаций работают в XP/2000/2003, а все необходи- rc('xtick', color='#FFCF00') # color of the tick labels мые для этого ингредиенты можно найти в откомпилированном виде. rc('ytick', color='#FFCF00') # color of the tick labels Переносимость, особенно задаром – это плюс, не так ли? LXF

Март 2008 Linux Format 7 3 УчебникМиграция Спам-фильтр из Windows в Linux Меняем «прописку» без лишних проблем Sendmail без спама Любите ли вы получать спам? Вопрос, наверное, риторический. Евгений Кропоткин предложит пару методик, вполне способных защитить от этой напасти небольшую фирму.

самом конце 90-х годов прошлого века, когда я завел свой пер- Чтобы закрыться от зомби, добавьте к вашей почтовой системе вый почтовый ящик, рекламные сообщения в количестве 3-4 фильтр, позволяющий выделить таких отправителей и отказать им В штук в месяц, причем преимущественно на английском языке, в обслуживании. Например, для sendmail можно взять smf-zombie, даже забавляли. Но в наше время, когда объем рекламы, рассылае- доступный по адресу http://smfs.sourceforge.net/smf-zombie.html. мой по каналам электронной почты, превысил все разумные пределы, Загрузите исходные тексты с указанного выше сайта (архив с про- необходимо как-то защищаться от потока ненужной корреспонденции. граммой smf-zombie-1.2.1.tar.gz занимает около 13 КБ) и распакуйте его, Чтобы победить врага, как известно, надо его познать. Как рассылает- скажем, в ~/smf-zombie-1.2.1. Не помешает также прочитать сопроводи- ся спам? Раньше (примерно лет 7–10 назад) наиболее популярным спосо- тельную документацию. После этого отредактируйте файл smf-config.h бом было использование «дыр» в настройках почтовых служб, принимав- в соответствии с вашими требованиями – введите IP-адреса локальной ших к отправке письма от кого угодно (такой сервер называется «откры- сети и имя домена или доменов вашей почтовой системы (они задают- тым ретранслятором» или «open relay»). Сейчас эту «лавочку» практиче- ся расширенными регулярными выражениями): ски прикрыли – в конфигурациях всех почтовых демоноа ретрансляция #define WHITE_LIST «(^127\\.0\\.0\\.1$|^192\\.168\\.[0-9]+\\.[0-9]+$)» сообщений по умолчанию отключена, информация о защите сервера от #define FAKE_HELO «(^domain1\\.tld$|^domain2\\.tld$)» использования в качестве узла для рассылки очень доступна и понятна. После правок наберите команду make, чтобы скомпилировать Затем стало популярным рассылать спам со своего домашнего фильтр. Затем выполните от имени root скрипт install.sh – он создаст или офисного компьютера, используя локальный SMTP-сервер; одна- в вашей системе непривилегированного и группу, от имени которых ко, большинство провайдеров отслеживает нетипичную активность в будет работать smf-zombie (по умолчанию, smfs:smfs). Наконец, уста- сети и реагирует на нее блокировкой. Частая отправка писем обычным новите фильтр командой make install (также от имени суперпользова- домашним пользователем смотрится неправдоподобно, особенно если теля). Если все пройдет гладко, исполняемый файл можно будет найти поток почты идет продолжительное время. С такими рассылками мож- в каталоге /usr/local/sbin. но очень эффективно бороться с помощью механизма «черный спи- Наконец, выберите в каталоге init скрипт запуска для вашей систе- сок», в который заносятся уличенные в рассылке спама хосты. мы и поместите его в /etc/init.d. Мне подошел smfzombie.redhat, кото- Так как оба перечисленных способа практически ушли в прошлое, рый я сохранил как /etc/init.d/smfzombie, для краткости. для рассылки спама потребовалось новое средство. Все мы помним Настало время настроить взаимодействие с sendmail. Аккуратно вирусные эпидемии, которые оценили и люди более прагматичные, поправьте файл sendmail.cf, внеся в него следующую строку: чем обычные вирусописатели «для души». Были созданы черви и виру- Xzombie, S=local: /var/run/smfs/smf-zombie.sock, F=, T=S:4m;R:4m сы, позволяющие управлять зараженным компьютером в своих целях. Не забудьте также указать zombie в списке InputMailFilters (ненуж- Авторы червей контролируют скомпрометированные системы, что ные имена фильтров можно убрать). позволяет отсылать спам даже более массово, чем с использованием InputMailFilters=clamav,milt,zombie прежних технологий; благодаря огромному количеству подконтроль- Теперь запустите фильтр: ных компьютеров отправка сообщений с каждого отдельного хоста /etc/init.d/smfzombie start не такая частая, почти в пределах нормальной активности, и вызывает При этом в каталоге /var/run/smfs должен появиться сокет: меньше подозрений у провайдера. Такие подконтрольные компью- ls -al /var/run/smfs теры (а их могут быть многие тысячи) называют «зомбированными». итого 8 Черные списки против них работают плохо, так для отправки сообще- drwx------2 smfs root 4096 Ноя 28 17:53 . ния как каждый раз можно выбирать новый компьютер-зомби, а про- drwxr-xr-x 13 root root 4096 Ноя 28 17:46 .. смотр огромных черных списков еще и перегружает почтовый сервер. srw------1 smfs smfs 0 Ноя 28 17:53 smf-zombie.sock Если все прошло, как надо, перезапустите sendmail: Зомби не пройдут /etc/init.d/sendmail restart Однако, если внимательно посмотреть на имена компьютеров-зомби, Отсутствие сообщений об ошибках вроде станет примерно понятно, как можно «перекрыть им кислород» – сле- WARNING: Xspamassassin: local socket name /var/run/spamass-milter. дует отказать в соединении IP-адресам, выдаваемым из динамических sock missing пулов; также следует заблокировать чрезмерно длинные домены, ска- означает, что sendmail и фильтры начали взаимодействовать. Это будет жем, 4-го уровня и выше, которые обычно выдаются бесплатно, и поте- заметно по количеству прошедшего спама и журналам (в моей системе рять их пользователям совершенно не жаль. Т.е. следует попытаться это файл /var/log/maillog). Перед перезапуском sendmail не забудьте ограничиться доменными именами, зарегистрированными в установ- запустить другие фильтры и антивирусы, если они используются. ленном порядке и имеющими внятное «произношение». Те, кому сле- дует отказать в праве передавать почту, выглядят так: Ночью все кошки серы 125-25-133-146.adsl.totbb.net Есть и другая интересная технология фильтрации, которую назвали adsl-dynamic-pool-xxx.fpt.vn greylisting [«серые списки»]. Ее описание доступно по адресу http:// bb121-7-204-57.singnet.com.sg en.wikipedia.org/wiki/Greylisting. Суть в том, что при поступлении почты pool-72-88-230-252.nwrknj.east.verizon.net от нового пользователя, никогда раньше не присылавшего сообщений

74 Linux Format Март 2008 Спам-фильтр Учебник

на данный сервер, ему выдается временный отказ. Обычные почто- гурационный файл smf-grey.conf – пропишите в нем IP адреса и домены Скорая вые сервера, в зависимости от настроек, обязательно попробуют чуть вашего «белого списка», в конце файла добавьте помощь позже отправить почту повторно, а программы рассылки спама, ско- Syslog local4 рее всего, не будут повторять попытку – они берут не качеством, а – это позволит выделять сообщения данного фильтра средствами Небольшая реко- количеством. syslog: просто добавьте в /etc/syslog.conf строчки: мендация по набо- Обычно для реализации этой технологии используются некоторые #smf-grey ру фильтров: при части информации из сообщения. Объединенные вместе, они так назы- local4.* /var/log/greylist.log количестве писем ваемый «триплет» или три информационных поля: IP-адрес, с которо- Файл конфигурации smf-grey.conf следует скопировать в каталог / примерно до го пытались отправить почту, адрес электронной почты отправителя и etc/mail/smfs/, а затем дать команды: 10–20 тысяч в сут- адрес получателя. touch /var/log/greylist.log ки и достаточно Из триплетов формируется внутренняя база почтового сервера. /etc/init.d/syslog restart мощном компью- тере можно обой- Если триплет полученного сообщения незнаком серверу, он выдает и создать кэш-файл фильтра: тись только smf- отправителю сообщение о своей временной недоступности. Однако, touch /var/run/smfs/smf-grey.cache gray. Особенность такая строгая проверка не обязательна. Многие graylist-фильтры не chown smfs:smfs /var/run/smfs/smf-grey.cache «продвинутой вер- требуют полного совпадения IP адреса, так как у крупных почтовых Как и в случае smf-zombie, необходимо выбрать в каталоге init сии» в том, что ее систем не один IP-адрес, а целый пул. Предполагая, что пул у таких подходящий стартовый скрипт и поместить его в /etc/init.d, после чего не надо перезагру- отправителей находится в одной подсети класса C, проверяют только отредактировать sendmail.cf, добавив строку для фильтра жать при измене- первые 24 бита IP адреса. В некоторых фильтрах реализована функция, Xgray, S=local:/var/run/smfs/smf-grey.sock, F=, T=S:4m;R:4m нии файла конфи- которая при подтверждении адреса отправителя разрешает отправку и дописав его имя (gray) в список InputMailFilters: гурации: она сама почты всем пользователям подтвержденного домена. InputMailFilters=clamav,milt,zombie,gray проверяет его раз Для пользователя такая фильтрация не требует никакого уча- Проверим работу получившейся системы. Откройте еще один тер- в 15 секунд. Кроме того, эта версия стия и настроек с его стороны, единственное небольшое неудоб- минал и наберите tail -f messages | grep smf или tail -f greylist.log, если менее чувстви- ство – задержка с доставкой первого сообщения. Для администра- вы внесли правки в конфигурационный файл syslog. Затем перейдите тельна к сбоям тора почтовой системы настройка фильтра достаточно проста и в исходный терминал, запустите фильтр и перезапустите sendmail: в структуре кэш- может, в принципе, ограничиться редактированием локальных белых /etc/init.d/smfgrey start && /etc/init.d/sendmail restart файла триплетов. списков (например, офис и филиалы можно добавить сразу). Кроме Во втором терминале может появиться сообщение о невозможно- того, данный вид фильтрации нагружает почтовую систему меньше, сти загрузить кэш. Если все было сделано верно, это случится лишь чем интеллектуальные аналитические фильтры, поэтому лучше ста- единожды: после остановки или перезапуска фильтра командой /etc/ вить его перед ними. init.d/smfgrey restart сообщения уже не будет, а файл /var/run/smfs/smf- К недостаткам технологии можно отнести то, что она не позволяет grey.cache будет заполнен записями фильтра. быстро ответить на письмо нового отправителя, а также то, что некото- рые отправители, в силу технических ограничений, могут не уложиться Есть ли жизнь без спама? в отведенное им для повтора время, и в результате не смогут доставить После прочтения статьи у пытливого читателя может возникнуть резон- письмо вообще. Кроме того, что при наличии нескольких MX-записей ный вопрос: «Все хорошо, а насколько эффективны эти ваши методи- все они должны быть защищены аналогичным образом, иначе спам ки?». Кое-какую информацию на этот счет можно почерпнуть из табли- все равно будет доставлен. Также возникает сложность с легитимными цы. Если же «спам достал», а настроить собственную почтовую систему отправителями с динамическими IP-адресами. нет возможности, для объявлений с публичным почтовым адресом, Одна из реализаций данной методики доступна по адресу http://smfs. которые неизбежно подает организация – поиск работников, марке- sourceforge.net/smf-grey.html, там же есть ссылка на более функциональ- тинг и т.п. – неплохим выходом будет использовать публичные сервера ную версию этой программы – http://smfs.takm.com/; именно ее я и предла- вроде Gmail с перенаправлением на внутренний ящик: почту они филь- гаю установить. Скачайте и распакуйте архив с программой, как и в случае труют неплохо, кроме того, можно периодически закрывать один адрес smf-zombie: он почти такой же маленький (около 17 КБ). Далее выполни- и заводить другой. Правда, следует иметь в виду, что использование те традиционную пару make && su make install; если вы не устанавливали бесплатных почтовых служб расценивается многими как несолидное smf-zombie, предварительно запустите install.sh. Отредактируйте конфи- поведение. Какое из двух зол меньше – решайте сами. LXF Отчет о почте домена (41 почтовый ящик) данные журналов аналитика всего отсеяно milt прошло всего отсеяно пропущено milt отсеяно smf-grey дата почта спам milt 100849 62543 вечер 17.01 (17:40) 101893 63264 38 1044 721 323 30,94% 285 27,30% утро 17.01 (7:39) 3,64 96,36 102649 63556 273 756 292 464 61,38% 191 25,26% день 17.01 (15:24) 36,11 63,89 105708 65394 279 3059 1838 1221 39,92% 942 30,79% утро 21.01 (09.49) 9,12 90,88 106704 65884 284 996 490 506 50,80% 222 22,29% день 21.01 (14.55) 28,51 71,49 108846 67403 171 2142 1519 623 29,08% 452 21,10% утро 22.01 (7.31) 7,98 92,02 112985 69265 160 4139 1862 2277 55,01% 2117 51,15% утро 23.01 (8.13) 3,87 96,13 114461 70125 268 1476 860 616 41,73% 348 23,58% вечер 23.01 (17.49) 18,16 81,84 117351 71645 416 2890 1520 1370 47,40% 954 33,01% вечер 24.01 (17.50) 14,39 85,61 Итого: 1889 16502 Почта 11,45% Спам 88,55% Примечание: milt – фильтр собственной разработки, аналогичный smf-zombie. В статистике учитывается почта, отсылаемая в обоих направлениях

Март 2008 Linux Format 75 УчебникПлагин WordPress за 10 минут Расширяем функциональность самого популярного в мире блог-движка Пишем плагин для WordPress на DVD Считаете, что WordPress хорош, но ему не достает одной ма-а-а-аленькой Исходный код плагина штучки? Или просто хотите прославиться на весь мир свободного ПО? SimpleAdvert Валентин Развозжаев научит, что нужно делать.

а сегодняшний день WordPress является самым популярным Каталог плагина > блоговым движком с открытым исходным кодом – именно Основной файл плагина Нему отдают предпочтение более 70% пользователей, веду- Подкаталог js (скрипты JavaScript) щих автономные сетевые дневники. Движок прост в установке, очень Подкаталог (таблицы стилей CSS) удобен, для него написано огромное количество плагинов, способных Подкаталог php (остальные файлы) удовлетворить все мыслимые и немыслимые потребности пользова- Если весь код плагина содержится в одном файле, то можно просто телей (LXF99). Но что делать, если нужного вам плагина еще нет? скопировать его в каталог wp-content/plugins/. Напишите его сами! В качестве примера мы рассмотрим простенький После того, как вы активируете плагин, его код будет загружать- плагин, добавляющий рекламный блок в конце каждой записи. HTML- ся на каждой странице Wordpress, поэтому с добавлением большого код блока можно будет задать в настройках плагина в административ- количества плагинов работа движка замедляется. ной панели. Скелет модуля Плагины в Wordpress Основной файл плагина начинается с блока комментария, который Все плагины Wordpress находятся в каталоге wp-content/plugins/. Для содержит название, версию и URI плагина, а также сведения об авторе. того, чтобы сдобавить еще один, нужно скопировать файлы плагина в Для нашего плагина он будет выглядеть так: этот каталог и активировать плагин в панели управления администра- Плагины > Управление плагинами). /* получиться в итоге. При этом для каждого плагина желательно придерживаться сле- Plugin Name: SimpleAdvert дующей структуры каталогов: Plugin URI: http://www.pluginsite.com/simpleadvert Description: A plugin that adds advertising block to the end of each topic. Author: homo.creativus Version: 1.0 Author URI: http://www.authorsite.com */ ?> Этот блок обязателен: если его нет, то плагин не будет добавлен в список плагинов административной панели. Во избежание конфликтов в именах функций, для каждого плагина желательно создавать отдельный класс: if (!class_exists( “SimpleAdvert”)) { class SimpleAdvert { function SimpleAdvert() { // конструктор ... }

} } После объявления класса плагина следует создать объект: if (class_exists( “SimpleAdvert”)) { $simple_advert = new SimpleAdvert(); } А затем нужно объявить обработчики событий Wordpress и фильтры:

76 Linux Format Март 2008 WordPress Учебник

if (isset($simple_advert)) { // Обработчики событий События ... Параметры // Фильтры Действие Описание ... функции плагина } Вызывается при изменении записи или страницы (включая ID записи Edit_post Ими-то мы сейчас и займемся. добавление или удаление комментариев) или страницы Вызывается при публикации записи или при ID записи publish_post Реагируем на внешний мир редактировании уже опубликованной заметки В Wordpress есть стандартные события (например, публикация поста, Вызывается при сохранении или обновлении записи ID записи save_post изменение темы или открытие страницы в административной пане- или страницы или страницы ли), которые при необходимости можно обработать, вызвав одну из ID записи функций плагина. Вызываемая функция может выполнить следующие delete_post Вызывается при удалении записи или страницы или страницы действия: записать данные в БД; ID комментария и Вызывается после добавления нового комментария его статус («spam», отправить сообщение электронной почты; comment_post в базу данных 0 – отклонен, изменить содержимое загружаемой страницы. 1 – одобрен) Для добавления обработчика используется функция add_action: add_action('hook_name','your_function_name',[priority],[accepted_ edit_comment Вызывается после изменения комментария в базе данных ID комментария args]); delete_ Вызывается перед удалением комментария из базы данных ID комментария Рассмотрим ее параметры: comment hook_name – событие, которое будет обработано (некоторые собы- Название switch_theme Вызывается при изменении текущей темы тия приведены во врезке, а их полный список можно найти на странице новой темы http://codex.wordpress.org/Plugin_API/Action_Reference); wp_login Вызывается при входе пользователя в систему Нет your_function_name – имя функции плагина, которая будет вызвана wp_logout Вызывается при выходе пользователя из системы Нет для обработки события; priority – необязательный параметр, отвечающий за то, в каком порядке будут вызваны функции, обрабатывающие конкретное собы- тие; по умолчанию приоритет равен десяти; функции с меньшим зна- Параметр $description содержит описание опции, параметр $autoload чением приоритета будут вызваны раньше других; ('yes', 'no') определяет, будет ли значение опции получено автомати- accepted_args – число параметров функции (по умолчанию 1). чески функцией get_alloptions. В свою очередь, фильтры – это специальные функции, которые Чтобы получить значение опции, используется функция производят промежуточную обработку данных перед их записью в БД get_option($name); или отображением на экране. При генерации страниц фильтры явля- Функция ются промежуточным звеном между БД и браузером, а при создании update_option($option_name, $newvalue) или изменении записей и комментариев – между браузером и БД. обновляет значение существующей опции. Большинство потоков данных в Wordpress проходят по меньшей мере Для работы с БД через объект базы данных нужно объявить ссылку через один фильтр. на этот объект в функции плагина: Для добавления фильтра используется функция add_filter: add_filter('hook_name', 'your_filter', [priority], [accepted_args]); Здесь hook_name – используемый фильтр (некоторые из них при- Фильтры ведены во врезке, а полный список – на странице http://codex.wordpress. org/Plugin_API/Filter_Reference), your_function_name – имя функции Действие Описание Параметры функции плагина плагина, которая будет вызвана, аргументы priority и accepted_args Применяется к содержимому записи content_edit_pre Нет имеют тот же смысл, что и в функции add_action. перед ее открытием для редактирования В нашем плагине мы используем фильтр the_content для добавле- Применяется к содержимому записи, ния рекламного блока в конец каждой записи: the_content полученному из БД, перед ее Нет add_filter('the_content', 'AddAdvertFilter'); отображением на экране Функция AddAdvertFilter будет содержать код для добавления Применяется к названию записи перед title_edit_pre Нет рекламного блока: ее открытием для редактирования function addAdvert($content = '') { Применяется к названию записи, global $simple_advert; the_title полученному из БД, перед ее Нет $code = get_option($simple_advert->adminOptionName); отображением на экране

Применяется к содержимому записи $content .= “

$code

”; content_save_pre Нет перед ее сохранением в БД return $content; Применяется к названию записи перед } title_save_pre Нет ее сохранением в БД Взаимодействие с БД Применяется к тексту комментария, Существует два способа взаимодействия плагина с базой данных comment_text полученному из БД, перед его Нет Wordpress: с помощью опций и через объект базы данных. отображением на экране Опция представляет собой пару «имя – значение» и хранится в Применяется к тексту комментария pre_comment_content Нет таблице wp_options. Имя опции должно быть уникальным. перед его сохранением в БД Функция Применяется к постоянной ссылке перед the_permalink Нет add_option($name, $value, $description, $autoload) вызовом одноименной функции добавляет в базу данных опцию с именем $name и значением $value.

Март 2008 Linux Format 7 7 Учебник WordPress

function sample_function() { if (function_exists('add_options_page')) { global $wpdb; add_options_page('Simple Advert', $request = “SELECT post_id,post_title FROM $wpdb->posts”; 'Simple Advert', 9, basename(__FILE__), array(&$simple_advert, $results = $wpdb->get_results($request); 'printAdminPage')); ... } } } Наш плагин будет использовать единственную опцию simpleadvert_ } code, содержащую код рекламного блока: Кроме этого нужно зарегистрировать функцию SimpleAdvert_ap в add_option('simpleadvert_code', ''); качестве обработчика события admin_menu: Чтобы пользователь мог ввести рекламный код, нам придется пора- add_action('admin_menu', 'SimpleAdvert_ap'); ботать с административной панелью. Прикрутим интерфейс Перед тем, как создать страницу с настройками плагина в администра- тивной панели, давайте вкратце разберем принцип ее работы. На странице находится форма для ввода настроек и кнопка, при нажатии на которую эти настройки сохраняются в БД, а страница пере- гружается. При каждой загрузке страницы выполняются следующие действия: 1 Проверяется, ввел ли пользователь данные в форму (при сохране- нии настроек). 2 Если в форму были введены данные, то настройки сохраняются в БД и выводится сообщение о том, что настройки обновлены. 3 Выводится форма для ввода настроек плагина. Все эти действия реализует функция printAdminPage, которая и генерирует страничку с настройками. Вот ее код: function printAdminPage() { $Option = $this->getAdminOption(); Наш плагин едва ли может похвастаться уймой опций, ну да надо ж с чего-то начинать. if (isset($_POST['update_simpleAdvertSettings'])) { if (isset($_POST['simpleadvert_code'])) { $Option = $_POST['simpleadvert_ Готово. Скопируйте исходный файл плагина (его можно найти на code']; нашем DVD) в каталог wp-content/plugins и активируйте его в админи- } стративной панели. В настройках плагина (Настройки > Simple Advert) задайте код рекламного блока и нажмите на кнопку Update Settings. update_option($this->adminOptionsName, После этого выбранный вами рекламный блок будет появляться в кон- $Option); це каждой записи. ?>

»>

Simple Advert

Advert Code to Add to the End of a Post

» />

78 Linux Format Март 2008 Миграция из WindowsМигрируем в Linux из Windows Учебник Меняем «прописку» без лишних проблем Контора – ПК – Linux: рабочий треугольник

Перейти на Linux не так сложно, как кажется на первый взгляд. Дмитрий Дроздов готов поделиться своими фирменными рецептами.

поры о «готовности» Linux к использованию на настольном пользователей. Избежать проблем поможет продуманный план пере- офисном, сиречь «конторском», компьютере не утихают многие носа. Как минимум, надо скопировать: Сгоды. В ситуации нечеткого определения критериев той самой Личные файлы пользователя: документы, мультимедийный контент «готовности» неизменным результатом таких споров будет очередное и другие файлы. подтверждение народного наблюдения: «Сколько людей – столько и мне- Архив электронной почты, включая адресную книгу. ний». Автор вот уже несколько лет использует Linux (и большой набор Личные настройки (закладки, сертификаты и т.п.) web-браузера. программ с открытым кодом) в повседневной деятельности на обычном Данные из персональных информационных источников. Наш рабочем месте в обычном офисе, и готов поделиться своим опытом. У кого-то может возникнуть страх перед большим объемом работы, эксперт Задачи офисного сотрудника, не связанного непосредственно с но, как говорится, «Глаза боятся, а руки делают». Впрочем, в нашей Дмитрий Дроздов управлением ИТ-ресурсами, весьма стандартны: работа с электронной ситуации правильнее было бы сначала голову применить. руководитель почтой, текстовыми документами и электронными таблицами, пользо- проектов, использует Linux в офисной вание web-браузером и какими-то специальными приложениями. Для Копируем данные пользователей работе в течение всех этих задач (кроме специальных приложений) в Linux уже давно Начиная с версии Mandriva 2008.0, в состав Центра управления вклю- 7 лет и не собирается есть вполне работоспособные программы, которые надо просто уста- чен мастер импорта документов и настроек из Microsoft Windows. отказываться от надежной новить и научиться ими пользоваться. Любой современный дистрибу- Несколько раньше аналогичный инструмент по имени Migraiton и удобной среды тив предоставляет все необходимые средства если не «из коробки», то Assistant появился в Ubuntu (версия 7.04). Спрос на перенос системы, при минимальной настройке. Так что потенциально ничего необычного как говорится, рождает предложение. В целом, оба решения обеспечи- в использовании Linux в качестве основной операционной системы нет. вают приблизительно одинаковые возможности. Тогда почему же есть повод писать статью, которую вы читаете? Мастер в Mandriva 2008.0 пока не локализован, однако позволяет По большому счету, потребителю абсолютно все равно, каким обра- импортировать документы, закладки web-браузера и даже фоновое зом выполнен его заказ; интересуют лишь качество, сроки и цена. Однако изображение рабочего стола (!) из смонтированного раздела Microsoft в области ПО для персональных компьютеров сложилась парадоксальная Windows. Практически вся работа делается один раз и буквально ситуация: фокус смещен с выполнения задачи на инструменты ее реше- в несколько кликов мыши – надо только найти мастер на закладке ния, точнее, на выбор прикладного и системного ПО. Таким образом, мы «Система» Центра управления. постоянно находимся в плену у некого стереотипа: что все, что делается в Результатом работы мастера будет перенос всех обнаруженных определенных продуктах – «правильно», а все остальное – «альтернатив- документов и изображений из рабочих каталогов пользователей ное», а значит, и «неправильное». Поэтому первая задача при внедрении Windows. Хочется отметить, что кириллические названия папок и фай- Linux в офисе – убедиться и убедить, что открытое ПО дает хоть и альтер- лов переносятся вполне корректно (если, конечно, Windows-раздел нативное, но правильное (с точки зрения задач потребителя) решение. смонтирован правильно). Однако если какие-то важные данные поль- Следующая задача – подбор программного обеспечения. Поначалу даже сама возможность выбора пугает. Более того, в условиях, ког- да многочисленные специалисты по удобству использования твердят мантру, что программа может иметь только один вариант выполнения задачи, а меню всех приложений должно начинаться словом «Файл» и никак иначе, стать еретиком психологически очень сложно. Но – воз- можно: потом становится ясно, что широкий выбор программ повыша- ет эффективность работы. Выбрать программное обеспечение достаточно легко: любой настольный дистрибутив – Mandriva (мы остановимся именно на ней), Ubuntu или какой-то еще – при установке по умолчанию дает вполне достаточный набор программ для работы в офисе. Но это только пер- вая часть задачи, после решения которой необходимо сформировать рабочее окружение для пользователя, т.е. перенести все его файлы и дать удобные средства настройки автоматизации рабочих процессов. И эта вторая часть зачастую оказывается более трудной и требующей творческого подхода. Кажущаяся сложность переноса рабочего окружения являлась и является препятствием к миграции на Linux для значительного числа Мастера импорта документов и настроек Windows.

Март 2008 Linux Format 7 9 Учебник Мигрируем из Windows

зователя сохранены не в стандартной папке Documents and Settings\...\ Мои документы, то они не будут импортированы. Самое обескуражи- Перекодируем содержимое файлов вающее – вам не зададут никаких вопросов о переносе подобных доку- ментов. Неохваченными останутся даже файлы, просто «наваленные» Использование recode для перекодирования Для перекодировки всех файлов текущей пап- на рабочий стол, так что ручной работы, к сожалению, пока не избе- содержимого файла выглядит так: ки можно написать скрипт. Он настолько про- жать. Ее последовательность очевидна: recode .. имя_файла стой, что вполне может стать вашим первым скриптом на Bash; его даже можно ввести 1 Монтируются раздел(ы) файловой системы с документами и про- Замените и на имена кодировок, список которых можно получить, набрав recode прямо в командой строке: чими файлами, накопленными в Microsoft Windows. -l. Например (между именами кодировок стоят for FIL in *; do if [ -f «$FIL» ]; then recode 2 Внимательно рассматривается структура накопленных данных, две точки): cp1251..utf8 «$FIL» && echo «$FIL вырабатывается стратегия переноса. Возможно, что-то разумнее не recode cp1251..utf8 kernigan.txt recoded»; fi; done держать на винчестере, а заархивировать на других носителях, и удоб- перекодирует файл с именем kernigan.txt из Этот набор команд (впрочем, в нем есть и цикл, ный момент времени для этого как раз настал? кодировки Cp1251 в UTF8. и условный оператор, и оператор && для выво- 3 Нужные папки переносятся в домашний каталог пользователя, В отличиt от recode, iconv по умолчанию направ- да сообщения только в том случае, если пере- остальные – архивируются. ляет вывод на терминал и применяет несколько кодировка прошла успешно) перекодирует все 4 Принимается решение, надо ли перекодировать чисто текстовые иной синтаксис указания кодировок: файлы в текущем каталоге. Разобрать структу- файлы; в случае необходимости – эта операция выполняется. iconv -f cp1251 -t utf8 kernigan.txt | less ру «однострочника» будет полезным домаш- Самым длительным является второй этап, поскольку он требует Здесь мы используем канал и утилиту less для ним заданием, если у вас есть желание хотя бы обдумывания и определенного наведения порядка (хотя бы в мыслях), удобного просмотра текстового файла на экра- изредка пользоваться всей силой командной все остальное делается достаточно легко и не занимает много времени. не. Чтобы перенаправить вывод iconv в файл, строки. достаточно использовать команду перенаправ- Для перекодировки всех файлов во вложенных Переносим архив электронной почты ления вывода >. каталогах больше подойдет команда find: В некоторых случаях iconv сообщает о недопу- find ./ -type f -exec recode cp1251..utf8 '{}' \; Пожалуй, это наименее тривиальная задача, возникающая при пере- стимых знаках и прерывает конвертацию. Тогда Будут уместны лишь самые краткие поясне- ходе на Linux. К счастью, ее решение в случае использования Microsoft достаточно добавить еще один ключ -с, указы- ния: ./ ограничивает поиск текущим каталогом Outlook подробно описано в LXF100/101 (стр. 70). У нас, однако, высо- вающий на необходимость игнорирования (и всеми его подкаталогами), -type f указыва- кой популярностью пользуется программа The Bat!, и перенос почтово- недопустимых символов. Например: ет, что надо искать файлы, а -exec задает адресной базы из нее – стандартная проблема. iconv -f cp1251 -t utf8 -с kernigan.txt команду, которую необходимо применить к Для копирования адресной книги The Bat! проще всего экспортиро- И напоследок – пара советов по поводу того, как каждому найденному объекту, имя которого вать ее содержимое (можно – выборочно) при помощи штатных средств перекодировать сразу все файлы в каталоге. подставляется вместо {}. Заэкранированная в формат CSV (значения, разделенные запятыми) или LDIF. Данные в Возможны два варианта: не делать перекодиров- точка с запятой (\;) служит ограничителем этих форматах понимают все распространенные клиенты электронной ку для файлов во вложенных папках и перекоди- команды. Кстати, ограничив глубину поиска ровать все файлы, включая файлы в подкатало- текущей директорией при помощи параметра почты, существующие в Linux (тот же ), но вам почти гах. Решений может быть несколько; продемон- -maxdepth 1, можно было избежать цикла в наверняка потребуется перекодировать содержимое CSV-файла в UTF-8. стрируем лишь пару возможных подходов. первом примере. С самими письмами дела обстоят несколько хуже – в том смыс- ле, что решение этой задачи потребует немало ручного труда. The Bat! умеет экспортировать письма в «родной» для Linux формат – Unix Mailbox. Однако встроенными средствами это можно сделать лишь для Еще проблемы? Решения есть! одной папки. Для этого необходимо выбрать ее, выделить все письма (а Традиционной вспомогательной задачей при миграции является пере- может, стоит заодно решить вопрос лишь о частичном переносе, дабы кодировка данных. В качестве локали по умолчанию современные дис- не переполнять архив?) и активировать пункт меню Инструменты > трибутивы Linux используют UTF-8, а большая часть текстовых доку- Экспортировать. В появившемся диалоге выберите формат «Unix-ящик», ментов Windows хранится в CP-1251. Для ее решения вполне подойдут затем укажите имя файла... и так для каждой папки. Полученные файлы утилиты командной строки iconv или recode, об использовании кото- импортируйте по одному в выбранный почтовый клиент. рых можно прочитать во врезке или в man-страницах. Если в вашем А что, если папок больше десятка? Можно, например, уменьшить их Windows-архиве есть файлы еще времен DOS, то их содержимое, ско- число переносом писем в несколько крупных папок-«конгломератов», рее всего, осталось в кодировке CP866. И ее тоже можно превратить что может оказаться полезным, поскольку начинается «новая жизнь» в UTF-8 упомянутыми выше программами. Стоит ли устраивать массо- и можно попутно заняться реструктуризацией архива. вую перекодировку сразу всех файлов или же перекодировать отдель- Если это неприемлемо, а многократно щелкать мышью большого ные документы по мере их использования – следует решать отдельно желания нет, можно воспользоваться одной из утилит для пакетного в каждом конкретном случае. переноса файлов. Вероятно, наиболее удачной (по крайней мере, мне Другой проблемой является приведение к читаемому виду назва- не известно об ошибках при работе с ней) является утилита tb2kmail ний файлов, перенесенных с файловых систем, не поддерживающих Мальте Штреца [Malte S. Stretz], доступная по адресу http://msquadrat.de/ явное задание кодировки для их имен. Этого не случается (по крайней projects/tb2kmail. Tb2kmai – скрипт на языке Perl, а собственно конвер- мере, автору такие прецеденты не известны) при миграции с Windows, тация производится вызовом программы The Bat! с соответствующими но при миграции с иной локали Linux – всенепременно произойдет, параметрами командной строки. Значит, для конвертации сразу всех если использовались наиболее распространенные в открытой ОС фай- папок Perl-скрипт надо запускать в среде Windows, где установлена ловые системы ext2/3 или ReiserFS. «Чужеродные» имена представля- программа The Bat!. Эта задача (впрочем, на упомянутой выше страни- ются последовательностью вопросительных или других неосмыслен- це есть вполне внятная инструкция на английском языке и перечисле- ных знаков и могут обескуражить любого. ние необходимых для работы модулей Perl) станет хорошей разминкой Для решения задачи корректной перекодировки имен файлов и перед постоянным использованием скриптов в Linux. Tb2kmail позво- папок Бьерн Яке [Bjoern Jacke] написал на Perl великолепный скрипт – ляет конвертировать архив в формат KMail или Mozilla Thunderbird convmv (http://www.j3e.de/linux/convmv/). При его использовании нужно (при помощи специального патча), что вполне достаточно для решения иметь в виду, что перекодированы будут только имена, принадлежа- практических проблем переноса. щие файлам и каталогам, для которых разрешена запись. Если запу- Говоря о переносе почты, нельзя не затронуть еще одну пробле- стить скрипт без ключа --notest, то никаких действий по переимено- му: фильтры автоматической сортировки сообщений. Увы, автору не ванию произведено не будет: скрипт просто выведет список файлов, удалось найти ни одного приемлемого способа автоматизировать эту которые собирается изменить. В остальном программа работает без задачу, так что тут придется поработать вручную. неожиданностей. Также положительной особенностью convmv явля-

80 Linux Format Март 2008 Мигрируем из Windows Учебник

1 Откройте root-терминал (или выполните su) и перейдите в каталог /etc/samba. 2 Сохраните резервную копию существующего файла smb.conf: cp smb.conf smb.conf.bak 3 Откройте файл smb.conf в любом удобном текстовом редакторе и отредактируйте его. Строки, начинающиеся с # или ; являются комментариями – и, как нетрудно заметить, файл почти целиком и состоит из пояснений. Я обычно вношу следующие изменения: указываю название рабочей группы, описание сервера workgroup = <Название рабочей группы> server string = <Комментарий, который будет показан в Сетевом окружении> и закомментирую все строки, касающиеся принтеров. Затем создаю два общих ресурса: один для свободной записи файлов, второй – доступный для внешних пользователей только для чтения. [incoming] comment = Incoming for me path = /trash/exchange/incoming read only = no public = yes writable = yes directory mask = 0777 create mask = 0666 printable = no [outcoming] Локализации пока ется попытка разобраться в том, какие имена файлов уже перекоди- comment = Outcoming from me нет, но со своей рованы в UTF-8; впрочем, этот «искусственный интеллект» можно и path = /trash/exchange/outcoming задачей программа отключить. read only = yes вполне справляется. Определенную проблему может представлять перекодировка тэгов public = yes звуковых файлов и изображений. Для решения этой задачи существу- writable = no ет множество более или менее функциональных утилит, которые легко printable = no найти в Сети. Похоже, что на сегодня наиболее мощной по возможно- Естественно, надо не забыть создать нужные каталоги в файловой стям и наиболее поддерживаемой является программа EasyTag (http:// системе и установить на них разумные права доступа. Директорию easytag.sourceforge.net) Джерома Кудерка [Jerome Couderc], которая outcoming, куда будут записываться файлы для коллег, которые они позволяет проделывать все необходимые манипуляции с тэгами фай- должны только читать, надо сделать доступной на запись для локаль- лов формата MP3 и Ogg. Программа уже собрана для множества дис- ных пользователей компьютера и открытой для просмотра пользова- трибутивов, и можно скачать подходящий пакет. телем nobody. Для каталога incoming надо установить пользователя и Для более локальных изменений подойдет красивый скрипт tag2utf группу в nobody и разрешить все: чтение, запись, просмотр: (http://sourceforge.net/projects/tag2utf) Андрея Копаца, который пере- chown nobody:nobody incoming кодирует тэги MP3-файлов в UTF-8 в командной строке. Тэги, уже chmod 777 incoming закодированные в UTF-8, скрипт не обрабатывает, и обратной переко- В некоторых случаях сервер Samba имеет другие настройки пользо- дировки не предусмотрено. Для работы программы потребуется уста- вателя, от имени которого создаются новые файлы. Очевидно, в таких новка пакета python-eyed3. К слову, достаточно подробное описание случаях надо сделать небольшие поправки. MP3-тэгов и работы с ними в Python было приведено в LXF97 (стр. 60). 1 Сохраните сделанные изменения в smb.conf. Существует также Java-утилита ID3iconv (http://www.cs.berkeley.edu/~zf/ 2 Командой service smb restart перезапустите сервер Samba и, зайдя с id3iconv), автор – Фэнь Чжоу [Feng Zhou]. Кстати, перекодировщик любой Windows-машины, убедитесь, что все работает, как задумано. можно пригодиться не только при переходе на Linux, но и впослед- ствии, при копировании музыки на какой-нибудь портативный плейер. Пора радоваться результатам Альтернативный вариант – настроить проигрыватель стационарного Все описанные действия вместе с установкой дистрибутива занима- компьютера на работу с тегами в кодировке CP-1251. В зависимости от ют (по опыту автора) несколько часов. Пол-дня работы, а то и мень- выбранного вами аудиоплейера эта задача может оказаться нетривиль- ше – и на вашей машине установлено вполне легальное ПО и создана ной, но, как правило, она решается. почти привычная рабочая среда, при этом никакие действительно нужные для работы данные не потеряны. Это все? Для начала работы Разделяй и властвуй! вполне достаточно. Более того, получен достаточно богатый опыт по Этот лозунг времен Римской империи вполне применим к настройке настройке и конфигурированию системы, а это тоже очень ценное сервера Samba: надо разделить с другими результаты работы, при приобретение. этом нельзя терять контроля над своими файлами. Несмотря на Как говорится, «что и требовалось доказать»! В результате полу- наличие графических интерфейсов для администрирования Samba, чена полностью работоспособная система, в которую привнесены ее конфигурационный файл настолько хорошо прокоментирован, что привычные настройки Windows-пользователя. А в следующий раз настроить сервер проще всего вручную. Примерная последователь- мы обсудим, как повысить эффективность работы с офисными доку- ность действий такова: ментами. LXF

Через месяц Эффективная работа с офисными документами в открытой среде

Март 2008 Linux Format 81 УчебникПрограммирование Qt4 в стиле Qt Осваиваем технологии, лежащие в основе нашумевшего KDE4

на DVD MVC Код примеров статьи по-нормальному

ЧАСТЬ 2 В прошлый раз мы едва успели взглянуть на богатство возможностей, предлагаемых системой Interview. За прошедший месяц Андрей Боровский привел данные в нормальную форму и готов продолжить разговор на новом уровне.

Теории должны родолжим знакомство с парадигмой «модель-вид», реализо- бома или композиции есть только один автор, а каждая композиция быть настолько ванной в Qt 4. Пример из предыдущей статьи был, пожалуй, входит, самое большее, в один альбом. просты, Пслишком простым для того, чтобы вы могли почувствовать Учитывая эти особенности модели данных, мы можем создать три насколько преимущества системы Interview Framework. На этот раз мы усложним таблицы: таблицу авторов произведений, таблицу альбомов и таблицу возможно, нашу базу данных и программы, предназначенные для работы с ней. композиций. но не проще. Теперь вместо одной таблицы у нес будет три. Рассмотрим таблицу авторов произведений (artists). Она содержит А.Эйнштейн. имя автора (поле name) и идентификатор записи (поле artist_id типа Нормализация serial), который является первичным ключом. Первичный ключ – это Процесс, в результате которого произойдет это «растроение», назы- минимальное сочетание столбцов, совокупность значений которых вается нормализацией. Если вы занимаетесь проектированием баз уникальна для каждой записи базы данных. Внимательный читатель данных, можете пропустить этот раздел, для остальных же я крат- может заметить, что на имена авторов произведений в таблице artists ко поясню, что именно было проделано. Вспомните таблицу из наложено ограничение уникальности, а значит, сами имена могли бы предыдущей статьи. Каждая запись в ней содержала имя автора быть первичным ключом таблицы. Однако имена авторов являются произведения, название альбома и композиции, а также год выхода строками, а использование строк в качестве ключей нежелательно по альбома. Вся эта информация хранилась в виде строк, а это значит, причинам, которые скоро станут понятны. Поэтому в качестве первич- что одни и те же значения (имена авторов и названия альбомов) ного ключа мы используем уникальные числовые значения artist_id, частенько повторялись. Такой подход нельзя назвать эффективным. которые не имеют никакого самостоятельного смысла. Повторение одних и тех же данных делает БД громоздкой и трудно Перейдем теперь к таблице albums. Информация об альбоме содер- управляемой. Кроме того, необходимость вводить всю информацию жится в полях title (название) и release_year (год выхода). Кроме того, о музыкальном произведении, включая повторяющиеся элементы, в таблице albums есть поле artist_id. Оно представляет собой внешний увеличивает вероятность появления ошибок в базе данных. Задача ключ, связывающий таблицу albums с таблицей artists таким образом, нормализации как раз и заключается в том, чтобы свести к миниму- что каждая запись в таблице albums ссылается на запись в таблице му (в идеале – исключить) повторение одной и той же информации в artists, соответствующей автору альбома. С ее помощью мы можем таблицах БД. Формальное определение нормализации, включающее установить автора альбома. Записи, соответствующие нескольким введение нескольких нормальных форм, можно найти в литературе альбомам одного автора, ссылаются на одну и ту же запись в таблице по проектированию баз данных. Здесь объяснение будет вестись на artists, так что информация об авторах альбома не дублируется (таким интуитивном уровне, тем более что наша база данных очень проста, образом реализуется ограничение: у каждого альбома один автор, у а значит, и нормализация, которую мы выполняем, носит элементар- каждого автора может быть несколько альбомов). Кроме того, в табли- ный характер. це albums есть поле album_id, которое представляет собой первичный В нашем музыкальном каталоге представлена информация о ключ записи (первичным ключом таблицы albums могло бы быть соче- нескольких сущностях: авторе произведения, альбоме и самом произ- тание имени альбома и идентификатора автора альбома, но в этом ведении. Повторение данных возникает из-за того, что у одного автора случае нам пришлось бы использовать строки в качестве составных может быть много альбомов (или отдельных песен), а каждый альбом полей первичного ключа). состоит из нескольких композиций. При этом (так, по крайней мере, Таблица compositions содержит сведения о каждой отдельной ком- предполагается в нашей упрощенной модели данных) у каждого аль- позиции. Чтобы понять ее структуру, следует вспомнить уже упомянутую

Месяц назад Мы начали изучение новых технологий Qt с системы Interview

82 Linux Format Март 2008 Qt4 Учебник

QSqlRelationalTableModel * compositionsRelation = new QSqlRelationalTableModel(0); compositionsRelation->setTable( “compositions”); compositionsRelation->setRelation(1, QSqlRelation( “artists”, “artist_id”, “name”)); compositionsRelation->setRelation(2, QSqlRelation( “albums”, “album_ id”, “title”)); compositionsRelation->select(); compositionsRelation->removeColumn(0); compositionsRelation->setHeaderData(0, Qt::Horizontal, QObject::trUtf8( “Автор”)); compositionsRelation->setHeaderData(1, Qt::Horizontal, QObject::trUtf8( “Альбом”)); compositionsRelation->setHeaderData(2, Qt::Horizontal, QObject::trUtf8( “Год выхода”)); compositionsRelation->setHeaderData(3, Qt::Horizontal, QObject::trUtf8( “Композиция”)); Мы создаем объект compositionsRelation класса QSqlRelationalTableModel. Вместо того, чтобы указать объекту-модели текст SQL-запроса, мы, с помощью метода setTable(), указываем Рис. 1. Структура тестовой базы данных. имя основной таблицы, с которой будет работать модель. Далее, с помощью вызовов метода setRelation() заменяем столбцы таблицы compositions, содержащие внешние ключи, столбцами из соответ- проблему – композиция не обязательно должна быть частью какого- ствующих таблиц. Первым аргументом setRelation() должен быть либо альбома. По этой причине в таблице compositions два внешних номер столбца таблицы compositions, содержащего внешний ключ ключа: один ссылается на записи таблицы artists, и его значение не (нумерация начинается с 0). Вторым параметром метода должна быть может быть пустым (у композиции должен быть автор); второй – на ссылка на объект класса QSqlRelation, который мы создаем локаль- записи таблицы albums, и он допускает пустые значения. То, что ком- но. Первый аргумент конструктора QSqlRelation – это имя таблицы, позиция может не входить в альбом, создает еще одну проблему. В на записи которой ссылается внешний ключ таблицы compositions. таблице albums есть поле release_year, в котором указывается год выхо- Далее следует имя столбца таблицы, на который ссылается внеш- да альбома. Если бы каждая композиция входила в какой-либо, причем ний ключ, затем имя столбца, которым мы хотим заменить столбец только один, альбом, годом выхода композиции можно было бы счи- исходной таблицы (compositions), содержащий внешней ключ (я знаю, тать год выхода альбома, но это не так, поэтому в таблицу compositions что все это просто). приходится добавлять свое поле release_year, где хранится год выхода Единственным неприятным ограничением класса QSqlRelation композиции. Мы можем оправдать включение этого поля еще и тем, что является то, что мы можем заменить столбец исходной таблицы с в альбомы иногда помещают композиции, выпущенные ранее. Название внешним ключом только одним столбцом внешней таблицы. В нашем композиции хранится, соответственно, в поле title. случае это не страшно, так как в таблицах artist и albums полезная Отношения между таблицами представлены графически на рис. 1. информация содержится только в одном столбце. Однако это могло Метка PK указывает, что данное поле является первичным ключом бы быть не так. Например, таблица albums могла бы содержать еще и таблицы, метка FK обозначает внешние ключи. Жирным шрифтом столбец genre (жанр). В таких случаях нам придется конструировать выделены поля, которые не могут иметь пустые значения. Стрелки представления (views) средствами языка SQL. Поскольку у таблицы указывают связи, созданные между таблицами с помощью внешних compositions два внешних ключа, мы вызываем метод setRelation() ключей. дважды, для установления связи с таблицами artists и albums соот- Теперь для каждого типа объектов в нашей базе данных созда- ветственно. Сама выборка данных из таблицы производится с помо- на своя таблица, а информация о каждом отдельном объекте встре- щью метода select() объекта compositionsRelation, которому мы не чается в БД только один раз. Помимо прочего, это создает нам еще передаем никаких параметров (используя заданные нами настройки, одно дополнительное преимущество: если вдруг выяснится, что авто- этот метод уже «знает», что нужно делать). С использованием моде- Рис. 2. ром всех произведений, приписываемых некоему Моцарту, явля- ли QSqlRelationalTableModel таблица музыкальных композиций стано- Отображение ется на самом деле Сальери, нам достаточно будет изменить одну- вится гораздо более информативной (Рис. 3). таблицы единственную запись в таблице artists, чтобы привести данные БД в compositions. соответствие с новым историческим открытием. Кроме таблиц, мы создадим также представление view_all, которое сводит полную информацию о каждой композиции в одну таблицу. Кстати об отношениях Посмотрим теперь на представление таблицы compositions с помо- щью модели QSqlQueryModel, как в примере из предыдущей статьи (Рис. 2). Данные выглядят примерно так, как они хранятся в таблице БД (только пустое значение поля album_id во второй строке замене- но несуществующем индексом 0), однако с точки зрения пользова- теля такое представление нельзя назвать удовлетворительным. При показе данных пользователю было бы желательно заменить ссыл- ки на записи таблиц albums и artists информацией из самих этих таблиц. Именно эту задачу решает класс QSqlRelationalTableModel. Рассмотрим фрагмент программы relational_model, полный текст которой вы найдете на диске.

Март 2008 Linux Format 8 3 Учебник Qt4

setTable() указывает программе, что мы работаем с таблицей albums. С помощью метода setRelation() мы подменяем столбец artist_id в табли- це albums столбцом с именем автора произведения из таблицы artists так же, как и в предыдущем примере. Далее следует уже знакомый нам вызов метода select(). Новшества начинаются со следующей строки программы, в которой мы устанавливаем «стратегию редактирования». Методу setEditStrategy() передается одна из констант, которая указывает, каким образом изменения, внесенные в модель, должны фиксиро- ваться в базе данных. Выбор стратегии QSqlTableModel::OnFieldChange приведет к тому, что любое изменение в модели будет тут же фикси- роваться в базе данных. Этот вариант удобен, если изменения вносят- ся в модель автоматически (и нечасто). Однако пользователь, редак- тирующий базу данных вручную, может ошибиться при заполнении значения поля. При исправлении каждой такой ошибки программе придется обращаться к БД, что создаст излишнюю нагрузку. При выборе константы QSqlTableModel::OnRowChange изменения будут вноситься в БД при переходе пользователя к новой строке. Лично я считаю наиболее подходящим для наших целей третий вариант – QSqlTableModel::OnManualSubmit, при котором для внесения в БД изменений, сделанных в модели, требуется отдельная команда. Рис. 3. Следует отметить один недостаток отображения сложных систем Перейдем теперь к созданию объекта, отображающего данные. Отображение реляционных таблиц с помощью Interview Framework. В нашей моде- Класс CustomView, который используется здесь, я написал сам на таблицы ли данных внешний ключ album_id таблицы compositions может основе класса QTableView. Зачем нам специальный класс для ото- compositions содержать пустые значения. При замещении столбца album_id столб- бражения данных? Класс QTableView располагает всем необходимым с помощью модели цом с названием альбома с помощью метода setRelation(), строки, для редактирования значений в уже существующих ячейках табли- QsqlRelational содержащие пустые значения в поле album_id, просто не попадут в цы. При выборе стратегии QSqlTableModel::OnFieldChange изменения TableModel. модель (то же самое происходит при попытке сформировать таблицу в ячейках автоматически вносятся в БД. Однако класс QTableView с помощью запроса SELECT * FROM albums WHERE...). В представле- (а окно, созданное на основе QTableView, является единственным нии view_all, которые вы найдете в файле createtables.sql, я обошел элементом пользовательского интерфейса нашей программы) не эту проблему, комбинируя левые и правые объединения (join). Но умеет добавлять в таблицу новые строки или генерировать по наше- класс QSqlRelationalTableModel так делать не умеет, поэтому, если му требованию команду передачи данных в БД, которая требует- вы хотите отображать таблицы с пустыми внешними ключами цели- ся при выбранной нами стратегии QSqlTableModel::OnManualSubmit. ком, вам придется самостоятельно конструировать SQL-запросы. Класс CustomView дополняет класс QTableView необходимыми нам Можно, конечно, пойти и по другому пути – ввести в список альбомов возможностями. псевдо-альбом single и добавлять в этот «альбом» все композиции, Поскольку окно QTableView не обладает ни панелями, ни строкой не являющиеся частью альбомов. При таком подходе замечательная состояния, я решил не дополнять его другими визуальными элемен- песня «Есть на Волге утес» классифицировалась бы как «сингл неиз- тами, а ввод дополнительных команд реализовать с помощью специ- вестного автора». альных сочетаний клавиш. Для добавления в модель новой строки в редакторе albums_editor следует использовать комбинацию Ctrl+I, а Редактирование данных для фиксации изменений в таблице – сочетание Ctrl+S (вы можете До сих пор все наши программы Interview Framework могли только про- самостоятельно дополнить этот перечень команд командами удаления сматривать данные – пришло время заняться и вводом. Напишем редак- строк). Кроме того, команда Ctrl+U позволяет отменить все изменения, тор albums_editor для внесения изменений в описанную выше таблицу которые мы не успели зафиксировать в БД. Текст класса CustomView albums. Классы моделей QSqlTableModel и QSqlRelationalTableModel приводится ниже. позволяют редактировать данные в таблицах, полученных в результате class CustomView : public QTableView SQL-запросов. Поскольку таблица albums содержит внешний ключ, мы { воспользуемся классом QSqlRelationalTableModel. Перейдем сразу к public: исходному тексту программы: CustomView( QWidget * parent = 0 ):QTableView(parent) QSqlRelationalTableModel * albumsRelation = new { QSqlRelationalTableModel(0); } albumsRelation->setTable( “albums”); protected: albumsRelation->setRelation(1, QSqlRelation( “artists”, “artist_id”, virtual void keyPressEvent ( QKeyEvent * e ) “name”)); { albumsRelation->select(); if ((e->key() == Qt::Key_I) && (e->modifiers() == albumsRelation->setEditStrategy(QSqlTableModel::OnManualSubmit); Qt::ControlModifier)) CustomView * view = new CustomView(0); { view->setModel(albumsRelation); this->model()->insertRow(this- view->setColumnHidden(0, true); >model()->rowCount()); view->setWindowTitle(QObject::trUtf8( “Альбомы”)); } view->setItemDelegate(new QSqlRelationalDelegate(view)); if ((e->key() == Qt::Key_S) && (e->modifiers() == view->show(); Qt::ControlModifier)) Это фрагмент функции main() программы albums_editor. Блок { команд, устанавливающий соединение с БД, мы не рассматриваем, ((QSqlTableModel *) model())- так он одинаковый у всех наших программ. Модель здесь – это объ- >submitAll(); ект albumsRelation класса QSqlRelationalTableModel. Вызов метода }

84 Linux Format Март 2008 Qt4 Учебник

if ((e->key() == Qt::Key_U) && (e->modifiers() == Qt::ControlModifier)) { ((QSqlTableModel *) model())- >revertAll(); }

QTableView::keyPressEvent(e); } }; Метод insertRow() добавляет в таблицу новую строку, которая располагается после той строки, номер которой передается в каче- стве аргумента insertRow(). Мы передаем методу номер последней строки (значение model()->rowCount()), так что новая строка всегда добавляется в конец таблицы. Метод submitAll() вносит изменения в БД, а метод revertAll() отменяет все изменения, сделанные во время текущего сеанса редактирования (если они еще не были внесены в БД). Обратите внимание, что метод insertRow() реализован в базовом классе QAbstractItemModel, который, в принципе, предполагает работу с любыми структурами данных. Объясняется это тем, что в моделях Interview Framework данные хранятся в виде иерархии таблиц, незави- симо от того, какова их исходная структура. Вернемся к функции main(). При редактировании таблиц БД сле- дует учесть один важный момент: в программе relational_model мы удалили из модели данных первый столбец таблицы compositions с помощью метода removeColumn(), так как он не содержит полезной для пользователя информации. В приложении albums_editor, которое специальные объекты, позволяющие получить доступ к отдельным Рис. 4. вносит изменения в таблицу albums, мы не можем удалять столбцы элементам данных. Одна из задач индекса заключается в том, что- Окно таблицы из модели albumsRelation (тем более первичные ключи), посколь- бы изолировать данные от непосредственного доступа, поэтому при с раскрывающимся ку в этом случае все SQL-команды, редактирующие БД, окажутся работе с индексами требуется соблюдать определенные ограниче- списком допустимых сформированными неправильно. Тем не менее, нам вовсе не тре- ния. Индекс представляет нам доступ к элементу данных, исходя из значении ячейки. буется показывать пользователю первый столбец таблицы albums состояния модели на момент получения индекса. Если после полу- (при добавлении строк в таблицу уникальные числовые значения для чения индекса состояние модели изменится, индекс может стать этого столбца все равно генерируются автоматически). Мы скроем недействительным. Это означает, что обычные индексы следует от пользователя неинтересный ему столбец, но не на уровне модели использовать для элементарных операций редактирования данных, данных, а на уровне представления (объект view), с помощью метода причем для каждой операции следует получать новый индекс (даже setColumnHidden(). если мы работаем с тем же самым элементом данных). В более При помощи метода setItemDelegate() мы устанавливаем объект- сложных случаях можно воспользоваться постоянными (persistent) делегат, выступающий в роли посредника в процессе редактирования индексами. данных. Мы используем объект класса QSqlRelationalDelegate. У него В программе albums_editor делегат QSqlRelationalDelegate позво- есть много полезных возможностей, некоторые из которых мы рассмо- лил нам реализовать очень полезную функцию – раскрывающийся трим ниже. Сейчас нас интересует одна функция, являющаяся спец- список значений внешней таблицы. Однако, помимо этого, делегат не ифической именно для объектов QSqlRelationalDelegate. Если в окне привнес в нашу программу ничего существенного. Класс QTableView просмотра таблицы albums мы щелкнем по одному из полей столбца (и его производные) позволяют редактировать значения без исполь- name (позаимствованного из таблицы artists), откроется раскрываю- зования делегатов. Все это вовсе не означает, что делегаты бесполез- щийся список с именами авторов (Рис. 4). Таким образом, с помощью ны. Рассмотрим метод createEditor(), реализованный в базовом клас- делегата QSqlRelationalDelegate мы можем редактировать таблицы, се QItemDelegate. Помимо прочих аргументов, этому методу переда- содержащие внешние ключи, самым естественным способом – с помо- ется индекс, представляющий элемент данных, который мы хотим щью выбора значения столбца внешней таблицы из списка. Излишне редактировать. Метод возвращает значение типа QWidget *, который говорить, что после выбора из списка подходящего значения в поле представляет собой указатель на объект-виджет, предназначенный artist_id таблицы albums будет добавлен соответствующий внешний для редактирования элемента данных. Фактически, по нашему тре- ключ (а не само значение). бованию метод createEditor() создает редактор данных! В случае объекта QSqlRelationalDelegate метод createEditor() создаст объект- Индексы редактор, похожий на редактируемую ячейку таблицы (в том числе, Настала пора поближе познакомиться с системой Interview Framework. с раскрывающимся списком значений, если выбрана ячейка соответ- Один из ее основополагающих принципов заключается в приведении ствующего столбца). Поскольку редактировать значения ячеек можно самых разных данных, независимо от их исходной структуры и мето- прямо в таблице, толку от этого редактора не очень много, но в ряде да их получения, к единому внутреннему представлению. Именно случаев возможность создавать редакторы данных с помощью деле- этот принцип обеспечивает универсализм Interview Framework, при гатов может оказаться очень полезной. котором разные объекты-виды и объекты-модели могут свободно На этом мы завершаем увлекательное путешествие в мир Interview взаимодействовать между собой. Для доступа к данным Interview Framework. Следующая статья будет посвящена визуальным компонен- Framework применяет индексы. Индексы Interview Framework – это там Qt 4, рисованию и каллиграфии. LXF

Через месяц Король Артур и прочие рыцари графической подсистемы Qt.

Март 2008 Linux Format 8 5 УчебникR Свободный Анализ данных инструментарий с R для статистической обработки данных Типы данных в R ЧАСТЬ 3 Теперь, когда мы уже знаем достаточно для того, чтобы суметь загрузить данные в R, рассмотрим, что же происходит с ними внутри системы, и как, собственно, они обрабатываются.

> str(x) Нашы эксперты num [1:7] 174 162 188 192 165 168 172 то есть x – это числовой (num, numerical) вектор. В других язы- Алексей Шипунов Евгений Балдин ках программирования бывают ещё скаляры, но в R, как мы знаем Биолог, преподаватель, Физик, преподава- (LXF100/101), их нет. «Одиночные» объекты трактуются как векторы сотрудник американс- тель, научный сотруд- из одного элемента. кого университета ник ИЯФ им. Будкера, Вот так можно проверить, вектор ли перед нами: Айдахо, использующий профессионально > is.vector(x) R для обработки занимается обработ- информации во всех кой эксперименталь- [1] TRUE своих проектах, начи- ных данных в области Вообще говоря, в R есть множество функций вида is.что-то() ная с 2001 года. физики высоких для подобной проверки, а ещё есть функции вида as.что-то() – мы Русский переводчик R. энергий. Давний сто- будем использовать их далее по тексту. Называть объекты можно, в ронник свободного принципе, как угодно, но лучше придерживаться некоторых простых ПО, впечатлённый мощью R. правил: Использовать для названий только латинские буквы, цифры и точку (имена объектов не должны начинаться с точки или цифры); статистике, данные принято делить на различные типы, в зависи- Помнить, что R чувствителен к регистру: X и x – это разные имена; мости от того, насколько близко их можно представить при помо- Не давать объектам имена, уже занятые распространенными функция- Вщи известной метафоры числовой прямой. Например, возраст ми (типа c()), а также ключевыми словами (особенно T, F, NA, NaN, Inf). человека легко выразить подобным образом, за тем исключением, что он Для создания «искусственных» векторов очень полезен оператор :, не может быть отрицательным. Размер ботинок представить уже слож- а также функции seq() и rep(). нее, поскольку между двумя соседним размерами, как правило, не бывает промежуточного значения, в то время как между двумя любыми числами Факторы на числовой прямой всегда можно найти нечто промежуточное. Зато раз- Для обозначения категориальных данных в R есть несколько способов, меры можно хотя бы расположить по возрастающей или по убывающей. разной степени «правильности». Во-первых, можно создать текстовый А вот c полом человека так уже не получится: есть только два значения, (character) вектор: и «промежуточного» просто не бывает. Мы, конечно, можем обозначить > sex <- c( “male”, “female”, “male”, “male”, женский пол единицей, а мужской – нулем (или двойкой), но никакой + “female”, “male”, “male”) числовой информации эти обозначения нести не будут – их даже нельзя > is.character(sex) отсортировать. Есть ещё и другие специальные виды данных, например, [1] TRUE углы, географические координаты, даты и т.п., но все они так или иначе > is.vector(sex) могут быть представлены с помощью чисел. Таким образом, наиболее [1] TRUE принципиальное различие между типами данных – возможность или > str(sex) невозможность отобразить их на числа. Если этого сделать нельзя, такие chr [1:7] “male” “female” “male” “male” “female” “male” ... данные принято называть категориальными. Статистические законы, а Предположим, что sex – это описание пола сотрудников небольшой значит, и статистические программы, работают с этими данными, толь- организации. Вот как R выводит содержимое этого вектора*: ко если заранее указан их тип. Остальные типы данных в разных книгах > sex называют по разному: числовые, счётные, порядковые или некатегори- [1] “male” “female” “male” “male” “female” “male” “male” альные. Мы же примем название «числовые», как самое простое. Наверное, пора раскрыть загадку единицы в квадратных скобках – это просто номер элемента вектора. Вот как его можно использовать : Числовые векторы > sex[1] Допустим, у нас есть данные о росте семи сотрудников небольшой [1] “male” компании. Вот так можно создать из этих данных простейший вектор: «Умные», то есть объект-ориентированные команды R кое-что > x <- c(174, 162, 188, 192, 165, 168, 172) «понимают» про объект sex, например, команда table() выводит: x – это имя объекта R, <- – функция присвоения, c() – функция созда- > table(sex) ния вектора (от англ. «concatenate», собрать). Собственно, R и работа- sex ет, в основном, с объектами и функциями. У объекта может быть своя female male структура: 2 5

* Да-да, квадратные скобки – это тоже команда. Можно это проверить, набрав помощь ?”[“. Месяц назад Мы научились загружать в R данные и строить по ним графики.

86 Linux Format Март 2008 Анализ данных с R Учебник и работа с ними

«Избавиться» от лишнего уровня можно, только применив специаль- ный аргумент или выполнив преобразование данных «туда и обратно»: > sex.f[6:7, drop=TRUE] [1] male male Levels: male > factor(as.character(sex.f[6:7])) [1] male male Levels: male Во-вторых, факторы в отличие от текстовых векторов можно легко преобразовать в числовые значения: > as.numeric(sex.f) [1] 2 1 2 2 1 2 2 Зачем это нужно, становится понятным, если рассмотреть вот такой пример: положим, кроме роста, у нас есть ещё и данные по весу сотрудников и мы хотим построить такой график, на котором были бы видны одновременно рост, вес и пол. Вот как это можно сделать: > # Вектор веса > w <- c(69, 68, 93, 87, 59, 82, 72) Пример представления категориальных типов данных. > # Построение графика > plot(x, w, pch=as.numeric(sex.f), col=as.numeric(sex.f)) А вот команда plot(), увы, не может сделать с таким вектором ниче- > legend( “topleft”, pch=1:2, col=1:2, legend=levels(sex.f)) го вразумительного. И это, в общем-то, правильно, потому что про- Тут, разумеется, нужно кое-что объяснить. pch и col – это параме- грамма ничего не знает про свойства пола человека. В таких случаях тры, предназначенные, соответственно, для определения типа значков пользователь сам должен проинформировать R, что его надо рассма- и их цвета на графике. Таким образом, в зависимости от того, какому тривать как категориальный тип данных. Делается это так: полу принадлежит данная точка, она будет изображена кружком или Зависимость > sex.f <- factor(sex) треугольником и чёрным или красным цветом. При условии, разумеет- веса от роста > sex.f ся, что все три вектора соответствуют друг другу. Ещё надо отметить, с указанием пола. [1] male female male male female male male Levels: female male И теперь команда plot() уже понимает, что ей надо делать: > plot(sex.f) потому что «видит» специальный тип объекта, предназначенный для категориальных данных – фактор с двумя уровнями (levels): > is.factor(sex.f) [1] TRUE > is.character(sex.f) [1] FALSE > str(sex.f) Factor w/ 2 levels “female”,“male”: 2 1 2 2 1 2 2 Очень многие функции R (тот же самый plot()) предпочитают фак- торы текстовым векторам. При этом некоторые умеют конвертировать текстовые векторы в факторы, а некоторые – нет, поэтому надо быть внимательным. Есть ещё несколько важных свойств факторов, которые надо знать заранее. Во-первых, подмножество фактора – это фактор с тем же количеством уровней, даже если их в подмножестве не осталось: > sex.f[5:6] [1] female male Levels: female male > sex.f[6:7] [1] male male Levels: female male

Март 2008 Linux Format 8 7 Учебник Анализ данных с R

что изображение пола при помощи значка и цвета избыточно, для Матрицы «нормального» графика хватит и одного из этих способов. Матрицы – чрезвычайно распространённая форма представления В-третьих, факторы можно упорядочивать, превращая их некое данных, организованных в форме таблицы. Про матрицы в R, в подобие числовых данных. Введём четвёртую переменную: размер общем-то, нужно знать две важные вещи: во-первых, что они быва- маек для тех же самых гипотетических семерых сотрудников: ют разной размерности, и во-вторых, что матриц как таковых в R, по > m <- c( “L”, “S”, “XL”, “XXL”, “S”, “M”, “L”) сути, нет. > m.f <- factor(m) Начнем с последнего. Матрица в R – это просто специальный тип > m.f вектора, обладающий некоторыми добавочными свойствами («атрибу- [1] L S XL XXL S M L тами»), позволяющими интерпретировать его как совокупность строк Levels: L M S XL XXL и столбцов. Предположим, мы хотим создать простейшую матрицу 2x2. Как видно из примера, уровни расположены просто по алфавиту, а Для начала воспользуемся числовым вектором: нам надо, чтобы S (small) шёл первым. Кроме того, надо как-то сооб- > m <- 1:4 щить R, что перед нами не просто категориальные, а упорядочиваемые > m категориальные данные. Делается это так: [1] 1 2 3 4 > m.o <- ordered(m.f, levels=c( “S”, “M”, “L”, “XL”, “XXL”)) > ma <- matrix(m, ncol=2, byrow=TRUE) > m.o > ma [1] L S XL XXL S M L [,1] [,2] Levels: S < M < L < XL < XXL [1,] 1 2 Теперь R «знает», какой размер больше. Это может сыграть критиче- [2,] 3 4 скую роль, например, при вычислениях коэффициентов корреляции. > str(ma) int [1:2, 1:2] 1 3 2 4 Пропущенные данные > str(m) В дополнение к векторам из чисел и текстовым векторам, R поддержи- int [1:4] 1 2 3 4 вает ещё и логические вектора, а также специальные типы данных, кото- Из примера видно, что структура объектов m и ma не слишком раз- рые бывают очень важны для статистических расчётов. Прежде всего это личается. Отличен, по сути, лишь их вывод на экран. Сходство между пропущенные или отсутствующие данные, которые обозначаются как NA. векторами и матрицами прослеживается ещё очевиднее, если создать Такие данные очень часто возникают в реальных полевых и лабораторных матрицу несколько иным способом: исследованиях, опросах, тестированиях и т.д. При этом следует осознавать, > mb <- m что наличие пропущенных данных вовсе не означает, что данные в целом > mb некачественны. С другой стороны, статистические программы должны [1] 1 2 3 4 как-то с ними работать. Разберём следующий пример: предположим, что у > attr(mb, “dim”) <- c(2,2) нас имеется результат опроса тех же самых семи сотрудников. Их спраши- > mb вали: сколько в среднем часов они спят, при этом один из опрашиваемых [,1] [,2] отвечать отказался, другой ответил «не знаю», а третьего в момент опроса [1,] 1 3 просто не было в офисе. Так возникли пропущенные данные: [2,] 2 4 > h <- c(8, 10, NA, NA, 8, NA, 8) Выглядит как некий фокус? Все просто: мы присваивает вектору > h mb атрибут dim (от слова dimension, т.е. размерность) и устанавлива- [1] 8 10 NA NA 8 NA 8 ем значение этого атрибута в c(2,2), то есть две строки и два столбца. Из примера видно, что NA надо вводить без кавычек, а R нимало не сму- Попробуйте догадаться, почему матрица mb отличается от матрицы ma щается, что среди цифр находится «вроде бы» текст. Отметим, что про- (ответ в конце статьи). пущенные данные очень часто столь же разнородны, как и в нашем при- Мы указали лишь два способа создания матриц, а в действитель- мере. Однако кодируются они одинаково, и об этом не нужно забывать. ности их гораздо больше. Очень популярно, например, «делать» матри- Теперь о том, как надо работать с полученным вектором h. Если цы из векторов-колонок или строк при помощи команд cbind() или мы просто попробуем посчитать среднее значение (функция mean()), rbind(). Если результат нужно «повернуть» на 90 градусов, использу- то получим: ется команда t(). > mean(h) Наиболее распространены матрицы, имеющие два измерения, [1] NA однако никто не мешает сделать и многомерную матрицу: И это «идеологически правильно», поскольку функция может > m3 <- 1:8 по-разному обрабатывать NA, и по умолчанию она просто сигнализирует > dim(m3) <- c(2,2,2) о том, что с данными что-то не так. Чтобы высчитать среднее от «не про- > m3 пущенной» части вектора, можно поступить одним из двух способов: , , 1 > mean(h, na.rm=TRUE) [1] 8.5 [,1] [,2] > mean(na.omit(h)) [1,] 1 3 [1] 8.5 [2,] 2 4 Какой из способов лучше, зависит от ситуации. Часто возникает ещё одна проблема: как сделать подстановку пропущенных данных, , , 2 скажем, заменить все NA на среднюю по выборке? Распространенное решение примерно следующее: [,1] [,2] > h[is.na(h)] <- mean(h, na.rm=TRUE) [1,] 5 7 > h [2,] 6 8 [1] 8.0 10.0 8.5 8.5 8.0 8.5 8.0 m3 здесь – это трёхмерная матрица. Естественно, показать в виде В левой части первого выражения осуществляется индексирование, таблицы её нельзя, поэтому R выводит её на экран в виде серии таблиц. то есть выбор нужных значений h таких, которые являются пропущен- Аналогично можно создать и четырёхмерную матрицу (как встроенные ными (is.na()). После того, как выражение выполнено, «старые» значе- данные Titanic из предыдущей статьи). Многомерные матрицы в R при- ния исчезают навсегда. нято называть «массивами» (arrays).

88 Linux Format Март 2008 Анализ данных с R Учебник

Списки > names(w) <- c( “Коля”, “Женя”, “Петя”, “Саша”, Списки – ещё один очень важный тип представления данных. Создавать + “Катя”, “Вася”, “Жора”) их, особенно на первых порах, скорее всего, не придется, но знать их > w особенности необходимо. Это нужно, прежде всего, потому, что очень Коля Женя Петя Саша Катя Вася Жора многие функции в R возвращают именно списки. Для начала знаком- 69 68 93 87 59 82 72 ства давайте создадим вот такой «тренировочный» список: > rownames(ma) <- c( “a1”,”a2”) > l <- list( “R”, 1:3, TRUE, NA, list( “r”, 4)) > colnames(ma) <- c( “b1”,”b2”) > l > ma [[1]] b1 b2 [1] “R” a1 1 2 a2 3 4 [[2]] Единственное условие состоит в том, что все имена должны быть [1] 1 2 3 разными. Знак доллара ($) можно использовать только со списками. Отбирать элементы вектора по имени можно так: [[3]] > w[ “Женя”] [1] TRUE Женя 68 [[4]] [1] NA Таблицы данных Наконец, мы подошли к самому важному типу – таблицам данных (data [[5]] frames). Именно таблицы данных больше всего похожи на электронные [[5]][[1]] таблицы Excel и аналогов, и поэтому с ними работают чаще всего (это [1] “r” особенно касается начинающих пользователей R). Таблицы данных – это гибридный тип представления, одномерный список из векторов одина- [[5]][[2]] ковой длины. Таким образом, каждая таблица данных – это список коло- [1] 4 нок, причём внутри одной колонки все данные должны быть одного типа. Видно, что список – это своего рода ассорти. Вектор и, соответ- Проиллюстрируем это на примере созданных в этой статье векторов: ственно, матрица могут состоять из элементов только одного и того же > d <- data.frame(weight=w, height=x, size=m.o, sex=sex.f) типа, а вот список – из чего угодно. В том числе, как это видно из при- > d мера, и из других списков. weight height size sex Теперь поговорим про индексирование или выбор элементов списка. Коля 69 174 L male Элементы вектора выбираются при помощи функции-квадратной скобки: Женя 68 162 S female > h[3] Петя 93 188 XL male [1] 8.5 Саша 87 192 XXL male Элементы матрицы выбираются так же, только используется Катя 59 165 S female несколько аргументов (для двумерных матриц это номер строки и Вася 82 168 M male номер столбца – именно в такой последовательности): Жора 72 172 L male > ma[2, 1] [1] 3 > str(d) А вот элементы списка выбираются тремя различными методами. 'data.frame': 7 obs. of 4 variables: Во-первых, можно использовать квадратные скобки: $ weight: num 69 68 93 87 59 82 72 > l[1] $ height: num 174 162 188 192 165 168 172 [[1]] $ size : Ord.factor w/ 5 levels “S”<“M”<“L”<“XL”<“XXL”: [1] “R” 3 1 4 5 1 2 3 > str(l[1]) $ sex : Factor w/ 2 levels “female”,“male”: 2 1 2 2 1 2 2 List of 1 Поскольку таблица данных является списком, к ней применимы и $ : chr “R” методы их индексации. Кроме того, таблицы данных можно индексиро- Здесь очень важно, что полученный объект тоже будет списком. вать и как двумерные матрицы. Вот несколько примеров: Во-вторых, можно использовать двойные квадратные скобки: > d$weight > l[[1]] [1] 69 68 93 87 59 82 72 [1] “R” > d[[1]] > str(l[[1]]) [1] 69 68 93 87 59 82 72 chr “R” > d[,1] В этом случае полученный объект будет того типа, какого он был бы [1] 69 68 93 87 59 82 72 до включения в список (так, первый объект будет текстовым вектором, > d[,“weight”] а пятый – списком). В-третьих, можно использовать имена элементов [1] 69 68 93 87 59 82 72 списка. Но для этого сначала надо их присвоить: Очень часто бывает нужно отобрать несколько конкретных колонок. > names(l) <- c( “first”, “second”, “third”, Это можно сделать разными способами. Исключим, к примеру, столбец + “fourth”, “fifth”) weight: > l$first > d[,2:4] [1] “R” height size sex > str(l$first) Коля 174 L male chr “R” Женя 162 S female Для выбора по имени используется знак $, а полученный объект Петя 188 XL male будет таким же, как при использовании [[]]. На самом деле имена в R Саша 192 XXL male могут иметь и элементы вектора, и строки и столбцы матрицы: Катя 165 S female

Март 2008 Linux Format 8 9 Учебник Анализ данных с R

в R будут работать и циклы: Ответы на вопросы > for (i in seq_along(w)) { + w[i] <- w[i] * 1000 По ходу статьи мы задали вам пару вопросов – а теперь настало время проверить ответы. + } Ответ на вопрос про матрицы. > w Когда мы создавали матрицу ma, мы использовали параметр byrow=TRUE. Значение его по умолча- Коля Женя Петя Саша Катя Вася Жора нию – FALSE, и если не задавать его так, как сделали мы, получится точно такая же матрица, как mb. 69000 68000 93000 87000 59000 82000 72000 Ответ на вопрос про сортировку колонок. но это уж слишком громоздко. Векторизованы и операции между век- > d[,order(colnames(d))] торами и матрицами: В этом случае вместо order() можно было использовать и sort(). > ma + mb b1 b2 Вася 168 M male a1 2 5 Жора 172 L male a2 5 8 > d[,-1] height size sex > 1:8 + 1:2 Коля 174 L male [1] 2 4 4 6 6 8 8 10 Женя 162 S female В последнем примере второй вектор гораздо короче первого, Петя 188 XL male поэтому при вычислении результата он был несколько раз повторен. Саша 192 XXL male Так будет и в том случае, если длина меньшего вектора (матрицы) не Катя 165 S female кратна длине большего, но тогда R выдаст предупреждение. Вася 168 M male Помимо простых арифметических операций, векторизованы и более Жора 172 L male сложные действия. Существует целое семейство функций, которые спе- Второй способ (отрицательная индексация) в некоторых случаях быва- циализируются на векторизованных вычислениях: apply(), by(), lapply(), ет просто незаменим. К индексации имеет прямое отношение ещё один тип sapply(), tapply() и другие. Вот как работает, например, функция apply(): данных в R – логические векторы. Как, например, отобрать из нашей табли- > apply(trees, 2, mean) цы только данные, относящиеся к женщинам? Вот один из способов: Girth Height Volume > d[d$sex==“female”,] 13.24839 76.00000 30.17097 weight height size sex Двойка во втором аргументе означает, что среднее (mean()) вычисля- Женя 68 162 S female ется для каждой колонки данных. Для строк надо поставить единицу, но Катя 59 165 S female в данном случае это лишено смысла, потому что разные колонки отно- Чтобы выбрать нужные строки, помещаем перед запятой логическое сятся к измерениям разной природы. А вот так при помощи sapply() мож- выражение d$sex==female. Его значением является логический вектор: но преобразовать наши данные в «кодированный», цифровой вид: > d$sex==”female” > sapply(d, as.numeric) [1] FALSE TRUE FALSE FALSE TRUE FALSE FALSE weight height size sex Таким образом, после того, как «отработает» селекция, в таблице [1,] 69 174 3 2 данных останутся только те строки, которые соответствуют значению [2,] 68 162 1 1 TRUE, то есть строки 2 и 5. [3,] 93 188 4 2 Более сложным случаем селекции является сортировка таблиц дан- [4,] 87 192 5 2 ных. Для сортировки вектора достаточно применить команду sort(), а [5,] 59 165 1 1 вот если нужно, скажем, отсортировать наши данные сначала по полу, [6,] 82 168 2 2 а потом по росту, приходится действовать более тонко: [7,] 72 172 3 2 > d[order(d$sex, d$height), ] tapply() и by() позволяют сделать ещё хитрее: weight height size sex > by(d[,1:2], d$sex, mean) Женя 68 162 S female d$sex: female Катя 59 165 S female weight height Вася 82 168 M male 63.5 163.5 Жора 72 172 L male ------Коля 69 174 L male d$sex: male Петя 93 188 XL male weight height Саша 87 192 XXL male 80.6 178.8 Команда order() создает не логический, а числовой вектор, который Здесь мы вычислили средний рост и вес для мужчин и женщин за соответствует будущему порядку расположения строк. Подумайте, как одно действие! применить команду order(), чтобы отсортировать колонки по алфавиту Наконец, lapply() позволяет применить некую команду к каждому (ответ также можно отыскать в конце статьи). элементу списка: > lapply(d, is.factor) Векторизованные вычисления $weight Несмотря на то, что R похож на многие современные скриптовые языки [1] FALSE программирования, например, Perl и Python, в нём есть много своео- бразного. Одна из интересных и очень полезных особенностей R – это $height так называемые векторизованные вычисления. Использовать их очень [1] FALSE просто. Допустим, мы хотим перевести вес из килограммов в граммы: > w*1000 $size Коля Женя Петя Саша Катя Вася Жора [1] TRUE 69000 68000 93000 87000 59000 82000 72000 Для такой операции часто требуется использовать циклические $sex конструкции (loops), а здесь всё получается в одно действие. Конечно, [1] TRUE

90 Linux Format Март 2008 Через месяц Мы займемся тем, ради чего все и затевалось: научимся анализировать данные средствами R. Игрострой для новичка ȕÕЕΕѕҕЕΕЙ

Ни строчки кода! Создаем в Blender трехмерную игру, не программируя.

На DVD

«Исходный код» Система нашей игры. управления

ЧАСТЬ 2 Отсутствие кода совсем не означает, что игровая логика возникнет сама по себе. Сегодня Андрей Прахов расскажет, как заставить объекты двигаться по вашему велению.

Скорая ет ничего хуже, чем не доведенный до конца проект. Если вы Если вы подумали, что для этого стоит просто задействовать систему помощь считаете так же, как и я, то вперед, за мной – на покорение иерархии объектов Blender, и задача будет решена, то спешу вас «обра- НBlender’а. довать» – привычные связи типа parent+child [родитель+подчиненный] Несложно В предыдущей статье мы уже познакомились с основами создания в BGE не действуют, а точнее, действуют не совсем обычным образом. представить, игр в Blender и даже получили вполне работоспособный код прото- Поэтому сегодня нам предстоит изучить еще один обширный раздел какой хаос мог типа программы (думаю, вы уже догадались, что команда File > Save игрового движка. бы твориться в хитросплетениях runtime как раз и создает желанный нами исполняемый файл). Однако Визуальный конструктор Blender’а позволяет использовать пере- логических блоков, какой интерес наблюдать немеряное количество прыгающих по модели менные и систему сообщений. С переменными мы познакомимся позд- если бы не было шаров и захлебывающийся от всего этого движок? Пришла пора вне- нее, а сейчас разберемся с сообщениями. возможности сти некоторый порядок в этот беспредел! Каждый объект при определенной настройке имеет возможность свободного Но сначала давайте заставим шар следовать за указателем и лететь отсылки некоторого сообщения либо всем объектам сразу, либо перемещения кирпичиков в точно указанном нами направлении. Кстати, это не такая уж и про- конкретному адресату. Происходит это при использовании логиче- вверх или вниз стая задача. ских кирпичиков Message [Сообщение] блоков Sensors [Сенсоры] и в «закрытом» Actuators [Активаторы]. Соответственно, сенсор принимает сообщение, состоянии. Для Точно в яблочко! а активатор – отсылает его. этого просто щелкните левой Откройте имеющийся на LXFDVD файл lesson2_begin.blend и обра- Мы воспользуемся этой возможностью, чтобы сообщить Emp_boul кнопкой мышки тите внимание на объект Emp_boul. Как вы помните, именно с его о необходимости сдвинуться в нужном направлении при перемеще- на поле нужного помощью на прошлом занятии мы визуализировали в сцене шар. нии стрелки. Для этого добавьте объекту arr еще один кирпичик блока кирпичика (Рис. 2). Поэкспериментируйте с этим объектом, подвигав его из стороны в Actuators [Активаторы] и присоедините его к контроллеру, объеди- сторону. Заметили, что сфера создается в том же самом месте, где няющему цепочку движения влево (leftarrow > left). Выберите из выпа- находится Emp_boul? Вот оно и решение: сдвигая стрелку, мы будем дающего списка меню пункт Message [Сообщение]. Поместите в поле двигать и Emp_boul, а он, в свою очередь, перемещать сферу. Subject строку go_left. Именно его и будет генерировать стрелка при

Рис. 1. Логическая цепочка должна выглядеть так.

Месяц назад Мы «написали» каркас для будущей игры в боулинг.

92 Linux Format Март 2008 Игрострой Blender

Скорая помощь

Для контроля текущего значения переменной при прогоне программы вы можете вывести его на экран, нажав кнопку D у нужной переменной и атикивировав пункт меню Game Рис. 2. Порядок во всем – и все в порядке! > Show Debug Properties [Игра перемещении влево. Теперь осталось научить Emp_boul следить за какое-нибудь изменение значения переменной. > Показывать отладочную потоком сообщений и реагировать на нужное. 2 Interval [Интервал]. Укажите минимальное и максимальное значе- информацию] Для этого создайте еще одну логическую цепочку объекта Emp_boul ние для реагирования сенсором. (Рис. 3). с кирпичиками: Message > And > Motion [Сообщение > Логическое 3 Not Equal [Не равно]. Истина, если значение переменной не равно И > Движение]. В поле сенсора Subject внесите значение go_left, а в значению сенсора. Motion [Движение] измените значение координаты Y параметра dLoc 4 Equal [Равно]. Истина, если значения сенсора и переменной на -0.10. Не забывайте, что мы работаем исключительно с глобальны- совпали. ми координатами! Свойство Property блока Actuators, в свою очередь, позволяет Осталось только протестировать сделанное. При движении влево и совершать некоторые манипуляции с содержимым переменной: нажатии клавиши «пробел» сфера должна появиться точно на кончике 1 Copy [Копировать]. Копирование значения «чужой» переменной в стрелки. Если подобного не происходит, проверьте идентичность полей свою. Просто укажите названия объекта, его переменной и переменной- Subject передатчика и приемника. Помните о чувствительности Blender приемника. к регистру букв (Рис. 1). По образу и подобию вышесказанного проде- 2 Add [Добавить]. Увеличение или уменьшение значения переменной лайте то же самое и для движения вправо. на значение указанное в поле Value [Значение]. 3 Assign [Присвоить]. Присвоение нового значения указанной 1,2,3... Game over! переменной. Следующим шагом при разработке нашей игры будет введение ограни- Запомните несколько правил работы с переменными. Все переменные чения количества бросков тремя попытками. И в этой части урока мы с являются локальными по отношению к своему объекту. Соответственно, вами также познакомимся с переменными Blender Engine. их имена должны быть уникальными в рамках одного объекта, но могут Как и любой другой язык программирования, конструктор Blender’а совпадать у разных. Не забывайте о чувствительности регистра букв в предоставляет несколько типов переменных: String, Integer, Float, названиях. Следите за соответствием значения переменной ее типу. Boolean, Timer. Создать и настроить их можно, нажав кнопку Add Property [Добавить свойство] в панели Logic [Логика] конкретно для каждого Закодируйте мне это объекта. Здесь вы сможете выбрать тип переменной, ее имя и начальное После такого теоретического вступления, думаю, пришла пора вопло- значение. тить наши замыслы в реальность. Итак, у нас в запасе имеется всего Для работы с ними имеются специальные кирпичики с названием три попытки на выполнение броска. Визуально они отражаются в виде Property [Свойство] блоков Sensors и Actuators. Давайте сначала рас- такого же количества шаров, расположенных в правом нижнем углу смотрим работу с сенсором. игрового экрана. При совершении очередного броска эти сферы исчеза- При активации данного кирпичика, вам предлагается выбрать тип ют. В связи с некоторыми особенностями игрового конструктора и заяв- необходимой функции: ленной целью не использовать напрямую встроенный язык программи- 1 Changed [Изменилось]. Импульс проходит, если произошло хоть рования, решение задачи несколько усложняется. Поэтому мы пройдем с вами все ступени разработки данного куска логики. В самом простом варианте эту задачу можно было бы описать так: кол-во_попыток =3 НАЧАЛО ЦИКЛА бросаем шар кол-во_попыток=кол-во_попыток-1 ПОКА кол-во_попыток <> 0 ВЫПОЛНЯТЬ ЦИКЛ КОНЕЦ ЦИКЛА Это, безусловно, правильно, но уж больно далеко до реального

Примечание

Приведенные листинги не относятся к каким-либо из существующих языков программирования и призваны только лишь облегчить вос- приятие логики решения поставленной задачи. Тем не менее они имеют некоторые черты «настоящих» языков программирования. Так, строка s1.Count = arr.Count означает присвоение значения переменной arr.Count переменной s1.Count. В свою очередь, строка ЕСЛИ s1.Count ==3 ТО транслируется как сравнение двух операндов и выполнение кода после ТО, если указанное условие верное. Рис. 3. Отладочная информация поможет, если что-то пойдет не так.

Март 2008 Linux Format 93 Игрострой Blender

воплощения в игре. Давайте рассуждать более предметно, с точки зре- ния имеющихся у нас возможностей. Памятка Пусть имеется некая глобальная переменная Count, ответственная за хранение числа имеющихся у нас попыток. При каждом бросании Хотя наш урок и называется «Ни строчки кода», тем не менее, в шара всем объектам в игре отсылается сообщение go. Предположим визуальном конструкторе приходится использовать переменные раз- также, что каждая из сфер интерфейса при появлении подобного ных типов. Всего их в Blender Engine 5 штук: String, Integer, Float, сообщения сравнивает число, хранящееся в Count, со своим номером. Boolean, Timer. При совпадении происходит уменьшение значения глобальной пере- String предназначена для хранения текстовой информации. менной Count и удаление соответствующей сферы с экрана. Впоследствии ее можно вывести на экран, проделав некоторые хитрые манипуляции (об этом – в следующий раз). Если вы внимательно читали написанное до этого, то могли Integer – целочисленное двухбайтовое число, может иметь отрица- заметить некоторое несоответствие – в визуальном конструкто- тельное значение. ре Blender имеются только локальные переменные самого объек- Float – число с плавающей запятой. та (можно, конечно, их называть свойствами объекта, но, на мой Boolean – логический тип переменной. Имеет два значения: True взгляд, это не совсем правильно). Но что мешает нам создать [Истина] или False [Ложь]. Наряду с этими текстовыми значениями переменную, скажем, объекта arr и представить, что она является можно использовать численные: 1 и 0. глобальной по отношению к остальным, а потом при появлении Timer – число, выраженное в миллисекундах. сообщения go копировать ее значение в свойство конкретного объ- екта? Правильно, ничего. Чтобы было более наглядно, представим это столь же схематично, но уже с учетом реальных названий объ- Prop: – count ектов в нашей сцене: Таким образом, первое поле содержит название переменной- arr.Count = 3; приемника, два остальных, соответственно, название объекта и копи- НАЧАЛО ЦИКЛА руемой переменной. Подобные цепочки создайте и для оставшихся бросаем шар и отсылаем сообщение «go»; двух сфер. ... Однако глобальная переменная при броске у нас пока не изме- // предположим, объекты s1, s2, s3 приняли сообщение «go» няется. Что ж, исправить это несложно: нужно лишь добавить для s1.Count = arr.Count; стрелки цепочку, подобную построенной выше. Для активатора s2.Count = arr.Count; Property теперь выберите функцию Add [Добавить]. Пользоваться s3.Count = arr.Count; ею так же просто, как и другими. Поместите в поле «Prop:» название ЕСЛИ s1.Count ==3 ТО уменьшаем arr.Count и переменной count, а в параметр Value: значение -1. Как вы, надеюсь, удаляем объект s1; помните из школьной математики, сложение 3+(-1) в сумме даст 2. ЕСЛИ s2.Count ==2 ТО уменьшаем arr.Count и Вот теперь наш механизм счета произведенных бросков работа- удаляем объект s2; ет как часы. Если сомневаетесь в этом, воспользуйтесь приведен- ЕСЛИ s3.Count ==1 ТО уменьшаем arr.Count и ным выше советом и активируйте вывод переменной arr.count на удаляем объект s3; экран (можете выводить и все остальное, но это, по-моему, будет ПОКА arr.Count <> 0 ВЫПОЛНЯТЬ ЦИКЛ излишеством). КОНЕЦ ЦИКЛА Осталось решить, что делать со сферами, когда надобность в них Итак, хватайтесь за мышь: начинаем «кодить». Для начала реализу- исчезает. Да просто удалять их, а как выполнить это, я уже рассказывал ем систему обмена сообщениями между объектами. чуть выше. Удивлены? Ведь не зря некоторую часть этой статьи занял Так как объект Emp_boul у нас ответственен за визуализацию шара, псевдокод, а именно строки типа: «ЕСЛИ s1.Count ==3 ТО уменьшаем то пусть он и отсылает сообщение go. Создайте дополнительный кир- arr.Count и удаляем объект s1;». В переводе на язык Blender, это будет пичик Message в блоке Actuators и соедините его с цепочкой, ответ- выглядеть следующим образом. ственной за обработку клавиши Space. Не забудьте вбить туда само Создайте цепочку Property > And > Edit Object для объекта s1 сообщение! (Рис. 4) [Свойство > Логическое И > Редактирование объекта]. Задача сенсо- Теперь мы можем добавить логику объектам s1, s2, s3 для приема ра в этом случае – выдавать импульс при одинаковом значении поля этого сообщения и копирования переменной Count объекта arr в свои Value и переменной Prop. То есть, для объекта s1 это значение соста- собственные. Естественно, сперва вам нужно создать эти самые пере- вит 3, а для оставшихся двух, соответственно 2 и 1. Что же касается менные для arr, s1, s2, s3. Тип переменной везде будет Integer, только кирпичика Edit Object, то просто выберите в нем функцию End Object – установите значение для arr.Count равным 3. она не принимает параметров и уничтожает вызвавший ее объект. Итак, создайте логическую цепочку объекта s1, состоящую из кир- Соответственно, настройте подобным образом оставшиеся сферы. пичиков Message > And > Property. Для сенсора в поле Subject помести- Вот так мы с вами справились с отображением информации о те текст сообщения go. произведенных бросках, но сами броски так и остались неограничен- Чтобы скопировать одну переменную в другую, выберите из меню ными. Тут также нужно будет воспользоваться механизмом сообще- актуатора функцию Copy и настройте имеющиеся параметры следую- ний. Предположим, объект arr проверяет свою переменную count на щим образом: равность нулю и при выполнении этого условия отсылает сообщение Рис. 4. Примемся Prop: – count «go_off». Осталось настроить Emp_boul на его прием и удаление при за «код». OB: – arr положительном импульсе самого себя. Вот и все! Если вам не удастся решить эту задачу самостоятельно, загляни- те в исходник lesson2_end.blend. Не знаю, как вам, но мне наскучили эти унылые серые линии: настала пора вдохнуть в них цвета во всем их красочном многообра- зии! На следующем уроке мы не только про- должим совершенствовать логику игры, но и узнаем секреты игрового текстурирования, а может, и добавим для разнообразия некото- рые эффекты. LXF

94 Linux Format Март 2008 Игрострой для новичка

Наш движок

На DVD изнутри Файл ingame.h

ЧАСТЬ 3 Пользоваться инструментом, не понимая, как он работает – не дело для настоящего линуксоида. Разберитесь в механике Ingame вместе с Александром Супруновым – а заодно познакомьтесь с основами SDL.

вижок Ingame, которым мы пользовались на протяжении двух совку графики. Режим нагружает центральный процессор, но совме- последних уроков, является набором оберток над функциями стим практически со всеми компьютерами. Дбиблиотеки Simple DirectMedia Layer (SDL), доступной для Linux, Его антипод, SDL_HWSURFACE, задействует аппаратное ускорение, Windows, Mac OS X и множества других систем, включая даже AmigaOS. что может как повысить, так и понизить быстродействие конечной И сегодня мы попробуем разобраться в том, что происходило все это программы. время «за кулисами». SDL_DOUBLEBUF – включает режим двойной буферизации, позволя- SDL написана на языке C, поэтому все объекты, которыми она опери- ет получить более «плавную» графику. рует, представлены в виде структур. Имена этих структур начинаются с SDL_FULLSCREEN – активирует полноэкранный режим. префикса SDL_, а центральное место среди них занимает SDL_Surface – Прошу обратить внимание на третий параметр: количество бит это так называемая «экранная поверхность», на которой можно разме- на пиксель. Он может принимать значения 8, 16, 24, 32 или 0, что щать изображения. Структура SDL_Surface имеет поля w и h, задаю- соответствует глубине цвета, установленной в системе по умолча- щие высоту и ширину поверхности, а также поле format. Указатель на нию. Последний вариант наиболее переносим. Однажды я наблюдал основной игровой экран, определенный в файле ingame.h, имеет тип повреждение графики в SDL-игре, запущенной на Amiga Pegasos. SDL_Surface * и имя display. Выяснилось, что причиной была жестко зашитая глубина цвета (16) – замена ее на 0 решила проблему. Начало всех начал Следующим шагом мы устанавливаем заголовок окна: Как вы уже знаете, каждая программа, использующая Ingame, начина- SDL_WM_SetCaption («Linux GAMES», NULL); ется с вызова функции screen(). Ее прототип выглядит так: а затем инициализируем библиотеку SDL_ttf void screen(int w, int h); TTF_Init(); В первую очередь, screen() выполняет инициализацию SDL посред- и загружаем шрифт, который будет использоваться в игре для вывода ством вызова: различных сообщений SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO); fnt = TTF_OpenFont(«font.ttf», 20); где объединенные при помощи операции «логическое ИЛИ» флаги Функция TTF_OpenFont() принимает два аргумента (имя файла со имеют следующий смысл: шрифтом и размер в пунктах) и возвращает указатель на структуру SDL_INIT_VIDEO – активировать возможность работы с графикой. TTF_Font, который мы сохраняем в глобальной переменной fnt. SDL_INIT_TIMER – активировать возможность использования встро- С графикой разобрались; остался звук. За него отвечает библиотека енного в SDL таймера. SDL_mixer, которая инициализируется вызовом: SDL_INIT_AUDIO – активировать возможность проигрывания звуко- Mix_OpenAudio (44100, MIX_DEFAULT_FORMAT, 2, 2024); вых данных. Первый аргумент – частота дискретизации звука. Второй являет- Затем инициализируется поверхность display. Это делается следую- ся стандартным ключом – просто запомните его. Далее указывается щим образом: количество звуковых каналов (разумеется, «стерео») и размер буфера, display = SDL_SetVideoMode (w, h, 0, SDL_SWSURFACE | SDL_ отводимого под звуковые данные. Если вдруг в одно непрекрасное утро ANYFORMAT); вы услышите, что звук начал «спотыкаться» – увеличьте последнее Функция SDL_SetVideoMode() принимает в качестве параметров число, например, в два раза. ширину, высоту экрана, количество бит на пиксель, а также различные Две заключительных строки функции screen() – ключи, в том числе: frames = 0; SDL_SWSURFACE – предписывает использовать программную отри- then = SDL_GetTicks();

В прошлый раз Мы завершили нашу стрелялку, добавив противников и звуковые эффекты.

Март 2008 Linux Format 95 Игрострой для новичка

копирование), а вызов SDL_MapRGB() возвращает значение «ключа» в тре- буемом формате (напомню, что Ingame считает прозрачными пиксели цвета (255,0,255). Собственно копирование спрай- та осуществляется функцией SDL_BlitSurface(): SDL_BlitSurface(pic[num]. tmp,0,display,&shadow); Первый аргумент (pic[num]. tmp) – исходная поверхность, второй – область исходного изображения, под- лежащая копированию (мы передаем здесь NULL, что означает «вся поверх- ность»). Остальные два параметра име- ют тот же смысл для целевой поверх- ности. shadow – переменная типа SDL_ Rect, представляющая собой прямоу- гольник; координаты левого верхнего угла которого как раз равны x и y. Как сказать: «Game over»? Помимо спрайтов, на экране время Схема работы движка Ingame: вывод спрайтов и двойная буферизация. от времени нужно отображать и тек- стовые сообщения. Для этих целей имеют отношение к подсчету и ограничению FPS. Это необходимо в Ingame предназанчена функция для того, чтобы программа выполнялась с одинаковой скоростью на print(сообщение, координата_x, координата_y). Она начинается с опре- любых компьютерах. Мы инициализируем счетчик кадров frames и деления двух переменных сохраняем текущее значение таймера в глобальной переменной then, SDL_Color color = {255,255,255,0}; имеющей тип Uint32. SDL_Rect dest= {(Sint16)x, (Sint16)y,0,0}; Первая из них, типа SDL_Color, задает цвет символов (белый), а Добавим игроков вторая определяет точку, в которой будет выводиться сообщение. Итак, экран готов – настало время загрузить спрайты. Для этих целей в Текст надписи растеризуется на служебной поверхности (помните, все ingame.h используется структура WiHi, содержащая указатель на соот- спрайт-слоты выше 1000 заняты Ingame для внутренних нужд) функ- ветствующий объект SDL_Surface. цией TTF_RenderText_Blended(): По умолчанию резервируется место под 1900 объектов WiHi, при- pic[1000].tmp = TTF_RenderText_Blended(fnt, txt, color); чем все номера, начиная с 1000-го, используются движком для вну- Назначение ее аргументов, думаю, должно быть ясно из их тренних целей. При необходимости, можно увеличить число доступных имен. Можно также использовать более скоростной вариант – TTF_ спрайтов, просто изменив размерность массива. RenderText_Solid(), но он проигрывает _Blended() по красоте вывода. Для загрузки спрайтов в формате BMP в Ingame предусмотрена Остается только скопировать сообщение на экран при помощи уже функция loadsprite(), принимающая в качестве аргументов номер ячей- известной нам функции SDL_BlitSurface(): ки (num), в которую будет загружена картинка и имя файла (name). SDL_BlitSurface( pic[1000].tmp, NULL, display, &dest ); loadsprite() – обертка над двумя стандартными SDL-функциями: SDL_ и освободить память: LoadBMP() и SDL_DisplayFormat(). SDL_FreeSurface( pic[1000].tmp ); В принципе, здесь можно ограничиться всего одним вызовом: pic[num].tmp=SDL_LoadBMP(name); Движущая сила но с точки зрения производительности рациональнее будет сразу же Итак, библиотека инициализирована, спрайты отрисованы; настало преобразовать спрайт в пиксельный формат дисплея (например, если время заставить их двигаться. За это и многое другое отвечает функ- оригинальная картинка использует 24 бита на пиксель, а на экране – ция fx(), реализующая основной цикл игры. Она требует предваритель- всего 16, глубина цвета должна быть понижена). В итоге тело функции ного объявления ряда глобальных переменных: loadsprite() примет вид: SDL_Event event; pic[num].tmp=SDL_DisplayFormat(SDL_LoadBMP(name)); Uint8* keys; Функция sprite(num, x, y), как вы, надеюсь, помните, выводит event – специальная переменная событийного типа (зачем она нужна, спрайт с номером num в точке с координатами (x,y). Происходит это будет ясно ниже), а keys содержит номера нажатых клавиш. следующим образом: для изображения устанавливается «цветовой Мы также вводим ограничение FPS 75-ю кадрами в секунду. ключ» (значение RGB, которое SDL будет считать прозрачным), а затем #define FPS_LIMIT 75 спрайт просто переносится в нужную точку экрана. Функция fx() отслеживает нажатие клавиш, ограничивает коли- За прозрачность спрайта «отвечает» функция SDL_SetColorKey(): чество кадров, выводимых на экран монитора, очищает его перед SDL_SetColorKey(pic[num].tmp,SDL_SRCCOLORKEY | SDL_ отрисовкой очередной сцены, организует механизм «велосити» для RLEACCEL,SDL_MapRGB(pic[num].tmp->format,255,0,255)); движения объектов и меняет местами основной и теневой экраны, Флаг SDL_SRCCOLORKEY указывает, что «цветовой ключ» (послед- то есть реализует двойную буферизацию изображения. Разберем эти ний аргумент функции) следует считать прозрачным, SDL_RLEACCEL действия по шагам. включает RLE-оптимизацию (при этом группы одинаковых пикселей fx() начинается с опроса SDL на предмет произошедших событий. кодируются по принципу число_пикселей X значение, что ускоряет Этим занимается функция SDL_PollEvent(), которая принимает ука-

96 Linux Format Март 2008 Игрострой для новичка

затель на переменную событийного типа и возвращает TRUE, если if(keys[SDLK_LEFT]) что-то произошло. После этого мы можем изучить поле event.type, { чтобы понять, что именно случилось, и отреагировать надлежащим LEFT=1; vel=velocity; образом: } while (SDL_PollEvent(&event)) else { LEFT=0; if (event.type==SDL_QUIT) Аналогично поступаем и с другими управляющими клавишами. { Далее в игру вступает механизм «велосити», который был доста- GAME=0; точно подробно рассмотрен в LXF100/101, и, наконец, отрабатывает SDL_Quit(); система ограничения FPS: } ++frames; now = SDL_GetTicks(); if (event.type==SDL_KEYDOWN) if ( now > then ) { { fps= (int)((double)frames*1000)/(now-then); if(event.key.keysym.sym==SDLK_ESCAPE) } { if ( fps > FPS_LIMIT ) {SDL_Delay(1000/FPS_LIMIT);} GAME=0; Мы увеличиваем счетчик кадров, получаем текущее значение тай- SDL_Quit(); мера и вычисляем FPS. Если полученный результат превышает задан- } ный предел, функция SDL_Delay() приостанавливает работу програм- } мы на необходимый промежуток времени. } В качестве завершающего аккорда функция fx() меняет местами В первую очередь обрабатываются события, сигнализирующие теневой и экранный буферы: о необходимости выхода из игры: системное SDL_QUIT (оно гене- SDL_Flip(display); рируется, если, например, пользователь щелкнул кнопку закрытия делая видимым все, что было нарисовано на данной итерации цикла, окна) и нажатие на клавишу Escape (событие типа SDL_KEYDOWN, и очищает вспомогательный экран, заливая его черным цветом при код клавиши при этом сохраняется SDL в поле event.key.keysym.sym). помощи непрямого вызова функции SDL_FillRect(). Доступные коды клавиш перечислены в файле SDL/SDL_keysym.h, там же определены и константы наподобие SDLK_ESCAPE. Кстати, Музыка и звук можно реагировать не на нажатие, а на отпускание клавиши – такое Работа со звуком в Ingame по своей сути похожа на работу со спрай- событие будет иметь тип SDL_KEYUP. тами. Здесь также определяются структуры SiHi и MiHi, являющиеся Затем наступает черед обработки нажатия на управляющие обертками для указателей на Mix_Chunk (звуковой эффект) и Mix_ клавиши: «вправо», «влево», «огонь» и т.п. Здесь можно было бы (музыкальная композиция), соответственно. Структуры объеди- воспользоваться тем же приемом, что и для Escape, но есть одно няются в массивы, насчитывающие 500 и 100 элементов. Для загруз- «но»: пользователь должен иметь возможность нажать на несколь- ки эффекта из файла формата WAV функция loadsound() вызывает ко клавиш одновременно (скажем, «влево» и «вверх» или «вверх» и Mix_LoadWAV(), которая, в свою очередь, принимает имя WAV-файла «огонь»). Для таких целей SDL предоставляет в наше распоряжение в качестве единственного параметра. Для воспроизведения эффекта функцию SDL_GetKeyState(), которая возвращает указатель на массив используется функция sound(), эквивалентная вызову: значений типа Uint8, представляющий собой текущее состояние кла- Mix_PlayChannel (-1, sn[num].tmp, 0); виатуры в целом. Исходя из того, что именно было нажато, мы уста- -1 является указанием использовать первый доступный канал, навливаем переменные-флаги (LEFT, RIGHT и т.д.), а также изменяем 0 – число повторений, означающее, что звук будет проигран один раз. значение «велосити». С музыкой все обстоит ненамного сложнее. Соответствующие keys=SDL_GetKeyState(NULL); функции являются обертками над Mix_LoadMUS() и Mix_PlayMusiс(). Интерес представляет лишь функция stopmusic(), вызывающая Mix_FadeOutMusic(1000); для плавного затухания звука в течение 1 секунды. Что дальше? Наш краткий экскурс в SDL подошел к кон- цу. Конечно, мы не рассмотрели и десятой части возможностей этой замечательной библиотеки, но сделали главное – разо- брались в том, как работает движок Ingame. Теперь, когда на нашей карте не осталось белых пятен, вы можете сами решать, куда двигаться дальше. Хотите – развивайте ingame.h: исходный код распространяется по лицензии GPL; хотите – напишите с его помощью собственную игру. Возможен так- же третий вариант – разберитесь в деталях с SDL и создайте что-нибудь с нуля. Главное, если у вас получится что-то стоящее – не забудьте сообщить нам об этом! LXF

Март 2008 Linux Format 97 LXF Школа Школа Сервисы Open Source

го учебного времени) занимает работа с прикладным программным обеспечением. Предмет «Информатика» не включает: использование репозиториев в рамках других предметов (свобод- ный поиск в Интернете, электронные энциклопедии, электронные учебники); использование преподавателями мультимедийных демонстрацион- ных приложений (презентаций, фильмов, аудиозаписей и пр.); контроль качества образования вне зависимости от изучаемой дис- циплины (тестирования и экзамены); использование компьютера в качестве составляющей профильного лабораторного оборудования (физика, электроника и пр.); использование компьютера в работе над проектами (внутри одной дисциплины или междисциплинарными). Благодаря открытым ресурсам Интернета, в качестве учебных сред могут и должны быть использованы, например, почтовые серви- сы, доступ к которым обеспечивается через web–браузер – их ассор- тимент в русскоязычном секторе Интернета представлен достаточно широко. Сравнительный анализ этих служб сформирует у учащегося умения и навыки в области не только пользования почтой (отправка, получение, сортировка и пр). Умение выбрать сервис, подходящий для конкретных задач – это компетенция, а именно о компетентност- ном подходе к обучению говорится в стандартах нового поколения. Работая в репозиториях открытой энциклопедии Wikipedia (http://wikipedia.org) не только в качестве читателя (потребителя), но начале статьи приведем фразу, недавно прозвучавшую из уст и в качестве автора и модератора, современный школьник и студент Л. Торвальдcа: «Пользователя не должна волновать ОС», ска- получает возможность сравнить уровень своих знаний и умений не в Взал он, «а для Microsoft и Apple операционная система – прежде искуственно смоделированной среде «себе подобных» – как правило, всего способ заставить людей обновить программную и аппаратную соучеников, но с открытым сообществом, оценка которого – истин- части своего компьютера». ная, не зависящая от симпатий либо антипатий своего же препода- Не комментируя ту часть высказывания, которая касается кон- вателя, коллеги, конкурента. Возможность открытой публикации в кретных ОС, попробуем задать несколько вопросов: открытом проекте – это, на мой взгляд, важная школа для современ- С чем работает человек, включивший свой домашний компьютер – ного учащегося. то есть, для чего он ему нужен? Комплексные сервисы того же Google (работа с почтой, фото- и Какой доле из общего числа пользователей, по большому счету, видеопубликации, управление рабочим и личным временем через есть что делать в «чистой» операционной системе? систему календарей, работа в распределенных рабочих группах, Какой процент своего рабочего или свободного времени тратит интегрированная геоинформационная система, онлайн-переводчики обычный человек для настройки и перенастройки системы? и пр.) могут стать действительно полезным инструментом для совре- Ответы очевидны. Анализируя содержание образовательного менного специалиста. стандарта основного среднего (в этом случае мы говорим о шко- Для использования перечисленных сервисов достаточно иметь ле), среднего профессионального (техникум, колледж) и высшего доступ в Интернет. Они открыты для работы как из школы, так и из образования, можно видеть, что только в отдельных дисциплинах дома. Обсуждая вопрос комплектации компьютера программным (исключая дисциплины специализации в профессиональном образо- обеспечением (локальным), про этот сектор открытого ПО почему-то вании) изучение операционной системы занимает более 15–20 часов умалчивают, а ведь он обладает достаточно мощным образователь- учебного времени. Все остальное (то есть большую часть совокупно- ным потенциалом. LXF

98 Linux Format Март 2008 Школа LXF Авиаторы выбирают GNU/Linux

Авиация – теория и практика полета на воздушных судах в атмосфере. Для обеспечения полетов создается Авиационная инфраструктура. Без грамотной технической поддержки особо не налетаешь. Технарей нужно готовить смолоду – именно этим и занимается Павел Владимирович Скребнев в авиаколледже уездного города Рыльска (Курская область).

Евгений М. Балдин (LXF): Представьтесь, пожалуйста, Павел Владимирович. Павел Владимирович Скребнев (ПВC): Я закончил Рыльский авиаколледж (http://www.ratkga.ru) в 1997 году, и остался в нем рабо- тать на должности сначала лаборанта, потом техника, и в конечном итоге заведующего лабораторией ЭВМ. Еще в бытность лаборантом, мне приходилось обеспечивать проведение практических и лабо- раторных работ вместе с преподавателями-предметниками. После окончания Московского государственного института радиотехники, электроники и автоматики (МИРЭА) в 2003 году перешел на ставку Павел преподавателя на отделении ЭВМ. Владимирович Сейчас являюсь председателем цикловой комиссии ВТ (вычисли- Скребнев. тельной техники) на отделении ЭВМ. Цикловая комиссия – это наш аналог кафедры. Наш колледж готовит авиационных специалистов по эксплуатации и обслуживанию светотехнического оборудования аэропортов, нави- LXF: Когда вы впервые узнали про GNU/Linux? гационных систем, систем авиационной связи, радиоэлектронного ПВC: Сложно уже называть точные даты. Почетное место «старейши- оборудования самолетов, информационных систем управления воз- ны» у нас по праву занимает Александр Сергеевич Жуковский, воз- душным движением, вычислительных комплексов и систем. По ряду главлявший отделение ЭВМ в момент его образования. специальностей наше учебное заведение является единственным в России. Александр Сергеевич Жуковский (АСЖ): Есть такая аппа- ратура обработки радиолокационной информации (АПОИ) – «Приор». LXF: Зачем авиатехникам может пригодиться Linux? Она сертифицирована для применения в гражданской авиации. Это ПВC: Современное оборудование – это сложный программно- монстр из семи компьютеров промышленного класса плюс «аппарат- аппаратный комплекс, функционирующий под управлением про- ка» на ПЛИС (программируемых логических интегральных схемах), мышленных компьютеров. В качестве операционной системы все причем четыре из них работают под управлением MS DOS, а 3 под чаще стали применять Linux и QNX. Любое аппаратное и программное UNIX. Видимо, у разработчиков возникли проблемы с лицензировани- обеспечение, используемое для управления воздушным движением, ем, поэтому вместо коммерческих UNIX они стали использовать Linux. обязательно проходит сертификацию. Благодаря открытости Linux и В 1999 г. я с коллегами был на курсах повышения квалификации в QNX, проблем с сертификацией не возникает. славном Санкт-Петербурге. Изучали как раз АПОИ. Встретил там свое-

Март 2008 Linux Format 9 9 LXF Школа

лицом. Честно скажу, перед принятием решения неделю ходил – маялся, взвешивал все «за» и «против». Ведь от того, как препод- нести GNU/Linux, фактически зависит дальнейшее его продвижение. А выбирать, согласитесь, было из чего. Простота установки, настрой- ки – Mandriva, передовые технологии – Fedora, стабильность – Debian, качество – SUSE, «дружелюбность» – Ubuntu, поддержка русского языка – ASPLinux, просто поддержка – ALTLinux. Gentoo, по понятным причинам, не рассматривался, хотя я всегда его рекомендую тем, кто хочет полностью разобраться с Linux. В качестве первого базового выбор был в пользу ASPLinux. Плюсы: у нас уже была коробочная версия ASPLinux 11, отечественный про- изводитель, хорошо собираются программы из исходных текстов (спасибо Fedora), нормальная подборка приложений (правда, в вер- сии 11.2 хуже), кодеки в комплекте и самое главное – он стоял у меня дома. Минус – после установки нужно «тщательно обработать напильником». Второй базовый – Mandriva Free. Плюсы: простая установка и настройка, вполне современна, дружелюбна. Минусы: очень трудно установить программу не из комплекта и трудно настроить что-либо на «низком» уровне. Александр го выпускника Валеру Юркунса, который оказался адептом, фанатом и Третий базовый – Ubuntu. Плюс: очень дружественна к пользовате- Сергеевич т.д. Linux. Он-то и подарил мне Red Hat (по-моему, 6.2). Дня три (есте- лю. Минусы: пригодна только для мультимедиа и офиса. Жуковский с одним ственно, с перерывом на работу) я его устанавливал, потому как он К сожалению, несколько раз пробовал, но сам себя не переубе- из первых наших хотел знать о компьютере все, включая и то, что не знал я. В результа- дил в пользу использования ALT Linux. Очень хороший дистрибутив, дистрибутивов. те, развернуть X-Window так и не удалось. В общем, купив пару книг и отечественный, замечательная поддержка, но – репозиторий никуда не поработав с командной строкой, вернулся я к знакомому Windows. Тем годится. Дело не в том, что он плохой, маленький и т.д. Недостатком более что под Linux почти не было нужных мне приложений. Так что являются его достоинства: он постоянно обновляется, причем двоич- первое «хождение» в Linux кончилось почти без результатов (как для ные сборки требуют по зависимостям только последние версии паке- пользователя), оставив адреналин от преодоления трудностей. тов. Как результат, если надо обновить один пакет, то обновляется вся Возвращение через 8 лет было кошмаром и ничего хорошего пона- система, и часто неудачно. чалу не сулило. Спустя год можно оценить итоги. В минусе: пришлось переделать все методическое обеспечение, а это очень много рутинной LXF: Каков сейчас состав компьютерного парка колледжа? работы, которую в противном случае можно было бы не делать. Все ПВC: Всего в колледже около 250 компьютеров: это 8 лаборато- же в OpenOffice.org много проблем. В плюсе: познакомился с GIMP, рий + компьютеры на цикловых комиссиях + АРМ преподавателей + Blender, Quanta – вполне приемлемые продукты. Blender, по моему электронная библиотека + административные службы + общежития мнению, даже лучше, чем 3Dmax. Получаю доступ к портам прямо из курсантов. Почти все компьютеры связаны в вычислительную сеть. C без всяких API-функций. Нет вирусов. Кажется, стал более глубоко «География» дистрибутивов зависит от того, кто устанавливал и где. понимать программно-аппаратное взаимодействие. Сами понимаете, что я лично не в состоянии полностью проделать ПВC: Александр Сергеевич сделал самое главное – он показал, такую работу. Поэтому по учебному отделу установлен ASPLinux что мир значительно шире, чем нас пытался убедить Microsoft. под моим руководством (наибольшая функциональность); в элек- Воспитанные на ZX-Spectrum и ассемблере я и мой друг Сергей тронной библиотеке и 2-м уч. корпусе, а также в учебных мастер- Губанов с энтузиазмом начали «ковырять» новую ОС. Это было ских – Mandriva (просто и со вкусом) под руководством инженера потрясающе! У нас заработала сеть и звук, мы «поставили иксы»! Игоря Николаевича Халявина; в администрации – Ubuntu (устано- Первым настольным дистрибутивом был украинский Black Cat. вил, и работай), разворачивал программист Евгений Владимирович Огромное спасибо разработчикам за то, что они показали, что GNU/ Бессонов. Linux может быть и «дружественным». Microsoft Windows, по известным причинам, осталась в бухгал- терии, на радиополигоне, так как там используются спецпрограммы; LXF: По какой причине вы решили начать преподавать информа- кроме того, в одной аудитории была сделана двойная загрузка – в ней тику в колледже? изучают 1С бухгалтерию и Консультант+. Кроме того, ведь Windows ПВC: Не совсем информатику. Наш колледж отраслевой и выпу- тоже надо показать, и привить базовые навыки по работе с ней скает авиационных специалистов. С вычислительной техникой, осо- [улыбается]. бенно на старших курсах, связано множество предметов. Лично я преподаю следующие дисциплины: «Операционные системы и LXF: Как производился переход? среды», «Периферийные устройства», «Управляющие системы», ПВC: Прежде всего, это был именно переход, а не паническое «Системы управления объектами УВД», «Прикладное программ- бегство. Миграция была обдумана и проходила в несколько эта- ное обеспечение», веду практические работы по предметам «Сети», пов. Использовать GNU/Linux в учебном процессе я начал еще в «Программирование» и практику по специальности. 2004 году, когда по новому образовательному стандарту был вве- ден предмет «операционные системы и среды». На практических LXF: Какой дистрибутив сейчас используется в колледже в каче- работах мы изучали процесс установки, набор приложений, рабо- стве базового? ту с графическими интерфейсами, пользовательские настройки. ПВC: Так сложилось, что используется 3 дистрибутива: ASPLinux, На практике по специальности более углублено изучали строе- Mandriva, Ubuntu. Почему именно эти? Выбор базового дистрибутива ние системы, сетевые возможности, работу с командной строкой, для учебного заведения – это очень серьезный и ответственный шаг. администрирование. Это дома можно ставить эксперименты. Методический материал в Естественно, после практических работ Linux с компьютеров никто учебном процессе строится на конкретном списке программ. Кроме не удалял (работали с двойной загрузкой), и каждый желающий, из того, нужно показать курсантам и преподавателям, так сказать, товар любопытства или целенаправленно, мог попробовать себя в открытой

100 Linux Format Март 2008 Школа LXF

Преподаватель Светлана Витальевна Милюкина демонстрирует создание электронных схем в KiCAD.

среде. Кроме того, опыт использования свободных программ имелся ыдущей. Я думаю, что это было серьезное испытание не только для и в окружении Windows: в частности, на компьютерах был установ- нашего колледжа, но и для GNU/Linux в учреждениях вообще. лен OpenOffice.org. К весне 2006 г. достаточно многие уже свыклись с мыслью, что GNU/Linux может полностью заменить Windows, и я LXF: Какие программные продукты используются для обучения? сам был тому живым примером. Я нашел в сети списки аналогов про- ПВC: Кроме стандартного набора, обеспечиваемого практически грамм Linux-Windows и продемонстрировал их. В результате созрело любым дистрибутивом, пришлось разыскивать и самостоятельно решение запустить осенью одну аудиторию полностью под GNU/Linux устанавливать KiCAD – САПР разработки печатных плат, Qucs – моде- и посмотреть, что из этого выйдет. лирование электронных схем, Lazarus – IDE для Free Pascal, QCAD – Как говорится, инициатива наказуема, поэтому мне первому и при- САПР для чертежников, Maxima – математические расчеты, iTest – шлось протаптывать дорожку. Решено было начать с самого легко- тестирование знаний. Единственное, чего нам очень не хватает, так го – информатики. Попутно составлялся методический материал, это программы распознавания текста, хотя есть FineReader 8 под отмечались наиболее частые ошибки и затруднения. По окончании Linux [видимо, речь об SDK, – прим. ред.], но он платный и закры- семестра был подведен итог: GNU/Linux полностью удовлетворяет тый. Надеемся, что CuneiForm все же портируют в Linux. Также пока нужды образовательного процесса. Решено было в период зимних не нашли достойного редактора Flash-анимации. каникул перевести на Linux и остальные классы. Попутно было про- ведено несколько занятий с преподавателями, где продемонстриро- LXF: А по каким программам и учебникам работаете? вались возможности новой ОС, аналоги программ, разъяснены при- ПВC: В основном, вся учебная литература собственного производ- чины смены ОС. Конечно, реакция была неоднозначна. Естественно, ства. Дело в том, что за многие годы преподавания дисциплин было каждый представил тот объем методической работы, что нужно будет изучено большое количество самой разной литературы, и выбрано переделать. Но! Часть работы была уже проведена, наработки уже самое лучшее, из того, что нам подходит. были. Были намечены пути. Конечно, в Интернете есть множество информационных порталов, но Когда курсанты пришли с каникул в начале 2007 года, то они обна- использовать их напрямую нельзя. Необходима методическая обработ- ружили на компьютерах новое ПО. Никаких с этим проблем не возник- ка, адаптация под программу обучения. Сейчас основная работа направ- ло. Некоторые даже не заметили, что сменилась ОС. На самом деле, лена на переработку имеющегося материала, обновление, дополнение. ребята довольно быстро адаптировались, и нам даже пришлось повы- сить меры по защите сети! LXF: Есть ли какие-либо проблемы c использованием GNU/Linux? Когда по нашему городу прокатилась волна проверок лицензион- ПВC: Я не вижу каких-то больших проблем. Информатика – это наука ности ПО, то нас она тоже не обошла стороной. И вот тут окончатель- об обработке и преобразовании информации. И предмет «информа- но стало ясно, что курс нами был взят правильный, а средства верны. тика» был введен в школьную программу еще до появления там ком- Даже выбор первого основного дистрибутива был сделан верно! А пьютеров. GNU/Linux – это не просто инструмент для «запуска игр» и дело вот в чем. При проверке ПО нам пришлось доказывать, что оно «набора текста». На базе этой ОС можно решить практически любую не контрафактное. Можно ли это доказать, показывая диски, подпи- задачу. Необходимо только просвещение. санные маркером? Мы установили ASPLinux Deluxe, у нас была коро- бочная версия, покупка которой оформлена через бухгалтерию, и в LXF: При нашем первом контакте вы упомянули олимпиады комплекте имелось уведомление о наших правах. Кроме того, сама (гуманитарно-технические). Что имелось в виду? демонстрация коробки оказалась весьма эффективной. В общем, был ПВC: Уже несколько лет среди учебных заведений гражданской составлен акт, что контрафактного ПО не обнаружено! Была и еще авиации России, Украины и Беларуси проводятся отраслевые более глубокая проверка, которая лишь подтвердила заключение пред- гуманитарно-технические олимпиады. Участники соревнуются по

Март 2008 Linux Format 10 1 LXF Школа

Никита Долженко, 252 гр.: Мое отношение к операционным системам сугубо личное. Операционная система Linux, представ- ленная в большом ассортименте, является одной из самых лучших ОС современного поколения, имеет в наличии огромное количе- ство разнообразного и разнопланового софта, который обновля- ется и совершенствуется чуть ли не каждый день, по принципу «одна голова – хорошо, а две лучше». Является одной из наилуч- ших ОС, подходящих для средне-специальных и высших учебных заведений, занимающихся образованием молодежи, так как на ОС Linux можно выполнить почти любую поставленную задачу в пла- не учебы и человеческих потребностей. А если сказать просто: ОС Linux мне нравится своим графическим интерфейсом и простотой использования.

LXF: Кто-нибудь из курсантов использует GNU/Linux дома или в общежитии? Петр Евмененко, 351 уч. гр.: О Linux я узнал от своего дру- га, которому теперь очень благодарен. Работа с компьютером для меня является обязательным занятием в жизни, а без Linux достичь такого ее уровня уже не получится. Я благополучно мигрировал на Максим (слева) истории авиации, по спорту, по работе на авиационных тренажерах, новую ОС еще до того, как осознал, что получу. И теперь возвра- и Никита печатают в использовании ПК. Также на ПК проводится тестирование знаний щаться к старым стандартам работы с компьютером я не могу. В газету отделения по основным спецдисциплинам. В прошлом году олимпиада прово- Linux я выполняю как учебные, так и любые другие задачи. В общем, (в ООо Writer). дилась с использованием только открытого ПО. Участникам давали он полностью выполняет роль домашней операционной системы во 2 тренировочных дня, в течение которых они привыкали к работе с всем многообразии задач, возникающих у студента. Это и написание новым ПО, затем, собственно, соревнования. Результаты олимпиады рефератов, и выполнение практических работ, программирование, и, показали, что: конечно, так как это домашний компьютер, он используется и для участники быстро адаптировались к новому ПО; развлечения (фильмы, музыка, игры), общения, да всего и не пере- конкурсанты, уже имеющие навыки работы со свободным ПО, зна- числишь. Можно сказать, что без Linux я буду как без компьютера чительного преимущества не получили. вообще. Отсюда вывод: вопреки широкому мнению, свободное ПО легко в Константин Новиков, 351 уч. гр.: Почему я использую Linux? освоении, а для работы с ним не требуется специфических навыков. Во-первых, это большое количество программ для различных нужд, В скором времени мы опять встречаем гостей. Посмотрим, что будет не требующих регистрации, следовательно, отпадает необходимость (улыбается). искать в Интернете ключи и патчи. Более того, все эти программы находятся на диске с дистрибутивом, то есть их не нужно где-то искать. LXF: Как реагируют на GNU/Linux курсанты? Во-вторых, следует отметить высокую стабильность системы, в отли- ПВC: Давайте спросим у них самих. чие от печально известного своими неполадками Windows. Даже если произойдет сбой в приложении, то оно аварийно завершится, никак не Максим Ефимов, 252 гр.: Операционная система Linux, установ- повлияв на стабильность системы. В-третьих, следует отметить про- ленная на большинстве компьютеров РАТКГА, имеет ряд отличий от стоту настройки Linux, так как файлы конфигурации хранятся в одном Windows, из-за которых у пользователя, работающего долгое время месте. В-четвертых – это большое количество документации, также Петр (слева) и Константин под Windows, могут возникнуть сложности. В остальном – это пре- поставляющейся вместе с дистрибутивом, в которой имеется подроб- (справа) отвечают красная операционная система! ное описание всех команд и возможностей данной ОС. Многие жалу- на вопросы. ются на то, что данные тексты написаны на английском языке, что мне абсолютно непонятно, так как английский язык сейчас преподают во всех учебных заведениях, да и в Интернете этой документации «пруд пруди». Малая распространенность Linux на домашних компьютерах связана, прежде всего, с его принципиальным отличием от Windows в плане графического интерфейса, устройств, необходимости иметь как минимум две учетные записи и т.д. Многие дистрибутивы (Ubuntu, Mandriva, OpenSUSE) ориентированы на начинающих пользователей и предоставляют доступ практически ко всем настройкам из графиче- ского интерфейса, что также следует отметить как их достоинство.

LXF: Как реагируют на эти нововведения родители? Константин: Они не знают, что такое операционная система [улыбается]. Петр: Мои родственники тоже пользуются благами Linux. Хотя, наверное, это потому, что их требования сводятся к насущному (раз- ложить пасьянс, набрать текст, посмотреть видео) и никакой раз- ницы, какую ОС использовать, нет. Каждый найдет здесь то, что он искал.

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

102 Linux Format Март 2008 Школа LXF

Зав. отделением Владимир Валентинович Артемов.

ПВC: Да, действительно, возрастной состав наших преподавателей практик, тесты, карточки индивидуальных опросов, экзаменационные внушает уважение и почтение. По большей части – это наши ветера- материалы, наглядные пособия, методический материал для заочного ны. Я не ошибусь, если скажу, что все преподаватели волей-неволей отделения. вынуждены использовать вычислительную технику в своей препо- Вторая проблема – материал хоть и отработан, но еще не оформлен давательской деятельности. Прежде всего это подготовка учебных подобающим образом. Сами понимаете, что время – наш самый глав- материалов и документации. С этим особых трудностей не возникает. ный враг [улыбается]. Конечно, приходится оказывать некоторую помощь, но не больше, чем в случае Windows! LXF: Помогает ли вам сетевое сообщество? Показательный пример: заведующий отделением «Техническая ПВC: Сетевое сообщество учителей и преподавателей еще не сфор- эксплуатация транспортного радиоэлектронного оборудования» мировалось. Помощь же сообщества пользователей GNU/Linux опо- Владимир Валентинович Артемов, не имея никаких навыков по средованная. С другой стороны, самим существованием GNU/Linux установке операционных систем, самостоятельно без посторонней мы обязаны именно сообществу! помощи установил на 2-х компьютерах у себя на цикловой комис- На мой взгляд, большую помощь сообщество оказывает в составле- сии ASPLinux 11.2 и настроил печать на принтере. После всех этих нии документации и переводе. Так же одна из самых важных заслуг упражнений Владимир Валентинович утверждает, что GNU/Linux его сообщества заключается в просвещении. полностью устраивает. Единственно, в чем была моя помощь – это настройка сети. Может, не так страшен GNU/Linux в настройке, как LXF: Что вы планируете делать дальше? о нем думают? ПВC: Наш колледж сейчас переживает очередную информационную структурную реорганизацию. Прокладываются оптические линии, LXF: Было упомянуто, что есть значительное количество учебного устраивается нормальная серверная. Предстоит большая работа по материала. К нему можно получить доступ со стороны? вводу сервера на основе Novell OES 2. ПВC: Весь наработанный материал является собственностью кол- Мне лично хочется запустить вычислительный кластер и оценить его леджа, поэтому взять и просто выложить не получится. Необходимо производительность с помощью LinPack. Есть мысли о подключе- такие вопросы решать цивилизованно. Во-первых, получить разре- нии к городской сети, о создании единой информационной системы. шение руководства и согласие преподавателей. Во-вторых, сейчас Было бы время… мы наблюдаем большое количество «учебников», авторы которых имеют весьма посредственное представление о предмете. Написать LXF: Чего вам не хватает на этом пути? такой учебник очень просто – идем в Интернет, скачиваем все ПВC: К сожалению, активность сообщества в нашем регионе очень по теме, фильтруем, продаем. Речь идет об авторском праве. мала. Мало литературы не о GNU/Linux вообще, а о конкретных сфе- Необходимо материал защитить законом, т.е. применить одну из рах применения, а та, что есть, стоит очень дорого. открытых лицензий. Вопрос юридически тонкий, ведь в России еще нет достаточной правовой базы. Ваш журнал мог бы оказать нео- LXF: Чего бы вы всем пожелали, чтобы продвинуть GNU/Linux в ценимую помощь в разъяснении, как правильно поступать в этом образование? случае. ПВC: Не бояться начинать. Оно того стоит. Консерватизм в обуче- Что касается состава материала – это слайд-лекции, практические нии не должен занимать основные позиции. Не надо ждать, пока и лабораторные работы по предметам, методические пособия, кон- сверху спустят бумажку (а спустят обязательно). Нужно быть уже спекты лекций, программы обучения, тематические планы, программы готовым. LXF

Март 2008 Linux Format 10 3 LXF Школа

GNU/Linux в селе Владимировка Модные идеи о том, чего должен хотеть человек для полного счастья, возможно, и правильны, но всегда находятся те, кто плывет против течения. Люди интересны именно своим разнообразием – и сегодня мы беседуем с Сергеем Валерьевичем Семёновым, сельским учителем.

Евгений М. Балдин (LXF): Скажите, Сергей Валерьевич, а как вы оказались во Владимировке? Сергей Валерьевич Семенов (СВC): Я закончил Дальневосточный государственный технический университет по специальности «Вычислительные машины, комплексы, системы и сети». Учителем стал после переезда из г. Бердска Новосибирской области в деревню. Переезд был необходимостью, т.к. по идейным соображениям не мог работать и жить в городе. Если упростить, то из-за необходимости свободы и полезности своего труда. Работа учителем – это, наверно, одна из высших и сложнейших профессий. Потому что результатом ее становится Человек.

LXF: Когда вы впервые узнали про GNU/Linux? CBC: Узнал еще в институте. На третьем курсе. Первым дистрибути- вом был RedHat 7.2 Enigma, потом Slackware, потом Gentoo, немного коснулся и Debain. Это дало очень многое. Для начала – спокойствие в работе и твор- Сергей Валерьевич Семёнов. честве. Сбойный софт от Microsoft, вирусы, убивающие наполовину написанный диплом, перестановка раз в несколько месяцев всего LXF: Какой дистрибутив используете сейчас как основной? ПО, настройка раз за разом, синие экраны, скачущие картинки в MS CBC: Основной дистрибутив, если можно так сказать – это Gentoo. Office… Все это не позволяло пребывать в спокойном состоянии. Почему так неуверенно? Потому что он установлен всего на одном И когда точка «кипения» была преодолена, я перешел на GNU/Linux. компьютере – сервере, правда, два раза. Один раз для сервера, вто- С тех пор, максимум, что раздражает – это сбои оборудования, но рой для терминалов. они не так часты по сравнению со сбоями ПО, которые были ранее. Программное же обеспечение работает стабильно. И даже если LXF: Какой компьютерный парк сейчас находится под вашим возникают проблемы, то их можно решить путем более глубокого управлением? «разбирательства». CBC: Основной парк машин – это 7 компьютеров AMD Sempron на базе чипсета nForce и 512 МБ оперативной памяти. Эти компьютеры LXF: Почему вы насаждаете GNU/Linux в школе? Это хобби? Так загружаются через сетевую карту с главного сервера. На всех ком- удобнее вам? пьютерах получается единый набор ПО, одинаковые настройки. У CBC: Это правильно с точки зрения идеологии. Или, говоря проще, каждого пользователя есть своя домашняя директория (монтируется с точки зрения будущих поколений. Информация должна принадле- на все терминалы через NFS), в которой он хранит свои данные; на нее жать миру. Нельзя «подсаживать на иглу» несвободного ПО с самой отводится квота в 800 МБ. школы. Остальное оборудование – это более-менее новый компьютер с Что касается удобства свободного программного обеспечения: все установленным дистрибутивом Runtu 1.1 (http://runtu.org), который соз- ПО, которым школьники пользуются в классе, может быть бесплатно дан на базе Ubuntu нашими, русскими разработчиками и отличается и абсолютно легально установлено и у них дома. С точки зрения учеб- повышенной дружественностью для пользователя, который переходит ного процесса это выглядит совершенно логично. с ПО Microsoft. Этот дистрибутив был установлен в первую очередь, что-

104 Linux Format Март 2008 Школа LXF

бы смягчить первые возможные недовольства. Сейчас за этим компью- тером работают учителя. Еще на одном компьютере установлен Debian 4.0 Etch с рабочей средой Xfce, т.к. компьютер довольно слабой конфи- гурации. Ну и оставшаяся машина работает под управлением Windows XP. Необходимость этого продиктована наличием МФУ Cannon, кото- рое никак не поддерживается в Linux (остальные имеющиеся принтеры поддерживаются и работают), а так же «на всякий случай»: вдруг от Районо придет ПО, которое не получится запустить в Wine.

LXF: По каким программам и учебникам проходит обучения? CBC: На данный момент изучаются основы, ОС, файлы и т.д. Далее стандартно – GIMP, LaTeX/LyX, Abiword, клоны Logo, wxMaxima, работа с Интернетом, почта. Изучение проводится по учебнику «Информатика» А.Г. Гейна, Н.А. Юнермана, М: «Просвещение», 2001 г. Учебник отличает то, что в нем не указаны конкретные названия про- грамм, так что выбор приложений ложится на плечи преподавателя.

LXF: Что было основной проблемой перехода на открытое про- граммное обеспечение? CBC: Инертность. Нежелание менять даже то, что работает плохо. Малейшие проблемы – и все шишки сыплются на того, кто затеял пере- ход. Но это скорее неспецифичная для школы вещь [улыбается]. LXF: Как относятся к вашей деятельности другие учителя? Ученик за работой Еще стоило бы упомянуть момент с программным обеспечением CBC: В целом положительно, иногда осторожно. от Министерства образования и Районо (Районное отделение народ- ного образования). Все их методические материалы ориентированы LXF: А как ко всему этому относится дирекция? сугубо на платформу Microsoft, что, правда, не является виной препо- CBC: В общем-то, им нужно, чтобы оно работало. Как и поче- давателя, но создает сложности. му – совершенно без разницы. Но платить деньги за «лицензионность» Эти препятствия обходятся путем применения свободного ПО, аль- никто не будет. тернатив; в крайнем случае, в дело идет запуск через Wine. На самый крайний случай желательно, конечно, иметь хотя бы одну машину с LXF: Есть ли помощь от сетевого сообщества? установленной лицензионной ОС Windows, во избежание ситуаций, CBC: Конечно. Сообщество помогает советами, документацией. когда времени нет, а надо, чтобы вот «это» запустилось и работа- Благодаря сообществу и существует GNU/Linux [улыбается]. ло. Чтобы в этот момент не оказаться между молотом (Районо или МинОбр) и наковальней (администрация школы), лучше иметь одну LXF: А чем бы еще сообщество могло вам помочь? машину с установленной Windows. CBC: Было бы замечательно русифицировать хотя бы то программ- ное обеспечение, которое применимо в школе. Например, ту же LXF: Как реагируют на GNU/Linux дети? Celestia (http://www.shatters.net/celestia/). Да и программ бы больше и CBC: В принципе, детям это неважно. Им важнее, что есть компьюте- разных для школы, но это скорее не к сообществу, а к Министерству ры, что у них есть своя домашняя директория с их личными файлами образования и Районо. Чтобы делали заказы для подрядчиков с усло- и настройками, что есть Интернет, и он доступен им с любого компью- вием открытости и многоплатформенности продуктов. тера. Некоторых заботил только вопрос об играх для Windows. Но для школы, для отдыха школьников игр и в Linux хватает за глаза. LXF: Что вы планируете сделать дальше? CBC: Довести все до ума, чтобы все работало автоматически, без LXF: Кто-нибудь из детей использует GNU/Linux дома? вмешательства человека. CBC: Пока нет, но, надеюсь, с опытом и с появлением компьютеров К примеру, помимо здешних детей, в школе учатся дети с соседней дома у тех, кто особо увлекается, ситуация изменится [улыбается]. деревни. Их привозят на автобусе. Увозят через час после завершения последнего урока. Естественно, хотелось бы, чтобы эти дети имели LXF: Как реагируют на эти нововведения родители? приоритет в нахождении в компьютерном классе, т.к. у местных детей CBC: Им это также неважно. будет время после их отъезда. Для этого по cron’у каждый вечер (после кружка информатики) запускается скрипт, который запрещает вход в систему местным детям, а на следующий день, в 15:20, когда дети с соседней деревни уже уехали, происходит откат сделанных изменений. В идеале, все должно работать надежно, стабильно, слаженно. Нужно, чтобы все учителя знали возможности этого комплекса и пользовались ими для повышения качества обучения и облегчения нагрузки на учи- тельский состав. И, естественно, аналогично для детей.

LXF: А чего вам больше всего не хватает? CBC: Направленности Районо и Министерства Образования на сво- бодные стандарты и свободное программное обеспечение.

LXF: Чего бы вы пожелали всем, чтобы продвинуть GNU/Linux в школы? CBC: Не бойтесь. Экспериментируйте, любите свою работу, получайте удовольствие от силы и гибкости GNU-систем и дарите ее детям и тем, Школьницы кто с вами рядом [улыбается]. LXF

Март 2008 Linux Format 10 5 LXF Школа Чем «enter» наше отзовется…

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

рошлым летом я выступал в г. Но студенты первого курса – на то и сту- щая иллюстрация, и я задаю коварный вопрос: Екатеринбурге на семинаре, посвя- денты первого курса, чтобы во всём раз- «Увидим ли мы ошибку после выполнения Пщенном Red Hat Linux, и у меня слу- бираться. Минута – и мы вводим имя поль- команды ls c:\windows 2>/dev/null ?». И что же чился разговор на тему высшего образова- зователя и пароль. Через полчаса в воздухе вы думаете? Буквально через полминуты раз- ния и необходимости его последовательного аудитории повисает вопрос: «А как получить думий, три женских голоса из разных частей перевода на ПО с открытыми исходными список всех команд?» и всеобщее одобрение, аудитории сообщили, что нет, не увидим. И кодами. Все прошло успешно, слушатели когда после двойного нажатия клавиши Tab ведь правильно... оказались должным образом озадачены, а появляется четырёхзначное число. По результатам прочитанных лекций мож- после мероприятия ко мне обратился пре- Нынешний студент – прагматик. Ему сказ- но с уверенностью сказать, что учить с исполь- подаватель Уральского Государственного ки про молочные реки и кисельные берега зованием Open Source можно. Но, скорее все- Дмитрий Амиров. Лесотехнического Университета Николай ни к чему: ему подавай конкретику. Интерес го, курс, в котором будет подробно рассма- Александрович Голубев: усиливался, когда мы попытались объяснить, триваться работа в консоли, нужен разве что – А не прочитать ли вам цикл лекций по что Linux будет нужен современному бизнесу, в рамках предмета «Операционные системы». дисциплине «Операционные системы», рас- и такие знания помогут студентам предложить Во всех других случаях требуется более кон- сказать студентам об ОС Linux? себя во многих отраслях. А когда наступило кретная программа. Над этим его предложением я раздумывал понимание того, что структурно все опера- Николай Александрович Голубев предло- недолго. Почему бы, собственно, и не прочи- ционные системы похожи, и мы даём им не жил организовать такой курс, в котором к тать, тем более что за основу вполне сгодит- узкие знания, слушатели прониклись темой концу семестра студенты должны будут соз- ся авторский курс по Linux? Посоветовались окончательно. дать свой web-сайт, и сделать его доступным и решили, что лучше всего пойти с самого Еще одним занятным фактом стала позна- в Сети. Что ж, будем думать… Ведь к началу начала. Самое начало, в нашем случае, это вательная активность представительниц пре- следующего учебного года мы хотим дать не такие темы, как феномен свободного ПО, его красного пола. При изучении каналов ввода/ «несколько лекций», а полноценный курс. Ну, рождение и предпосылки; что такое Linux, вывода на доске была сделана соответствую- и экзамен принять, разумеется… LXF «Основные задачи ядра», «Основы работы в терминале с описанием процессов, проис- ходящих в системе», «Файловая структура и файловая система». Любой, кто имеет хотя бы мало-мальский опыт преподавания, знает, что никакой, даже самый пространный и проработанный курс не может охватить всех аспектов учебной зада- чи. Лектору важно заинтересовать слушате- лей и предложить им методологию, согласно которой они смогли бы продолжить изучение самостоятельно. Этим путем пошел и я, сформулировав основной целью формирование у студентов представления о теме. Каково же было мое удивление, когда уже с первых минут я увидел выраженную заинтересованность: сначала – загрузкой с LiveCD Fedora 7, затем – отсут- ствием чего-либо красочного. Николай Александрович Голубев.

106 Linux Format Март 2008 Ответы Есть вопросвопрос по OpOpenen SSource?ource? Пишите нам по адресу:адресу: [email protected]@linuxformat.ru

Я знаю две программы,программы, отоотобража-бража- Сегодня мы ответим юющиещие такие дданные.анные. lshwlshw (http://p// на вопросы про: О ezix.org/project/wiki/ HardwareLiSter) – консольная программа, 1 7 Мониторинг Свободные показывающая достаточную информацию о оборудования шрифты Вашей компьютерной системе, включая све- 2 Обновления в 8 Установку дения о памяти. Вот пример её вывода. сети брэндмауэра *-memory 3 apt-get 9 Удаление description: System Memory 4 Настройки программ physical id: 40 пользователя 10 USB- slot: System board or motherboard 5 root-доступ дистрибутивы size: 4GB 6 Kicker BIOS *-bank:0 description: DIMM SDRAM Synchronous 800 MHz (1.2 ns) product: PartNum0 HardInfo и lshw вместе дадут исчерпывающую 1 Память на подробности vendor: Manufacturer0 информацию о вашей системе. Существует ли программа, позволяющая узнать, physical id: 0 какая память установлена в машине – параметры serial: SerNum0 номера. Она показывает различные наборы информа- Вчипов, частоту шины и тому подобное? slot: DIMM0 ции о компьютере. Вместе эти программы могут дать Crucial предлагает утилиту ActiveX для IE, кото- size: 1GB Вам всю нужную информацию. Кстати, результаты рая выполняет эту работу, но у меня не Windows, width: 64 bits вывода этих программ чрезвычайно полезны для нас, и я не хочу устанавливать дополнения к браузеру, clock: 800MHz (1.2ns) когда мы пытаемся ответить на вопросы. которые получают столь тесный доступ к моему *-bank:1 оборудованию. Графическая альтернатива – HardInfo (http:// 2 Слежка за адресами gb, с форумов hardinfo.berlios.de), которая есть на LXF DVD каждого Я получаю доступ к моему компьютеру на рабо- те через корпоративную VPN. Годами IP-адрес В моей рабочей машины не менялся, но недавно оказалось, что он изменился один или два раза за Наши эксперты неделю. Есть ли простой способ, чтобы мой компью- тер (Kubuntu 7.10) посылал мне письмо с новым адре- Мы найдем эксперта по любому вопросу – от проблем с установкой системы или модемом до сетевого сом, когда он меняется? администрирования; главное – спросить! Javier Прежде чем что-то делать, выясните, разре- шает ли это Ваш работодатель. Иметь доступ Нейл Ботвик Майк Сондерс О к рабочей сети из дома приятно; потерять Владелец ISP и экс-редактор Майк был одним из создателей из-за этого работу – отнюдь нет! дисков для нашего журнала, Нейл прототипа LXF – Linux Answers. Его Специальной утилиты для этого я не знаю (даже считает, что в Linux он от скуки на специальности – программирование, после 50 писем от читателей LXF с разьяснениями), все руки. оконные менеджеры, скрипты инициализации и SNES. но это легко сделать с помощью короткого скрипта, который можно запустить через Cron. #/bin/sh IPADDRESS=$(/sbin/ifconfig eth0 | sed -n ‘s/.*inet addr:\([^ ]*\).*/\1/p’) if [[ “${IPADDRESS}” != $(cat ~/.current_ip) ]] Пол Хадсон Грэм Моррисон then Пол – местный супер- Когда Грэм не обозревает вершины echo “Your new IP address is ${IPADDRESS}” | программист. Он управится со программного обеспечения и не mail -s “IP address change” [email protected] всеми вашими проблемами по потрошит MythTV, он готов к ответам echo ${IPADDRESS} >|~/.current_ip части web и баз данных. про любое оборудование и проблемы виртуализации. fi Реальная работа начинается со второй строчки: там применено регулярное выражение для извлечения текущего IP-адреса из вывода ifconfig. Он сравнивает- ся с адресом, сохраненным при предыдущем запус- КУДА ПОСЫЛАТЬ ВОПРОСЫ: ке; для этих целей используется файл ~/.current_ip, Пишите нам по адресу: [email protected] или спрашивайте на форуме: www.linuxforum.ru но сгодится любое место, доступное Вам на запись

Март 2008 Linux Format 107 Ответы

и недоступное для нахождения другими. Если адре- Например, при запуске этой команды с заменой числовые ID для этого пользователя. В результате са отличаются, скрипт посылает письмо при помощи ‘pkgspec’ на ‘postgrey’ создастся файл, содержащий пользователь SUSЕ может писать в директорию, а команды mail и пишет новый адрес в .current_ip. http://security.ubuntu.com/ubuntu/pool/universe/ пользователь Ubuntu нет. Команда mail – это стандартная программа для libn/libnet-dns-perl/libnet-dns-perl_0.59- Хотя вполне возможно сделать идентификаторы отправки писем из командной строки или скрипта, но 1build1.1_i386.deb пользователя в обоих компьютерах дистрибутивах ей нужен установленный локальный SMTP. Если mail http://gb.archive.ubuntu.com/ubuntu/pool/ одинаковыми, это внесет букет собственных проблем. и ее зависимости не установлены на Вашем компью- universe/libb/libberkeleydb-perl/libberkeleydb- В дистрибутивах могут не совпадать версии некоторых тере, удобнее будет взять SendEmail, устанавливаемую perl_0.31-1_i386.deb программ; тогда они будут конфликтовать при запи- из Synaptic. Она может использовать любой SMTP- http://gb.archive.ubuntu.com/ubuntu/pool/main/ си настроек. Новая версия программы обычно может сервер. Замените команду mail в скрипте на libd/libdigest-sha1-perl/libdigest-sha1-perl_2.11- читать установки, записанные более старой версией, sendEmail -s smtp.work.com -f [email protected] -t 1build1_i386.deb но обратное не всегда верно. [email protected] -u “IP address change” -q http://gb.archive.ubuntu.com/ubuntu/pool/main/ Самый безопасный способ работать в двух (или Первый аргумент – это адрес почтового сервера на libd/libdigest-hmac-perl-dfsg/libdigest-hmac-perl_ больше) разных дистрибутивах – это иметь отдель- работе (на время тестирования можно удалить опцию 1.01-5_all.deb ные пользовательские каталоги. Вы можете исполь- -q [quiet – бесшумно]). http://gb.archive.ubuntu.com/ubuntu/pool/ зовать похожие имена, но надо будет изменить путь к universe/libi/libio-multiplex-perl/libio-multiplex- домашней директории. Например, пусть у Вас в обоих 3 apt-get вне сети perl_1.08-3_all.deb дистрибутивах будет пользователь с именем ‘pearse’, а Мой домашний компьютер с Ubuntu не подклю- http://gb.archive.ubuntu.com/ubuntu/pool/ директории пользователя сделайте /home/pearse-suse чен к Интернету, но у меня есть быстрое соеди- universe/libn/libnet-cidr-perl/libnet-cidr-perl_0.11- и /home/pearse-ubuntu. В нение в колледже. Есть ли инструмент, который 1_all.deb Для изменения домашней директории в SUSE я мог бы использовать на компьютере (c Windows), http://gb.archive.ubuntu.com/ubuntu/pool/ запустите Yast и зайдите в User Management. Выберите присоединенном к Интернету, для разрешения зависи- universe/libn/libnet-ip-perl/libnet-ip-perl_1.25-2_ пользователя, кликните на кнопке Edit, зайдите во мостей? all.deb вкладку Details и измените домашнюю директорию на Мне нужен способ ввести имя программы, которую http://gb.archive.ubuntu.com/ubuntu/pool/ pearse-suse. Отметьте галочкой Move to New Location я хочу установить, получить список её зависимостей universe/libn/libnet-server-perl/libnet-server-perl_ и нажмите на Accept для применения изменений. Если и запихать его в Windows-приложение, чтобы добыть 0.94-1_all.deb Вы сделали это, зайдя под тем же именем пользова- файлы и все прочее, от чего зависит приложение. http://gb.archive.ubuntu.com/ubuntu/pool/ теля, может оказаться, что Вам не выйти из системы; Tuxmando, с форумов universe/p/postgrey/postgrey_1.27-4_all.deb тогда нажмите Ctrl-Alt-Backspace для перезапуска X, Способов есть как минимум два. Быстро и Как Вы можете видеть, здесь приведены и сама затем зайдите снова. Это также можно сделать, вый- легко можно сделать с использованием программа, и ее зависимости. Скопируйте download. дя из рабочего стола и отредактировав файл passwd О опции ‘Generate package download script’ list на USB-брелок и перенесите его на компьютер с в консоли от имени суперпользователя (root), запус- [Генерировать скрипт загрузки пакетов] в Synaptic. быстрым Интернет-соединением. Многие программы тив vipw, изменив и записав домашнюю директорию Отметьте пакеты, которые Вы хотите установить, затем FTP и менеджеры закачки умеют читать список URL Вашего пользователя. Затем выполните выберите эту опцию в меню File; она создаст скрипт для скачивания из файла по типу mv /home/pearse /home/pearse-suse командной строки, запустив который, Вы сможете wget --input-file myurilist для перемещения директории. скачать пакеты. Затем перенесите пакеты на Вашу В строке ‘pkgspec’ можно задать больше одно- В Ubuntu таким же способом можно использо- машину с Ubuntu и там поместите их в /var/cache/apt/ го имени пакета. Однако Вам необходимо время от вать консоль root или меню System > Administration > archives или воспользуйтесь опцией меню ‘Add времени запускать apt-get для обновления. Если Вы Users and Groups для запуска менеджера пользовате- downloaded packages’ из Synaptic для их установки. пользуетесь Интернетом не из дома потому, что Ваш лей. Перед этим откройте терминал, затем зайдите в Основной недостаток этого способа – скрипт требует домашний компьютер сидит на медленном модемном менеджер пользователей, выберите Вашего пользова- наличия wget, поэтому Вам придется установить его на соединении, не опасайтесь проблем: apt-get update теля и нажмите Properties, выберите вкладку Advanced компьютере, с которого будете скачивать. много не загружает. Если же у Вас вообще нет доступа и измените домашнюю директорию. Вы также должны Как альтернативу, можно использовать apt-get из в Интернет, можете запустить изменить собственную группу пользователя на ‘users’ командной строки с опцией --print-uris. Apt-get будет apt-get --print-uris update для соответствия установкам SUSЕ. Ubuntu не имеет автоматически пытаться установить все зависимос- и скачать файлы в другом месте, затем скопиро- опций для переименования домашней директории, ти, а --print-uris выведет URL всех необходимых фай- вать, распаковать и переименовать файлы Sources в поэтому переключитесь в ранее открытый терминал лов. Используя grep и cut, достаньте URL из вывода /var/lib/apt/lists. (Вы не сможете ничего открыть после смены домаш- с помощью ней директории) и запустите apt-get --print-uris --yes install pkgspec | grep ^\’ | 4 Конфликт пользователей sudo mv /home/pearse /home/pearse-ubuntu cut -d\’ -f2 >downloads.list Я установил Ubuntu с LXF100/101 и нашел уста- затем выйдите и зайдите снова. новку очень впечатляющей. Однако когда я Графические инструменты менеджера пользова- В стартую компьютер с нуля – после нормально- телей в обоих дистрибутивах должны показать число- го завершения работы – все мои установки в Ubuntu вой ID пользователя. Оба дистрибутива по умолчанию исчезают, и приходится все заново переустанавливать присваивают первому пользователю номер 1000, но и настраивать. Я теряю настройки пользователя если это не так, надо изменить UID в Ubuntu. Это мож- Thunderbird, все обновления и даже сохраненные но сделать из консоли root, не заходя в рабочий стол, документы. Этой проблемы не наблюдается с установ- с помощью ленной на этой же машине SUSE 10.3. sudo -i Можете ли вы просветить меня, как избежать vipw таких повторов? Покамест я не выключаю компьютер, #вноим изменения опасаясь потерять все. chown -R pearse: ~pearse Нет подписи Первая строка дает Вам доступ в качестве root; А не используете ли Вы одно и то же имя vipw работает, как сказано выше (никогда не редак- Synaptic умеет генерировать скрипты командной пользователя и домашнюю директорию и тируйте /etc/passwd напрямую); а последняя строка строки для скачивания пакетов и всех их О для Ubuntu, и для SUSE? Если да, то пробле- применяет измененные значения к Вашей домашней зависимостей на другом компьютере. ма вызвана тем, что два дистрибутива отводят разные директории и всему ее содержимому.

108 Linux Format Март 2008 Ответы

! Вопрос-победитель (английская версия)

В Knoppix нет диска Linux, или есть что то, что я упустил? загрузить Windows (и кто после этого Купив Compaq Desktop Хай И [HuiYi] скажет, что в Linux поддержка обору- SR5280CF, я попытался попро- У нас были такие же пробле- дования хуже?), а если забывали его Вбовать Live CD. Пробовал Mepis, мы с новым ноутбуком, и все включить – Knoppix не находил жест- PCLinuxOS и OpenSUSE; все три загру- Оиз-за установок SATA в BIOS. кий диск. Ubuntu и Gentoo видели его, жались на моей машине, но не находи- Наш компьютер позволял выбрать, а другие нет. ли жесткий диск. Ни Konqueror, ни использовать или нет AHCI для интер- Проверьте Ваши настройки BIOS и KDiskFree не показали hda1 или sda1. фейса SATA (Advanced Host Controller попробуйте изменить что-нибудь, свя- Этот компьютер шел с предустанов- Interface – стандарт для SATA-связи). занное с протоколом SATA. Или попро- ленной Vista, и все работало. Что-то Нам приходилось выключать AHCI в буйте другой Live CD – Ubuntu пре- неправильно с этим компьютером или редких случаях, когда надо было красно работает с Вашей системой.

(LXF62 и LXF63), но народ нигде не спрашивал вас про учетную запись root. Я хочу использовать GParted, а он работает только под root. Заодно, не могли бы вы подсказать мне изящный способ переименовать раздел на жестком диске USB под Fedora 7? Я сумел изменить разрешения (они мне не годились), но мне ни в жизнь не понять, как его переименовать. Крумб Ф. Пенсом [Croombe F Pensom] Вы слегка нас озадачили (кто сказал «что нового?»), потому что Knoppix 3.2 нет на ОLXF63 DVD – там была версия 3.7. Не имели ли Вы в виду более ранний диск от Linux Format? Замешательство усугубилось тем, что Knoppix 3.7 включает не GParted, а QtParted (поскольку Knoppix – это KDE-дистрибутив). Так или иначе, ответ следую- щий, что бы Вы ни запускали от имени root: откройте терминал, выбрав System > Konsole в меню K, затем наберите в строке su. Это даст Вам доступ от root. Пароля здесь нет, и отсюда Вы можете запускать любую программу. Попытки запуска программ, требу- ющих для доступа прав root, напрямую из меню дадут различный результат. Большинство выкинет окошко с требованием ввести пароль, а это невозможно: паро- ля-то нет. Другие, вроде QtParted, всегда запускаются от root. su в терминале позволит запускать все что угодно от имени root. Что Вы подразумевали под «переименованием разделов»? Если Вы хотите сменить нумерацию, используемую в узлах устройств /dev/hdN (напри- Разрешите конфликт пользователей в мультизагрузочной системе тщательным выбором домашних директорий и UID. мер, потому, что создавали и удаляли разделы не по порядку), это можно сделать с помощью Fdisk. Наконец, убедитесь, что все в Вашей директории ln -s ../pearse-suse/photos ../pearse-ubuntu/ photos Запустите принадлежит тому же пользователю, запустив следу- чтобы похожие директории (и соответственно общие fdisk /dev/hda ющие команды от имени root: данные) были доступны в обоих дистрибутивах. Не затем нажмите P – появится таблица разделов, X для chown -R pearse: /home/pearse проделывайте это для любых директорий, где есть входа в режим эксперта и F для исправления поряд- Конечно, в этом случае Вы получите две различные настройки, так как обновление программ в одном дис- ка разделов. Наконец, нажмите W для записи Ваших домашние директории со своими почтовыми папка- трибутиве приведет к поломке в другом или в обоих изменений на диск. ми и другими документами, разбросанными по ним. дистрибутивах. Это еще одна причина держать две Если Вы хотите изменить метку файловой сис- Общее имя пользователя и UID позволяют получить отдельных домашних директории. темы (часто называемую именем тома), то метод доступ к обоим директориям из каждого дистрибу- зависит от вида используемой файловой системы. тива, поэтому было бы легче общие файлы сделать 5 Пароли и разделы Легче всего это сделать с системой ext2/3: просто доступными и там и там, что можно сделать с помо- Вчера я хотел попробовать простой, маленький наберите щью символьных ссылок. В терминале SUSE запустите дистрибутив, и прожег Knoppix 3.2 с DVD e2label /dev/sda1 новое_имя следующие команды: В LXF63. Все прошло нормально, кроме того, что Эквивалентная команда для ReiserFS – ln -s ../pearse-suse/Mail ../pearse-ubuntu/Mail я не знаю пароля root. Перепробовал все возможные reiserfstune --label новое_имя /dev/sda1 ln -s ../pearse-suse/documentsl ../pearse-ubuntu/ комбинации, типа ‘visitor’, ‘Knoppix’, ‘lxformat’ и другие, а для XFS Вы должны использовать documents но ни одна не подошла. Я посмотрел все вопросы xfs_admin -L новое_имя /dev/sda1

Март 2008 Linux Format 109 Ответы

Часто задаваемые вопросы...

смысл зашифровывать системные зашифруйте их с помощью GnuGPG. Шифрование директории, если там только пакеты с Когда вы используете EncFS, сама фай- Охранять свои данные от посторонних глаз важно не бесплатно загружаемых дисков? ловая система стандартна, зато содер- только теоретикам конспирации – это должен уметь жимое файлов выглядит как мусор. И что мне надо сделать? Можете использовать любую программу каждый. Тут есть альтернативы. Ядро Linux содер- для сохранения их резервных копий, жит dm-crypt, используемый для созда- файлы останутся зашифрованными. Это Почему я должен шифровать свои Шифровать файлы поштучно – боль- ния полностью зашифрованных файло- удобно, если резервные копии хранятся файлы? Мне нечего скрывать. шая морока. Нет ли более простого спо- вых систем. Имеется несколько про- на удаленном сервере. Вы так уверены? А вы храните счета на соба их обезопасить? грамм управления созданием и монтиро- своем компьютере? Ваши письма не Есть такой: это шифрованная файловая ванием таких файловых систем. Я пред- Это спасет файлы, если я забуду содержат приватную информацию типа система. Она автоматически шифрует почитаю LUKS (Linux Unified Key Setup); свой ноутбук в поезде? паролей или подтверждений сетевых файлы при записи и дешифрует при другой вариант – EncFS. Это файловая Увы, нет, если его похитят спящим транзакций? чтении. Вы набираете пароль только система Fuse (см. LXF80). Вместо шиф- (suspend) при неразмонтированной один раз, когда монтируется сама фай- рования всей файловой системы, она зашифрованной файловой системе. Допустим, у меня есть информация, ловая система. Если ваш ноутбук будет шифрует индивидуальные файлы: их EncFS автоматически выполняет размон- которую я предпочел бы защитить. Что потерян или украден, никто не сможет имена и содержимое. Это не самый тирование файловой системы, если она я должен для этого сделать? прочесть информацию с зашифрованно- безопасный вариант, поскольку размеры какое-то время не используется – но Можете зашифровать файлы с помо- го каталога (обычно это /home). файлов и их права доступа все-таки только при отсутствии открытых фай- щью, например, GnuPG. Тогда содержи- видимы, но он более удобен. лов. Если для шифрования раздела, мое файлов будет недоступным, пока вы Почему только /home? А все зашиф- например, /home, вы используете dm- его не дешифруете с помощью пароля. ровать нельзя? А как насчет резервных копий? crypt, нужно выйти из системы и размон- GnuPG – GPL-заменитель PGP (Pretty Нет, потому что будет невозможно полу- Если вы шифруете всю файловую систе- тировать /home перед переводом ком- Good Privacy), стандарта де-факто для чить доступ к ПО, необходимому для му, нужно смонтировать ее перед сняти- пьютера в режим спячки. шифрования файлов. монтирования разделов. Да и какой ем копий; для защиты резервных копий

Максимальная длина метки файловой системы – покажет все файлы из пакета kmoon. Быстрый Архив RedHat содержит только сами шриф- 16 символов для ext2/3 и ReiserFS, в XFS Вы ограниче- способ найти программу, установленную из пакета – ты – понадобится немного большее, чтобы ны 20-ю знаками. поискать в путях, содержащих ‘bin/’, так как програм- О использовать их как замену шрифтов Так как Вы упоминали разрешения, я сомневаюсь, мы обычно устанавливаются в один из каталогов /bin, Microsoft. Как это сделать, зависит от того, установле- что Вы используете файловую систему MS-DOS на /sbin, /usr/bin или /usr/sbin, как здесь: ны ли шрифты глобально, как у Вас в /usr/share/fonts, этом диске, но для комплекта Вам необходим пакет dpkg -L kmoon | grep bin/ или только для пользователя в ~/.fonts. В первом слу- MTools для изменения метки файловой системы FAT. В этом случае не выведется ничего, потому что нет чае добавьте нижеследующий код в /etc/fonts/local. Он использует глобальный файл конфигурации /etc/ установленных запускаемых программ. Для исполь- conf, во втором в ~/.fonts/local.conf. (В обоих случаях, mtools/mtools.conf и файл для каждого пользователя зования этих программ кликните правой кнопкой на создайте файл, если его не существует.) ~/.mtoolsrc. Вам необходимо пометить раздел жест- пустом месте панели Kicker и выберите ‘Add Applet кого диска буквой в стиле MS-DOS, в секции вроде to Panel...’ [Добавить апплет на панель...]. Откроется этой: окно с описанием всех апплетов Kicker, установлен- drive D: ных в Вашей системе, в котором Вы сможете выбрать mlabel D:новое_имя ния слева от существующего апплета и пройдите отту- Вы также можете запустить mlabel без нового да в меню панели. Times имени тома – тогда будет показано старое имя тома и New Roman запрошено новое. 7 Свободу шрифтам Li Я часто работаю с документами и таблицами с beration Serif 6 Апатичные апплеты работы, содержащими шрифты Microsoft – Я пробовал установить KMoon и KWeather в В Times и Arial, которых у меня нет. Я скачал Dapper Drake, а теперь и в Gutsy, но они не шрифты Liberation от Red Hat для замены, прочитав о Arial запустить их из консоли, то получаю “command not fonts/truetype, они стали доступны в OpenOffice.org. Li found”. Мне очень нравятся оба этих апплета. Locate Как определить, какой шрифт OpenOffice.org исполь- beration Sans находит их файлы; может, они установились не в те зует вместо шрифта Microsoft и заменить его на экви- директории? Я новичок и не знаю, как оценить (или валентный из Liberation? А еще, как мне заставить исправить) ситуацию, если что-то идет неправильно. Firefox использовать шрифты Liberation вместо шриф- Courie Valorie тов Microsoft, заданных на web-странице? r Обе эти программы не являются самостоя- Я прочел в Linux Format Special, что OpenOffice.org Li тельными: это апплеты панели Kicker в KDE. создает файлы меньшего размера, чем Microsoft Office, beration Mono О То есть Вы не можете их «запустить», даже но нахожу, что это далеко от истины. OpenOffice.org из меню или оболочки. Вы можете точно увидеть, что сохраняет пустой DOC-файл как 65 КБ и пустую XLS- файлы пакетов установлены, используя dpkg. таблицу как 95 КБ. Почему так много? Я использую При этом любая программа, попытавшаяся загру- Например, OpenOffice.org версии 2.2 из Ubuntu 7.04 с LXF94 DVD. зить один из шрифтов Microsoft, будет использовать dpkg -L kmoon Эдвард Харрингтон [Edward Harrington] альтернативу из Liberation, и все web-страницы будут

110 Linux Format Март 2008 Ответы

iptables -A INPUT -i eth0 -p tcp --syn -m state -- state NEW -j NFQUEUE Если система удаленная, исключи SSH-порт или то, что ты используешь для соединения с нею.» Я не знаю, как «исключить SSH-порт», и не могу спросить его снова, так что буду благодарен за любую вашу помощь. Cih, с форумов Не зная вопроса, который Вы задали своему другу, очень трудно дать точный ответ, так О что приведем общие соображения об исполь- зовании Iptables. Linux-программа Netfilter, предостав- ляющая услуги брандмауэра, встроена в ядро, а Iptables – программа, позволяющая настраивать для него правила. Ваши правила фильтруют входящие пакеты на eth0, которые запрашивают новое TCP- соединения (--syn). Iptables – очень мощный, но и очень низкоуровне- вый продукт. Это значит, что Вы можете дать бранд- мауэру конкретные инструкции, и он будет делать именно то, что Вы скажете, невзирая на то, что Вы действительно хотели сделать. Поэтому использова- ние Iptables без детальных знаний очень опасно. Вы можете заблокировать свой компьютер или создать Апплеты KDЕ нельзя запустить напрямую, их можно только добавить на панель. Kmoon и KWeather правила, которые, по Вашему мнению, защитили бы позволят узнать, что происходит снаружи, даже если у вас нет ни одного окна. систему, а они на самом деле дали бы «добро» любо- му потенциально опасному трафику. Для безопасной настройки Iptables нужно одно из двух: либо хорошая выглядеть, как задумал автор, даже если у Вас не уста- файле много избыточной информации – при загруз- книга или учебник по этому вопросу и время, чтобы новлены шрифты от Microsoft. В этом случае также не ке документа в OpenOffice.org и сохранении его как прочитать и понять ее, либо графический интерфейс. нужно изменять все документы, которые Вы создали в DOC размер файла обычно уменьшается; но большее Существует немало хороших интерфейсов, и все OpenOffice.org, так как они могут ссылаться на шрифты уменьшение достигается при использовании файлов они предоставляют в общем одну и ту же функцию: Microsoft и выглядеть точно так же, когда Вы пошлете Open Document, сжимаемых с помощью Zip. помогают сообщить программе, что надо отфильтро- их пользователям Windows. Вы можете найти больше вать, а затем генерируют правила Iptables. Доступные информации об этом и вышеприведенном коде по 8 Основы брандмауэра пакеты включают Firewall Builder (www.fwbuilder.org), адресу http://uwstopia.nl/blog/2007/05/free-your-fonts. Пересылаю ответ моего друга на заданный Guarddog (www.simonzone.com/software/guarddog) и По нашему опыту, OpenOffice.org сохраняет гораз- мной вопрос. Shoreline Firewall (www.shorewall.net). Первый – GTK- до меньшие файлы, чем Word и Excel, но пустой В «Можешь ли ты настроить правильно правила программа, хорошо подходящая к рабочему столу файл – это нетипичный пример. Word сохраняет в Iptables? Тебе нужно что то вроде Gnome или Xfce, Guarddog – программа KDE (они похо-

Краткая справка

даясь в соблюдении всех зависимостей и установке оптимальных параметров для программы. Неплохо Компиляция приложений сначала выполнить команду ./configure --help, что- бы увидеть имеющиеся опции. Вторая команда компилирует приложение, помещая созданные ольшинство дистрибутивов имеют большие tar xvzf foo-1.2.3.tar.gz файлы в текущий каталог. Для конфигурирования репозитории программ, содержащие гото- tar xvjf foo-1.2.3.tar.bz2 и компиляции права root не нужны, но третья ста- Бвые пакеты практически на все случаи Поздние версии tar умеют определять, как был дия – это копирование скомпилированных файлов жизни, но иногда необходимо собрать пакет из создан архив (gzip или bzip2), так что аргументы в системные подкаталоги, а потому требует прав исходных текстов. Обычная причина – отсутствие z или j можно опустить. Исходные тексты обычно root. Вот почему мы используем su для выполнения обновленного (или какого-либо вообще) пакета распаковываются в папку с именем, совпадающим с только этой команды от имени root. Пользователи для вашего дистрибутива, или необходимость названием архива; после выполнения команд введи- Ubuntu должны использовать вместо нее команду исправить исходный код, добавив функцию или те cd foo-1.2.3. Найдите файлы с именами README sudo make install убрав ошибку. или INSTALL и прочтите их – обычно там находится Если вы не указывали для ./configure путь, то по Поддержать систему в актуальном состоянии инструкция по установке. Стандартная процедура умолчанию скомпилированная программа устанав- помогает менеджер пакетов вашего дистрибутива, такова: ливается в /usr/local/bin. Если при работе в RPM- но если вам необходимо собрать пакет из исходных ./configure системе configure сообщает, что библиотека не най- текстов, то процесс чрезвычайно прост. make дена, а вы точно знаете, что она у вас есть – уста- Во-первых, распакуйте архив с исходными текс- su -c “make install” новите соответствующий библиотеке пакет -devel, тами (tarball) одной из двух команд: Первая команда проверяет вашу систему, убеж- например, libbar-devel.

Март 2008 Linux Format 111 Ответы

жи, но отличаются своими подходами), а Shoreline Firewall – программа-скрипт, трудная для настройки с первого раза, но гораздо более гибкая. Любая из них способна защитить Вашу систему, так что попробуйте их и решите, какая Вам больше всего нравится. Комментарий про SSH-порт был потому, что при- сланное Вам правило блокирует весь TCP-трафик извне. Это прекрасно, если у Вас не запущено никаких серверов, но если имеется в виду машина, к которой Вы получаете удаленный доступ через SSH, можно заблокировать самого себя. Поэтому друг советует добавить правило, разрешающее SSH-трафику – это трафик на порт 22 (порт SSH) – передаваться, чтобы сохранить возможность присоединяться удаленно. Это легко сделать, установив параметры в любой из программ, упомянутых ранее. Понятно, что если Ваш компьютер – не удаленный сервер, то совет явно лишний. Если Вы имеете дело с удаленным компьютером, запустить графический интерфейс программы, воз- можно, не удастся. Однако все эти программы гене- рируют стандартные правила Iptables, и Вы може- Исключите SSH или любой другой порт через Guarddog – разбираться в Iptables не обязательно. те запустить их на локальной машине, убедиться, что они верны, а затем перенести их на удаленный компьютер. Но есть лучшее решение, интегрирующее «само- сборные» программы с Вашим менеджером паке- Нужна помощь! 9 Пакеты-самоделки тов, чтобы все можно было удалить (или обновить) Я обычно удаляю установленные приложения с обычным путем. Установите CheckInstall (имеющийся Для наилучшего ответа на ваш вопрос нам помощью apt-get remove в Ubuntu. Недавно в директории Главное на любом DVD Linux Format) и нужно знать как можно больше подробностей. Вначал компилировать программы из исходни- используйте его вместо make install. Процесс установ- Детально опишите конфигурацию системы. ков и наткнулся на проблемы с их удалением. Я пробо- ки при этом становится таким: Если вы получили сообщение об ошибке, вал использовать make uninstall, но тогда требуется ./configure приведите текст сообщения и точно опишите наличие Makefile. Выходит, я должен сохранять все make вызвавшие его действия. Если у вас проблемы мои Makefile для удаления всех скомпилированных sudo checkinstall --type=debian --install=yes с оборудованием, то опишите его. Если Linux программ, которые я установил? Не очень-то практич- Как Вы можете видеть, вызов CheckInstall заменяет уже запущен, то выполните в root-терминале но. make install. Он запускает make install, а затем собира- следующие команды и прикрепите к письму Ghost, с форумов ет пакет Debian и устанавливает его с помощью dpkg. файл system.txt: Вы можете заново создать Makefile, распако- В результате скомпилированная программа не просто вав архив с исходниками и запустив устанавливается, а становится видимой в Synaptic, uname -a >system.txt ./configure в этой директории. Учтите: если откуда Вы ее можете потом удалить. О lspci >>system.txt Вы передавали какие-либо опции в ./configure в пер- У CheckInstall много опций – он не ограничен lspci -vv >>system.txt вый раз, когда распаковывали архив, Вы должны пакетами, которые используют make install (обо всем использовать эти опции снова. Затем можете сделать этом можно прочитать в документации), но Вам этого Пожалуйста, помните, что сотрудники make uninstall из директории с исходниками. достаточно. журнала НЕ являются авторами или разработчиками Linux, любых пакетов или дистрибутивов. Зачастую люди, отвечающие за приложения, выкладывают большую часть информации на web-сайты. Попробуйте почитать документацию!

Мы стараемся ответить на все вопросы. Если вы не нашли ответ на свой, это, возможно, потому, что мы уже ответили на похожий вопрос.

112 Linux Format Март 2008 Ответы

Большой вопрос Как загрузить старую машину с внешнего накопителя?

10 Воскресите мой ноутбук! Record) на внешний диск вместо внутреннего. Ссылка на /dev/sdb будет правильна, если только Хочу записать Linux на внешний жесткий Современные ядра используют библиотеки SCSI для Ваш BIOS не делает USB-устройство первым в цепоч- диск, подключенный через USB2.0, и исполь- всех жестких дисков, так что Ваш внутренний диск ке (sda), когда Вы загружаетесь с него, но все метки В зовать его для загрузки моего ноутбука. будет /dev/sda, а внешний – /dev/sdb. Мы опробова- разделов Grub ссылаются на первый раздел на пер- Проблема в том что мой ноутбук – старый IBM ли это на PCLinuxOS с DVD LXF101; там есть специ- вом диске, так что измените это на (hd1, 0). Thinkpad, поэтому я думаю, что надо использовать альные опции установки на USB-диски. Теперь загрузитесь с дискеты и выберите Вашу дискету для загрузки с внешнего диска (как было После такой установки дистрибутив должен загру- новую запись в меню. Если получите ошибку ‘file упомянуто в учебнике «Первые шаги» LXF99). Мне жаться на любом компьютере с поддержкой загрузки not found’, нажмите C для входа в консоль Grub и нужна такая установка на моей настольной машине, с жестких дисков USB. Иначе Вам придется создать наберите потому что CD-привод не работает. дискету, содержащую загрузчик Grub. Вы можете find /boot/vmlinuz Как мне сделать дискету, передающую загрузку использовать готовый образ с http://tinyurl.com/2f62dt. Эта команда выдаст номер раздела, содержаще- на USB? Есть ли разница в настройке загрузки с USB Скачайте pdlfloppy.img.gz и запишите его на диск го Ваше ядро – он-то и должен быть в строке kernel для полновесных и «легких» дистрибутивов? gzip -dc pdlfloppy.img.gz | dd of=/dev/fd0 в меню. Подсветите запись меню и нажмите E для Джеймс Велгус [James Velguth] Эта дискета создана для загрузки установки редактирования, затем сделайте то же самое со стро- Не все внешние жесткие USB-диски допус- Pendrivelinux, поэтому отредактируйте файл конфигу- кой kernel. Измените путь и нажмите B для загрузки кают загрузку: читайте наш ответ, чтобы рации в /mnt/floppy/boot/Grub/menu.list для ссылки на с измененными значениями. Если это сработает, О понять, умеет ли это Ваш экземпляр. соответствующие файлы на жестком USB-диске. Для сделайте изменения постоянными в файле menu.lst. Загрузка с дискеты и передача загрузочного процес- PCLinuxOS первая запись меню будет выглядеть так: Другой подход – добавить это в menu.lst: са на внутренний жесткий диск не особо отличается title linux root (hd1,0) от выполнения этого с внешним диском. Обычно kernel (hd0,0)/boot/vmlinuz BOOT_ IMAGE=linux chainloader +1 простейший способ установки – загрузить дистрибу- root=/dev/sdb1 acpi=on resume=/ Это просто запустит загрузчик на Вашем вне- тив с CD/DVD и установить на USB-диск. Дойдя до ev/sdb5 splash=silent vga=788 шнем диске – полезно, если на диске несколько секции загрузчика, установите MBR (Master Boot initrd (hd0,0)/boot/initrd.img дистрибутивов. LXF

Шаг за шагом: Загрузка USB Linux с дискеты

1 Установите загрузчик 2 Создайте дискету с Grub 3 Загрузка с Grub Устанавливая дистрибутив на внешний диск, Вы можете сделать это вручную, но проще Загрузочная дискета Pendrivelinux работает сразу, убедитесь, что загрузчик также установлен загрузить образ с pendrivelinux.com, к тому же но с неправильными записями меню… на этом диске, а не на внутреннем. вы можете найти там немало интересного.

4 Отредактируйте меню 5 Где мое ядро? 6 Двухуровневое меню Скопировав правильные секции с меню вашего Если вы видите ошибку ‘file not found’, используйте Если ваш жесткий диск имеет более сложное меню нового дистрибутивах в файл menu.lst дискеты, команду find для показа корректного загрузки, может оказаться лучше использовать вы сможете успешно загрузиться. идентификатора раздела, содержащего ядро. команду chainloader для передачи контроля этому меню.

Март 2008 Linux Format 113 LXFHotPicks Лучшие новинки открытого ПО на планете

Грэм Моррисон Если вы работаете над проектом LXFHotPicks открытого ПО или пишете новую игру для Linux, дайте нам знать, В ЭТОТ РАЗ ТОЛЬКО ДЛЯ ВАС: gscan2pdf Bazaar Labplot Rosegarden чтобы мы могли рассказать Frets on Fire Fish Fillets NG Freecycle ‘Q’ DVD Author об этом читателям – даже если ваша работа ещё не закончена.

Сканирование/распознавание текста gscan2pdf

Версия 0.9.9 Сайт http://gscan2pdf.sourceforge.net

огда сканеры считались крутыми, Сканировать], чтобы скопировать изображе- всех нас посещала идея оцифро- ние с бумаги, и File > Save [Файл > Сохранить] Квать свои документы, превратить их для сохранения PDF-файла на жесткий диск. в файлы, закинуть на винчестер и радостно В том же окне можно вложить полученный забыть, избавившись от ужасов картотеки. документ в электронное сообщение. Крупные дорогие приложения вроде Fine По такой-то простоте мы и тосковали, Reader для Windows, благодаря включению сканируя кучи банковских счетов. С помо- оптического распознавания текста, домини- щью gscan2pdf «куча» сканируется без вся- ровали на рынке, а Linux всегда несколько кой суеты с настройками и извилистыми отставал. Добрая весть для тех, кто нуждает- мастерами. Если понадобилось оптическое ся в подобном средстве: gscan2pdf – как раз распознавание, достаточно выбрать пункт вания, только вот утилита командной стро- Сканирование то, что вы ищете. Как следует из названия, OCR из меню Tools [Сервис]. При этом глав- ки JOCR, используемая для распознавания, документа и перевод это графический инструмент для сканирова- ное окно делится на две панели, в нижней из показалась нам весьма убогой. его в PDF двумя ния документов и перевода их в PDF-файлы. которых размещается распознанный текст, а щелчками мыши – И он замечательно прост в использовании. в верхней – скан документа. Здесь удобно еще один шаг Достаточно выбрать File > Scan [Файл > исправлять возможные ошибки распозна- к «безбумажному» офису.

Система контроля версий Bazaar Версия 1.0 Сайт http://bazaar-vcs.org

нам в Hotpicks нечасто попадают LXF91 (помнится, Bazaar неплохо там смо- сто получает изменения от коллег и, в свою средства контроля версий, но версия трелась). Версия 1.0 немало изменилась по очередь, отправляет им свои изменения. Это К1.0 программы Bazaar стоит присталь- сравнению с прежними версиями, но главное новаторский подход, по сравнению с «голки- ного рассмотрения. Если вы не программист, её преимущество перед другими (Subversion, перским» поведением Subversion. Некоторые знайте, что системы контроля версий вроде например) заключается в сравнительной про- полезные дополнения, появившиеся в версии Bazaar весьма важны: они позволяют несколь- стоте использования. 1.0 – переработанное руководство пользова- ким разработчикам одновременно трудиться В отличие от Subversion, у Bazaar всего теля (документ Bazaar in Five Minutes [Bazaar над общим проектом. Отслеживаются малей- несколько команд для выполнения большин- за пять минут] – прекрасный обзор системы), шие изменения кода, возможен возврат к ства задач, да и те совсем несложно изучить. автоматическая авторизация для протоколов любому промежуточному состоянию проек- Ветвь в новой директории создаётся коман- SSH, SFTP и SMTP, контроль производитель- та, выпуск релизов, отслеживание ошибок, дой bzr init, файлы добавляются при помощи ности и сотни исправленных ошибок. ветвление и синхронизация древ разработки. bzr add имя, изменения отображаются коман- В итоге эту версию Bazaar можно рас- Сейчас для этого используется в основном дой bzr diff, а их фиксация происходит по сматривать как серьёзную альтернативу тра- Subversion, но Bazaar, спонсируемая Canonical, bzr commit. Вот и всё, что нужно запомнить. диционным системам контроля версий. Если стала официальной системой контроля версий Другое отличие от Subversion – Bazaar децен- вашему новому проекту нужна подобная инф- проекта Ubuntu. Если интересуетесь подобны- трализована (у неё нет центрального сервера, раструктура, то Bazaar заслуживает самого ми системами – загляните в «Сравнение» общего для всех разработчиков). Каждый про- пристального внимания.

114 Linux Format Март 2008 LXFHotPicks

Построение графиков Labplot Версия 1.6 Сайт http://labplot.sourceforge.net

то приложение зацепило наш взгляд Импортированные данные помещаются во благодаря красивым экранным сним- встроенную электронную таблицу, и именно Экам: множество технических графи- из этого массива цифр приложение «масте- ков, цветные кривые Безье и заумные функ- рит» всевозможные графики. Пользователю ции. Список опций самой программы тоже остаётся только щёлкнуть правой кнопкой впечатляет. Возьмите хоть поддержку «пре- мыши на таблице и выбрать один из вариан- образований Фурье, Лапласа и Ханкеля» или тов построения графика. «сжатие, периодический и сезонный анализ». На деле, после компиляции и установки при- Сверхфункциональность ложения (математические функции компи- Возможно построение двух- и трёхмерных лируются долго), всё оказывается не так уж графиков функций, 2D-поверхностей (полез- Визуализировать ровать любую таблицу с цифровыми данны- страшно. Даже простым смертным вроде нас но для карт высот), работа с осями коорди- можно всё, от ми. Закончив работу, можно оформить ито- Labplot может пригодиться: ведь графики нат, вывод с ускорением OpenGL и решение географических карт говый результат как EPS, PostScript, SVG или можно создать из самых разных источников уравнений. Построив график, можно даже до аудиофайлов, как PDF-документ, что покрывает почти любые данных. Это не обязательно должны быть нанести на него надписи и линии с помо- в 2D-, так и в 3D- потребности. Единственная замеченная про- результаты последних наблюдений состоя- щью встроенной чертёжной функции. Это, вариантах. блема – легкая нестабильность, к тому же это ния полярных ледяных шапок или измерений конечно, не Inkscape, но смотрится вполне скорее Qt-, чем истинное KDE-приложение. ларморовской прецессии ядерного g-фактора достойно. Программа позволяет визуализи- Но пусть эти мелочи не омрачат вам удо- изотопа бария-135137 в мощном атомном вольствия от прокладывания трассы между пучке – данные можно взять из простого ауди- «Создавайте красочные 2D- домом и офисом. офайла или фотоколлекции, даже из цифро- вого рельефного отображения карты. Labplot и 3D-кривые для ваших поддерживает множество форматов фай- лов (одних только графических свыше 80!). уравнений или расчетов.»

Аудиосеквенсор Rosegarden Версия 1.6 Сайт www.rosegardenmusic.com

отя Rosegarden еще никогда не попа- не изменяются, но все эти «примочки» на дал в наш «хит-парад», недавно мы практике обычно и не требуются. Rosegarden Хпроводили его полное обозрение (вер- продолжает набирать силу, и версия 1.6 тоже сия 1.5 в LXF92). Все-таки Rosegarden – луч- привнесла кое-какие новшества. ший современный аудиосеквенсор для Linux. Кто бы ни сталкивался с записью музыки, он В добрый путь, Jack наверняка слышал о Rosegarden. Эта програм- Здорово – двойным щелчком можно, открыв ма не только включена в состав большинства аудио-запись, отредактировать ее в Audacity – крупных дистрибутивов – она даже составля- и никакой возни с Jack. С этим бывают про- И вся эта мощь по сравнению с предыдущими версиями, при- ет сердцевину специализированного Studio To блемы даже у неприлично дорогого корпо- скрывается ложение стало заметно стабильнее. Если бы Go, рассмотренного в LXF95: разработчики ративного Cubase. Но это не единственное в одной программе спросили нас, то хотелось бы более внятного Rosegarden занимаются также и Studio To Go, дополнение. Имитация гитарного грифа заин- Rosegarden! способа изменения масштаба в окне аранжи- и эта интеграция очень полезна. Для внутрен- тересует гитаристов, а работать с маркерами и ровки, да и панели аудио-мониторинга узкова- него распределения аудио-потоков и управле- надписями теперь значительно проще. Более ты (с трудом можно понять, стереосигнал или ния входящими/исходящими аудиоданными надежная интеграция с Lilypond позволила моно), а в остальном программа превосходна. Rosegarden использует систему Jack, осво- усовершенствовать нотацию, а за три недели Если вам когда-нибудь захочется сочинять ить которую не так-то просто. Если, миновав постоянного использования мы заметили, что, музыку на Linux, это – ваше приложение. это узкое место, Rosegarden все же удастся запустить, то по функциональности програм- «Версия 1.6 привнесла ма мало чем уступит таким китам, как Cubase от Steinberg или Logic от Apple. Rosegarden много нового, особенно лишена внешнего лоска – нет аудиоредак- тирования, MIDI-ноты из окна аранжировки по части редактирования.»

Март 2008 Linux Format 115 LXFHotPicks

HotGames Игре время, работе час! Музыкальный имитатор Hottest Frets on Fire Pick Версия 12.512 Сайт http://fretsonfire.sourceforge.net

то никогда не играл в Guitar Hero на рой функциональные клавиши 1–5 сойдут Playstation 2 или Xbox 360, многое за гриф, а клавиша Enter будет медиатором. Кпотерял. Сначала думаешь: «Дай-ка Рекомендуется даже, для большего эффек- попробую», а потом затягивает. Игра вос- та, держать компьютерную клавиатуру как производит громкую гитарную музыку при гитару, левой рукой нажимая клавиши гри- нажатии комбинации из пяти кнопок, встро- фа, а правой – Enter. Если подумать – может енных в гриф пластиковой гитары. Нажми быть, и так тоже можно. И в этом вся игра. нужную кнопку и дерни виртуальный медиа- Здесь во всем ощущается чувство юмо- тор – гитара издаст звук. Со стороны, конеч- ра – от уровня громкости, который посто- но, «гитарист» выглядит как идиот, но его янно стремится к максимуму, до учебника, самого это не заботит. Попал в такт – зву- который, кажется, надиктован финскими чишь, как Дейв Гилмор. Не попал – как победителями Евровидения, Lordi. Это не Емеля с балалайкой. так уж невероятно, ведь Frets on Fire соз- Да, здорово. Но вот и причина столь дана группой финнов. Но самое главное – долгого вступления: вся увлекательность игра доставляет море удовольствия. игры воссоздана в чудесной Frets on Fire. В зависимости от темы, можно играть Frets on Fire: теперь Совсем как в Guitar Hero, гитарный гриф как соло, так и бас, но даже среднего уров- можно, не стыдясь, уходит в бесконечность экрана, а мелодии ня сложности достичь довольно нелегко. наяривать и ритмы гуляют по струнам сверху дони- Графика превосходна, включая художе- на компьютерной зу. Если они уперлись в самый нижний ственные меню, и все же главное в игре – клавиатуре лад – прежде чем нажать медиатор, про- музыка. В комплекте не так много дорожек, Лестницу в небо. верьте правильность раскладки аккорда. но даже их надолго хватит. А если все же За отсутствием пластиковой гитары, Frets надоест, скопируйте из Guitar Hero I или II – использует обычную клавиатуру, на кото- Frets работает с ними безотказно.

Головоломки Fish Fillets NG Версия 0.8.0 Сайт http://fillets.sourceforge.net

ы рассматривали Fish Fillets NG в одновременно. Здесь не обойтись без урав- LXF72, и новая версия даёт пре- новешивания стальных труб, перемещения Мкрасную возможность просле- блоков, передачи их от одной рыбки к дру- дить развитие понравившейся игры. Жаль, гой и поиска хитроумных обходов всевоз- что это не версия 2, коммерческий вари- можных препятствий. Это увлекательно, и ант, доступный только на Windows, но два тонкий сюжет в сочетании с продуманной года и для свободной версии не прошли организацией уровней заставляют возвра- даром: появилось много усовершенствова- щаться к игре снова и снова. Графическое ний, включая дополнительные уровни, воз- оформление уровней фантастично, все они можность отката и переводы на многочис- не похожи один на другой. В каждом из ленные иностранные языки [в том числе них игрок попадает в свой мир – то в ста- русский, – прим. ред.]. рый компьютерный эмулятор, то в сюжет Решение рыбьей уровней определённо не оставит равнодуш- Если вы ещё не играли в Fish Fillets NG, о поисках сокровищ, прямо как в классике проблемы. Так ным. Если вы не играли в эту игру последние скорее начинайте. Это головоломки, сюжет 80-х типа Bomb Jack. Иногда Fish Fillets NG играли в 80-х… два года, спешите вставить DVD в привод и которых вертится вокруг озорных проделок напоминает японский Sokoban. И поэтому только не попробовать снова. парочки рыб. Рыбки различаются размерами, так приятно, что игра продолжает разви- с 24-битной способностями и, соответственно, возмож- тие. Самое заметное новшество – возмож- графикой. ностями. Задача игрока – провести их сквозь ность «отката» на несколько ходов назад без уровень так, чтобы они выплыли наружу полной перезагрузки уровня. Дизайн новых

116 Linux Format Март 2008 LXFHotPicks

Аудиоредактор Также вышли

Новое и обновлённое ПО, также Freecycle заслуживающее внимания… Lemuria 2.0.0 Объёмная аудио- Версия 0.6.1.1 Сайт www.redsteamrecords.com/freecycle визуализация украсит музыкальный плейер XMMS. http://gmerlin.sourceforge.net/lemuria.html reecycle специализируется на обработ- Поддерживаются Port Audio, Jack и ALSA, есть Аудиоприложение ке ударных и ритмических звуков. В несколько превосходных алгоритмов поис- старой школы LinuxSpeaks 1.00a Система голосового отличие от обычного редактора (напри- ка, громкость – не единственный критерий. прекрасно сочетается взаимодействия с пользователем на Live F CD. www.joekamphaus.net мер, Audacity), Freecycle не может изменить Можно искать с помощью частотного и фазо- со старомодным или обработать аудиофайл: вместо этого, про- вого анализов, а можно сменить традицион- аппаратным GREYCstoration 2.6 Фантастическое грамма распознает места в аудиозаписи, где ное представление аудио в волновой форме сэмплером… средство восстановления изображений, начинаются ударные звуки, и отображает их на спектрограмму, чтобы пресечь импульсные прекрасная причина в которое мы уже давно влюблены. в главном окне. Можно менять динамиче- помехи. для приобретения www.greyc.unicaen.fr/~dtschump/ greycstoration/index.html ские характеристики отмеченных «ударов» оного! или добавлять к ним какие-либо эффекты. Terrain Generation 0.3 Создание Каждый звук сохраняется в отдельном ауди- искусственных ландшафтов, которые офайле. Все эти маленькие файлы можно потом можно анализировать в Labplot. http://bee-eee.com/software/terrain загрузить (вместе с основным MIDI-файлом и данными для синхронизации) в приложение Syllable 0.6.5 Не так чтобы Linux (чай, вроде Rosegarden и воспроизводить партию конкурент), но игнорировать невозможно! барабана в любом необходимом темпе, не web.syllable.org обращаясь к средствам корректировки ритма. Еще один популярный вариант – загру- зить все в звуковой сэмплер (или файл SoundFont2) и воспроизводить каждый удар с клавиатуры. Это открывает широчайший диа- пазон возможностей: Freecycle великолепно воссоздает тот процесс, который уже несколь- ко лет использует Recycle на Mac и Windows.

Графическая оболочка для видеоинструментов Встроенный браузер Syllable на базе Webkit от Apple.

KAtoms 0.4 Любое напоминание об играх для Amiga проливает бальзам ‘Q’ DVD-Author на душу. http://katoms.sourceforge.net Версия 1.0 rc3 Сайт http://qdvdauthor.sourceforge.net GNU ddrescue 1.7 Этот инструмент восстановления дисков не раз спасал нашу работу. www.gnu.org/software/ddrescue/ Linux есть программы для создания тры или анимацию. Редактор субтитров позво- Эта программа ddrescue.html собственных фильмов с DVD-меню, но ляет управлять курсором на экране и вводить зависит все они слишком сложны в использо- необходимый текст в нужное место картинки. от нескольких Nvclock 0.8 (beta3) Полезная утилита В для предупреждения перегрева и поломки вании. ‘Q’ DVD Author – графическая оболочка По окончании остается нажать кнопку Create маленьких оборудования Nvidia. для удобства работы с такими программа- DVD [Создать DVD] для запуска процесса программулек; www.linuxhardware.org/nvclock ми. Через графический интерфейс можно сборки ISO. Вот и все – можно записывать позаботьтесь об добавлять анимированные меню и подменю, полученный образ на чистый диск. Правильно установке мелочей KGuitar 0.5.1 Если Frets on Fire возбудила обрабатывать и конвертировать видеофайлы, настроив ‘Q’ DVD Author, вы изрядно оживите вроде / аппетит, то почему бы не попробовать реальную вещь? вставлять субтитры и устраивать слайд-шоу обыкновенный DVD. mencoder. http://kguitar.sourceforge.net из фотографий. Полученный ISO нетрудно записать с помощью , GnomeBaker и пр. Начнем с импорта видеофайлов в форма- тах DVD VOB, MPEG, AVI или MOV (в зависи- мости от установленного кодека); здесь есть даже средство предпросмотра. Загрузив фай- лы, можете перетаскивать их в основное окно, чтобы увидеть, как ваш DVD будет показан на экране телевизора; по умолчанию в каждый видеофайл добавляется редактируемая кноп- ка для начала воспроизведения. Меню с настраиваемым фоновым рисун- Генератор KGuitar подберет любой ком смотрится весьма профессионально. аккорд. В него можно добавлять и собственные субти-

Март 2008 Linux Format 117 LXFDVD103 Целый двусторонний DVD-парад дистрибутивов!

Эмулятор ПК VirtualBox истрибутивы, дистрибутивы и еще Innotek (www.virtualbox.org). Подобно VMware, раз дистрибутивы! Для данного VirtualBox позволяет запускать различные ОС Двыпуска мы уместили на нашем DVD в окне на рабочем столе – он полностью 10 самых популярных версий Linux, и боль- эмулирует ПК. Но, в отличие от VMware, его В этом месяце у нас истинное буйство шинство из них затрагивается в нашем обзоре. исходный код почти полностью доступен под дистрибутивов: аж 10 полных версий Linux, чтобы вы могли с ними познако- Все это – 32-битные версии, но и на 64-битных GPL. (Внимание: двоичные пакеты на нашем миться! Благодаря VirtualBox, вы можете ПК x86 они тоже должны работать нормально. диске – собственность Innotek, и для их рас- установить их на эмулятор ПК – вам не Однако, в обычной для LXF манере, мы не пространения нужно получить соответствую- надо будет форматировать и перераз- просто свалили файлы в кучу. Нет-с, господа щее разрешение). бивать на разделы ваш жесткий диск. хорошие. Мы в поте лица потрудились, дабы Итак, благодаря VirtualBox вы можете Кроме того, у нас еще множество инте- создать DVD с пятерной загрузкой – то есть опробовать все 10 версий Linux без их уста- ресных программ, которые стоит посмо- треть, так что наслаждайтесь DVD, и пять дистрибутивов вы можете запускать пря- новки на жесткий диск. Естественно, надо если у вас есть рекомендации по про- мо с диска! Остальные представлены в виде помнить, что производительность у VirtualBox граммам, пожалуйста, сообщите! ISO-образов, которые вы можете записать на отличная, но ей все же далеко до скорости CD-R и загрузиться с него. настоящего ПК, а вирутальная видеокарта не Майк Сондерс Но не спешите, есть способ проще. Если тянет на головокружительные 3D-эффекты Новостной редактор вы в полном блаженстве от Linux и не наме- типа Compiz. Чтобы без проблем запустить [email protected] рены менять свою ОС, вы все-таки сможе- VirtualBox, рекомендуем как минимум 1-ГГц те взглянуть на эти дистрибутивы, благода- процессор с 512 MБ ОЗУ; для установки дист- ря первоклассной технологии – VirtualBox от рибутивов на эмулятор понадобится 10 ГБ сво-

w Шаг за шагом: Работа с VirtualBox

1 Запуск 2 Новое Введите в термина- Перед вами откроется ле ‘VirtualBox’ от вот это окно – главная имени root, чтобы панель управления запустить програм- VirtualBox. Здесь вы му. После этого можете настраивать можете прочитать эмуляцию ПК для сво- лицензионное их дистрибутивов, соглашение так что нажмите и зарегистрировать New слева сверху. свой email-адрес.

5 Память 6 Жесткий диск Отведите под Если хотите установить эмулированный ПК несколько новых дист- столько памяти, рибутивов на виртуаль- сколько сможете, ный ПК, создайте но не менее 256 MБ. здесь новый образ динамического жесткого диска размером 10 ГБ.

118 Linux Format Март 2008 VirtualBox DVD

бодного места на диске. Дистрибутивы, запус- не объясняется, как это сделать, поскольку каемые в режиме Live, вы можете загрузить выходит за рамки данного руководства; см. на свой ПК без установки – ищите подробную документацию к вашему дистрибутиву.) Все информацию в разделах, посвященным этим готово! Следуйте руководству Шаг за шагом, дистрибутивам. приведенному ниже, чтобы настроить новый Ну, а теперь настроим VirtualBox. В разделе виртуальный ПК и начать загрузку дистрибу- Система/VirtualBox нашего DVD (сторона 2), тивов с нашего DVD. вы найдете множество двоичных пакетов для Ubuntu, OpenSUSE, Fedora, Debian, PCLinuxOS Решение проблем и прочих дистрибутивов. Вы можете устано- Если у вас возникли проблемы с работой вить их через менеджер пакетов – но если у VirtualBox, см. полную документацию, пред- вас возникли сложности, или вы используете ставленную на стороне 2 в директории дистрибутив, не поддерживаемый официаль- Система/VirtualBox: она находится в файле но, можете использовать универсальный инс- под названием UserManual.pdf и позволяет таллятор. Имя файла – VirtualBox_1.5.6_Linux_ решить наиболее общие проблемы и трудно- x86.run (имеется также 64-битная версия); ско- сти, если вашей хост-платформой является пируйте этот файл в домашнюю директорию, Linux, как это было у нас. Полезный спи- откройте окно терминала и переключитесь сок решенных проблем есть также на www. VirtualBox для эмуляции ПК основное окно VirtualBox – на пользователя root (sudo bash, затем – ваш VirtualBox.org/wiki/User_FAQ. VirtualBox становится «экраном» ПК. Поэтому отличная пользовательский пароль в Ubuntu, или su и Вот несколько подсказок по быстрому уст- иногда надо контролировать мышь и клавиа- возможность затем ваш пароль root – в других дистрибути- ранению неполадок: туру. Чтобы освободить мышь из виртуально- познакомиться вах). Затем введите го ПК, нажмите на правую нижнюю клавишу с нашим ./VirtualBox_1.5.6_Linux_x86.run USB в Ubuntu 7.10 (Gutsy) Если вы запуска- Ctrl на клавиатуре (VirtualBox говорит об этом пятикратно- Следуйте за подсказками, и программа ете VirtualBox в Ubuntu 7.10 и не можете полу- в строке состояния). загрузочным установки скопирует VirtualBox в вашу систе- чить доступ к устройствам USB – например, к Ошибка несовпадения версий Если вы види- диском! му в /opt/VirtualBox-1.5.6. Независимо от того, брелку – на эмулированном ПК, отредактируй- те сообщение вроде ‘1912, DRIVER VERSION установили вы его через универсальный инс- те (от имени root) /etc/init.d/mountdevsubfs.sh MISMATCH’ [несовпадение версии драйвера] таллятор или через пакеты определенного дис- в хост-системе, и примерно на 40-й строке, где при установке VirtualBox через универсаль- трибутива, вы можете запустить его, открыв написано ‘Magic to make /proc/bus/usb’ section ный .run-инсталлятор, значит, вы пытаетесь терминал, переключившись на пользователя starts', снимите комментарий (уберите значки установить 32-битную версию на 64-битную root, как описано выше, и введя VirtualBox. #) в начале четырех строк кода. Затем введите машину. Используйте вместо нее 64-битную (Чтобы запустить его из обычного пользова- /etc/init.d/mountdevsubfs.sh start, чтобы USB версию. тельского сеанса, добавьте учетную запись заработал нормально. У меня другая проблема! Загляните на пользователя в группу ‘vboxusers’ – здесь Застряла мышь! При использовании http://forums.virtualbox.org.

3 Мастер 4 Имя Появится этот мастер, Задайте имя для который проведет своего виртуального вас через процесс ПК, и выберите настройки VirtualBox. в качестве типа ОС Нажмите Next, ‘Linux 2.6’. чтобы начать.

7 Подтверж- 8 CD-Драйвер дение В главном окне VirtualBox проверит нажмите на CD/DVD- все ваши настройки ROM и выберите на предмет их Mount, а затем Host, правильности; для загрузки с DVD, можете нажать Back, или файл ISO Image чтобы изменить их. File, для загрузки с образа CD (файл . iso). Потом, чтобы начать, нажмите Start!

Март 2008 Linux Format 119 DVD Суперкомплект дистрибутивов

Версия: 7.10 Загружается со Стороны 1 Ubuntu www.ubuntu.com сли только вы не провели последние Debian), и у него гигантское сообщество поль- несколько лет где-нибудь в пещере зователей и разработчиков. Уже разработано Ев Гималаях, то наверняка слышали о множество вариантов и ответвлений Ubuntu феномене Ubuntu. По мерке продолжитель- – например, Edubuntu, фокусирующегося на ности жизни дистрибутивов, он еще дитя, и обучающих программах, и Fluxbuntu, который не может сравниться в этом плане с Debian использует нетребовательный WM. или SUSE, но на сегодняшний день это самый Ubuntu 7.10 загружается прямо со Стороны популярный дистрибутив в мире. И совершенно 1 нашего DVD. Замечательно, что он работа- заслужено: он прост в использовании, подкреп- ет в режиме Live, и вы можете познакомить- лен тысячами пакетов (благодаря фундаменту ся с дистрибутивом, не устанавливая его на жесткий диск. Просто загрузите компьютер с нашего DVD (убедитесь, что BIOS настроен на старт с DVD, а не с жесткого диска), и все. После появления рабочего стола можете испы- тать, как работают программы, и если вам они понравятся, установите их на жесткий диск, дважды щелкнув по значку Install на рабочем столе. Инсталлятором Ubuntu удивительно лег- ко пользоваться, и он позволяет вам сохранить любые существующие настройки Windows – но если вы хотите устроить ему тест-драйв, може- те загрузить Сторону 1 нашего DVD в VirtualBox Программа загрузки Ubuntu – образец (выберите Host CD/DVD Drive в окне опций дис- простоты: дистрибутив устанавливается на ка) и попрактиковаться, со всеми удобствами Сторона 1 нашего DVD имеет тройную загрузку: знакомьтесь жесткий диск за 20 минут. эмулированного ПК. с Live-версиями Ubuntu, OpenSUSE и Mandriva прямо с диска!

Версия: 10.3 OpenSUSE Загружается со Стороны 1 www.opensuse.org penSUSE, финансируемый Novell – еще больше народа на участие в процессе очень уважаемый дистрибутив; он разработки OpenSUSE, в том же духе, что и Oшироко используется как на рабочих Red Hat в проекте Fedora. За последнее вре- столах, так и на серверах. На его основе пос- мя мы навидались дистрибутивов на базе троены дистрибутивы Novell для предприятий, OpenSUSE, включая Slick, разработанный с например, SUSE Linux Enterprise Server, и его целью добиться наибольшей производитель- отличная репутация обязана солидному инжи- ности. OpenSUSE 10.3 Live запускается прямо нирингу и мощному инструменту настройки со Стороны 1 нашего DVD – просто загрузите Yast. Недавно Novell попыталась вдохновить компьютер с нашего диска, выберите стрел- ками курсора OpenSUSE в меню загрузки и нажмите Enter. За время от 30 секунд до пары минут (в зависимости от скорости вашей машины) вы окажетесь в OpenSUSE и увидите рабо- чий стол KDE. Ознакомьтесь со включенны- ми в него программами, а если вы сочтете его превосходным, можете установить его в качестве постоянной ОС на свой жесткий диск (при необходимости создав двойную загруз- ку с Windows). Нажмите на значок Install на рабочем столе и следуйте подсказкам – если Просто нажмите на значок на рабочем во время установки возникнут проблемы, или столе и следуйте подсказкам; настройки по на каком-то шаге вы вдруг растеряетесь, вам умолчанию можно изменять, нажав на синие помогут 24 000 пользователей OpenSUSE на OpenSUSE 10.3 Live по умолчанию загружает симпатичный рабочий ссылки. www.suseforums.net. стол KDE.

120 Linux Format Март 2008 Суперкомплект дистрибутивов DVD

Версия: One 2008 Загружается со Стороны 1 Mandriva www.mandriva.com ного лет Mandriva считался коро- Veitch], экс-редактор LXF. Если вы – новичок лем дружелюбных к пользователю в Linux, а Ubuntu и его производные вам не Мдистрибутивов, благодаря одной по душе, пробы дистрибутивов стоит начать из первых графических программ установки с него. Он работает в режиме Live (прямо с и набору простых и инструментов настройки. диска), так что установите LXFDVD в диско- Какое-то время Mandriva испытывал финан- вод (Сторона 1) и выберите в меню загрузки совые проблемы, но затем снова воспрял. Mandriva. Дистрибутив оказался отчасти вытесненным В процессе загрузки Mandriva задаст вам с первого плана из-за ошеломляющего роста множество простых вопросов по настрой- Ubuntu, но у него по-прежнему много верных ке, и перед вами окажется рабочий стол. сторонников – в том числе и Ник Вейч [Nick Нажмите кнопку Меню в левом нижнем углу экрана, чтобы познакомиться с имеющимися программами – и веселитесь! Если захотите установить Mandriva в качестве постоянной ОС, дважды щелкните по значку Live Install на рабочем столе. Появившийся мастер про- ведет вас через весь процесс установки, поз- волив выделить раздел под Linux и ужать раз- дел Windows, ежели таковой имеется, чтобы добыть побольше места. (Если вы хотите, что- бы у вас были установлены и Linux, и Windows на одном жестком диске, не забудьте сначала Если вы – новичок в Linux и хотите создать резервные копии данных Windows). Вместе с дистрибутивом Live поставляется и программа установки, ознакомиться с этой ОС, Mandriva – Всю необходимую помощь вы получите на которая легко проведет вас через процесс установки Mandriva отличная стартовая площадка. www.mandrivausers.org. на жесткий диск.

Версия: 4.0r3 ISO-образ CD, Debian Сторона 1 www.debian.org

ebian GNU/Linux – один из старейшин ков. По тем же причинам Debian служит базой среди существующих дистрибутивов: для многих других дистрибутивов – Ubuntu Dон появился в 1993 году. Это – не основан на пакетах, что хранятся в обширных самая передовая версия Linux, и предпочте- репозиториях Debian. С другой стороны, у ние в нем отдается стабильности, а не новиз- Debian сложившаяся репутация весьма слож- не пакетов. Многие опытные пользователи ной разновидности Linux – если вы пока еще Linux на предприятиях предпочитают Debian, новичок в этой ОС, некоторые его аспекты поскольку его обновления всегда тщательно покажутся вам трудноватыми. Зато он отлично проверены и дистрибутив не лихорадит от документирован и уж так надежен, что лучше внезапных изменений по прихоти разработчи- и пожелать нельзя. На нашем DVD имеется два ISO-обра- за CD: оба устанавливают Debian 4.0r3, но один – с рабочим столом KDE, а другой – с Xfce. Запишите тот, который вам больше нра- вится, на CD-R и загрузитесь с него, или поз- накомьтесь с системой через VirtualBox. Debian нацелен на пользователей с опытом, и во вре- мя установки вас могут озадачить различные вопросы по поводу разделов диска, так что разумно было бы для начала испробовать его в VirtualBox и познакомиться с процессом поб- Программа установки Debian лиже. Но, установив и запустив его, вы полу- подразумевает наличие опыта в Linux, чите фантастически стабильный вариант Linux Наши ISO-образы CD позволяют выбрать один из двух рабочих но не так уж она страшна… для рабочих станций и серверов. столов – KDE или быстрый и неприхотливый Xfce (он перед вами).

Март 2008 Linux Format 121 DVD Суперкомплект дистрибутивовв

Версия: 7.0 Mepis ISO-образ CD, Сторона 1 www.mepis.org снованный на Debian, Mepis (полное на CD-R для последующей загрузки с него, или название SimplyMepis) – это Live- воспользоваться VirtualBox. Обратите внима- Одистрибутив, главная цель которо- ние, Mepis требуется не менее 300 MБ ОЗУ, и го – простота использования. Хотя его попу- если вы будете запускать его в VirtualBox, уве- лярность не достигла головокружительных личьте настройку ОЗУ до 300 MБ. высот Ubuntu и SUSE, приверженцев у него При загрузке вы увидите несколько опции: хватает, и обновления выходят регуляр- сперва выберите Default, но если появят- но. На Стороне 1 нашего DVD, в разделе ся проблемы, перейдите на Failsafe. Потом Дистрибутивы/Mepis, вы найдете ISO-образ перед вами откроется окно приглашения, где последнего релиза 7.0 – можете записать его надо будет ввести имя пользователя ‘demo’ и пароль ‘demo’. Обратите внимание, пароль администратора (root) – ‘root’, поэтому, если вы решили установить Mepis на жесткий диск, нажмите на значок Install на рабочем столе и в ответ на предложение ввести пароль введи- те ‘root’. Программа установки содержит море онлайн-подсказок, так что проблем в ее про- цессе у вас возникнуть не должно. В прошлых номерах мы уделяли доста- точно внимания Mepis; если вы уже какое-то время почитываете LXF, раскопайте старые номера: спецрепортаж LXF79 был полно- Рабочий стол Mepis 7.0 – KDE. Чтобы стью посвящен этому дистрибутиву. Мы даже установить Mepis на жесткий диск, нажмите словили для беседы главного разработчика, ...и появится это окно. Следите за подсказками на левой панели, на значок MEPIS Install на рабочем столе... Уоррена Вудфорда [Warren Woodford]. и все будет отлично.

Версия: 2007 PCLinuxOS Загружается со Стороны 2 www.pclinuxos.com екогда ответвившийся от Mandriva, ‘Host CD/DVD Drive’ с диском LXFDVD в PCLinuxOS ныне догоняет по попу- дисководе). Есть несколько опций загрузки: Нлярности Ubuntu – и вполне заслу- начните со стандартной ‘PCLinuxOS’, а в слу- женно. Его отличают скорость, привлекатель- чае проблем выберите одну из безопасных ность и исключительная простота установки. опций. Если вам нужна потрясающе быстрая Лучше всего он работает в режиме Live, так ОС и у вас в наличии не менее 1 ГБ ОЗУ, выбе- что можете просто загрузить компьютер со рите 'Copy2ram', и весь дистрибутив будет Стороны 2 нашего DVD и выбрать из меню работать из памяти. загрузки PCLinuxOS. (Или, в панели настройки По ходу загрузки PCLinuxOS задаст вам CD/DVD-ROM в VirtualBox используйте опцию несколько вопросов о настройке, а потом перед вами появится экран приглашения. Войдите в систему под именем пользователя ‘guest’ и паролем ‘guest’ – обратите внима- ние, что пароль администратора (root) – ‘root’. Если вам понравится PCLinuxOS и вы захотите пользоваться им постоянно, можете скопиро- вать его на жесткий диск, щелкнув на значок Install на рабочем столе. Как полагается, сна- чала создайте резервные копии важных дан- ных, а потом следуйте подсказкам. PCLinuxOS отличается одной из самых быстрых проце- дур установки, которую мы когда-либо виде- Стандартные опции установки – это хорошо, ли в дистрибутиве, и все будет готово почти но на случай трудностей у PCLinuxOS мгновенно! Но если появятся проблемы, или имеются и безопасные режимы. вы захотите задать вопрос – зайдите на www. PCLinuxOS включает супер-скоростную программу установки pclinuxos.com/forum. на жесткий диск. 122 Linux Format Март 2008 Суперкомплект дистрибутивов DVD

Версия: 5.1.1 Загружается Knoppix со Стороны 2 $ www.knopper.net noppix – один из долгожителей среди на Стороне 2 нашего DVD загружается прямо с Live-дистрибутивов, и при первом же диска – запустите компьютер с диском в дис- Kпоявлении он мигом оброс поклон- ководе, и перед вами должно появиться загру- никами, благодаря превосходному определе- зочное меню. (Если этого не произошло, вам, нию оборудования и множеству программ. Его возможно, надо поменять настройки BIOS). Для разработчик, Клаус Кноппер [Klaus Knopper], ознакомления с Knoppix через VirtualBox, уста- проделал огромную работу, втискивая бездну новите в дисковод диск LXFDVD и нажмите программ на один-единственный диск. Версия CD/DVD-ROM в панели управления эмулирован- ной машины. Убедитесь, что пункт Mount отме- чен галочкой, и выберите ‘Host CD/DVD Drive’. Затем нажмите Start, чтобы запустить ваш ПК. Если Knoppix вас сильно порадует и вы захотите установить его на жесткий диск, можете воспользоваться имеющейся про- граммой установки – но это весьма рискован- но. Программа установки до сих пор помечена как экспериментальная, и находится в стадии активной разработки, так что новичкам в Linux мы настоятельно рекомендуем держаться от нее подальше. Но в любом случае будет муд- Выберите ‘Knoppix’ для нормальной сессии ро сперва сделать резервные копии важных в режиме Live, ‘Knoppix-SafeVideo’ – данных! Затем нажмите K Menu > KNOPPIX если у вас имеются проблемы с графикой, > Root и зайдите в ‘knoppix-installer’. При всех надеждах на скорое светлое будущее, программа и ‘Knoppix-Expert’, чтобы избежать Появится диалоговое окно, а далее следуйте установки Knoppix пока что в стадии активной разработки – автоматического определения оборудования. подсказкам. будьте с ней осторожны!

Версия: 8 ISO-образ CD, Fedora Live Сторона 2 www.fedoraproject.org бладая поддержкой Red Hat и отлич- бутив. К сожалению, Fedora 8 Live не срабо- ным сообществом разработчиков и талась бы с другими загружаемыми дистри- Отестеров, Fedora – один из самых бутивами на нашем DVD, и мы не смогли бы передовых дистрибутивов, знаменитый быст- сделать его мультизагрузочным. Но это не рым обновлением ПО. Fedora был пионером проблема – взамен мы предлагаем ISO-образ освоения таких технологических новинок, как CD, и вы можете записать его на CD-R для AIGLX и SELinux, и если вы хотите первыми последующей загрузки. Есть и альтернатив- снимать сливки с самых интересных новых ный способ – воспользоваться VirtualBox: ско- функций в Линуксландии, это ваш дистри- пируйте ISO-файл в домашнюю директорию, запустите VirtualBox и нажмите на CD/DVD- ROM в панели настроек. После этого можете указать эмулятору на только что скопирован- ный ISO и нажать Start для загрузки. В Live-режиме можно исследовать рабочий стол и имеющиеся программы, не затрагивая жесткого диска. Но можно и установить Fedora на винчестер в качестве постоянного дистри- бутива, через значок Install на рабочем сто- ле. Этот процесс должен пройти совершенно безболезненно – просто следуйте подсказкам и не забудьте пароли пользователя и админи- стратора, которые вы зададите. Если во вре- Nodoka – новая тема для Fedora 8, мя установки у вас возникнут проблемы, или но дистрибутив продолжает придерживаться вопросы о Fedora, есть отличный сайт, кото- Полюбили Fedora и хотите установить насовсем? Просто нажмите привычных мягких синих тонов. рый стоит посетить – www.fedoraforum.org. на значок на рабочем столе, чтобы скопировать его на жесткий диск.

Март 2008 Linux Format 123 DVD Суперкомплект дистрибутивов

Версия: 5.0 Zenwalk ISO-образ CD, Сторона 2 www.zenwalk.org овременный, быстрый, рациональ- Дистрибутивы/Zenwalk вас ждет самый све- ный, цельный и эволюционный – по жий релиз в виде ISO-образа: zenwalk-5.0.iso. Скрайней мере, по словам разработчи- Можете записать его на CD-R и загрузиться ков. Основанный на Slackware, Zenwalk пред- с него, либо использовать VirtualBox, чтобы почитает простоту нагромождению пакетов, и испытать его на эмулированном ПК. работает он с впечатляющей скоростью – бла- Zenwalk не работает в режиме Live, и чтобы годаря рабочему столу Xfce по умолчанию. его запустить, надо установить его на жест- Мы – большие любители дистрибутивов, дей- кий диск; для начала он предложит поделить ствительно озабоченных производительно- винчестер на разделы (а может занять весь стью: уж больно много сейчас развелось пус- жесткий диск целиком, если использовать тышек. На Стороне 2 нашего DVD в разделе авторазбиение – это самый простой способ в VirtualBox). Как и для большинства дист- рибутивов, мы рекомендуем отвести 10 ГБ под Linux и создать раздел подкачки [swap partition] размером 512 MБ. После установки вам предложат задать пароль для пользовате- ля root (администратора), и создать обычную пользовательскую учетную запись. Не забы- вайте свои пароли! Если даже вы никогда раньше не пользо- вались Xfce, навигация в нем не покажется вам чересчур сложной. Нижняя панель содер- жит множество значков для запуска программ Текстовая программа установки Zenwalk не и меню (в которых содержится еще больше запугает тех, кто уже устанавливал Slackware этих значков), а верхняя панель выступает в Долой ломовиков Gnome и KDE: Zenwalk использует быстрый Xfce, в своей прошлой жизни в Linux. роли панели задач. чтоб урвать еще ломоть от пирога производительности. Damn Small Linux amn Small Linux (DSL, Чертовски чает приложения для просмотра web-страниц Маленький Linux) – превосходный и офисной работы, а также игры, и прекрас- DLive-дистрибутив для реанимации но подходит для реализации базовых задач старых ПК: чтобы создать рабочую маши- или чтобы сделать детям игровую машину. На ну, ему достаточно процессора 486 с 16 MБ нашем DVD имеется три ISO-образа CD, что- Версия: 4.2.5 ISO-образ CD, Сторона 2 ОЗУ. Это минимальные требования, и намного бы вы записали их на CD-R для последующей www.damnsmalllinux.org более высокая производительность получится загрузки – сначала попробуйте dsl-4.2.5.iso, с 32 MБ ОЗУ, но вот вам отличная иллюстрация, который обеспечивает загрузку в нормальном как полезен бывает Linux, когда надо вдохнуть режиме, а если возникнут проблемы, дайте новую жизнь в древние машины. Хотя Damn шанс вариантам ‘syslinux’ и ‘initrd’. Small Linux и вправду чертовски мал, он вклю- Обратите внимание, что объем DSL настолько мал, что он помещается на малень- кий диск размером с визитку и объемом 50 MБ, так что этот дистрибутив очень удоб- но постоянно иметь при себе, и если вдруг во время своих путешествий вы наткнетесь на машину с запоротым Windows, можете загру- зить DSL и решить проблему. Или, забредя к друзьям или коллеге, использующим исклю- чительно Windows, вы все равно сможете получить свою дозу Linux, установив диск с DSL и перезагрузив их машину. Если хотите испытать DSL в VirtualBox, ско- — поразительно быстрый (хотя пируйте образ диска dsl-4.2.5.iso в домашнюю и ограниченный) web-браузер, но для более директорию. Затем запустите VirtualBox и ука- Нажмите DSL menu > System > Control Panel, чтобы настроить сложных сайтов имеется Firefox. жите ей только что скопированный ISO-файл. сетевое соединение, принтер и прочие аспекты вашего ПК.

124 Linux Format Март 2008 DVD

Информация о диске ЧТО-ТО ПОТЕРЯЛИ? Часто случается, что новые программы зависят от дру- гих программных продуктов, которые могут не вхо- дить в текущую версию вашего дистрибутива Linux. Мы стараемся предоставить вам как можно больше важных вспомогательных файлов. В боль- шинстве случаев, последние версии библиотек и другие пакеты мы включаем в каталог «Essentials» (Главное) на прилагаемом диске. Поэтому, если в вашей системе возникли проблемы с зависимостя- ми, следует заглянуть именно туда. ФОРМАТЫ ПАКЕТОВ Мы стараемся включать как можно больше раз- личных типов установочных пакетов: RPM, Deb или любые другие. Просим вас принять во внимание, что мы ограничены свободным пространством и доступными бинарными выпусками программ. По возможности, мы будем включать исходные тексты для любого пакета, чтобы вы смогли собрать его самостоятельно. ДОКУМЕНТАЦИЯ На диске вы сможете найти всю необходимую информацию о том, как устанавливать и использо-

ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ DVD-ДИСК ! ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ ВНИМАТЕЛЬНО вать некоторые программы. Пожалуйста, не забы- вайте, что большинство программ поставляются вместе со своей документацией, поэтому дополни- тельные материалы и файлы находятся в соответ- ствующих директориях. ЧТО ЭТО ЗА ФАЙЛЫ? Если вы новичок в Linux, вас может смутить изобилие различных файлов и расширений. Так как мы стараемся собрать как можно больше вариантов пакетов для обеспечения совместимости, в одном каталоге часто находятся два или три файла для различных версий Linux, различных архитектур, исходные тексты и откомпилированные пакеты. Чтобы определить, какой именно файл вам нужен, необходимо обратить внимание на его имя или расширение: имя_программы-1.0.1.i386.rpm – вероятно, это бинарный пакет RPM, предназначенный для работы на системах x86; имя_программы-1.0.1.i386.deb – такой же пакет, но уже для Debian; имя_программы-1.0.1.tar.gz – обычно это исходный код; имя_программы-1.0.1.tgz – тот же файл, что и выше по списку: «tgz» - это сокращение от «tar.gz»; имя_программы-1.0.1.tar.bz2 – тот же файл, но сжатый bzip2 вместо обычного gzip; имя_программы-1.0.1.src.rpm – также исходный код, но поставляемый как RPM-пакет для упрощения процесса установки; имя_программы-1.0.1.i386.FC4.RPM – бинарный пакет RPM для x86, предназначенный специально для операционной системы Fedora Core 4; имя_программы-1.0.1.ppc.Suse9.rpm – бинарный пакет RPM, предназначенный специально для операционной системы SUSE 9.x PPC; имя_программы-devel-1.0.1.i386.rpm – версия для разработчиков.

Если диск не читается... Это маловероятно, но если все же прилагаемый к журналу диск поврежден, пожалуйста, свяжитесь с нашей службой поддержки по электронной почте: [email protected]

Декабрь 2006 Linux Format 125 DVD

СОЗДАНИЕ УСТАНОВОЧНЫХ ДИСКОВ ПРИ ПОМОЩИ CDRECORD

Самый быстрый способ записать ISO-образ на чистую матрицу – это cdrecord. Для всех перечисленных ниже действий потребуются права root. Для начала опре- делите путь к вашему устройству для записи дисков. Наберите следующую команду: cdrecord -scanbus После этого на экране терминала должен отобра- зиться список устройств, подключенных к вашей систе- ме. SCSI-адрес каждого устройства представляет собой три числа в левой колонке, например, 0,3,0. Теперь вы можете с легкостью записать образ на диск: cdrecord dev=0,3,0 -v /путь к образу/image.iso Чтобы упростить дальнейшее использование cdrecord, сохраните некоторые настройки в файле /etc/ default/cdrecord. Добавьте по одной строке для каждо- го устройства записи (вероятно, в вашей системе при- сутствует всего одно такое устройство): Plextor= 0,3,0 12 16M Первое слово в этой строке – это метка, затем, пос- ле адреса SCSI-устройства вы должны указать скорость и размер буфера. Теперь вы можете заменить SCSI- адрес в командной строке на выбранную вами метку. Все будет еще проще, если вы добавите следующее: CDR_DEVICE=Plextor Все, что вам теперь нужно для записи ISO-образа – это набрать команду cdrecord -v /path/to/image.iso Если вы не из числа любителей командной строки, в таком случае вам придет на помощь утилита gcombust. Запустите ее из-под root, выберите вкладку Burn и ISO 9660 Image в верхней части окна. Введите путь к обра- зу, который вы хотите записать на диск, и смело нажи- майте на Combust!. Пока ваш образ пишется на диск, можете выпить чашечку кофе.

Другая ОС? Вам не обязательно использовать Linux для записи ком- пакт-диска. Все необходимые файлы уже включены в ISO-образ. Программы вроде cdrecord просто переносят данные на чистую матрицу. Если у вас нет устройства для записи дисков, можно найти того, у кого оно есть, и записать диск на его компьютере. На нем может стоять Windows, Mac OS X, AmigaOS, или любая другая ОС.

Нет устройства для записи дисков? А что, если у вас нет устройства, с помощью которо- го можно было записать образ на диск? Вы знаете кого-либо с таким устройством? Вам не обязательно использовать Linux для записи дисков, подойдет любая операционная система, способная распознать пишущий привод (см. выше). Некоторые дистрибутивы умеют монтировать образы дисков и выполнять сетевую установку или даже уста- новку с раздела жесткого диска. Конкретные методы, конечно, зависят от дистрибутива. За дополнительной информацией обращайтесь на web-сайт его разработ- чика. LXF

126 Linux Format Декабрь 2006 Содержание DVD

Содержание DVD

CTOPOHA 1

ДИСТРИБУТИВЫ Debian ...... Зрелый и стабильный Openbox ...... Менеджер окон. дистрибутив. Ratpoison ...... Менеджер окон, Mandriva ...... Дружелюбный к пользователю управляемый клавиатурой. Linux. ROX-Filer ...... Файловый менеджер. Mepis ...... Настольный дистрибутив wmii ...... Динамический менеджер окон. на базеDebian. OpenSUSE ...... Спонсируемый Novell дистрибутив РАЗРАБОТКА для настольных ПК и серверов. Arduino IDE ...... Среда разработки для Arduino. Ubuntu ...... Самая популярная в мире Deb Creator ...... Создание пакетов для Debian разновидность Linux. Ubuntu. KScope ...... Инструмент анализа исходного CTOPOHA 2 кода. Matplotlib ...... Библиотека для создания ЖУРНАЛ диаграмм и графиков. Многоплатформенные загрузки BitTorrent Blender ...... Файл проекта игры. PyGame ...... Инструментарий Python с помощью Transmission – быстро и легко. CodeProject ...... Код примеров статьи. для создания игр. Ingame ...... Движок на основе SDL. Matplotlib ...... Исходные тексты примеров ДИСТРИБУТИВЫ Qt4 ...... Код из учебника Qt4 Damn Small Linux ...... Дистрибутив-легковес. WordPress ...... Пример расширения WordPress. Fedora...... Дистрибутив, 'Q' DVD Author ...... Инструмент создания DVD. спонсируемый Red Hat. Rosegarden ...... Музыкальный редактор. АУДИО Knoppix ...... Live-дистрибутив. Ardour ...... Цифровая студия звукозаписи. PCLinuxOS ...... Настольный дистрибутив. ИНТЕРНЕТ ...... Музыкальный плейер Zenwalk ...... Быстрый и компактный Songbird ...... Web медиа-плейер. и менеджер. дистрибутив. Transmission ...... Клиент BitTorrent. PulseAudio ...... Звуковой сервер. ИГРЫ СИСТЕМА РАБОЧИЙ СТОЛ Spring ...... Стратегия реального времени. GTKO...... Интерфейс Oracle. aewm ...... Минималистичный SuperTux ...... Пингвино-платформенная игра. StartUp Manager ...... Настройки загрузки. менеджер окон. Warzone 2100 ...... Стратегия реального времени. VirtualBox ...... Эмулятор ПК. Avidemux ...... Редактор видео. DigiKam ...... Менеджер фото. HOTPICKS ГЛАВНОЕ F-Spot ...... Менеджер фото. Bazaar...... Система управления версиями. ATI driver ...... Графический драйвер. Fluxbox ...... Менеджер окон. Fish Fillets ...... Головоломка. Bash ...... Оболочка командной строки. GnuCash ...... Небольшая программа Freecycle ...... Программа нарезки. Cairo ...... Библиотека для бизнеса и бухгалтерии. Frets on Fire ...... Имитатор электрогитары. двухмерной графики. IceWM ...... Windows-подобный gscan2pdf ...... Изготовление многостраничных CheckInstall ...... Программа создания менеджер окон. PDF со сканированного двоичных пакетов. Ion ...... Мозаичный менеджер окон. изображения. Coreutils ...... Утилиты командной строки. lwm ...... Менеджер окон в стиле LabPlot ...... Приложения для анализа CSV ...... Содержание диска. ультра-минимализма. данных и визуализации. GLib ...... Низкоуровневая библиотека. Glibc ...... Библиотека GNU C. Gtk ...... Инструментарий пользовательского интерфейса. HardInfo ...... Системная информация и сравнительный анализ. Jigdo ...... Создатель ISO-образов. Kernel ...... Свежий релиз ядра Linux. LibXML2 ...... XML-анализатор и набор инструментов. ncurses ...... Оконный инструментарий текстового режима. Nvidia driver ...... Графический драйвер. RAWRITE ...... Программа записи образов на дискеты. SBM ...... The Smart Boot Manager. SDL ...... Библиотека мультимедиа.

5 000 боевых единиц в действии: стратегия реального времени Spring.

Март 2008 Linux Format 127 Reviews Xxx

Главное в мире Linux

Журнал зарегистрирован Федеральной службой по надзору за соблюдением законодательства в сфере массовых коммуникаций и охране культурного наследия ПИ № ФС77-21973 от 14 сентября 2005 года Выходит ежемесячно. Тираж 6000 экз.

РЕДАКЦИЯ РУССКОЯЗЫЧНОЙ ВЕРСИИ: ГЛАВНЫЙ РЕДАКТОР Валентин Синицын [email protected] Выпускающий редактор Родион Водейко Литературные редакторы Елена Толстякова, Иван Мищенко Переводчики Илья Аввакумов, Александр Бикмеев, Светлана Кривошеина, Александр Казанцев, Алексей Опарин, Валентин Развозжаев, Татьяна Цыганова Редактор диска Александр Кузьменков в апреле Допечатная подготовка Сергей Австрецкий, Родион Водейко, Мария Пучкова Креативный директор Станислав Медведев Технический директор Денис Филиппов Директор по рекламе Денис Игнатов +7 812 965 7236 [email protected] Генеральный директор Павел Фролов Заместитель генерального директора Софья Виниченко KDE против УЧРЕДИТЕЛИ частные лица ИЗДАТЕЛИ Станислав Медведев, Виктор Федосеев, Павел Фролов

Отпечатано в типографии «Текст», ООО «ППК «Текст» 188680, Ленинградская область, Всеволожский район, Колтуши, д.32 Заказ _____ GNOME Пре–пресс: d.r.i.v.e-group

РЕДАКЦИЯ АНГЛОЯЗЫЧНОЙ ВЕРСИИ: Теперь, когда KDE 4 вышла, мы поставили рабочие столы лицо к Редактор Пол Хадсон [Paul Hudson] [email protected] Редактор новостей Майк Сондерс [Mike Saunders] [email protected] лицу и готовы ответить на вопрос, кто же из них – лучший? Редактор обзоров Грэм Моррисон [Graham Morrison] [email protected] Художественный редактор Эфрейн Эрнандес-Мендоса [Efrain Hernandez-Mendoza] [email protected] Литературные редакторы Эндрью Грегори [Andrew Gregory] [email protected], Мэтт Нейлон [Matt Nailon] [email protected]

Подготовка материалов Орестис Бастоунис [Orestis Bastounis], Ладислав Боднар [Ladislav Bodnar], Нейл Ботвик [Neil Bothwick], Джон Брэндон [John Brandon], д-р Крис Браун [Dr. Chris Brown], Энди Не устанавливайте Vista! Ченнел [Andy Channelle], Энди Хадсон [Andy Hudson], Дэниел Джеймс [Daniel James], Фрэнк Полманн [Frank Pohlmann], Dale Strickland-Clark [Дейл Стрикланд-Кларк], Почему компании могут извлечь большую выгоду от миграции Саймон Пиксток [Simon Pickstock], Роб Певис [Rob Purvis], Дмитрий Амиров, Евгений Балдин, Андрей Боровский, Дмитрий Дроздов, Иван Зорин, Евгений Кропоткин, Галина на Linux, чем от перехода на новейшую ОС Microsoft? Пожарина, Олег Попов, Андрей Прахов, Валентин Развозжаев, Александр Супрунов, Алексей Федорчук, Алексей Шипунов, Илья Шпаньков

Художественные ассистенты: Нейл Фристоун [Neil Freestone], Ники Гоутутбед [Nicky Gotobed], Фил Хейкрэфт [Phil Heycraft].

Иллюстрации: iStockphoto.com КОНТАКТНАЯ ИНФОРМАЦИЯ Патчи через Rsync UK: Linux Format, 30 Monmouth Street, Bath BA1 2BW Tel 01225 442244 Email: [email protected] РОССИЯ: У вас более одного Linux-компьютера? Сократите трафик Санкт-Петербург (редакция): ул. Гончарная, 23, офис 54, телефон: (812) 717-00-37 Представительство в Москве: обновлений вдове! пр.Мира, 161, телефон +7(495) 799-18-63, +7(495)136-88-45 Email: [email protected], Web: www.linuxformat.ru

Авторские права: Статьи, переведенные из английского издания Linux Format, являются собственностью или лицензией Future Publishing Ltd (Future plc group company). Все права зарегистрированы. Никакая часть данного журнала не может быть повторно опубликована без письменного разрешения издателя. Все письма, независимо от способа отправки, считаются предназначенными для публикации, если иное не указано явно. Редакция оставляет за собой право корректировать присланные письма и другие материалы. Редакция Linux Format получает неэксклюзивное право на публикацию и лицензирование всех присланных материалов, если не было оговорено иное. Linux Format стремится оставлять уведомление об авторских правах всюду, где это возможно. Сравнение: аудиокодеки Свяжитесь с нами, если мы не упомянули вас как автора предложенных вами материалов и мы постараемся исправить эту ошибку. Редакция Linux Format не несет ответственности за опечатки. Все присланные материалы могут быть помещены на CD или DVD-диски, поставляемые вместе с Ogg против MP3 и всех остальных: ваши уши будут им журналом, если не было оговорено иное. Ограничение ответственности: используйте все советы на свой страх и риск. Ни при каких условиях судьями. редакция Linux Format не несет ответственность за повреждения или ущерб, нанесенные вашему компьютеру и переферии вследствие использования тех или иных советов. За содержание рекламных материалов редакция ответственности не несет. Linux-зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds). Название «GNU/ Linux» заменяется на «Linux» в целях сокращения. Остальные торговые марки являются собственностью их законных владельцев. Linux Format является торговой маркой Future Publishing Ltd (Future plc group company). За информацией о журналах, издаваемых Future plc group company, обращайтесь http://www.futureplc.com Содержание последующих выпусков может меняться без уведомления © Linux Format 2005 © Future Publishing Ltd 2005

128 Linux Format Xxx 2006 BATH • LONDON • MILAN • NEW YORK • PARIS • SAN DIEGO •SAN FRANCISCO