Professional Documents
Culture Documents
LXF90
SUSE 10.2 » Apache » VMware » SugarCRM
внутри!
Knoppix 5.1.1
ПЛЮС: Fedora 6 LIVE,
NetBSD, FreeBSD, OpenBSD!
Устранение неполадок
Ваши проблемы с Linux
решены!
SUSE 10.2
Hardw
SugarCRM
are
» Советы » Оборудование » Установка
» Искусство поиска неисправностей с. 26
Клиенты BitTorrent
e
ar
tw
Который torrent?
Sof
In
sta
ll
OpenID
BitTorrent занимает 50% пропускной способности
Всемирной сети – мы расскажем, какой клиент
VMware Workstation 6?
следует использовать с.18
РАССМОТРИМ И ОЦЕНИМ:
SUSE 10.2, ASPLinux 11.2, SoftMaker Office,
wxWidgets 2.8, VMware 6, Kerio Mail Server 6.3
Apache
Аутентификация
Дэмьен Конвей
сделанная людьми
и для людей
OpenID изменит вашу жизнь к лучшему c. 46
ork
Knoppix 5.1
Netw
System
К Вашим услугам...
Тема этого номера – устранение неполадок, и мы
решили спросить у Команды LXF: Какой лучший
совет можно дать пользователю Linux?
Содержание
Весь номер – прямо как на ладони: приятного чтения!
Fedora 6 Live
Возьмите community-дистрибутив от
Red Hat с собой – теперь у него тоже
есть Live-версия! Идеален для
демонстрации возможностей Linux
друзьям и коллегам.
NetBSD и OpenBSD
Autopackage: прост и понятен. Надоел Linux? Откройте для себя
SugarCRM новый мир свободных ОС с OpenBSD
Установим! ....................................................... 58 4.0 и NetBSD 3.1
Подумываете обзавестись или обновить CRM-
систему? В новой серии учебников вы найдете OpenOffice.org 2.1
все, что вам нужно Готовьтесь к празднику: новый OOo
Mono стал еще быстрее и лучше работает
Подключаем библиотеки ................................ 62 с форматами Microsoft!
Fedora Core 6 в форме живого дистрибутива. Попробуйте, не
C# и Mono позволяют написать поисковую
систему меньше чем за час! Не верите? устанавливая!
Читайте этот учебник!
Grub
Разберитесь с загрузчиком ........................... 66
Что за штука... LXFHotPicks
OpenID?
Скучный черно-белый экран, который вы
видите при старте системы, можно сделать
повеселее – и безопаснее, если хватит духу
Лучшие новинки открытого
взяться за Grub! ПО на планете..................................104
GTK+
Знакомство Glade 2 ........................................ 70
Визуальное проектирование интерфейсов в
духе классического Gnome
Unix API
Консольные приложения................................ 74 Авторизация
Думаете, что все возможности терминала
ограничиваются функцией printf()? А вот и нет! без лишних
JavaEE
усилий
Java Server Pages ........................................... 78 c. 46
Попробуем отделить мух – от котлет, зерна – от
плевел, логику – от дизайна.
PostgreSQL Так какой, говорите, ионный радиус у водорода?
Настраиваем сервер ....................................... 82
В конфигурационных файлах можно найти
множество опций – на какие из них следует
обратить внимание в первую очередь? LXF INTERVIEW
LaTeX
Классы документов ........................................ 88
В LaTeX можно создавать книги, статьи,
письма, презентации, слайды... и все благодаря «Ну что вы, у нас
классам. Аспиранты – узнайте, как быстро полное согласие
оформить диссертацию!
всегда и во всем.»
Blender
Текстурирование и анимация ........................ 92
Статичные модели Blender можно оживить и Оптимистичный
раскрасить – но для этого, как и в реальном Дэмьен Конвей c. 48 Вся мощь Apache! c. 38
мире, придется понять законы физики
Обучите свой web-сервер новым трюкам
LXF DVD
Подпишись внутри!
на Linux Format См. страницу 110
и сэкономь!
Спецрепортаж Обзоры
OpenSUSE 10.2 ..........................08
Если SUSE 10.1 заставил вас призадуматься о
том, во что играет Novell – взгляните на SUSE
решены!
Узнайте, почему случаются неполадки и как с ними бороться на c. 26
OpenSUSE 10.2 доказывает, что
приложения GNOME прекрасно
чувствуют себя и в KDE.
А также... SoftMaker Office 2006 ..............10
Компактный офисный пакет, предлагающий
Перо вам в шляпу! ...............с. 38 производительность за деньги. Мы сравнили
его электронную таблицу с OOo Calc.
Модули Apache, которые стоит попробовать
VMWare Workstation 6 .............12
Виртуализация – это круто и некоторым из
ASPLinux 11.2............................14
Отечественные разработчики не часто балуют
нас регулярными релизами – но ASPLinux 11.2
заслуживает самого пристального внимания.
Новости
ГЛАВНЫЕ НОВОСТИ: LinuxBIOS Меняем ODF на OOXML Linspire переходит на Ubuntu
Free Software по доверенности Власть и бизнес России заинтересованы в свободном ПО
LinuxBIOS – тернистый
путь к полной свободе
В
большинстве случаев любой компью- чески слабых стран, а также использование бюджетных компьютерах проекта OLPC пока-
тер, работающий под управлением LinuxBIOS в индийских интернет-терминалах, зывает, что использование свободного вари-
свободной операционной системы, турецких цифровых телевизорах и многих анта сулит значительную выгоду: при исполь-
обладает как минимум одним проприетарным других специализированных устройствах, в зовании свободного аналога BIOS значительно
программным компонентом – BIOS. Впрочем, общей сложности насчитывающих около 10 снижается энергопотребление ноутбуков, а
и для этого ПО есть свободная замена – миллионов единиц, на пути в обычные ком- также ускоряется работа. По словам Рональда,
уже несколько лет ведется разработка пьютеры данный проект сталкивается с мас- возврат компьютера с LinuxBIOS из состояния
LinuxBIOS, способного полноценно заменить сой проблем. Вкратце сегодняшнюю ситуацию «сна» происходит практически мгновенно.
закрытый код и даже обеспечить лучшие с разработкой LinuxBIOS обрисовал автор дан- Также автор проекта высказал мнение по
показатели. Но, к сожалению, несмотря на ного ПО – Рональд Миннич [Ronald G. Minnich] поводу продвигаемого многими вендорами
явные успехи, к числу которых можно отнести в интервью организаторам намеченной на Extensible Firmware Interface (EFI). По его сло-
выбор данного ПО для амбициозного проекта конец февраля FOSDEM (Free and Open source вам, основная функция данной разработки –
OLPC, разрабатывающего сверхдешевые ноут- Software Developers’ European Meeting). стоять на страже интересов производителей
буки для детей из развивающихся и экономи- В частности, Рональд сказал, что такие аппаратных компонентов, помогая сохранять
компании, как SiS, VIA, Ali и Intel, поначалу в секрете архитектуру и микропрограммную
активно поддержали его идею, но в послед- «начинку» чипсетов. По сути, EFI можно оце-
ние годы практически перестали оказывать нить, как попытку создания своеобразного
поддержку проекту. В то же время компании «BIOS DRM», что может основательно поме-
AMD, MSI, Linux Labs, iRobot и Linux Networx шать развитию открытых аналогов. Впрочем,
(являющаяся, кстати, ключевым партнером Рональд не теряет оптимизма и считает, что
проекта), наоборот, активизировались и про- LinuxBIOS сможет занять достойное место в
должают оказывать неоценимую помощь в мире программного обеспечения.
создании и отладке свободной реализации
BIOS. Подобная неравномерность отрицатель-
но сказывается на разработке, которая по Пока верстался номер
всем параметрам вполне может полноценно Компания GIGABYTE анонсировала выпуск
заменить проприетарный вариант. При этом материн-ской платы M57SLI-S4 с LinuxBIOS
основной камень преткновения – нежелание на борту. Ориентированная на процессоры
коммерческих компаний приоткрывать завесу AMD (сокет AM2) плата базируется на чипсете
тайны над аппаратными «секретами» своих NVIDIA nForce 570 SLI, поддерживает до 16 ГБ
устройств и отсутствие свободных драйверов. памяти DDR-2 и имеет встроенный гигабитный
Между тем, опыт применения LinuxBIOS на Ethernet-контроллер.
Н
ашумевшее соглашение между ком- приложения – электронные таблицы Microsoft не мешает лицензии GPL и не лишает создателей продукта автор-
паниями Microsoft и Novell начинает Excel и программу для создания презентаций ских прав. Также планируется, что FLA позволит избежать случа-
приносить первые плоды. Вопреки PowerPoint. Завершить данную работу плани- ев, когда коммерческие компании скупают свободные проекты,
ожиданиям скептиков, их можно отнести, ско- руется к концу текущего года. выпуская их затем по закрытой лицензии.
рее, к положительным результатам, позволя- В свою очередь, компания Novell в дека- При всей полезности данного начинания, представители основ-
ющим еще больше облегчить жизнь пользо- бре прошлого года внесла соответствующие ного фонда FSF в лице Эбена Моглена [Eben Moglen] высказывают
вателей, работающих с документами, созда- коррективы в собственную редакцию пакета мнение, что FLA не сможет стать стопроцентной защитой свобод-
ваемыми в пакетах офисных приложений MS офисных приложений OpenOffice.org, добавив ного ПО. Особенно это касается случаев, когда разговор идет о
Office и OpenOffice.org. В частности, в начале возможность работы с документами формата различиях в законодательстве определенных стран. В частности,
февраля спонсируемый компанией Microsoft OOXML. Таким образом, вопрос несоответ- в США, где передача авторского права является обычным делом,
проект по созданию конвертора докумен- ствия форматов двух популярных офисных FLA будет эффективно работать. К примеру, дочерние проекты
тов представил первый релиз своего дети- пакетов можно считать практически закры- GNU Project наподобие GCC делегируют права своей вышестоящей
ща. Модуль позволяет работать с текстовыми тым, а всех пользователей поздравить с тем, организации, при этом нет законов, способных воспрепятствовать
файлами MS Word в двух форматах по выбо- что в работе с документами, создаваемыми в данному юридическому действию. Но в таких странах, как Франция
ру – или в Office Open XML (OOXML), являю- двух различных текстовых процессорах, стало и Германия помимо авторского права существует и такое юриди-
щимся форматом по умолчанию в MS Office, одной проблемой меньше. Примечательно, ческое понятие, как «моральное право», которое согласно законо-
или в OpenDocument (ODF), недавно приня- что в дело «примирения» двух конкурирую- дательству данных держав не может быть отчуждено или передано
том в качестве международного стандарта. щих форматов документов внесли свою леп- другому лицу. В этом случае, считает Моглен, FLA может оказаться
Разработчики гарантируют совместимость ту и производители менее распространенных недействительной. В связи с этим Моглен опасается одной вещи – что
конвертора практически со всеми популяр- пакетов офисных приложений. В частности, FSFE начнет продвигать FLA, как единственно возможное решение,
ными версиями офисных пакетов редмонд- компания Corel сообщила, что следующие хотя на самом деле оно таковым не является и требует индивиду-
ского гиганта, включая новейший MS Office версии пакета WordPerfect Office будут обла- ального рассмотрения в каждом конкретном случае.
2007. Модуль распространяется под откры- дать полноценной поддержкой как ODF, так http://www.fsfeurope.org/projects/fla/. LXF
той лицензией BSD и доступен к загрузке на и OOXML.
Компания Sun Microsystems планирует перевести свои про- В интернете открыт новый ресурс MobileLinuxInfo.com, пред-
екты Java и Solaris на лицензию GPLv3 и создать операцион- назначенный для пользователей, разработчиков мобильных
ную систему GNU на ядре Solaris. телефонов и программного обеспечения на базе Linux.
Компания Trolltech в сотрудничестве с VirtualLogix на Министр образования Пермского края Николай Карпушин
Конгрессе 3GSM в Барселоне представили однопроцессор- заявил, что для снижения вероятности нарушения действу-
ный телефон, управляемый операционной системой Linux в танде- ющего законодательства в учебных заведениях будет сведено к
ме с системой виртуализации в режиме реального времени. минимуму использование коммерческого ПО, а в первую очередь
Red Hat подписала соглашение с Вооруженными Силами будет рассматриваться возможность использования свободных
Швеции, согласно которому военные заменят серверные сис- программных продуктов с открытым исходным кодом.
темы Windows на аналогичные программные продукты от Red Hat. Идя навстречу пожеланиям читателей, редакция журнала
Очередная версия браузера Netscape 9 будет выпущена одно- Linux Format опубликовала на web-сайте архив номеров за
временно для трех платформ – Windows, Linux и Mac OSX. 2006 год в формате PDF.
Обзоры
Новинки программного и аппаратного обеспечения в описании наших экспертов
Алексей Федорчук
Свою первую
(и последнюю)
программу написал Сегодня мы рассматриваем...
еще на Алголе.
08 OpenSUSE 10.2 OpenSUSE 10.2 c. 22
Едва расписавшись с Microsoft, SUSE выпустила
Debian или Kebian? новый дистрибутив. Стал ли он на 0.1 лучше, чем
10.1, или же Novell все эти месяцы занималась чем-
то другим? .... 8/10
Н
а протяжении последнего време-
ни в тематической печати наибо-
10 SoftMaker Office 2006
Нас вряд ли назвать можно гениями литературы, но
лее часто фигурировали Red Hat
мы удостоили Softmaker Office самых теплых слов.
и Debian со своими клонами. И как-то в
И вы их сейчас читаете! .... 7/10
тени остался третий кит Linux-дистрибуции,
Slackware. Хотя исторически его следовало
бы назвать первым. 12 VMWare Workstation 6.0
Тем не менее, и он не стоит на месте, С конвейера лидера в области виртуализационных
Beagle! F-Spot! Tomboy! И, конечно, Yast!
не смотря на всем известные осложняющие технологий сошла новая модель – Workstation 6:
Нет, не может быть, чтобы все было совсем уж
обстоятельства. И, что немаловажно, интен- наши первые впечатления. .... 8/10
гладко...
сивно развиваются его прямые потомки, в
том числе и весьма юного возраста. 13 wxWidgets 2.8
В их числе следует назвать в первую Многие считают, что выбор GUI-инструментария wxWidgets c. 29
голову ZenWalk (http://www.zenwalk.ru) - дист- сводится к выбору между GTK и Qt. wxWidgets
рибутив, избравший своим тотемом дельфи- демонстрирует, что «третий не лишний». .... 9/10
на. И развивающийся со стремительностью,
присущей этому морзверю: в конце февраля 14 ASPLinux 11.2
вышла его очередная версия (4.4 – напомню, Отечественный настольный дистрибутив – глазами
что предыдущие чередовались с интервалом простого пользователя. Не SUSE единым... .... 8/10
менее чем в полгода).
Чем интересен этот дистрибутив? Если 16 Kerio Mail Server 6.3
Ubuntu во всех его проявлениях можно счи- Есть ли жизнь без Sendmail и Postfix? Посмотрите
тать одним из способов легкой, для начи- на этот почтовый сервер-комбайн .... 6/10
нающего пользователя, установки Debian,
то ZenWalk играет ту же роль в отноше-
нии Slackware. Скачал образ диска размером
Создание продвинутых пользовательских
интерфейсов при минимуме кодирования.
несколько более 400 МБ, пользователь в счи-
танные минуты получает компактную, но пол-
ностью готовую к употреблению систему – с
чрезвычайно элегантно оформленным XFce НАШ ВЕРДИКТ: пояснение
в качестве рабочего, набором утилит, вполне
достаточным для счастья, легкими офисными Все попавшие в обзор продукты «Top Stuff». Номинантами стано-
пакетами и инструментами web-редактирова- оцениваются по одиннадцати- вятся лучшие из лучших – прос- Вердикт
ния, не вполне полной, но достаточной для бальной шкале (10 – то высокой оцен-
начала поддержкой русского языка. высшая оценка, 0 – низ- ки здесь недоста- Google Earth
шая). Как правило, мы точно. Разработчик: Google
А дальше для наращивания мощи перед оцениваем функциональ- Рассматривая Сайт: http://earth.google.com
ним два пути. Первый – наименьшего сопро- Цена: Бесплатно по закрытой лицензии
ность, производитель- свободное ПО, мы
ность, простоту исполь- обычно указываем Функциональность 10/10
тивления, то есть использование встроен-
Производительность 9/10
ной системы пакетного менеджмента, netpkg, зования и цену, а для предпочтитель- Простота использования 9/10
бесплатных программ ный дистрибутив. Документация 9/10
не более сложной в обращении, чем apt
учитывается документа- Иногда это озна-
или pacman. Второй же – традиционное для ция. Кроме того, мы всег- чает компиляцию Если весь мир – сцена, то Google
Slackware и его потомков конструирование да выставляем общую оценку, из исходных текстов, но, если Earth – театр. Простая в использовании,
захватывающая и ободряюще практичная
собственной системы. демонстрирующую наше отно- разработчики рекомендуют программа.
alv@posix.ru шение к продукту. Autopackage, мы следуем этому
Выдающиеся решения могут
получить престижную награду
совету. Рейтинг 9/10
OpenSUSE 10.2
Последнее время Novell находится в гуще всевозможных событий – Нейл Ботвик
оценивает, а событие ли ее новый дистрибутив?
Н
едавно SUSE перенесла несколь-
Вкратце… ко ударов. Проблемы с OpenSUSE
10.1, особенно в области пакетного
Linux- менеджмента и обновления… Сделка Novell
дистрибутив, с Microsoft, вызвавшие штурм Замка Novell
спонсируемый разъяренными толпами воинов Свободного
(и в основном
ПО (см. раздел новостей LXF86)… Проблемы
разрабатываемый)
Novell, 10.1 удивили: такое обнаруживают еще на ста-
рассчитанный как на дии .0, а к .1 уже исправляют. Встает вопрос:
домашних, так и на смогли ли Novell и Сообщество SUSE испра-
бизнес- вить положение в OpenSUSE 10.2?
пользователей. См.
При инсталляции предлагается несколь-
также: Fedora Core 6,
Mandriva 2007 или ко рабочих столов – KDE, Gnome и «Другие»
Ubuntu 6.10. (Others) – но выбрать можно лишь один.
Для пользователя-одиночки это нормально,
но если у вашей лучшей половины вкус не
совсем такой, как ваш, придется потом добав-
лять рабочий стол через Yast. Безопасность
надежная, с брандмауэром Yast (установлен по
умолчанию), традиционным iptables и защитой
от вредных приложений AppArmor. Меню Gnome на SUSE может показать и часть приложений, и все сразу – выбор за вами!
В инсталляторе есть возможность уда-
ления IPv6 – некоторые распространенные время установки. Разница в том, что система ду и функциональность: к пяти дискам можно
модемы/роутеры не умеют с ним обращаться, SUSE загружает лишь заплатки, а не пакеты добавить шестой, с несвободным ПО (Adobe
а удаление может улучшить существующие целиком, что существенно снижает трафик, Reader, Java и Opera). Имеется и соответст-
подключения и даже восстановить разрушен- особенно для крупных пакетов. вующее онлайн-хранилище для обновлений,
ные. Аналогично другим дистрибутивам, SUSE Как поступают теперь многие Linux-дист- напоминающее репозиторий Ubuntu Restricted.
предлагает загрузить обновления программ во рибутивы, SUSE четко разграничивает свобо- Только хранятся там в основном приложения,
а не драйверы. OpenSUSE доступен и в виде
DVD ISO, но учтите, что туда помещено все ПО,
включая несвободное.
Рабочий стол KDE в SUSE 10.2
Время вбрасывания
SUSE заменил К-меню в KDE новым, «ори-
GTK на KDE ентированным на эффективность» меню
Аккуратная работа с темами приводит под названием Kickoff (Вбрасывание). Меню
к тому, что GTK-приложения (здесь, обманчиво простое: по-прежнему доступ-
GnuCash) чувствуют себя в KDE как но все, но ваши любимые приложения еще
дома.
доступнее. Список избранного настолько удо-
бен, что мы с него не слезали. В Kickoff встро-
ен Kerry, KDE-оболочка поискового движка
Встроенный поиск Beagle, делающая поиск вездесущим (в панели
Kerry, KDE-оболочка для Beagle, инструментов Konqueror тоже есть поисковый
поискового движка от Novell. модуль Kerry, специально для нас, разгильдя-
ев). Приложения Gnome на SUSE хорошо впи-
сываются в KDE – GTK-программы, помещен-
ные в KDE, выглядят как KDE-программы, и
нет этих жутких визуальных искажений, полу-
Kickoff чающихся при попытке запуска приложений
К новому меню SUSE для KDE от разных сред. Но KDE-приложения в Gnome
(доступно и старое) нужно по-прежнему выглядят ужасно.
Yast ZENworks
привыкнуть, но это несомненный Кое-кого расстроит удаление из ядра под-
Независимо от вашего отношения Новый инсталлятор, отвлекаю-
прогресс.
к идее конфигурировать все на свете щий ваше внимание от Yast. держки smbfs. Эта файловая система исполь-
одной программой, Yast упрощает Не разумнее ли предоставить зуется для монтирования общих с Windows
основную работу по настройке. управление ПО единственному ресурсов. Сама по себе возможность не исчез-
менеджеру?
ла, так как в ядре имеется CIFS, усовершенст-
Novell, MS и OpenOffice.org
В OpenSUSE 10.2 Novell включила «существенно улучшенную» версию OpenOffice.org.
Некоторые улучшения выглядят полезными, например, интеграция с Evolution и Kontact,
но одно из них вызвало бурю дебатов. Спорная функция – «улучшенная совместимость
с файлами Microsoft Office», включающая поддержку макросов Visual Basic для Excel в Calc.
Неудивительно, что в нее вцепились участники бойкота Novell. Мы протестировали работу
макросов VB с помощью двух разных таблиц, и ничего не сработало. То ли Novell втихую
убрала поддержку макросов, то ли эта поддержка не так хороша, как было заявлено.
шат отсутствием обратной связи. Часто невоз- вых редакторов – пожалуйста. В целом набор
можно понять, зависло приложение или просто ПО свежий: ядро 2.6.18, KDE 3.5.5, Gnome 2.16,
загружает особо крупный пакет. Firefox 2.0 и Gimp 2.2.13. Разработчики не успе-
SUSE 10.2 не хочет воспроизводить DVD. Не только коммерческие, ли включить новейшую версию OpenOffice.org
обычные тоже. Графические причуды 2.1, зато есть 2.0.4. Удивительно, что в 10.2 нет
Владельцев видеокарты Nvidia ждет разоча- собственных разработок Novell – Mono 1.1.8
вованная замена. SUSE объясняет ликвидацию рование: для нее предусмотрены лишь сво- и Beagle 0.2.12 на диске есть, но ведь 1.2.1
SMB тем, что он больше не поддерживается, бодные драйверы, а значит, не будет 3D- и 0.2.13 вышли на добрую неделю раньше
но это лишь теория, поскольку с этом самом ускорения. SUSE не включает проприетарные сборки пакетов для диска. Пауза между выхо-
комплекте 10.2 есть приложения, предназна- драйверы Nvidia (даже в «несвободный» CD) дом проекта и сборкой дистрибутива вполне
ченные для работы с инструментами smbfs по лицензионным причинам, но их неслож- естественна, но продукты-то разрабатывались
и рассчитанные на то, что соответст-вую- но добавить через тот же Yast или ZENworks. в одной фирме!
щий модуль имеется. Похоже, задумано было На SUSE 10.2 можно установить Xgl, хотя это Несмотря на некоторые нестыковки в
неплохо, но до конца дело не довели. Впрочем, будет посложнее, чем, скажем, с Mandriva управлении пакетами, SUSE 10.2 значительно
с главной файловой системой все хорошо – 2007. Нужно использовать редактор /etc/ лучше 10.1. В прошлый раз Novell споткну-
это по-прежнему ext3 [раньше по умолчанию sysconfig в Yast, чтобы сменить X-сервер с лась, но выправилась и произвела професси-
предлагался reiserfs, – прим. ред.]. X.org на Xgl и установить Compiz. Правда, ональный, удобный в использовании (правда,
настройка делается раз и навсегда, и в Gnome слегка сыроватый) продукт. LXF
Обновления все отлично работает. К несчастью, в KDE
Система обновлений SUSE работает через доступны лишь немногие функции – никаких
Грэм
менеджер пакетов ZENworks, и это странно: считает… пульсирующих окон – но это скорее вопрос к
существуют две независимые системы управ- Compiz, чем к SUSE.
ления пакетами. Один из вариантов – тради- «Когда-то мне Воспроизведение DVD на SUSE традици-
ционный, через секцию управления пакетами нравился онно хромает. Согласны, защищенные диски
Yast, а другой – новый, с помощью ZENworks. OpenSUSE. Но проигрывать нельзя, и libdvdcss осталась за
Оба распоряжаются одними и теми же RPM и теперь в нем бортом. Но SUSE не в силах воспроизвести
отсутствует
базой данных, и можно переключаться между даже обычные DVD, созданные Dvdauthor.
главное, чего я
ними. Оба имеют свой список инсталляционных Необходима замена сломанного пакета xine-
ожидаю от
ресурсов, но они не синхронизированы – если дистрибутива lib, что означает добавку еще одного репозита-
ресурс добавлен в ZENworks, то при работе с Linux: рия к послеустановочной настройке Yast. MP3
Yast операцию придется повторить. Раздражает преданность воспроизводит RealPlayer – по крайней мере
постоянный запуск синхронизации с ZENworks, Linux- при инсталляции с «несвободного» диска или
сколько его ни отключай: это тормозит добав- сообществу». DVD – и здесь все в порядке.
ление пакетов. Обе системы обновления гре- Проблемы с мультимедиа вызваны ско-
рее щекотливой юридической ситуацией,
чем виной разработчиков. Не стоит обви-
нять Novell в чрезмерной осторожности, к Вердикт
OpenSUSE или SLED? тому же на месте, как обычно, Jem Report с
подробными указаниями по добыче недоста- OpenSUSE 10.2
Сегодня SUSE существует в двух ипостасях – OpenSUSE 10.2 и SUSE ющих фрагментов, на www.softwareinreview. Разработчик: Novell
Linux Enterprise Desktop (SLED) 10.0 – какую же выбрать? На первый Сайт: http://en.opensuse.org
com/cms/content/view/60.
взгляд, Open SUSE лучше: она новее, и набор ПО более свеж. Но вы Цена: Бесплатно, в основном под GPL
Если исключить вышеупомянутые мульти-
можете предпочесть уже опробованную, надежную вещь. Этим два Функциональность 8/10
SUSE и различаются. У OpenSUSE 10.1 были крупные проблемы, медиа-элементы, SUSE содержит поразитель-
Производительность 7/10
особенно по части управления пакетами, а SLED ультра-надежен. но широкий спектр ПО. Прошли те времена, Простота использования 9/10
Честно говоря, вы всегда рискуете, пробуя новейшую версию чего- когда в крупных дистрибутивах можно было Документация 7/10
нибудь, уже потому, что немногие этим чем-нибудь пользовались. установить пару рабочих столов и дюжину
SLED предназначен для бизнес-потребителей, для которых программ для каждой мелочи; выбор на DVD Разработчики SUSE оставили позади
стабильность превыше новизны, особенно в тех случаях, когда 10.1 и произвели солидный
по-прежнему широк, но стандартная инстал-
система устанавливается на несколько сотен компьютеров. Для профессиональный дистрибутив,
ляция проста и понятна. определенно заслуживающий
индивидуального пользователя это вопрос личного выбора – как Продуманный перечень программ и новые инсталляции.
всегда на Linux.
меню SUSE помогают быстро подобрать ПО
для работы, но если вы желаете, чтоб из тра-
диционного К-меню вываливалось 17 тексто-
Рейтинг 8/10
Март 2007 Linux Format 9
Обзоры Офисный пакет
Конкурент OpenOffice.org – да еще и платный? SoftMaker решил, что это реально; осталось
убедить Энди Ченнела…
П
ечать осталась в прошлом веке;
Вкратце… теперь у нас есть txt, eml и SMS. Но
в бизнесе люди все еще цепляют-
Сцепка текстового ся за бумажную копию, как за последнего
процессора и базы пушистого котенка в зоомагазине. Для этих
данных для х86 типов офисный комплект – центр вселенной,
Linux-дистрибутивов
и выбор его необычайно важен. Пользователи
и FreeBSD.
Попробуйте также: Windows сгрудились вокруг MS Office, боль-
OpenOffice. org, шинство линуксоидов счастливо с OpenOffice.
KOffice или AbiWord org; а вот SoftMaker (г. Нюрнберг) вспахи-
совместно с вает собственную ниву, производя комби-
Gnumeric.
нацию TextMaker и PlanMaker для Windows,
Linux, Pocket PC и Windows CE (поддержки
Mac нет).
Пакет состоит из двух частей: текстового
процессора и редактора электронных таблиц.
Модуль создания презентаций отсутствует,
и это минус SoftMaker 2006 еще до «здрас-
те». Да, можно создать документ в TextMaker,
а затем перевести его в формат HTML или
PDF, но для профессиональных презентато-
ров этого мало. Нет и редактора иллюст-
раций, чем может похвалиться OOo, хотя в TextMaker имеет многоязыковую поддержку и удобные стили абзацев.
чем у OOo Writer, но достигается это ценой ниже). Мы заметили единственную проблему: вариант весьма заманчивым. Его способность
отсутствия интеграции с вашим рабочим случайные искажения встроенных рисунков во уверенно импортировать и экспортировать
столом и сглаженных шрифтов на панелях время навигации между таблицами. документы из разных версий комплекта неза-
инструментов и в меню. Поддержка DOC (то Нам понравилась работа PlanMaker – инту- висимо от первоисточника может стать допол-
есть импорт и экспорт) превосходна, вдоба- итивно понятная и аккуратная. Поддержка нительным бонусом для тех, кто решился
вок TextMaker умеет читать и записывать фай- макросов Excel надежна и стабильна, что для перейти с Windows на Linux.
лы и старых (SWX), и новых (ODT) форматов
Пол многих будет важнейшим качеством. Как мы Но если таблицы для вас не единственная
OOo, в дополнение к обязательным RTF и про-
считает… ни старались, программа ни разу не толь- и окончательная цель, то градус рекомендаций
стому тексту. Вывод на печать также хорош. «Безупречная ко не зависла, но даже ощутимо не сбавила существенно снижается. Текстовый процес-
Приложение вполне стабильно, но когда мы совместимость скорости обработки самых сложных таблиц. сор сравним с Writer, вот и прикиньте, сто-
все-таки умудрились его «завалить», програм- с Excel По сравнению с Calc, она не только быст- ит ли переплачивать ради ускорения работы
ма исчезла без всякого предупреждения. обязательна для рее запускается, но и быстрее переключается (перед покупкой можно попробовать демо-
многих между разными таблицами и быстрее обнов- версию). Но отсутствие модуля для презента-
потенциальных
Как там с Excel… мигрантов
ляет ячейки. ций – это серьезно, и мы не можем рекомен-
PlanMaker – табличная часть SoftMaker, пред- Для тех, кто сжился со своим Excel или довать SoftMaker 2006 от всей души. Если OOo
на Linux, и
назначенная для работы с более-менее слож- SoftMaker Office накопил крупный архив, этот пакет может необходим вам из-за приложения Impress, то
ными вычислениями. Как и текстовый напар- здесь стать наилучшим вариантом обретения под и остальных его частей для жизни хватит.
ник, имеет солидный набор функций и зна- превосходит Linux некоего Единого Офиса или даже самого Тем не менее, стабильность, быстрота, без-
комый пользовательский интерфейс – без OOo». Excel. Каждую переменную и макрос не про- упречная поддержка Excel и встроенная база
побрякушек – включающий многотабличную тестируешь, но все предложенные документы данных делают комплект весьма привлека-
вкладочную организацию, крупную, друже- PlanMaker обработал превосходно. тельным. Если бы встал выбор между покуп-
ственную панель формул и разнообразные Если вы подумываете о миграции, учтите, кой этого дуэта и борьбой с KOffice, мы бы уже
функции форматирования ячеек. Панели что эта парочка – не клоны продукции MS: мы принялись копить денежки. LXF
инструментов разумно организованы и не бы расценили их как нечто среднее между OOo
переполнены параметрами, поэтому рабочее и визуальным излишеством MS Office 2003.
пространство не столь перегружено, как в Фоновые градиенты не отвлекают от работы,
OOo Calc. Основной расчет – на повседневные но достаточно четко разграничивают панели
нужды среднего пользователя. А если ваш инструментов, а самое замечательное, что это
уровень выше (или ниже!) среднего, панели не ухудшает производительности программ.
инструментов легко настроить через меню Чтобы упростить изучение, пакет предусмат-
«Preferences» (Параметры). Редактор формул ривает подробное, хорошо написанное 500-
PlanMaker содержит широкий (хотя и похуже, страничное руководство в электронном виде.
чем у Calc) набор параметров и удобное управ- Бумажный учебник – это здорово, но поиск по
ление операторами, делающие построение ключевым словам гораздо легче выполнять
вычислений наглядным. среди бит, чем среди квадратных сантиметров,
Разработчики проявили недюжинные спо- да и лес стоит поберечь.
собности в сфере работы с файлами Excel.
Программа смогла открыть все, что было За и против
предложено (100 документов, вынутых из Итак, рядом с бесплатным OpenOffice.org –
Сети в случайном порядке) почти без запинки, найдется ли место комплекту ценой около
и в этой области она значительно превосхо- $70? Пользователи с опытом работы в Excel,
дит Calc (см. врезку «PlanMaker против Calc» особенно любители макросов, найдут этот
Рейтинг 7/10
Март 2007 Linux Format 11
Обзоры Виртуальная машина
VMware Workstation
Впечатлениями о VMware Workstation 6 готов поделиться Нейл Ботвик – у него
редко бывает меньше дюжины дистрибутивов одновременно.
Э
то все Майк Сондерс. Что ни месяц, он
Вкратце… заливает как минимум один полный
дистрибутив на LXFDVD – извольте
Флагман пробовать! Охнуть не успеешь, как винчестер
виртуализации переполняется, а загрузочное меню упира-
VMware для ется в пол. А с виртуальной машиной можно
настольных машин: опробовать дистрибутив без мультизагрузки:
новые функции и
больше в окне запускается компьютер с собственной
поддерживаемых памятью (и постоянной, и оперативной) и
дистрибутивов. сетевыми подключениями.
См. также: Qemu и Областей применения виртуальных машин
VMware Server.
(ВМ) немало: хостинговые компании экономят
деньги на физических компьютерах, разработ-
чики безопасно тестируют ПО, образователь-
ные учреждения предоставляют студентам
стандартное окружение. Известнейший произ-
водитель ВМ – VMware Inc – только что сняла
покрывало с VMware Workstation 6. Хотя на
вид новая версия неотличима от предыдущих,
да и работает с ВМ, созданными до нее, изме-
нений по сравнению с Workstation 5.5 немало.
Одно из них состоит в том, что обновление
больше не будет односторонним процессом: Снимки состояния позволяют вернуть ВМ в любое прошлое.
можете создавать ВМ на Workstation 6, затем
запускать их на старых версиях. оборудовании, на пробной версии, поскольку Если вам просто захотелось взглянуть на
Теперь виртуальные машины могут тру- полная стоит денег. последний дистрибутив Майка, тут хватит и
диться в автоматическом режиме после оста- альтернативы вроде VMware Server или Qemu.
новки основной программы Workstation. ВМ Улыбочку, пожалуйста! Но если виртуальные машины нужны вам в
работает в фоне, с удаленным доступом как с Важная для ВМ функция – способность делать профессиональной деятельности или сфере
локального хоста, так и с другого компьютера. снимки состояния системы. В Workstation сни- разработки ПО, возросшая мощь Workstation
Это существенное добавление, особенно при мок может быть сделан по нажатию кнопки, может оказаться неоценимой, а новые функ-
разработке ПО без графического интерфейса но можно настроить ее так, чтобы состояние ции шестой версии – автоматические ВМ,
(сетевое ПО или программы командной стро- ВМ фиксировалось при каждом выключе- интеграция с Eclipse, поддержка 64-битных
ки) на гостевой ОС. Прежний лимит 4 ГБ ОЗУ нии, или чтоб снимок загружался при каждом хостов – делают обновление весьма привлека-
на все одновременно работающие ВМ полно- запуске. Это идеально для обучающих систем тельным. Мы бы приобрели ее хотя бы из-за
стью снят, а для каждой отдельной – повышен или машин общественного пользования. способности работать без графики. LXF
до 8 ГБ. Возможность разрабатывать код в хост-
системе и тут же испытывать его в виртуаль-
Теперь и Vista ной – это здорово, но раньше приходилось
Кроме того, VMware увеличила количество под- всякий раз компилировать программу, а затем
держиваемых систем – например, Windows- посылать ее на ВМ. В Workstation 6 появился Вердикт
версия теперь работает под Vista. Ряды под- модуль Eclipse, с помощью которого код инс-
держиваемых Linux-дистрибутивов пополнили таллируется на ВМ прямо из среды разработ- VMware Workstation 6 beta
OpenSUSE 10.2, Mandriva 2007 и Ubuntu 6.10. ки. Эту функцию можно сделать доступной по Разработчик: VMware Inc
Этот список имеет значение лишь для получе- умолчанию во время установки. Сайт: www.vmware.com
ния поддержки от VMware, так как Workstation О производительности судить рано, так как Цена: Требует уточнения (VMware
работает на большинстве дистрибутивов – мы мы рассматривали бета-версию с включенной Workstation 5.5 стоит от $189).
пользуемся ей на Gentoo (который не поддер- отладочной информацией, а это ощутимо сни- Функциональность 9/10
живается) начиная с 3-й версии. жает скорость; но она была сравнима с 5.5, а Производительность 7/10
Более существенно включение 64-битной VMware утверждает, что производительность Простота использования 8/10
версии. Прежние были исключительно 32-бит- по сравнению с прежней версией не измени- Цена 7/10
ными и очень ломкими на 64-битных хостах. лась. Гостевые ОС, как правило, работают со Крутые обновления. Заслуживает
Имейте в виду, что хотя работа 32-битной гос- скоростью в пределах нескольких процентов серьезного внимания – ведь вам нужна
тевой системы на 64-битном хосте возможна, от «родной», хотя скорость дискового досту- мощь?
для запуска «64 на 64» необходим как мини- па существенно снижается при использова-
мум Athlon 64 типа D. Лучше сперва убедиться
в том, что Workstation 6 работает на вашем
нии в качестве виртуального жесткого диска
файла-образа.
Рейтинг 8/10
12 Linux Format Март 2007
GUI-инструментарий Обзоры
wxWidgets 2.8
Темная лошадка среди GUI-инструментариев, теперь еще и с визуальным конструктором
на DVD
Ч
ас языка программирования Ruby про-
Вкратце… бил лишь с появлением среды разра-
ботки Rails. В случае с wxWidgets все
Межплатформен- наоборот: эта библиотека обрела популярность
ный GUI-инстумен- лишь после создания wxPython. Пока KDE/Qt и
тарий на C++, с Gnome/GTK пожинали лавры, wxWidgets поти-
привязками к хоньку росли над собой, внедряя улучшение
Python and Perl.
См. также: Qt и, за улучшением.
конечно, GTK. Как и Qt, wxWidgets – межплатформенный
инструментарий для создания графических
пользовательских интерфейсов, написанный
на C++. Опять же, как и Qt, wxWidgets имеет
массу дополнительных функций вроде под-
держки потоков, доступа к базам данных и т.п.
Но, в отличие от Qt, ядро wxWidgets – оно отве-
чает за рендеринг всего GUI – целиком пола-
гается на ОС, воспроизводящую интерфейс,
а значит, приложения wxWidgets будут почти
неотличимы от «родных» [Qt и GTK+ эмулиру-
ют внешний вид и поведение интерфейсных
элементов целевой платформы, делая это
более или менее удачно, – прим. ред.]. Еще
важнее то, что у wxWidgets более либеральная В wxAUI передвигаемый фрейм становится полупрозрачным, предварительно указывая
лицензия, чем у Qt – модифицированная LGPL, место предстоящего размещения.
позволяющая создавать с помощью инстру-
ментария приложения с закрытым исходным созданную wxIFM, wxDockIt и wxFrameLayout, нальности при минимальных усилиях про-
кодом, тогда как версия GPL для Qt требует пытающимися сделать одно и то же. Цель граммиста. Пользуетесь ли вы оригинальным
непременного раскрытия кодов. wxAUI – предоставить полную поддержку вариантом C++ или привязкой к одному из
передвижения и размещения фреймов и пане- других языков высокого уровня – вы согла-
ASPLinux 11.2
Готов ли отечественный Linux к развертыванию на отечественных ПК? Роберт Басыров пытается
взглянуть на последнюю версию ASPLinux глазами простого пользователя.
«В
се начиналось с черной кошки».
Вкратце… Красивая фраза, но суть отража-
ет не полностью. Конечно, дис-
Отечественный трибутив Black Cat Linux послужил основой
настольный
для создания линейки ASPLinux, но нельзя
дистрибутив на
базе Fedora Core. говорить, что этот популярный в России дис-
См. также: ALT трибутив начался с приходом в компанию
Linux и ASPLinux Леонида Кантера и Александра
непосредственно Каневского. До этого объединения был выпу-
Fedora.
щен ASPLinux Release Candidate 3, разра-
батывался собственный менеджер загрузки
ASPLoader. Тем не менее, первые массовые
дистрибутивы ASPLinux «подхватили» нуме-
рацию версий Black Cat Linux, а это говорит
о значении упомянутых программистов в сов-
местном продукте.
Начиналось все
относительно недавно
На тот период, когда возникла идея создания
ASPLinux (а это 2000 год), самым качествен-
ным с точки зрения сборки пакетов и удоб-
ства в работе считался Red Hat 6.2. Однако,
его инсталлятор требовал от пользователя Вездесущий Clearlook добрался и до ASPLinux.
определенных знаний и опыта. Примерно в
то же время вышел дистрибутив Corel Linux, техническая поддержка. При этом основным ит по-другому. Постоянное сотрудничество
который был основан на ограниченном набо- параметром оценки своих продуктов компания инженеров ASPLinux с ведущими производи-
ре пакетов Debian (только рабочая станция), считает стабильность. Все новомодные «наво- телями компьютеров позволяет новой версии
но имел очень красивый и простой в исполь- роты» хороши, но если из-за них потеряется дистрибутива определять и корректно настра-
зовании установщик, доступный даже для хотя бы часть пользовательских данных, вряд ивать при инсталляции самое популярное на
начинающих пользователей. Поэтому внутри ли это кого-то обрадует. сегодняшний день оборудование: контролле-
компании SWSoft («прародителя» ASPLinux) О популярности дистрибутива можно час- ры SATA, видеокарты ATI и NVIDIA (причем с
возникла идея создания дистрибутива, кото- тично судить по форуму сообщества ASPLinux, фирменными драйверами), звуковые карты.
рый сочетал бы в себе функциональность и в котором с нетерпением обсуждались сро- Нельзя сказать, что у пользователей дис-
качество сборки Red Hat с простотой и удоб- ки выхода новой версии – 11.2. Что касает- трибутивов ASPLinux 11.2 не бывает проблем
ством Corel Linux. Исходные тексты установ- ся сравнений с другими дистрибутивами, то по аппаратной части. Были они и у нас, но все
щика Corel были доступны по лицензии GPL, сложно сказать, какая из разработок лидирует это не выходило за рамки типовых проблем
поэтому он был частично использован при в России, так как не существует общеприня- Linux. Что поделаешь, если Canon не пишет
создании инсталлятора ASPLinux. Сначала той и открытой статистики. (Да и возможна драйвера для своих принтеров под Linux?
выпускались только универсальные дистри- ли она для свободного ПО, где с одного диска
бутивы (которые можно было использовать можно установить систему на десятки и сотни Кросс-платформенные
и на рабочем столе, и на сервере) но, начи- компьютеров?) Единственное, что можно ска- приложения
ная с версии 7.3, в ASPLinux была выделена зать точно – то, что ASPLinux явно лидирует Несмотря на заметное противостояние закры-
серверная ветвь, так и названная – ASPLinux по коробочным продажам через сеть компа- того и открытого ПО, все большее развитие
Server. нии 1С. получают кроссплатформенные приложения.
Этой же линии (углубление различий меж- Для обеспечения работы таких приложений в
ду настольной и серверной версиями) компа- Обнаружено новое новом дистрибутиве предусмотрена интегра-
ния придерживается сейчас и намерена при- устройство? ция с Mono, открытой реализацией Microsoft
держиваться в будущем. В настольных верси- Поддержка нового оборудования – одна из .NET. В состав ASPLinux 11.2 входит несколь-
ях будет осуществляться поддержка самого постоянных проблем для разработчиков ко приложений, написанных с использовани-
современного оборудования и использоваться любых дистрибутивов. Если драйвера для ем Mono:
последние версии рабочих сред, а в серверную Windows создатели видео- и звуковых карт и персональная поисковая система Beagle;
будут включаться стабильные и проверенные прочего компьютерного «железа» разрабаты- фотоальбом F-Spot;
компоненты, обеспечиваться расширенная вают сами, то в Linux, как известно, все обсто- менеджер заметок Tomboy.
Персональная поисковая система Beagle етарные драйвера входят в состав дистри- IP-телефония и
интегрирована в графическую среду Gnome и бутива, так что у вас не должно возникнуть видеоконференции
позволяет найти введенную фразу в докумен- проблем, если конечно, ваше оборудование Голосовое общение через Интернет приобре-
тах OpenOffice.org, сообщениях электронной достаточно современное. тает все большую популярность. Приложение
почты (базы Evolution), диалогах IM-клиента Появление трехмерного рабочего сто- Ekiga, входящее в ASPLinux 11.2 и ранее
Gaim, кэше браузера Firefox. ла – не единственное обновление дизайна известное как GnomeMeeting, теперь поддер-
ASPLinux, как и его родитель, Fedora Core, в ASPLinux 11.2. Основной темой оформле- живает не только протокол H.323 (Microsoft
тяготеет к Gnome. Любителям KDE приходится ния теперь является Clearlook. В сочетании NetMeeting и другие приложения на платфор-
устанавливать свои «красивости» вручную. У с «новым лицом» экрана входа в систему и ме Windows), но и SIP, который использует-
нас не получилось с ходу инсталлировать эту новыми обоями рабочего стола интерфейс ся в Google Talk и программной АТС Asterisk.
рабочую среду даже с использованием штат- стал более приятным для глаз. Ekiga также может поддерживать сервис
ных средств: менеджер пакетов не нашел биб- Но и трехмерность рабочего стола, и сме- STUN, решающий проблемы с NAT-маршрути-
лиотеку libpostproc. Пришлось искать, скачи- на основной темы – это внешние, видимые заторами. Если говорить простым языком, то
вать и ставить пакет вручную. Дело хозяйское, изменения. Для пользователя гораздо важнее с помощью Ekiga можно звонить и принимать
но с таким подходом о массовости использо- будет другое – повышение производительнос- звонки, не имея публичного IP-адреса и не
вания ASPLinux говорить не приходится. ти. Несколько важных составляющих рабочего настраивая переадресацию портов на шлюзе.
Есть еще один не совсем понятный момент окружения GNOME, как то: отрисовка текста,
в работе с пакетами – штатная утилита Yum не выделение памяти, некоторые отдельные при- И напоследок
позволяет автоматически использовать уста- ложения, теперь работают значительно быст- Есть еще несколько мелких улучшений, кото-
новочный DVD для поиска и инсталляции рее. В результате уменьшается время загрузки рые, возможно, и не так значительны, но
пакетов. Выбор профиля Local не обеспечи- рабочей среды, программы в целом быстрее интересны. В Evolution была реализована под-
вает обращения к диску, для этого необходи- реагируют на ваши действия, а это значитель- держка общих календарей с помощью прото-
мо редактировать конфигурационные файлы но повышает комфортность работы. кола CalDAV. Этот протокол поддерживается
вручную. различными серверами совместной работы,
Однако надо заметить один положитель- Для владельцев ноутбуков включая свободно доступный сервер Hula.
ный момент. Yum Extender, при использовании В ASPLinux 11.2 была добавлена пара опций, Кроме этого, ASPLinux 11.2 может создавать и
его с терминала, поддерживает докачку. После которые облегчат жизнь владельцам ноут- использовать логические тома LVM. Установка
обрыва связи Yum сам подхватывает загрузку буков. Прежде всего, это NetworkManager, операционной системы на массив логических
недогруженных файлов. Для «счастливых» который избавляет пользователей от необ- томов LVM позволяет гибко управлять дис-
обладателей модемов это бесценное свойство. ходимости вручную переключаться на новую ковым пространством и при необходимости
Жаль, что при использовании графического сеть при перемещении из одного помещения в расширять объем дискового пространства «на
интерфейса такого не происходит. другое. NetworkManager может автоматически лету».
переключится с проводной сети на беспровод-
3D desktop ную и обратно. Резюме
В наше время невозможно обойти в обзоре Функция управления питанием для ноут- ASPLinux – удобный и надежный дистрибутив.
дистрибутива тему трехмерного рабочего сто- буков – одна из самых важных. Новый пакет Те, кто уже работал с ним, вряд ли сменят свой
ла, точно так же, как трудно представить себе gnome-power-manager позволяет настраи- ASP на что-то другое. Для новичка этот дис-
современный дистрибутив без этой функции. вать реакцию операционной системы на такие трибутив станет точно таким же полигоном,
В ASPLinux 11.2 включен Xgl от компании события, как критический разряд батареи, как и любой другой. Но надо отметить один
Novell, как самая стабильная, по мнению раз- закрытие крышки и другие. Пользователь момент: ASPLinux – отечественная разработ-
работчиков, реализация [Fedora Core исполь- может настроить для каждого из этих событий ка. Он глубже других дистрибутивов русифи-
зует AIGLX, разработанный Red Hat, – прим. свое действие: переход как в спящий режим цирован и документирован, а это далеко не
ред.]. Необходимые для работы Xgl пропри- (suspend), так и ждущий (hibernate). малый плюс для тех, кто только вступает в
мир Linux. LXF
Вердикт
ASPLinux 11.2
Разработчик: ASPLinux
Сайт: www.asplinux.ru
Цена: 775 р. (версия Standard)
Функциональность 8/10
Производительность 8/10
Простота использования 7/10
Документация 8/10
П
ользователи Linux вряд ли могут
Вкратце… жаловаться на недостаток почтовых
серверов. Для идейных противников
Коммерческий старого доброго Sendmail есть Postfix, qmail
почтовый сервер
для Linux
и множество других альтернатив; обеспечение
с функцией web- доступа к почтовому ящику можно поручить
доступа. как крохам вроде popa3d, так и тяжеловесам:
См. также: Axigen. Cyrus и прочим. Для желающих иметь доступ
к письмам даже из интернет-кафе, затерянно-
го где-то в предгорьях Анд, есть SquirrelMail.
Богатый ассортимент – это прекрасно, но есть
и обратная сторона медали – администратору,
отвечающему за почтовый шлюз, необходи-
мо изучить (а в дальнейшем – поддерживать)
несколько различных продуктов, каждый из
которых обладает собственными правилами
(и тонкостями) настройки.
Решения вроде Kerio Mail Server (KMS) стре-
мятся устранить этот недостаток. Пришедшие
из мира Windows, они являются комбайном
типа «все в одном» и стремятся предоста- Круговые диаграммы порадуют «пиджаков», но ничего не скажут «технарям».
вить понятный и единообразный графичес-
кий интерфейс, упрощающий сопровождение.
Мы решили оценить плюсы и минусы этого что вам следует позаботиться об этом заранее. на этапе первичной настройки. После этого
подхода, установив Kerio Mail Server 6.3.1 на На следующем шаге создается учетная запись откроется окно, представляющее все возмож-
систему под управлением CentOS 4.4, двоично администратора почтового сервера, затем – ности сервера в виде древовидного списка.
совместимую с RHEL. указывается каталог для хранения почтовых Итак, что же предлагает нам Kerio?
сообщений, и – вуаля! Ваш сервер практичес- Во-первых, стандартный набор служб:
Первое знакомство ки готов к работе – осталось только запустить SMTP, POP3, IMAP, LDAP, HTTP со все-
Продукт распространяется в виде RPM-пакета его командой /etc/init.d/keriomailserver start. В ми безопасными разновидностями.
и поддерживает практически все распростра- целом, процесс первичной настройки серве- «Самоподписанный» (self-signed) сертификат
ненные серверные системы (можно отметить ра в Linux повторяет таковой в Windows, что можно сгенерировать при помощи мастера.
разве что отсутствие модного нынче Ubuntu весьма порадует мигрантов с этой ОС. Во-вторых, виртуальные домены (способ по-
6.06 LTS): Red Hat Enterprise Linux 3/4, Fedora разному трактовать учетные записи в зависи-
Core 4/5, SUSE Linux 10.0/10.1. Огорчает толь- Гюльчатай, открой личико! мости от того, к какому домену они принад-
ко отсутствие документации – в дистрибутиве Управление работающим сервером осущест- лежат) с поддержкой служб каталогов Active
ее нет совсем, а информация на сайте посвя- вляется посредством графической консоли, Directory, Apple Open Directory и авторизацией
щена, в первую очередь, версии для Windows запускаемой командой kerioadmin. Если раз- через PAM/Kerberos, так что в этой облас-
(впрочем, принципиальных отличий не так уж работчики Kerio Mail Server задавались целью ти Kerio Mail Server вряд ли уступает своим
и много). После установки пакета вам будет выдержать ее в духе традиционного для Unix закрытым конкурентам. Более того, KMS поз-
предложено прочитать краткую справку, оста- графического инструментария (Motif, конеч- воляет настроить разные методы авториза-
новить сервисы Sendmail/Postfix и запустить но... А вы что подумали?), то им это впол- ции для различных доменов: например, один
утилиту cfgwizrd для первичной настройки не удалось. Несмотря на то, что kerioadmin домен авторизуется в одной службе каталогов,
сервера. Cfgwizard использует текстовый окон- использует Qt, элементы интерфейса выгля- другой домен авторизуется непосредственно
ный интерфейс, что слегка удивляет – от ком- дят архаичными и плохо согласуются с со- через PAM, и т.д. Помимо этого, предлагает-
мерческого продукта обычно ждешь приятных временным рабочим столом. Продукт под- ся контент-фильтр, включающий антивирус
графических мастеров. Тем не менее, со своей держивает 12 языков, включая русский, но (интегрированный – от McAfee или внешний –
задачей мастер cfgwizard справляется без про- опцию для их смены найти не так-то просто, AVG, NOD32, Sophos, Symantec и, конечно же,
блем. Вас попросят указать имя первичного особенно человеку, не владеющему англий- СlamAV. Выбор за вами, только имейте в виду,
почтового домена и его почтового хоста, кото- ским (впрочем, cреди администраторов их что в случае использования внешнего антиви-
рое, естественно, должно указывать на маши- становится все меньше и меньше). руса об обновлении баз придется заботить-
ну с запущенным Kerio Mail Server. Настройка Для входа в систему необходимо исполь- ся самостоятельно), контроль вложений (в
DNS-зон в обязанности мастера не входит, так зовать имя пользователя и пароль, указанные списке потенциально опасных расширений по
Клиенты BitTorrent
Во избежание узких мест при скачивании нового дистрибутива, Морис Келли интересуется
клиентами BitTorrent последнего урожая.
Н
равится оно вам или нет, но рас- дни в виде обновленной инкарнации, но «сидер» (seeder), и все последующие клиенты
Наш пространение файлов с помощью соседствует со множеством других клиентов. будут взаимодействовать с этим хостом для
выбор пиринговых (peer-to-peer) сетей ста- В этом Сравнении мы взглянем на «моло- получения частей «торрента». Когда первона-
Azureus с. 20 ло неотъемлемой частью современного ком- дую поросль» приложений, чтобы посмот- чальная раздача (seeding) завершится, ответ-
BitTornado с. 21 пьютерного мира. Со времен вспышки Napster реть, как они поживают не просто как клиен- ственность за распространение разделяется
BitTorrent с. 19 в 2000 г. число протоколов передачи файлов ты, но как полноценные менеджеры закачек среди тех, кто уже скачал части «торрента».
Deluge с. 19 росло как на дрожжах. Организации, подоб- BitTorrent. Благодаря таким свойствам BitTorrent был
KTorrent с. 21 ные RIAA (Американская ассоциация индустрии принят рядом Linux-дистрибутивов, желаю-
TorrentFlux с. 22 звукозаписи) и MPAA (Американская кинема- И как это работает? щих разгрузить свои FTP-серверы.
Transmission с. 22 тографическая ассоциация), делали все воз- Чтобы распространять чтыо-то через BitTorrent, За прошедшее с момента создания вре-
можное, чтобы остановить прогресс; в итоге, создается торрент-файл, содержащий инфор- мя данная технология не стояла на месте, и
выжили только сильнейшие протоколы. Один мацию о «трекере» и о файлах, включенных в наши дни предоставляются такие функции,
из них – BitTorrent, разработанный в 2001 г. в этот «торрент». Торрент-файл затем публи- как бестрекерные «торренты», позволяющие
Брэмом Коэном [Bram Cohen]: он оказался куется и загружается конечными пользовате- еще больше децентрализовать распростране-
особенно полезен для распространения боль- лями. Когда кто-нибудь открывает торрент- ние. Клиенты, которые используют распре-
ших файлов. файл в клиенте, то устанавливает соединение деленную хэш-таблицу (DHT, distributed hash
Первоначальный «основной» клиент с трекером, то есть приложением, которое table), способны взаимодействовать непо-
BitTorrent, ориентированный на командную предоставляет файл наряду с информацией средственно друг с другом для получения
строку, был написан на Python и делал свою о других клиентах, у которых можно получить информации о файле, а не полагаться на еди-
работу очень хорошо. Он доступен и в наши содержимое «торрента». Первый клиент – это ную точку отказа.
BitTorrent
«Официальный» не значит «лучший»…
Д
овольно велики шансы, что устанав- флаг «Download First» тем, которые вы хотите
ливая BitTorrent-пакет(ы) из вашего получить раньше других. Если нижняя панель
дистрибутива, вы получите офици- открыта, в ней отображается аккуратная ста-
альный клиент BitTorrent – также известный тистика и график скорости для всего прило-
как «основной» (mainline) клиент. Это про- жения, а отдельные «торренты» имеют подоб-
дукт развития первоначального клиентского ный график в собственных данных.
ПО, написанного Брэмом Коэном; на дан- Конкурентное преимущество официально-
ном этапе – версия 5.0.3. Выдержанный в го клиента – в том, что его разработали изоб-
духе философии Unix, пакет содержит ряд ретатели протокола, и он должен бы быть луч-
отдельных инструментов: прежде всего это шим и наиболее эффективным загрузчиком.
BitTorrent для закачки и Maketorrent для созда- Но мы не выявили этого в данном Сравнении.
ния торрент-файлов. Прямо не верится, что разработчики основного Панель поиска отправляет вас на сайт BitTorrent, но хорошо ли это –
вопрос спорный.
Есть консольные средства и для загрузок, клиента упустили случай сделать его «универ-
и для создания торрент-файлов; выделенные самом» BitTorrent. ПО явно относится к «серед-
инструменты Launchmany позволяют консоль- някам», web-сайт и поисковая машина – тоже.
ным инструментам оперировать множеством Он может быть полезен для изолированных
Вердикт
«торрентов» за раз. Включено также трекер- загрузок, но для людей, желающих получить
BitTorrent
ное ПО. полноценный менеджер закачек, эта програм-
Версия: 5.0.3
Графический интерфейс модернизиро- ма не подходит.
Сайт: www.bittorrent.com
ван и оперирует множеством «торрентов» в
одном окне, а также поддерживает панель Цена: бесплатно по лицензии BitTorrent
Open Source License
поиска, предоставляющую доступ к поиско-
вой машине на сайте www.bittorrent.com – увы,
«Сделан изобретателями Довольно средний клиент, который
растратил потенциал, заложенный в роли
его содержимое не впечатляет, да и маши-
на слабовата. «Торрентам» можно назначать
протокола, и поэтому официального клиента.
Deluge
Новичок в классе.
Н
амерение Deluge [Потоп] – принес- ную фунциональность. Среди расширений –
ти клиент BitTorrent на основе GTK монитор загрузки процессора, отслеживание
на рабочие столы, например, Gnome сетевой активности и, для борьбы с силами
и Xfce. У него обычные проблемы молодо- зла, расширение Anti-RIAA AI. Разработчикам,
го проекта: недостаток функций и недоста- однако, следует помнить, что на расширения
ток документации. Да и для освоения это нельзя переваливать основную функциональ-
не самый простой клиент. Мы тестировали ность: мы заметили, что один из ключевых
При семичасовом ожидании, график использования ширины канала
версию 0.4; должны отметить, что в гряду- разработчиков намекает на форуме Deluge,
слегка скрашивает жизнь.
щей 0.5 обещают переписать ряд основных что поддержка UPnP – неплохой кандидат в
компонентов. расширения. А вот мы предпочли бы видеть
Основное окно предоставляет панель ин- ее в основном пакете.
струментов, поле, содержащее список актив- Даже подпертый расширениями, Deluge
ных «торрентов», и еще одно поле, с допол- выглядит скудным. Это довольно милый кли-
нительной информацией по выделенному в ент – он хорошо смотрится и хорошо интег-
данный момент «торренту». Deluge не позво- рируется в окружение рабочего стола. Но от Вердикт
ляет устанавливать ограничения на скорость клиента, основанного на сторонней библи-
загрузки на каждый «торрент», но есть три отеке для поддержки протокола, мы ожида- Deluge
кнопки на панели инструментов для переме- ли лучшей функциональности по управлению Версия: 0.4
Сайт: www.deluge-torrent.org
щения «торрента» выше, ниже и на самое дно «торрентами». К сожалению, ему недостает
Цена: бесплатно по лицензии GPL
в системе базовых приоритетов. Для загрузки первоклассных функций, к тому же нет доку-
Проект не без потенциала, но пока еще
можно отметить определенные файлы, но ментации. Он удобен для разовых закачек, но
слишком юн, чтобы тягаться с большими
назначение приоритетов отдельным файлам отсутствие поддержки UPnP и слабая поддер- парнями.
не предусмотрено. жка приоритетов означают, что этот клиент не
Deluge – очередной клиент с системой пригоден для продвинутых пользователей.
расширений, предоставляющих дополнитель-
Рейтинг 5/10
Март 2007 Linux Format 19
Сравнение Клиенты BitTorrent
Azureus
Нашпигованный функциями клиент на базе Java.
В
первые появившись на SourceForge в ки или продолжения их раздачи с помощью
июне 2003 г., проект Azureus недав- Azureus. Аналогично другим клиентам, это
но достиг «главной» версии 2.5.0.0. приложение при следующем запуске возоб-
Благодаря языку Java, Azureus – подлинно новляет работу со всеми предыдущими «тор-
кросс-платформенное приложение, но, к рентами», а кроме того, предлагает собствен-
сожалению, для запуска нуждается в установ- ную функцию «Fast Resume». Хотя нормаль-
ке виртуальной машины Java (JVM, см. врезку ное возобновление работает только с завер-
«Клиенты на базе Java»). шенными фрагментами «торрента», Azureus
При запуске приложения нас встретил способен сохранять частично загруженные
«мастер»: он провел нас через некоторые фрагменты до следующего запуска, когда он
основные настройки и предоставил ряд ссы- перезапустится с середины фрагмента.
лок на сайты, полезные для начинающих в Поддержка закачек – дело важное, но
BitTorrent – вроде мелочь, но дружелюбное не менее важно изобилие дополнительных
отношение к пользователю – козырь приложе- функций. Создать новый торрент-файл пора-
ния. По завершении открылось основное окно, зительно легко: просто выберите файл или
состоящее из панели инструментов, пане- каталог для публикации и присвойте трекеру
ли загружаемых «торрентов» и панели для имя. Другая приятная функция – способность
составленных или раздаваемых «торрентов». страницами, дающими общую информацию и BitTorrent жадноват размещать трекер прямо в Azureus, что иде-
сведения о подключенных «коллегах» (peer) в до ресурсов, но его ально для распространения частных «торрен-
Как это выглядит виде красивого графического представления просто нельзя не тов» среди небольшой группы людей, не нуж-
По щелчку на кнопке «Open Torrent» откроет- их роя [swarm – набор компьютеров, участву- попробовать! дающихся в публичном трекере. Как и многие
ся подробный диалог, позволяющий добавить ющих в обмене данными, – прим. пер.], и под- другие клиенты, Azureus поддерживает децен-
торрент-файлы из списка источников, вклю- гружаются данные по отдельным фрагмен- трализованный BitTorrent с помощью разно-
чая файлы и URL. После выбора «торрен- там и файлам, составляющим ваш «торрент». видности DHT (распределенных хэш-таблицы),
та» отобразится список содержащихся в нем Возможно, при скачивании всего-навсего ISO- однако его тип DHT отличается от основно-
файлов, и вы сможете отметить для закачки образа дистрибутива Linux оно и лишнее, зато го клиента BitTorrent и годится только для
только некоторые из них. После добавления очень удобно при загрузке большой коллек- пользователей Azureus. Правда, таких поль-
и настройки «торрента» Azureus установит ции файлов. зователей полно, но трудно игнорировать тот
соединение и начнет закачку. Если ваш марш- На вкладке «Info» можно увидеть состоя- факт, что обособленный подход к DHT делает
рутизатор поддерживает UPnP (universal plug ние загрузки отдельных файлов или привес- Azureus чуть менее привлекательным.
and play), Azureus любезно настроит его, что- ти в порядок их приоритеты, чтобы самый Наконец, какое приложение в наши дни
бы позволить вам принимать входящие соеди- интересный трек приплыл первым. Эта стра- считается завершенным без способности к
нения. В процессе загрузки проницательно- ница показалась нам единственным местом, расширениям? Если расширять любимые при-
му пользователю предоставляется изобилие где можно восстановить файл, первоначально ложения – ваш конек, то Azureus сослужит
информации, доступной по двойному щелчку отмеченный как игнорируемый в «торренте». вам хорошую службу. Несколько расшире-
на строке «торрента» в панели загрузки. Конечно, это несложно сделать и таким обра- ний поставляются в стандартной инсталляции,
При этом появляется новая вкладка с под- зом, но группа «флажков» была бы, вероятно, но беглый просмотр страницы http://azureus.
проще и более интуитивна. Вкладка «Options» sourceforge.net/plugin_list.php обнаруживает
дает быстрый доступ к параметрам настрой- массу дополнительных, от внешнего вида до
Клиенты на ки, например, скорости выгрузки/скачивания методов удаленного доступа. Из наиболее
и ограничению соединений. Они мгновенно ярких – отправка сообщений о статусе по
базе Java вступают в силу, и кроме того, доступны в электронной почте и SMS; личности вроде нас
контекстном меню (по нажатию правой клави- хотят сразу же узнавать, что закачка дистри-
Поскольку приложения Java обычно компи- ши мыши) на главной панели «торрентов». бутива завершена, без лихорадочной ежеми-
лируются в байт-код, требуется, чтобы до нутной проверки статуса!
запуска приложения была развернута вир-
туальная машина. Она предоставляет неза-
Умные функции
Azureus интуитивно понятен в работе – в зави-
висимость от платформы, но ценой общей
симости от выбранного уровня использования
производительности. Вы можете выбрать
одну из нескольких виртуальных машин на грамотно подобрано число доступных опций
Вердикт
выбор, включая Hot Spot от Sun и пару настройки, чтобы приложение не выходило за
Azureus
GNU-альтернатив. рамки заданной сложности. Частично загру-
Версия: 2.5.0.0
К сожалению, нам не удалось запустить женные «торренты» из других клиентов легко Сайт: http://azureus.sourceforge.net
Azureus под GNU-интерпретатором Java импортируются для возобновления загруз- Цена: бесплатно по лицензий GPL
(GIJ). Для компиляции Azureus в родной
байт-код при помощи GNU-компилятора Здесь достаточно функций и опций, чтобы
Java (GCJ) было сделано многое, но на дан- «Поддержка закачек – удовлетворить любого, а с расширениями его
возможности действительно безграничны.
ном этапе советуем для верности устано-
вить последнюю JRE от Sun. это важно, но не менее Рейтинг 9/10
важны другие функции.»
20 Linux Format Март 2007
Клиенты BitTorrent Сравнение
BitTornado
Расширенная версия основного клиента.
П
ользователи более старых офици- бросу портов, но людям этот фокус удавался.
альных клиентов BitTorrent мгно- Одно из основных ограничений – невозмож-
венно разберутся, как работает ность управлять множеством «торрентов» в
BitTornado – это, по сути дела, параллельная одном графическом окне. Другие клиенты
ветвь первоначального клиента; на самом уже управляют множественными соединени-
деле, дистрибутивы на основе Debian, как ями, а в BitTornado приходится делать все
правило, ставят два набора ПО параллельно вручную, путаясь в толпе открытых на экране
и проецируют один набор для использования окон. Можно использовать один из консоль-
под общими именами программ. Как можно ных инструментов, разработанных для множе-
ожидать, BitTornado поставляется с набором ственных загрузок, но они довольно топорны BitTornado дает полезную информацию и множество опций, но пока
отдельных программ, которые решают задачи и не интерактивны. не развит как клиент.
типа скачивания конкретного «торрента» при Неплохо, что BitTornado требует мало
помощи графического интерфейса, консоли памяти и прост в работе, но этого мало, чтобы
или curses, а также запуска множественных оправдать его использование. Заслуженное
загрузок одной командной строкой. Есть еще признание он получает как основа для других
инструменты для создания торрент-файлов и BitTorrent-менеджеров, типа TorrentFlux, или
Вердикт
манипулирования ими, а заодно и трекером. как компонент пользовательских скриптов.
BitTornado
Впервые появившись, BitTornado заявил
Версия: 0.3.17
ряд улучшений по сравнению с официаль- Сайт: www.bittornado.com
ным клиентом, хотя справедливо будет отме- Цена: бесплатно по лицензии MIT
тить, что разработка официального клиента Полезный инструмент как основа для
с тех пор все наверстала. Среди разрекла-
мированных функций – поддержка UPnP и
«Пока невозможно управлять другого ПО, но не внушающий уважения
при непосредственном использовании.
назначение приоритетов отдельным файлам. множеством «торрентов» из Рейтинг 4/10
К сожалению, мы не сумели добиться работы
UPnP, и пришлось прибегнуть к ручному про- одного графического окна.»
KTorrent
Собственный торрент-клиент KDE.
В
озможно, вы не согласитесь с нами, но фильтрацию. Приятно, что они существуют, но
мы нашли, что приложения, ориенти- в наши дни данные функции почти обязатель-
рованные на KDE или Gnome, имеют ны для подобного приложения, и не должны
тенденцию быть бледными копиями авто- бы выступать как опциональное дополнение.
номных версий. К счастью, KTorrent, похоже, Подключены расширения или нет, но в
имеет большинство свойств, предлагаемых некоторых областях KTorrent явно слаб. Мы
лучшими клиентами, и поддерживает боль- не сумели найти способа точной настрой-
шую часть требуемых функций, хотя и не без ки приоритета определенного «торрента» по
посторонней помощи. сравнению с другими – здесь есть менеджер
Работает это приложение вполне предска- очередей, но зачем он, не ясно, поскольку Функции, необходимые любому BitTorrent-клиенту, упрятаны в
зуемо – списки скачиваемых и раздаваемых документации к нему не имеется. И хотя мож- Раздел настройки расширений.
«торрентов» появляются вверху, а пара вкла- но назначать приоритеты отдельным файлам,
док расположена внизу экрана. Вкладки выво- нету указаний, применимы ли они к множест-
дят данные о выбранном торренте, в списке венным «торрентам». В принципе, приложе- Вердикт
файлов помечаются выбранные для загруз- ние стоящее, и его включили в состав рабо-
ки. К сожалению, без расширения infowidget чего стола KDE не зря. Мы использовали по- KTorrent
доступна весьма скудная информация. следний стабильный релиз; возможно, версия Версия: 2.0.3
Сайт: http://ktorrent.org
И это ключевой момент касательно 2.1 включит больше функций.
Цена: бесплатно по лицензии GPL
KTorrent: будучи просто установлен в конфи-
Полезный и стабильный клиент, но
гурации по умолчанию, он функционально
побольше бы стандартных функций.
бедноват и требует активации ряда расшире-
ний через меню настройки. Со стандартной «Вынутый из коробки
инсталляцией идут расширения, предостав-
ляющие импорт торрент-файлов, UPnP и IP- KTorrent бедноват.»
Рейтинг 6/10
Март 2007 Linux Format 21
Сравнение Клиенты BitTorrent
TorrentFlux
Многопользовательский торрент-менеджер на базе
web-технологий.
Н
е каждый любитель скачивать «тор- создается пользователь-администратор, име-
ренты» заставляет полноценный гра- ющий право создавать последующих пользо-
фический клиент работать кругло- вателей. Каждый пользователь может затем
суточно. Позвольте представить TorrentFlux, добавлять свои собственные «торренты» для
обещающий web-интерфейс для закачек на загрузки и, как только «торрент» скачан, заби-
машине без постоянного контроля: он идеа- рать его из своей области. Это позволяет адми-
лен для домашних серверов, подключенных к нистратору отслеживать такие аспекты, как
широкополосному каналу, или для освоения занятость канала, и ограничивать число «тор-
лимита трафика на учетной записи хостинга. рентов» с помощью менеджера очереди, чтобы
Мы мигом привели это приложение в рабо- пользователи не заграбастали себе его весь. Для упрощения скачивания нескольких файлов за один раз,
чее состояние из архива, но помните о зависи- TorrentFlux – отличный маленький кли- TorrentFlux пакует их в архив – удобно!
мостях: понадобится Apache/PHP, MySQL и ент, хотя в некоторых отношениях пока несо-
как минимум Python 2.2, поскольку за сценой вершенен. Например, можно создавать «тор-
TorrentFlux скрывается BitTornado. BitTornado рент» только из файлов, уже расположенных
поддерживает UPnP, и нас малость удивило, в области закачки, так что создание новых
Вердикт
что в TorrentFlux это, похоже, не работает: «торрентов», безусловно, несколько затрудне- TorrentFlux
пришлось открывать порты на маршрутиза- но. Web-интерфейс имеет свои причуды – все Версия: 2.3 final
торе вручную. К сожалению, здесь выплыла выполняется не столь мгновенно, как в нор- Сайт: www.torrentflux.com
еще одна проблема: отсутствие документации. мальном клиенте. Цена: бесплатно по лицензии GPL
Опытные пользователи BitTorrent-клиентов Когда требуется удаленный доступ, это
разберутся с системой довольно быстро, но
новичкам, пожалуй, лучше сперва поупраж-
«Администратор верное дело.
Transmission
Легковесный клиент для запуска ваших закачек.
T
ransmission – это кроссплатформенный одного «торрента» перед другим. Параметры
клиент, работающий на Mac OS X, BeOS настройки сводятся к ограничению скоростей
и Linux с помощью инструментария GTK. выгрузки и скачивания и указанию прослуши-
Сами же разработчики называют его легковес- ваемого порта. Используя это приложение, вы
ным, и это ясно с первого запуска: вы получа- не сможете управлять вашими «торрентами»
ете всего лишь панель инструментов и список должным образом.
«торрентов». Transmission весьма похож на Еще хуже то, что ряд приватных треке-
графический интерфейс официального кли- ров не допускают его к использованию своих
ента BitTorrent, только без информации внизу сервисов из-за «злоупотребления протоко-
о выделенном в данный момент «торренте». лом». Мы не эксперты в тонкостях специ-
Минималистический интерфейс, вероятно, фикаций BitTorrent, но Transmission, видимо, Этот рисунок воплощает почти всю функциональность,
обусловлен наследием приложений Mac OS X играет не по правилам, а разработчики не которую предоставляет Transmission. В самом деле!
– следует признать, что экранные снимки Mac- спешат это починить. К сожалению, похо-
версии смотрятся неплохо. Тем не менее, есть же, что Transmission зажился на свете прос-
разница между минималистическим интер- то из-за недостатка конкурентов на Mac OS
Вердикт
фейсом и минимальной функциональнос- X, а GTK-версия – лишь побочный продукт.
Transmission
тью, и в интерфейсе Transmission все наружу. Единственно за свои заслуги, в Linux он быст-
Версия: 0.6.1
Кнопки на панели инструментов используются ро оказался бы на свалке. Сайт: http://transmission.m0k.org
для открытия торрент-файлов, управления Цена: бесплатно по лицензии MIT
существующими «торрентами» и настройки Минималистический интерфейс пошел
приложения. Уровень управления закачка-
ми, мягко говоря, невысок. «Торрент» можно
«Уровень управления бы мощному клиенту, но здесь просто
мало функций.
только остановить или удалить – нет никакого закачками, мягко
способа просмотреть детальную информацию
говоря, невысок.»
Рейтинг 4/10
о содержимом файлов или задать приоритет
Клиенты BitTorrent
Вердикт
Azureus 9/10
М
ы дали довольно строгие оцен- приходится платить эту цену ради лучшей из
ки вполне приличным BitTorrent- программ. Он содержит гору функций, друже-
клиентам. Мы уже видели клиент любен к пользователю, и его базовая функци-
BitTorrent, встроенный в web-браузер Opera, ональность, и без того впечатляющая, умно-
так что справедливости ради нужно отметить, жается через интерфейс расширений.
что сам по себе протокол становится обычным Удивительно сильную оппозицию для
делом, поэтому мы не рассматривали стек Azureus составил TorrentFlux. Со точки зрения
протокола как таковой, а разбирались с тем, «голых» функций до Azureus ему далеко, но
что доступно вокруг протокола с точки зрения если вам нужен торрент-менеджер, доступный
удобства управления. И более всего нас забо- удаленно и способный запускаться в неграфи-
тило, насколько хорошо клиенты позволяют ческом окружении, лучше, чем TorrentFlux, вы
управлять множественными «торрентами». не найдете. Тот факт, что он предлагает много-
Люди используют BitTorrent все чаще и чаще, пользовательскую функциональность, также
и не только для загрузки дистрибутивов Linux. произвел впечатление, и мы отметили появле- Azureus показывает одну и ту же страницу настройки для
Речь уже не идет о «чистой» скорости или луч- ние учебников в интернете, рассказывающих, пользователей с различным уровнем подготовки – обратите внимание
на простоту верхней панели. LXF
шей реализации протокола... в фокусе оказы- как приспособить «машину с TorrentFlux» в
вается способность жонглировать текущими качестве выделенного сервера закачек.
закачками и скоростями, с целью выжать все Когда у вас в лидерах два таких заме- А насчет официального клиента BitTorrent –
из своего соединения. чательных приложения, трудно говорить об ну, надо постараться, чтобы занять столь вид-
И поэтому Azureus победил. Никакой дру- остальных претендентах. KTorrent и Deluge ную позицию, создав себе имя и .com-адрес,
гой клиент не предлагает столько гибкости в имеют похожее происхождение и выглядят и затем все это слить, выпустив средненький
столь мощном пакете. Хотя многие считают, очень многообещающе, но оба страдают от продукт; но его авторы умудрились сделать
что Azureus жаден до ресурсов, временами одной и той же проблемы: недостатка функ- это. Лучше бы они совершенствовали прото-
ций и документации. Чтобы быть справедли- кол и свой портал, а функциональность своего
выми к разработчикам Deluge, отметим, что клиента оставили на экспертов.
Обратная связь это довольно молодой проект, но, наверно, им
стоит попридержать новые релизы, пока не
Приведет ли открытие кода JVM от Sun к будет добавлено чуть больше функций.
улучшению производительности Azureus?
Нагонит ли документация когда-нибудь раз-
работку приложений? Преуспеет ли BBC в «Люди используют BitTorrent все
распространении старых шоу через
BitTorrent? Напишите свое мнение на чаще, и не только для загрузки
letters@linuxformat.ru.
дистрибутивов Linux.»
Таблица функций
Ограничение Поддaержка Импорт Уведомле- Встроенный Возобновле- Предпросмотр Частичные Приоритеты Использование Использование Создание
Клиент скорости UPnP торрентов
DHT[1]
ния трекер ние файлов загрузки [2] памяти [3] процессора [3] торрентов
Azureus
TorrentFlux
KTorrent
BitTorrent
BitTornado
Deluge
Transmission
[1] «Собственный» – это собственная реализация DHT в Azureus. «Основной» – реализованный в официальном клиенте. [2] Варианты: назначение приоритетов файлам, «торрентам» и отсутствие приоритетов вообще.
[3] Может предоставляться дополнительным плагином..
В
естфорд, Массачусетс, конец 2006 г.
В
ы интересуетесь развитием Fedora? Небольшая группа влиятельных раз-
Если ваш ответ: «нет, у меня другой работчиков Fedora собирается, что-
дистрибутив, и разработки Red Hat бы обсудить будущее дистрибутива и планы
меня не волнуют», то вы лишаете себя удо- на следующий релиз. На первый взгляд –
вольствия: ведь Fedora – законодатель мод обычная встреча, чтобы обсудить, насколько
современных дистрибутивов Linux! продвинулся проект с октябрьского выхода
Позвольте привести несколько приме- Fedora Core 6. Но к концу встречи стало ясно,
ров. Помните времена, когда Red Hat ввела что это – отнюдь не ординарное рандеву, а
загрузчик Grub в Red Hat Linux 7.2? Лишь собрание, которому суждено иметь далеко
немногие дистрибутивы рискнули исполь- идущие последствия для всех пользовате-
зовать этот необкатанный альфа-релиз, лей Fedora.
но очень скоро большинство последовало Когда принятые решения обнародова-
M ir n Duffy
за Red Hat и отказалось от Lilo. Точно так ли, многие фанаты Fedora были потрясе-
же ext3 стала самой популярной файловой ны масштабом изменений, предстоящих
системой не потому, что была лучшей, а их любимому дистрибутиву. Разработчики Семерка будет даром Небес? ‘Fedora Borealis’ – лишь одна
потому, что Red Hat избрала ее единствен- хотят не просто сделать свой проект нова- из тем рабочего стола, созданных художниками Fedora.
ной поддерживаемой журнальной файло- торским и неординарным; они готовы по-
вой системой для своих продуктов. И таких учиться успеху у других популярных дистрибутивов, ная медлительность Yum (в особенности по сравнению с
историй множество. в особенности Ubuntu. В конце концов, Ubuntu стал apt-get от Debian) и отсутствие графического интерфей-
самым быстроразвивающимся настольным дистрибу- са пользователя. Пока непохоже, что Fedora 7 включит
Финансовый мускул тивом Linux и особенно преуспел в привлечении новых Synaptic-подобную утилиту, которая позволит пользова-
Лидирующая позиция Red Hat в иннова- пользователей – а Fedora по этой части отстает, несмот- телям легко добавлять в Yum сторонние репозитории, но
циях Linux не есть результат случайности. ря на то, что существует дольше. имеются четкие планы увеличить скорость инструмента
Как фирма, построившая успешный биз- Показатель серьезного отношения к конкуренции – управления пакетами на основе Python, отыскав и устра-
нес на Linux, она обладает и достаточной планируемое разветвление Fedora 7 на несколько дис- нив его «узкие места».
властью, и наличными, чтобы влиять на трибутивов целевого назначения (а-ля Ubuntu): Fedora В Fedora 7 также ожидаются увеличение скорости
разработку жизненно важных компонен- Desktop, Fedora Server и Fedora KDE. Вдобавок, нынеш- загрузки (с последующим анализом альтернатив для
тов Linux: именно она платит Алану Коксу нее различие между базовыми пакетами («core») и init), отлаженная поддержка «из коробки» всех под-
[Alan Cox] за работу над ядром Linux, она расширенными («extras») будет устранено, и всё ПО держиваемых беспроводных сетевых карт (включая
вкладывается в разработку glibc и GCC, шифрование) и шифрованные файло-
и она поддерживает LVM, Logical Volume
Manager. Поскольку все эти программы
«Фанаты Fedora были вые системы. Обещана также улучшенная
поддержка ноутбуков, особенно в сфере
выходят под лицензией GPL и использу-
ются в других дистрибутивах, идеи Red Hat
потрясены масштабом управления питанием; еще мы, должно
быть, увидим различные усовершенство-
затрагивают всех нас, независимо от того, изменений.» вания рабочего стола, например, пере-
каким дистрибутивом мы пользуемся. ключение между пользователями и новую
Ах, да, есть и еще одна причина сле- целиком сольётся в один огромный репозитарий, содер- версию RandR – расширения X.org, которое позволит
дить за развитием Fedora – это жутко инте- жащий более 3 600 RPM. Слияние потребует боль- динамически изменять размеры экрана и поворачивать
ресно. Многие дистрибутивы Linux выдви- шой работы, как сообщил в январе участникам спис- его, и прочие современные функции.
гают интересные идеи, но лишь у немногих ка рассылки разработчиков Fedora Билл Ноттингем Выход Fedora 7 намечен на 24 апреля 2007 г. [и уже
из них хватает финансовых ресурсов, что- [Bill Nottingham] из Red Hat. «Оставшиеся члены Core перенесен на 24 мая, – прим. ред.] Правда, учитывая
бы воплотить их в жизнь. Steering Committee поработают с Советом директоров масштаб изменений и исторически сложившуюся неспо-
ladislav.bodnar@futurenet.co.uk Fedora и FESCO (Extras Steering Committee), и выяснит, собность разработчиков Fedora соблюдать намеченные
как управляться с этим новый комбинированным репо- сроки выпуска, ждите задержки прибытия. Но похоже,
зиторием», написал он. что Fedora 7 оправдает ожидания.
Наиболее часто критикуемая область Fedora – это http://fedoraproject.org
инфраструктура управления пакетами: печально извест-
В S
ы по-прежнему в поиске идеаль- ystemRescueCd – одна из тех
ного дистрибутива для рабоче- жемчужин, без которых не обой-
го стола? Тогда не пропустите тись ни системному администра-
Pardus Linux 2007. Возможно, он и не тору, ни продвинутому пользователю.
принадлежит к фаворитам основных Невыразительное название («системный
ИТ-публикаций, и у него явно не хвата- спасатель») приводит на ум крутых хаке-
ет средств обвешать сайты Linux своей ров, набирающих в черном терминале
рекламой, но этот турецкий дистрибу- загадочные команды, но на самом деле
тив содержит достаточное количество SystemRescueCd – современная графи-
WindowMaker – быстрый, элегантный
инноваций и достаточно хорошо отшли- ческая утилита, пригодная для решения рабочий стол SystemRescueCd.
фован, чтобы стать одним из лучших Pardus интегрировал стартовое самых разных задач: от разбиения жест-
новых дистрибутивов Linux 2007 года. меню Kickoff от OpenSUSE. кого диска на разделы до исправления записи для файловой системы NTFS и
Проект начинался как ответвление ошибок файловой системы и полного антивирус ClamAV. Кроме того, на CD
Gentoo Linux, но вскоре разработчики ние, которое порадует многих пользо- клонирования жестких дисков. есть несколько текстовых редакторов и
отошли от родительского дистрибутива вателей Linux – центр настройки Tasma, Основной инструмент на CD – web-браузеров, а большинство низко-
и занялись разработкой собственных это утилита, пошедшая путём Yast от GParted, графическая утилита разби- уровневых дисковых утилит обновлены
решений. Одним из них было вклю- OpenSUSE или Mandriva Control Center ения на разделы, она поддерживает до последних версий. Помимо само-
чение в дистрибутив новой системы и предоставляющая легкий доступ ко большее количество файловых систем, го CD, проект, основанный в 2003г.
управления пакетами под названием многим опциям рабочего стола и моду- чем любой другой аналогичный инстру- Франсуа Дюпу [Francois Dupoux], под-
PiSi – решение на удивление хорошее, лям настройки KDE. мент из ныне существующих: диск мож- держивает сайт в стиле Wiki с превос-
предлагающее отличные инструмен- А ещё разработчики Pardus Linux но разбить на разделы аж с 13-ю раз- ходной документацией.
ты командной строки, полнофункцио- создали массу менее универсальных ными файловыми системами, а заодно SystemRescueCd отлично борется
нальный графический менеджер паке- утилит: например, Comar – менеджер поддерживается перемещение разделов с такой малоприятной проблемой, как
тов, утилиты уведомления об обнов- настройки, или Mudur – замена init. Но и изменение их размеров – и все это восстановление файлов, а эта про-
лениях и солидную инфраструктуру самое сильное впечатление, конечно, совмещено с удобством интуитивного блема периодически лягает больши-
для получения и обновления дополни- производят отличный менеджер паке- графического интерфейса. нство пользователей. Держите его под
тельных пакетов ПО из репозитариев с тов и быстрый и симпатичный рабо- Последний релиз SystemRescueCd рукой, чтобы встретить неприятность
хорошей поддержкой. чий стол. содержит немало новых полезных во всеоружии.
Еще одно настраиваемое приложе- www.pardus.org.tr/eng функций: например, поддержку чтения/ www.sysresccd.org
Проблемы
Linux
РЕШЕНЫ
Что, завязли? Руководство Грэма
Моррисона по типичным проблемам
в Linux должно стронуть вас с места. Paul Blachford
Н
ечего стыдиться, если вы застряли на простой с виду установка или администрирование. И из-за многовариантной природы
Где найти проблеме в Linux. Знайте: множество вопросов по Linux Linux и оборудования, на котором он работает, бывает трудно точно ука-
свои люди задают снова и снова – и не потому, что ленятся зать причину.
вопросы: искать ответы самостоятельно, а потому, что очень час- На последующих страницах – кроме подробных ответов по типовым
то на это нет времени или данное проявление проблемы не похоже проблемам – мы еще и попытаемся научить вас решать такие пробле-
Установка
с. 26 на обычное. Почему видеодрайверы так трудно устанавливать? Что мы. Ключ к решению – понимание взаимодействия ОС и оборудования,
случилось с моим интернет-соединением? Почему не устанавливается а также работы различных компонентов вашего дистрибутива Linux.
Оборудование
эта программа? Глубокое знание Linux само по себе награда, но оно также помогает
с. 28
Linux не является причиной проблем. В наши дни можно твердо разобраться с неприятными инцидентами.
Программное сказать, что с Linux проблем не больше, чем с любой другой операци- Мы должны предупредить вас, что – хотя это и очевидно – некото-
обеспечение
с. 30 онной системой, и подавляющее их большинство – это результат почти рые внесенные изменения могут иметь катастрофические последствия
бесконечных комбинаций оборудования, которые можно встретить на для вашей Linux-системы, если они сделаны неправильно. Поэтому
Сети
с. 32 типичных ПК. Обычный источник проблем – плохо поддерживаемое обо- обязательно обезопасьте все ваши данные: вдруг что-то пойдет напере-
рудование или то, что пользователь не знаком с ОС. Для большинства косяк. Нам всем случалось раскаиваться, что мы отложили резервное
Администри-
пользователей установка диска с последней версией Ubuntu в CD- или копирование на потом; итак, вашим первым заданием, еще до чтения,
рование
с. 32 DVD-привод окончится без неприятностей. Но некоторые общие пробле- будет создание резервной копии!
мы время от времени выплывают наружу – будь то «железо» или ПО,
Установка
Что делать, если все отказало еще до того, как дистрибутив оказался на вашем
жестком диске.
У некоторых невезучих Linux даже не устанавливается. Вы-то думали, Это означает удаление всех ненужных для инсталляции устройств.
что инсталляция – самый отлаженный аспект дистрибутивов Linux, Может помочь попытка использовать IDE-диск вместо более совре-
поскольку и разработчики, и пользователи должны пройти одни и те менного SATA-варианта, а также отключение ненужных карт расши-
же этапы; но это, к сожалению, неверно. рения и USB-периферии. Linux отлично адаптируется, и устройства
Последние релизы, как Fedora Core, так и Ubuntu, намучились легко будет добавить после завершения процесса первоначальной
с процедурами установки, и хотя большинство пользователей запус- установки.
кает Linux без сучка без задоринки, итогом этого процесса может стать Следует также убедиться, что вы используете последнюю версию
пустой экран и голый диск. Причины проблем весьма различны, но BIOS для вашей материнской платы (ее можно скачать с сайта изго-
большинство из них сводится к оборудованию. Ваши шансы на успех товителя вашей «материнки»). Номер версии BIOS мелькает на экране
сильно возрастут, если еще до инсталляции дистрибутива вы постара- при включении компьютера. Его также можно проверить в меню BIOS,
етесь сделать свою машину как можно более стандартной. нажав [F2] или [F12] во время загрузки.
Прощай, ACPI!
Если проблем избежать не удалось, сущест-
вует довольно большой шанс заставить вашу
систему работать, отключив ACPI. Это функ-
ция управления питанием, встроенная в каж-
дый современный BIOS/материнскую пла-
ту, но ее реализация далека от стандарта и
может вызывать проблемы. Если вы хотите
попробовать отключить ACPI, сделайте это
из меню загрузки до того, как что-нибудь
загрузится. Во-первых, большинство совре-
менных дистрибутивов Linux используют сис- Загрузчик Grub появляется при запуске Linux-дистрибутива. Можно отредактировать пункты меню и добавить более
тему загрузочного меню, именуемую Grub. совместимые с вашим «железом» опции: для входа в режим редактирования нажмите <Escape>, а затем <e>.
Установлен ли Grub, можно узнать по появ-
лению сообщения «Grub loading, please wait» после инициализации сколько может потребоваться для оптимизации дискового кэша или
BIOS. Если вы такого не увидите, ваш дистрибутив, вероятно, исполь- временного файла, и прихватывает ту память, которой другие операци-
зует старую альтернативу, именуемую Lilo – попробуйте более новый онные системы касаться не рискуют. Ошибки памяти могут возникать
дистрибутив. случайным образом и приводить к зависанию вашей машины, повреж-
Увидев сообщение «Grub», нажмите клавишу Escape. Откроется дению изображения на экране или возникновению различных случай-
меню опций для загрузки вашей системы. Нужно выделить опцию ных системных ошибок.
загрузки по умолчанию (обычно вверху списка) и нажать клавишу e. Вы можете выяснить, в памяти ли дело, запустив программу под
Далее, выделите строку, начинающуюся со слова «kernel», и снова названием Memtest86. Она существует уже довольно долго (она унас-
нажмите e. Это редактирование строки конфигурации ядра для меню ледована от ранней версии ядра Linux). Ее нужно загружать прямо с
Grub: нужно добавить «acpi=off», нажать Enter, а затем b для загрузки CD/DVD-ROM или дискеты (еще помните такие?); загрузившись, она
вашего модифицированного пункта. Если это решит вашу проблему, запустит исчерпывающую серию тес-
можете сделать данное изменение постоянным, добавив «acpi=off» в тов вашей памяти. Если ваша память
той же строке ядра в /boot/grub/menu.lst в вашей установленной Linux- переживет эту пытку, не выдав ника-
системе. Чтобы сохранить изменения на диске, вам нужно будет отре- ких ошибок, можете быть почти уве-
дактировать этот файл с правами администратора системы. рены, что проблем с нею нет. Если
Memtest что-нибудь обнаружит, при-
Ошибки памяти дется заменить неисправный модуль
Ошибку вызывать может также какой-либо аппаратный компонент. (купите, одолжите или стяните дру-
Linux предъявляет к оборудованию гораздо больше требований, чем гой). Стоит это примерно 2-3 тыс.
другие ОС, и поэтому первоначальная установка Linux может первой рублей за 1 ГБ-модуль, но вы обна-
выявить признаки сбоя. Обычно главный виновник – память, т.к. при ружите, что такая замена сделает
превосходном функционировании всего модуля сбои может давать более стабильными и другие ОС на
одна небольшая секция. Linux старается использовать столько памяти, этой машине. Если память выдюжила испытание огнем Memtest86,
значит, проблемы не здесь.
Оборудование
Заставить оборудование работать – не обязательно сложная задача.
Заставить определенные «железки» работать в Linux пока что про-
блема. На это есть две принципиальных причины. Во-первых, воз- «Скорая помощь» по оборудованию
можных комбинаций оборудования бывает множество. Типичная
ситуация – когда материнская плата от одного изготовителя, видео- Введите lspci в окне терминала, чтобы увидеть список всех уст-
карта – от другого, а внешняя периферия, например, принтер, мышь ройств, подключенных к вашей системе. Как правило, вы увидите
и клавиатура – от толпы каких-то других сборщиков. И каждому больше информации, чем могли бы ожидать, потому что современные
подавай свой драйвер, а драйверы часто еще и взаимодействуют материнские платы зачастую объединяют несколько устройств в одно.
друг с другом. Понятно, что изготовитель не в силах протестиро- Если ваше оборудование здесь не появилось, возможно, оно плохо
вать все возможные комбинации драйверов. подсоединено.
Это сочетается со второй причиной: многие изготовители пока отка- Есть несколько способов растянуть ваш рабочий стол на два экра-
зываются открыть спецификации своего оборудования, чтобы разра- на. Стандартный метод – использование Xinerama и дублирование
ботчики могли писать драйверы. Linux уже может похвастать превос- различных секций в xorg.conf, но в случае с оборудованием от Nvidia
можно также воспользоваться инструментом от изготовителя и акти-
ходной поддержкой оборудования от Intel, IBM и AMD, но по-прежнему
вировать режим «TwinView».
очень важно убедиться в совместимости нового оборудования, прежде
чем выкладывать за него денежки. Следует также проверить наличие Если вы хотите использовать с Linux MP3-плейер, выбирайте такой,
который монтируется как внешний накопитель. Вы сможете скопиро-
открытого драйвера для вашего оборудования, поскольку сообщество
вать на него свои музыкальные файлы как на USB-диск и управлять
мало чем поможет, если драйвер закрыт. Чтобы разобраться в этих
своей коллекцией при помощи обычного файлового менеджера.
вещах, загляните на http://cdb.suse.de, www.mandriva.com/hardware или
При сборке собственных приложений и драйверов в Ubuntu нужно
www.phoronix.com/lch.
установить базовое окружение для сборки, введя в командной строке
следующее:
Проблемные видеокарты sudo apt-get install build-essential linux-headers-`uname -r`
Типовая «горячая тема» для оборудования в Linux – заставить рабо-
тать видеокарту с 3D-ускорителем. По умолчанию большинство Linux- Когда вы собираете собственный модуль драйвера или устанавли-
ваете проприетарный модуль от поставщика оборудования, вы сможе-
дистрибутивов устанавливают для оборудования открытый драйвер.
те гарантировать его подгрузку во время старта системы, добавив имя
Последняя версия Ubuntu может прервать эту тенденцию, включив
модуля в файл /etc/modules.
проприетарные драйверы, но покамест вы получаете видео-драйверы с
открытым кодом, обеспечивающие лишь минимальную поддержку 3D-
ускорения. Этого достаточно для обычного использования настольно-
го ПК, но если вы захотите поиграть в PlanetPenguin Racer или создать Перед запуском полученного файла нужно будет закрыть текущую сес-
сцену в Blender, ваша видеокарта не справится с нагрузкой. сию X Window. Некоторые дистрибутивы позволяют выйти в терминал,
Если вы собрались купить новую 3D-видеокарту, для серьезной про- закрыв X-сессию, но с другими вам придется закрывать сессию вруч-
изводительности годятся лишь два поставщика. Nvidia и ATI (ныне при- ную. Сделать это можно, введя как root либо killall gdm, либо killall kdm,
надлежащая AMD) предлагают к загрузке собственные закрытые драй- чтобы остановить процесс менеджера входа в систему.
вера для ваших карт, и каждый использует свою процедуру установки. Более надежный способ достичь того же – переключить уровень
Альтернатива для тех, кто не гонится за модной «трехмеркой» – карты исполнения (runlevel) с помощью команды init. Различные уровни
Intel; это оборудование не столь мощное, зато драйверы полностью исполнения настраиваются на запуск различных процессов. Например,
открыты. Если карта у вас уже есть, выясните, какой чипсет в ней исполь- уровень 1 (введите init 1) – обычно однопользовательская система в
зуется (для этого наберите в командной строке lspci). безопасном режиме, а уровень 5 (init 5) – ваш привычный, полноцен-
Независимо от вашего оборудования, нужно будет установить ный графический рабочий стол. На беду, здесь нет единого стандарта:
исходные коды ядра. Каждый драйвер должен быть скомпилирован различные дистрибутивы используют различные уровни исполнения. В
именно с той версией ядра, которую вы используете. Nvidia и ATI Fedora и OpenSUSE пользователь может закрыть X-сессию, набрав init
пытаются предоставлять прекомпилированные двоичные версии для 3, а пользователям Debian/Ubuntu остается для переключения в безо-
нескольких популярных ядер и дистрибутивов, но поскольку именно пасный режим только init 1.
ядро обычно первым заменяется при установке обновлений безопас-
ности, нет гарантии, что эти версии за ним поспевают. Пустой экран
Звук можно Исходный код ядра можно установить с помощью менеджера паке- Инсталлятор ATI или Nvidia попытается изменить настройки вашего
оживить, всего лишь тов вашего дистрибутива, выполнив поиск либо по ‘kernel-source’ (для экрана для согласования с новым устройством. После установки вам
загрузив настройки систем Mandriva и Fedora), либо по ‘linux-source’ (для систем Ubuntu/ нужно будет запустить gdm (или kdm для пользователей KDE) от имени
микшера и подвигав Debian). Менеджер пакетов выяснит, какая версия вам нужна, посколь- root, чтобы активировать менеджер входа в систему. Если вы получите
«бегунки». ку требуется ее идеальное соответствие вашему рабочему ядру, и вы пустой экран, нужно будет либо вручную отредактировать /etc/X11/xorg.
всегда можете проверить, какая версия ядра conf, либо запустить входящую в ваш дистрибутив утилиту настройки
у вас запущена, набрав в командной строке экрана. Учтите: xorg.conf не для малодушных. Это технический файл,
uname -a. Инструкции по установки драйвера включающий спецификации вашего оборудования, например, возмож-
Nvidia см. в нашем пошаговом руководстве, ности экрана, а также установки драйверов. Вот несколько вещей, кото-
справа. рые нужно проверить, если вы натолкнетесь на проблемы:
После установки исходных текстов ядра, 1 Убедитесь, что в секции Device конфигурационного файла подгру-
следующим шагом будет запуск для нового жается правильный драйвер. Здесь должно быть либо «Driver ‘nvidia’»,
драйвера процедуры инсталляции, предус- либо «Driver ‘fglrx’», в зависимости от вашего оборудования.
мотренной поставщиком, то есть скачива- 2 Разрешение экрана может выходить за пределы возможностей
ние двоичного пакета с сайта Nvidia или ATI. вашего монитора. В этом случае создайте безопасное разрешение,
оставив только 800х600 для всех элементов Display в секции Screen. рите sensors-detect и нажимайте [Enter]
3 Драйвер ядра может не загружаться. Наберите lsmod | grep “nvidia для каждого ответа по умолчанию. По
\| fglrx”. Если на выходе ничего не окажется, введите либо modprobe завершении, скрипт попросит вас ско-
nvidia, либо modprobe fglrx, для загрузки модуля драйвера. пировать и вставить секцию в файл
После установки нового драйвера ваша Linux-система сможет под- /etc/modules. Это обеспечит загрузку
держивать графику с 3D-ускорением. драйверов сенсоров при следующей
перезагрузке системы, и вы сможете
Следим за перегревом получить доступ к температурным дан-
Когда ваша система работает под нагрузкой, вполне естественно, что ным, запустив sensors из командной
ее компоненты перегреваются. Мощная видеокарта весьма способст- строки или через одну из графических
вует этой проблеме: без адекватного охлаждения могут начаться вся- оболочек, установленных одновремен-
кие странные вещи. Мы сказали «странные вещи», а не что-то более но с Lm-sensors.
определенное, поскольку невозможно предсказать, что именно может
случиться. На каком-то этапе возникают ошибки, обрушиваются при- От молчания к звучанию
ложения, повреждается изображение на экране, а то и система полно- Еще один источник головной боли –
стью зависает. А похоже это все на ошибки памяти. отсутствие звука. Без сомнения, совре-
Изменить
Отследить такие ошибки трудно, потому что за время перезагрузки менная звуковая подсистема в Linux
разрешение экрана
машины оборудование охлаждается, и система опять работает как сле- очень совершенна, но она также слишком сложна, и поиски первичной
можно не только
дует. Если вы заподозрили, что причиной проблем может быть пере- причины беззвучия – занятие неблагодарное. Прежде всего проверьте редактируя файл
грев, запустите инструмент слежения за температурами системы: это все таблицы. Если вы не меняли конфигурацию оборудования, очень Xorg.conf, но и через
хорошо даже в том случае, если проблем и нет. Вывод предупрежде- важно удержаться от попыток расковырять провода и динамики. Если панель настройки
ния, что ваша система «разгорячилась» – прекрасный способ пресечь раньше все работало, значит, настройки правильные. Возня с ними, Nvidia.
проблемы до того, как они возникли. пусть даже вы уверены, что здесь-то и причина проблемы, чревата
Многие современные машины выводят информацию о темпера- лишь новыми бедами.
туре в каталог /proc/acpi/thermal_zone/ в файловой системе. Если Проверьте программный микшер (особенно если вы недавно модер-
нет, попробуйте ввести modprobe thermal от имени root. Кроме того, низировали свою машину). Лучший способ это сделать – запустить
существуют инструменты для мониторинга температуры и предуп- какой-нибудь аудиофайл в настольном плейере и экспериментировать
реждения о проблемах. Есть лишь один реальный претендент на роль с уровнями различных каналов в вашем микшере. Если интерфейс
лучшего приложения мониторинга: пакет под названием Lm-sensors. командной строки в Alsamixer на ваш взгляд скудноват, можете устано-
Мониторинг – это приложение уровня ядра, и когда Lm-sensors будет вить и использовать инструмент под названием Alsamixergui.
установлен, его собственные драйверы смогут собирать все необхо- Каналы, на которые следует обратить внимание – Master, PCM и Aux,
димые данные. но проблема со звуком в Linux заключается в том, что функции этих
Установка обычно сводится к поиску ‘lm-sensor’ в менеджере паке- каналов не всегда очевидны. Например, обычная проблема – «бегунок»
тов вашего дистрибутива, кроме того, имеет смысл установить графи- IEC: чтобы звук начал воспроизводиться, иногда его нужно выставить на
ческую оболочку, например, не зависящий от рабочего стола Xsensors 25%, а иногда на 0%. Поиграйте с ним, пока что-нибудь не услышите.
(для KDE попробуйте Ksensors). Когда он будет установлен, запустите
сценарий настройки из командной строки с правами root. Просто набе-
Программное обеспечение
Тот факт, что ПО в Linux свободно, позволяет сделать многое. Но свободное ПО
зачастую идет без свободной поддержки...
Сеть и
администрирование
В наши дни грош цена тем, кто не подключен к Интернету.
В Linux вы недалеко уйдете без подключения к сети. Несмотря на
это, сейчас нет стандартного приложения для его настройки. В
каждом дистрибутиве свой подход к поддержке сети, и как пра-
вило, предлагается собственная панель конфигурации или скрипт
для настройки вашего соединения, а это вам не сильно поможет,
если что-то поломается.
Если ваша машина отказывается выходить в Интернет, можно по-
пробовать несколько вещей. Наиболее обычная помеха в плохо настро-
енной сети – ваш компьютер не может преобразовать имя сервера в
IP-адрес, необходимый для установления соединения. То есть если вы
наберете что-то типа ‘bbc.co.uk’ в своем браузере, сетевой уровень,
отвечающий за установление соединения, будет нуждаться в конвер-
тации его в номер, или IP-адрес. Например, bbc.co.uk на самом деле
соответствует IP-адресу 212.58.228.155.
Одно в другое конвертирует DNS, сервер доменных имен. Если
он не настроен, вы не сможете просматривать страницы, используя
доменные имена, но тем не менее сможете использовать IP-адреса.
Вот и первый ключ к решению проблемы – если доступ по IP-адресам
работает, а по доменному имени – нет, значит, проблема в настройке
DNS. Обычно это означает, что вы ввели неправильный адрес сервера.
Адрес DNS вашего провайдера размещается в файле /etc/resolv.conf, Использование инструмента типа Firestarter для настройки
брандмауэра сильно упрощает установку общего интернет-
и вам нужно проверить, что после слова ‘nameserver’ указан правиль-
соединения.
ный адрес.
центре управления. Но в других дистрибутивах, особенно в Ubuntu, вам
Общее соединение придется выполнять настройку вручную.
У многих из нас сейчас больше одного компьютера, которые без интер- Намного проще настроить обе машины, если сетевые соединения
нет-соединения полезны лишь наполовину. Вы можете использовать используют статические адреса, а не назначаемые автоматически – осо-
беспроводную сеть, но есть также возможность разделять соединение, бенно для машины, с которой вы хотите разделять соединение. Потому
используя Ethernet-кабель, если два компьютера достаточно близко что если вы хотите, чтобы машины использовали общее соединение,
друг от друга. Если у вас нет коммутатора между этими двумя компью- имея автоматически назначаемый IP-адрес, то придется учитывать
терами, важно, чтобы используемый вами кабель был «перекрестным» дополнительную сложность в лице DHCP-сервера. Общее интернет-
(crossover), а не стандартным. соединение складывается из двух элементов: маршрутизации пакетов
В некоторых дистрибутивах общее соединение создается откры- (forwarding) и трансляции сетевых адресов (NAT), оба они реализуются с
тием панели управления на машине, подсоединенной к Интернету, помощью Iptables [строго говоря, это не совсем верно. Часть ядра, отве-
и активацией соответствующей опции. Например, в Mandriva общее чающая за маршрутизацию, может работать и без Iptables, – прим. ред.].
соединение может быть активировано на страницу Network & Internet в Это сетевой инструмент, работающий на уровне ядра и отвечающий
за управление сетевыми пакетами – обычно
известный как брандмауэр. А установка бранд-
«Скорая помощь» по сетям и администрированию мауэра – самый простой способ настроить
общее интернет-соединение.
Firestarter – одна из наиболее популяр-
Существует множество беспроводных устройств, не под- от web-сервера до пользовательских учетных записей, и все
держиваемых в Linux. Но часто их можно заставить рабо- это через браузер на удаленной машине. ных утилит настройки брандмауэра для Linux.
тать, используя комбинацию Windows-драйвера и превос- При первом старте «мастер» быстрого запус-
Сетевые USB-устройства, от старых телефонных моде-
ходное Linux-приложение по имени Ndiswrapper. Он объеди- мов до новых ADSL, создают проблемы. Вы можете заста- ка проведет вас по настройкам брандмауэ-
няет эмуляцию Windows с магией Linux, чтобы вернуть вить их работать, но обычно это не стоит затраченных уси- ра и созданию общего интернет-соединения.
оборудование к жизни. лий. Гораздо проще купить дешевый ADSL-маршрутизатор Он берет на себя большую часть забот по
Брандмауэры зачастую понимаются неправильно, потому и использовать подключение по Ethernet-кабелю – и ника- настройке Iptables, а также предоставляет в
что пользователям Windows вдалбливают, что он должен кой специальной настройки не потребуется. реальном времени информацию о том, какой
быть у них установлен. Истина же в том, что если у вас нет Таблицу маршрутизации (слегка запутанную) можно именно процесс работает с Интернетом.
портов или сетевых сервисов, запущенных на вашей маши- просмотреть, набрав route от имени root. Если у вас больше
не, то нужды в брандмауэре никакой нет – вот почему одного сетевого устройства, убедитесь, что только один Потерянный пароль
Ubuntu не поставляется с преднастроенным брандмауэром. маршрут отмечен как используемый по умолчанию. Можете Пароли не особо важны, если ваш компьютер
Если вам нужно администрировать вашу систему удален- удалить любые дополнительные маршруты по умолчанию, стоит себе в углу, без подключения к интер-
но, попробуйте установить программу Webmin. Она позво- набрав route del default eth0, только замените ‘eth0’ на имя нету, и вы его единственный пользователь.
лит настраивать почти все аспекты работы вашей машины, соответствующего устройства.
Но как только вашу машину захочет исполь-
зовать кто-то еще или вы пожелаете войти в
сеть, хороший пароль становится жизненно необходимым для безо- са загрузки можно будет изменить пользовательский пароль обычным
пасности вашей системы. Хороший пароль, однако, плох тем, что его образом.
сложно запомнить. Самый популярный пароль, вероятно, ‘password1’,
который как минимум учел желательность смешения букв и цифр. ...теперь отдыхайте!
Если вы еще помните свой пароль root, достаточно войти в систему Интернет полнится людьми, перенастраивающими свои дистрибутивы
как root и назначить пароль пользователя командой passwd username. Linux, и мы отметили в начале, что для некоторых это весьма привлека-
А вдруг пароль для учетной записи root вы тоже забыли? В случае тельно. Продравшись сквозь проблемы и сумев самостоятельно их уст-
Ubuntu, где и учетной записи root нету, забыть свой пользовательский ранить, вы испытаете чувство подлинного удовлетворения. Это обряд
пароль означает здорово влипнуть. посвящения для каждого пользователя Linux.
Тогда придется перезагрузить вашу систему либо в безопасный Мы надеемся, что вы насобирали достаточно информации, спо-
режим, либо в режим восстановления. Обычно это применяется для собной помочь вам при любых проблемах; мы, как минимум, дали вам
решения проблем с загрузкой, но также полезно и для получения хорошую отправную точку для поиска решения. Но мы будем рады,
доступа с правами root без пароля. Если вы пользователь Debian или если вы обратитесь к нам со своими сложностями. Можете также посе-
Ubuntu, при виде загрузочного меню Grub нажмите <Escape> и выбе- тить наши дружелюбные форумы (www.linuxforum.ru). Linux зиждется
рите загрузку ядра в режиме восстановления. По завершении процес- на чувстве взаимопомощи; именно так мы делаем мир лучше. LXF
За кулисами
Perl 6
Perl – один из самых популярных сущест-
вующих языков программирования. Одна
из причин этой популярности – продук-
тивные отношения между создателем
языка Ларри Уоллом [Larry Wall] и его
главным сообщником Дэмьеном
Конвеем [Damian Conway].
никам фирмы, пришлось бы в первую очередь заботиться об этих целях. А мы ориентированному программированию есть что предложить, язык не может быть
работаем на сообщество, и можем сконцентрироваться на целях Perl 6, важных для полным, если в нем нет механизма, ортогонального к структуре классов, который
сообщества, и эти цели куда более многообразны, чем могли бы быть цели любой, позволял бы добавлять необходимые функции, но не принадлежал к иерархии. И
самой крупной фирмы. что здорово – мы смогли взять это и внедрить. Мы сказали: «Ладно, Perl нужна
Люди говорят: «Мы разрабатывали Perl 6 шесть лет. Почему же он еще не поя- поддержка аспектно-ориентированного программирования, поэтому встроим такой
вился?» А я думаю, что фактически, это преимущество – у нас было время разрабо- механизм прямо в ядро языка…»
тать то, что будет самым лучшим на следующие 20 лет. Конечно, с точки зрения PR
LXF: Так вот куда попадает Pugs?
это не слишком хорошо, но с точки зрения языка, который мы создаем (на самом
ДК: Не думаю. Я думаю, что сюда попадает компонент под названием PGE, это
деле, уже создали), это настолько хорошо, что лучше и сделать нельзя. Подумайте,
грамматический движок. И он действительно хорошо подходит, потому что мы раз-
какого калибра люди участвуют в проекте; сразу станет понятно, что все это – прос-
то здорово. работали грамматику Perl 6 таким образом, что вы получаете всю мощность синтак-
сического анализа самой лучшей породы, какую только можно найти. Раньше все
Есть фраза, которую я повторяю чаще всех остальных: «Вот как это в Perl 6». Я
грамматические конструкции, такие как Lex и Yacc на раннем этапе или более сов-
вижу, какое волнение написано на лицах людей, если они в течение получаса видят
ременные вещи, вроде Antlr – они всегда были отделены от языка. Они всегда были
то, что мы внесли в язык, честно, я вижу на их лицах вожделение: «Почему его еще
инструментом, который применялся в языке, или применялся для создания языка.
нет? Почему нельзя пойти домой и приняться за него прямо сейчас?» …По-моему,
Мы знали, что у Perl лучшие регулярные выражения на свете, но до следующего
самое прекрасное, что произошло за два года с нашей прошлой беседы [Интервью,
уровня он не поднимался: до грамматического уровня, на котором можно, исполь-
LXF62] – это что у нас был проект Pugs с Одри Танг [Audrey Tang], которая проло-
зуя все это, легко создать интерпретаторы языков. Вот мы и внесли это в язык.
жила нам дорогу, и сейчас вы можете пойти и сделать это [использовать Perl 6].
Такая вещь – рост нашего понимания того, что нужно для хорошей разработки
Когда я делаю презентацию, последний мой слайд – это всегда URL кода Pugs.
и развитие различных парадигм языковых функций (хотя большинство из них име-
Люди расходятся и загружают его, и где-то через полчаса они уже могут поиграть
ются в большинстве натуральных языков мира) – позволяет нам, на основании этой
с настоящим кодом Perl 6. Все это вызывает большой ажиотаж и энтузиазм. Да и
половины десятилетия, заявить: «Мы считаем, что это будет хорошо, и это будут
много огорчений тоже, потому что людям нравится этим заниматься, но ведь это не
готово для выпуска и не обладает той же скоростью, что Perl 5. важно и через 20 лет, поэтому Perl 6 мало того, что сможет просто выполнять все
эти вещи – он должен их поддерживать».
Но в общем и целом меня крайне радует достигнутое, и меня крайне радует, что
Наши мысли о разработке языка во многом получали информацию от это-
у нас было достаточно времени сделать работу хорошо. И во многом из-за того, что
на нас не давил корпоративный график работ. го. Язык должен быть легок для тестирования, для синтаксического анализа, для
рефакторинга. Да, тестировать программы нужно; но не просто проверять правиль-
LXF: Повлияло ли на процесс разработки за по- ность функционирования, а убеждаться, что тест
следние шесть лет появление PHP или Ruby? О СУПЕРФУНКЦИИ PERL 6 охватывает все возможности. Поэтому нужен
ДК: Я не совсем уверен, что эти два оказали язык, в котором было бы видно внутреннее
какое-то влияние именно в пределах указанного «Вы можете использовать представление всех ветвей в программе, а для
интервала. Конечно, Ruby сильно повлиял на Perl этого нужно, чтобы внутреннее представление
6; я бы ничего не стал убирать из того, что Мац объектно-ориентированное программы было в самой программе.
[Юкихиро Мацумото, Yukihiro Matsumoto, автор программирование так же
Ruby] сотворил с Ruby. Многое из того, что он LXF: Как вы узнаете, что пора ставить точку?
позаимствовал в Perl и запихнул в Ruby, снова
легко, как в Java и C++.» ДК: Какой чудесный, чудесный вопрос. [Долгая
вернулось в Perl. И я уверен, что если бы не было пауза] Знаете, меня никогда об этом не спра-
Ruby, Perl не смог бы стать настолько объектно-ориентированным, как Perl 6. шивали, а это ключевой вопрос. Как узнать, что всего уже достаточно, чтобы не
Если быть предельно честным, то большинство языков, появившихся в течение переборщить?
упомянутого периода, не особо отличались от ранее существовавших. Я думаю, Все эти годы мы придерживались принципа: никогда не включать функций,
что наше мышление изменилось из-за усиления некоторых парадигм и некого которые служили бы только для одной цели. Если нечто претендовало на вклю-
понимания, пришедшего к нам в процессе программирования – что работает, а чение в Perl, значит, должно было годиться для решения пары задач. Оно долж-
что не работает. По примеру на то и на другое: за этот период вроде как расцвело но было улучшать то, что уже было в языке, плюс обеспечивать дополнительную
аспектно-ориентированное программирование. Люди осознали, что хотя объектно- функциональность, то есть давать еще и чистую прибыль. Потому что нужно было
считаться с той самой проблемой, о которой вы сказали, а именно: «Уймись, не то
язык чересчур разбухнет».
Но по большому счету, вы правы: есть этот неиссякаемый фонтан новых техно-
логий в мире программирования, как в сфере теории, так и в сфере практических
технологий разработки. Так как же решить, что пора остановиться? Если честно, я
думаю, ответ такой: когда устанешь! Нет, я думаю, когда достаточно глубоко изу-
чил создание языков, то тебе совершенно ясен момент, когда можно сказать: «Да,
теперь все срослось, теперь это – одно непрерывное полотно». И когда это про-
исходит, надо остановиться. Потому что если зайти слишком далеко, то начнешь
включать в язык какие-то лишние штуки, которые там совершенно на данной ста-
дии не нужны.
Вот вам ответ: мы останавливаемся, когда появляется ощущение, что все срос-
лось и мы сделали все, что хотели сделать. Естественно, мы не касались новшеств,
появившихся месяца три назад, но зато мы сделали другое – по нашему мнению,
мы создали новую версию Perl настолько расширяемой, что новшества, которые
появляются сейчас, или появятся через два года, через пять лет, очень легко будут
интегрированы в Perl 6, так что, возможно, Perl 7 уже не понадобится.
LXF: А бывают разногласия между разработчиками, о том, что важно и когда надо
остановиться?
ДК: Ну что вы, у нас полное согласие всегда и во всём. [Смеется] Да нет, по-мое-
му, вполне здоровая ситуация, когда спорят на тему «как лучше это сделать?» или
«подходит это сюда или нет?». Если вы посмотрите на списки рассылки, у нас там
очень много талантливых людей, они проверяют наши решения и рассматривают их За Дэмьеном охотятся ради
под разным углом, так вот, если на эти списки взглянуть, вы увидите массу разно- его презентаций: на фото – его
выступление Da Vinci Codebase
гласий по теме, как правильно работать.
на OSCon 2006.
Так что, я думаю, разногласия – это очень ценная вещь. А в конечном итоге нам
помогает тот факт, что Perl – это то, что о нем говорит Ларри.
LXF: Вы считаете, что после Perl 6, разработка Perl станет в большей степени ори-
ентирована на сообщество?
ДК: Думаю, это весьма вероятно. Именно это мы наблюдаем в Perl 5. В конце кон-
цов, основная разработка Perl 5 сейчас ведется людьми из Perl 5 porters. И хотя
Лари по-прежнему обладает правом полного вето, он крайне редко им пользуется.
И он обычно оказывает всяческую поддержку, если они хотят что-то сделать, пото-
му что Perl 5 porters отлично знают код. твие из всего, о чем мы говорили. Поэтому, конечно, меня это очень радует, но я об
этом даже не думаю, потому что в Perl 6 это вообще-то фундаментально.
LXF: А какие части Perl 6 вы любите больше всего?
ДК: С предвзятой точки зрения, один из моих любимых разделов – это функция LXF: Как вы думаете, с какими проблемами столкнется сообщество Open Source в
объединений (junctions). Потому что я часто думаю о том, что объединения – мой следующие пять лет?
единственный вклад в компьютерные науки. Объединения – это такая разновид- ДК: [Долгая пауза] Думаю, проблема для сообщества Open Source в следующую
ность принципа квантовой суперпозиции в Perl половинку десятилетия – как конкурировать,
6: например, бывают величины, равные 5, 6, 7 ОБ ОТКРЫТОМ КОДЕ: не становясь конкурентами. Мы должны сохра-
и 8 одновременно. Это необыкновенно удобно, нить веру в то, что философская основа нашего
потому что если у вас есть длинный список вся- «Проблемой будет – существования, того, чем мы занимаемся, дейст-
ких вещей, вы можете свести их в одну величину, вительно правильна, правильна настолько, что
а затем достаточно одного теста для проверки на как конкурировать, мы сумеем выжить, продолжая делать то, что
равенство любой из них.
Например, у вас есть список неприемлемых
не становясь делаем. Нам придется решать, как стать мейн-
стримом и при это не угодить ни в одну из лову-
паролей, и вы можете создать одну скалярную конкурентами.» шек мейнстрима – и не поддаться существующей
величину, которая равна любому из них. Затем практике. Меня не удивляют фирмы, которые
вы можете сказать: «Дайте мне ваш пароль, и если он равен этой одной скалярной закрывают код, вместо того, чтоб открыться настолько, насколько возможно; по-
величине, значит, он равен и любому [из неприемлемых паролей]». Дело в том, что моему, у них просто сдают нервы. Думаю, вполне понятно, что множество начина-
благодаря такой структуре можно – по крайней мере, теоретически – параллели- ний уже продемонстрировало: с философией Open Source, оставляя код открытым,
зовать этот тест. Тут известно, что вам надо просто проверить равенство с любой вполне возможно жить, да ещё и получать прибыль.
величиной, а они совершенно независимы, и если это не так – применительно к Сейчас Open Source становится мейнстримом, в огромной степени благодаря
любой из них – у вас есть возможность вернуться к исходной точке кратчайшим таким программам, как Firefox. Linux… наверное, не до такой степени, как Firefox,
путем. Это же столбовая дорога к параллелизации. Вы можете просто ввести в Perl: потому что Firefox – это интерфейс, через который обычный человек, не компьютер-
if $password eq any(@existing_passwords). И вы получаете возможность параллели- ный эксперт, ежедневно сталкивается с разными хитрыми штуками, и все больше
зовать это, причем написать это на практически обычном английском языке. людей этим занимается. Я хочу сказать, заметно, что доля Linux на рынке тоже рас-
Я горжусь, что эта идея принадлежит мне, и я был в восторге от того, как её при- тет, но, наверно, не такими темпами. Ведь в Firefox можно работать и под Windows,
няли и усовершенствовали другие члены команды, прежде чем ввести в язык. наверное, причина в этом. LXF
А что до пристрастий, я люблю всякие милые мелочи. Например, то, что теперь у
нас есть функция «print line» в Perl, потому что в 70% всех напечатанных выражений
приходится в конце ставить новую строку. Меня это просто бесило! А теперь есть
маленькая функция say – вы просто пишете say $whatever, а она сама вставляет
перевод строки. Штука тривиальная, такое можно ввести в любой язык, но немного
найдется языков, которые это сделали, да ещё столь изящно.
Перышки Помни
изменения те:
конфигура в файле
ц
не вступят ии Apache
в силу, пок
вам в шляпу
вы не пере а
запустите
сервер!
Решили научить свой сервер Apache новым трюкам? Узнайте у Пола Хадсона
про три его любимых модуля Apache для web-суперобслуживания.
П
риспособить Apache для обслуживания web-страниц может
каждый, а при известной сноровке можно установить и
использовать mod_php или mod_perl, но Apache способен
на большее. Стандартная установка Ubuntu Edgy (с под-
ключенными репозиториями Universe и Multiverse) дает перечень свы-
ше сорока модулей Apache 2, с которыми ваш сервер Apache натворит
такого, чего вы и представить не могли.
На этих четырех страницах мы расскажем вам про три наших люби-
мых модуля Apache и научим работать с каждым из них. О некоторых
из их функций вы, может, и слышали, но никогда не пробовали – а «Моя маман говаривала, что Synaptic
может, и вообще о них не знали – но запустите их в работу, и закачки похож на коробку шоколада» – модули
пойдут быстро как никогда! с какой начинкой вы предпочтете?
свой собственный контент в public_html без вашего содействия. Вы в конфигурацию такую строку:
можете также использовать директиву UserDir, чтобы разрешать или UserDir disabled root
запрещать работу модуля mod_userdir пользователям индивидуально. Здесь можно указать столько пользователей, сколько хотите.
Например, сейчас каждый может публиковать пользовательские дан- Вариант – настроить «белый список» mod_userdir, запретив доступ
ные в личном web-пространстве, даже root – зайдите на www.yousite. всем и разрешив только тем, кому нужно:
com/~root, и поймете, что мы имеем в виду. UserDir disabled
Как правило, разумнее пресечь подобный доступ, так что добавьте UserDir enabled bill ted
Перезапись – углубленно
Не будем заострять внимание, но ваши правила перезаписи вряд ли
заработают с первого раза. Обычно требуется не одна попытка, и вы,
скорее всего, добьетесь их правильности, лишь вволю наскрежетав-
шись зубами. Так что, добавляя новые правила, вы можете предпочесть
положиться (временно!) на файлы .htaccess: они временно изменяют
установки конфигурации Apache для конкретного каталога. Чтобы раз-
решить использование файлов .htaccess, загляните в конфигурацию Использование файлов .htaccess для свежесоставленных правил mod_rewrite позволит
Apache (ту, что мы уже используем), и для каталога /var/www измените не перезапускать Apache при каждом мелком изменении.
‘AllowOverride None’ на ‘AllowOverride All’. Перезапустите Apache, и фай-
лы .htaccess готовы к работе!
Пора попробовать что-нибудь поинтереснее. Да, укорочение длин- referrer с именем нашего сайта? Это вторая строка кода. Символы .*
ного URL – типовое применение mod_rewrite, но еще популярнее при- в конце означают «соответствует всему», так что будет совпадение с
ведение уродских URL к виду, простому для запоминания. Например, любым URL, размещенным на нашем сайте. Наконец, если обе строки
www.yoursite.com/index.php?Section=Bugs&User=Hudzilla – URL ужас- RewriteCond выполняются, срабатывает строка RewriteRule. Она отби-
ный, а www.yoursite.com/users/hudzilla/bugs и запомнить легче, и для рает JPEG- и PNG-файлы и перезаписывает их в – [F], так в mod_rewrite
глаза приятнее! mod_rewrite поможет горю, например, таким образом: сокращенно обозначено нечто невежливое вроде «запрещено – вали
RewriteRule ^users/([A-Za-z0-9_])+/bugs$ index. отсюда!».
php?Section=bugs&User=$1 Мы могли бы усовершенствовать второе rewrite-условие, добавив
Символы ^ и $ означают «начало строки запроса» и «конец стро- [NC] в конец этой строки, что велит Apache игнорировать регистр сим-
ки запроса» соответственно, они избавят Apache от обработки чего-то волов в запросе, рассматривая www.YOURSITE.com и www.yoursite.com
типа www.yoursite.com/users/hudzilla/bugs/monkeybutts. как один и тот же путь.
Если вы озверели от безуспешной борьбы с mod_rewrite, можете
либо расслабиться, глубоко вдохнуть и попробовать снова, либо пос-
«Опытные пользователи тупить как все: взреветь от ярости и пнуть свой компьютер через всю
комнату. Но что бы вы ни сделали, утешайтесь фактом, что проблемы
добавят себе мощности бывают даже у профи. Брайан Белендорф [Brian Behlendorf], основа-
тель Apache Software Foundation, как-то сказал: «mod_rewrite заме-
условиями mod_rewrite.» чателен тем, что дает вам всю настраиваемость и гибкость Sendmail.
Оборотная сторона медали – он дает вам всю настраиваемость и гиб-
Использование точных правил очень полезно, когда нужно прове- кость Sendmail.» Будьте упорны, и все получится!
рять соответствие множества различных вещей. Например, вам может Учтите: как только вы закончите с mod_rewrite, советуем изменить
потребоваться загружать страницу поиска пользователя, когда на www. ‘AllowOverride All’ обратно на ‘AllowOverride None’: mod_access (модуль,
yoursite.com/users зайдет посетитель, а значит, строка RewriteRule который работает с файлами .htaccess) – это гарантированное узкое
должна явно игнорировать все, что добавляет имя пользователя в место производительности. LXF
конец запроса. Можете написать столько строк RewriteRule, сколько
потребуется, но помните, что Apache прогоняет каждый запрос через
каждую из строк RewriteRule, и неаккуратные правила потребуют
довольно интенсивной работы процессора!
Опытные пользователи могут добавить себе через условия mod_
rewrite большей мощности. Например, если ваш сайт размещает мно-
Идем дальше
жество изображений, и вы не хотите, чтобы другие сайты высасывали Если вы проработали каждый из этих модулей, вот еще три рекомен-
ваш трафик, устанавливая ссылки непосредственно на ваш сервер, вы дации на пробу:
можете использовать что-нибудь наподобие mod_dnssd Публикует ваш сайт, используя протокол обнаружения
RewriteEngine on сети Apple Bonjour.
RewriteCond %{HTTP_REFERER} !^$ mod_musicindex Позволяет всему миру листать вашу музыкальную
коллекцию, а также и прослушивать ее.
RewriteCond %{HTTP_REFERER} !^http://www.yoursite.com/.*$
mod_mono Apache встречается с Mono... Разместите C# на своем
RewriteRule \.(jpg|png)$ - [F]
сервере и запускайте ASP.NET через Apache.
Здесь три важных строки. Первая проверяет, не равен ли referrer
Итак, какой модуль Apache ваш любимый? У вас есть трюк с mod_
значению ^$ – т.е. пустой строке. Учтите, что «referrer» пишется rewrite, который вам особо по душе? Напишите нам, а лучший мы
здесь с одной ‘r’ (HTTP_REFERER) из-за исторической опечатки. Если опубликуем! letters@linuxformat.ru.
первая проверка проходит, то выполняется вторая: не совпадает ли
Лингва на DVD
Интерпретаторы для
рассмотренных языков
эзотерика
По-вашему, C – это сложно? А у Perl нехороший синтаксис? Хватит ныть, вот сейчас
Майк Сондерс покажет вам, что такое действительно трудный язык…
О
днажды Свами Прабхупада [Swami Prabhupada], осно- Мы предполагаем, что вы владеете базовыми понятиями в этой
воположник движения Харе Кришна, прогуливаясь с области; но даже те, кто сроду кода не писал, сочтут некоторые кон-
послушниками около поля для гольфа, увидел игрока, цепции неплохой гимнастикой для ума. Вы вряд ли выберете эти язы-
замахнувшегося для очередного удара. «Поглядите на ки для создания крутого пакета офисных программ, зато, изучая их,
этого человека, – сказал Прабхупада, – всю свою жизнь он трудился, получаешь глубокое представление о строении языка программиро-
но это ничто по сравнению с усилиями, которые он прилагает сейчас, вания. Да и С после них кажется малиной…
чтобы забить шар в лунку».
Такова уж людская природа: вечно нам подавай преодоление Вьем петли из Spaghetti
каких-то препятствий, надо или не надо. Есть же превосходные язы- Начнем с несложного языка со вкусным именем Spaghetti. В нем
ки высокого уровня – C#, Ruby и Python, а разработчики все норовят каждая строка кода заканчивается оператором перехода GOTO, при-
исследовать что-то новое, и в результате появляются совсем уж при- чем переход на следующую строку запрещен. Иными словами, две
чудливые (но любопытные!) создания. соседние строки кода никогда не выполняются последовательно.
В предыдущих статьях рассказывалось о Tcl, Ruby, хоть и не Рациональный код и дурак напишет, а мы попрыгаем!
слишком часто применяемых, но достойных изучения хотя бы ради Почти все книги по программированию твердят, что оператор
расширения профессионального кругозора. А сегодня мы займем- GOTO лучше не использовать, обходясь циклами и вызовами функ-
ся по-настоящему экзотическими языками, настолько забавными ций. Код Spaghetti, наоборот, петляет как заяц, на радость тем, кому
и нетривиальными, что вы увидите ремесло программирования в циклы, функции и оператор return кажутся простецкими. Spaghetti –
совершенно новом свете. Необходимые программы находятся в раз- интерпретируемый язык. После запуска первые 256 байт выделенной
деле Magazine/Esoteric нашего DVD. программе оперативной памяти содержат числа от 1 до 255; есть еще
www.ellywalton-illustrations.com
В заключение
Таковы подлинно экзотические языки программирования. Может,
они и не созданы для величия, но все равно волнуют умы. Забавно
попробовать Spaghetti, хотя бы для того, чтобы взять да и усложнить
простые вещи – это тренирует мозги; а после головоломного Malbolge
вы вернетесь к программированию на добром старом C с новым энту-
зиазмом, как скороход, сбросивший с ноги гирю. Ресурсы
Во врезке Ресурсы вы найдете ссылки на сайты с дополнительной
информацией. Испробуйте эти языки сами и обязательно расскажите http://kidsquid.com/files/spaghetti/spaghett.txt http://compsoc.dur.ac.uk/whitespace …
нам об этом! LXF Информация по Spaghetti. и Whitespace.
www.antwon.com/other/malbolge/malbolge.txt
Углубляемся в Malbolge…
Что за
штука... OpenID?
Вы уже перестали понимать, кто вы такой? Все, что вам нужно – это URL,
утверждает Марко Фиоретти.
Что такое OpenID? идентификации для других. Конечно, благонадежность Это значит, что я не могу использовать свое
Если верить лозунгу с домашней страницы какого-то из самодельных провайдеров может вызы- собственное доменное имя как свой OpenID
OpenID (http://openid.net), это – лучшее изобретение вать вопросы, но зато никто не завязан на одну-един- URL, если я предварительно не настроил на нем
человечества со времен колеса: «открытая, свободная, ственную организацию. OpenID-сервер?
распределенная система поддержки цифровой лич- Конечно, можете! Между прочим, сделать вашу домаш-
ности, ориентированная на пользователей». И как работает OpenID? нюю страницу вашим OpenID URL – это гораздо круче и
Если вы хотите узнать все подробности, не профессиональнее и не требует большого труда! Для
И как понимать слова «цифровая личность»? вникая при этом в технический жаргон – прочитайте начала зарегистрируйтесь на каком-нибудь провайде-
Грубо говоря, это любой программный метод пошаговое описание (с красивыми картинками), опуб- ре OpenID. После чего добавьте в секцию <head> вашей
и набор цифровых данных, позволяющие системе ликованное на www.openidenabled.com/openid/openid- домашней страницы несколько строк (подробная инс-
выяснить (без какой-либо неопределенности и дыр protocol. Ну, а я попробую показать вам на пальцах. трукция находится по адресу www.openidenabled.com/
в безопасности), кем кто-то или что-то является на openid/use-your-own-url-as-an-openid) – и готово!
самом деле. Как мило. А я по-прежнему должен буду пом- Любой, кому потребуется идентифицировать вас по
нить все эти имена, пароли и вымышленные OpenID, найдет на вашей домашней странице указание,
Но я совершенно не хочу, чтобы кто-то выяс- девичьи фамилии бабушки? с каким сервером для этого нужно связаться.
нял, кто я такой! Интернет-свобода существует Нет. OpenID использует всегда один и тот же URL,
исключительно благодаря анонимности! обычный интернет-адрес, вне зависимости от того, на Пусть у меня уже есть нужный URL. Что мне с ним
делать, когда я хочу доказать, что я – это я?
Чтобы зайти на любой сайт с поддержкой OpenID, най-
“Чтобы интернет стал действительно полезным, дите нужную форму и укажите в ней свой URL. Сайт
использует его, чтобы связаться с вашим провайде-
ему необходима открытая, распределенная и ром OpenID, и автоматически перенаправит вас на
вездесущая система цифровой личности..” форму входа, расположенную на нем. После того, как
вы пройдете аутентификацию на сервере OpenID, ваш
провайдер сделает две вещи, причем опять же авто-
Ну, начнем с того, что действительная анонимность в каком сайте вы хотите заявить о себе. Ваш пароль и матичеcки. Во-первых, он передаст подтверждение
Интернете – это всего лишь иллюзия. Для того, чтобы любая другая идентификационная информация, кото- на тот сайт, с которого вы изначально делали запрос,
действительно замести все следы, нужно предпринять рой вы согласны поделиться, известна только выбран- что вы – это действительно вы, и с этого момента вас
много действий, часть из которых иногда противоречит ному вами серверу OpenID. надо рассматривать как полноценного зарегистриро-
договору с интернет-провайдером, а то и просто неза- ванного пользователя системы. Во-вторых, провайдер
конна. Но даже при этих условиях бывает множество Прекрасно, выходит, мне нужно установить и перенаправит вас на ту самую страницу, с которой вы
ситуаций, в которых вы сами хотите или должны дать обслуживать еще одно приложение, работать с начинали.
знать интернет-партнеру о том, кто вы такой. которым могут только хакеры.
Не обязательно... Вы, конечно, можете запустить свой Если мне по-прежнему придется вводить
Например? собственный сервер OpenID у себя дома, но можете вос- пароль, то в чем тогда смысл OpenID?
Например – интернет-банкинг. Для вас жиз- пользоваться и одним из сторонних провайдеров. Их Смысл в том, что теперь вам надо помнить всего
ненно важно, чтобы банк проверил, кто вы такой. Да и список есть на www.lifewiki.net/openid/OpenIDServers. один URL и всего один пароль, вне зависимости от
вам было бы полезно проверить, что вы в своем бан- того, сколько сайтов вы посещаете. В зависимости
ке, а не в одном из широко расплодившихся мошен- Ну что ж, до сих пор все звучит неплохо. Как от политики сайта, ваш провайдер может запросить у
нических сайтов. Существует множество ситуаций, в мне воспользоваться OpenID? вас разрешение на передачу каких-то дополнительных
которых возможность быстро идентифицировать всех Если вы просто хотите выступить в качестве потреби- персональных данных. Сейчас разрабатывается систе-
интернет-участников может сэкономить много усилий теля, то есть идентифицироваться при помощи OpenID ма, позволяющая делать то же самое автоматически,
и времени. на поддерживающих его сайтах (не интегрируя при еще проще и быстрее. И, конечно же, вас всегда спро-
Некоторые люди уже используют OpenID, чтобы дать этом его поддержку в свой собственный сайт), то все, сят, устраивает ли вас доверяемый корневой элемент
возможность друзьям читать их закрытые публикации в что вам нужно – это получить свой идентификатор. Их (trust root) web-сайта, который пытается идентифици-
LiveJournal, не проходя регистрацию на этом сайте. существует два типа – URL и XRI (eXtensible Resource ровать вас.
Identifiers, расширяемый идентификатор ресурса).
Гмм... Ну, пускай. Но кто контролирует OpenID? Самый быстрый и простой способ получить URL – это Ээ... Простите, доверяемый что?
Правительство? Злобные инопланетяне? Или регистрация на одном из общедоступных провайдеров Доверяемый корневой элемент (ДКЭ) – это
еще какой-нибудь Большой Брат? OpenID. При этом вы получите адрес, обычно в виде строка, похожая на обычный URL, которую сайты,
А вы помните «ориентировку на пользователя», кото- http://yourname.someOpenIdprovider.com, уже настро- поддерживающие OpenID, должны отправлять вмес-
рую я упоминал в самом начале? OpenID зиждется на енный на представление OpenID. те с каждым запросом на вашу идентификацию. ДКЭ
том, что каждый может идентифицировать себя само- позволяет добиться того, что ваш провайдер OpenID не
стоятельно, а также предоставить сервис цифровой будет автоматически подтверждать вашу личность для
всех сайтов на свете. Сначала (когда вы будете пере- временно с еще одним идентификатором, i-number, код. Если вы чувствуете, что в вас проснулся пропо-
направлены на сервер OpenID) он должен спросить который уже никогда не может быть выдан кому-то ведник OpenID, срочно идите на http://iwantmyopenid.
вас, согласны ли вы с тем, чтобы запрос на авториза- еще. В дальнейшей работе i-name выступает только org!
цию автоматически подтверждался для всех доменов в качестве синонима i-number. Такая схема позволя-
и поддоменов адреса, приведенного в качестве ДКЭ. ет, кроме всего прочего, запросить новый i-name для Что будет с OpenID дальше?
Конечно, если вы выполняете вход на сервер www. существующего i-number, когда старый становится Сейчас идет работа над OpenID Authentication
someonlineshop.com, а провайдер OpenID запрашивает недействительным (чаще всего такое происходит, ког- 2.0. Это обновление спецификации ключевой функ-
у вас согласие на вход в www.westealcreditcards.com, да меняется название бизнеса). ции OpenID – аутентификации пользователей. Еще
соглашаться – не самая лучшая идея. Никогда не под- одна новая спецификация, OpenID Attribute Exchange,
тверждайте ДКЭ, URL которых не совпадает с адресом Где я могу найти онлайновую документацию? дает пользователям возможность указывать, каким
посещаемого вами сайта! На официальном сайте OpenID и в списках образом провайдер должен делиться элементами лич-
рассылки, расположенных по адресу http://openid.net/ ной информации (телефоном, адресом) с третьими
Какова оборотная сторона медали OpenID? mailman/listinfo. В них рассматриваются вопросы безо- лицами.
Точно такая же, как и у любого доменного пасности, впечатления пользователей и так далее.
имени в Интернете, или, если хотите, у телефона или Как вы думаете, это будет работать, или это
домашнего адреса – к сожалению, никто не гаранти- А что если я захочу добавить поддержку OpenID просто еще один мыльный пузырь?
рует, что они останутся неизменными на протяжении в мое web-приложение? Посмотрите на список сайтов, которые уже поддер-
вашей жизни. И, точно так же, опрометчиво наде- Замечательно! Зайдите на www.lifewiki.net/openid/ живают OpenID, на www.myopenid.com/directory. В него
яться заполучить адрес, состоящий из вашего имени OpenIDLibraries и возьмите оттуда готовый код. Уже входят Technorati и Movable Type! Чтобы Интернет стал
и фамилии, особенно если вас зовут Иванов Иван существуют интерфейсы для использования его действительно полезным, ему необходима откры-
Иванович. из PHP, Perl, Python, Java и многих других языков тая, распределенная и вездесущая система поддер-
программирования. жки цифровой личности. Когда OpenID превратится
Неужели эта проблема неразрешима? в такую систему – это уже другой вопрос. Но если он
Ну почему же... Расширенные идентификаторы Не сомневаюсь, что им требуются будет интегрирован в такие продукты, как WordPress
ресурсов, которые я упоминал выше, решают пробле- разработчики... и Drupal, он может очень быстро стать стандартом de
мы постоянного адреса, так как они всегда состоят Так и есть. Если вы не против запачкать руки, заходи- facto перед тем, как эту нишу займет кто-нибудь дру-
из двух частей. Первая часть называется i-name – это те на www.openidenabled.com. Кроме того, вы можете гой, чем поможет нам избежать множества проблем в
просто строка, которую несложно запомнить и легко побороться на http://iwantmyopenid.org/bounty за приз, будущем. LXF
передать кому-то другому. Но когда кто-нибудь запра- предназначенный для тех, кто интегрирует OpenID в
шивает i-name в первый раз, он всегда выдается одно- приложения FOSS. Но разработчикам нужен не только
Тяжелая
ЧАСТЬ 3 Петр Семилетов готовится рассказать вам о программах настолько высокого класса,
что их название сложно перевести на русский язык короче, чем «рабочая станция по цифровой
обработке звука».
бы негоже сравнивать чистый DAW вроде Audacity с Muse. Кроме
того, Rosegarden и Muse похожи между собой. Обе программы слы-
вут «нашим ответом Cubase» (это мы обсудим чуть позже), интерфейс
обеих так или иначе основан на Qt (в Rosegarden имеется привязка к
KDE). Итак, приступим.
Rosegarden
Web www.Rosegardenmusic.com
С
егодня мы подобрались к «тяжелой артиллерии» музыкаль-
ных программ – к той их нише, которая во всем мире кратко
называется DAW (Digital Audio Workstation), то есть рабочая
станция по обработке цифрового звука. В русском я не знаю подходя-
щего термина, и чтобы не писать все время «DAW», буду употреблять
словосочетание «рабочая станция».
Изначально DAW-ом называлась связка из программы, позволя-
ющей делать многоканальную запись, и дорогой звуковой карты под
эту программу (или наоборот – программы под карту). Примеры –
Protoсols, Nuendo. Сейчас функциональность типичной рабочей стан-
ции несколько шире – это не только запись и микширование звуковых
дорожек, но и встроенный MIDI-секвенсер с поддержкой виртуальных
инструментов. Есть «чистые» DAW-ы, а есть смешанные – со встроен-
ным MIDI-секвенсером. Рис. 1.
DAW – это сердце домашней/любительской студии. Сюда поступа-
ют все партии, здесь же они и микшируются. Рабочие станции – пожа- На сайте продукта можно найти сравнение с Cubase: ««the closest
луй, самые сложные музыкальные программы. Сложные как внутрен- native equivalent to Cubase® for Linux» – Sound on Sound». Некоторое
не, алгоритмически, так и для пользователя. Хотя все DAW’ы имеют сходство и впрямь есть – монтажный стол справа, свойства дорожек
ряд сходных составляющих, как то: монтажный стол, где располага- слева, и плавающее окно «Транспорт». Да, вот вам и первое отличие –
ются партии/сэмплы и отдельным окном плавает виртуальный мик- Rosegarden русифицирован, а официальных переводов Cubase на рус-
шер. Желательны также встроенный (хотя бы простейший) волновой ский, насколько я знаю, нет. Других отличий больше, нежели сходства,
редактор, отображение видео (для синхронизации звука с видеорядом) поэтому сравнивать с Cubase я (как завзятый реалист) перестаю.
и автоматизация – то есть запись и воспроизведение динамических Свежий (во время написания статьи – версии 1.5.0) Rosegarden без
изменений параметров эффектов. Пример – управление громкостью труда устанавливается из исходных текстов на современный «бытовой»
дорожки, чтобы она не находилась постоянно на одном уровне, а в дистрибутив вроде моего Mandriva 2007, то есть никаких запредельных
нужных местах становилась меньше или больше. зависимостей от библиотек не предполагается.
В этой статье мы посмотрим на две Linux-программы из разря- Для сборки используется модная нынче утилита Cmake. Однако,
да рабочих станций – Rosegarden и Muse. Есть и другие – Ardour (см. я советую установить более раннюю версию Rosegarden – например,
LXF89), Audacity, также хороша в работе с цифровым звуком Cinelerra 1.4.0 или любую после 1.5.0 (если в ней исправят импорт WAV/MP3/
(см. LXF85). Rosegarden и Muse относятся к числу того универсаль- OGG-файлов). В 1.5.0 такой импорт попросту сломан. Во всяком случае,
ного ПО, который сочетает в себе как функции «классических» DAW мне так и не удалось заставить его работать.
(т.е. без поддержки MIDI), так и MIDI-секвенсера. К слову сказать, в Для сборки Rosegarden, кроме заголовочных файлов KDE, требуется
Rosegarden упор сделан именно на MIDI и сопутствующие технологии много чего еще, в том числе – библиотека DSSI (http://dssi.sourceforge.
(виртуальные синтезаторы и т.д.). net). DSSI (произносится как «диззи») – это такое API программных
Rosegarden и Muse выбраны мною потому, что это программы синтезаторов, аналог VSTi из мира Windows. Если не ошибаюсь, DSSI
примерного одного класса ПО, и приблизительно одного уровня. Было придуман тем же разработчиками, которые создают Rosegarden.
артиллерия
Что дают DSSI-инструменты нам, пользователям? Возможность поставьте галочку на «Запускать JACK при загрузке Rosegarden».
расширить палитру своих инструментов. DSSI-инструмент – это модуль, Кроме того, на вкладке «Общее» можно настроить загрузку банка
плагин. Вы загружаете его в Rosegarden (или другую программу) Sound Font при запуске программы. Для этого используется внешняя
и используете его как инструмент, на который можно, грубо гово- утилита sfxload. Сам банк можете взять либо на приведенных выше
ря, направлять MIDI-дорожку, т.е. посылать на него MIDI-команды и сайтах, либо у себя на Windows-разделе, если таковой имеется и вы
данные. используете звуковую карту Creative. В этом случае у вас должны быть
такие банки: 8mbgmsfx.sf2, 4gmgsmt.sf2 и 2gmgsmt.sf2. В каждом из
них – набор патчей для инструментов по таблице General MIDI, то есть
все 128 инструментов. Эти банки отличаются размерами. Лучше всех
звучит, конечно же, восьмимегабайтный 8mbgmsfx.sf2.
При запуске Rosegarden может обнаружить, что ваш системный
таймер имеет слишком низкое разрешение для хорошей работы с
MIDI. Это разрешение зависит от параметров ядра (Processor Type and
Frequency > System Timer, рекомендую значение 1000 Hz) – по умол-
чанию там может стоять слишком маленькое (для потребностей про-
граммы) значение. В ядрах эдак с версии 2.6.9 значение уже достаточно
велико, чтобы удовлетворить Rosegarden.
Теперь посмотрим на рабочие качества Rosegarden по двум кате-
гориям – работа с MIDI и работа с цифровым звуком. Точно так же мы
пройдемся и по Muse.
Работа с MIDI
Упор в Rosegarden сделан именно на MIDI. Обработка цифрового зву-
Рис. 2. DSSI-синтезатор Xsynth. ка развита гораздо меньше, но об этом – чуть позже. Редактировать
MIDI-дорожки можно в четырех встроенных редакторах. Это «Редактор
На сайте DSSI, помимо общих сведений и самой API-библиотеки, событий» (предоставляющий самый низкоуровневый доступ к MIDI-
есть список DSSI-плагинов, покамест не очень большой. Но и там есть данным), «Редактор перкуссии», «Матричный редактор» (пианоролл)
из чего выбрать. Я рекомендую следующие: и нотный редактор.
Nekobee – очень приблизительное виртуальное воплощение знаме- Редактор перкуссий отличается от пианоролла разве что списком
нитого синтезатора TB-303. с названиями ударных инструментов, что облегчает ввод нот – сразу
Hexter – моделирует синтезатор Yamaha DX7. Есть 70 предустанов- видно, где какой инструмент. Напомню, что для ударных в MIDI отве-
ленных патчей. ден канал номер 10 – его и надо выставить в свойствах дорожки (здесь
XSynth – просто довольно навороченный синтезатор. номера каналов доступны в списке «Инструмент») (Рис. 3).
Fluid Synth – сэмплер, который умеет загружать звуковые бан- Кстати, об этих свойствах. Как и в Cubase, свойства дорожки
ки формата Sound Fonts. Скачать такие банки бесплатно можно расположены в главном окне слева от нее. Из любопытных свойство
с http://www.hitsquad.com/smm/win95/SOUND_FONTS/ и http://www. отмечу следующие. Можно включить транспозицию, квантование и Рис. 3.
personalcopy.com/sfonts.htm. задержку – как бы эффекты реального вре-
Несколько замечаний о запуске Rosegarden. Перед работой с ним мени. В выпадающем списке можно выбрать
надо запустить звуковой сервер JACK. Делается это примерно такой цвет, которым будут отображаться на дорожке
командой: данные MIDI-партии. В случае использования
jackd -d alsa DSSI-инструмента, в свойствах дорожки можно
Конечно, вы можете добавить опции на свой вкус, либо, если ваша вызвать редактор настроек для этого инстру-
звуковая карта работает через OSS, заменить «alsa» на «oss». Команду мента, а также «навесить» на инструмент до
запуска JACK можно также прописать в Настройках программы, на пяти LADSPA-эффектов.
странице «Секвенсер – Запуск», в поле «Команда для запуска JACK». И Пианоролл – матричный редактор. Почему-
то по умолчанию выключены элементы управ-
ления MIDI-контроллерами. Согласен, исполь-
Технологическая справка зуются они нечасто. Хотя в Sonar или Cubase
они постоянно видны, и сразу становится
Аппаратной способностью воспроизводить Sound Fonts обладает толь- ясно, что в наличии такая функция есть, а в
ко линейка звуковых карт от Creative, начиная с AWE32. В AWE32 и Rosegarden надо еще пойти в меню Вид (в
AWE64 звуковые банки загружались в оперативную память самой Матричном редакторе) и там включить нуж-
звуковой карты. В картах Live! и выше используется уже оперативная ное (Рис. 4).
память компьютера. Для Fluid Synth не имеет значения, какая у вас Управление контроллерами реализовано
звуковая карта. А звуковые банки формата Sound Fonts можно делать
довольно непривычно. Их нельзя рисовать
и самому.
карандашиком или стирать ластиком. Вместо
Рис. 5. Вот так выглядит хороший нотный редактор. Рис. 6. Программный синтезатор DeicsOnze.
Интерфейс Muse подобен Rosegarden, но с более очевидным укло- Появится новая дорожка, где в свойствах приема сигнала (кнопка
ном в старый Cubase (Рис. 7). iR, input routing) надо выбрать входные порты (например, alsa_pcm:
capture_1), а в выходном порту (кнопка oR) следует выбрать аудио-
Работа с MIDI дорожку, которая будет принимать сигнал.
Muse предлагает для этих целей редактор ударных и пианоролл. Есть также дорожки эффектов, аналоги «кубэйсовским» FX-
Некогда был нотный редактор, но потом его убрали. Пианоролл более дорожкам. В Muse они называются Aux. Это пустые дорожки, не несу-
привычный, «кубэйсоподобный», нежели у Rosegarden – это касается щие никаких данных. Вы можете навешивать на Aux-дорожки эффекты,
и внешнего вида, и способа управления MIDI-контроллерами. Но есть создавая таким образом как бы группы эффектов. Вы можете посы-
одна деталь – в Rosegarden, когда вы рисуете в пианоролле ноту, она лать сигнал на обработку в такую группу с обычной звуковой дорожки
звучит. Дзынь! А в Mose почему-то не звучит. Зато другая мелочь – уже либо виртуального синтезатора. Это бывает полезно, если вы хотите
в пользу Muse – ноты могут отображаться разными цветами в зависи- обработать одинаковым набором эффектов несколько дорожек.
мости от, допустим, громкости (Рис. 8). Muse позволяет открыть сэмпл в простеньком встроенном волно-
Каждый виртуальный синтезатор имеет отдельную дорожку. На вом редакторе (Рис. 9).
синтезатор можно навешивать до четырех LADSPA-эффектов, при- Функций в нем немного, все они касаются управления громкостью,
чем параметры эффектов полностью доступны для автоматизации. затуханием (fade in/out и т.п.). Можно открыть сэмпл и во внешнем
Автоматизация работает также в микшере. редакторе. Какой посоветовать? Был отличный редактор, ReZound, но
В Muse есть два типа MIDI-дорожек – MIDI и «Дорожка с удар- его разработка остановлена. Еще мне нравится mhWaveEdit.
ными». Отличие последней от первой в том, что рядом с названием
отображается другая пиктограмма, да еще двойной щелчок мыши Прочие функции
вызывает не пианоролл, а редактор ударных. Однако никто не мешает В Muse хорошо развит механизм перенаправления (routing) сигнала.
вам открыть в этом редакторе и обычную MIDI-дорожку. Особенность Можно создавать дорожки типа Out. Такие дорожки служат для выво-
«Дорожки с ударными» – по умолчанию там выставлен MIDI-канал да звука на реальный выходной порт (например, на выход звуковой
номер 1, но MIDI-устройство получает с этой дорожки данные на канал карты или в JACK-клиент – тот же Rosegarden). Для Out-дорожки мож-
10 (канал ударных). По мне, «Дорожка с ударными» лишняя, достаточ- но выбрать и входной порт, то есть одни дорожки можно посылать на
но обычных MIDI-дорожек. одни выходы, другие дорожки – на другие выходы. Что это дает на
практике? Если в компьютере установлено несколько звуковых карт
Работа с цифровым звуком или у звуковой карты есть несколько линейных выходов, то можно
Сначала скажу об импорте сэмплов. Буду краток – работает, хотя фор- посылать дорожки на разные карты/выходы. Это вообще из области
матов поддерживается всего два: WAV и некий загадочный Bin[Binary]. студийной звукорежиссуры.
Теперь о записи звука. Чтобы осуществить ее, надо вначале создать
дорожку типа Input (контекстное меню, пункт «Добавить вход»). Заключение
Сравнивая Rosegarden и Muse, нельзя сказать: вот эта программа луч-
ше, а эта – хуже. Отчетливо видны плюсы и минусы обеих программ,
а уровень развития тех или иных возможностей продукта определяет
конечного пользователя. Так, если для вас важна работа с нотным
станом, с версткой нотных листов, то Rosegarden будет, несомненно,
наилучшим выбором. Однако для звукорежиссеров важна автомати-
зация, которую обеспечивает Muse. Поэтому если вы не просто дела-
ете MIDI-аранжировку, а микшируете сложный проект, то Muse будет
более полезен.
Обращая взгляд в мир Windows, нельзя не признать, что программ с
такими возможностями и притом распространяемых свободно (я имею
в виду оба критерия одновременно), для Windows просто не сущест-
вует. Да, Cubase, Nuendo или Sonar, несомненно, мощнее, чем Muse и
Rosegarden. Но подумайте и о ценах на коммерческое музыкально-зву-
ковое ПО. Думаю, что Muse и Rosegarden более доступны большинству
пользователей, чем программа за восемьсот долларов. LXF
Рис. 8. Пианоролл в Muse.
Учебники
Наши эксперты помогут вам с любым приложением Linux
70 Классика Glade
Визуальное
программирование с GTK –
ЕВГЕНИЙ БАЛДИН
Начинал с Агатов. Когда- В этом выпуске... это просто! Андрей
Боровский научит вас
то даже знал, что такое создавать интерфейсы с помощью Glade 2.
Робик.
74 И снова о консоли
Впечатлены
Сначала привлечь, возможностями dircolors?
Узнайте, что еще умеет
а затем обучать старый добрый терминал –
читайте учебник Unix
«Вместе с влечением к Андрея Боровского!
новому и чужому это
приводит к установке, 78 Java Server Pages
Неоднократно слышали,
которую можно назвать 54 Как работать с RPM? что дизайн надо отделять
тягой к приключениям» Fedora, SUSE, Mandriva – все они 62 Уловка Beagle
от бизнес-логики, но не
используют RPM для установки и Пол Хадсон расскажет, как использовать
Конрад Лоренц. знаете, с чего начать?
обновления ПО. Если вы – новичок в простейшие техники программирования и
Обратная сторона зеркала Александр Бабаев
Linux, разберитесь с ним вместе с Энди мощь Mono сотоварищи, чтобы всего за
познакомит вас с
Ченнелом. час собрать собственную поисковую
подходящей технологией!
систему.
В
последнее время активизировались
обсуждения на тему, как импланти- 82 Настройка PostgreSQL
ровать Linux в школьную среду. Тюнинг сервера порой
может быть увлекательнее
На текущий момент подростки не знают тюнинга автомобиля –
что такое Linux и с чем его едят. Для осоз- надо только знать, что
нания этого факта достаточно посмотреть подкрутить. Евгений
на опрос проведённый на LOR (http://www. Балдин готов прийти вам на помощь!
linux.org.ru) «Сколько вам лет?» На LOR
88 Классы LaTeX
нет школьников, а ведь казалось бы, это Евгений Балдин
место просто создано для них. классифицирует
В школе в большинстве случаев нет 66 Настройте свой загрузчик различные классы
и не предвидится программ, нацеленных
58 Знакомство с SugarCRM документов LaTeX.
Запущенная CRM-система – неизменный Не стоит довольствоваться установками
Иллюстрации прилагаются!
на обучение в среде GNU/Linux. У этой атрибут успешно работающей компании. по умолчанию: Ник Вейч поможет выжать
проблемы множество корней и основная Марк Бейн начинает новую серию статей из Grub загрузку со своими заставками,
с повышенным уровнем безопасности 92 Живой мир Blender
из них та, что всем всё, как правило, «до о достойной открытой альтернативе – В раскраске нуждается не
SugarCRM. и кое-что еще...
фени». Поэтому, чтобы сдвинуть эту гору только консоль!
безразличия требуются титанические уси- Андрей Прахов покажет,
как вдохнуть жизнь в
лия или усилия многих, направленные при-
модели Blender, используя
мерно в одну сторону. текстуры и анимацию.
Прежде чем обучать, надо привлечь
на свою сторону. Начать можно с малого,
например, с красивых картинок. На теку- Совет месяца: Боевая раскраска
щий момент Linux Format достаточно пёс-
трый, чтобы привлечь подростка и понят- Мы все стремимся сделать нашу жизнь ярче, и тот факт, ‘=’ следуют два числа, обозначающие цвет текста и цвет
ный, чтобы не отпугнуть его. Это новая и что командная строка – родной интерфейс внутренностей фона. Если вас смущают сокращения вроде pi, выполни-
вашей Linux-системы – текстовая, не означает, что вам те dircolors --print-database. Вам объяснят, что pi – это
неизведанная территория, которая сулит
придется мириться с монохромным терминалом. Сегодня просто символ конвейера (pipe), 40 – черный фон, а 33
приключения. Принесите пачку уже номе-
мы покажем, как раскрасить его! – желтый цвет текста.
ров прочитанных в кабинет информатики Добавить цвет можно различными способами и один Если вы присмотритесь к выводу dircolors повнима-
и договоритесь, чтобы их могли брать все, из самых популярных – команда dircolors. Если вас сму- тельнее, то увидите, что он начинается с LS_COLORS= и
кто захочет. Отдайте уже просмотренные щает написание (Янки гоу хоум!), всегда можно создать заканчивается export LS_COLORS. Иными словами,
DVD или сделайте новые. Пока просто при- символьную ссылку вида: dircolors просто устанавливает переменную окружения
несите — это со временем, возможно, даст sudo ln -s /usr/bin/dircolors /usr/bin/dircolours LS_COLORS. Вы можете добавить ее вывод к своему
Вам сторонников и только тогда их можно Dircolors использует цветовыделение для различных файлу .bashrc, чтобы устанавливать расцветку автомати-
начинать обучать. типов файлов, так что вывод простой команды ls превра- чески при входе в систему. В общем, запустите dircolors
E.M.Baldin@inp.nsk.su щается в настоящую радугу. Однако, вызванная сама по и вы посмотрите на консоль совсем другими глазами.
себе, dircolors просто возвращает список типов файлов и Да, имейте в виду: если вы по-прежнему не видите
секретных кодов вроде pi=40;33: или *.ogg=01;35:. Первый никаких цветов, вам может помочь команда ls --
элемент каждой записи – тип файла, за ним, после знака color=auto.
RPM: Пакеты
Благодаря RPM, управление пакетами в Fedora Core, SUSE и Mandriva происходит удивительно
легко. Прогуляемся с Энди Ченнелом по процессу обновления и установки.
На прошлом уроке по APT я объяснял основные концепции управ-
ления пакетами; кто его не читал, может обратиться к врезке Глоссарий
(справа вверху).
Обновляем дистрибутив
Как и в статье про APT в LXF89, мы начнем с рассмотрения автома-
тических средств, поддерживающих ваше ПО в актуальном состоянии,
а потом займемся управлением пакетами через командную строку.
Хотя вторая часть может показаться причудой, и к тому же негуман-
ной для Первых шагов, это идеальный способ разобраться с RPM:
большая часть программ управления пакетами в составе дистрибу-
тивов на основе RPM – просто графические надстройки над коман-
дами. Зная эти команды, гораздо легче понять процесс установки
программ с помощью RPMDrake в Mandriva, Yast в SUSE или Package
Manager в Fedora.
Этот урок базируется на Mandriva Linux 2007, так как этот дистрибу-
тив популярен среди новичков Linux, но большую часть описанных здесь
процедур легко адаптировать и к двум другим RPM-дистрибутивам.
Итак, автоматические обновления. В Mandriva 2007 рабочим сто-
лом по умолчанию является KDE, иконка автоматических обновлений
расположена в правом нижнем углу экрана рядом с часами (неболь-
шой шарик). Щелчок левой кнопкой мыши открывает Менеджер
Обновлений. Для этого вам понадобится пароль суперпользовате-
ля – как и для большинства задач установки и удаления ПО. Mandriva
Б
ольшинство пользователей и разработчиков Linux согласятся, что запросит некоторые данные, включая имя пользователя, пароль и
определяющее свойство операционной системы – наличие выбо- адрес электронной почты (для подписки на сервис онлайн-обновле-
ра. Так, у нас есть два (даже больше) рабочих стола, два загрузчи- ний). Вы получите допуск, а заодно зарегистрируете описание вашей
ка и две доминирующих системы управления пакетами: APT и RPM.
А вот определяющая черта пользователей и разработчиков Linux –
Наш
пылкость, и если вы объявите, что «APT лучше всех», вас немедля ата-
эксперт
куют. Однако до недавнего времени спорить с этим было трудно. На
Энди Ченнел прошлом уроке мы убедились, что пришедшая из Debian Advanced
Энди делает свои
первые шаги в Linux
Package Tool (APT) великолепна, и раньше пользователи дистрибути-
уже шесть лет, вов на основе Red Hat Package Manager (RPM) могли только завидовать
а технологиями своим друзьям с APT, запросто ставящим новые приложения.
интересуется еще Подобная ситуация не могла длиться долго; так и вышло. Сегодня
со времен Dragon 32.
RPM предлагает множество функций, позволяющих ей на равных
состязаться с APT. На этом уроке я покажу, как дистрибутивы на основе
RPM могут автоматически искать обновления пакетов и как использо-
вать RPM для установки и удаления приложений. Вы сможете просмат-
ривать новые программы и мигом разрешать зависимости.
Что такое дистрибутив на основе RPM? RPM – это технология,
вступившая в жизнь как часть дистрибутива Red Hat Linux. Она также
нашла свое применение в других основанных на Red Hat дистрибути-
вах, включая Fedora Core, Mandriva и SUSE. То есть у трех самых попу-
лярных дистрибутивов Linux одинаковая система управления пакетами.
RPM-пакеты, впрочем, обычно свои для каждого дистрибутива и вер-
сии программы, поэтому будет неразумно установить Fedora RPM на
систему Mandriva, и не рекомендуется ставить SUSE 9.3 RPM на дис- RPM-пакеты доступны из многих источников. Проверьте, что берете
трибутив SUSE 10.2. пакеты именно для своего дистрибутива!
установить легко
машины (процессор, видеокарта и так далее). Если вы не хотите сооб-
щать эту информацию, нажмите кнопку Cancel [Отмена], обновления Глоссарий
получать все равно будет можно.
Проделав это, после запуска апплета обновлений нажмите на Пакет Двоичный файл, содержащий прило- Обновление Новая версия программы. Сюда
кнопку Check Updates [Проверить Обновления], чтобы узнать, нет ли жение. Пакеты доступны в различных форма- могут входить новые функции, или решения
радикальных заплаток или обновлений для приложений. Подумайте тах, включая APT и RPM (поэтому я и говорю вопросов безопасности, или исправления оши-
также, нужно ли вообще обновлять дистрибутив, особенно если вы «RPM-пакет»). бок.
сидите на модеме и вам не улыбается платить огромный телефонный Менеджер пакетов Приложение, управляю- Двоичные файлы Программное обеспечение
счет за мелкую поправку к OpenOffice.org... Если хотите продолжить, щее установкой, обновлением и удалением в Linux часто поставляется как в виде исходных
нажмите Install Updates [Установить Обновления], и процесс обновле- пакетов. текстов, так и в двоичной форме. Двоичное
Зависимости Части программного обеспече- приложение уже готово к установке, а исход-
ния пойдет. Нижняя часть апплета обновления содержит много полез-
ния, которые требуются другим частям про- ные тексты необходимо компилировать.
ной информации, включая время последней проверки сервера, статус
граммного обеспечения, прежде чем послед- Репозиторий База данных по программам в
сети и оценку актуальности вашей системы. ние могут быть установлены. сети (или на дисках), к которой может обра-
По умолчанию этот процесс запустится автоматически при загруз- щаться ваш дистрибутив.
ке системы, но кое-кто (например, все те же пользователи модемов)
не захочет, чтобы его компьютер каждый раз подключался к сети.
Если вы один из них, то автоматический запуск легко отключить.
Щелкните правой кнопкой мыши на иконке автоматического обнов- Теперь мы именно там, откуда надо начинать установку. Вы замети-
ления в системном лотке и снимите галочку с опции Always Launch те, что любое имя файла RPM состоит из имени приложения (‘FreeMind’
On Startup [Всегда запускать при загрузке]. Можно также вручную в моем случае), номера версии (0.8.0), номера релиза (6) и расширения
проверить обновления, выбрав пункт Check Updates [Проверить .RPM. Может быть включено имя дистрибутива и/или версия, для кото-
Обновления]: это пригодится и пользователям с высокоскоростным рой предназначен пакет, а также архитектура, например, i386, PowerPC
доступом, если они никогда не выключают свой компьютер. или ARM. Приложения, не привязанные к определенной архитекту-
Вот так получают автоматические обновления под Mandriva. ре (как FreeMind в моем примере), содержат строку ‘noarch’ в имени
Пользователи Fedora могут установить автоматические обновления файла.
через командную строку. Откройте терминал, наберите su, нажми- Наконец, мы можем использовать простую RPM-команду, чтобы
те Enter, введите пароль root, затем наберите chkconfig yum on. установить наше приложение:
Процедура для SUSE почти та же, что и в Mandriva, отличается только rpm --install freemind-0.8.0-6.noarch.rpm
имя менеджера (Yast Online Update). или
rpm -i freemind-0.8.8-6.noarch.rpm
Простые команды Если вы хотите обновить существующее приложение на вашей сис-
Поразмяв таким образом мозги, посмотрим, как пользоваться RPM теме, а не установить новое, то i в команде надо заменить на U.
из командной строки. Нужно будет скачать двоичный RPM-пакет с
Интернета и работать от лица root. Для начала найдем подходящий Поддержка программного обеспечения
пакет; одно из лучших мест для поиска – http://rpmfind.net. Здесь есть К сожалению, попытавшись установить FreeMind на Mandriva Free 2007
поисковая машина, ограничивающая результат по дистрибутивам и (бесплатная версия), вы наверняка наткнетесь на массу неудовлетво-
архитектуре. Запустите свой поиск (я собираюсь найти программу ренных зависимостей.
FreeMind) и затем найдите в выдаче результатов нужную версию. Если вам с ними не справиться, попробуйте Urmpi. Это инструмент
Просмотр
Слева на экране находится ссылка на описание пакета, а справа – командной строки, обращающийся к репозиториям программ для раз-
файловой системы
ссылка на сам пакет для скачивания. Нажмите на нее, и файл скача- решения зависимостей при попытках установки приложений. Urmpi
Linux с помощью
ется на ваш рабочий стол. не имеет проблем с зависимостями, как RPM, поскольку сам ставит командной строки.
Теперь откройте терминал (помните, что он может называться необходимые пакеты, однако кто-то должен позаботиться о создании Наш скачанный
Console в Gnome или Konsole в KDE и прячется где-то в меню Система) пакета и поместить его в репозиторий. пакет выделен
и наберите su, чтобы получить привилегии root. Скорее всего придет- Чтобы установить приложение с помощью Urmpi, начните так: красным цветом.
ся сменить каталог, так как Firefox и другие web-браузеры скачивают urpmi имя_приложения
файлы на рабочий стол, а терминал почти всегда открывается в ката- Номер версии вам не требуется, так
логе /home/имя_пользователя. Каталог сменить легко: как программа установится с самой
cd Desktop последней версией.
cd как раз и значит ‘сменить каталог’, а Desktop – это рабочий стол, К Mandriva уже прилагается ряд
куда мы хотим перейти. Заметим заглавную букву D, так как Linux (в предустановленных Urmpi-репозитори-
отличие от Windows) чувствителен к регистру. Теперь вы можете про- ев: это CD или DVD, на которых пос-
смотреть содержимое каталога командой ls, или, если вы привыкли тавляется дистрибутив, а также любой
к DOS, dir. Используя ls, вы заметите, что файлы и каталоги отобра- источник обновлений, настроенный
жаются разными цветами, и в каталоге Desktop вы должны увидеть при начальной установке дистрибутива.
свежескачанный RPM-файл. На рисунке внизу показан мой RPM Но можно добавить и другие репози-
FreeMind, выделенный красным цветом. тории, если в предустановленных
требуемого приложения нет – а для поиска нужного репозитория име- соответствующие приложения (вверху); если выбрать какое-то из них,
ется великолепный сайт. Чтобы найти и добавить новый репозиторий, внизу появится информация о нем. Можно, например, выбрать X11 >
зайдите на http://easyurmpi.zrb.orf, введите номер версии Mandriva, Compiz и узнать поподробнее о менеджере Compiz. Если вы установите
архитектуру и менеджер пакетов, и следуйте подсказкам. На послед- радиокнопку рядом с доступными Compiz пакетами, менеджер пакетов
нем этапе появится список команд, которые необходимо набрать (их выберет все пакеты, от которых он зависит.
можно скопировать и вставить) в командной строке от лица root. В
зависимости от количества добавленных источников и скорости ваше- Поздравляем, вы гуру...
го интернет-соединения эта процедура может занять от нескольких После нажатия кнопки Apply [Применить] пакеты будут скачаны и
минут до получаса. Например, добавление источника Penguin Liberation установлены с удаленных репозиториев или Mandriva DVD. Установив
Front (он предоставляет множество несвободных приложений, осо- приложение, нажмите кнопку Close [Закрыть] для возврата в окно
бенно полезных для проигрывания мультимедиа) на мой компьютер управления пакетами. Список установленных пакетов можно вызвать
потребовало скачать 50 МБ. Код, генерируемый EasyUrmpi, имеет сле- при помощи инструмента удаления, а заодно и ликвидировать ненуж-
дующий формат: ные пакеты. Скорая
urpmi.addmedia plf-free ftp://ftp.univ-orleans.fr/logiciel-libre/plf/ Со знанием RPM-команд, графические инструменты Mandriva помощь
mandriva/2007.0/free/release/binary/i586/ with hdlist.cz должны стать вам понятны: в общем, они дают простейший способ
Он содержит команду (urmpi.addmedia), сопровождаемую описани- установить или удалить программу. Доступные репозитории содержат Если вы должны
ем репозитория и указанием на расположение репозитория и списка большую часть программ, необходимых для повседневной работы, а использовать RPM-
пакетов (часть hdlist.gz). Поэтому, например, добавив все предлагае- если нет, то EasyUrmpi позволит их добавить, и вам не придется снова пакеты, получен-
ные не из вашего
мые EasyUrmpi источники, вы сможете набрать в консоли urmpi flash- перерывать всю сеть в поисках нужного приложения. А если придется, репозитория, то
player-plugin и установить плейер от Adobe в Firefox, не задумываясь о то сначала попробуйте установку с помощью Urmpi, а RPM употреб- убедитесь хотя бы,
XPI, tar.gz и прочих файлах. ляйте как последнее средство. Надеюсь, я показал вам, что командной что они подходят
В URPMi есть полезные команды, позволяющие выяснить, содер- строки бояться не надо, и что для некоторых задач (например, для к вашему дистри-
бутиву и версии, в
жится ли искомое приложение в ваших репозиториях. Это: urmpq добавления репозиториев в Urmpi) она быстрее, чем графические
противном случае
имя_приложения, она осуществляет простой поиск; urmpq -i произ- инструменты. Ваше путешествие по Linux продолжается... LXF поломка будет
ведет поиск и отобразит информацию о каждом найденном пакете; и обеспечена. Вы
urmpq --fuzzy, отображающая список приложений, напоминающих то, можете протести-
что вы ищете – например, поиск ‘Firefox’ выдаст все пакеты, в которых ровать, правильно
ли установится
упоминается данное слово. RPM, набрав rpm
Наконец, с помощью Urmpi можно обновить все приложения на --test -i.
вашей системе – как мы уже делали автоматически – до самых послед-
них версий. Команда для этого будет такой:
urpmi --auto-select
Если нужно удалить программное обеспечение с вашей системы,
сгодится старый добрый RPM. Не обязательно помнить все детали
(например, номер версии) удаляемого пакета. Команда rpm -e имя_при-
ложения позаботится обо всем.
Графическая красота
Я хотел показать вам, как пользоваться командной строкой, потому
что хоть дистрибутивы и могут иметь свои собственные графические
инструменты для управления программным обеспечением, все они
основаны на тех же командах RPM-системы. Поэтому, овладев RPM из
командной строки в Mandriva, вы сможете давать советы своим друзь-
ям с другими дистрибутивами, и выглядеть элитным Linux-хакером. А
сейчас рассмотрим альтернативу Urmpi и терминалу: скачаем пакеты с
помощью графического инструмента Mandriva.
Сначала выберем в стартовом меню System [Система] > Configuration
[Настройка] > Packaging [Пакеты] > Install, Remove And Update Software
[Установить, Удалить и Обновить Программы]. Появится новое окно
(точнее, часть Центра Управления Mandriva Control Center), содер-
жащее четыре опции. Если вы выберете четвертую – под названием
Select From Where Software Packages Are Downloaded When Updating
The System [Выбрать источники для скачивания пакетов при обнов-
лении системы] – то появится другой экран, содержащий все репо-
зитории, добавленные ранее с помощью Urmpi. Вы можете включить
или выключить их простым щелчком мыши. (Если вы не добавляли
дополнительные репозитории, сделайте это сейчас: при использовании
EasyUrmpi, как я показывал, вам будет выдан набор команд, которые
можно просто скопировать и вставить в консоль.)
Две самых интересных штуки на этом экране – кнопки установки и
удаления, расположенные вверху. Выберите первую. Ее окно содержит
три панели и панель поиска наверху (см. картинку ниже). Слева пред- Графический подход Mandriva к установке ПО. Видите, я выбрал три
ставлены категории приложений, например, Игры и Утилиты, а справа – пакета для установки. Готовы? Жмите Apply [Применить].
Через месяц Используйте права доступа, чтобы никто не лез в ваши данные.
SugarCRM: Как
ЧАСТЬ 1: Вашему бизнесу не повредит автоматизация работы с заказчиками. Марк Бэйн
показывает, как приспособить для этих целей лучшее открытое ПО.
Разрулить весь бизнес
Значит, CRM спасет вас от подобных ситуаций? Не только! Возможности
CRM гораздо шире. Вот что вам предоставляется (опять цитирую
Уайтхеда):
автоматизация работы персонала;
мониторинг потенциальных возможностей;
мониторинг канала продаж;
определение групп сотрудников и территорий их деятельности;
анализ основных источников прибыли;
работа с каталогом продукции;
создание выписок для клиентов;
гибкая система формирования отчетов;
мониторинг оказываемой клиентам технической поддержки;
разработка план-графика выполняемых работ;
хранение контактной информации организации;
унификация взаимодействия с системой для различных
пользователей;
система контроля версий для документов.
Хорошо, а какая с этого корысть? Во-первых, уменьшатся ваши
издержки. Информация будет вводиться однократно, что исключает
разночтения внутри вашего предприятия. Во-вторых, ваши сотрудни-
ки всегда будут в курсе событий на предприятии, и почувствуют себя
полноправными их участниками, а не винтиками (это касается и персо-
нала, и руководителей). Заказчики также будут довольны, имея дело с
компетентными, хорошо осведомленными партнерами. Как следствие,
Д
обро пожаловать в новую серию! На первом уроке я покажу, возрастут продажи.
как установить отличную CRM с открытым исходным кодом. А Вы справедливо спросите: а кто я такой, чтобы об этом писать?
что такое CRM? Это Customer Relationship Management – сис- Основное мое занятие – реализация и адаптация Clarify CRM; если у
темы управления взаимодействием с клиентами. Поняли? Для тех, вас есть знакомые в фирме Vodafone, спросите их о проекте Cascade.
Наш кто не понял, Майкл Уайтхед-младший [Michael JR Whitehead] в книге Могут ли открытые CRM-системы достигать таких же результатов?
эксперт “Implementing SugarCRM” определяет эти системы так: Естественно, могут!
Марк Бэйн «CRM предназначены для хранения и обработки информации о ваших
Свою первую
программу Марк
клиентах – не только о продажах, но и о дальнейших взаимоотношениях Требования к серверу
написал еще для ZX и поддержке. Системы обязаны давать хотя бы минимум информации о У SugarCRM нет отдельного пользовательского интерфейса – все дела-
81. Он уже много лет компаниях, с которыми вы работаете и о том персонале, с которым вы
работает с Unix и
Oracle, а кроме того, в них сотрудничаете».
читает лекции и Между прочим, у вас почти наверняка все это есть. Мало того,
пишет. что вы храните свои контакты в адресных книгах Thunderbird, KMail
или (содрогаюсь) Microsoft Outlook, а счета в OpenOffice.org Calc или
Microsoft Excel – небось еще и создали аж базы данных Base или
Access, и записываете туда все свои сделки. Все как будто прекрасно.
Но дело в том, что все ваши коллеги проделывают те же операции со
своим почтовым клиентом, электронными таблицами или базой дан-
ных. Вроде ничего плохого, разве что данные многократно дублируют-
ся – и это бы не беда... пока не окажется, что данные не стыкуются.
Представим себе следующую ситуацию. Пусть в число ваших заказ-
чиков входит фирма Linux PCs Ltd. Вы записали ее почтовый адрес:
Penguin House, Southwaite CA4 0AK. Но Фред справа уверяет, что пра-
вильный адрес – Penguin House, Carlisle CA4 0AK, а у Мэри слева он зна-
чится как Penguin House, Southwaite, Carlisle. Кто же прав? Настоящий
адрес знает один Генри: фирма переехала, а он забыл всем про это SugarCRM управляется с номерами телефонов, номерами счетов и
сообщить. многим другим! Вам не по душе внешний вид? Его можно поменять.
на DVD
SugarCRM 4.5.0g
его установить
ется через web-браузер. Это обеспечивает незавимость системы от Если не сменить эту переменную вручную, SugarCRM скорее всего Скорая
платформы. Полагаю, вы предпочитаете Linux – так что радуйтесь: мы упрется в лимит памяти и оставит вас с пустым экраном. помощь
займемся платформой LAMP (Linux-Apache-MySQL-PHP). (Намек поня- MAX_EXECUTION_TIME в значение 90. Так мы предотвратим появле-
ли? Именно это и надо установить на вашем сервере…) ние таймаутов при импорте больших объемов данных. До начала установки
Начнем с сервера. Я установил SugarCRM под Debian на стареньком MAX_INPUT_TIME в значение 300, а POST_MAX_SIZE в значение SugarCRM задайте
компьютере Patriot, и мне этого хватает. Но для предприятий рекомен- 25M. И то, и другое поможет загружать без ошибок файлы большого вручную значение
дую следующие спецификации: размера. системной перемен-
ной MEMORY_LIMIT
До 10 пользователей: Увеличенное значение SESSION.MAXLIFETIME. В течение этого вре-
в файле php.ini
Жесткий диск IDE или SCSI емкостью 80–100 ГБ; мени SugarCRM ожидает ваших действий, а потом отключается (по равным 64 MБ.
1 ГБ оперативной памяти с ECC (обнаружение и исправление умолчанию 1440 сек = 24 мин). Лучше взять его побольше, например, Иначе программа
ошибок); 3600 секунд (1 час). Нет ничего хуже, чем намучиться, составляя длин- будет использо-
вать значение, по
Процессор Athlon, Pentium 4, Xeon или Opteron с тактовой частотой ное почтовое сообщение, и тут же убедиться: приложение успело отсо-
умолчанию равное
не менее 2 ГГц. единиться, и отправить почту нельзя. 8 MБ, и процесс
От 10 до 100 пользователей: Теперь все готово для установки SugarCRM. завершится аварий-
Жесткий диск SCSI емкостью 150 ГБ; но из-за нехватки
2–3 ГБ оперативной памяти с ECC; Позаботимся о сотрудниках памяти.
Процессор Xeon или Opteron с тактовой частотой не менее 2 ГГц. Итак, основная и самая трудная часть работы позади (а она показа-
Более 100 пользователей: лась вам трудной?). Теперь загрузим архив программы с сайта www.
Жесткий диск SCSI емкостью 300 ГБ; sugarcrm.com, распакуем его в локальный каталог и запустим скрипт
4–8 ГБ оперативной памяти с ECC; установки в браузере. Осталось только следовать инструкциям, появ-
Два процессора Xeon или Opteron с тактовой частотой не менее 2 ГГц. ляющимся на экране.
Все тот же Уайтхед, занимавшийся SugarCRM с 1999 г., также советует Рассмотрим эти этапы поподробнее. Начнем со структуры катало-
использовать: гов SugarCRM. После распаковки архива вы обнаружите новый каталог,
Сеть Ethernet со скоростью 1 Гб; с именем вроде SugarOS-Full-4.5.0g. Этот каталог нужно скопировать
Источник бесперебойного питания (UPS) – бесценная штука, особен- в корневую директорию web-сервера (где-то в htdocs). Для доступа к
но если учесть, как они сейчас дешевеют; SugarCRM из вашего браузера в адресной строке наберите ‘http://<имя_
SUSE Linux. Хотя лично я предпочитаю использовать на моих серве- web-сервера>/SugarOS-Full-4.5.0g’. Например, у меня путь был таким:
рах Debian (SUSE 10.1 у меня тоже стоит, на рабочей станции). ‘http://hector/SugarOS-Full-4.5.0g’ (имя моего сервера – Hector).
Однако это не самый удобный вариант URL. Сотрудники вашей
Подготовка фирмы не знают, что такое SugarCRM (им на это наплевать) – они
Linux, понятное дело, у вас есть; осталось добавить Apache 2, MySQL просто хотят максимально облегчить свою работу. Пусть имя каталога
и PHP. говорит само за себя.
Apache 2 устанавливается легко. В дистрибутиве Debian для этого Например, вы владелец издательства и решили выпускать новый
нужно выполнить следующую команду журнал – назовем его хотя бы Linux Format (правда, красиво?). Тогда
sudo apt-get install apache переименуем каталог в lxf. Пользователи будут набирать URL ‘http://
После установки убедитесь, что в конфигурационном файле web- hector/lxf’. Коротко и удобно, а действия SugarCRM никак не затраги-
сервера включена обработка PHP-скриптов. Впрочем, в Debian это вает. Каталог можно переименовать и попозже, но пользователей это
делается по умолчанию. в восторг уже не приведет. Лучше зайти в корневой каталог сервера и
Установка MySQL ничуть не сложнее: создать несколько символических ссылок на него, введя, допустим,
sudo apt-get install mysql-server ln -s lxf linuxformat
Все необходимые таблицы в базе данных SugarCRM позже создаст ln -s lxf magazine
сама, а сейчас вам нужно лишь установить пароль для пользователя Доступ к программе даст любой из адресов ‘http://hector/lxf’, ‘http://
root. Подключитесь к базе и выполните следующий SQL-запрос: hector/linuxformat’ или ‘http://hector/magazine’.
update user Мы почти готовы установить SugarCRM, осталось только опреде-
set password=password(‘ваш_пароль’) лить, кто по умолчанию будет владеть файлами SugarCRM: это сильно
where user = ‘root’; повлияет на остаток процесса. Выясните, кто владелец вашего web-
Пароль не забывайте: он потребуется при установке. сервера по умолчанию, и назначьте его же владельцем каталога lxf.
Угадайте-ка, трудно ли установить PHP? Вот именно, нетрудно: про- Например, в моем дистрибутиве Debian это ‘www-data’. Вообще-то я
цедура все та же, sudo APT-get install, только на сей раз надо приписать предусмотрел, что все файлы разрешают запись из группы, и добавил
php. Я уже упоминал, что файлы конфигурации Apache надо правиль- в группу себя, а сервер SugarCRM установил на моей рабочей станции:
но настроить на обработку PHP-скриптов, но в Debian уже все сдела- так я могу вносить все изменения прямо в файлы конфигурации.
но. Однако PHP все-таки придется настраивать. Поменяем системные
переменные PHP в файле php.ini, установив: Наконец-то установка
MEMORY_LIMIT в значение 64M. SugarCRM во время установки Вы, небось, уже открыли браузер и набрали URL вашего SugarCRM.
читает его неправильно и остается при значении по умолчанию: 8 МБ. При правильной настройке вашего сервера Apache на поддержку
Увидав стартовое окно программы установки SugarCRM, считайте, что все почти готово.
Скорая
помощь
Переменная
среды SESSION.
MAXLIFETIME
определяет
максимальное
время бездействия
пользователя,
по истечении ко-
торого происходит
автоматический
выход из системы.
По умолчанию это
значение установ-
Шаг 2 – самый важный: нужно вовремя подметить все ошибки и лено в 24 минуты
исправить их. (1440 секунд).
Шаг 6
Сидите и наблюдайте за сборкой SugarCRM и созданием новой базы
данных. Здесь бывают только 2 варианта ошибки. Первый – вы не
установили пароль либо ввели его неправильно, и SugarCRM не может
создать вам базу данных. Второй – неправильно указан объем памя-
ти (см. раздел Подготовка). Придется повторить установку с самого
начала, предварительно изменив строку ‘installer_locked =>true’ на
‘installer_locked => false’ в файле config.php, расположенном в каталоге
программы.
Но вы-то следовали инструкциям, и я надеюсь, что никаких про-
блем у вас не возникло, а SugarCRM успешно установлен. В следую-
щем месяце мы займемся тонкой настройкой системы, включая вве-
дение привычной вашим пользователям терминологии. Информация
о SugarCRM и ее применении приведена на www.sugarcrm.com. Это не
обязательно касается свободной версии, но все равно любопытно, как
она используется в большом бизнесе. До следующего раза! LXF
Альтернативы SugarCRM
Существует большое количество платных программ forums. Если вы хотите установить такую систему у себя,
CRM. Среди них Microsoft CRM (www.microsoft.com/ бесплатная версия SugarCRM – лучший выбор.
smallbusiness/products/mbs/crm/detail.mspx), Netsuite Доступны и платные версии программы, в том числе
(www.netsuite.com) и ведущее ПО для управления кон- «арендуемые», т.е. пользователь платит за программу и
тактами, SalesLogix (www.saleslogix.com). за сервер. В платных версиях присутствуют дополни-
Почему же мы выбрали SugarCRM? Ответ прост: тельные модули (например, прогноз продаж Sales
открытый исходный код. На данный момент более мил- Forecasting). Версия Professional обойдется вам в $40 за
лиона пользователей по всему миру используют пользователя в месяц, а версия Enterprise, позволяющая
SugarCRM. Разработку ведет SugarCRM Inc вместе с работать с базой данных Oracle – в $75.
сообществом. Имеется большое количество расшире-
ний и дружелюбная поддержка на www.sugarcrm.com/ Сравнение возможностей различных версий
SugarCRM. www.sugarcrm.com/crm/products/
Mono: Связь с
Создать супер-поиск по файловой системе меньше чем за час? Наш штатный вождь обезьян
Пол Хадсон делает невозможное не только возможным, но и простым...
шими версии 1.0. Причина, по которой у них такие маленькие номера
версий (Beagle находится на стадии 0.2.14) – недостаточно стабильный
программный интерфейс (application programming interface, API). API –
это термин для обозначения имен функций, типов параметров и воз-
вращаемых значений для данной библиотеки. Стабильность API означа-
ет, что если функция DoFoo() в версии 1.0 принимает целый аргумент и
возвращает строку, то любая использующая ее программа будет рабо-
тать и с версией библиотеки 1.01, потому что функция не меняется.
Самое главное в API – это ‘I’-часть, собственно интерфейс (имя,
параметры, возвращаемое значение): если он фиксирован, то неважно,
как библиотека выполняет свою задачу, и пусть себе её версии меня-
ются как угодно.
Резюмирую:
Мы используем Mono, и Beagle тоже – значит, нам доступны пре-
имущества Beagle.
Beagle имеет API, предоставляющий в наше распоряжение его функ-
циональность, но он не стабилен и в будущем может измениться (в
прошлом он менялся довольно круто).
Чтобы использовать Beagle, достаточно знать имена его функций и
как к ним обратиться.
Вам это все еще кажется трудным? А так оно и есть. Но я ведь обе-
щал научить вас всем навыкам, необходимым, чтобы к концу нашей
серии уроков вы стали профессионалом, поэтому перейдем к делу...
Начнем с имени нашего приложения. Приложениям Gnome на осно-
ве Mono уже приелись имена с буквой G, и я решил выбрать что-нибудь
В
аша миссия, если вы за нее беретесь, состоит в написании кон- смешное и продвинутое. Предлагаю Poochy, это имя малоизвестного
сольной программы, которая индексирует файловую систему песьеголового персонажа игры Nintendo (даже Майк про него не слы-
пользователя в фоновом режиме, сканирует почту, RSS-ленты, хал!) – оно вполне подходит к собачьей теме, заданной Beagle [англ.
историю браузера и содержимое файлов, а затем позволяет произво- «гончий пес»].
Наш дить во всем этом молниеносный поиск. Уловили? ОК, увидимся через Итак, запустите MonoDevelop, выберите File > New Project, затем
эксперт час – удачи вам!
Пол Хадсон Да, мы собрались создать шедевр менее чем за 60 минут; по-ваше-
полагает, что Mono – му, без чуда не обойтись? Но прикиньте: какое небезызвестное Linux-
лучшая вещь со
приложение умеет осуществлять поиск по всем источникам данных?
времен мультфильма
Pinky and the Brain, и Думайте, думайте! Ясное дело, Beagle. А на какой платформе построен
сейчас поддерживает Beagle? Mono! А о чем этот учебник? О Mono! Итак, мы позаимствуем
два проекта на основе возможности у проекта Beagle – точнее, у его библиотек.
Mono на SourceForge. Что хорошо в .NET – это шанс встать на плечи гигантам, использо-
вав их библиотеки. Конечно, С тоже такое допускает – например, про-
грамма Ark RPG имеет библиотеку libarkrpg0c2a, позволяющую другим
программам на С вызывать ее функции, а не реализовывать их заново.
Но такой подход не лишен проблем: например, Gstreamer разделен на
несколько библиотек, и у каждой собственный номер версии. Рядовой
пример – libgstdataprotocol-0.10.so.0.8.1. C не воспринимает новые вер-
сии библиотек без обновления самой программы, поэтому номера вер-
сий так важны – приложению подавай непременно libgstdataprotocol-
0.10, а не 0.9 или 0.11.
Mono позволяет программистам просто потребовать «давай Beagle»
и получить любую доступную версию. Такой подход не всегда срабаты- Новые проекты Mono начинаются с пустого окна в стиле
вает, особенно с некоторыми новыми Linux-приложениями, не достиг- MonoDevelop – это скоро станет второй натурой...
на DVD
библиотеками
C# > Console Project, уберите галочку с Create Separate Solution
Mono 1.2.2.1
MonoDevelop 0.12
Код примеров ста
тьи
Вам необходимо это знать, чтобы учесть такую возможность: вдруг Hit: file:///usr/share/gtk-doc/html/libuser/libuser-config.html
ваша программа завершится раньше, чем асинхронный метод успе- Hit: file:///usr/share/doc/nant-0.85/releasenotes.html
ет что-либо сделать? То есть завершится до того, как Beagle найдет Hit: file:///usr/share/gtk-doc/html/libgnome/libgnome-gnomeconfig.
какое-либо совпадение? Ответ состоит в том, что программа успешно html
отключится, и вызванный метод сгинет, не успев ничего напечатать. Hit: file:///usr/share/gtk-doc/html/gtk/gtk-question-index.html
Вот почему мы не получили никакого результата, и, значит, нам надо Hit: file:///usr/share/gtk-doc/html/gtk/gtk-Resource-Files.html
ждать, пока Beagle завершит поиск.
Вот здесь на сцену и выходит GTK. Когда вы используете про- Два шага вперед, один назад
граммы с графическим интерфейсом, приложение ждет, пока вы что- Кроме основного результата, мы также получили побочный: выхода
нибудь сделаете: выберете пункт меню или хотя бы наведете курсор из приложения не происходит. Когда Beagle вернет все возможные
Скорая
помощь мыши на кнопку. Фактически, любое действие посылает сигнал прило- результаты, Poochy будет по-прежнему чего-то ждать. Вы видели, что
жению, чтобы оно смогло отреагировать, то есть приложение просто основной цикл приложения – бесконечный, и коль скоро мы вызвали
ждет сигнала. Очевидно, такие приложения не отключаются, выполнив метод Application.Run(), то вошли в состояние вечного исполнения.
После вызова
Application.Quit() то или иное действие, иначе, например, в Abiword вам пришлось бы Пока программа не даст сбой, машина не перезагрузится или мы не
управление пе- непрерывно что-то печатать, чтобы редактор не закрылся. Вместо это- нажмем Ctrl+C, Poochy так и будет находиться в этом состоянии.
редается обратно го они используют так называемый главный цикл [сообщений], кото-
методу Main(), рый выглядит примерно так:
где продолжает-
ся выполнение
while (1) {
сразу после строки LookForSignals();
Application.Run(). ActOnSignals();
Метод Quit() }
просто велит GTK
Вы, конечно, сообразили, что это бесконечный цикл, но он практи-
завершить рабо-
ту – вы вольны чески не потребляет процессорное время и позволяет другим частям
продолжить де- приложения (графическому интерфейсу или, в нашем случае, Beagle)
лать, что захотите. работать на полную катушку. Нам того и надо, вот почему мы собира-
емся сесть на главный цикл GTK: пусть наша программа простаивает,
пока Beagle производит поиск и вывод результата. Чтобы это сделать,
добавим в конец метода Main() две строчки:
Gtk.Application.Init();
Gtk.Application.Run();
Этот код велит GTK запуститься и работать. Скомпилируйте про-
грамму, нажав F8, и запустите ее из командной строки. На этот раз вы
должны получить список результатов, похожих на следующие:
Hit: file:///home/paul/foo.xml Можете писать свой код в MonoDevelop, но раз надо передать
Hit: file:///usr/share/doc/tzdata-2006m/tz-link.html Poochy параметры, лучше запускать его из командной строки.
Не понял. Зачем мы пометили шлось бы писать System.Encryption. += для добавления методов. Это также закрывающую фигурные скобки на
Reference, а потом еще и прописали Cryptography.SHA1CryptoServiceProvider известно как подписка. Используя +=, вы отдельных строках?
строку using? foo=new System.Encryption.Cryptography. можете ‘подписать’ несколько методов Нет – вовсе нет! Лично я люблю ставить
Добавление чего-то через Reference поз- SHA1CryptoServiceProvider() – согласи- на одно событие – Mono просто запустит { на той же строке, что и оператор, ей
воляет воспользоваться соответствую- тесь, довольно утомительно! Вместо их по одному последовательно в порядке предшествующий. Этот стиль известен
щим кодом; добавление чего-то с помо- этого можно поместить в начале using их добавления. как Единственно Верный Скобочный
щью строки using позволяет сэкономить System.Encryption.Cryptography;, затем S Стиль, потому что его приняли Брайан
набор кода при вызове методов. Для HA1CryptoServiceProvider foo=new SHA1 Зачем нужен файл AssemblyInfo.cs? Керниган и Деннис Ритчи, когда они
подключения Beagle необходимо доба- CryptoServiceProvider(). Помните, что Вы будете смеяться, но там и правда изобрели язык программирования С.
вить его как Reference – тогда станут MonoDevelop по умолчанию добавляет информация о вашей сборке! В терми- Однако MonoDevelop по умолчанию
доступны его объекты и методы, и мы System в Reference. нах .NET сборка может быть как разде- использует стиль BSD, когда каждая
можем немедля их использовать, но ляемым объектом (SO файл в Linux или скобка располагается на своей строке.
только под полным именем, включаю- Почему мы используем +=, чтобы DLL в Windows), так и исполняемым Выбирайте, что вам больше нравится,
щим ссылку на пространство имен. добавить метод к событию Beagle? Я файлом. Номер версии вашего исполня- главное – соблюдать единый стиль во
Строка using Beagle; сообщает .NET, что думал, что += для добавления значения емого файла, имя программиста и дру- всей программе!
когда мы пишем Query, подразумевается к переменной. гая информация находится в конечном
Beagle.Query. В нашем случае экономия Да, += используется для сложения пере- двоичном файле poochy, и все это вы
невелика; а вот, например, алгоритм менных, но почему бы не расширить эту устанавливаете в AssemblyInfo.cs.
SHA1 в .NET находится в пространстве метафору на события, происходящие во
System.Encryption.Cryptography, и при- время работы Beagle, и не использовать Надо ли располагать открывающую и
{
Хитрые штучки Console.WriteLine(“Hit: “ + hit.Uri);
}
Если вы следовали первой части руководства этой серии, то у вас уже }
есть целый набор библиотек – Avahi, D-BUS, GTK#, ipod-sharp и другие. }
Теперь, узнав, как пользоваться Beagle, можете перенести полученные Это метод грубой силы: Beagle ищет все подряд, а мы фильтруем
знания на другие библиотеки и удивить себя собственной элитной ква- результаты перед выводом. Но Beagle можно научить искать и конк-
лификацией! Но имейте в виду: документация очень скудна. Beagle, ретный тип совпадений, с помощью метода AddHitType(): он позволит
при всей нехватке его документации, еще много лучше прочих. Я рас- описать то, что вы ищете, обычным текстом. Корректные параметры
смотрю некоторые библиотеки в следующих выпусках, а сейчас про-
включают Application, Calendar, Contact, Feeditem (для RSS), Image,
должайте читать...
IMLog, MailMessage и – вот оно! – File.
Вернувшись к методу Main(), найдите строку q.AddText(args[0]) и
добавьте перед ней строку:
q.AddHitType(“File”);
Может, вам того и надо – к примеру, вы хотите периодически про- Запустите программу, и увидите, что выводятся только файлы –
верять ресурс или дожидаться, пока данные поиска доберутся до вас никакой переписки из чатов, засоряющей результаты! LXF
через сокет. Но Poochy задуман как программа, выполняющая поиск
по требованию, а затем завершающаяся. Мы уже написали заглушку
метода OnHitsAdded, а теперь займемся методом OnFinished(), который
покамест пуст.
Когда Beagle вернет все результаты, он посмотрит, зарегистрирован Скорая
помощь
ли метод для свойства FinishedEvent. Мы уже делали это с нашим мето-
дом OnFinished(), который вызывается по окончании работы Beagle. А
сейчас нам нужно сообщить GTK, чтобы программа покинула основ- Строки «using»
ной цикл, тогда наше приложение сможет корректно завершиться. Это позволяют писать
меньше кода, но
довольно просто – вот как выглядит новый метод OnFinished(): иногда способст-
static void OnFinished(FinishedResponse response) вуют коллизиям.
{ Например, .NET со-
Application.Quit(); держит класс Timer
в System.Timers, а
}
SDL.NET содержит
Application.Quit() – это GTK-метод, который прерывает главный цикл, собственный
очищает все использованные GTK-ресурсы (в нашем случае их немно- класс Timer. Если
го, так как мы не работаем с графикой), затем передает управление вы объявите эти
нашему приложению сразу же после строки Application.Run() в методе пространства
с помощью выра-
Main(). Поэтому путь работы программы будет следующим: Main() > жений «using», то
SendAsync() > Application.Run() > основной цикл GTK > OnFinished() > Mono не поймет,
Application.Quit() > Main(). который Timer
Скомпилируйте, запустите и восхититесь собственным умом: ваша вы имели в виду,
когда писали Timer
программа делает все, что задумано, и потребовала всего десять строк
foo=new Timer();
значащего кода! Придется указать
Poochy выводит на экран все URL, RSS-ленты, документы OpenOffice. это явно: написать,
org, MP3, презентации PowerPoint, заметки Tomboy, исходный код, допустим, Timers.
JPEG файлы, приложения... (глубокий вдох)... email, видео, встречи, Timer.
Grub: Настройте
Один дистрибутив загрузить легко – но что если вам надо жонглировать дюжиной систем?
Ник Вейч грубо прикидывает…
Файл настройки
По умолчанию файл настройки Grub выглядит примерно так:
# grub.conf созданный anaconda
default=0
timeout=5
splashimage=(hd0,10)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.18-1.2849.fc6)
root (hd0,10)
kernel /boot/vmlinuz-2.6.18-1.2849.fc6 ro
root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.18-1.2849.fc6.img
title Fedora Core (2.6.18-1.2798.fc6)
root (hd0,10)
Д
обро пожаловать на очередной урок по Linux. Сегодня я про- kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro
веду несколько упражнений с загрузкой системы: покажу вам, root=LABEL=/1 rhgb quiet
как настроить её и улучшить с помощью Grub. Но сначала initrd /boot/initrd-2.6.18-1.2798.fc6.img
проведем разминку. Как вы уже знаете, при загрузке в вашу любимую title Wintest
операционную систему компьютер проходит несколько этапов. Все их rootnoverify (hd0,5)
Наш понимать не обязательно, но в определенный момент времени проши- chainloader +1
эксперт тое ПО компьютера (BIOS) пытается загрузить ОС с диска (или другого В начале файла идет набор глобальных настроек, описывающих
Ник Вейч устройства), используя для этого MBR (главную загрузочную запись) загрузку по умолчанию, время до начала загрузки по умолчанию,
Ежедневно диска. Это небольшая область на диске, содержащая код, который най- экранную заставку, и опция, позволяющая спрятать меню, если не
пользуясь Linux дет и загрузит ядро вашей ОС. будет нажата какая-либо клавиша. Остальные настройки – индивиду-
больше семи лет,
Ник знает про эту Долгое время Linux обходился системой Lilo (Linux Loader), уста- альные записи меню, каждая из которых начинается с заголовка.
систему все. навливавший код начальной загрузки в MBR и создающий map-файл с
Иногда он указаниями на код, который надо загрузить. У Lilo много ограничений, Начинаем
даже может и не самое мелкое из них состоит в том, что этот файл нужно заново OK, теперь взглянем на стандартные шаги, необходимые для загрузки
припомнить, создавать всякий раз, когда вы хотите поменять инструкции загрузки. с помощью Grub. Первым делом познакомьтесь с командой root. Она
что именно.
Чтобы сделать загрузку более гибкой и внести новые возможности устанавливает корневое устройство, а также подключает его, чтобы
в этот процесс, был создан Grub, Grand Unified Boot manager (Большой добыть информацию о размере раздела и т.п. Вот как выглядит типич-
Унифицированный менеджер Загрузки); он так- ная запись:
же поддерживает загрузку нескольких систем. root (hd0,0)
На этом уроке! Позор, что почти никто не использует его возмож- Команда устанавливает корневым разделом первый раздел первого
ности! Среднестатистический дистрибутив Linux диска. Если как корневой вы хотите использовать не-Linux раздел, то
Коллекция экранов загрузки при установке создает загрузочную запись для используйте команду rootnoverify, которая не пытается сначала под-
Многозагрузочные системы
себя, а если у вас есть Windows, то везучим он ключить устройство. Вам необходимо это сделать, чтобы прицепить
Защита паролем
создаст запись и для него. Но может-то он гораз- загрузчик Windows, например, который наверняка располагается на
Аварийные загрузочные записи
до больше! А тем, кто хочет загружать более разделе NTFS.
свой загрузчик
То, как Grub определяет диски, нередко вызывает путаницу (да
такую, что в грядущем Grub2 это решено переделать). Во-первых,
он, не в стиле Linux, использует номера дисков вместо букв, так что
согласно Grub hdb становится hd1. Вторая особенность состоит в том,
что вся нумерация начинается с нуля!
Для вящего замешательства, если в Linux, пытаясь указать файл на
втором разделе второго диска на системе, вы использовали hdb2, то
в Grub это будет (hd1,1). Ветеран вы или салага, но когда-нибудь здесь
непременно споткнетесь!
Определив корневое устройство, мы должны указать расположение
образа, который хотим запустить. Это делается с помощью команды
kernel. Она принимает имя файла (который представляет образ загру-
жаемого ядра). Grub автоматически может распознавать тип файла для
ядер Linux, а также большинства других Unix-систем.
Обычно вы видите примерно следующее:
kernel /boot/vmlinuz-2.6.18
Заметим, что здесь используется устройство, которое вы опреде-
лили как корневое. Так что, увидев эту строчку, Grub попытается загру-
зить файл (hd0,0)/boot/vmlinuz-2.6.18.
Если образ ядра почему-либо находится на другом устройстве,
«Ветеран вы или Для вызова командной строки жмите ‘c’ в меню (если оно не заблокировано! См. указания
салага, но когда-нибудь по безопасности). Команды Grub будут доступны в интерактивном режиме.
здесь да споткнетесь!»
rootnoverify (hd0,0) Скорая
то вам необходимо только приставить спереди нужный дескриптор chainloader+1 помощь
устройства. Все остальные аргументы команды kernel передаются ядру, title Windows B
так что если ваши действия как-то связаны с конкретным драйвером, hide (hd0,0) Если ваша
необходимые опции можно указать в конце этой строки. rootnoverify (hd0,1) сконструированная
chainloader+1 запись в меню не
Если ваше ядро использует образ RAM-диска для начальной загруз- title Windows C работает, можете
ее отредактировать
ки, то вам необходимо указать его здесь, вот так, например: map (hd0) (hd1) во время загрузки,
initrd /boot/initrd-2.6.18 map (hd1) (hd0) для этого просто
Вот и все, что нужно для стандартной записи в меню. Если бы вы rootnoverify (hd1,0) выберите нужную
набирали эти строки из командной строки Grub, то затем понадобилось chainloader+1 запись и нажмите
‘e’. Выбор записи
набрать команду boot, однако ее наличие в меню подразумевается. Команда hide полностью прячет раздел от операционной системы и
для редактирова-
Чтобы запустить систему Windows, необходимо вызвать загрузчик тем самым предотвращает возможные инциденты. ния производится
Windows. Команда chainloader просто загружает другой загрузчик с клавишами курсора.
указанного корневого раздела. Значение +1 означает, что дополни- Аварийное восстановление Измените запись и
тельный загрузчик сидит в первом блоке раздела (именно туда его Самое тяжкое преступление для рабочей системы – невозможность нажмите Enter. Если
все в порядке, на-
помещает Windows). перезагрузиться после сбоя. Меньше всего вам хотелось бы, чтобы жмите ‘b’, и запись
ядро системы впадало в панику из-за выхода из строя какого-то обо- загрузится (если
Двойной пакет Окон рудования – особенно если вы администрируете удаленный сервер за загрузка даст сбой,
Grub также позволяет установить несколько версий Windows. тысячи километров от вас. Grub здесь может прийти вам на помощь: у то вы вернетесь
к меню).
Стандартный загрузчик Windows 9x/DOS срабатывает, только если он него есть система восстановления после сбоев, позволяющая опреде-
находится на первом диске, что, очевидно, затрудняет установку более лить альтернативный порядок загрузки, если отказала основная после-
чем одной копии системы. Хуже того: если у вас на одном диске два довательность инструкций.
загрузочных раздела Windows, могут возникнуть проблемы. Заметим, что отказ может быть как проблемой Grub, так и пробле-
Пора уже сообразить, что Grub может помочь и в этой ситуации. мой системы – например, с настройкой Grub все в порядке, но ядро
Команда map позволяет переупорядочить разделы диска, и вы сможе- не может загрузиться, не находит файловую систему или что там еще
те установить две версии Windows, обманув загрузчик: он поверит, что надо. Понятно, что защиты от дурака нигде не бывает, случаются такие
грузится с первого диска. Вот как можно это сделать: обстоятельства, что процесс загрузки просто зависает, а не отказыва-
title Windows A ет, однако данный метод позволит предотвратить множество типичных
hide (hd0,1) проблем.
…
и т.д. Далее, существует несколько способов использования паролей.
В показанном выше файле, пользователь сможет выбирать пункты
меню, но не запускать команды Grub через командную строку и не
редактировать существующие настройки. Если попытаетесь, то вас
попросят пароль – тех, кто его не знает, Grub пнет обратно в меню.
Это довольно простая мера защиты; а если вы хотите вообще
скрыть присутствие альтернативных записей загрузки? Что ж, команда
password может принимать еще один аргумент, указывающий на дру-
гое меню Grub.
password -md5 :$1$IsF… /grub/menu2.lst
Вы можете, конечно, назвать файл как угодно и даже хранить его
где угодно, лишь бы Grub мог до него добраться.
При загрузке Grub отобразит обычное меню, с теми же ограниче-
ниями. А вот если на экране выбора в меню вы нажмете ‘p’ и введете
правильный пароль, то он загрузит совершенно новый файл меню со
всеми спрятанными опциями.
И наконец, полезный способ использовать пароль – это применить
его к отдельному образу. Строка с паролем вставляется сразу после
заголовка title. Когда данная запись выбирается в меню, Grub потребу-
ет пароль – а не то откажется продолжить работу. Это полезно, если к
вашей системе имеет доступ несколько групп пользователей.
Проблемы с загрузкой? Указали не тот диск в настройке? Говорили вам: споткнетесь!
Создание загрузочного Grub CD Нажмите ‘e’ и исправьте загрузочную запись во время сессии.
Grub на загрузочном диске может очень пригодиться – например, что-
бы оживить систему, которая перестала работать, или для загрузки с копию). И хотя вы создаете Grub CD, это не значит, что на него нельзя
устройства, не распознаваемого BIOS (это непросто, так как придется поместить другие полезные вещи.
установить ядро, поддерживающее устройство в образе RAM-диска, и Для создания образа можно использовать команду makeiso. Нужно
использовать его для загрузки настоящего ядра). будет сообщить ей, где находится загрузочный образ. Затем, так как
Кроме загрузки с неподдерживаемого устройства, вы также можете данный образ Grub не использует систему эмуляции диска (где образ
использовать спасательный диск, чтобы переустановить первый этап диска эмулирует загрузочную дискету), на это также придется указать,
Grub в главной загрузочной записи на диске. да еще добавить несколько дополнительных параметров для макси-
Чтобы загрузиться с CD, Grub пользуется образом El Torito. El Torito – мальной совместимости с системами со старым BIOS. Сведя все вмес-
это имя стандартного протокола загрузки с CD (странное? См. врезку те, получаем, что ввести надо
Знаете ли вы?.. ниже), которому требуется особый код. mkisofs r -b grubcd/grub/stage2eltorito -no-emul-boot -boot-loadsize
Создайте каталог, где будет хранится образ, и реплицируйте струк- 4 -boot-info-table -o Grubcd.iso
туру каталога boot следующим образом: Данная команда создаст файл ISO, который будет грузиться (про-
mkdir -p grubcd/boot/grub верьте, что BIOS настроен на загрузку с CD!). Осталось использовать
Теперь необходимо скопировать нужный образ Grub. Ваш дист- CDRecord или инструмент вроде K3b для прожига образа на диск, и
рибутив обычно хранит их в /usr/share/Grub/i386-pc/, хотя имя по- все готово.
следнего каталога может варьироваться. Для Fedora, например, мы
использовали Завершение
cp /usr/share/grub/i386-redhat/stage2_eltorito grubcd/boot/grub/ Наш урок окончен, и настало время остыть. Если ваши Linux мускулы
Без конфигурационного файла, Grub просто загрузит командную еще не болят, то можете попытаться двигаться дальше. Grub хорош,
строку, позволив вам вводить команды загрузки напрямую. Однако вы но разве вы не думаете, что он может больше? Разве вас не достает,
можете при желании включить такой файл (например, списать его с как он обзывает диски и разделы? Многие уже на это натыкались. На
вашей основной системы Linux, чтобы использовать его как резервную самом деле их так много, что Grub2, который уже довольно долгое
время находится в разработке, исправит эти
недочеты.
Знаете ли вы?.. Grub2 вырос из старого исследователь-
ского проекта Pupa (Preliminary Universal
Имя El Torito (это раширение формата Programming Architecture), который был
ISO9660, позволяющее загружать компью- создан для исследования процесса обновле-
тер с DVD и CD дисков) по-испански значит ния. Некоторые новые возможности Grub2
«бычок». Механизма загрузки оно никак не включают расширяемую, модульную среду,
проясняет. Но так называется сеть рестора-
поддержку скриптов и ориентированность на
нов мексиканской кухни в США. Легенда
многие платформы.
Hajime Nakano
К
аждый уважающий себя набор визуальных элементов распо- содержит меню и панель инструментов для управления проектом. В
лагает средством для того, чтобы бросить пару-тройку компо- рабочей части окна расположен список визуальных элементов верх-
нентов на заготовку окна приложения, настроить их свойства и него уровня.
получить остов будущей программы. У Qt есть Qt Designer, у wxWidgets
есть DialogBlocks, а у GTK+ есть Glade. Если ваш опыт программиро-
вания ограничивается такими средами, как Borland C++ Builder или
Microsoft Visual C#, приступая к программированию с помощью Glade,
вы должны понять одну важную вещь: Glade – это не IDE. В нем нет
ни интегрированного компилятора, ни интерактивного отладчика, ни
редактора кода с автоматическим завершением строки. Glade 2.x гене-
рирует минимальный код, который вам придется дописывать в вашем
любимом редакторе, а Glade 3.x вообще стремится возложить генера-
цию кода на другие инструменты. Несмотря на то, что в ближайшее
время старый Glade будет вытеснен третьей версией, знакомство с
этим инструментом разработки позволит нам взглянуть на структуру
сложных программ GTK+ глазами самих авторов набора компонентов.
Поэтому данная статья посвящена Glade 2.x, а в следующей статье мы
узнаем, чем Glade 3.x отличается от своего предшественника. Мы вос-
пользуемся Glade для создания простой программы ImageViewer. Ее Рис. 2 Главное окно Glade.
исходные тексты можно найти на диске, но я советую вам пройти вмес-
те со мной все шаги по созданию данного приложения. Окно «Палитра», которое, в том или ином виде, присутствует в
Каждый раз, когда мы создаем новый проект Glade, перед нами каждой среде визуальной разработки, предоставляет нам доступ
появляется диалоговое окно, в котором нам предлагается выбрать тип к пиктограммам визуальных элементов. Окно Палитра Glade 2.*
проекта – GTK+ или GNOME (Рис. 1). Нам нужен GTK+. (Рис. 3) содержит несколько вкладок. Список вкладок зависит от типа
проекта (GTK+ или GNOME). При работе с нашим проектом палитра
будет содержать три вкладки: GTK+ Основные, GTK+ Дополнительные
и Устаревшие.
Окно редактора свойств (Рис. 4) предназначено, естественно, для
редактирования свойств визуальных элементов. Это окно также содер-
жит несколько вкладок. Вкладка Эл. управления позволяет настраи-
вать специфические свойства визуального элемента. Вкладка Упаковка
позволяет настраивать параметры упаковки тех визуальных элементов,
Рис. 1 Окно выбора типа проекта. которые вложены в какой-либо контейнер. С помощью вкладки Общие
можно настраивать общие свойства визуальных элементов, а вклад-
В среде Glade в процессе работы может быть открыто несколь- ка Сигналы предназначена для связывания сигналов и их обработчи-
ко окон, постоянными из которых являются три: главное окно, окно ков. Наконец, безымянная вкладка, пиктограмма которой изображает
палитры и окно редактора свойств объектов. Главное окно (Рис. 2) инвалидное кресло, позволяет настраивать параметры доступности
классика
(accessibility) визуальных элементов GNOME. Эту вкладку мы пока рас- мышью в окно приложения. Во многих редакторах форм этот процесс
сматривать не будем. называется перетаскиванием, поскольку компонент перетаскивается
мышью с палитры компонентов в окно формы, но в Glade все про-
исходит по-другому. Для того чтобы перенести компонент в форму,
нужно сначала щелкнуть мышью по этому компоненту в палитре, а
затем – по той области на форме, в которой этот компонент должен
быть размещен (вот почему мы используем термин «перенос» а не
«перетаскивание»). При переносе в форму вертикального контейне-
ра открывается диалоговое окно, в котором Glade просит нас указать
число строк в нем. Cоздайте контейнер с двумя строками. В резуль-
тате главное окно будет разделено на две горизонтальные области,
расположенные одна под другой (для вертикального расположения
дочерних элементов). В верхнюю область перенесите с палитры объ-
ект Панель инструментов. Панель инструментов также представляет
собой контейнер, так что при переносе панели в окно приложения мы
снова должны указать количество дочерних элементов (на этот раз –
кнопок панели). Панель инструментов нашего приложения должна
содержать две кнопки. Вы можете заметить, что после переноса панели
инструментов в окно формы, размеры верхней области вертикально-
го контейнера подстраиваются под размеры панели, а на самой пане-
ли появляются две незаполненные области для размещения кнопок
(Рис. 5). В эти области мы должны перенести два элемента Toolbar
Button – кнопки панели инструментов, которым соответствует объ-
ект GtkToolButton. В окне панели инструментов появляются заготовки
кнопок.
сложных проектах, состоящих из нескольких файлов, имена объ- ботчиков сигналов для этого окна создавать не нужно, поскольку все
ектов GTK+ играют важную роль, поскольку именно они служат для необходимые обработчики создаются по умолчанию.
идентификации объектов. В редакторе свойств объектов на вкладке
Эл. управления присутствует свойство Имя, которое позволяет вам
получить доступ к имени объекта на этапе визуального программи-
рования. Две кнопки, которые вы добавили на панель инструментов,
имеют имена toolbutton1 и toolbutton2. Я предполагаю, что вы добав-
ляли кнопки в порядке слева направо, то есть первой слева является
кнопка toolbutton1.
Только что созданные кнопки выглядят совсем не так, как нам
хотелось бы. Для того, чтобы придать кнопкам требуемый вид, мы
должны отредактировать их свойства. Выберите в окне формы кноп-
ку toolbutton1 и перейдите в редактор свойств, на вкладку Эл. управ-
ления. Свойству Метка присвойте значение Открыть. Затем щелк-
ните по значку раскрывающегося списка в поле свойства Иконка,
в открывшемся списке выберите пиктограмму Открыть. Нам необ-
ходимо создать заготовку обработчика для сигнала кнопки clicked.
Перейдите на вкладку Сигналы редактора свойств и щелкните кнопку
с многоточием справа от строки ввода Сигнал. Перед вами раскры-
вается список сигналов, в котором следует выбрать сигнал clicked. В
строке Обработчик появляется имя обработчика сигнала (по умолча-
нию – on_toolbutton1_clicked). Щелкните кнопку Добавить. В резуль- Рис. 7 Окно с информацией о программе.
тате новая функция будет добавлена в список обработчиков сигналов
кнопки toolbutton1. Сохраним наш проект. Как уже отмечалось, Glade 2.* позволяет
Перейдем теперь к редактированию свойств кнопки toolbutton2. генерировать исходный код приложения. Для этого нужно щелкнуть
Свойству Метка второй кнопки присвоим значение О программе. В на кнопку Построить. Теперь мы можем скомпилировать нашу про-
списке значений свойства Иконка выберем значение Справка, затем грамму (точнее, ту ее часть, которую мы создали). Перейдем в дирек-
создадим заготовку обработчика сигнала clicked (назовем его on_ торию проекта и выполним файл autogen.sh. В результате будут созда-
toolbutton2_clicked), так же как и в предыдущем случае. ны сценарий configure и make-файл. Мы можем собрать программу с
В нижнюю область вертикального контейнера следует перенес- помощью команды make. Двоичный файл программы будет создан в
ти элемент палитры Изображение (объект GtkImage, имя объекта директории src. Если вы запустите программу на этом этапе (я реко-
по умолчанию – image1). Выделите объект image1 в окне формы. мендую первый раз запустить программу с консоли), то заметите две
Перейдите на вкладку Упаковка редактора свойств и присвойте неприятные вещи. Во-первых, окно с информацией о программе само
значение Да свойству Заполнение. Далее, выделите в окне формы собой появляется вместе с главным окном программы. Во вторых, пос-
палитру инструментов (объект toolbar1 типа GtkToolbar). Перейдите ле закрытия главного окна программы ее работа не завершается (это
на вкладку Упаковка редактора свойств и также присввойте значение заметно, если запустить программу из окна консоли). Для того, чтобы
Да свойству Заполнение (Рис. 6). исправить ситуацию с окном aboutdialog1, нам нужно отредактировать
файл src/main.c. Откройте этот файл в текстовом редакторе и удалите
из него строки
aboutdialog1 = create_aboutdialog1 ();
gtk_widget_show (aboutdialog1);
Как вы, конечно, поняли, файл main.c содержит главную функцию
программы. По умолчанию этот файл содержит код для создания и
отображения на экране всех визуальных элементов верхнего уровня.
Помимо файла main.c среда Glade создала еще несколько файлов
исходных текстов в директории src. Файлы interface.c и interface.h
содержат код, отвечающий за работу элементов управления, кото-
рые мы создали в режиме визуального программирования. Файлы
support.c/support.h включают некоторые вспомогательные функции.
Обработчики сигналов, которые мы создали в редакторе свойств Glade,
объявлены в файле callbacks.h, а определены – в файле callbacks.c
(вы можете изменить имена файлов исходных текстов, заданные по
Рис. 6 Форма приложения с кнопками и объектом GtkImage.
умолчанию, в окне настроек Glade). Только файлы main.c и callbacks.c
предназначены для ручного редактирования. Текст остальных файлов
Заголовок перезаписывается Glade в процессе генерации кода. Теперь вспомним
Мы должны еще добавить в проект окно с информацией о програм- первые уроки программирования GTK+. Для того, чтобы программа
ме. Это просто, поскольку необходимое окно входит в набор визу- завершалась вместе с закрытием главного окна, необходимо опреде-
альных компонентов GTK+ (Рис. 7). Вы найдете его на вкладке GTK+ лить обработчик сигнала destroy объекта окна. В главном окне Glade
Дополнительные палитры компонентов (элемент About Dialog, объект выделите главное окно приложения и перейдите на вкладку «Сигналы»
GtkAboutDialog). Окно с информацией о программе является элемен- редактора свойств. Выберите в списке сигналов сигнал destroy (его не
том верхнего уровня, поэтому после щелчка мышью в палитре ком- следует путать с доступным там же событием “destroy event”) и создай-
понентов объект aboutdialog1 появится в списке элементов верхнего те заготовку обработчика для этого сигнала точно так же, как вы созда-
уровня. Перейдя на вкладку Эл. управления редактора свойств, вы смо- вали заготовки обработчиков сигналов clicked. Сгенерируйте заново
жете настроить основные свойства этого диалогового окна (название исходный код, нажав кнопку «Построить». Откройте в текстовом редак-
программы, имя автора, информацию о правах и т.д.). Никаких обра- торе файл callbacks.c. Найдите заготовку обработчика on_window1_
destroy() и добавьте в него вызов функции gtk_main_quit():
void on_window1_destroy (GtkObject * object, gpointer user_data) которой задано в константе GTK_STOCK_OPEN,
{ функция gtk_dialog_run() возвращает значе-
gtk_main_quit(); ние GTK_RESPONSE_ACCEPT. В случае выбора
} пользователем кнопки «Открыть» мы должны
Мы используем тот же метод завершения программы, что и во узнать имя выбранного файла, получить ука-
всех предыдущих примерах. Сохраните файл callbacks.c. Теперь може- затель на объект image1 и загрузить файл в
те перекомпилировать и запустить программу снова. Окно описания этот объект. Если вас удивляет, что я включил
программы уже не появляется, а закрытие главного окна программы получение указателя на объект image1 в спи-
приводит к ее завершению. После внесения изменений в свойства сок наших задач, то вспомните, что у вас нет
визуальных объектов вы должны каждый раз заново генерировать доступа к переменной, которая хранит этот
исходный код (и, конечно, сохранять все изменения, сделанные в указатель. Для того, чтобы получить указа-
исходных текстах вручную). Что произойдет, если вы сначала отре- тель на объект image1, мы должны воспользо-
дактируете код одного обработчика сигнала, а затем добавите новый ваться функцией поиска объектов в иерархии
обработчик в режиме визуального редактирования? Ничего страшного визуальных компонентов нашего приложе-
не случится. Glade добавит новый код в файл callbacks.c, и не тронет ния. Мы начинаем поиск объектов с того, что
изменения, сделанные вами (этим свойством обладают только файлы находим визуальный элемент верхнего уров-
callbacks.c и main.c). ня. Указатель на визуальный элемент верхне-
Завершающая часть работы над нашей программой связана с добав- го уровня мы получаем с помощью функции
лением кода в обработчики событий clicked двух кнопок. Сами функ- gtk_widget_get_toplevel(). В поисках нужно-
ции-обработчики on_toolbutton1_clicked() и on_toolbutton2_clicked() го объекта функция gtk_widget_get_toplevel()
уже определены в файле callback.c. Первая функция должна вызывать перебирает иерархию визуальных элементов,
диалоговое окно выбора файла и загружать выбранный пользователем начиная с того элемента, чей указатель передан ей в единственном Рис. 8
файл изображения в компонент image1: параметре. В качестве стартового значения для поиска мы передаем Работающая
void функции gtk_widget_get_toplevel() указатель на объект-кнопку, для программа
on_toolbutton1_clicked (GtkToolButton * toolbutton, gpointer user_data) которой вызван обработчик on_toolbutton1_clicked() (адрес этого объ- ImageView.
{ екта передается функции обработчику в параметре toolbutton, и это
GtkWidget * file_chooser_dialog; единственный адрес объекта нашего приложения, которым мы распо-
file_chooser_dialog = gtk_file_chooser_dialog_new(“Открыть”, NULL, лагаем в данный момент). Адрес объекта, представляющего элемент
GTK_FILE_CHOOSER_ACTION_OPEN, верхнего уровня (в нашем случае это объект window1 – главное окно
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, приложения) мы сохраняем в переменной toplevel. Далее мы получаем
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); указатель на объект image1 с помощью функции lookup_widget() (эта
if (gtk_dialog_run(GTK_DIALOG (file_chooser_dialog)) == GTK_ функция сгенерирована Glade для нашего проекта и объявлена в файле
RESPONSE_ACCEPT) support.h). Функция lookup_widget() позволяет найти визуальный объ-
{ ект по его имени. Документация гласит, что первым аргументом lookup_
GtkWidget * toplevel; widget() должен быть указатель на визуальный элемент верхнего уров-
GtkWidget * image; ня, либо указатель на любой другой элемент иерархии приложения.
char *filename; В качестве отправной точки поиска мы выбираем элемент верхнего
filename = gtk_file_chooser_get_filename(GTK_FILE_ уровня, во-первых, потому, что так красивее, и во-вторых, потому, что
CHOOSER(file_chooser_dialog)); у нас все равно уже есть указатель на объект главного окна. Вторым
toplevel = gtk_widget_get_toplevel(GTK_WIDGET(toolbutton)); аргументом lookup_widget() должно быть имя искомого визуального
image = lookup_widget(GTK_WIDGET(toplevel), “image1”); элемента. Указатель на объект image1 сохраняется нами в переменной
gtk_image_set_from_file(GTK_IMAGE(image), filename); image. Мы получаем имя выбранного пользователем файла с помо-
gtk_window_set_title(GTK_WINDOW(toplevel), filename); щью функции gtk_file_chooser_get_filename() и загружаем хранящееся
g_free (filename); в файле изображение в объект image1 с помощью функции gtk_image_
} set_from_file(). Остальной код обработчика должен быть вам понятен.
gtk_widget_destroy (file_chooser_dialog); Осталось заполнить обработчик сигнала clicked кнопки toolbutton2:
} void
Все необходимые заголовочные файлы включены в файл callbacks. on_toolbutton2_clicked(GtkToolButton *toolbutton, gpointer user_data)
c, так что мы можем о них не беспокоиться. Диалоговое окно выбора {
файла реализуется объектом GtkFileChooserDialog. Объект создает- GtkWidget * about_dialog;
ся функцией gtk_file_chooser_dialog_new(). В первом параметре этой about_dialog = create_aboutdialog1();
функции передается заголовок создаваемого окна. Второй параметр gtk_widget_show(about_dialog);
может содержать ссылку на родительский визуальный элемент. Третий }
параметр служит для передачи константы, которая указывает, для чего Получить указатель на объект aboutdialog1 очень просто. В файле
предназначено диалоговое окно – для открытия или для сохранения interface.h определена функция create_aboutdialog1(), которая создает
файла. Далее следует список параметров, состоящий из имен кнопок объект окна описания программы и возвращает указатель на него. Нам
и констант, которые должны идентифицировать эти кнопки. Список остается только вывести окно на экран с помощью gtk_widget_show().
может содержать описание одной или нескольких кнопок и должен Это те самые два вызова функций, которые нам пришлось удалить из
заканчиваться значением NULL. Функция gtk_dialog_run() делает диа- файла main.c, для того, чтобы окно описания программы не появлялось
логовое окно видимым и возвращает управление после того, как тогда, когда не надо. Теперь мы можем проверить, как работает наша
пользователь нажмет одну из кнопок. При этом функция возвращает программа (Рис. 8). LXF
значение, сопоставленное нажатой кнопке при вызове функции gtk_file_
chooser_dialog_new(). Если пользователь нажал кнопку «Открыть», имя
Через месяц Мы узнаем, что нового привносит Glade 3.x в процесс визуальной разработки.
Консольный
ЧАСТЬ 10 Привыкли считать консольные приложения лишенными пользовательского интер-
фейса? Напрасно – старый добрый терминал способен на многое. На что именно – расскажет
Андрей Боровский.
Real computer scientists despise the idea of actual hardware.
Hardware has limitations, software doesn’t.
It’s a real shame that Turing machines are so poor at I/O.
Из программистского фольклора.
К
аждому, кто приступает к изучению программирования для но даже необходимо. Теперь можете проверить свою сообразитель-
Unix, консольный ввод/вывод представляется простым делом. ность. Отодвиньте эту статью на десять секунд и подумайте, в каких
Для создания графических программ необходимо сначала случаях программа не должна допускать перенаправление своего
изучить язык программирования, а затем – один из интерфейсов про- вывода? Самый простой пример – интерактивная консольная програм-
граммирования графики. Для создания консольных программ доста- ма. Интерактивные программы выводят данные небольшими порци-
точно изучить язык программирования. Если вы не шли к изучению ями, после чего останавливаются в ожидании реакции пользователя.
программирования окольными путями, то ваши первые программы Примером такой программы может служить клиент SSH. Если пользо-
наверняка были консольными. Однако интерфейс консоли Unix обла- ватель пытается перенаправить вывод интерактивной программы, зна-
дает гораздо большим числом возможностей, чем кажется на первый чит, он, скорее всего, просто не понял, как работать с вашей програм-
взгляд. О некоторых дополнительных возможностях работы с консо- мой. Желательно предотвратить бессмысленное действие и сообщить
лью мы и поговорим сегодня. Богатство функций работы с консолью в пользователю об этом. Рассмотрим сначала простейший пример про-
Unix объясняется тем, что у Unix долгая история. Когда-то терминалы граммы, которая не позволяет перенаправить свой вывод на устрой-
были настоящими устройствами (в некоторых областях человеческой ство, не являющееся терминалом (текст этой программы вы найдете
деятельности такие устройства применяются и сейчас), подключен- на диске, в файле noredirect.c).
ными к компьютеру через последовательный порт. Часто терминал #include <stdio.h>
и компьютер были отделены друг от друга прослойкой в виде пары #include <stdlib.h>
модемов и телефонной линии. Последовательный порт и модем счи- #include <unistd.h>
тались неотъемлемой частью терминала, и интерфейс управления ими #include <string.h>
стал частью интерфейса управления терминалом. Кроме того, такие
устройства, как, например, принтеры, тоже считаются терминалами int main (int argc, char ** argv)
Unix. Если в графическом программировании принтер считается уст- {
ройством ввода/вывода данных, подобным графическому дисплею, char * errstr = “I will not redirect my output!\n”;
то вполне логично, что в консольном программировании принтер рас- if (!isatty(fileno(stdout))) {
сматривается как терминал. Таким образом, с точки зрения Unix терми- write(2, errstr, strlen(errstr));
ввод/вывод
на DVD
Код примеров ста
тьи
структуры, описывающую текущее состояние терминала, и делаем termios.c_cc[VMIN] или termios.c_cc[VTIME] присвоено нулевое значе-
еще одну копию. Затем мы модифицируем значения полей одной из ние, а другому – ненулевое, то условием возврата из функции чтения
копий termios так, чтобы изменить нужные нам параметры терминала, данных становится значение ненулевого параметра. Наконец, если оба
и передаем драйверу терминала новое значение termios с помощью параметра имеют нулевые значения, функция чтения данных всегда
функции tcsetattr(3). После того, как работа с терминалом в нестан- будет возвращать управление немедленно. Если к моменту вызова
дартном режиме закончена, мы восстанавливаем исходное состояние функции чтения данных в потоке ввода были символы, буфер функ-
терминала с помощью сохраненной копии исходной структуры termios ции будет заполнен ими, иначе функция чтения данных вернет пустой
и функции tcsetattr(). Первым аргументом функции tcgetattr() должен буфер.
быть дескриптор файла, соответствующего терминалу. Вторым аргу- Вернемся к функции tcsetattr(). Во втором параметре этой функции
ментом является указатель на структуру termios, в которой функция может быть передан один или несколько нижеследующих флагов (для
возвращает текущие настройки терминала. Первым параметром функ- комбинации флагов используется оператор |).
ции tcsetattr() также служит дескриптор файла терминала. Второй TCSANOW – изменения параметров терминала вступают в силу
параметр используется для передачи флагов, определяющих, когда немедленно.
изменения параметров терминала должны вступить в силу. Третьим TCSADRAIN – изменения параметров терминала вступают в силу пос-
параметром tcsetattr() является указатель на структуру termios, содер- ле того, как все данные, записанные ранее в файл устройства, будут
жащую новые параметры. переданы самому устройству. Это значение обычно используется, если
Ключевой момент во всем этом – модификация полей структуры новые значения полей termios изменяют параметры вывода данных.
termios. Первые четыре поля структуры содержат комбинации флагов, TCSAFLUSH – изменения параметров терминала вступают в силу
определяющих параметры терминала. Пятое поле представляет собой после того, как все данные, записанные ранее в файл устройства, будут
массив значений. Индексам этого массива соответствуют специальные переданы самому устройству. Все данные, которые в этот момент были
константы, с помощью которых мы можем понять значение элемен- введены с клавиатуры, но еще не прочитаны программой, при этом
тов массива. Рассмотрим сначала поля termios, содержащие флаги. теряются.
Полное описание флагов (а их довольно много) можно найти на стра- TCSASOFT – этот флаг заставляет функцию игнорировать значения
нице man, посвященной termios. Я перечислю здесь только некоторые полей c_cflag, c_ispeed и c_ospeed структуры termios. Поля c_ispeed и
флаги, которые устанавливаются в поле c_lflag, поскольку они пред- c_ospeed управляют скоростью передачи входящих и исходящих дан-
ставляются мне наиболее интересными. Флаг ECHO управляет отобра- ных. Поскольку мы не рассматриваем подключение терминала с помо-
жением вводимых символов на экране монитора. Если он установлен, щью модема, эти поля нас не интересуют.
символы отображаются, в противном случае – нет. Флаг ECHOE делает Настало время освежить теорию практикой. Рассмотрим два при-
то же, что флаг ECHO, но только для управляющих символов, стира- мера, в которых изменение свойств терминала может оказаться полез-
ющих другие символы или строки (например, BackSpace). Поскольку ным. Первый из них – это консольная программа, предназначенная
неканонический режим не поддерживает редактирование строки, в для ввода пароля. Как вы знаете, во время ввода пароля такие про-
этом режиме флаг ECHOE игнорируется. Если установлен ICANON, граммы не отображают никаких символов. Теперь вы также догадыва-
терминал находится в каноническом режиме, в противном случае – в етесь, как они это делают – им достаточно передать системе структуру
неканоническом. Флаг IEXTEN переводит терминал в режим расширен- termois со сброшенным флагом ECHO. Программа passwdmode (файл
ной обработки вводимых символов. От того, установлен ли флаг ISIG, passwdmode.c) демонстрирует эту технику:
зависит, будут ли специальные комбинации клавиш, такие как Ctrl-C и #include <stdio.h>
Ctrl-Z, инициировать соответствующие им сигналы. #include <stdlib.h>
Из констант, соответствующих индексам массива c_cc[], наиболь- #include <signal.h>
ший интерес представляют две – VMIN и VTIME. Чтобы объяснить #include <termios.h>
важность этих параметров, рассмотрим подробнее работу терминала
в неканоническом режиме. В каноническом режиме сигналом завер- #define BUF_SIZE 15
шения ввода данных является нажатие клавиши Ввод. Любая функция,
считывающая данные с терминала, вернет управление вызвавшей ее int main (int argc, char ** argv)
программе только после того, как пользователь нажмет эту клавишу. {
При работе терминала в неканоническом режиме дело обстоит слож- struct termios oldsettings, newsettings;
нее. В этом режиме нет сигнала, который бы оповещал систему о том, char password[BUF_SIZE+1];
что ввод данных окончен и функция чтения данных должны вернуть int len;
управление. Поведение функций, читающих данные в этом режи- sigset_t newsigset, oldsigset;
ме, зависит от параметров termios.c_cc[VMIN] и termios.c_cc[VTIME]. sigemptyset(&newsigset);
Параметр termios.c_cc[VMIN] указывает минимальное число введен- sigaddset(&newsigset, SIGINT);
ных символов, после которого функция, считывающая данные, может sigaddset(&newsigset, SIGTSTP);
вернуть управление программе. Параметр termios.c_cc[VTIME] ука- sigprocmask(SIG_BLOCK, &newsigset, &oldsigset);
зывает максимальное время ожидания ввода (после ввода первого tcgetattr(fileno(stdin), &oldsettings);
символа), по прошествии которого функция чтения данных возвра- newsettings = oldsettings;
щает управление, независимо от того, сколько символов было про- newsettings.c_lflag &= ~ECHO;
читано. Если обоим этим параметрам присвоены значения, большие tcsetattr(fileno(stdin), TCSAFLUSH, &newsettings);
нуля, функция чтения данных вернет управление после того, как будет printf(“Enter password and press [Enter]\n”);
выполнено требование одного из параметров. Если функция получит len = read(fileno(stdin), password, BUF_SIZE);
количество символов, заданное в параметре termios.c_cc[VMIN] до password[len] = 0;
истечения срока времени, заданного в параметре termios.c_cc[VTIME], tcsetattr(fileno(stdin), TCSANOW, &oldsettings);
она вернет управление и передаст программе соответствующее коли- sigprocmask(SIG_SETMASK, &oldsigset, NULL);
чество символов. Если заданный промежуток времени истечет до того, printf(“Your password is %s\n”, password);
как функция считает указанное ей количество символов, функция вер- return EXIT_SUCCESS;
нет управление и передаст программе те символы, которые она успела }
считать. При этом, как следует из сказанного выше, функция чтения В начале программы мы блокируем сигналы SIGINT и SIGTSTP
данных вернет как минимум один символ. Если одному из параметров (зачем это нужно, я объясню ниже). Затем с помощью функции
Телефонная книга:
ЧАСТЬ 2 Встречают по одежке – и Большой Босс не был сильно впечатлен
созданной нами в прошлый раз адресной книгой. Александр Бабаев
исправляет замеченные недочеты.
В
прошлый раз мы создали простейшую электронную записную они компилируются при обновлении исходного текста и обрабатыва-
книжку. Она работает в браузере и показывает несколько про- ются как таковые.
стых страничек, на которых можно просмотреть список контак- JSF (Java Server Faces). В некотором роде эта технология объединя-
тов, добавить новый контакт, удалить его или отредактировать. А сей- ет подходы, которые используются при создании «обычных» и «сете-
час давайте попробуем сделать все это более правильно. вых» программ. Интерфейс (как дизайн интерфейса, так и его логика)
программы описывается специальным образом, а после этого пишутся
Почему было плохо? JSP-странички, в которых указывается «тут вставить таблицу с именем
Наш Действительно, почему? Работает, и хорошо. Достаточно быстро и не таким-то». JSF обрабатывает эти спецвставки и «рисует» функциональ-
эксперт слишком сложно. Но вдруг захочется поменять дизайн страничек? А ные элементы интерфейса (обрабатывая события от них и так далее),
захочется через десять минут работы. Или после того, как страничку позволяя дизайнеру сосредоточиться на остальном.
Александр посмотрит начальник. Google Web Toolkit. Не могу не остановиться на этом средстве. При
Бабаев Чтобы сделать это, можно изменить код проекта, потом переком- его использовании на выходе получается полноценное AJAX-приложе-
Разработчик
открытой мультиблог-
пилировать его, остановить сервер (А? Кто-то работал? Извините...), ние (что это такое – тема отдельной статьи, пример – Google Mail), а на
системы jDnevnik – установить новый код и повторно запустить сервер. Метод, мягко гово- входе – все тот же Java-код. Решение интересное, не лишенное своих
победитель конкурсов ря, неудобный. А можно изменить сам проект так, чтобы выполнение достоинств и недостатков.
IBM WAS CE Contest таких пожеланий не требовало столь сложных действий. Второй путь Мы же в рамках данной статьи рассмотрим «средненькое» решение –
2006 и конкурса
зовется рефакторингом и гораздо более корректен. Если разделить Java Server Pages. В основном – из-за его стандартности, хотя для дан-
проектов
для разработчиков дизайн и логику работы приложения (бизнес-логику), то в дальней- ного конкретного случая можно выбрать какой-нибудь шаблонный дви-
на Java – шем можно будет, например, разделить и работу по их поддержанию. жок, например, тот же Velocity (http://velocity.apache.org).
Java конкурс 2005. Хороший программист не всегда создает хорошие пользовательские
интерфейсы, поэтому данный аспект тоже важен. Общая схема работы приложения
Поняв, что нужно отделить логику от дизайна, давайте подумаем,
Как сделать хорошо? каким образом это можно сделать. Предлагаю остановиться на следу-
Ну, вкратце уже понятно. Нужно вынести в отдельные файлы ту часть, ющей схеме (Рис. 1):
которая меняется часто (в нашем случае, это интерфейс) и как-то под-
ключить эти файлы из нашей программы. Плюс, желательно сделать
это так, чтобы формат файлов «дизайна» был стандартным, чтобы
каждый раз не переучиваться.
Решений для данной проблемы существует множество. Рассмотрим
самые распространенные:
Шаблоны. Одна из самых распространенных библиотек работы с
шаблонами – Velocity. При использовании шаблонных движков мож-
но добавлять в текст специальные вставки, которые говорят: «Тут
вставить значение переменной Name». Иногда можно делать более Рис. 1. Схема работы сервлета при разделении логики и дизайна.
сложные операции (вставка подшаблонов, вычисления, условные
вставки). Сервлет выдает данные, абсолютно не заботясь о том, как они будут
JSP (Java Server Pages). По времени появления, пожалуй, первая отображаться. Но выдает он их не в «сыром» виде, а в полностью обра-
технология для отделения дизайна от бизнес-логики. Но я ее поставил ботанном, готовом для отображения на экране (например, если нужно
второй, так как она сложнее, чем просто шаблонная библиотека. JSP полное имя человека, а в данных – его ФИО по отдельности, то сервлет
позволяет внедрить код на (по задумке) любом языке программиро- должен преобразовать второе в первое перед передачей в JSP).
вания внутрь специальным образом созданной странички. Впрочем, Возникает вопрос: как же передаются данные от сервлета в JSP?
обычно используется Java. Теоретически, можно написать серверное Через уже известный нам объект request. К нему «прикручен» специ-
приложение, используя исключительно JSP. Этот подход похож на альный ассоциативный массив «String – Object», который называется
PHP, с тем отличием, что JSP-страницы – это полноценные сервлеты, атрибутами и который живет, пока жив запрос. К нему имеет доступ и
переход на JSP
на DVD
Tomcat 6.0
Код примеров ста
тьи
сервлет, и JSP-страница, поэтому его можно (и это правильно) исполь- Листинг 2. Новый метод handle
зовать для передачи данных. private void handle(HttpServletRequest aRequest, HttpServletResponse
aResponse)
Переходим на Tomcat throws ServletException, IOException {
Но сначала нужно переписать наш сервлет «по-взрослому». Встроенный aRequest.setCharacterEncoding(“utf-8”);
сервер – это замечательно для кустарных проектов, но обычно контей-
нер сервлетов уже стоит, и подключаться следует к нему. String target = aRequest.getRequestURI().substring(
Мы будем использовать Tomcat 5.5. Это классический, можно aRequest.getContextPath().length());
даже сказать, стандартный открытый сервлет-контейнер. Для уста-
новки Tomcat достаточно просто скачать его с http://tomcat.apache.org if (target.equals(“/”)) {
(или взять с нашего DVD), распаковать и запустить bin/startup.sh (или _drawer.outputPage(“index.jsp”, aRequest, aResponse);
соответсвующий .bat). Tomcat работает с файлами специального типа } else if (“/add”.equals(target)) {
Web Archive (WAR). Обнаружив такой файл в определенном каталоге, handleAdd(aRequest, aResponse);
Tomcat разворачивает его и запускает содержащееся в нем приложе- } else if (“/view”.equals(target)) {
ние. Чтобы перезапустить или обновить программу, достаточно просто handleView(aRequest, aResponse);
заменить один WAR-файл другим. } else if (“/edit”.equals(target)) {
Предыдущий код не готов для работы с Tomcat, поэтому его нужно handleEdit(aRequest, aResponse);
немного переписать. Вот что будет сделано: } else if (“/remove”.equals(target)) {
AddressBook потеряет методы start и main и превратится в простое handleRemove(aRequest, aResponse);
хранилище записей. }
AddressBookHandler превратится в AddressBookServlet, и в него будет }
добавлено примерно следующее (Листинг 1): Для того, чтобы Tomcat «понял», что ему положили сервлет, и знал,
как его обрабатывать, нужно написать специальный файл, который
Листинг 1. Новый AddressBook называется «дескриптор». Несмотря на то, что слово страшное, это
private AddressBook _addressBook = null; просто XML-документ с описанием сервлета. Если перевести с языка
написания дескрипторов на русский, то получится примерно следую-
public void init(ServletConfig aServletConfig) throws ServletException { щая информация:
super.init(aServletConfig); • Наш сервлет называется «ABServlet» и запускается классом
_addressBook = new AddressBook(); AddressBookServlet. Теоретически можно назвать сервлет так же, как и
} класс, но мы не будем так делать, чтобы было меньше путаницы.
• Для всех URL, которые начинаются с «/», нужно вызывать сервлет,
protected void doGet(HttpServletRequest aRequest, HttpServletResponse который называется ABServlet.
aResponse) А вот как он выглядит (Листинг 3):
throws ServletException, IOException
handle(aRequest, aResponse); Листинг 3. Дескриптор для сервлета
} <?xml version=”1.0” encoding=”UTF-8”?>
<web-app version=”2.4”
protected void doPost(HttpServletRequest aRequest, HttpServletResponse xmlns=”http://java.sun.com/xml/ns/j2ee”
aResponse) xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
throws ServletException, IOException xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee
handle(aRequest, aResponse); http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd” >
}
<servlet>
Сам метод handle тоже слегка преобразуется (Листинг 2): <display-name>AddressBook</display-name>
Листинг 7. Метод handleEdit, обработка редактирования Переходим к созданию манифеста. Он должен называться
записи MANIFEST.MF и располагаться в каталоге META-INF. К счастью, за этим
if (aRequest.getParameter(“number”) == null) { следит сам jar, поэтому нам достаточно просто сохранить где-то файл
_addressBook.removeContactByNumber(aRequest. и указать его jar’у как манифест. В нашем случае он предельно прост
getParameter(“number”)); и не содержит интересной информации, но в принципе здесь могут
aRequest.setAttribute(“message”, “Не определено, что располагаться всякие настройки для запуска вашего приложения. Вот
редактировать”); его текст (Листинг 8):
handleView(aRequest, aResponse);
} else if (aRequest.getParameter(“edited”) != null) { Листинг 8. Манифест для war-файла
_addressBook.editContact(aRequest.getParameter(“edited”), Manifest-Version: 1.0
aRequest.getParameter(“name”), Created-By: Hands of programmer
aRequest.getParameter(“number”), Теперь соберем все в war (Web Archive). Манифест для приведен-
aRequest.getParameter(“comment”)); ной ниже команды должен быть назван MANIFEST.MF и располагаться
aRequest.setAttribute(“message”, “Контакт \”” + рядом с каталогом build. Результирующий архив называется address.
aRequest.getParameter(“name”) + “\” отредактирован”); war и располагается там же, рядом с манифестом.
handleView(aRequest, aResponse); jar -cfm ../address.war ../MANIFEST.MF *
} else { А сейчас наступает самый волшебный момент! Возьмите address.
Contact contact = _addressBook.getContactByNumber(aRequest. war и положите его в каталог webapps Tomcat’а. Подождите несколько
getParameter(“number”)); секунд. Увидев новое приложение, Tomcat развернет его (появляется
aRequest.setAttribute(“action”, “edit”); каталог с именем вашего war’а) и подключит к системе. После этого
aRequest.setAttribute(“edit.name”, contact.getName()); можно просто зайти в браузер и набрать:
aRequest.setAttribute(“edit.number”, contact.getNumber()); http://localhost:8080/address/
aRequest.setAttribute(“edit.comment”, contact.getComment()); Вуаля, получите ваше приложение.
outputPage(“edit.jsp”, aRequest, aResponse);
} И что теперь?
Остальные методы меняются аналогично – их полный код можно А теперь можно менять JSP-файлы «на лету» в распакованном катало-
найти на диске. ге webapps/address/jsps. При этом будет автоматически происходить
несколько действий, в результате которых файлы подхватятся прило-
И как все это вставить в Tomcat? жением. Так меняется дизайн без перекомпиляции, без рестарта сер-
Теперь у нас есть: верного приложения, как это у нас было до сих пор.
Классы Contact, AddressBook, AddressBookServlet. Я считаю, что на данном этапе приложение «Адресная книга» рабо-
Файл web.xml. тает хорошо. Оно выполняет свои несложные функции и умеет изме-
Каталог jsps с файлами edit.jsp, index.jsp, view.jsp. няться «на лету» по запросу пользователя. Оно простое – и это чуть ли
Для того, чтобы Tomcat понял, что ему дали полноценное приложе- не самое главное. Но есть еще достаточно аспектов, о которых стоит
ние, нужно выполнить всего три шага: знать при разработке более сложных интернет-приложений. Мы рас-
Скомпилировать все, что компилируется, и создать правильную смотрим их в следующих статьях данной серии. LXF
иерархию файлов и каталогов, которая представлена на рис. 2.
Настройка
ЧАСТЬ 5 PostgreSQL в фундаменте «1С:Предприятия»? В свое время эта новость произвела
фурор в мире Linux, а сегодня Евгений Балдин покажет, что для этого было сделано,
и расскажет, как настроить PostgreSQL для выполнения этих или любых других задач.
Т
юнинг – это не операция: это образ жизни. Очевидно [по крайней определить переменную окружения PGOPTIONS, а значения некоторых
мере, автору, – прим. ред.], что когда необходимые характерис- переменных можно изменить прямо в процессе выполнения запросов.
тики можно улучшить несколькими способами, то всеми этими Но работать c конфигурационными файлами все же придется. По
способами их улучшать и надо. Опять же, следует помнить, что избы- умолчанию PostgreSQL настроен на минимальное потребление ресур-
точная и ранняя оптимизация – корень многих зол. Если система рабо- сов, и это не может не сказаться на скорости. То, что подходит для
тает и «не кашляет», то, может быть, не стоит ее «настраивать»? локальной записной книжки, не годится для боевого сервера.
Все настройки очень подробно описаны в документации. Для
любителей «выжимать из программы все» существует специальный
Об оборудовании список рассылки psql-performance: http://archives.postgresql.org/pgsql-
performance/. В документации на странице Power PostgreSQL http://
«Театр начинается с вешалки», а большая база данных начинается с www.powerpostgresql.com/Docs также можно найти некоторое количе-
выбора сервера. PostgreSQL умудряется работать почти при любой ство полезных подсказок.
конфигурации, но если вас интересует результат, то следует знать, на Для настройки PostgreSQL используются следующие файлы:
что обращать внимание. Понятно, что ограничения на оборудование
диктуются, в основном, объемом денежных ресурсов, но в имеющихся 1
Один диск в массиве выделяется под контрольные суммы
пределах всегда можно что-то подвигать. 2
зеркалирование (1) + объединение (0)
PostgreSQL
pg_hba.conf – политика доступа и идентификации пользователей, reject – отказ в доступе.
postgresql.conf – собственно, настройки сервера. ident – доступ по регистрационной записи клиента, часто применя-
ется для локальных соединений. См. RFC 1413.
pg_hba.conf md5 – авторизация по паролю, зашифрованному с помощью алго-
При использовании PostgreSQL в качестве «личной записной книжки» ритма md5.
зачастую не требуется открывать сетевой доступ к базе данных. По Если клиент использует для доступа библиотеку к PostgreSQL стар-
умолчанию PostgreSQL настроен так, что каждый локальный пользова- ше 7.2, то вместо метода md5 следует использовать метод crypt.
тель может подсоединиться к одноименной базе данных, при условии, Пароль при желании и значительной степени бесшабашности мож-
что таковая уже создана. но передавать открытым текстом с помощью метода password.
Но это не значит, что так бывает всегда. PostgreSQL предоставляет pam – авторизация с помощью Pluggable Authentication Modules.
свои механизмы для управления пользователями с помощью тройки Этот сервис предоставляется операционной системой.
команд CREATE USER, DROP USER и ALTER USER. В случае несовпаде- Подробнее о PAM написано здесь: http://www.kernel.
ния регистрационных имен в PostgreSQL и в системе или при работе org/pub/linux/libs/pam/.
с БД с других компьютеров необходимо «обговорить» правила доступа krb4 и krb5 – авторизация с использованием механизма Kerberos
к данным на сервере. версий 4 и 5, соответственно. Это индустриальный стандарт авториза-
Для настройки политики доступа к серверу волей-неволей придет- ции, и если вы собираетесь его использовать, то, наверное, представ-
ся заглянуть в файл pg_hba.conf3. Файл разбит на строки, каждая из ляете себе, что это такое.
которых регулирует правила получения доступа для конкретной маши- После имени метода следуют необязательные опции.
ны или для целой группы IP. Общий вид pg_hba.conf примерно таков:
# Разрешаем доступ через локальные unix-сокеты абсолютно postgresql.conf
#всем пользователям к базам данным, совпадающим по названию Настройки в postgresql.conf разбиты по группам и подробно задокумен-
#с регистрационными именами тированы прямо в файле. Здесь мы коснемся самых важных из них.
local all all ident sameuser
# Доверяем пользователю alex с указанного IP безгранично Настройка соединений и авторизация (Connections and
#в рамках базы данных photos Authentication)
host photos alex 130.255.204.48/32 trust Политика авторизации настраивается в pg_hba.conf. Здесь же собраны
# Требуем пароль от пользователя baldin при доступе с в основном технические параметры.
#компьютеров из сети 128.138.242.192/27 к базам данных Настройка соединений (connection settings).
#data и photos • listen_addresses После настройки pg_hba.conf можно и нужно смело
hostssl data,photos baldin 128.138.242.192/27 md5 устанавливать * – слушаем все интерфейсы, которые есть в наличии.
Как можно догадаться (или подсмотреть в комментариях к исход- По умолчанию, localhost-запросы принимаются только от локальных
ному pg_hba.conf), первое поле определяет тип записи: пользователей, в том числе и через loopback-интерфейс (127.0.0.1).
local – запись определяет политику локального доступа через
UNIX-сокеты.
host – запись определяет политику для сетевого TCP/IP-соединения с Настройки PostgreSQL для 1C
использованием SSL и без него. Для обеспечения сетевого доступа необ-
ходимо также правильно настроить listen_addresses в postgresql.conf. По адресу http://v8.1c.ru/overview/postgres_patches_notes.htm доступны
патчи. Это – отличие сервера, поставляемого с «1С:Предприятием 8» от
hostssl – определяет политику для сетевого соединения с обяза-
оригинального PostgreSQL. Патч postgresql-1c-8.1.5.patch несет в себе
тельным использованием SSL. изменения в исходном файле настройки. Перечислим их:
hostnossl – антипод hostssl. Допускаются сетевые соединения:
Второе поле представляет из себя имя базы данных, для которой -#listen_addresses = ‘localhost’
определяется политика. Имя all означает «все базы», а sameuser – «база, +listen_addresses = ‘*’
совпадающая с именем пользователя». Можно перечислить несколько немного увеличен размер разделяемой памяти: с 8 МБ до 28 МБ:
-#shared_buffers = 1000
имен через запятую. Кроме того, в качестве имени БД можно исполь-
+shared_buffers = 3500
зовать имя файла со списком баз, разделенным запятыми или пробе-
оценка размера кэша системы изменилась с 8 МБ до 80 МБ:
лами – такое имя должно начинаться с префикса @. -#effective_cache_size = 1000
Третье поле – имя пользователя. Здесь тоже поддерживаются спис- +effective_cache_size = 10000
ки, а имя all обозначает для всех пользователей. Доступ можно открыть Включен процесс автоматической сборки мусора:
для группы пользователей (role) – для этого перед именем группы сле- -#stats_row_level = off
дует поставить знак «+». +stats_row_level = on
-#autovacuum = off
Следующие ноль (в случае записи local), одно (нотация CIDR4) или
+autovacuum = on
два поля (адрес и сетевая маска) отведены под сетевой адрес компью- Максимальное среднее число блокировок увеличено более чем в два
тера или подсети, для которых настраивается политика доступа. раза:
Предпоследнее обязательное поле содержит метод авторизации: -#max_locks_per_transaction = 64
trust – полностью доверяем этому клиенту. +max_locks_per_transaction = 150
Мне кажется, что судя по этим изменениям, есть куда оптимизировать и
3
hba – host-based authentication. сам продукт, и настройки к PostgreSQL.
4
Classless Inter-Domain Routing.
• port Номер порта, который слушает сервер в ожидании соединений. • max_fsm_pages Сборщик мусора должен знать, где этот самый мусор
По умолчанию – 5432. находится. Число страниц, отведенных для этих целей должно быть
• max_connections Число клиентов, которые могут подсоединяться к больше, чем число записей, удаленных или измененных между сбор-
базе данных одновременно, не может быть бесконечным – средний ками мусора. Если страниц достаточно, выполнение жестких оптимизи-
однопроцессорный компьютер может обслуживать не более 100-200 рующих операций, таких, как VACUUM FULL или REINDEX, никогда и не
соединений. Данная опция и задает их максимальное число. Если коли- понадобится. Так как объем требуемой для этого памяти не очень велик
чество клиентов жестко ограничено, то имеет смысл уменьшить этот (по 6 байт на страницу), то жадничать не стоит. Проще всего узнать необ-
параметр до минимально возможного значения. ходимое число max_fsm_pages, запустив VACUUM VERBOSE ANALYZE.
• superuser_reserved_connections Число соединений, которые зарезер- • max_fsm_relations Число таблиц, для которых создаются карты неис-
вированы для суперпользователя, чтобы он всегда мог зайти, разо- пользованного пространства. По умолчанию – 1000. В случае большего
браться, в чем дело, а затем принять меры. Не стоит совсем отказы- числа используемых таблиц это значение можно и нужно увеличить,
ваться от зарезервированных соединений, и даже одного такого соеди- тем более что на каждую таблицу требуется всего по 7 байт.
нения может оказаться недостаточно. Оставьте минимум 2. Системные ресурсы (kernel resource usage).
Безопасность и авторизация (security and authentication). • preload_libraries Если для выполнения запроса требуется загрузить
• authentication_timeout Время ожидания для прохождения авторизации какую-либо разделяемую библиотеку, то действует правило: «загружа-
в секундах. По умолчанию – 1 минута. Не позволяет клиенту «зависнуть» ем при первом использовании», что замедляет исполнение самого пер-
и заблокировать ресурс соединения на очень долгое время. вого запроса. Этого можно избежать, загрузив все необходимые биб-
• ssl Разрешает доступ через SSL. Для работы через SSL необходимо лиотеки при старте сервера («память в обмен на скорость»). Хороший
создать публичный ключ и сертификат. Это требует некоторых усилий, кандидат на подгрузку – модуль интерпретатора процедурного языка,
зато позволяет немного успокоиться по поводу безопасности сетевых используемого в запросах.
соединений. Оценка стоимости сборки мусора (cost-based vacuum delay).
Обычно нет необходимости заглядывать в этот раздел, так как сборка
Управление ресурсами (Resource Consumption) мусора (VACUUM) и анализ (ANALYZE) выполняются достаточно быстро.
Правильная оценка имеющихся ресурсов – путь к эффективному пла- Запись в фоне (background writer).
нированию. А оно позволяет добиваться поставленной цели, не сильно Начиная с PostgreSQL 8.0, вместе с основным сервером также стар-
увеличивая энтропию окружающей среды. Эти очевидные истины реа- тует процесс для записи данных в фоне. При выполнении запроса нет
лизованы в настройках PostgreSQL следующим образом: необходимости ждать самого акта записи, так как это гарантированно
Память (memory). сделает background writer.
• shared_buffers Объем совместно используемой памяти, выделяемой
PostgreSQL для кэширования данных. Определяется числом страниц Журнал транзакций (Write Ahead Log)
(shared_buffers) по 8 КБ каждая. Естественно, данные умеет кэширо- Наличие журнала транзакций или WAL (write ahead log) позволяет уве-
вать не только PostgreSQL, но и операционная система, поэтому нет личить скорость выполнения операций, требующих изменения данных,
необходимости отводить под кэш всю наличную оперативную память. поскольку информация об изменениях заносится в журнал последова-
Оптимальное число shared_buffers зависит от многих факторов, поэто- тельно, а модификацию таблиц можно отложить до «лучших времен» –
му проще принять следующие ориентиры: своеобразный кэш, только на диске. Если же база данных используется
* Обычный настольный ПК с 512 МБ RAM и небольшой базой дан- в основном для чтения, то в журнале транзакций особой необходимос-
ных: 8–16 МБ или 1000–2000 страниц. ти нет, но это не повод от него отказываться.
* Средний сервер 1 Гб RAM и БД около 10 ГБ: 80–160 МБ или 10000– Настройки (settings).
20000 страниц. • fsync По умолчанию эта опция включена (true). В этом случае
* Многопроцессорный сервер с 8 Гб RAM и БД свыше 100 ГБ, PostgreSQL пытается записать данные на диск физически. Это не такая
обслуживающий несколько сотен активных соединений одновремен- уж и простая операция, так как кэши существуют не только в системе, но
но – 400 МБ или 50000 страниц. и в контроллерах и в дисках. Вполне можно представить себе ситуацию,
• work_mem Каждому запросу можно выделить личный участок памя- когда слишком умный диск для увеличения производительности в тестах
ти для сортировки, объединения и других подобных операций. При рапортует о том, что данные записаны, а при перебое с питанием выясня-
превышении этого объема сервер начинает использовать временные ется, что это не так. Сбои самого сервера не приводят к порче данных, но
файлы на диске, что может существенно замедлить скорость обра- сервер живет в окружении далеко не идеальной операционной системы,
ботки запросов. Предел для work_mem можно вычислить, разделив которая, в свою очередь, управляет далеко не идеальными физически-
объем доступной памяти (физическая память минус объем, занятый ми устройствами. Вот почему так важно иметь проверенную аппаратуру,
другими программами и буферами shared_buffers) на максимальное источники бесперебойного питания и резервировать данные.
число одновременно используемых активных соединений. Если вы доверяете своему ПК, то эту опцию можно выключить, сме-
При необходимости, например, для выполнения очень объемных опе- няв немного безопасности на скорость. Более правильным решением
раций, допустимый лимит можно изменять прямо во время выполнения является перенос журнального файла на отдельный быстрый диск.
запроса, поэтому нет нужды изначально задавать теоретический предел. Контрольные точки (checkpoints).
• maintenance_work_mem Эта память используется для выполнения По свершению каких-то определенных условий или истечению кон-
операций по сбору статистики (ANALYZE), сборке мусора (VACUUM), трольного времени сервер гарантированно переносит данные, запи-
созданию индексов (CREATE INDEX) и добавлению внешних ключей. санные в WAL, непосредственно в таблицы (даже если он очень сильно
Размер выделяемой под эти операции памяти должен быть сравним занят обработкой других запросов).
с физическим размером самого большого индекса на диске. Как и в • checkpoint_segments Объем кэша на диске. Физический объем места
случае work_mem, эта переменная может быть установлена прямо во на диске, требуемый под кэш, вычисляется по формуле (checkpoint_
время выполнения запроса. segments*2+1)*16 МБ. Следует выделить столько, сколько не жалко,
• max_prepared_transactions Определяет максимальное число подго- осознавая, что 32 сегмента займет на диске свыше 1 ГБ.
товленных транзакций (команда PREPARE TRANSACTION). Если эта • checkpoint_timeout Время, через которое WAL очищается насильно.
сущность нигде не используется, то переменную можно занулить. По умолчанию 300 секунд.
Карта неиспользованного пространства (free space map). • checkpoint_warning Если кэш на диске заполняется быстрее, чем про-
Записи при удалении не уничтожаются физически, а только поме- ходит checkpoint_warning секунд, в журнальном файле появляется пре-
чаются как удаленные. На этом основана работа сборщика мусора. дупреждение. Это намек на то, что дисковый кэш следует увеличить.
Н
екоторое время назад фирма «1С» объявила о выходе версии 8.1 плат- ЕМБ: Что с точки зрения «1C» нужно добавить в PostgreSQL, чтобы улучшить его
формы «1С:Предприятие», серверная часть которой теперь работает под функциональность?
управлением Linux, а в качестве хранилища данных может использовать- АлХ: Критически важные для нас исправления мы внесли в патч, часть этих
ся и PostgreSQL (модифицированная версия). исправлений уже реализована в PostgreSQL 8.2. Прежде всего мы рекомендо-
Можно долго и эмоционально говорить о продуктах фирмы «1С», но они вали бы внести в основной проект все сделанные нами изменения, поскольку
реальны, и реальность эта повседневна. А то, что эта реальность стала использо- они необходимы для работы различных систем (не только «1С:Предприятия») с
вать продукты с открытым кодом – это явный плюс. Для выяснения подробностей русским языком. Есть и другие пожелания – пока мы обсуждаем их с разработ-
мы связались с представителем фирмы Алексеем Харитоновым через стандарт- чиками PostgreSQL.
ный e-mail: 1c@1c.ru. ЕМБ: Есть ли в планах «1С» сотрудничество с сообществом Open Source, ну, или,
На прилагаемом диске вы можете найти полный текст интервью, проком- хотя бы, использование других открытых продуктов для целей бизнеса?
ментированный Федором Сигаевым (LXF86) и Олегом Бартуновым (LXF85) – АлХ: Примеры использования нами открытых продуктов не ограничиваются
отечественными разработчиками, внесшими значительный вклад в развитие PostgreSQL – так, в «1С:Предприятии 8.1» расширенная поддержка XML реализо-
PostgreSQL. вана на основе библиотек Apache Xerces и Apache Xalan. Для интернационализа-
Евгений Балдин (ЕМБ): Почему вы выбрали именно PostgreSQL? Конечно, лет ции используется библиотека ICU.
пять назад особых альтернатив среди свободных продуктов не было. Но сейчас В качестве одного из возможных направлений бизнес-сотрудничества мы сей-
подросла в своих возможностях MySQL, Firebird восстал из пепла Interbase, да и час рассматриваем варианты лицензирования Linux-версии сервера приложений
смысла зацикливаться на открытых реализациях для 1С особого нет. Или есть? «1С:Предприятия 8.1» для ОЕМ-поставки с дистрибутивами Linux.
по умолчанию. Но если хочется настроить локаль (хотя это личное дело max_locks_per_transaction * (max_connections + max_prepared_
клиента) или порядок выбора объектов, относящихся к различным про- transactions)
странствам имен, то здесь можно что-то поправить. В документации сказано, что 64 (число стоящее по умолчанию) –
это исторически проверенный предел, и чтобы превзойти его, требуют-
Управление блокировками (Lock Management) ся определенные усилия.
Очевидно, что блокировок следует избегать всячески, причем делать
это надо начинать на этапе проектирования базы данных. К сожалению,
реальная жизнь отличается от планов. О том, что думать тоже надо
• deadlock_timeout Взаимные блокировки (deadlock) – это чрезвычайно
уродливое явление, при котором вошедшие в клинч процессы ожида- Можно идеально настроить сервер, регулярно проводить сборку мусо-
ют освобождения ресурсов, которые сами же и захватили. PostgreSQL ра, можно закупить самое дорогое оборудование и поставить рядом с
умеет разрешать эту проблему путем насильного прерывания одного ним дизельный генератор. Но если таблицы и отношения между ними
из процессов. Проверка на deadlock – это довольно длительная про- создавались без плана, а запросы задаются криво, то проблемы гаран-
цедура, поэтому, прежде чем начать такую проверку, сервер выжидает тированно будут.
указанное время. По умолчанию – 1000 миллисекунд. Для загруженных Выполнение запросов следует проверять с помощью команды
серверов имеет смысл увеличить это значение. EXPLAIN ANALYZE, которая по полочкам разложит, как ищется, сор-
• max_locks_per_transaction Вопреки своему названию, это не жесткий тируется, объединяется и группируется информация, какие для этого
лимит на число блокировок, осуществляемых в пределах транзакций. использовались алгоритмы, и какие индексы были задействованы. Для
Этот параметр входит в формулу, устанавливающую предел на число любителей картинок pgAdmin III имеет графический интерфейс к этой
одновременно существующих блокировок, то есть это скорее макси- команде. Ни в коем случае нельзя пренебрегать индексами и по воз-
мальное среднее: можности следует избегать блокировок. LXF
Путеводитель по
ЧАСТЬ 7 Подобно Золушке, ставшей принцессой, документ LaTeX может
несколько раз сменить свой класс за время существования. Многообразие
классов LaTeX способно смутить любого – но Евгений Балдин предлагает их
полную классификацию.
Классы у людей определяются выбором оружия… левых файлов. В классе задаётся геометрия страницы и определя-
Википедия. Из описания игры Tremulous. ются команды секционирования. Сам по себе класс может быть как
просто небольшой модификацией уже имеющегося, так и принципи-
ально новой реализацией представления печатного или электронного
TeXнического слова. В качестве примера последнего можно привести
К
ласс документа – это первое, что требуется указать при набо- молодой (2007 год) пока пакет papertex, который позволяет применять
ре. В то же время первое вовсе не значит важное. С заключи- LaTeX в деле вёрстки газет1, то есть для того, для чего LaTeX в проекте
тельным выбором класса почти всегда можно повременить до вовсе не предназначался. Сам пакет можно найти на любом CTAN-архи-
окончания основного набора. С другой стороны, выбирать всё равно ве в директории {CTAN}/macros/LaTeX/contrib/papertex/.
когда-нибудь придётся, так что нелишне знать, что может нам пред-
ложить LaTeX.
Классовая база
(Рис. 1) Класс
Зачем нужны эти классы? Исторически сложилось так, что LaTeX начался с 6 классов: article (ста-
тья), book (книга), report (отчёт), proc (доклад), letter (письмо) и slides
papertex — пример от
Класс документа выбирается с помощью команды documentclass. Её (слайды).
автора класса
Ignacio Llopis. нужно и можно выполнить ровно один раз в самом начале документа: По идее, статьи следовало набирать в article. В этом классе опреде-
\documentclass[a4paper,12pt]{article} лены команды секционирования вплоть до section (раздел). Одним из
В качестве обяза- желательных элементов оформления является предисловие (окруже-
тельного аргумен- ние abstract). В классе book присутствует расширенный набор команд
та указывается имя секционирования, в который добавлена команда chapter (глава). Также
класса, которому в классе book присутствует базовый набор команд для оформления
через запятую пере- титульного листа, предисловия и оглавления. Класс для создания отчё-
даются необяза- та report является упрощённой версией класса book. Отчёты – те же
тельные параметры. книги, только читают их по необходимости, а не по желанию. Класс
Класс определяется в proc, предназначенный для создания тезисов докладов, в свою оче-
файле с расширени- редь является модификацией класса article, причём основное отличие
ем .cls. В дистрибути- состоит в обязательной двухколоночной печати. Для написания писем
ве LaTeX TeX Live 2005 был создан класс letter. Набор команд в этом классе существенно
присутствует 175 отличается от уже перечисленных, в частности, для писем нет нужды
уникальных файлов в командах секционирования. Класс slides – простой и быстрый спо-
с подобным расши- соб сделать презентацию. С помощью этого класса не удастся создать
рением. Естественно, пёстрого фона и головокружительных эффектов смены слайдов, зато
это далеко не все он позволяет сосредоточиться на основном – на тексте.
существующие на Особняком от этих классов стоит класс minimal, который является
белом свете классы, «болванкой» для создания и тестирования новых классов и идей. В
тем более, что ник- классе minimal не определено никаких специальных команд – минимум
то не мешает вам есть минимум. В качестве побочного эффекта документ, выбирающий
создать свой личный этот класс, транслируется LaTeX значительно быстрее.
класс. Но для нача- С этих классов всё начиналось, но на них ничего не закончилось.
ла лучше все же вос- Следует понимать, что базовые классы далеко не так хороши, как
пользоваться одним хотелось бы. После трансляции текста сразу возникает желание взять
из имеющихся. в руки «электронный надфиль» и пройтись по настройкам класса. Это
Класс определяет цена за то, что перечисленные классы являются базовыми. На них ссы-
вид и структуру доку- лается и их модифицирует множество других классов и пакетов, поэто-
мента. Класс – это му их развитие было заморожено. Для начального набора сгодится и
база, которую можно
править с помощью 1
На текущий момент этот класс не годится для вёрстки чего-нибудь более серьёзного, чем
школьная газета, но ведь надо начинать с простого.
подключаемых сти-
классам LaTeX
это, но для конечной вёрстки лучше подобрать что-то более подходя- Script bundle» (scrguien.pdf) позволяет подстроить все необходимые
щее, или придётся серьёзно модифицировать значения по умолчанию. параметры.
Часто набор необязательных параметров для стандартных классах
используется и в других классах, например, в целях совместимости. NCC
Некоторые из полезных опций перечислены ниже: Ещё один вариант замены стандартных классов – это использование
10pt|11pt|12pt – установка базового размера шрифта. Обычно этих пакета NCC. Очень подробно об этом пакете написано в замечательной
трёх значений хватает. книге от создателя NCC Александра И. Роженко: «Искусство верстки4 в
a4paper – установка размера листа бумаги. Следует использовать LaTeX’е», 2005 (ISBN 5-901548-25-6).
всегда, так как по умолчанию LaTeX использует размер листа letter. Для использования следует загрузить класс ncc и передать ему
draft – режим черновой печати для «отлавливания» проблем вёрс- желаемый стиль оформления в качестве параметра: article (статья –
тки. В этом режиме не внедряются картинки (вместо них вставляются используется по умолчанию), preprint (препринт), book (монография)
прямоугольники нужного размера) и отмечаются строчки, где алгоритм или report (отчёт). Дальнейшие подробности об использовании этого
разбиения абзаца на строки даёт осечку. класса можно почерпнуть в краткой инструкции к пакету: nccLaTeX.pdf.
oneside|twoside – форматирование документа для односторонней и
двухсторонней печати, соответственно. Поддерживаем стандарты
twocolumn – печать в две колонки. Стандарт подразумевает наличие подробного описания, которое и
является его сущностью. То, что написано на бумаге в виде набора
непротиворечивых правил, может быть переведено на язык машины.
Классификация Далее можно забыть про эти правила, так как помнить все нюансы –
работа для машины5 (Рис. 2).
Сразу предупрежу: число классов постоянно растёт, поэтому не сле- Константин Кориков создал и активно поддерживает пакет eskdx,
дует думать, что все имеющиеся варианты исчерпываются классами, который представляет из себя набор классов и стилей, предназна-
перечисленными ниже. ченный для вёрстки документации в соответствии с требованиями
«Единой системы конструкторской документации». Основу коллек-
Модификации и улучшения базы ции составляют три класса: eskdtext (для текстовой документации),
Стандартные классы не нравятся всем, и всякий старается их улучшить. eskdbtab (для чертежей и схем) и eskdgraph (для документов, разби-
Кто-то убирает какой-то конкретный недостаток, как это сделано в тых на графы). Внятная документация на русском (eskdx.pdf) приятно
наборе классов extsizes (extarticle, extbook, extletter, extproc, extreport), дополняет картину. Пакет можно найти на CTAN в директории {CTAN}/
которые отличаются от стандартных только возможностью указать macros/LaTeX/contrib/eskdx/, а его домашняя страничка расположена
базовый размер шрифта, отличный от обычного 10-12pt3. Есть наборы по адресу: http://lostclus.linux.kiev.ua/eskdx/.
классов, которые делались с какой-то определённой целью. Примером eskdx – относительно молодой пакет. Ранее аналогичная попыт-
такого подхода являются классы от AMS (amsart, amsbook, amsproc), ка была предпринята Вячеславом Фёдоровым, в результате которой
которые используются для материалов, предназначенных для публика- на свет появился пакет eskd (без «x» на конце). В отличии от класса
ции в журналах Американского математического сообщества. Классы Константина Корикова, класс eskd.cls требует обязательной установки
из набора ntgclass3 представляют из себя «героическую» попытку шрифтов из коллекции pscyr6.
немецкоговорящих голландцев сделать то же, что и в стандарте, но Стандарт для написания документов, описывающих стандарты. Что
существенно разными способами. может быть ещё более стандартным? Класс isov2.cls из пакета iso
является стандартом для стандартов. Документация к пакету isoman.pdf
KOMA-Script подробно описывает все технические тонкости в деле подготовки доку-
В последнее время всё больше внимания обращает на себя набор ментов по стандартам ISO. Аналогично, для создания документации ISO
классов KOMA-script. В этот раз хорошо постарались немцы. Следует 10303 есть свой пакет iso10303.
учитывать, что европейские традиции полиграфии (в основном фран-
цузские), всё-таки ближе к нам, чем американские, на которые тради- Пишем письма
ционно ориентировалось LaTeX-сообщество. Для статей предполага- Класс letter является стандартным для LaTeX и, как следствие, никто им
ется использовать scrartcl, для книг scrbook, для писем scrlttr2, а для не пользуется. Часто стандарт для написания писем создаётся автором
отчётов scrreprt. самостоятельно. Так, например, любит делать Кнут. Это очень неплохо
В отличие от стандарта, классы из KOMA-script позволяют исполь- работает в силу того, что структура письма не слишком сложна. Как
зовать базовые размеры шрифта в 9pt, 14pt и 17pt. Огромные поля, следствие, в LaTeX имеется огромное число альтернатив для letter.
имеющие место в стандартных классах, в классах KOMA-script зна- С точки зрения английского FAQ по LaTeX (http://www.tex.ac.uk/faq)
чительно уменьшены. Претерпели изменения и другие элементы. класс newlfm является наиболее продвинутым. lfm расшифровывается
Если оформление по умолчанию не кажется адекватным, то KOMA-
script предоставляет обширный набор высокоуровневых настроек.
Подробная документация на более чем двухстах страницах «The KOMA- 4
Да, да, именно «верстки» – букву «ё» опять обидели.
5
То есть тупая, нудная и неинтересная.
6
2
Шрифты из коллекции pscyr авторами больше не поддерживаются и не развиваются.
Кроме 10pt, 11pt и 12pt классы из набора extsizes поддерживают 8pt, 9pt, 14pt, 17pt и 20pt. Основные проблемы этого пакета не технические, а лицензионные, в связи с чем этот пакет
Смена размера базового шрифта приводит к принципиально иному дизайну документа отсутствует в дистрибутивах LaTeX. Впрочем, в дополнение к абсолютно не решаемым
3
В набор ntgclass входят классы для набора статей (artikel1, artikel2 и artikel3), для набора книг лицензионным, в них хватает и технических проблем. Последнюю версию пакета можно найти
(boek и boek3), писем (brief) и отчётов (rapport1 и rapport3). по адресу: ftp://ftp.vsu.ru/pub/tex/font-packs/pscyr/.
http://www.maik.ru/pub/
tex/. Но довольно мно-
го журнальных классов
можно найти в стандарт-
ном дистрибутиве LaTeX.
Например, класс asaetr
используется в American
Society for Agricultural
Engineers (ASAE). Maple
Technical Newsletter мож-
но создавать с помощью
класса mtn. Классом
jpsj2 отметились япон-
цы. Из русскоязычных
журналов замечен толь-
ко «Сибирский журнал
(Рис. 4) beamer – справится даже школьник. Изготовлено учеником вычислительной мате-
11 класса А.Ф. Зайковым самостоятельно. На ошибки не фыркаем! матики» – класс sibjnm.
Школьник всё-таки. Следует отметить
класс elsart, обязатель-
но воспользоваться пакетом a0poster, который позволяет работать ный для подготовки
с большими форматами бумаги. Канонического класса, который бы журнальных публикаций
решал все проблемы при изготовлении постера, в LaTeX на текущий в издательстве Elsevier.
момент не существует. Возможно, ближе всего к идеалу подошёл класс Класс nature позволит
sciposter из одноимённого пакета. подготовить pdf-файл
для журнала Nature.
Защищаем диссертации Часто при создании
Раньше всюду были курсовые и дипломные работы, а теперь, куда ни публикаций для журна-
плюнь, везде диссертации. Каждый уважающий, не сильно уважаю- лов или конференций
щий и вообще не уважающий себя университет имеет свой уникальный используются неболь-
стиль оформления диссертации. Если хочется написать свой класс, то в шие модификации клас- (Рис. 5) Класс
качестве отправной точки можно выбрать ucthesis от Калифорнийского са revtex4. moderncv.
университета (UC Berkeley). Для объединения разных документов в один, например, для офор-
Станислав Кручинин озадачился судьбами русскоговорящих дис- мления трудов конференции, может пригодиться класс combine.
сертантов и создал класс disser. Пакет с одноимённым названием
можно взять на CTAN в директории {CTAN}/macros/LaTeX/contrib/ Всякая всячина
disser. Следует учесть, что пользовательская документация на текущий Далеко не все классы подчиняются уже перечисленной классификации.
момент отсутствует. С другой стороны, диссертанты, по идее, люди За рамки темы вышли классы для составления календарей, обложек
неглупые и разберутся в имеющихся примерах. для CD (cd), вопросников (qcm), объявлений о занятиях (assignment),
концертных программок (ConcProg), программ курсов (courseoutline
Организуем резюме и coursepaper), рабочего журнала для биологов (labbook), пьес (stage),
Написание резюме или curriculum vitae – довольно популярный вид тибетских карточек (pecha), карточек для запоминания иностранных
деятельности в современном мире. Для резюме нет общепринятого слов (flashcards), и для многого другого. Старые и давно не поддержи-
стандарта, но некоторые указания существуют. ваемые классы могут не собраться в новом окружении, но исходные
Европейская комиссия рекомендует определённый формат для тексты доступны, так что их всегда можно довести до необходимой
составления резюме, и этот формат полностью реализуется с помо- кондиции.
щью класса europecv. Класс vita представляет собой конструктор для
создания резюме. Несмотря на отсутствие документации, разобраться
с ним по имеющимся примерам для IT-специалиста и певца не соста-
вит сложности. Класс curve, напротив, обладает качественной доку-
ментацией. Механизм рубрик позволяет классу curve поддерживать
несколько резюме разной направленности и легко переключаться
между ними. Современный класс morderncv рекомендуется как гиб-
кое и простое средство создания резюме как современного вида, так
и классической формы. Пакет можно взять на CTAN в директории Заключение (Рис. 6) Что-то
{CTAN}/macros/LaTeX/contrib/moderncv. определённо
Следует отметить, что классы определяют многое, но далеко не Классов существует много – места в статье мало. Малая толика из упо- тибетское – класс
pecha.
всё. Поэтому после выбора класса можно подключить стили, которые мянутых классов будет рассмотрена в последующих статьях цикла. Это
серьёзно поменяют внешний вид документа. Стиль currvita позволяет не является проблемой, так как в чём-чём, а в отсутствии документа-
создавать резюме в окружении стандартных классов. ции к пакетам LaTeX обвинить невозможно – ну, почти. LXF
на DVD
Готовый проект
Blender
Текстуры
Анимация и
ЧАСТЬ 3 Сегодня Андрей Прахов вдохнет жизнь в созданный нами мирок, раскрасив его
обитателей и научив их двигаться в соответствии с законами физики.
Н
а прошлых уроках мы с вами познакомились с основами 12 Градация линейки.
моделирования в Blender и даже сваяли симпатичную фигур- Принцип работы с ключами очень простой и я продемонстрирую
ку пингвина. Но, как вы понимаете, возможности программы его на следующем примере. Создайте куб и откройте окно Timeline в
не ограничиваются банальным моделингом. В этот раз мы познако- удобном для вас месте. Находясь в режиме Object Mode и при выде-
мимся с различными с видами анимации, продолжим разговор о текс- ленной фигуре, нажмите I для вызова меню вставки анимационных
турировании, попробуем на ощупь физику. Вдохнем же жизнь в нашу ключей. Выберите верхнее значение Loc. Сдвиньте анимационный кур-
картинку! сор (№11, рис. 1) на любое количество кадров вперед и активируйте
Прежде чем мы приступим к анимации, необходимо разобраться с клавишу записи (№9, рис. 1). Передвиньте куб в произвольное место.
возможностями программы в этой области. На линейке появятся желтые полоски, обозначающие установленные
ключевые кадры. Если теперь проиграть анимацию, вы увидите движе-
Задача №1. ние объекта из одной точки в другую.
Предположим, имеются пункты «А» и «B», необходимо переместить
объект из одной точки в другую. Задача №2.
Передвинуть объект из точки «А» в точку «B» вдоль некоторой кривой.
Подобный метод анимации в трехмерной графике получил назва-
ние «ключевой». Смысл его в том, что указываются начальное и конеч- Первый метод обеспечивает линейную анимацию, что и было про-
демонстрировано в примере выше. Более точную настройку анимации
в пространстве и во времени предлагает специальный инструмент
Blender’a – IPO Curve Editor.
Позволю себе немного отвлечься от темы и напомнить, что програм-
ма имеет ряд предустановленных типов расположения окон – их можно
выбрать из выпадающего списка в верхней части экрана. Быстрые кла-
виши перехода от темы к теме – Ctrl+курсор влево или вправо.
Перейдите в режим отображения окон SR:1 - Animation. Эта тема,
Рисунок 1. как нетрудно догадаться, наиболее удобна для создания анимации. В
текстурирование
правом углу расположено окно IPO Curve Editor (рис. 2): нений (vertices=32). Перейдите в режим Object Mode (Tab) и в окне
Transform Properties (клавиша N) введите следующие параметры:
ScaleX=0,100
ScaleY=0,100
ScaleZ=3,500
Переименуйте объект в Staff. Теперь перейдем к созданию полот-
нища. Для этого идеально подходит примитив Plane (плоскость).
Переключите вид на Front View (NumPad1), немного сместите курсор
и создайте поверхность (Add->Mesh->Plane). Чтобы придать ему вид
флага, растяните его (S) по координате Z до 1,4000, а затем по X до
2,0000. Переименуйте полученный объект во Flag.
Теперь необходимо разделить объект на дополнительные полигоны.
Это можно сделать, перейдя в режим редактирования. Выделите объ-
ект (A), нажмите W и выберите пункт меню Subdivide. Проделайте эту
операцию еще три раза.
Из подготовительной части осталось только включить сглаживание
1 Область, отображающая кривые для манипуляции конкретными (F9, Set Smooth). В дальнейшем это нам пригодится.
переменными; Итак, система мягких тел в Blender’e позволяет реализовать дви-
2 Точка, являющаяся ключевым кадром в анимации; жение вершин объекта в соответствии с законами физики. Ключевое
3 Название свойства трансформации объекта; слово в этой фразе – «вершины». Поэтому сейчас нам необходимо
4 Кнопка активации конкретного показателя. подготовить объект к работе с физикой.
Работа с этим редактором требует определенного пространствен- Перейдите в окно Front View (NumPad1) и выделите полотни-
ного мышления, так как кривые представляют управление объектом ще флага. В режиме редактирования нажмите F9. Инструментарий
в схематическом виде. Тем не менее, в работе это окно практически для работы с вершинами находится в закладке Link and Materials ->
ничем не отличается от других. Можно перемещать, увеличивать изоб- Vertex Groups. Проследите, чтобы все вершины флага были выделе-
ражение в окне. Выделение и перемещение кривых происходит точно ны и нажмите кнопку New для создания новой группы. Введите в поле
такое же, как и в случае с обычными объектами. При входе в режим Edit Weight значение 0, переименуйте группу в 1, нажмите Assign. Таким
Mode возможна работа с отдельными точками. Не будем повторяться – образом, вы подготовите группу вершин, которые в дальнейшем будут
просто загляните во вторую часть урока (LXF89), где рассказывается обрабатываться физическим движком.
про работу со сплайнами. Теперь необходимо отделить от группы некоторое количество вер-
шин для закрепления их на древке; естественно, к ним физика приме-
Задача №3. няться не будет. Для этого снимите общее выделение (A) и отметьте
Анимация внутренней структуры объекта или самого объекта с учетом край полотнища толщиной в одну клетку для крепления (рис. 3а).
внешних воздействий.
соединение (Assign). Чтобы удостовериться в правильности наших Перенесите все значения, представленные на рисунке, в ваш проект.
настроек, можно перейти в режим Weight Paint (находится в том же Чтобы указать программе, с каким набором вершин нужно работать,
меню, что и Object Mode, Edit Mode). Картинка должна выглядеть, как нажмите маленькую кнопочку рядом с Use Goal и выберите группу 1.
на рисунке 3б. Для проверки сделанного необходимо перевести курсор в окно про-
Для перехода к настройкам физики нажмите «F7» и активируйте екции и нажать Alt+A. Этим сочетанием клавиш вы запустите анима-
кнопку Physics Buttons. Нас интересует закладка Soft Body. При вклю- цию в данном окне. Заметили, что полотнище безвольно колышется?
чении единственной находящейся там кнопки раскроется следующее Необходимо добавить ветер, но прежде чем мы сделаем это, ознакомь-
окно (рис. 4). тесь с настройками Soft Body во врезке «Физика мягкого тела».
Для создания ветра необходимо перейти в окно Top View. Установите
курсор слева от флагштока и создайте пустой объект (Add->Empty).
Подобного рода объект является лишь служебным каркасом и не отоб-
ражается при рендеринге. Разверните его так, чтобы ось «Z» смотрела
вдоль полотнища, и поменяйте название на Wind. Таким образом мы
указываем направление ветра.
Чтобы применить нужный эффект, нажмите F7, активируйте Physics
Buttons, в закладке Fields and Deflection -> Fields выберите Wind из
выпадающего списка. Данная функция предлагает нам следующие
настройки:
Strength (Сила);
Fall-off (Затухание) Ослабление силы ветра с расстоянием;
MaxDist Максимальное область действия эффекта по координате Z.
Физика мягкого тела Поменяйте значение параметра «strength» на 0,8. Проиграйте
анимацию… Вот теперь наш флаг колышется более правдоподобно.
Bake settings Открывает дополнительное окно, в котором можно Конечно же, не мешало бы сделать направление и силу ветра пере-
настроить и выполнить предварительный расчет физики объекта. При менными, но это вы сможете сделать самостоятельно после прочтения
общем рендеринге картинки не будет производится вторично. данного урока. А пока давайте совместим полотнище с флагштоком
Friction (Трение) Меньше трения – больше движения, скажем, при (рис. 5) и перейдем к следующей части – созданию и анимации зем-
использовании ветра. ного шара.
Grav Гравитация, сила, которая направлена в отрицательном направ-
лении по оси Z.
Error Limit (Лимит ошибок) Определяет размер шагов во время
симуляции. Меньшее значение дает большую точность, но повышает
время вычисления.
Mass (Масса) Определяет массу вершин. Большая масса замедляет
движение, но не для гравитации, где движение есть константа и не
зависит от массы.
Speed (Скорость) Контролирует внутреннюю скорость мягкого
тела.
Apply Deform First (Сначала применить деформацию) Позволяет
применить эффект мягкого тела после деформации объекта Арматурой
или Решеткой.
Use Goal (Использовать Цель) Использует для симуляции движение
из анимации (Ipo, Deform, Parents, и т.д.). “Goal” (Цель) – это желаемая
конечная позиция для вершин, основанных на этой анимации.
Задача №4.
Достижение “Цели” управляется силой упругости и демпфирования Заставить шарик вращаться и наложить на него текстуру.
(Damp).
Goal (Цель) Значение “цели” по умолчанию, если не назначена груп- Для сотворения Земли мы воспользуемся ключевой анимацией
па вершин (Vertex Group). Если группа вершин назначена и использу- и редактором IPO Curve. Начнем же, естественно, с создания модели.
ется, то эта кнопка будет отображать название группы вершин. Установите 3D-курсор в свободной области окна Front View ниже моде-
G Stiff Пружинная упругость для “цели”. Низкое значение дает боль- ли пингвина с учетом объемности создаваемого макета. Добавьте в сце-
ше эластичности, а высокое – больше упругости. ну примитив UVSphere с параметрами 64,64. Отмасштабируйте его по
G Damp Коэффициент трения для “цели”. Высокое значение увели-
всем осям до 20,000 единиц. Если при этом он перекроет другие объ-
чивает демпферный эффект на мягкое тело.
екты – ничего страшного, просто передвиньте его в более подходящее
G Min/G Max Когда вы задаете значение воздействия на вершины с
помощью окрашивания (используя WeightPaint), то для более точной
место. Совмещением моделей мы займемся попозже. Переименуйте
настройки можно использовать GMin и Gmax. Самое низкое воздейс- сферу в Earth и примените сглаживание (Set Smooth).
твие (синий цвет) будет соответствовать GMin, а самое высокое (крас- Работу над этой частью анимации лучше всего продолжать, при-
ный цвет) - GMax. менив схему расположения окон Sr:1 – Animation. Переключите окно
Use Edges (Использовать ребра) Ребра mesh-объекта могут рабо- с моделями в режим Front View. Выделите шар, нажмите I для вызо-
тать как пружины. ва меню вставки ключа. Так как предполагается осевое вращение
Stiff Quads - Если для граней включена опция quad, то диагональные по одной из координат, выберите начальной точкой параметр Rot.
ребра будут использоваться как пружины. Это предотвращает полное Передвиньте анимационный курсор на значение 250 или введите его в
ослабевание граней.
соответствующем окне (см. начало урока). Включите запись анимации
E Stiff - Пружинная упругость для ребер (определяет, насколько они
и поверните объект (R) по координате X на значение –10,00. Отключите
прочные). Низкое значение означает очень малую упругость (очень
гибкий материал), а высокое значение соответствует большой жест-
запись и проиграйте. Если все сделано верно, вы увидите неполный
кости (жесткий материал). поворот шара по оси X. Посмотрите теперь на окно редактора IPO Curve.
E Damp - Сила трения для граней. Высокое значение снижает трение Представленная там кривая RotX не является прямой, а значит, анима-
(т.е. “смазывает” ребра “смазкой”). ция будет с ускорением и замедлением (если кривую не видно, необхо-
димо «отъехать» колесиком мыши). Нам это не нужно. «Спрямление»
Комментарий
1 Александра Супрунова
Иногда оказывается, что достичь желаемого результата, используя ключевую анимацию, затруднительно. Тогда
на помощь приходит анимация вдоль пути. С ее помощью многие вещи можно сделать значительно проще.
Например, в сцене данного урока Tux гордо шагает по вращающемуся шару, но если бы нам потребовалось так-
же изобразить Луну, делающую оборот вокруг Земли, или надпись “Linux Forever”, тут-то бы и пригодилась анимация вдоль пути.
1 Давайте попрактикуемся. Начните с чистой сцены, на которой 2 Привяжите анимацию куба к пути. Для этого: перейдите в Object
есть только куб. Mode (клавиша Tab), выделите куб правой кнопкой мыши, затем
Переключитесь на вид спереди (NumPad1) и добавьте путь: Пробел- щелкните правой кнопкой мыши по Path, удерживая нажатой кла-
> Add->Curve->Path. вишу Shift (таким образом вы выделите оба объекта) и нажмите
Расположите объект Path (он изображен ребристой линией) чуть Ctrl+P. В появившемся меню выберите пункт Follow Path – появится
выше куба. пунктирная линий, связывающая куб с Path. Осталось только
нажать Alt+A и убедиться, что анимация работает (куб движется
вдоль пути). Для завершения анимации нажмите Escape.
можно выполнить вручную, выделяя каждую точку и работая с ними Buttons и в закладке Links and Pipeline выбрать Add New (см. LXF89).
как с кривыми Безье, или же воспользоваться специальной функцией. Поменяйте значение RGB на: 0,500; 0,300; 0.
Выделите кривую RotX в режиме Object Mode (правой клавишей Помимо стандартной расцветки материала, Blender позволяет
мыши или цветной кнопкой у названия), затем вызовите функцию использовать многоуровневые наложения в виде слоев. В новой вер-
Extrapolation из меню Curve -> ExtendMode. Удалите лишние кривые. сии программы вы можете использовать до 10 текстур в одном мате-
Просто выделите их и нажмите клавишу X. риале. Не стоит думать, что под термином «текстура» скрывается воз-
Вот и все, теперь наш шар крутится с постоянной скоростью в нуж- можность использования лишь сторонних картинок! Blender имеет ряд
ном направлении. предустановленных, входящих в стандартную комплектацию процедур-
С анимацией мы закончили, осталось «раскрасить этот мир» и рас- ных карт, которые вы с успехом можете использовать в своих работах.
ставить объекты по местам. Начнем, пожалуй, с древка. Так как у нас Процедурными эти типы текстур называются потому, что для создания
не стоит задача добиться фотореалистичности, то оставим в покое про- их используются специальные программные модули. С их помощью вы
цедурные карты и текстуры высокого разрешения, и просто создадим можете сгенерировать вполне реальные облака, дерево, ландшафт, шер-
материал соответствующей расцветки. Напомню, что для этого нужно шавые поверхности и многое другое. Слои могут отображаться одно-
перейти в Object Mode, нажать сначала F5, а затем кнопку Materials временно при помощи механизма смешивания. Благодаря этому можно
Рисунок 7.
Через месяц Мы обсудим скелетную анимацию и подберем для нашей сцены выгодное освещение.
Ответы
Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
О
В этом месяце мы отвечаем Здесь, похоже, проблема с разрешением
на вопросы по: экрана. Не получив точную информацию от
монитора о допустимых разрешениях, уста-
1 Разрешениям 10VNC новщик Ubuntu выбирает безопасное 640x480, этого
слишком мало, чтобы вместить целиком окно добав-
экрана 11 Драйверам Nvidia
ления принтера. Быстро помочь горю можно, зажав
2 Заданиям cron 12 Раскладке
клавишу Alt и перетащив окно левой кнопкой мыши
3 CUPS клавиатуры так, чтобы кнопки внизу стали видны. Удержание Alt
4 NdisWrapper 13 Сетевому чату позволяет перетаскивать окно за любое место, а не
5 Мусору в /home 14 Совместному только за заголовок. Это поможет вам добавить прин-
6 Загрузке с USB использованию тер, но не решит проблему как таковую.
Для смены разрешения монитора на более под-
7 Mepis OnTheGo соединения
ходящее воспользуйтесь пунктом Настройки > Нажав клавишу Alt, можно перетаскивать мышью окна,
8 Moodle Очистке звука Разрешение экрана из меню Система. Там перечис- не влезающие в экран.
9 grep и sed Zen-updater’у лены все подходящие разрешения для ваших виде-
окарты и монитора. Если обнаруживается только Будет сгенерирован новый файл /etc/X11/xorg.
640х480, значит, ваше оборудование не было распоз- conf, а его резервная копия останется в Вашем домаш-
1 Куда деваются кнопки? нано при установке. Менеджер устройств (Система -> нем каталоге. После этого перезапустите Х-сервер.
В
Я работаю в Ubuntu 6.06 с диска к LXF83 на Администрирование) покажет, правильно ли была Это можно сделать из командной строки, но если вы
Compaq Presario SR1720NX, и я новичок. Когда определена видеокарта. На вашей машине это, по новичок, проще перезагрузить компьютер.
я пытаюсь добавить в систему принтер Epson идее, ATI Radeon XPress 200 IGP. Для смены настроек Если по-прежнему будет доступно лишь 640x480,
Stylus CX4800 с помощью Gnome CUPS, низ экрана, видеокарты и монитора запустите dexconf, он опреде- придется вручную редактировать xorg.conf. Не видя
где должны быть кнопки Отмена, Назад, Вперед и лит оборудование и запишет все в конфигурационный Вашу конфигурацию, нельзя точно сказать, что имен-
Применить, пропадает. Я могу нажать на кнопку Enter файл. Предварительно хорошо бы сделать резервную но потребуется изменить. Если вы зашли так далеко
вместо Вперед, но на экране 3 я не нашел способа копию текущих настроек: и не получили ничего, кроме 640х480, рекомен-
перейти на кнопку Применить. cp /etc/X11/xorg.conf ~ дую вам спросить совета на нашем форуме www.
Jim Laprad [Джим Лапрад] sudo dexconf linuxformat.co.uk, приложив содержимое вашего /
etc/X11/xorg.conf, вывод lspci -v и параметры вашего
монитора. НБ
Наши эксперты 2 Задачи времени
В
Мы найдем эксперта на любой вопрос! Вы получите ответ на все: от проблем с установкой или модемом до У меня небольшая проблема с задачами Cron на
сетевого администрирования; главное – спросить! SUSE 9.3. Скрипты, помещенные в директории
cron.hourly, cron.daily и cron.weekly, работают
Нейл Ботвик Майк Сондерс отлично, но как мне контролировать запуск файлов из
Владелец ISP и экс-редактор Майк был одним из создателей этих директорий? Можно ли выполнять какие-то еже-
дисков для нашего журнала, Нейл прототипа LXF – Linux Answers.
недельные задания в субботу, а какие-то – в пятницу,
считает, что в Linux он от скуки Его специальности –
на все руки. программирование, оконные а ежедневные – вечером или в полночь? Хотел про-
менеджеры, скрипты следить, как это работает, но ясности не добился.
инициализации и SNES. Единственно, что я нашел, это задание, записан-
Стефан Лукас Ник Вейч ное в crontabs, которое запускается каждые несколько
У Стефана шесть лет В свободное от исчеркивания минут и работает с заданиями из директорий cron.*.
администраторского стажа. текстов красными чернилами Скрипт смотрит, какие из заданий должны выполнять-
Теперь он администратор L2 Linux время Ник возится с Linux- ся в данный момент, и запускает их.
в Rackspace, в его коллекции графикой и 3D-приложениями;
Марк Бесяда [Mark Biesiada]
серверов есть все от Raq3 до Sun он у нас отвечает за простые
О
Netra X1. вопросы! SUSE 9.3 делает это не совсем так, как другие
дистрибутивы. Вместо запуска содержимого
Петр Семилетов Валентин Синицын этих директорий в определенное время, она
Разработчик текстового редактора В свободное от работы время редактор запускает их согласно времени последнего исполнения.
TEA, режиссер-любитель, нашего журнала разрабатывает
Вы почти добрались до этого сами: одна строка в /etc/
поможет вам разобраться KNetworkManager и другие открытые
в мультимедийных вопросах. приложения. Он с радостью поможет crontab вызывает скрипт run-crons каждые 15 минут.
вам в вопросах использования Linux Тот смотрит на файлы-маркеры каждой директории
на рабочем столе. /etc/cron.*, находящиеся в /var/spool/cron/lastrun. Если
маркеру больше, чем час/день/неделя, он запускает
КУДА ПОСЫЛАТЬ ВОПРОСЫ: скрипты в директории и обновляет маркер. Если марке-
Пишите нам по адресу: answers@linuxformat.ru или спрашивайте на форуме: www.linuxforum.ru ра нет, он запускает скрипты и создает его.
В
тов в 4:30, когда загрузка системы минимальна, они Установка Gentoo прошла неожиданно гладко,
запускаются через день после последнего выполне- но заставить свой USB-принтер печатать я не
ния. Вы можете указать нужное время запуска, обно- могу. Тщательно следовал инструкциям из
вив временную метку файлов в /var/spool/cron/lastrun. Gentoo Printing Guide, трижды проверил конфигура-
Следующий скрипт поменяет ее на 4:30 для ежеднев- цию моего ядра и абсолютно уверен, что включал все,
ных, еженедельных и ежемесячных маркеров. что нужно. Пробовал собирать ядро с USB-опциями в
#!/bin/sh виде модулей и вкомпилированными в ядро. Ничем не
cd /var/spool/cron/lastrun помог genkernel, так что вряд ли дело в ядре.
for i in daily weekly monthly Принтер – Samsung ML1210. Он хоть и снят с про-
do изводства, но мне годится, и всегда работал в Linux
if [ -f cron.$i ] хорошо, да и сейчас отлично печатает в Ubuntu Edgy
Оптимизируете Gentoo? Установите USE-флаги
then на той же машине и на том же USB-порту, то есть это
через дружелюбный интерфейс Profuse.
touch -t $(date -r cron.$i+%Y%m%d) не аппаратная проблема и не CUPS.
0430 cron.$i Если я открываю менеджер печати Gnome, мас- ных Вами записях. Вы используете GPL Ghostscript, где
fi тер предлагает мне те же драйверы CUPS, что и в нет должной поддержки драйверов для GDI-принтеров
done других дистрибутивах, но при попытке печати тесто- (они же Win-принтеры) вроде Вашего Samsung. Так
Скрипт использует команду date для извлечения вой страницы ничего не происходит. То же самое и в что удалите ghostscript-gpl и поставьте ghostscript-esp,
текущей даты файла в формате ГГГГММДД, добавля- OpenOffice.org. OOo думает, что распечатал документ, дающий лучшую поддержку принтеров:
ет нужное время (0430) и передает это команде touch, а документа нету. emerge --unmerge ghostscript-gpl
которая и обновляет временную метку. Тем же спосо- Вот вывод lsusb: emerge --oneshot ghostscript-esp
бом можно поменять день выполнения еженедельных Bus 002 Device 003: ID 04e8:300c Samsung Вероятно, Вам нужен еще пакет openslp, хотя он
скриптов. Electronics Co., Ltd ML-1210 Printer и считается опциональной зависимостью CUPS. SLP
Учтите, что если вы измените временной штамп, Я проверил /var/log/cups/error_log и не увидел (Service Locator Protocol) пригодится и другим про-
а в 4:30 задача не выполнится (например, если ваша ничего неблагоприятного. граммам, так что добавьте его в USE-флаги в /etc/
машина будет выключена), временная метка перепи- «Пятнистый кот», с форума LXF make.conf. Еще стоит добавить foomaticdb: напрямую
О
шется на то время, когда задача сработает, и вам при- При определении проблем CUPS первым он на CUPS не влияет, но может повысить уровень
дется заново изменять ее. Этот процесс можно авто- делом нужно повысить уровень ведения жур- поддержки принтеров в приложениях.
матизировать, создав отдельную задачу в /etc/crontab нала. Измените LogLevel в /etc/cups/cupsd. Теперь пересоберите все пакеты, для которых
и запуская ее каждый день в 4:00. НВ conf с ‘info’ на ‘debug’ и перезапустите CUPS. изменились флаги, включая CUPS:
В вашем случае улика обнаруживается в приведен- emerge --newuse --deep --verbose --ask world
Отобразится список всех пересобранных пакетов,
включая CUPS и OpenSLP. Нажмите Enter для их уста-
новки и перезапустите CUPS, когда сборка завершится.
Краткая справка USE-флаги – важная часть Gentoo, все они опи-
саны в /usr/portage/profiles/use.desc и /usr/portage/
profiles/use.local.desc. Еще можно установить Profuse
В
Вот думаю, не поможете ли вы мне с пробле-
Вы когда-нибудь просматривали свою файловую сис- мой с WiFi/NdisWrapper. Я пытаюсь заставить
тему, исследуя, куда девалось место на жестком работать карту Belkin под NdisWrapper с драй-
диске, который вы считали бездонным? Тогда вы вером rt2500 для Windows XP. Онлайн-инструкции
могли наткнуться на директорию proc, занимающую превосходны; я распознал свою карту и понял, какой
больше гигабайта и содержащую тысячи файлов, драйвер мне нужен. Установил NdisWrapper и этот
многие из которых на вид пусты, и задуматься: а не драйвер, и когда я набираю ndiswrapper-l, видно, что
удалить ли их? драйвер установлен и оборудование налицо.
Уж извините, удалить их нельзя. По счастью, они После этого я загрузил NdisWrapper в ядро через
фактически не занимают места на диске, поскольку /
modprobe, настроил сеть, и все отлично работало. А
proc – виртуальная файловая система. Это не коллек-
потом перезагрузился, и настройки, естественно, про-
ция реальных файлов, находящихся на Вашем жестком
диске, это всего лишь снимок текущего состояния Исследуем внутренности системы в /proc. пали. И теперь я не могу добиться работы. NdisWrapper
ядра, представленный в виде файлов, чтобы с ним по-прежнему показывает, что все в порядке, но инди-
было удобно работать. информация о процессе: используемая память, аргу- каторы на карте отключены, и когда я пытаюсь полу-
Как вы видите, /proc содержит много «файлов»; на менты командной строки, с которыми он был запущен, чить ip по DHCP, выдается сообщение «отсутствует
нашем компьютере их 7109, и каждый содержит некую и многое другое. связь, проверьте провод».
информацию. Например, набрав cat /proc/version, вы Многое из /proc доступно только для чтения, но в Я перезапускал modprobe ndiswrapper, вынимал
узнаете больше о ядре вашей системы; а cat /proc/ некоторые файлы вы можете писать. Например, /proc/ и вставлял карту заново, но индикаторы на ней все
cpuinfo выведет детальную информацию о процессоре. sys/vm/swappiness контролирует, насколько агрессив- равно не горят.
Директории ide, scsi, bus/usb, bus/pci и bluetooth но система будет сбрасывать страницы в раздел под- Эндрью Вуд [Andrew Wood]
содержат данные о соответствующих устройствах. качки – чем больше номер, тем больше сбросов.
О
Подобная проблема нередка для NdisWrapper,
Вы также можете заметить директории, названные Поменять значение можно командой echo:
цифрами. Каждая из них соответствует работающему но вас она не должна волновать. Для карт на
echo 30 >/proc/sys/vm/swappiness
процессу, идентификатор которого и является именем Подробные сведения о /proc ищите в /usr/src/linux/ основе rt2500 незачем использовать
директории. В каждой из них находится детальная Documentation/filesystems/proc.txt. NdisWrapper: это имеет смысл лишь при отсутствии
подходящего Linux-драйвера (выполнение Windows-
кода от имени root – плохая идея, если этого можно JPEG-файлы в одну директорию?
избежать). Также хотелось бы разобраться с дуб-
Linux-драйверы для чипсета rt2500 доступны на ликатами файлов. Я готовлюсь к пере-
http://rt2x00.serialmonkey.com и http://sourceforge.net/ установке Ubuntu.
projects/rt2400. Не беспокойтесь насчет 2400 в имени: AJB2K3, с форума LXF
О
один и тот же проект занимается драйверами как для Я бы переименовал /home/
rt2400, так и для rt2500. Это полуофициальные драй- username перед установкой, а
веры, на базе закрытых драйверах от Ralink, которые затем скопировал только
впоследствии вышли под GPL. Кроме самих драйве- нужные файлы. Возможно, это будет
ров, проект занимается разработкой графических ути- проще, чем очищать домашнюю дирек-
лит для настройки карт и сканирования. торию от обломков других систем.
Одни дистрибутивы, например, Debian, включают Лучшая программа для удаления
драйверы в свои репозитории, для других вам придет- ненужных файлов, которую я нашел,
ся собирать их из исходных кодов. Не зная, что у вас называется KleanSweep (http://linux.
за дистрибутив, сложно дать конкретные инструкции bydg.org/~yogin).
по установке, но если вы будете собирать драйверы С поиском дубликатов лучше все-
из исходников, потребуется также исходный код ядра. го справляется Fdupes с (http://netdial. Время весенней чистки машины? KleanSweep избавит
Обычно он находится в пакетах kernel-sources, linux- caribe.net/~adrian2/fdupes.html). Ее мож- вас от ненужного мусора.
sources или kernel-devel. но использовать так:
Удостоверьтесь, что вы установили исходники той fdupes --recurse ~ мне нужно загружаться с брелка, но перезагрузка
же версии, что и ваше ядро. Как и со всеми внешни- fdupes --recurse --omitfirst ~ | xargs rm невозможна, а так как машина «жестко» сконфигури-
ми модулями ядра, при обновлении ядра нужно будет Первая команда покажет все найденные в домаш- рована, Qemu воспользоваться нельзя.
обновить и модули. Поскольку в это время у вас может нем каталоге дубликаты, вторая удалит все, кроме Я пытался найти решение этой проблемы. Я про-
не быть доступа в Интернет, рекомендую сохранить первого – пользуйтесь с осторожностью! бовал VMPlayer, Qemu и Moka, и все без толку: чего-
копию исходных текстов или инсталляционный пакет. Сортировать файлы по имени лучше всего коман- нибудь да не хватает. Подходящим решением было
Если вы все-таки хотите использовать NdisWrapper, дой find. Вы можете переместить все изображения в бы установить VMPlayer прямо на брелок и туда же
нужно будет запустить ndiswrapper -m для настройки один каталог так: записать образ системы, но я не смог найти способа
псевдонима wlan0. Это заставит NdisWrapper загру- mkdir pics это сделать.
жать модуль и драйвер. МС find ~ -iname `*.jpg’ -o -iname `*.png’ -o -iname Есть ли на рынке решение, позволяющее запускать
Советы по графическим картам приводятся на стр. 26. `*.gif’ -exec mv “{}” pics `;’ свою собственную ОС с USB-брелка независимо от
НБ установленной на компьютере системы?
5 Домашняя уборка Virtaava
6 Linux на брелке
В О
Понаставив всяких дистрибутивов, я замусорил Есть несколько причин, по которым загрузка с
В
директорию /home/username, а в главном меню У меня есть USB-брелок на 2 ГБ, на нем уста- брелка может быть невозможна на некотором
теперь полно неработающих пунктов. Как уда- новлен Slax Popcorn Edition. Я запросто загру- оборудовании. На некоторых компьютерах нет
лить эти мертвые души и отсортировать файлы по жаю с него компьютер и сохраняю изменения в опции загрузки с USB-устройств, но к счастью, сейчас
расширениям, поместив, например, все GIF, PNG и системе. Время от времени я сталкиваюсь с тем, что это уже редкость. Другой возможный сценарий – хозя-
Пользователи и суперпользователи
Считайте root своим суперсильным виртуальным другом.
Я только что впервые установил только вы, но даже вредоносное прило- Mandriva Control Center в Mandriva, у вас ноутбуке. Если он будет потерян или
Linux. Зачем мне создавать двух поль- жение к электронному письму не сможет спросят пароль root. Для запуска других украден, любой сможет получить доступ
зователей? повредить системные файлы: прав не программ, откройте терминал, наберите к вашей почте и конфиденциальной
Один из них будет root, суперпользова- хватит! Когда вам действительно потре- su, введите пароль и запустите нужную информации. Пароли дают некоторую
тель, только для администрирования. буются права администратора (напри- программу, введя ее имя. защиту от этого.
Другой – обычный пользователь для мер, при установке программы), вы
повседневной работы. можете переключиться на него и рабо- Если моим компьютером пользуюсь я
тать до тех пор, пока требуются права один, должен ли я каждый раз заходить
Почему я не могу администрировать root. в систему?
систему сам? Большинство дистрибутивов сейчас
Linux использует права доступа, установ- Значит, нужно выходить и заходить в имеют опцию автоматического входа под
ленные на каждую директорию и на систему каждый раз, когда потребуется любым пользователем (но не root!), и это
каждый файл в системе. Каждый поль- установить программу? Как это нудно. удобно, если компьютером пользуетесь
зователь имеет свою домашнюю дирек- Нет, вы не должны ни выходить из сис- только вы один. В рабочем столе KDE
торию, где он может создавать и удалять темы, ни заходить как root (некоторые опцию можно установить, запустив Центр
файлы с любым содержанием. Вне ее дистрибутивы даже предотвращают это). Управления KDE > Администрирование >
каждый пользователь имеет право вам нужно только запускать отдельные Экран входа в систему. В Gnome – Рабочий
читать файлы и запускать программы, программы с правами root. Многие про- стол > Система > Окно входа в систему
но не изменять и удалять их. Это обеспе- граммы настроены на это. Если вы поп- (включите автовход). Но подумайте дваж- Автоматический вход имеется
чивает надежность и безопасность. Не робуете запустить YaST в SUSE или ды перед включением этой опции на и в KDE, и в Gnome.
ин настроил BIOS своего компьютера так, чтобы загруз- владельца сменить его.
ка с USB была невозможна. Попытка снять это ограни- Если таких ограничений
чение как минимум некрасива (а то и незаконна), если нет, попробуйте другой
только вы не получите разрешение хозяина. Если оно у дистрибутив. Mandriva
Вас есть, Вы можете использовать загрузочный ком- недавно анонсирова-
пакт-диск для передачи управления USB-устройству; на ла Mandriva Flash, пол-
сайте Slax (www.slax.org) есть такой образ. ноценную настольную
Другое препятствие загрузки с USB-устройства – систему на 2 ГБ флэш-
как минимум три ее способа. Устройство может загру- диске. Я его пока не
жаться как дискета, ZIP и жесткий диск. Установщик пробовал, но Вы може-
Slax на USB, видимо, использует первую опцию. те найти информацию о
Не все BIOS’ы умеют загружать систему со всех нем на www.linuxcenter.
этих типов носителей, так что может понадобиться ru/shop/distros/linux-
больше одного брелка. Damn Small Linux загружается distros/Mandrava-Flash-
с брелка как USB-ZIP и USB-HDD. Например, на моем 2GB-USB. НБ
ноутбуке Slax загружаться отказался, а DSL спокойно
загрузился с той же «флэшки». 7 OnTheGo...
Некоторые компьютеры не в состоянии загружать- заглох
В
ся с USB-брелка, если загрузочный раздел больше 256 Хотел создать
МБ, так что Вы должны разбить свой брелок на два OnTheGo-диск из
Slax Popcorn – миловидный дистрибутив, но с USB-брелка загружается
раздела – один для системы (256 МБ), другой – для Live SimplyMepis
не без проблем. Проверьте настройку BIOS.
данных. 6.0, но окно выбора
Ваша идея с VMWare весьма изобретательна, пос- дисков не содержит ни Я знаю, что диск нормально монтировался, пос-
кольку позволяет избежать перезагрузки, но неко- одного пункта. Я пробовал: кольку я сохранял на нем файлы – выделял несколь-
торые файлы VMPlayer должны быть обязательно 1 Загрузить машину с вставленным USB-брелком, ко изображений и перетаскивал их на него, и все они
установлены в гостевой ОС. Moka выглядит более затем смонтировать его. оставались на диске после перезагрузки. Моему ком-
подходящим решением, но она работает с временны- 2 Загружать систему без «флэшки», затем вставлять пьютеру около шести лет; это Pentium 3 с установ-
ми файлами гостевой системы, и ее надо запускать от ее и монтировать ленной Windows 98 и картой расширения PCI-USB2.
имени администратора. 3 Заходить в систему как demo и как root. Мой опыт в Linux ограничивается «живыми» дистри-
Если конфигурация компьютера препятствует 4 Вставлять «флэшки» Advent на 2 ГБ и Huke на 512 бутивами с журнальных дисков за последние месяцы.
загрузке с USB, Вы должны принять это или попросить МБ. Как новичок в Linux, я теряюсь и не знаю, что еще
придумать.
Д.Томпсон [D.Thompson]
!
О
Вопрос-победитель (русская версия) Для создания OnTheGo Вы должны войти в
систему как root, и USB-устройство должно
быть не смонтировано. После авторизации,
Алексей Николаевич получает подарочный сертификат на 1000 рублей от интернет-магазина LinuxCenter.Ru! вставьте устройство. Если диалоговое окно KDE спро-
Просим победителя выйти на связь с редакцией: info@linuxformat.ru
сит, что делать, отвечайте «Ничего». Если диск монти-
наложить очищенную звуковую нужен исходный MPEG2-файл. руется автоматически, размонтируйте его, запустив
Операция дорожку обратно на исходный Допустим, он называется KwikDisk или набрав umount /dev/sda1 в терминале. Не
«Чистый звук» DVD? Желательно чтобы при source.mpeg. Теперь нам нужна пользуйтесь опцией безопасного удаления из контекс-
В
У меня возникла следую- этом сохранилось и меню, кото- дорожка в формате PCM или тного меню иконки диска на рабочем столе: она удалит
щая проблема. Мои родс- рое было на этом диске. AC3. Пусть будет AC3 (в этот файл устройства в /dev, сделав его недоступным для
твенники недавно отмеча- Маслий А.Н. формат можно перевести дан- установщика.
О
ли юбилей и засняли весь празд- Ответ разложим на ные, используя ту же Cinelerra). Теперь запустите Mepis Utilites, выберите опцию
ник на любительскую MiniDV- пункты. Просто так Файл назовем sound.ac3. Не создания OnTheGo-диска, и ваш диск должен стать
камеру. взять да и заменить зву- забудьте, что звук должен быть доступным, скорее всего как sda. По завершении
Знакомые сделали им по ковую дорожку на DVD не полу- с частотой оцифровки 48 КГц. процесса, удалите USB-диск (размонтировать его нет
записанным материалам DVD- чится. DVD имеет четкую файло- Теперь совмещаем видео- и зву- нужды) и выберите «Завершение сеанса» из меню К.
диск с простенькими эффек- вую структуру, где видео и звук ковой потоки с помощью утили- Когда появится экран входа в систему, подключите
тами, меню и т.д. Все получи- хранится в VOB-файлах, плюс к ты mplex из состава mjpegtools/ USB-диск, подождите 10 секунд, пока он определит-
лось хорошо, но вот звук остал- ним есть разные служебные Cinelerra, примерно (повторяю - ся, и зайдите в систему под именем onthego (пароль
ся необработанным и на записи файлы. Для записи DVD-диска примерно) вот такой командой: onthego). Если вы создали OnTheGo с шифрованием,
очень много шума. Меня поп- необходимо подготовить видео- mplex -o out.mpeg --format 9 о пароле вас спросят позже.
росили, по возможности, убрать материал в формате MPEG2 и с source.mpg sound.ac3 OnTheGo-диск хранит только ваши данные, кото-
этот шум. Я записал звуковую помощью некой утилиты (напри- В итоге получаем в файл рые могут быть зашифрованы; это не избавляет вас
дорожку на жесткий диск с помо- мер, QDVDAuthor – http:// out.mpeg, который можно вста- от загрузки с компакт-диска Mepis. С другой стороны,
шью mencoder, затем загрузился qdvdauthor.sourceforge.net) запи- вить в проект QDVDAuthor. В в этом случае не будет проблем с загрузкой с USB-
с LiveDVD Dynebolic (с диска из сать MPEG2 таким образом, QDVDAuthor же можно сделать и устройства, описанных выше, и вы можете скопиро-
приложения к LXF) и попытался чтобы файлы MPEG2 (или один меню. Чтобы сохранить те меню, вать файл .onthego.iso на другой диск, если пожела-
удалить из записи лишние шумы большой файл) были разбиты на которые были на исходном DVD, ете. НБ
при помощи инструмента Remove файлы VOB и размещены на надо спроектировать весь DVD в
Noise редактора Audiacity. Вроде своих местах в структуре. Однако, той же программе. ПС 8 Linux-планы
В
бы получилось неплохо. Теперь вы хотите заменить звуковую Мне хотелось бы использовать Moodle, систему
у меня возникла проблема – как дорожку. В таком случае вам управления курсами, с web-хостингом на базе
Linux, Apache и MySQL. На каком Linux это
В
это зависит от Ваших предпочтений. Как поль- Может, это звучит странно, но мне хотелось ведь не нужно производить обновление системы.
зователь Debian, я предложил бы этот дистри- бы, чтобы Zen-updater не запускался, когда Майк [Mike], с форума LXF
О
бутив, он стабилен и прост в установке. Если Вы нови- пользователь входит в систему. Подскажите, Решение очень простое. В директории /
чок, я бы посоветовал Ubuntu (он основан на Debian). пожалуйста, как это сделать. etc/xdg/autostart есть файл zen-updater-
Последняя серверная версия – Ubuntu 6.06 LTS. Я имею Мне это нужно потому, что при входе пользова- auto.desktop. Вам нужно открыть его в
опыт с Debian и могу сказать, что установка серверной теля через домен, Zen рушится, выдавая сообщение любимом текстовом редакторе и закомментировать
части займет не более получаса с момента вставки об ошибке. По-моему, это из-за того, что доменные строку Icon=zen-icon. После этого нужно перезапус-
компакт-диска. Пакетная система Debian очень проста в пользователи не имеют локального ID и не могут тить Zen-updater. СЛ
использовании, поможет команда dselect. СЛ
9 Групповое редактирование
В
Мне нужно через grep найти в файле строки, что есть по умолчанию, не дает, однако, всей гибкос- на имя того пользователя, от которого Вы хотите
содержащие некоторую подстроку, и целиком ти. Откройте /etc/init.d/vncserver, отыщите следующую запускать VNC.
удалить их. Причем проделать это со множест- строку: Значение 1 в VNCSERVERS заставляет запускать
вом файлов. Можете помочь? su - ${display##*:} -c \”cd && [ -f .vnc/ VNC на первом дисплее. Вы можете добавить альтерна-
Гоутхам Вутхаркар [Goutham Vutharkar] passwd ] && vncservers :${display%%:*}\” тивные дисплеи под именами других пользователей:
О
Можно использовать grep для этого: grep -v и замените ее на VNCSERVERS=”1:jdimpson 2:phred
string file выведет все строки, не содержащие su - ${display##*:} -c \”cd && [ -f .vnc/ 3:sysadmin”
подстроки string. Но для группового редакти- passwd ] && vncservers ${ARGS} Удостоверьтесь, что сервер запущен. Если нет, то
рования больше подходит sed. :${display%%:*}\” запустить его можно так (на Red Hat):
sed --in-place `/some string/d’ myfile Затем перейдите к следующему фрагменту: /etc/init/d/vncserver start
удалит все строки, содержащие ‘some string’. Для # The VNCSERVERS variable is a list of Теперь Вы можете соединяться с сервером с помо-
обработки множества файлов Вам нужно будет вос- # display: user pairs. щью любого VNC-клиента. СЛ
пользоваться циклом for (или утилитой find), посколь- # Uncomment the line below to start a VNC
ку опция --in-place в sed работает только с одиночны- # server on display :1 as my ‘myusername’ 11 Как-то одномерно
В
ми файлами. Подойдет одна из этих команд: # (adjust # this to your own). Успешно установил Mandriva Linux 2007 и
for f in *.txt; do sed --in-place `/some string/d’ “$f”; # You will also need to set a VNC password; теперь пытаюсь включить 3D-эффекты. Когда я
done # run ‘man vncpasswd’ to see how to do кликаю на иконке 3D-эффектов в центре управ-
find -name `*.txt’ -exec sed --in-place=.bak `/some # that. ления, все пункты сереют и появляется окно, говоря-
string/d’ “{}” `;’ # DO NOT RUN THIS SERVICE if your local щее, что моя система 3D-эффекты не поддерживает.
Добавление =.bak в последнем примере заставит # area network is untrusted! For a secure У меня GeForce 6600 от Nvidia, она прекрасно рабо-
sed сохранить резервную копию перед редактирова- # way of using VNC, see <URL:http://www. тала с Mandriva 2006. Как мне получить трехмерный
нием файла. НБ # uk.research.att.com/vnc/sshvnc.html>. рабочий стол?
VNCSERVERS=”1:jdimpson” Зэкари [Zachary], c форума LXF
10 VNC, пожалуйста!
О
ARGS=”-geometry 1024x768 -alwaysshared” Скорее всего дело в том, что Вы используете
В
Я соединяюсь со своим домашним сервером с Смените 1024х768 в ARGS на разрешение, соот- свободный драйвер nv. Он не поддерживает
помощью VNC (не через SSH!). Однако он не ветствующее Вашему дисплею. Можно добавить и 3D-ускорение, тут нужен фирменный драй-
отображает KDE-экран входа в систему, и я другие аргументы в ARGS. Также замените jdimpson вер от Nvidia, который можно скачать с www.nvidia.com
автоматически вхожу в систему под тем пользовате-
лем, который запустил VNC-сервер (не пробовал под
root’ом).
Я хотел бы, чтобы моя система (Slackware 10.2)
запускала VNC при загрузке, чтобы я мог видеть экран
входа в систему (KDM/XDM). У меня сейчас установлен
4-й уровень запуска. Есть идеи, советы или, может
быть, предложения по поводу другого ПО? У моего
сервера нет монитора.
Psykx, с форума LXF
О
Все, что Вам нужно – грамотно настроить
VNC-сервер. Замечание: VNC-сервер должен
быть запущен и настроен на запуск Вашего
любимого оконного менеджера. Вы можете сделать
это, отредактировав $HOME/.vnc/xstartup. Используйте
startkde& для запуска KDE, gnome-session& – для
Gnome, fvwm2& – для FVWM2. Также убедитесь, что
Вы запустили vncpasswd в $HOME/.vnc/passwd для
создания файла паролей.
Red Hat предоставляет простой путь запуска VNC-
сервера во время загрузки системы. Используйте
linuxconf для настройки скрипта vncserver (/etc/init.
d/vncserver) на запуск во время загрузки. Тот скрипт, OnTheGo – мобильная домашняя директория на USB-носителе для LiveCD Mepis.
В
(Система > Настройка > Настройка Вашего компьюте- Я настроил сеть между двумя компьютерами минус – TriX не входит в состав Mandriva, и вам придет-
ра), перейдите в секцию управления пакетами и в поле под управлением Mandriva Linux 2006, соединив ся самостоятельно собрать его из исходных текстов.
поиска напечатайте nvidia. Выберите пакет (сейчас это их посредством двух сетевых плат и кабеля. Что касается второго вопроса, проблема кроется
nvidia-8774-4plf, но версия может поменяться, когда С одной стороны, это смешно (два компьютера в сети), не в способе вызова программы. Оболочке Linux все
Вы будете это читать) и нажмите Применить. Если для но на деле очень удобно, поскольку раньше для того, равно, является ли файл двоичным (откомпилирован-
установки этого пакета потребуются другие, они будут что бы передать что-нибудь друг другу, приходилось ным) или текстовым (скриптом) – важно, чтобы в его
установлены автоматически, то есть выбрать нужно бегать туда-сюда с «флэшками»... Сейчас для обмена правах доступа был установлен бит ‘x’ (eXecutable).
только один пакет. файлами используем Samba, установленную с диска Для скриптов, не являющихся исполняемыми файла-
Наконец, перейдите в секцию Оборудование > Mandriva. Но возникла проблема: понадобился чат. Я ми (без установленного бита ‘x’) возможен альтерна-
Графический сервер и выберите драйвер Nvidia для знаю о том, что существуют сетевые чаты для Windows, тивный вариант запуска: интерпретатор имя_скрипта,
Вашей видеокарты. но о сетевых чатах для Linux я не слышал ничего. например: python mount_image.py. В данном случае
Когда Вы перезагрузитесь, драйверы NVIDIA будут Подскажите, пожалуйста, какие программы для Linux скрипт благополучно запускается на выполнение, но
доступны во всем их великолепии, и Вы сможете позволяют общаться по сети, не используя Интернет (и завершается с ошибкой, потому что интерпретатор
настроить 3D-эффекты. Наслаждайтесь! НБ как их настроить)? Если таких програм нет, подскажите, Python не может найти модуль wx – привязки к Python
Про EasyURPMI можно прочесть в учебнике Первые шаги как сделать что-то вроде ICQ-сервера (чтобы использо- для библиотеки wxWidgets (см. стр. 13). Установите
на стр. 54. вать в качестве сетевого чата Gaim). пакет wxPythonGTK – все должно заработать. ВС
И еще один вопрос: как запускать программу,
12 От @ до “ написанную на Python? Я установил Python, набрал: 14 Интернет на всех
В В
У меня наблюдается небольшая проблема после $ ./mount-image.py У меня сложилась такая проблема. На моем
установки SUSE 10.1. Пытаюсь ввести @, а полу- Traceback (most recent call last): компьютере установлен Mandriva Linux 2007
чаю “. И наоборот, вместо двойной кавычки File “./mount-image.py”, line 3, in ? Free. Данная машина подключена к локальной
появляется «собака». При установке я выбрал англий- import wx, os, sys, shutil, re сети и напрямую к Интернету по технологии ADSL.
ский (UK) язык, и он отображался на экране перед ImportError: No module named wx Вопрос: как можно сделать так, чтобы Интернет с
самым началом установки. Надеюсь, есть возможность Я где-то читал, что программы написанные на этом моего компьютера был доступен на всех машинах
исправить это без переустановки. Можете помочь? языке, не требуют компиляции, но как их запускать, я сети? Остальные машины управляются ОС Windows
С форума LXF не знаю. Подскажите, пожалуйста. XP Professional.
О
Надо изменить раскладку клавиатуры. Для andrewkn Рак А.П.
О О
этого отредактируйте файл /etc/X11/xorg. Чтобы пообщаться с соседом по локальной В состав Mandriva Linux входит специальный
conf, предварительно сделав резервную сети, совершенно необязательно настраивать мастер, позволяющий разделить Ваше
копию файла, на случай, если вдруг что-то испортите. собственный сервер ICQ или Jabber. Я реко- Интернет-соединение между несколькими
Эта операция потребует прав root (su -). Просто мендую вам обратить внимание на программу TriX (trix. компьютерами. Откройте Центр Управления Mandriva и
откройте терминал и перейдите в /etc/X11. sourceforge.net). Она хорошо интегрируется с рабочим перейдите в раздел Network & Internet. Нужная Вам
LXF HotPicks
В ЭТОТ РАЗ ТОЛЬКО ДЛЯ ВАС: Partition Image GElemental Weatherspect
Ричард Драммонд
Ричард – свободный разработчик,
писатель и отец двух детей.
Он живет в Индиане, США, где
отчаянно скучает по британскому
Texmacs FreeCol GLChess Exaile KAlarm EDB Smb4k TВ, подогретому пиву и сосискам.
Partition Image
Версия 0.6.5 Сайт www.partimage.org
P
artition Image – подарок судьбы: инстру- файловых систем, предназначенных для копи-
мент для простого, эффективного рования. К счастью, сегодня программа умеет
создания и восстановления образов обращаться с разделами ext2, ReiserFS, JFS,
файловых систем. Хотите ли вы размножить XFS и FAT, что покрывает большую часть пот-
общий Linux-дистрибутив в сети однотипных ребностей Linux, а для HFS+, UFS и NTFS есть
компьютеров, или сэкономить время при пере- экспериментальная поддержка.
установке ОС, если случилось ужасное – обра- Partition Image имеет дело только с размон-
тите внимание на эту программу. тированными файловыми системами, а как же
Да, можно копировать раздел в файл корневой раздел? Решение – использовать
одной простой командой оболочки, но специ- отдельный загрузочный диск с установленной
альный инструмент сделает работу куда быст- Partition Image: например, проект предлагает
рее и надежнее. Partition Image знает, каким инсталляционный образ, на основе которого
образом разные файловые системы органи- можно записать загрузочную дискету или CD-
зуют данные на диске, поэтому нет необходи- ROM. Partition Image может хранить образы на
мости копировать разделы целиком – доста- удаленном сервере (возможно шифрование с
точно сохранить задействованные дисковые SSL). Клиент-серверная архитектура Partition Partition Image версиях планируется осуществить поддержку
блоки. Это и быстрее, и образ диска получает- Image доведена до совершенства в проекте работает на машинах неизвестных файловых систем, использовать
PPC, но, к
ся меньше. Кроме того, Partition Image умеет Clonezilla (см. http://Clonezilla.sourceforge.net), алгоритм LZO для быстрого сжатия образов
сожалению, пока
сжимать образы и разбивать их на части фик- способном рассылать полноценный дисковый и усовершенствовать поддержку NTFS при-
не справляется с
сированного размера, удобные для размеще- образ по компьютерной сети с помощью одно- блоками файловой влечением кода из проекта ntfsprogs. Ждем с
ния на съемных носителях. сторонней связи. системы HFS+. нетерпением!
Потенциальный недостаток Partition Последний раз мы рассматривали Partition
Image – необходимость явной поддержки Image два года назад (LXF62). В будущих
GElemental
Версия 0.9.2 Сайт www.kdau.com/projects/gelemental
В
прошлом году ученые-химики объяви- соответственно их химическим группам или
ли, что нестабильный тяжелый эле- агрегатному состоянию (газ, жидкость, твер-
мент под условным названием унунок- дое тело) при любой температуре по вашему
тий – не плод больного воображения и может выбору. Список допускает сортировку по раз-
существовать реально (впрочем, недолго). личным критериям: от атомного веса и имени
Действительно ли это прогресс, или ученая до даты открытия.
братия рассчитывает на процент с прода- Щелкните по элементу в любом представ-
жи обновленных химических талмудов? Не лении; откроется выпадающее окно с более
беремся судить, но в любом случае у нас есть подробным описанием. Здесь помещены Все вместе отсутствие некоторых данных по сравнению с
альтернатива для нищих студентов-химиков общие сведения: физические свойства, исто- (глубокий вдох): бумажными учебниками по химии. Почему бы,
всего мира: GElemental, обозреватель пери- рические факты (дата открытия и имя откры- «Литий, натрий, например, не сортировать элементы по элект-
одической таблицы с открытым исходным вателя) и даже происхождение названия. На водород, калий, роотрицательности или удельной теплоемкос-
фосфор, кислород…»
кодом. другой вкладке приведена более подробная ти, или не добавить еще сведений (например,
GElemental произошел от GPeriodic. Проект химическая статистика, в том числе атомные, о стабильности). Но автор рьяно стремится к
был портирован на C++, код реорганизован, электронные и термодинамические свойства, совершенству, и мы ожидаем появления недо-
графический интерфейс GTK модернизирован например, теплоемкость. стающих функций в следующих версиях.
с помощью привязок gtkmm++, обновлены GElemental – полезный источник дан- Одно из обещанных дополнений для буду-
химические данные и добавлены переводы на ных, и очень удобный. Мы, правда, заметили щих версий – интеграция с Blue Obelisk Data
другие языки. Все сделано добротно, резуль- Repository (хранилище данных, разделяемое
тат налицо.
Как и его родитель, GElemental умеет пред-
«Альтернатива для различными химическими приложениями) –
еще один шаг в сторону информативности и
ставлять элементы и в общепринятом виде,
как завещал Менделеев, и в виде списка.
нищих студентов- достоверности (больше глаз – меньше оши-
бок). Если это удастся осуществить, успех
В первом случае элементы подсвечиваются химиков всего мира.» гарантирован.
Метеоигрушка
Weatherspect
Версия 1.7 Сайт http://robobunny.com/projects/weatherspect/htm
В
ы подвержены британской нацио- Честно говоря, погода часто бывает пас-
нальной болезни – помешательству мурной, особенно в умеренном климате, пере-
на погоде? Вы никогда не пропускае- павшем Британии. Weatherspect оживляет кар-
те прогноз для судоходства? Проводите часы, тину флорой, фауной и прохожими. Изредка
приникнув к метеорологическому каналу? На попадается мелочь вроде птичек, кроликов, а
вашем рабочем столе постоянно обновляют- то и улиток. Деревья растут, плодоносят и увя-
ся записи о погоде? Если на все вопросы был дают. В небе появляются самолеты, пролетают Weatherspect – суперпользователя запустите инструмент cpan
ответ «да» – мы добыли вам крутой хак, вам спутники. Сюрреализм заходит и дальше, но это как выглянуть в оболочке и наберите:
понравится. не будем портить сюрприз. в окно. Облака, install Term::Animation
Weatherspect воспроизводит на терминале Weatherspect написан на Perl и требует дождь, деревья, вот install Weather::Underground
проходит слон…
анимированные сцены, имитирующие погод- наличия некоторых дополнительных моду- Легко. Перед первым запуском Weatherspect
на севере штата
ные условия, с помощью псевдографики ASCII. лей, которых у вас, возможно, еще нет: Term:: необходимо настроить. Запустите программу
Индиана? Минуточку!
Только сообщите, где живете – и программа Animation, для управления псевдографикой с ключом –c, затем просто следуйте инструк-
тут же оценит данные, воспроизведет метео- ASCII, и Weather::Underground для загрузки циям на мониторе.
рологически точную картину; в окно больше метеорологических данных. Инсталлировать Честно говоря, надо полагать, что практи-
выглядывать незачем. Например, изображе- модули можно с помощью CPAN. От имени ческой ценности у Weatherspect никакой, но
ние облачности и цифровые данные о скоро- слишком уж трудно удержаться и не попро-
сти ветра используются для анимации тучек, бовать. Как минимум вы сможете подивиться
сыплющих соответствующего вида осадками.
Если идет снег, вы увидите снежинки и сне-
«Скажите, где вы живете. на хакерское искусство парней, создавших
программу, и пожелать им более полезного
говиков. Если небо чистое, будет нарисовано
солнце в правильной позиции днем или луна в
Если идет снег, вы времяпрепровождения.
Редактор документов
TeХmacs Hottest
Pick
Версия 1.0.6.7 Сайт www.texmacs.org
К
огда Линус Торвальдс впервые вдарил Конечно, большинство инструментов набо-
по клавишам Vic 20, звезда компью- ра TeXmacs достижимо всего несколькими
терных наук Дональд Кнут организо- щелчками мыши – или, для мастеров, через
вал революцию в цифровом наборе с помо- несколько клавиатурных комбинаций – но
щью TeX. Кнут остался недоволен качеством ведь про них еще нужно узнать.
печати последнего тома своего многотомного
шедевра The Art of Computer Programming Матемагика
(Искусство программирования) и написал кое- TeXmacs нацелен на пользователей, кото-
какое ПО, чтобы исправить дело. рым часто приходится создавать документы
Результат – TeX, был принят на ура акаде- с большим количеством научных символов и
мической общественностью, так как он пре- математических формул. Поэтому здесь есть
восходно обрабатывал математические фор- два основных режима редактирования: текс-
мулы. Но так как для этого требуется помечать товый и математический. Интерфейс и кнопки
документы командами TeX или, чаще, макро- панелей инструментов подстраиваются под
сами, а потом вызывать TeX для выработки текущий режим. В текстовом режиме, напри-
печатного варианта, поколению WYSIWIG про- мер, есть инструменты для смены шрифта, а
грамма кажется слишком сложной. Тут высту- в математическом предлагаются выпадающие
пает на сцену TeXmacs, визуальный редактор палитры с математическими символами. Там Освоить TeXmacs структурированное создание документов с
документов, основанных на правилах набора есть все операторы, о которых вам приходи- непросто, но помощью встроенных стилей – включая сти-
TeX. лось слышать, и еще кое-что; множество ско- исчерпывающая ли, заимствованные у LaTeX (article, book или
TeXmacs можно рассматривать как RAD бок всевозможных фасонов; греческие буквы, документация – letter) – наряду с различными классическими
сработанная,
(среду быстрой разработки) для TeX. Как и каллиграфические и другие специальные сим- стилями научных журналов. Стиль позволяет
понятно, в TeXmacs –
любая другая среда, она предназначена в волы, которыми обычно выделяют перемен- легко разбить документ на компоненты типа
поможет «грызть
общем не для облегчения работы, а для уве- ные. Инструмент Table (Таблица) добавляет гранит…». заголовок, глава, главка, абзац, или более
личения продуктивности. TeXmacs экономит поддержку матриц, определителей и других специфические части, вроде теоремы, леммы
время, давая возможность конструировать табличных условных обозначений. И все это или доказательства. Стиль документа заставит
и редактировать документы визуально (без носит отпечаток красоты и точности TeX. TeXmacs следить за соблюдением выбранных
разделения на фазы редактирования и визу- Чтобы вы не бились над внешним видом типографских правил, предоставляя вам забо-
ализации), но изучить его не так-то просто. вашего творения, TeXmacs поддерживает ту о содержании.
Если понадобились диаграммы Фейнмана,
активно применяемые в квантовой теории
Осваиваем интерфейс TeXmacs поля, TeXmacs позволит вставить в докумен-
ты изображения: поддерживаются все стан-
дартные векторные и растровые форматы, а
Кнопки для «чего-угодно» также интеграция с Gnuplot и собственные
В меню можно найти любую весьма изощренные инструменты векторного
функцию TeXmacs, а самым рисования.
популярным из них присвоена
После создания документа TeXmacs может
клавиатурная комбинация.
распечатать его или экспортировать в HTML
(формулы обрабатываются либо как изобра-
жения, либо при помощи MathML), LaTeX, PDF
Быстрый доступ
или PostScript. Чтобы восхитить студентов,
Кнопки основной панели
инструментов для: загрузки, сопящих у вас за спиной, добавлен модуль
сохранения и распечатки презентации, с полноэкранным представлени-
документа; откатов, отмены ем документа. Поддержка печати, увы, арха-
откатов и пр.; вставки таблиц, ична: для отправки документа на принтер
рисунков и уравнений. нужно указать команду типа lpr или kprinter.
Кроме того, мы нашли, что PDF, созданные
Формулы или текст? TeXmacs, ставят на колени свободные про-
В зависимости от текущего граммы-просмотрщики типа KPDF или Evince
режима эта панель управления (Adobe Reader отработал без запинки).
предоставляет быстрый доступ К тому же TeXmacs весьма медлителен, а
к функциям форматирования Окно редактирования С одного взгляда
Подсвеченный прямоугольник В строке состояния выводятся его интерфейс нуждается в обновлении. И тем
текста, математическим
операторам или инструментам обрамляет текущий компонент запросы системы, отображается не менее для TeX-новичка это действительно
рисования. редактирования. Здесь мы видим информация о текущем режиме кратчайший путь к созданию математических
матричное уравнение. редактирования, шрифте и т.п. документов под Linux.
FreeCol
Версия 0.5.3 Сайт www.freecol.org
П
опулярным жанром фантасти- другие колониальные силы, а можно играть
ки становится пересмотр истории, с друзьями через Интернет.
интересующийся вопросом: что Элементы стратегии и распоряжения
было бы, если бы какие-то исторические ресурсами взяты из Civ, но здесь нуж-
события не произошли? Если вы любите ны более развитые политические навыки.
отвечать на подобные вопросы, FreeCol – Задача состоит в росте и развитии ваших
ваша игра. Вы получите шанс переиграть колоний, и почти сразу придется умиро-
колонизацию Америки. творять и аборигенов, и родное правитель- Глянь-ка, королева Инсталлятор – JAR-файл, который можно
Фактически это перенос в мир открытого ство. В помощь игрокам создан форум на Бесс! Управляй ты развернуть командой:
ПО классической Colonization, игры, создан- SourceForge, где можно обмениваться сведе- колониями вот этак, java -jar FreeCol-0.5.3-installer.jar
ной Верховным стратегом Сидом Майером ниями о том, как извлечь максимум работы бостонское чаепитие в той директории, куда этот файл загружен.
[Sid Meier]. Игровая логика Colonization и товаров из местных индейцев. было бы всемирным! Следуйте экранным подсказкам, и игра будет
близка к его сверхуспешной Civilization, и FreeCol написана на Java, для ее рабо- установлена в выбранное вами место, вмес-
FreeCol не отстает. Но у Colonization, а значит, ты необходима среда Java 1.5 или выше. те со значками на рабочем столе. Это как
и FreeCol, более узкая задача: игра начина- раз нехитрое дело; а вот умудриться избе-
ется с открытия Америки, а вы становитесь жать войн за территории, катастрофическо-
вице-королем колоний от избранной вами го неурожая и нашествия Макдональдсов –
нации – англичан, французов, испанцев или «Придется умиротворять посложнее будет.
голландцев. Ваша задача – колонизировать
Новый Свет, а затем обрести независимость
и аборигенов, и родное
от собственной нации. Компьютер играет за правительство.»
GLChess и не попадется
на детский мат!
Ш
ахматы! Игра королей, возник- рендеринг и сглаживание. Помимо приятной
шая в Индии почти две тысячи внешности, GLChess добавляет игре ком-
лет назад, занимала умы ком- форта за счет функции сохранения игры
пьютерных гениев почти… да, почти 20 лет. (поддержка формата Portable Game Notation,
Но, хотя для IBM недавнее достижение чем- или PGN) и возможности проследить исто-
пионского уровня стоило нескольких мил- рию ходов.
лионов долларов, сегодня ваш скромный Версия 1.0 стабилизирована для вклю-
настольный Linux-компьютер с шахматным чения в игровой пакет предстоящей вер-
движком сделает то же самое бесплатно. сии Gnome 2.18. Жертвой при этом пала
GLChess – графическое оформление для сетевая составляющая, но можно бросить привязки Python с GTK и OpenGL, а для 3D
различных шахматных движков, включая вызов компьютеру или гостю. Если вы не также расширения GL для GTK (PyGTKGlExt).
Crafty, GNUChess и Phalanx. Фактически, про- хотите ждать выхода Gnome, придется уста- Последние доступны на домашней странице
грамма может общаться с любым движком, новить немало недостающего. Программа GLChess, вместе с пакетами для Debian и
понимающим Chess Engine Communication написана на Python и GTK, поэтому нужны Ubuntu. Библиотека Python Imaging ускорит
Protocol или Universal Chess Interface. отрисовку текстур. Мы не сможем помочь
Префикс ‘GL’ в названии – прозрачный вам растормошить мозги, а вот несколько
намек на то, что GLChess воспроизводит
объемное изображение игровой доски; но
«Префикс ‘GL’ намекает, часов наедине с GLChess – должны.
Медиа-плейер
Exaile
Версия 0.2.7b2 Сайт www.exaile.org
П
рекратив детские споры о том, чей можно импортировать откуда угодно, с пока-
рабочий стол лучше, Exaile перенес зом имени исполнителя или названия альбома.
лучшие качества AmaroK с KDE на Exaile хранит сведения о коллекции во встро-
Gnome. енной базе данных SQLite, поэтому скорость
В наши дни простого воспроизведе- доступа не зависит от размеров музыкаль-
ния музыкальных дорожек недостаточ- ной библиотеки. Плейлисты можно созда-
но. Разумеется, Exaile умеет это делать с вать простым перетаскиванием дорожек, но в
комфортом, управляясь с самыми разными Exaile есть и более мощные инструменты.
звуковыми форматами (Ogg Vorbis, MP3 и, Например, можно автоматически создать Загрузка блема – прощай, рытье на полках, забитых
конечно, старым добрым аудио-CD). Помимо плейлист из 100 случайно выбранных доро- альбомных обложек аудиодисками.
этого, Exaile поддерживает сайты интернет- жек или 100 ваших любимых тем. Умная – это круто, но Как и многие современные приложения
радио Shoutcast (при установке инструмента программа позволит составить плейлисты из держать в руках Gnome, Exaile написан на Python. Вам понадо-
Streamripper возможна запись передачи на песен, отвечающих сразу нескольким запро- настоящий конверт бятся привязки Python к GTK, Glade, GStreamer
диск), общественного сетевого сервиса Last. сам пользователя – по имени исполните- долгоиграющей и несколько других библиотек, но, как прави-
пластинки – совсем
fm и даже ваш iPod. Есть инструменты для ля, названию альбома, жанру, году выпуска ло, они уже присутствуют в новейших версиях
другое дело.
автоматической загрузки и отображения аль- и многим другим критериям. Короче, поиск Gnome. Для поддержки XML Exaile требуется
бомной графики текущей дорожки, слов пес- дорожки для прослушивания больше не про- также ElementTree, включенный в Python 2.5,
ни и гитарной табулатуры, а в окне встроенно- но если у вас 2.4, установите сами. Загрузите
го браузера можно просмотреть сведения об с http://effbot.org/zone/element-index.htm – и
исполнителе, взятые из Wikipedia.
Но все эти приятности лишь оттеняют
«Поиск дорожки для слушайте на здоровье!
Планировщик
KAlarm
Версия 1.9.2beta Сайт www.astrojar.org.uk/linux/kalarm.html
К
омпьютеры придерживаются распи- вой файл, запустить заданную пользователем
сания куда точнее, чем люди. Они команду или скрипт. События можно заплани-
никогда не проспят, не опоздают на ровать на указанный день, или определенное
автобус и не забудут о юбилее. KAlarm – одна время дня, или спустя какой-то промежуток
из программ, обращающих сверхпунктуаль- времени от указанного часа. Если необходимо,
ность компьютеров в вашу пользу, помогая события могут повторяться с регулярными
KAlarm способен
соблюсти расписание. Программа включена в интервалами, или в особые дни, ежегодно и не только залатать гих приложений, понимающих этот формат.
пакет PIM для KDE, но здесь мы рассмотрим даже при каждом входе в систему. Да, KAlarm дыры в вашей Например, существует функция импорта Дней
версию еще свежее включенной в последний необычайно гибок – прямо Cron, стандартный памяти насчет дат, рождения из KAddressbook.
релиз KDE. Новый KAlarm может работать планировщик Linux, только для людей. хотя и тут Эта тестовая версия очень отличается от
самостоятельно (необходимы лишь kdelibs, Неудивительно, что KAlarm прекрасно сов- пригодится! последней стандартной. Переработан интер-
не весь KDE), а может заменить стандартный местим с KDE и другими частями PIM, типа (надпись в красном фейс, особенно диалоговое окно редактиро-
экземпляр KAlarm. KOrganizer. Например, можно добавить сра- диалоговом окне: вания напоминаний; добавлена функция сле-
За простым названием (КБудильник) кро- батывание будильника в календарь KOrganizer «Возможен жения за другими часовыми поясами; исправ-
похмельный
ется больше, чем ненавистный звон поут- в качестве события. KAlarm хранит историю лено много ошибок, включая обработку висо-
синдром!»).
ру, хотя KAlarm годится и для этого. KAlarm оповещений в стандартном формате iCalendar косных годов и переход с летнего на зимнее
обрабатывает событие, к которому можно и запросто импортирует события из дру- время; добавлены переводы на другие язы-
привязать начало выполнения самых разных ки и обновлены прежние. Программа очень
задач, не только напоминаний типа «Юбилей
любимой тещи!». KAlarm может вывести напо-
«Хорошо совмещается полезная, попробуйте обязательно.
Отладчик
Также выпущены
EDB
Версия 0.8.11 Сайт www.codef00.com/projects.php
Новые и обновленные программы,
заслуживающие вашего внимания...
Battle Just Started 0.0.5 Танковое
сражение на базе OpenGL.
http://bjs.sourceforge.net
Н
е путайте с покойной звездой хип- просматривать строки и выискивать ссылки
хопа (да помнят ли читатели Linux на особые адреса памяти, последовательнос- Darkhttpd 1.5 Быстрый, легкий web-
Format ODB?): EDB (сокращение от ти байтов или группы машинных команд. Эти сервер для статического контента.
http://dmr.ath.cx/net/darkhttpd
Evan’s Debugger, по имени автора, Эван Теран инструменты уникальны для Linux-отладчиков,
[Evan Teran]) – графический отладчик, напи- и делают EDB ценным приобретением для Desktop Data Manager 0.8.5 Менеджер
санный Qt 4. Это не красивая обертка для поиска брешей в закрытом коде или инженер- буфера обмена для Gnome.
EDB незаменим
http://data-manager.sourceforge.net
некоторых известных отладчиков типа GDB: ного анализа. для анализа программ
EDB – полностью самостоятельный проект. без исходного кода. GNU Classpath 0.93 Свободная
С виду он работает так же, как боль- реализация стандартной библиотеки
классов Java.
шинство других отладчиков – предоставляет www.gnu.org/software/classpath
инструменты для установки точек прерывания,
Gnofract 4D 3.2 Экспериментальный
просмотра регистров и т.д.; отличия появля-
браузер Mandelbrot и Julia.
ются в обработке программно-библиотечных http://gnofract4d.sourceforge.net
символов. Странно, но их необходимо сбра-
ISO Master 0.6 Графический редактор
сывать в отдельный файл с помощью спе-
ISO-образов. http://littlesvr.ca/isomaster
циального скрипта. EDB будет обращаться к
нему при загрузке соответствующего двоич-
ного файла или библиотеки – такое поведение,
вероятно, связано с тем, что EDB был создан
для анализа программ с закрытым исходным
кодом.
Есть мощные инструменты для опроса
областей памяти, вероятно используемых при-
ложением, включая стек, кучу и области, заня-
тые подключаемыми библиотеками. Можно
Smb4k
Версия 0.8.0 Сайт http://smb4k.berlios.de
Lives 0.9.8.2 Мощный пакет
для редактирования видео.
http://lives.sourceforge.net
Pascal Server Pages 1.6.0.0 Web-
разработка на Pascal?
http://psp.furtopia.org
П
ротокол Server Message Block (SMB), мыши и предоставляет диалоговое окно для
основа Windows-сетей, стал de facto отправки файла прямо на сетевой принтер. Qalculate! 0.9.5 Настольный калькулятор.
http://qalculate.sourceforge.net
стандартом доступа к разделяемым Эти глубоко продуманные решения, плюс
сетевым ресурсам, благодаря открытой реали- более тонкие инструменты – например, спо- RecordMyDesktop 0.3.1 Захват видео
зации, Samba. KDE и Gnome, например, имеют собность синхронизировать содержимое с экрана монитора.
Smb4k сканирует http://recordmydesktop.sourceforge.net
встроенную базовую поддержку Samba. Если локальной папки с сетевым ресурсом через сеть в поисках SMB-
вашему рабочему столу недостает соответст- rsync – делают Smb4k незаменимым средст- ресурсов и находит SynchroEdit 0.5 Позволяет
вующих функций, на помощь придет специ- вом работы в сети. редактировать документ нескольким
известные хосты по
пользователям одновременно.
альный SMB-браузер, Smb4k. имени или IP-адресу.
www.synchroedit.com
У KDE и у Gnome есть общий недостаток:
доступ к общим ресурсам по SMB у них воз- Trac 0.10.3 Менеджмент web-проектов
и отслеживание ошибок.
можен лишь через KDE или Gnome, соответ-
ственно. А Smb4k монтирует общие ресурсы в
локальную файловую систему, и к ним может
обратиться любое приложение. Он также поз-
воляет настроить и более сложные функции
Samba. Идентификация может проходить либо
со стандартным паролем, либо со специально
назначенным для каждой обменной сессии.
Среди других параметров сессии – имя пользо-
вателя и групповой ID, с которым монтируется
общий ресурс.
Smb4k дает возможность открывать сете- Свободно с Classpath.
вые ресурсы в Konqueror одним щелчком
Магия на марше
Linux жив! И вовсе не в виде орд жутких роботов- альны для демонстрации возможностей Linux
убийц – пингвинов, сметающих все на своем пути, потенциальным пользователям: можно просто
а в формате Live-дистрибутивов. Knoppix первым дать человеку диск, и пусть с ним поработает, не
запустил и начал популяризировать Live Linux – боясь случайно повредить раздел Windows. Но,
т.е. версию ОС, которая работает непосредствен- возможно, самое важное – Live-дистрибутивы
но с CD и не требует установки на жесткий диск. открывают дверь в мир новой компьютерной
Когда в 2003 г. появился Knoppix, его повсемест- техники: портативную среду рабочего стола.
но сочли новшеством, но слишком медлитель- Записав все нужные настройки и файлы на запо-
ным для использования в качестве повседневной минающее USB-устройство, вы можете создать
системы Linux (поскольку CD и DVD работали привычную для вас среду почти на любом ПК.
куда медленнее жесткого диска). Однако многие Итак, в этом месяце мы рады предложить
Майк Сондерс из современных Live-дистрибутивов работают вам два лучших Live-дистрибутива на планете:
любовно подбирает исключительно в ОЗУ, гораздо быстрее, чем Knoppix, золотого ветерана, и только что вы-
содержимое диска Linux Linux, установленный на жесткий диск; и пущенную Live-версию Fedora. Но это только
Format, а также каждый день они находят все новые и глазурь поверх тортика – вы найдете еще и
поддерживает сайт www. новые сферы применения. Например, NetBSD, и OpenBSD, и новый релиз OpenOffice.
linuxformat.co.uk. Live-дистрибутивы идеальны для тести- org 2.1, исчерпывающий мастер-класс
рования совместимости вашего компью- Inkscape, нашу подборку лучших игр и новых
тера с Linux: не требуется проходить релизов программ с открытым кодом.
через весь процесс установки, чтобы Наслаждайтесь!
узнать, имеется ли полная поддержка mike.saunders@futurenet.co.uk
вашего оборудования. А еще они иде-
5 Places 6 Сохранение
Меню Places позво- Fedora Live грузится
ляет вам просматри- с DVD, предназна-
вать информацию о ченного только для
вашем компьютере чтения, поэтому на-
или получать доступ до сохранять все со-
к другим дискам (на- здаваемые вами
пример, к DVD-ROM). файлы на другом ус-
Через это меню мож- тройстве. Вставьте,
но также соединять- например, USB-бре-
ся с другими ком- лок, и на экране по-
пьютерами, если вы явится соответству-
подключены к сети. ющий значок.
Дистрибутив Linux
3 Gnome 4 Смотрим
Загрузившись, программы
Fedora запустит Откройте меню
рабочий стол Applications сверху
Gnome, готовый к справа, чтобы уви-
работе. Внизу эк- деть, какие про-
рана вы увидите граммы включены
панель задач и пе- в Fedora Live. Это
реключатель вир- офисные инстру-
туальных рабочих менты, программы
столов. для Интернета и
работы с графи-
кой.
7 Настройки 8 Финиш
Если вы хотите Закончив работу с
изменить какие-либо Fedora, нажмите
настройки, например, меню System >
разрешение экрана
Shut Down, и смо-
или раскладку
жете перезагру-
клавиатуры, откройте
меню System и зить или выклю-
просмотрите чить компьютер.
подпункты Preferences Не забудьте из-
и Administration. влечь DVD перед
следующим запус-
ком ПК.
Дистрибутив Linux
Knoppix 5.1.1
Х
отя за последние годы появились
сотни Live-дистрибутивов, имя Исследуем функции Knoppix
Knoppix по-прежнему остается сино-
нимом портативного Linux – и по праву: ведь
из всех Live-дистрибутивов это, несомненно, Программа
Главное меню установки
по-прежнему лучший. Основанный на Debian, Для доступа к изобилию
Программа установки
Knoppix сочетает потрясающее по качеству приложений Knoppix,
Knoppix на жесткий
обнаружение оборудования с богатейшим нажмите на меню K.
диск – для продвину-
набором программ, и все это на одном-единс- тых пользователей –
твенном диске. Просто установите DVD в при- позволит завести
Главное меню Knoppix на постоянной
вод, загрузите компьютер – и перед вами пор-
Для доступа к изобилию основе.
тативная Linux-система, которую вы можете
приложений Knoppix,
взять с собой куда угодно, она не требует
нажмите на меню K.
установки на жесткий диск. Хотите показать Системный лоток
Используя его значки,
друзьям возможности Linux – установите DVD
в их компьютер, и через пару минут Linux
Панель можно изменить
Панель содержит кнопки раскладку клавиатуры
загрузится и заработает. запуска терминала, и подредактировать
Даже если вы вполне счастливы с своим просмотрщика файлов настройки трехмерно-
дистрибутивом, в этом релизе Knoppix есть Konqueror и OOo. го рабочего стола.
функция, которую вы наверняка не упустите –
трехмерный рабочий стол Beryl, ответвление
Compiz, принесшее на рабочий стол Linux видели рабочий стол-куб и выбор окон а-ля проблемы, можете воспользоваться режима-
знаменитые 3D-эффекты и прозрачность, на Expose в предыдущих выпусках Linux Format – ми Framebuffer, Failsafe и Debug, но при этом
фоне которых Mac OS X выглядит как старая Beryl зашел дальше и предлагает такие функ- Beryl не будет задействован.
развалина Windows 3.1. Возможно, вы уже ции, как просвечивание и отличный менеджер Knoppix можно также установить и на жес-
тем рабочего стола. Известно, что и Compiz, и ткий диск; программа установки считается экс-
Beryl весьма сложны в установке, и если они периментальной, но если вы пару раз устанав-
у вас не работают, немедля пробуйте Knoppix. ливали Linux раньше, то проблем у вас возник-
А потом покажите его тем, кто помчался было нуть не должно, просто следуйте подсказкам.
закупать Vista. Зайдите в меню K > Knoppix > Root Shell, и набе-
Knoppix требует минимум 256 МБ ОЗУ рите knoppix-installer (требуется минимум 2 ГБ
и процессор не ниже 1 ГГц, чтобы система на жестком диске). После установки вы полу-
работала ровно. Для ее запуска загрузите ПК чите систему Debian Unstable, которую можно
с LXFDVD и нажмите Enter в меню загрузки. обновлять из обычных репозиториев Debian.
Если хотите посмотреть на вышеупомяну- Еще несколько слов об этом рели-
тые 3D-эффекты рабочего стола, выбери- зе Knoppix: он включает в себя KDE 3.5.5,
те Knoppix 5.1.1 (Beryl 3D Desktop) в меню OpenOffice.org 2.1 и драйвер NTFS-3G, кото-
Из-за проблем с товарными знаками, загрузки, это включит Beryl, когда загрузится рый позволяет монтировать NTFS-разделы
Firefox в Knoppix называется IceWeasel. рабочий стол. Если при загрузке возникли Windows на чтение и запись.
Офисный пакет
OpenOffice.org 2.1
Н
ачать с хорошей новости или с пло- ких мониторов одновременно, а Base облада-
хой? Начнем с хорошей: OpenOffice. ет куда лучшей совместимостью с Microsoft
org стал чуть быстрее. Ну, еще не сов- Office. Плюс к тому вышеупомянутое увели-
сем в той же лиге скорости, что и AbiWord, но в чение скорости и сотни исправлений ошибок
новом релизе 2.1 слегка улучшена производи- и прочих усовершенствований по сравнению
тельность. Если вы постоянно пользуетесь ООо, с версией 2.0.
то, возможно, заметите одну-две секунды, сэко- Для установки скопируйте файл openoffice.
номленные при загрузке. А плохая новость – org-2.1.tar.gz из раздела Office/OpenOffice.org
процедура установки по-прежнему невероят- нашего DVD на жесткий диск. Откройте терми-
но глупа. Вы думали, что программа установ- нал (например, Gnome Terminal или Konsole)
ки у одного из крупнейших и популярнейших и введите:
открытых проектов, наверное, достойная, так tar xfvz openoffice.org-2.1.tar.gz
ведь? Как бы не так – у ООо нет ни RPMs, ни cd openoffice.org-2.1/RPMS/
Debs, ни автопакетов [имеется в виду ориги- Распакуется архив openoffice.org-2.1.tar.gz,
нальная сборка, – прим. ред.], ни даже толко- и вы перейдете в получившуюся в результа-
вых имен директорий. Мы прилагаем руковод- те распаковки директорию. (Учтите, мы ее
ство по установке, оно поможет вам продраться переименовали, поскольку в исходной вер-
сквозь этот нонсенс, установить ООо и заста- сии ООо ее название нечеловечески длинно!). Удобно, что интерфейс OpenOffice.org 2.1 почти не изменился;
вить его работать за несколько минут. Перед установкой лучше удалить все старые на рисунке показана тема GTK.
Но сначала – пробежимся по основным версии OpenOffice.org с помощью менеджера
функциям ООо 2.1. Расширен экспорт HTML пакетов.
в Calc, редакторе электронных таблиц, что Далее, в системах, основанных на RPM –
позволяет более эффективно использовать например, в Fedora, Mandriva, PCLinuxOS или Документация
таблицы стилей, и web-страницы стали боль- OpenSUSE, вводите:
ше похожи на исходные электронные таб- su -c “rpm -ivh *”
Учебники по Inkscape
лицы. Инструмент создания презентаций Команда su попросит вас ввести пароль Несколько наших DVD фокусиро-
Impress теперь имеет поддержку для несколь- администратора и затем установит нужные вались на продвинутом общении
пакеты. Если вы работаете в Ubuntu, то ввести с Linux, интересном для крутых
вам надо следующее: пользователей и хакеров – обо-
sudo alien * рудование, программирование и
sudo dpkg -i *.deb сети. Но в этом месяце наши
RPM-пакеты конвертируются в Debs, а архивы в формате PDF содержат
затем установятся. увесистую коллекцию руководств
по Inkscape, редактору векторной
Теперь у вас есть ООо2.1, расположенный
графики с открытым исходным Руководство по Inkscape –
в /opt/openoffice.org2.1, и вы можете запустить настоящий университет
кодом. Мы все знакомы с растро-
его из терминала, введя: выми редакторами, типа Gimp, но векторной графики.
/opt/openoffice.org2.1/program/soffice если вам нужны изображения с
Итак, вперед - не забудьте только доба- варьируемым размером, не пре- У нас здесь руководство по
Экспорт электроннных таблиц в HTML еще вить пунктик в меню или ярлык на рабочий вращающиеся при увеличении в Inkscape на 45 страницах, напи-
не идеален, но постоянно улучшается. стол! шахматную доску, то без вектор- санное его гуру Дмитрием
ной графики не обойтись (она Кирсановым для LXF74–85, в
использует координаты объекта, разделе Журнал/PDFs.
а не пиксели). Руководство начнет с самых ос-
Inkscape вы найдете в разделе нов (что такое градиенты и кон-
Графика – это релиз 0.45, но туры) и доведет вас до работы с
3 Настройка пусть вас не пугает небольшой текстом и инструментами клони-
Нажмите на крас- номер версии – Inkscape уже об- рования. Овладев набором функ-
ный значок Emerald ладает весьма внушительными ций Inkscape, вы сможете испы-
в системном лотке, способностями и очень надежен, тать ваши новые умения в пароч-
чтобы открыть так что его уже на данной стадии ке проектов – например, создать
Beryl Settings можно считать версией 1.0. визитную карточку или сайт.
Manager и настро- Однако разработчики хотят снаб- Inkscape – прекрасная програм-
ить эффекты дить его еще кое-какими функ- ма и для начинающих, и для
(включая чудесный циями до выпуска первого пол- опытных дизайнеров векторной
эффект прозрач- ноценного релиза. Возможно, графики; с помощью нашего ру-
ности рабочего вам удастся получить свежай- ководства вы мигом научитесь
стола в форме шую версию Inkscape из репози- создавать профессиональные
куба). ториев пакетов, ну, а если нет, изображения.
скомпилируйте релиз 0.45 из ис-
ходного кода на нашем DVD.
Операционные системы
Информация
о диске
ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ DVD-ДИСК !
ЧТО-ТО ПОТЕРЯЛИ?
Часто случается, что новые программы зависят от дру-
гих программных продуктов, которые могут не вхо-
дить в текущую версию вашего дистрибутива Linux.
Мы стараемся предоставить вам как можно
больше важных вспомогательных файлов. В боль-
шинстве случаев, последние версии библиотек и
другие пакеты мы включаем в каталог «Essentials»
(Главное) на прилагаемом диске. Поэтому, если в
вашей системе возникли проблемы с зависимостя-
ми, следует заглянуть именно туда.
ФОРМАТЫ ПАКЕТОВ
Мы стараемся включать как можно больше раз-
личных типов установочных пакетов: RPM, Deb или
любые другие. Просим вас принять во внимание,
что мы ограничены свободным пространством и
доступными бинарными выпусками программ. По
возможности, мы будем включать исходные тексты
для любого пакета, чтобы вы смогли собрать его
самостоятельно.
ДОКУМЕНТАЦИЯ
На диске вы сможете найти всю необходимую
информацию о том, как устанавливать и использо-
вать некоторые программы. Пожалуйста, не забы-
вайте, что большинство программ поставляются
вместе со своей документацией, поэтому дополни-
тельные материалы и файлы находятся в соответ-
ствующих директориях.
ЧТО ЭТО ЗА ФАЙЛЫ?
Если вы новичок в 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 – версия для
разработчиков.
СОЗДАНИЕ УСТАНОВОЧНЫХ
ДИСКОВ ПРИ ПОМОЩИ
CDRECORD
Другая ОС?
Вам не обязательно использовать Linux для
записи компакт-диска. Все необходимые фай-
лы уже включены в ISO-образ. Программы
вроде cdrecord просто переносят данные на
чистую матрицу. Если у вас нет устройства
для записи дисков, можно найти того, у кого
оно есть, и записать диск на его компьюте-
ре. На нем может стоять Windows, Mac OS X,
AmigaOS, или любая другая ОС.
Информация
о диске
ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ DVD-ДИСК !
ЧТО-ТО ПОТЕРЯЛИ?
Часто случается, что новые программы зависят от дру-
гих программных продуктов, которые могут не вхо-
дить в текущую версию вашего дистрибутива Linux.
Мы стараемся предоставить вам как можно
больше важных вспомогательных файлов. В боль-
шинстве случаев, последние версии библиотек и
другие пакеты мы включаем в каталог «Essentials»
(Главное) на прилагаемом диске. Поэтому, если в
вашей системе возникли проблемы с зависимостя-
ми, следует заглянуть именно туда.
ФОРМАТЫ ПАКЕТОВ
Мы стараемся включать как можно больше раз-
личных типов установочных пакетов: RPM, Deb или
любые другие. Просим вас принять во внимание,
что мы ограничены свободным пространством и
доступными бинарными выпусками программ. По
возможности, мы будем включать исходные тексты
для любого пакета, чтобы вы смогли собрать его
самостоятельно.
ДОКУМЕНТАЦИЯ
На диске вы сможете найти всю необходимую
информацию о том, как устанавливать и использо-
вать некоторые программы. Пожалуйста, не забы-
вайте, что большинство программ поставляются
вместе со своей документацией, поэтому дополни-
тельные материалы и файлы находятся в соответ-
ствующих директориях.
ЧТО ЭТО ЗА ФАЙЛЫ?
Если вы новичок в 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 – версия для
разработчиков.
СОЗДАНИЕ УСТАНОВОЧНЫХ
ДИСКОВ ПРИ ПОМОЩИ
CDRECORD
Другая ОС?
Вам не обязательно использовать Linux для
записи компакт-диска. Все необходимые фай-
лы уже включены в ISO-образ. Программы
вроде cdrecord просто переносят данные на
чистую матрицу. Если у вас нет устройства
для записи дисков, можно найти того, у кого
оно есть, и записать диск на его компьюте-
ре. На нем может стоять Windows, Mac OS X,
AmigaOS, или любая другая ОС.
Содержание DVD
ЖУРНАЛ WebMonx............Монитор сайтов.
Blender .............Примеры из статьи. XChat ..................IRC-клиент.
Gtk ....................Примеры из статьи.
Esoteric.............Экзотические языки программирования. ОФИС
JavaEE ..............Примеры из статьи. OpenOffice.org .....Офисный пакет.
Mono.................Примеры из статьи. Scribus ................Настольная издательская система.
PDFs .................Учебники Inkscape. SoftMaker demo ..Пробная версия офисного пакета.
Roundup............Клиенты BitTorrent.
СЕРВЕР
PostgreSQL .......Полный текст интервью с Алексеем
Apache ................Web-сервер.
Харитоновым.
Lightbird..............IM-сервер и клиент.
РАБОЧИЙ СТОЛ mod_cband .........Модуль Apache 2.
Day Planner ......Утилита планирования времени. MySQL ................Сервер баз данных.
Enlightenment ...Оконный менеджер. SugarCRM...........CRM-система.
GCstar ...............Менеджер коллекций. У Claws Mail, ответвления Sylpheed, аккуратный
СИСТЕМА интерфейс в стиле Evolution.
GnuCash ...........Персональный финансовый менеджер.
Grub ....................Тестовая версия загрузчика.
Hipo ..................Менеджер данных iPod.
KThinkBat ...........Монитор батареи ThinkPad.
KCatalog ...........Инструмент каталога мультимедиа.
Ndiswrapper........Слой совместимости
TkFlightPlan ......Планировщик.
с драйвером Windows.
Xpdf ..................Программа просмотра PDF.
Qemu ..................Эмулятор ПК.
РАЗРАБОТКА QtEmu .................Интерфейс Qt для Qemu.
FreeBasic ..........Компилятор Basic. Tweak .................Менеджер скрытых настроек KDE.
Monkey Studio ..IDE на базе Qt. XenMan ..............Менеджер виртуализатора Xen.
Mono.................Открытая реализация .NET.
ГЛАВНОЕ
MonoDevelop ....C# IDE.
ATI driver ............Графический драйвер.
wxWidgets ........GUI-инструментарий.
Avifile ..................Библиотека чтения/записи AVI файлов.
ДИСТРИБУТИВЫ Bash....................Командная оболочка.
Fedora ...............Live-дистрибутив, выпущенный Red Hat. CheckInstall ........Программа создания
FreeDOS ............DOS-совместимая ОС. двоичных пакетов.
Knoppix .............Live-дистрибутив. Coreutils .............Утилиты командной строки.
NetBSD .............Переносимая ОС. CSV .....................Список файлов, содержащихся Ищете новую IDE? В Monkey Studio есть
OpenBSD ...........Супербезопасная ОС. на диске. подсветка синтаксиса и завершение кода.
GLib ....................Низкоуровневая библиотека.
ИГРЫ Glibc....................Библиотека GNU C.
Brain Party ........Подборка мини-игр. GTK .....................GUI-инструментарий.
Enigma ..............Головоломка. HardInfo ..............Информация и оценка системы.
Warzone 2100 ..Стратегия в реальном времени. Jigdo ...................Создатель ISO-образов.
X-Moto ..............Гонки на мотоциклах. Kernel .................Свежий релиз ядра Linux.
LibXML2 .............Анализатор и набор
ГРАФИКА инструментов XML.
Inkscape ...........Редактор векторной графики. Ncurses...............Оконный инструментарий
KPhotoAlbum ....Менеджер изображений. текстового режима.
Linman ..............Программа фрактального увеличения. Nvidia driver .......Графический драйвер.
Python.................Язык программирования.
СПРАВКА
Rawrite ...............Запись образов на дискеты.
Rute ..................Руководство по администрированию
SBM ....................The Smart Boot Manager.
Linux.
SDL .....................Библиотека мультимедиа.
HOTPICKS
EDB ...................Отладчик. Если вы любите
Exaile ................Медиа-плейер. Kickstart II со времен
FreeCol .............Клон Colonization. 8 бит, испытайте свои
GElemental........Программа просмотра периодической виртуальные навыки
таблицы. мотогонщика
GLChess............Трехмерные шахматы. в X-Moto.
KAlarm ..............Персональный планировщик.
Partition Image ..Резервное копирование разделов.
Smb4k ...............Браузер ресурсов SMB.
TeXmacs ...........Платформа
для типографского набора.
Weatherspect ...Программа просмотра погоды ASCII.
ИНТЕРНЕТ
Claws Mail ........Email-клиент.
Firefox...............Web-браузер.
iPodder .............Получатель подкастов.
Pan ...................Программа для чтения новостей.
в апреле
Денис Игнатов +7 812 965 7236 advert@linuxformat.ru
Заместитель генерального директора
Софья Виниченко
Генеральный директор
Павел Фролов
УЧРЕДИТЕЛИ
частные лица
ИЗДАТЕЛИ
В ожидании
Станислав Медведев, Виктор Федосеев, Павел Фролов
Gimp
РЕДАКЦИЯ АНГЛОЯЗЫЧНОЙ ВЕРСИИ:
Редактор Ник Вейч (Nick Veitch) nick.veitch@futurenet.co.uk
Заместитель редактора Пол Хадсон (Paul Hudson) paul.hudson@futurenet.co.uk
Художественный редактор Эфрейн Эрнандес-Мендоса
(Efrain Hernandez-Mendoza) efrain.hernandez-mendoza@futurenet.co.uk
Новостной редактор Майк Сондерс (Mike Saunders) mike.saunders@futurenet.co.uk
Литературный редактор
Ребекка Смолли (Rebecca Smalley) rebecca.smalley@futurenet.co.uk
Штатный автор
Грэм Моррисон (Graham Morrison) graham.morrison@futurenet.co.uk
Ассистент по выпуску Новый крупный релиз уже на горизонте, но почему это заняло так
Эндрю Грегори (Andrew Gregory) andrew.gregory@futurenet.co.uk
Авторы
много времени, и что произошло c GEGL?
Марк Бейн (Mark Bain), Ладислав Боднар (Ladislav Bodnar), Нейл Ботвик (Neil
Bothwick), Энди Ченнел (Andy Channelle), Ричард Драммонд (Richard Drummond),
Попробуем разобраться...
Марко Фиоретти (Marco Fioretti), Стефан Лукас (Stephan Lucas), Евгений Балдин,
Андрей Боровский, Андрей Прахов, Петр Семилетов, Александр Супрунов, Алексей
Федорчук, Александр Бабаев, Илья Шпаньков
15 шагов к безопасности
Художественные ассистенты: Зигги Бейкер (Ziggi Baker), Энди Онстед (Andy Ounsted)
Фотографии: Джейсон Каплан (Jason Kaplan)
Иллюстрации: Нейл Бартлет (Neil Bartlett), Пол Блехфорд (Paul Blachford), Elly Walton
Illustrations, Крис Винн (Chris Winn)
КОНТАКТНАЯ ИНФОРМАЦИЯ
Мы научим вас, как защитить компьютер дома, в серверной и
UK: Linux Format, 30 Monmouth Street, Bath BA1 2BW
Tel 01225 442244 Email: linuxformat@futurenet.co.uk
даже в Сети!
РОССИЯ:
Санкт-Петербург (редакция): ул. Гончарная, 23, офис 54, телефон: (812) 717-00-37
Представительство в Москве:
пр.Мира, 161, телефон +7(495) 799-18-63, +7(495)136-88-45
Email: info@linuxformat.ru, Web: www.linuxformat.ru Обзор: Nokia N800
Авторские права: Статьи, переведенные из английского издания Linux Format, являются
собственностью или лицензией Future Publishing Ltd (Future plc group company). Все права
зарегистрированы. Никакая часть данного журнала не может быть повторно опубликована без
Новый интернет-планшет приходит в Россию. Не пора ли
письменного разрешения издателя.
Все письма, независимо от способа отправки, считаются предназначенными для публикации,
запланировать очередную покупку?
если иное не указано явно. Редакция оставляет за собой право корректировать присланные
письма и другие материалы. Редакция Linux Format получает неэксклюзивное право на
публикацию и лицензирование всех присланных материалов, если не было оговорено иное.
Linux Format стремится оставлять уведомление об авторских правах всюду, где это возможно.
Эрик Оллмен
Свяжитесь с нами, если мы не упомянули вас как автора предложенных вами материалов и мы
постараемся исправить эту ошибку. Редакция Linux Format не несет ответственности за опечатки.
Все присланные материалы могут быть помещены на CD или DVD-диски, поставляемые вместе с
журналом, если не было оговорено иное.
Ограничение ответственности: используйте все советы на свой страх и риск. Ни при каких условиях Интервью
редакция Linux Format не несет ответственность за повреждения или ущерб, нанесенные вашему
компьютеру и переферии вследствие использования тех или иных советов.
За содержание рекламных материалов редакция ответственности не несет.
Создатель Sendmail о том, откуда взялся
Linux-зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds). Название «GNU/
Linux» заменяется на «Linux» в целях сокращения. Остальные торговые марки являются
собственностью их законных владельцев.
спам.
Linux Format является торговой маркой Future Publishing Ltd (Future plc group company).
За информацией о журналах, издаваемых Future plc group company, обращайтесь
http://www.futureplc.com