Академический Документы
Профессиональный Документы
Культура Документы
LXF91
Metisse » XHTML 2 » Greenphone » Mono
Тройная
загрузка!
» Mandriva One Metisse
» OpenSUSE 10.2 Live
Системы управления
версиями:
№ 4 (91)
Главное в мире Linux Subversion и CVS –
лицом к лицу c. 20
Gimp
Апрель 2007 № 4 (91)
Metisse
План занятий
на апрель
Nokia N800
Разбираемся с файлами журналов с. 38
Создаем таблицу стилей XSLT с. 60
Эрик Оллмен
Greenphone
OpenSUSE 10.2 Live
Будущее свободной графики – в ваших руках!
» Новые инструменты Gimp 2.4 » Вдохновляющие проекты других пользователей » GEGL из первых рук
Mono
Webатастика!
GNewSense 1.0
Содержание
Весь номер – прямо как на ладони: приятного чтения!
Система
Следите за пользователями! ......................... 56 Mandriva One Metisse
Стойкие пароли и права доступа к файлам Специально для истинных гурманов:
для начинающих. восхитительная «живая» Mandriva с новым
XSLT трехмерным рабочим столом, Metisse.
Создаем таблицу стилей ................................ 60
Программирование на языке таблиц стилей OpenSUSE 10.2 Live
XML: ваша RSS-лента будет выглядеть намного Один из самых солидных дистрибутивов
лучше. Linux, готовый к запуску прямо с DVD!
SugarCRM Покажите Linux своим друзьям,
Как ее настроить............................................. 64 используйте его как спасительный диск
Мы установили великолепную открытую или «пробник».
CRM-систему: пришла пора приспособить ее
к нуждам вашей организации. GNewSense
Mono Устали от угрызений совести из-за
Программируйте с GTK ................................... 68 стоящего на вашем компьютере
Набросайте интерфейс для своего RSS- проприетарного ПО? GNewSense, новый
агрегатора и заставьте его работать! дистрибутив Free Software Foundation,
подарит вам долгожданный душевный
покой.
Deb
Соберите собственный пакет......................... 72
«Создание и распространение пакета – это
XHTML 2? Лучшие новинки открытого
ПО на планете..................................110
способ выразить благодарность сообществу».
Узнайте больше!
GTK
Новый Glade .................................................... 76
Сделайте это на C! Новый Glade позволяет
писать удивительно изящные приложения.
Unix API
Окна ncurses .................................................... 80
Создаем удобный интерфейс для утилит
командной строки. Забудьте свои дурные
Java EE HTML-привычки с. 32
Сессии и фильтры .......................................... 84
Разграничиваем доступ к web-приложению Наслаждайтесь искуственным интеллектом с Breve.
и фильтруем нежелательных посетителей.
PostgreSQL
Дополнительные главы ................................. 88 LXF ИНТЕРВЬЮ
Резервное копирование, репликация,
автовакуум – что еще умеет PostgreSQL? «Существует
LaTeX не так много
Создаем презентацию.................................... 94 технологий,
Чтобы впечатлить аудиторию, не нужно
открывать Impress. Сделайте презентацию
насчитывающих
четверть века, Демоны
в LaTeX – и вас не забудут!
Blender
которые до сих
пор работают.»
говорят! с.38
Скелетная анимация ....................................... 98
Изучите язык журнальных файлов,
Орлята учатся летать – пингвины Эрик Оллмен с. 28 чтобы лучше понимать, что происходит
учатся ходить.
в системе
LXF DVD
Подпишись внутри!
на Linux Format См. страницу 116
и сэкономь!
Спецрепортаж Обзоры
Nokia N800 ................................12
пришествие GIMP
Что нам готовит фаворит открытой графики? с.48
А также...
Шаловливые ручки Linux Format
дорвались и до благопристойного
15 мгновений безопасности..с 34 Greenphone.
Новости
ГЛАВНЫЕ НОВОСТИ: Red Hat Enterprise Linux 5 и Mandriva Corporate Desktop 4.0 Beta
Dell преподносит сюрпризы Солидный патронаж Кто сделает Debian привлекательнее?
Солидный патронаж
Прошедший месяц принес сразу две ново- взамен получает дополнитель-
сти, которые по сути можно отнести к одно- ные «производственные силы»
типным, хоть и разным по целям и значимос- в лице многочисленного сооб-
ти. Поэтому позволим себе объединить их в щества программистов и обычных
одну заметку и начнем с наименее претенци- пользователей, работающих по при-
озной. Итак, норвежская компания Trolltech, нципам Free Software. Это будет способство- мательно, учитывая тактику и стратегию дей-
давно и плодотворно сотрудничающая с раз- вать ускоренному внедрению в программные ствий компании в последние несколько лет.
работчиками KDE, решила еще больше сбли- продукты Trolltech новых функций, их тести- Свой разворот в сторону свободного ПО Sun
зиться с авторами одной из самых популяр- рованию и исправлению ошибок. начала еще в 2004 году (если не считать мно-
ных рабочих сред и объявила о том, что ста- голетней поддержки проекта OpenOffice.org)
новится официальным спонсором проекта. и за прошедший период многие популярные
Следует пояснить, что, несмотря на довольно программные продукты компании были выпу-
прочный фундамент, данный проект является щены под свободной лицензией. Но изюминка
некоммерческим и любая помощь со стороны, в том, что таким образом
финансовая или техническая, может только известный разработчик
приветствоваться, о чем говорит даже спе- ПО не старается при-
циально для этих целей разработанная KDE Второй случай патронажа коммерческой дать развитию Linux-
система патронажа, позволяющая привлекать компании над свободным проектом является систем дополнитель-
сторонних спонсоров к более тесному сотруд- не только событием более крупным, но и пре- ный импульса, а реша-
ничеству. Впрочем, до настоящего момента следует более замысловатые цели. В двух сло- ет, грубо говоря, свои
воспользоваться этой возможностью и стать вах: компания Sun Microsystems стала патро- проблемы, связанные с недостаточно актив-
«патроном KDE» пожелал только известный ном Фонда Свободного ПО – Free Software ным распространением собственной опера-
миллионер и вдохновитель другого свободно- Foundation (FSF). Впрочем – не единственным: ционной системы Solaris. Причем, одним из
го проекта Ubuntu Марк Шаттлворт. Сегодня среди корпоративных патронов Фонда уже возможных сценариев будущего развития
он – официальный частный спонсор и, к сожа- числятся такие «мэтры», как Google, Nokia, компании может стать создание операцион-
лению, пока единственный. IBM, Cisco и Intel. Подобный патронаж также ной системы GNU на
Таким образом, компания Trolltech ста- осуществляется на взаимовыгодных услови- ядре Solaris, что неко-
ла первым корпоративным патроном KDE и, ях: компании предоставляют Фонду финансо- торые расценивают
пожалуй, самым значимым. Именно програм- вую помощь, а взамен получают всесторонние как камень в огород
мисты этой небольшой норвежской фирмы услуги консультационного плана, связанные «сердца» практически
являются создателями графических библи- с возможными юридическими и правовыми всех свободных систем – ядра Linux. В этом
отек и средств разработки Qt, на которых, проблемами, могущими возникнуть в процес- ракурсе патронаж над FSF может оказаться
собственно, и построен весь графический се работы со свободным ПО. попыткой получить большее влияние на все
интерфейс KDE. Получение же официального В общем, ничего особо сложного и зага- движение Free Software в целом, а уж как это
статуса «Patron of KDE» является взаимовы- дочного в данном патронаже нет, но именно влияние будет использоваться руководством
годным для обеих сторон: свободный проект случай Sun следует рассматривать более вни- компании – покажет время.
получает мощную техническую и финансо-
вую поддержку, которые позволят повысить
качество конечных продуктов и ускорить раз-
работку в целом, а коммерческая компания
Евгений: Были ли проблемы при переходе? Евгений: Попробовал ли кто из детей GNU/Linux дома?
Константин: Первая попытка была полтора года назад – но не вышло. Это было Константин: Пока только двое поставили эту ОС. Причина проста – нужны опыт,
обусловлено парком техники и дистрибутивом (Mandrake 10 Discovery). Хотя в знания и желание. О чем говорить, если мы только-только перешли на Linux. Но
локальной сети был поставлен Apache с целью научить детей работать в браузере, помощь с моей стороны – это святое дело.
дать понятие, что такое Сеть. Ведь подключения к Интернету не было, да и сей-
час его фактически нет. Линии у нас абы какие – можно сказать, не проложены. Евгений: Как реагируют родители?
Окончательный переход состоялся уже в этом году. Константин: Родителям все равно. Многие из них не имеют высшего образова-
ния. К компьютеру относятся, как к дьяволу [улыбается].
Евгений: Какая причина привела к этой достаточно резкой замене программного
обеспечения? Евгений: Как относятся к переходу на GNU/Linux другие учителя?
Константин: Резкой заменой я бы это не назвал. В данном случае, все назревало Константин: Учителя пока «ни сном, ни духом». Да и мало кто из них использует
постепенно. Ну и конкретный повод все-таки был: события в стране, в частности в компьютерную технику в учебном процессе. Ведь в массе своей это люди 45–55 лет,
Пермском крае. Да и техника у нас сейчас стоит нормальная. Если еще учесть эко- которым трудно вводить в свою работу что-то новое.
номический эффект, то переход можно назвать логическим следствием. Хотите – Когда этот контингент заканчивал учебные заведения, массовой информа-
называйте резкой заменой, ваше право. тизации не было. А чтобы освоить технику сейчас – нужно время и желание, а
инертность и боязнь показаться безграмотным берут свое. Но это все временно и
Евгений: Вернемся еще раз к вопросу о ПО. Что используется? Какие программы преодолимо.
оказались очень кстати? Реально сейчас на технике работают 20% коллектива. Но к концу года эта цифра
Константин: Насчет дистрибутива: пробовал ASPLinux, Fedora Core, Mandrake, изменится – я думаю, до 60%. У нас ведь не только стационарные ПК: есть ноутбук и
Mandriva 2006. Больше всего понравился Mandrake/Mandriva своей дружественнос- медиапроектор, которые в последний месяц используются весьма интенсивно.
тью к начинающему пользователю. В качестве рабочего стола – KDE. Вот здесь можно снова обратиться к вопросу о программном обеспечении:
Что касается программ: OpenOffice.org – альтернатива Microsoft Office, это из нужен хотя бы и коммерческий учебный софт, аналогичный существующему
привычных. Для себя сделал открытие (и всем советую), текстовый процессор LyX. под Windows. Зачем Министерству образования тратить деньги на Microsoft?
С ним действительно избавляешься от болезней Word. Очень кстати оказались Заплатили бы лучше своим программистам, пусть делают учебное ПО под Linux.
пакеты KEduca с редактором тестов и KTurtle – аналог логомиров. Аналог Delphi – Еще и сэкономят.
Lazarus плюс Free Pascal. Ну и вообще, все что есть в Mandriva, очень кстати.
Евгений: Есть ли помощь от сетевого сообщества?
Евгений: Что заменить не удалось? Чего Вам сейчас не хватает? Константин: В сетевом сообществе уже есть течение в нужном направлении.
Константин: Вот чему не удалось найти замену – так это FineReader’у. Помощь – ссылки на ресурсы Интернет. А по части обмена опытом – пока нет.
Чего пожелать еще? Чтобы Министерство образования развернулось в сторону
Open Source, или хотя бы чуть поправило свой курс в эту сторону. Евгений: Какие у Вас теперь планы?
Константин: Планы, можно сказать, наполеоновские. Внедрить ОС в учебный
Евгений: Как отреагировали на эти изменения дети? процесс в нашей средней школе. Дать заинтересовавшимся ребятам основы
Константин: Детям интересно. Примерно 80% смотрят заинтересованно, сравни- PHP, MySQL и администрирования ОС. Учить основам web-дизайна. Это пока все.
вают и делают для себя выводы. И в пользу этой ОС. Что разочаровывает их, так это Дальше мечтать не буду – а то не сбудется [улыбается]. LXF
ответ на вопрос: «А есть в продаже такие же игры, как под «винду»?»
Т
, как и любые другие кадровые И это при общей цифре, едва превышающей ак сложилось, что проект Debian
перемены, были нацелены на изме- 180 тысяч пожеланий! Конечно, можно пред- стоит особняком от всех популяр-
нение тактики и стратегии в целях улучшения положить, что в силу «врожденной» повышен- ных дистрибутивов. И дело не в
сбыта производимой продукции и, естественно, ной социальной активности сторонников сво- том, что это один из старейших про-
роста прибыли. Новое начальство решило взять бодного ПО, данный опрос нельзя считать сто- ектов, использующих свой собственный
на вооружение схему, давно и успешно отрабо- процентно отражающим рыночный спрос, ведь «именной» формат бинарных пакетов
танную во множестве проектов, разрабатывае- Windows-пользователи могли просто промол- .deb. Гораздо больше на обособленность
мых по принципам FOSS – привлечь к участию чать в силу того, что их и так все устраивает. дистрибутива влияет его консерватизм,
в дальнейшем развитии компании огромное Но факт остается фактом: тысячи людей про- выраженный в маниакальном соблюде-
сообщество пользователей, покупающих ком- сят Linux и не принимать этого в расчет нельзя, нии лицензионной чистоты входящих в
пьютеры производства . Само собой, т.к. в противном случае весь проект под опти- состав пакетов и стремлении к максимальной стабильности даже
коммерческая направленность деятельности мистичным названием «Dell Idea Storm» просто в ущерб желанию пользователей получать наиболее свежий софт.
этого всемирно известного изготовителя вычис- теряет смысл. Эти и многие другие, менее заметные качества проекта, послужили
лительной техники не позволяет полноценно Ответная реакция показала, что тому, что сегодня имя «Debian» ассоциируется с чем-то массив-
вовлекать своих потребителей в производс- организаторы опроса не были готовы к подоб- ным, неповоротливым, да еще и преклонного возраста. Возможно,
твенный процесс, но даже качественная обрат- ным результатам. В прессе начали появляться на данный неблагоприятный имидж влияет и тот факт, что на
ная связь может оказать неоценимую помощь в противоречивые высказывания представите- сегодняшний день в состав данного дистрибутива входит наиболь-
выработке верной стратегии развития. Другими лей солидной компании, в которых одни заяв- шее число программ: полный срез репозитория Debian уже давно
словами, чтобы максимально удовлетворить ляли, что компания уже готовится выпускать не укладывается и в дюжину CD-дисков. А ведь нужно еще и отсле-
спрос покупателя, разработчик решил узнать – компьютеры и ноутбуки с предустановлен- живать ошибки в тысячах приложений и своевременно исправ-
а что же, собственно, хочет видеть этот самый ной операционной системой Linux и в данный лять их. С таким объемом работы делать это довольно сложно, в
покупатель в компьютерах и ноутбуках с лого- момент просто пытается выбрать подходящий результате – сроки релизов постоянно откладываются, а ошибки
типом ? Сказано – сделано, и вот уже в вариант, другие же советовали не искать в ликвидируются уж совсем черепашьими темпами.
Сети открыт новый ресурс под названием «Dell ближайшем будущем на прилавках появления Впрочем, разработчики и сами понимают, что на фоне шустрых
Idea Storm», на котором все пользователи могут «заряженной пингвинами» техники на собратьев по цеху развиваться таким образом и дальше – непоз-
высказать свои пожелания гиганту индустрии. прилавках магазинов, связывая это с необхо- волительная роскошь. Нужно искать новые решения и одним из
Идея отличная, реализация – на уровне, но ник- димостью долгого и тщательного анализа соот- таких нововведений стал открывшийся недавно ресурс под назва-
то из руководства не ожидал того сюр- ветствия свободного ПО и аппаратной начин- нием «Debian Package of the Day». Здесь ежедневно публикуется
приза, что преподнесет новый web-сайт уже ки продукции компании. Впрочем, постепенно подробное описание одного из входящих в дистрибутив пакетов,
через несколько дней после открытия. страсти улеглись и началась спокойная рабо- сопровождаемое экранными снимками или наборами управляю-
Ко всеобщему удивлению, почти две тре- та по претворению пользовательских идей в щих команд. По задумке авторов инициативы, таким образом поль-
ти всех ответов содержали просьбу о выпус- жизнь. Именно об этом говорит тот факт, что зователи смогут избавить себя от мучительного поиска нужных
ке в продажу компьютеров с предустанов- компания организовала вторую серию опросов программ среди тысяч входящих в дистрибутив путем установки
ленной операционной системой Linux. Одна (уже на собственном «фирменном» web-сайте), и тестирования – гораздо проще вначале ознакомиться с описа-
треть людей также предлагала снабжать новые в которых все заинтересованные могут более нием, а уж потом решать, стоит устанавливать этот пакет или нет.
машины свободным пакетом офисных при- подробно указать, какой Linux нужен, с какими Правда, и здесь не все так просто: на сайте пока нет даже рубри-
ложений OpenOffice.org. К моменту написа- возможностями и в каком виде. Таким образом, катора, позволяющего быстро находить приложения по функцио-
ния данной статьи уже более 112 тысяч поль- пусть и без указания точных сроков, но пред- нальным признакам, а глобальный поиск в архивах не всегда дает
зователей просят Linux, около 80 тысяч хотят сказать выпуск в продажу компьютеров удовлетворительные результаты.
работать с документами в свободном офисе, с предустановленной системой Linux можно На самом деле, подобные редкие новшества вряд ли помогут
а более 50 тысяч людей предлагают вообще не вполне определенно. кардинально изменить ситуацию. Нужна глобальная программа
устанавливать никакой операционной систе- www.dellideastorm.com реорганизации проекта и сейчас – самый подходящий момент
сделать это. Каждый год участники проекта выбирают лидера,
который будет возглавлять многочисленный коллектив разра-
Новости короткой строкой ботчиков и направлять их в определенное русло в соответствии
Компания Sun Microsystems организовала Компания Hewlett-Packard сообщила, что в с собственной программой развития. Не является исключением и
бесплатную рассылку OpenSolaris Starter Kit скором будущем планирует выпустить на год текущий: на 18 марта назначено начало периода трехнедель-
на DVD носителях всем желающим. рынок ноутбуки с предустановленной операцион- ного голосования за одну из представленных кандидатур. В этот
Red Hat подписала договор о сотрудничес- ной системой Linux. раз на пост лидера выдвинуто, пожалуй, наибольшее число пре-
тве с компанией VMware, чтобы обеспечить Компания Linspire переходит на использо- тендентов за все время существования проекта – восемь человек
более качественное взаимодействие популярной вание Kubuntu в качестве базовой платфор- (обычно 3-4 кандидата), что еще раз подтверждает сложность
виртуальной машины с ОС Red Hat. мы для своей ОС. Это связано с лучшей поддерж-
текущего положения дел. Каждый кандидат опубликовал на сай-
Проект Mono объявил о включении в свою кой KDE, чем в выбранном ранее на роль базового
те Debian свою программу, в которой отметил наиболее приори-
разработку полноценной поддержки попу- дистрибутиве Ubuntu.
лярной среды программирования Visual Basic.NET. Французские парламентарии определились
тетные направления развития на ближайший год. Несмотря на
Правительство республики Куба приняло с выбором свободной операционной сис- множественные мелкие различия, практически все кандидаты
решение перевести все компьютеры в стра- темы, призванной заменить Windows на 1200 солидарны в одном: нужно сделать дистрибутив более привлека-
не с проприетарной и «идеологически враждеб- компьютерах народных избранников – вопреки тельным для потенциальных пользователей. А вот как это будет
ной» Windows на использование свободного ПО ожиданиям, это будет не отечественная Mandriva, происходить и кто возьмется выполнить сию нелегкую задачу –
на базе GNU/Linux. а Ubuntu. покажут выборы. debaday.debian.net LXF
Обзоры
Новинки программного и аппаратного обеспечения в описании наших экспертов
Алексей Федорчук
Свою первую
(и последнюю)
программу написал Сегодня мы рассматриваем...
еще на Алголе.
12 Nokia N800 Greenphone c. 16
N770 продемонстрировал нам Linux в новом свете.
N800 закрепляет достигнутый успех, добавляя емкую
CRUX – батарею, шустрый процессор, web-камеру и кое-что
еще .... 8/10
крестоносец идеи
14 HP DVD940e
Все мы знаем, что устройства для записи DVD всего
Н
а заре тысячелетия ряд дистрос- лишь прожигают маленькие питы в специальном слое.
троителей, утомленных сложнос- А не могут ли они выжечь что-то более креативное?
тью дружественных пользователю Оказывается, могут! .... 8/10
дистрибутивов, обратился к истокам – пер-
возданной простоте, свойственной Slackware, 15 K3b 1.0
Ну признайтесь же: вы всегда тайно считали, что K3b –
но уже на новом витке истории и с учетом
это уже 1.0. В конце концов, он был стандартным
накопленного опыта. На этой волне появи- средством записи DVD много лет. Как же случилось, Да, на этот телефон можно зайти Telnet’ом –
лись, почти одновременно, Gentoo, CRUX и что он достиг заветного рубежа только сейчас? .... 9/10 прямо из Норвегии. Что еще от жизни нужно?
Archlinux.
Судьба их оказалась различной. Gentoo, 16 Greenphone
став самым популярным дистрибутивом в Процессор XScale? Есть. Qt? Есть. Сенсорный экран
QVGA приличных размеров? Есть. Разработчики Linux Metisse c. 17
семействе Source Based, оказался центром
плавно переходят на мобильные телефоны – благодаря
большого и активного сообщества. Arch, раз- Trolltech и Qtopia .... 8/10
виваясь в направлении все большей пакети-
зации, приобрел менее широкий, но устой- 17 Metisse
чивый и все более разрастающийся круг Соперничество между Xgl и AIGLX набирает обороты, и
пользователей. CRUX же, занимающий про- Франция выставляет собственного претендента. Он не
только полезен в работе, но и доступен в последнем
межуточное положение (и во многом послу-
Mandriva Live .... 8/10
живший прототипом для Arch’а), по сей день
остается мало известным. Релизы его выхо- 18 Sabayon Linux 3.2
дят почти с годичным интервалом. Выход Изысканный итальянский десерт с начинкой из Gentoo –
последнего (2.3, 20 марта 2007 года) и послу- убойный коктейль Linux-вкусностей .... 8/10
жил поводом для этой колонки.
CRUX распространяется в виде образа
CD размером в 200 МБ, содержащего пре-
Metisse сует свой нос в дела Xgl и AIGLX.
Смотрите в Mandriva.
компилированную систему, включющую не
только X, но и WindowMaker, и разворачива-
емую за считанные минуты. Такая компак-
тность достигается за счет урезания «бал- НАШ ВЕРДИКТ: пояснение
ласта» – в том числе всей документации,
кроме man-страниц. Однако, это – все: за Все попавшие в обзор продукты получить престижную награду
пределами «базы» нет ни одного пакета, ни оцениваются по одиннадцати- «Top Stuff». Номинантами стано- Вердикт
одного репозитория, только порты, посред- бальной шкале (10 – высшая вятся лучшие из лучших – прос-
ством которых собираются все остальные оценка, 0 – низшая). Как прави- то высокой оценки здесь недо- Google Earth
ло, мы оцениваем функциональ- статочно. Разработчик: Google
приложения. Коллекция портов не поражает ность, производительность, про- Рассматривая свободное ПО, Сайт: http://earth.google.com
своим объемом, но всегда актуальна. Ну а Цена: Бесплатно по закрытой лицензии
стоту использования и цену, а мы обычно указываем предпоч-
для бесплатных программ учиты- тительный дистрибутив. Иногда Функциональность 10/10
чего в портах не найдется – тут уж «спасение
Производительность 9/10
утопающих» ... сами знаете чье дело: сочи- вается документа- это означает компиля- Простота использования 9/10
ция. Кроме того, цию из исходных текс- Документация 9/10
нить собственный порт нужной программы
мы всегда выстав- тов, но, если разработ-
в CRUX очень просто. И кстати: субъективно ляем общую оцен- чики рекомендуют Если весь мир – сцена, то Google
это самый быстрый дистрибутив, который я ку, демонстрирую- Autopackage, мы следу- Earth – театр. Простая в использовании,
захватывающая и ободряюще практичная
когда-либо видел... щую наше отноше- ем этому совету. программа.
alv@posix.ru ние к продукту.
Выдающиеся
решения могут
Рейтинг 9/10
Nokia N800
Перед вами последний «интернет-планшет» от Nokia, c Linux на борту и массой новинок.
Ник Вейч сует в него нос.
К
огда в 2005 году Nokia выпустила
Вкратце… N770 – маленький черный кирпичик
с Linux и сенсорным экраном (и поч-
Мобильное ти ничего кроме) – многие решили, что это
устройство для просто дорогая игрушка. Ведь специальность
выхода в Интернет, Nokiа – сотовые телефоны, а не мобильные
продолжает дело
компьютеры.
N770. Если вам
нужен мобильный N770 никогда не предназначался для мас-
Linux, можно также сового рынка. Это была игрушка для хакеров
«перепрограмми- и «proof of concept» (доказательство спра-
ровать» iPAQ. ведливости концепции). Но N770, видимо,
и вправду что-то доказал, поскольку в этом
году Nokia предъявила совершенно новую
модель, N800, буквально лопающуюся от
усовершенствований.
Он – не телефон
Про новую серию устройств все хором задают
один вопрос: почему их нельзя использовать
как телефон? Что же в Nokia, не придумали,
Интернет в вашем кармане, и не только.
как его встроить? Ну, захотели бы – нашли бы
Но не пытайтесь с него звонить!
способ. Но новое устройство предназначено
отнюдь не для телефонных звонков: это прос-
то мобильный выход в Интернет. вам их список с иконками, показывающими, свой сайт-помойка, который будет показан
Внутренний Wi-Fi адаптер (b/g) позволяет кто из них защищен WEP, а кто нет (для под- ужасно). Больше всего проблем порождают
войти в Сеть в зоне любой точки доступа. Если ключения к защищенной сети понадобится сайты с большим количеством всплывающих
не получилось, подцепитесь через Bluetooth к указать секретный ключ). Подсоединившись, окон или построенные на неприличных объ-
вашему мобильнику (правда, если вы нахо- запускайте браузер – и вперед! Подключение к емах JavaScript. Так что было бы замечатель-
Вы не ограничены
дитесь в Великобритании и в курсе тарифов телефону или Wi-Fi происходит вполне непри- но, если бы Nokia встроила в N800 расшире-
приложениями,
поставляемыми на GPRS, вы крепко подумаете, прежде чем нужденно, причем информацию о соедине- ние типа «ad-block» (блокировка рекламы),
Nokia: на www. это сделать). ПО прекрасно справляется с нии можно сохранять и не возиться с ключом чтобы сохранить память, трафик и здравый
maemo.org их задачей: утилита управления соединениями каждый раз. рассудок.
гораздо больше. найдет ближайшие точки доступа и покажет Вас расхолаживают воспоминания о поту-
гах выйти в Интернет с других мобильных уст- Он – не камера
ройств? Забудьте: в этот раз все работает как Очень приятное дополнение к N800 – web-
надо. Модифицированная версия web-брау- камера, хотя она и поддерживает только
зера Opera 8 отлично выполняет рендеринг VGA-качество. Кто-то может счесть это прос-
страниц, превращая даже самые сложные и то игрушкой, но поддержка видео-связи и
неряшливо сделанные сайты в нечто удобочи- онлайн-конференций безусловно полезна, и
таемое и простое для навигации. Прекрасный вы вряд ли захотели бы тратить ресурс бата-
экран показывает все цветовые оттенки и рей на более мощную камеру с высоким раз-
имеет большие углы обзора плюс разрешение решением. Странно, конечно, что в числе
800х480 точек, благодаря которому на этом имеющихся приложений отсутству-
экране все кажется больше. ет программа записи видео.
У N800 есть программа для чтения RSS- Несомненно, сто-
лент, клиент электронной почты, видео-про- ронние фирмы
игрыватель и IM-пейджер, а в состав Opera
включен Flash player. N770 не был плох, но
Спецификация его ядро с частотой 220 МГц заменили на 330-
мегагерцевого монстра, и благодаря рывку
Процессор: 320 МГц ARM11 Связь: 802.11b/g Wi-Fi, процессорной мощности N800 удобен даже
Оперативная память: 128 MБ Bluetooth 2.0 при работе с сайтами, богатыми графикой
Постоянная память: 256 MБ Flash Разъемы: USB 2, наушники, или Flash-анимацией. Конечно, отсюда не сле-
Экран: 4.1-дюймовый сенсорный питание, 2xSD
дует, что правильно отображаются все сайты
Разрешение: 800x480, 16-bit Размер: 144x75x18мм
мира (к сожалению, сейчас на любую ком-
Камера: 640x480 VGA Вес: 206 грамм
бинацию браузера и платформы найдется
Сделай сам
Не работай N800 под управлением Linux, не на платформу Maemo (фактически, вариант
попал бы он на страницы журнала. И, веро- Linux на базе Debian), так что не удивляйтесь,
ятно, незачем было бы запускать на своем если спустя месяц после выхода устройства вы
устройстве Linux, кабы не наличие общедо- увидите дюжины перенесенных из Linux про-
ступных SDK и средств разработки, позво- грамм. Среди программ третьих фирм, уже
ляющее настраивать и переделывать про- имеющихся на N770, есть игры, файловые
граммы по своему вкусу. менеджеры, оболочка Bash, астрономические
Платформа разработки программ для интер- приложения и так далее. Сейчас многие из них
нет-планшетов Nokia существует с 2005 г. и перенесены и на N800 (для реализации некото-
называется Maemo. Имеющийся в ее составе рых новых функций N800, например, камеры,
SDK очень упрощает портирование приложений потребовалось обновление ОС).
Установите оболочку – и найдете внутри вкусное ядрышко...
Вероятно, в id
моментально запланируют ее реализацию, но
software,
результат может оказаться не так уж хорош –
представляли не
сжатия, позволяющего эффективно исполь- совсем такое,
зовать имеющееся дисковое пространство, программируя cвою
добиться достаточно тяжело. великую стрелялку, ПО позволяет общаться, сидеть в Интернете, писать и читать письма. Отлично распознается
Зато можно смотреть фильмы: хотите – но играть в Doom рукописный ввод, и экранной клавиатурой тоже можно пользоваться, даже пальцами.
зайдите на YouTube, хотите – загрузите файлы вполне можно.
в одном из множества форматов, поддержи- При такой активности батареям N800 есть разно завышены, нельзя считать, что N800
ваемых видеоплейером. Конечно, качество о чем подумать, однако наши тесты показали, «всегда в сети» – кроме как для тех, кто не
будет похуже, чем на вашем двухпроцессор- что они легко выдерживают четыре-пять часов дрогнет перед стоимостью подключения (при-
ном ноутбуке – фильмы иногда дергаются, работы средней интенсивности и несколько мерно 1 фунт за мегабайт без каких бы то ни
бывает, что теряются кадры и возникают про- дней в режиме ожидания. было скидок [в Великобритании; в России, как
блемы синхронизации со звуком. Короче, вы ни странно, стоимость GPRS-соединения при-
вряд ли захотите смотреть на N800 послед- Он – не для всех емлемая, – прим. перев.]).
ний блокбастер. Однако встроенный проиг- К сожалению, N800 остается по больше части Но разве не здорово подключаться к рабо-
рыватель в изобилии поддерживает форматы устройством для технарей. Хотя его 7 на 14 чему столу вашего домашнего компьютера,
(RealAudio, MP3, AAC, WMA, WAV, M4A), и, (примерно) сантиметров неплохо умещаются сидя за столиком придорожного кафе? Мы
естественно, при наличии сетевого подклю- в большой карман, большинство людей пред- думаем, достаточно здорово, чтобы соблаз-
чения вы можете слушать потоковое аудио с почтет захватить свои ноутбуки. И, честно нить пару-тройку будущих покупателей N800.
ваших любимых радиосайтов. говоря, пока цены на сотовую связь так несу- LXF
HP DVD940e
Устройство, записывающее и подписывающее диски? В Linux?
Ника Вейча прожгла мысль: а оно нам надо?
Н
ечасто мы обсуждаем на этих стра-
Моддерам: есть
Вкратце… ницах вещи столь простые, как пишу-
еще и встраиваемая
щий DVD-привод, но этот привод не
модель DVD940.
DVD-привод с совсем обычный. DVD940e от HP – это устрой-
поддержкой ство с поддержкой технологии LightScribe.
технологии С ее помощью можно наносить рисунки на
LightScribe, умеет покрытие нерабочей поверхности особых дис-
прожигать метки на
специальных дисках. ков, которые в результате выглядят круто и/
См. также модели от или профессионально. Технология известна
Philips, LaCie, довольно давно, но по некоторым причинам
Samsung и LG. используемые ею протоколы были
тщательно засекречены. Теперь HP
позаботилась, чтобы Linux-пользовате-
ли извлекали максимум пользы из своего
оборудования, и выпустила для разработчи-
ков Linux-библиотеки под закрытой лицензи-
ей. В настоящее время пользовательское ПО
от LaCie и Lite-On позволяет наносить рисунки
на диски в вашей любимой ОС.
После инсталляции ПО нам-таки пришлось
почесать затылки. Хотя выглядело это непло-
хо, обе рисовальные программы заявили, что x86. Также планируется ввести поддержку
не видят устройства (K3b его прекрасно виде- LightScribe в K3b, что определенно сократи-
ла). Кажется, проблема заключалась в библи- ло бы количество проблем при выигрыше в
отеках – небольшое расследование показало, функциональности. Решение от Lite-On вос-
что их смутил поиск по всем доступным уст- хитительно, но ограничивается текстом и кое-
ройствам. Это случилось на Fedora, а затем какой встроенной графикой. Программа LaCie,
повторилось на Ubuntu – а вот SUSE все опоз- наоборот, умеет наносить рисунки, но не спо-
нал верно, поэтому ваш путь к успеху может собна воспроизводить текст. Независимо от
быть разной длины. выбранной программы, прожиг этикетки на
Доступны два варианта: Simple нашем приводе занял 22 минуты! Если это
Labeller от Lite-On и 4L чересчур долго, обе программы предлага-
LightScribe Labeler от ют нанести лишь отдельные участки рисунка
LaCie, оба постав- (например, узкое кольцо простого текста): тут
ляются как RPM потребуется меньше пяти минут.
для платформы Что касается самого привода, то он вполне
соответствует нынешнему времени – записы-
вает DVD+ и DVD- на 18x, двухслойные – на 8x.
DVD940 поддерживает DVD-RW, DVD-RAM и, Simple Labeller умеет рисовать только текст
естественно, CD-R (на 48x). Есть кнопка, есть и несколько видов рамок, но выглядит это
лампочка – чего вам еще? замечательно.
Единственный минус LightScribe – цена.
Нет, сам дисковод не дороже обычного, а вот
специальные диски стоят раза в два больше. Вердикт
И все же, если вы желаете произвести впечат-
ление этикетками, теперь это возможно и под HP DVD940e
Linux. Надеемся, HP вскоре выпустит библио- Разработчик: Hewlett Packard
Сайт: www.hp.com
теки под GPL и устранит проблемы с опозна- Цена: $129.99
нием оборудования. LXF Функциональность 8/10
Производительность 8/10
Простота использования 6/10
Документация 8/10
Хороший привод, а ПО хоть и непритя-
зательное, но вполне работоспособное.
Для улучшения результатов работы
с рисунками в программе от LaCie
поработайте с контрастом.
Рейтинг 8/10
14 Linux Format Апрель 2007
Инструмент для записи CD/DVD Обзоры
K3b 1.0
Постоянные читатели знают: Майк Сондерс прожигает уйму дисков в огнедышащих печах Башен
LXF. Кто же лучше него проверит K3b на соответствие стандартам?
П
оследние годы K3b продвигалась про-
Вкратце… гулочным шагом – с ноября 2003 по
июнь 2006 имели место лишь мелкие
Программа записи подвижки, от 0.10.3 до 0.12.6, в основном по
CD/DVD для KDE. См. причине достаточности дискозаписывающего
также: GnomeBaker арсенала KDE, не дававшей повода к большим
или X CD-Roast.
скачкам. Теперь же, по мнению ведущих раз-
работчиков Себастьяна Трюга [Sebastian Tr g]
и Кристиана Квасны [Christian Kvasny], ста-
бильность и лоск приложения наконец заслу-
жили «звание» 1.0. Верно ли выбрано время
выпуска первой полной версии?
K3b компилируется и инсталлируется
используя лишь стандартные библиотеки KDE,
хотя для дополнительной функциональности
может понадобиться Transcode (чтение DVD),
«Отлаженное управление
медиа-форматами вывело
программу в передовики.» У K3b есть даже собственные темы. Здесь – пингвин с размытой тенью.
FFmpeg (чтение видео) и FLAC (для поддерж- По сравнению с GnomeBaker, интерфейс Если у вас установлена версия K3b 0.12.х,
ки сжатия без потерь). Внимание к деталям K3b переполнен значками, списками фай- обновиться явно стоит: в 1.0 входит Video DVD
заметно уже на старте, когда K3b проверя- лов и панелями обратной связи, разбросан- KIO slave для конвертирования DVD через
ет целостность файлов, актуальность уста- ными по всему главному окну (см. врезку Konqueror, плюс усовершенствованное управ-
новленных программ и подробно описывает «K3b против GnomeBaker» слева). Но удоб- ление устройствами (размонтирование и
результаты проверки в диалоговом окне. ный стартовый экран предоставляет доступ извлечение дисков теперь возможно из меню
к большинству стандартных функций запи- K3b). URL медиа-устройства можно набрать в
си CD: созданию аудиодисков или CD/DVD с командной строке при запуске K3b, а в течение
K3b против GnomeBaker данными, а также копированию CD за один записи или конвертирования отображается
щелчок. Запись дисков гениально проста – оценка оставшегося времени. Без сомнения,
просто перетаскиваете файлы и каталоги из K3b 1.0 на сегодняшний день наиболее полный
файлового навигатора на панель проекта. комплект для записи и извлечения дискового
Благодаря вкладочному интерфейсу можно контента под Linux, к тому же очень надежный
работать над несколькими проектами записи благодаря зрелой кодовой базе. LXF
одновременно (собирая, например, музы-
кальный диск и диск с данными). Кроме того,
K3b умеет непосредственно копировать дис-
ки и записывать ISO-образы.
В типичном для KDE стиле,
K3b предоставляет гораздо
Эй, GnomeBaker, не лучше ли
вывести сообщения об Без усилий Вердикт
больше возможностей ошибках, вместо корявого Откровенно говоря, все это стандартно для
настройки, чем Gnome-аналог. журнала записи диска? любого ПО, записывающего CD, а вот отла- K3b 1.0
женное управление разнообразными медиа- Разработчик: Команда K3b
GnomeBaker – основной инструмент для записи дисков в Gnome, Сайт: www.k3b.org
форматами вывело K3b из общей массы в
Цена: Бесплатно под GPL
но до K3b ему далеко. Милый фасад опрятного и дружелюбного передовики. Программа может конвертиро-
интерфейса в случае малейшей неудачи сменяется жутким техно- Функциональность 10/10
вать файлы MP3, OGG и WMA в аудиокон-
язом сообщений об ошибках. Производительность 8/10
тент, а также копировать CD в MP3 и OGG.
А главное, у GnomeBaker нет средств извлечения или конверсии Простота использования 8/10
На видеофронте программа умеет превра- Документация 7/10
мультимедиа: это просто «прожигалка». Вознамерившимся «содрать»
с диска кое-какие данные придется собирать кучу сторонних
щать DVD в форматы DivX и Xvid (с помощью
K3b набита почти всеми мыслимыми
приложений. И если вы поклонник Gnome, утомленный скудостью Transcode), а также записывать менее попу-
функциями для записи дисков и снабжена
GnomeBaker – попробуйте K3b, оно отлично работает на вашем лярные VCD (1.1, 2.0 и SVCD). Таким образом, блестящей GUI-оболочкой.
любимом рабочем столе. K3b не просто механическая «прожигалка», а
полный комплект для записи, чтения и конвер-
сии мультимедиа.
Рейтинг 9/10
Апрель 2007 Linux Format 15
Обзоры Телефон для разработчика
Greenphone
Это не простой телефон: он построен
на открытом ПО. Пробует Пол Хадсон.
Н
ачальные вопросы снимаю сразу. Да, форме, на которой работает
Вкратце… Linux таки работает на мобильных VMware Player. Виртуальная
телефонах. Нет, грузится нисколь- машина (ВМ), в которой
Мобильный ко не быстрее. Нет, эту трубку вы никогда не запускается SDK – это вари-
телефон на увидите в магазине за углом, и – да, теле- ант Debian, модифицирован-
открытом ПО, фон действительно пронизан компонентами ный для загрузки прямо в
с неограниченным открытого ПО. KDE и настроенный так, что-
хакерским
потенциалом. Greenphone предназначен только для раз- бы все инструменты програм-
См. также: работчиков и призван показать, что Qtopia – миста Qtopia были под рукой.
Motorola A780 подходящий компонент для крутой мобильной Преднастроено и соединение
и подобные. ОС. Если вы когда-либо собирали приложения с Greenphone, то есть подсо-
Qt или даже KDE, это – кратчайший путь к осво- единив USB-кабель, вы може-
ению мобильного программирования. Даже те подключаться к телефону
если вы не Qt-программист, Greenphone – про- через встроенную подсисте-
стейшее средство крутого хакерства на Linux- му «Ethernet поверх USB» Да,
основе. Но – не без недостатков… в телефоне есть Telnet – и
Greenphone – не для всех. Хотя общее BusyBox с ядром Linux 2.4.19,
качество изготовления исключительно хоро- так что вы легко можете получить доступ с
Грэм шее, стилус для 2.5-дюймового QVGA-экрана правами root.
Если GPL-программирование – не для вас,
считает… при извлечении царапает внутреннюю повер- Хотя совсем нетрудно перемещать прило-
за лишние $195 вы получите закрытую
лицензию на одно устройство.
«Идея открыто- хность, Bluetooth слабоват, да и ПО далеко жения на Greenphone через USB-кабель или
го ПО благород- от завершения. Но разве это не круто – про- встроенный слот для чтения карт Mini SD, все то появилась воистину открытая платформа
на, но ведь не граммируемый телефон? Поэтому прилагает- же лучше пользоваться для тестирования кода для разработки мобильного ПО, в противовес
любой ценой! ся USB-кабель для зарядки и синхронизации с встроенным [в SDK, – прим. ред.] эмулятором, iPhone от Apple. Только представьте: изго-
Пользоваться компьютером, а SDK (Software Development Kit, а затем с помощью кросс-компилятора созда- товители телефонов обращают внимание на
Java на своем
арсенал программиста) полон инструментов. вать специфические Greenphone-версии. Есть ПО Greenphone, дорабатывают его, а затем
телефоне гораз-
Сам SDK выполнен довольно грамотно: даже система удаленной отладки, позволя- распространяют в своих изделиях, конкури-
до дешевле, а
функциональ- он предлагается в виде образа для VMware. ющая собирать, инсталлировать и запускать руя с самой Symbian! Признаться, Greenphone
ность от этого На Linux нужно лишь установить бесплат- приложения на Greenphone, управляя ими из откровенно слаб, если все, что вам нужно –
не пострадает.» ный пакет VMware Player – и дело с кон- ВМ SDK. Все это осуществляется через отлад- это Linux в кармане; а вот Motorola уже «оку-
цом. Windows-пользователи тоже не обиже- чик Kdbg и USB и работает безупречно: мож- чивает» этот рынок, и на ее телефонах Qtopia
ны, так как SDK запустится на любой плат- но запустить приложение из SDK, а затем в тоже работает! LXF
любое время обратиться к его GDB-серверу.
Железная сторона
Убедившись, что Greenphone действительно
может удовлетворить любую прихоть разра-
ботчика, перейдем к оборотной стороне: теле-
фон-то слабоват. Внутри – процессор XScale
312 MГц, 64 MБ ОЗУ и 128 MБ флэш-памя-
ти, 1,3-мегапиксельная камера, плюс обыч-
Вердикт
ная связь GSM/GPRS. Сенсорный экран – это
Greenphone
мило, но сам телефон очень медленный: не
Разработчик: Trolltech
меньше 38 секунд на включение и 2-3 секунды Сайт: www.trolltech.com
на запуск любого приложения – будь то часы Цена: $695 за трубку + SDK под GPL
или список контактов. Удручает, что приложе-
Функциональность 7/10
ния не грузятся быстрее при повторном запус-
Производительность 6/10
ке – вероятно, потому, что общий вес Linux + Простота использования 10/10
Qt оставляет на все остальное лишь 8 MБ из Цена 7/10
имеющихся 64.
Учитывая то, что трубка создана лишь для Неплохо для хакера, еще лучше для
серьезной разработки, но только не для
разработки ПО, ни одна из этих проблем не
домашнего использования.
выглядит серьезной. Greenphone – ошеломля-
юще простой путь для переноса Qt-приложе-
ний на мобильную основу, и его возможнос-
Рейтинг 8/10
ти прямо-таки хлещут через край. Наконец-
Metisse
Надоела истерия вокруг дрожащих окон и вращающихся кубов?
На DVD
Metisse 0.4.0rc4
И Нейлу Ботвику тоже; он занялся 3D-рабочим столом, для которого главное – функции.
Т
рехмерные рабочие столы – вроде авто-
Вкратце… бусов: то ждешь их целую вечность, то
они приходят по три штуки сразу. Xgl и
Трехмерный AIGLX последнее время постоянно на слуху, а
рабочий стол тут и команда In Situ выдала нам Metisse, инс-
и инструментарий, трументарий под GPL, способный наделить
продукт объемом системы, которые «не тянут» враща-
исследования
интерфейса ющиеся кубы и дрожащие окна.
пользователя In Situ. На первый взгляд Metisse похож на про-
См. также: Xgl, чие попытки придать объем рабочему сто-
AIGLX. лу, только скромнее на вид. Окна не дрожат
и не мерцают, но их можно вращать – не
только в плоскости экрана, но и «вглубь»: за
счет некоторой потери читаемости эффек-
тивнее используется экранное пространство.
При движении окна становятся прозрачны-
ми, а если понадобился доступ к данным под
ними – отгибаются.
Движимость
Вместо размещения нескольких рабочих сто-
лов на кубе Metisse использует раскладку на
странице: отображение девяти столов в сетке Хотя Metisse выпускается под GPL и открыт для всех, разработчикам помогает Mandriva: они
«три на три». В этом режиме можно увели- поместили этот инструментарий на новейший Live CD Mandriva One.
чивать любой из столов и даже перетаски-
вать окна из одного стола в другой. В отли- тальной осей, перемещать между рабочими Metisse – свободная программа, и может быть
чие от аналогов, окна в Metisse, даже будучи столами и даже использовать для соединения включена в любой дистрибутив (уже имеются
трансформированными, по-прежнему работо- столов. Любой рабочий стол может также сборки под Gentoo).
способны: все меню и экранные элементы перекрывать собой часть соседних. Это чем-то Вращающиеся кубы с 3D-ускорением
управления функционируют, как ни в чем не напоминает виртуальный рабочий стол, толь- слишком часто наводят на мысль, что это кра-
бывало. Нечто подобное планируется осущес- ко нет автоматической прокрутки при дости- сивый способ работать как можно медленнее.
твить в будущих версиях Compiz, а с Metisse жении границ. Замечательно, что окна можно Metisse идет другим путем: меньше пыли в
возможно уже сегодня. просматривать и взаимодействовать с ними глаза, больше удобства в работе. Мы увере-
Основная цель трансформации окон – на всех девяти страницах разом. Отдельные ны в том, что программа войдет и в другие
наиболее выгодное использование экранного окна можно увеличить, а можно сделать про- дистрибутивы, и спасибо Mandriva за то, что
пространства, которого вечно не хватает при зрачными, и все они становятся прозрачными сумела ее разглядеть и представить всеобще-
большом числе открытых окон. Можно вра- при перемещениях. Трансформацию можно му вниманию. LXF
щать окна вокруг вертикальной и горизон- отменить нажатием клавиш; можно также
временно сдвинуть окно и посмотреть, что
под ним – оно вернется назад, когда клавиша
будет отпущена.
Все это управляется смесью клавиатурных
Вердикт
и «мышиных» команд. Например, для пово- Metisse
рота окна вокруг вертикальной оси можно Разработчик: Оливье Шапюи и Николя
выбрать пункт меню и протащить указатель Руссель
мыши либо нажать F4 или F5 в сочетании с Сайт: http://insitu.lri.fr/metisse
клавишей Windows (клавиша Linux на клави- Цена: Бесплатно под GPL
атуре Cherry). Функциональность 9/10
Мы пробовали Metisse на Live CD Mandriva Производительность 8/10
One, который использует Gnome, однако Простота использования 8/10
Metisse непривередлив к рабочим столам и Документация 6/10
будет работать в большинстве из них – хотя, Наконец-то рабочий стол, который
например, пользователи Ratpoison вряд ли им использует 3D-технологии для повышения
заинтересуются. Metisse базируется на FVWM, продуктивности.
одном из самых гибких оконных менеджеров,
Metisse дает намного больше власти над окнами, чем обычные и Mandriva планирует включить его в свою Рейтинг 8/10
экранные значки. следующую версию своего дистрибутива. Но
Sabayon Linux
Итальянский дистрибутив Sabayon Linux уже больше полугода цепко удерживается в первой
десятке на Distrowatch.com, наступая на пятки Mandriva, однако на российском рынке он пока
не слишком заметен. Прикинувшись итальянцем, Сергей Супрунов решил взглянуть на него
поближе...
S
abayon – не такой уж и молодой дистри- 4 demo», с помощью которых без лишних ные заголовки, и даже ливень, вызываемый
Вкратце… бутив, просто раньше он носил стран- слов можно сразу запустить нужное в сессии по Shift-F9.
ное имя RR (в ходу были две версии – Fluxbox. Внизу экрана можно выбрать язык Интересно реализовано главное меню –
Основные RR4 для платформ x86 и RR64 для 64-раз- (есть и русский), но, честно говоря, первой несколько вкладок, группирующих основные
дистрибутивы Linux рядных архитектур). Впрочем, имя Sabayon мыслью было, что это «пережиток» Gentoo элементы управления, и строка мгновенного
предпочитают (это название итальянского десерта) кому-то и на дальнейшей работе никак не скажется поиска – результаты будут отображаться и
придерживаться может показаться не менее странным, так что (на сайте была заявлена поддержка толь- уточняться сразу же по мере ввода вашего
здорового
консерватизма на своей Wiki-страничке разработчики первым ко английского, испанского, французского и, запроса (спасибо Beagle).
в вопросе делом объясняют, что к чему. само собой, итальянского). К нашей всеобщей Ну а найти в этом меню (на вкладке
следования В основе дистрибутива лежит Gentoo Linux, радости, русификация оказалась выполнен- «Applications») можно почти все – офисные
последним так что можно рассчитывать на всю мощь ной на довольно высоком уровне. пакеты KOffice и OpenOffice.org, AbiWord,
тенденциям.
коллекции Портежей (Portage) и преимуще- До появления на экране менеджера KDM всевозможные графические и издательские
Sabayon же
предлагает вам ства индивидуальной сборки. Хотя, честно вам предстоит сделать еще один выбор – инструменты (Gimp 2.3, Inkscape, Blender,
увидеть все и «здесь говоря, запрятаны эти возможности настоль- включать ли поддержку трехмерного рабочего Xara...), пакеты разработчика (KDevelop, Anjuta,
и сейчас»! См. ко глубоко, что поначалу Sabayon вполне стола (причем предлагается как AIGLX, так и GLADE, Quanta Plus...), массу интернет-инстру-
также: Kororaa и можно принять за «чисто пользовательский» XGL; да, чуть не забыл – драйверы от про- ментов (Firefox/Thunderbird, Google Earth,
Kororaa LiveCD
дистрибутив. изводителей уже установлены, так что вам с Azureus, Opera, SeaMonkey, Skype, KTorrent,
этим возиться не придется). После чего – доб- OpenVPN...). В общем, создается впечатле-
На старт! ро пожаловать в систему (пользователь – ние, что разработчики решили пойти по пути
Sabayon Linux представляет собой LiveDVD, sabayonuser, пароль пустой)! «Мы дадим вам все, что есть, а лишнее сами
так что его можно испытать прямо «с колес», Рабочий стол по умолчанию – KDE, хотя выкинете».
не утруждая себя поисками хотя бы узкой с первого взгляда его трудно узнать – две Мультимедиа тоже на высшем уровне – с
свободной полоски на диске между Ubuntu и «гномьи» панели, нестандартное главное десяток различных плейеров, поддержка «из
FreeBSD (да еще этот NTFS-раздел с ценными меню... Если ваша видеокарта достаточно коробки» MP3, видео... Для все еще сомнева-
данными, будь он неладен...). Рассматриваемая крута, то «прямо из коробки» вы получите ющихся в возможностях Linux – демо-версии
здесь версия – 3.26 для платформ x86, но все прелести, которые способен предложить «Quake IV» и «Cold War» (первую можно запус-
нужно сразу отметить, что Sabayon развива- Beryl – и вращающийся куб, и желеобразные тить сразу из загрузочного меню диска).
ется просто нечеловеческими темпами, стре- окна, и потрясающие эффекты сворачива- Помимо KDE, щелкнув в KDM на «Тип сеан-
мясь угнаться за всеми последними новинка- ния/разворачивания окон, и их полупрозрач- са», можно выбрать Gnome, Xfce4, Fluxbox,
ми даже не сезона, а недели.
Так, версия 3.2 увидела свет в начале дека- Да KDE это, правда! Нравится? Тогда можно сразу и на диск установить.
бря 2006 года. Уже 2 января 2007-го (и празд-
ники им там не помеха) появился релиз 3.25,
а всего через шесть дней – 3.26. В тот самый
момент, когда делался этот обзор, уже был
анонсирован 3.3, так что к тому времени, когда
вы будете читать эти
строки, уже наверня-
Ключевое ПО ка появится еще что-
то новенькое.
Sabayon Итак, после
загрузки с DVD перед
вами предстанет зна-
Ядро 2.6.19-gentoo-r4 комое «джентльме-
X.org 7.2rc3 нам» меню выбора
KDE 3.5.5
дальнейшего дейст-
Gnome 2.14
вия (загрузка, инс-
Beryl 0.1.4
GCC 4.1.1 талляция, установка в
glibc 2.5 текстовом режиме и
Firefox 2.0 т.д.), однако присут-
Thunderbird 1.5.0.7 ствует здесь и пара
OpenOffice.org 2.0.4 новых пунктов: «Start
Gimp 2.3 in Internet Kiosk NX
mode» и «Start Quake
Внимание!
Теперь – про замеченные (хотя, наверное, и
спорные) недостатки. Прежде всего, любите-
лей Gnome очень огорчит пренебрежительное
отношение разработчиков к этому рабочему
столу. Уж не хочется возиться с настройками –
оставьте все по умолчанию... Так нет же – одна
панель вместо традиционных двух, отсутствие минает Gnome (и даже начинает нравиться), условиях широкого распространения ADSL
основного меню, да еще и на рабочий стол Gnome же, наоборот, скорее похож на KDE... уже не редкость), то с этим неудобством вы
вывалили все иконки найденных разделов. Только вы захотите нажать на кнопку «Menu», не столкнетесь.
Прямо Knoppix какой-то... Но, опять-таки, нуж- как она сама распахивается у вас перед носом; Ну и еще одна досадная мелочь – если
но отметить нетрадиционный подход к меню – зато подведя мышку к одному из пунктов это- при загрузке выбрать русский язык, то в
та же строка поиска, что и в KDE, а для непо- го меню, можно ждать целую вечность, пока дальнейшем в переключателе раскладок у
средственного доступа к приложениям следует раскроется подменю – здесь, оказывается, вас будет две русских и ни одной английской
нажать кнопку «More Applications...», открыва- требуется явный щелчок... (обойти это можно, если после выбора языка
ющую отдельную папку с иконками всех уста- Переизбыток красного в «умолчальной» нажать F3 и вернуть американскую расклад-
новленных программ. теме довольно быстро утомляет, полупрозрач- ку). Впрочем, если предполагается порабо-
Вообще, в Sabayon частенько натыкаешься Cтоит лишь ные заголовки требуют дополнительных уси- тать в Sabayon хотя бы час, визита в Центр
на отклонения от «традиций». То ли разработ- подвести мышь к лий при работе с окнами, не позволяя момен- Управления все равно не миновать...
правому верхнему
чикам нравится быть не такими, как все, то тально определить границы окна. Впрочем, все
углу безнадежно
ли действительно мы привыкли жить непра-
захламленного
это элементарно корректируется в настройках, Марш!
вильно, а истинное удобство – вот оно, нужно рабочего стола – хотя для LiveDVD мы бы предпочли более сдер- Что ж, первое впечатление от этого дистрибу-
только сделать первый шаг и отказаться от и все ваши окна жанное оформление, принятое по умолчанию, тива: «А Linux-то и правда крут!». Даже если
въевшихся с годами привычек... Как бы то ни послушно иначе дистрибутив становится трудно приме- вы и так не сомневаетесь в этом. Разработчики
было, в Sabayon постоянно чему-то удивля- выстроятся ровными нять на регулярной основе, и он так и остается затолкали на 3 ГБ практически все, чем Linux
ешься: KDE с двумя панелями больше напо- рядами.. в роли «демонстрашки». Впрочем, никто не может похвастаться на текущий момент, и то,
запрещает поставить что демонстрация возможностей системы ста-
его и на диск – соот- вится ими превыше идеологической демаго-
ветствующий пункт гии об открытости и «чистоте», позволяет нам,
предлагается во время простым пользователям, получить все эти пре-
загрузки, да и прямо из лести здесь и сейчас, без лишних усилий. LXF
загруженной в режи-
ме LiveDVD системы
можно также запустить Вердикт
Installer.
Как ни странно, Sabayon Linux
но с первых же минут Разработчик: Sabayon Linux
пришлось лезть в Сайт: www.sabayonlinux.org
консоль – запустить Цена: бесплатно под GPL
KNetworkManager по Функциональность 9/10
непонятной причине Производительность 7/10
Простота использования 8/10
не удалось, а друго-
Документация 9/10
го способа «цивилизо-
ванно» настроить сеть Если оперативной памяти достаточно,
не видно. Впрочем, то даже работа в режиме LiveDVD не
помешает вам насладиться трехмерным
если в вашей сети
рабочим столом и крутыми играми.
работает DHCP-сервер
(что даже для домаш-
него использования в
Рейтинг 8/10
Апрель 2007 Linux Format 19
Сравнение Каждый месяц мы анализируем для вас
тысячи программ – а вы можете
отдохнуть!
версиями Git или Bazaar, CVS или Subversion: что лучше для
вашего проекта? Выясняет Грэм Моррисон.
Н
ет сомнения: без систем управ- разработчикам трудиться вместе и держать Разработчики используют системы управ-
ления версиями Linux никогда каждого из них в курсе изменений, сделанных ления версиями для координации своих уси-
Наш не достиг бы такого расцвета. товарищами. лий при исправлении ошибок и написании
выбор Управление версиями связыва- Существуют два способа решения этой новых фрагментов кода. Но система управ-
Aegis с. 22 ет тысячи разработчиков, собирая сделанное задачи. В более простом случае для раз- ления версиями не ограничивается програм-
Bazaar с. 24 ими и предоставляя результаты остальным. мещения всех файлов проекта используется мистами. Возможно, вам захочется восполь-
CVS с. 21 Оно похоже на клей, удерживающий проект в отдельный сервер. Затем каждый разработчик зоваться клиентом для загрузки последней
Git с. 24 целости и равновесии. создает личную копию дерева исходного кода версии своего любимого приложения или для
Monotone с. 22 Все системы управления версиями исполь- и локально применяет к ней свои изменения, управления документацией, или даже для сво-
RCS с. 21 зуют один и тот же основной принцип. Они а потом синхронизирует их с данными на сер- ей почты. Систему управления версиями не
Subversion с. 23 регистрируют изменения в программном вере. Так работают CVS и Subversion, наиболее волнует тип файлов.
коде – или, в правильной терминологии, популярные системы управления версиями. Если вы ищете себе систему управления
отслеживают версии. Каждое изменение версиями, сейчас самое время побольше узнать
(обычно представляющее собой добавление Путь Торвальдса о существующих разновидностях. Это одна из
нового файла или модификацию существую- Другой подход к совместной работе скорее областей Open Source, где коммерческие про-
щего) порождает новую версию. Другой важ- похож на передачу файлов в пиринговых дукты сталкиваются с действительно серьезной
ный аспект систем управления версиями – (peer-to-peer) сетях, чем на разработку прило- конкуренцией, а основные инструменты стано-
совместная работа. Они должны позволять жений. Вместо использования центрального вятся все лучше с каждым релизом.
RCS
Старейшая система в нашем Сравнении.
И
сходная система управления пере- ным файлом надо поработать, и узконаправ-
смотрами версий (Revision Control ленный подход RCS будет более оправдан.
System; да-да – RCS и вправду дей- Другое ограничение – в одно и то же время
ствует согласно этикетке), может, и вытесня- с файлом может работать лишь один разработ-
ется CVS, но остается популярным выбором в чик. Один файл, один активный редактор: это
некоторых особых случаях, и есть две главных не делает RCS самой гибкой системой в мире.
причины предпочесть RCS более продвину- Если ваши требования к редактированию отде-
тым решениям. Во-первых, эта система срав- льного файла выходят за пределы элементар-
нительно проста в использовании и помогает ного сотрудничества, ищите дальше.
овладеть основными навыками, необходимы- Будучи старой, и официально входящей
ми для работы в других системах управления в состав проекта GNU, RCS распространена
пересмотрами версий. Во-вторых, RCS удобна повсеместно – вы найдете ее предустановлен-
для резервного копирования файлов конфи- ной на многих системах, а если нет – инстал-
Графический
гурации и для ведения небольшой истории ляция обычно сводится к простому щелчку
откатов (undo/redo). Если вам не понравятся мышью в менеджере пакетов вашего дистри-
интерфейс, пожалуй,
чрезмерно сложен
Вердикт
сделанные изменения, очень легко вернуться бутива. Сейчас это скорее исторический экс- для простой RCS
к более ранней версии. понат, чем действительно полезный инстру- командной строки
Версия: 5.7
RCS возвращает нас во времена младен- мент (мы бы использовали ее для случайного RCS. Сайт: www.gnu.org/software/rcs/rcs.html
чества совместной разработки ПО, и как тако- конфигурационного файла, но вряд ли для Лицензия: GPL
вая предлагает скудный набор функций по чего-то еще), но она служит хорошим введе-
Малость староват, чтобы
сравнению с более современными конкурен- нием в мир систем управления версиями, и рассматриваться всерьез, но раз уж он
тами. Крупнейший недостаток заключается в вряд ли отпугнет слишком многих людей. установлен в большинстве систем по
том, что RCS умеет работать только с отдель- умолчанию, его, возможно, стоит
ным файлом. Вашей первой мыслью станет: попробовать.
«Ну и что с нее толку?». И верно, из-за своих
ограничений RCS – плохой выбор для управ-
«Неплохое введение Рейтинг 3/10
ления проектом, но случается, что и с отдель- в системы контроля версий.»
CVS
Второе открытие RCS для тысяч хакеров.
И
менно с CVS все становится серь- лы, которые изменяются, или предоставляет
езным. Она была разработана для простой доступ только на чтение. Сервер CVS
решения основной проблемы RCS: также способен управлять более чем одним
ограниченности работой с отдельным файлом. проектом (они хранятся в виде «модулей»).
Дик Груне [Dick Grune], первоначальный раз- Хотя команды обработки файлов во многом
работчик CVS, нуждался в инструменте для похожи (checkout, update, commit), их теперь
совместной работы над проектом компилято- нужно исполнять из оболочки CVS, а не из
ра C с двумя своими студентами, поскольку командной строки, как это было в RCS.
расписания всех троих резко отличались. Также усложнился запуск или подключе-
CVS отпочковалась от ранней версии RCS и ние к серверу, но это не слишком обреме-
по-прежнему использует тот же формат фай- нительно для среднего программиста. CVS
лов для хранения истории каждого отдельного по-прежнему хороший выбор, и, подобно RCS,
файла. Но запуск команд RCS применительно устанавливается по умолчанию с большин-
CVS используется
к CVS-репозиторию может вызвать ряд серь-
езных проблем, потому что CVS управляет не
ством операционных систем Linux, получая
при этом преимущества повсеместной под- тысячами отдельных Вердикт
проектов.
одним файлом, а целым деревом. держки. Многие инструменты и приложения CVS
CVS также решает проблему множества Linux все еще собираются с использованием Версия: 1:1.12
пользователей за счет использования кли- CVS – это по-прежнему самая популярная Сайт: www.nongnu.org/cvs
ент-серверной модели. Наличие разработчи- система управления версиями – и практичес- Лицензия: GPL
ков, параллельно работающих над одними ки для каждой крупной ОС существует масса CVS является хорошим выбором,
и теми же файлами (отсюда и полное имя графических клиентов на выбор. просто потому, что многие другие
разработчики уже используют ее. Но вы
системы – Concurrent Version System, сис-
ее перерастете.
тема управления параллельными версиями)
«Лидирует по части
означает, что для обработки изменений CVS
нуждается в сервере. Она блокирует фай- поддержки в Linux.» Рейтинг 6/10
Апрель 2007 Linux Format 21
Сравнение Системы управления версиями
Aegis
Первая альтернатива клиент-серверной модели.
В
первые выпущенная в 1991 году, Aegis лям используются права группы, а значения
применяет иной подход к управле- umask определяют доступ группы к каждому
нию версиями, заметно отличаясь конкретному проекту.
от Subversion и CVS. Например, изменения Aegis успешно использует функции Unix,
децентрализованы, а цикл разработки управ- реализованные в любой Linux-системе. Здесь
ляется тестами. Последнее – это методоло- нет интегрированной поддержки совместной
гия экстремального программирования, где работы по сети, но проект можно легко разде-
программист обязан предъявить несколько лять, используя стандартные протоколы типа
тестов, прежде чем включить в приложение FTP, HTTP и NFS. Документация даже хвастает
новую функцию. В результате ваша локаль- поддержкой «беговой сети», когда участники
ная «песочница» включает только те файлы, с берут ноги в руки и мчатся по коридору к ком-
которыми работаете вы, что приводит к пута- пьютеру, куда нужно скопировать проект. Не Даже имеющиеся графические интерфейсы показывают, как
нице, если вы привыкли иметь полную рабо- слишком удобно для больших расстояний. сложна и трудна в понимании Aegis.
чую копию всего проекта. Эта сложность отчасти компенсируется
Это – часть крупнейшей проблемы Aegis: документацией хорошего качества, доступной
трудности использования. Хороший пример – в сети, хотя и в виде плохо отформатиро-
Вердикт
настройка репозитория. Прежде чем при- ванного HTML. Есть несколько графических
Aegis
ступить к использованию Aegis, вам нужно интерфейсов (использующих Tk) для общих
Версия: 4.22
создать новый проект, содержащий несколь- команд, и отличная web-оболочка, но они не Сайт: http://aegis.sourceforge.net
ко файлов конфигурации. Для этого проекта конкуренты многим сторонним приложениям, Лицензия: GPL
желательно создать отдельного пользовате- доступным для CVS или Subversion. Неудобна и сложна в использовании, но
ля, отчасти потому, что модель безопасности ее особый набор функций может
Aegis полностью полагается на права доступа оказаться созвучным вашему стилю
разработки.
к файлам, а отчасти потому, что это обеспе-
«Документация отчасти
чивает приличный уровень безопасности. Для
предоставления доступа другим пользовате- компенсирует ее сложность.» Рейтинг 5/10
Monotone
Система с собственным сетевым протоколом.
M
onotone – это управление версиями тый ключ и получить копию от ваших коллег.
для нынешнего поколения разра- Затем они должны импортировать ваш общий
ботчиков. Здесь нет старых тех- ключ в «связку ключей» своего Monotone.
нологий или старого исходного кода. Выбран После добавления имен коллег в локальный
распределенный подход, без центрального сер- файл разрешений круг доверия замыкается, и
вера. Вместо этого каждый клиент отвечает за вам нужно просто запустить команду server в
синхронизацию изменений со всеми други- Monotone. После этого каждый зарегистриро-
ми – во многом тем же способом, каким рабо- ванный пользователь сможет синхронизиро-
тает протокол предоставления файлов в общий ваться с вашей рабочей копией дерева разра-
доступ. Он работает за счет сохранения локаль- ботки, используя команду sync. Для копирова-
ной копии каждого изменения в базе данных ния данных через интернет или локальную сеть Графических интерфейсов, помогающих работать с Monotone, нету,
SQLite и сравнения версий файлов с использо- Monotone использует собственный протокол, но вот этот украсит плоды ваших трудов.
ванием алгоритма хэширования SHA1. NetSync. Но поскольку он использует один порт
Установка проста, и полная версия превос-
ходит Aegis. Используя командную строку и
(4691), его довольно легко пробросить через
SSH-туннель – чтобы обойти слишком усерд-
Вердикт
команду Monotone, вы сперва создаете базу дан- ные брандмауэры. Monotone
ных, затем генерируете пару ключей SHA1 для Единственный недостаток – отсутствие гра-
Версия: 0.32
подписывания своих файлов. Пользователям фических инструментов, помогающих управ- Сайт: www.venge.net/monotone
Subversion и CVS покажется очень знакомой лять репозиторием. Единственный существу- Лицензия: GPL
работа репозиторием. Команды add (добавле- ющий вариант, Monotone-viz, великолепен для Monotone сочетает свежий подход к
ние), status (состояние) и commit (фиксация) отображения ветвей проекта, но слабо подхо- управлению версиями с прекрасной
имеют синтаксис, почти идентичный CVS. дит для чего-то еще. документацией, эффективностью и
энтузиазмом.
Различие проявляется при слиянии ваших
«Документация отчасти
изменений с ветвями разработки других людей.
Вам сначала нужно экспортировать свой откры- компенсирует ее сложность.» Рейтинг 7/10
22 Linux Format Апрель 2007
Системы управления версиями Сравнение
Subversion
Набирающая популярность альтернатива CVS, богатая графическими оболочками.
К
огда вы какое-то время использу- протокол SVN, как сам по себе в доверенной
ете CVS, определенные моменты сети, так и через SSH-туннель, если ваши кол-
становятся настоящей проблемой. леги разбросаны по всему Интернету.
Первый – любые файлы и каталоги, которые Subversion – не самое эффективное ПО
вы перемещаете в пределах своей локаль- для управления версиями. Полная копия репо-
ной копии, не будут учтены в изменениях. зитория сохраняется в скрытом каталоге, что
Они ускользают от радара CVS, и их нужно имеет свое преимущество – можно вносить
добавлять как новые файлы; а значит, теря- изменения, когда сеть недоступна – но тре-
ется вся накопленная история и информация бует очень много места. База данных истории
об изменениях файла или каталога. Поначалу изменений также может расти экспоненци-
это не проблема, но когда вы в проекте шесть ально, по мере внесения изменений всеми
или двенадцать месяцев, это превращается в разработчиками, и вам необходимо обеспе-
настоящую пытку. чить регулярное резервирование базы данных
Другая серьезная беда CVS заключается Berkeley. Сценарии резервирования предус-
в том, что ‘commit’ не выполняется одним мотрены, и они присоединяются к «ловуш-
махом, атомарно. Вместо этого он запуска- кам» (hooks). «Ловушки» вызываются опре-
ется для каждого изменения, насколько это деленными событиями, например, внесением
ему удается. Если разработчику случается в У Subversion изменений (commit) разработчиком, и пре-
это время редактировать файл, значит, ему ненно. Зачастую вам может сойти с рук про- больше графических доставляют эффективный способ настройки
не повезло. Subversion решает обе эти про- стая замена команды CVS на svn-эквивалент. инструментов, сервера Subversion под ваши нужды.
блемы, а также исправляет другие недочеты Установка прямолинейна, и вы найдете паке- чем у любой другой Благодаря своей повсеместности,
CVS, например, обеспечивает версионность ты Subversion почти в каждом дистрибутиве системы управления Subversion обещает более высокий уровень
версиями.
символических ссылок и реализует поддерж- Linux, вышедшем за последнюю пару лет. поддержки сообществом, чем многие дру-
ку двоичных файлов. Клиент полезен и сам по себе, а в некото- гие системы управления пересмотрами. Есть
В результате Subversion довольно быстро рых случаях он может оказаться единствен- книги, форумы, списки рассылки и свободно
вытесняет CVS как предпочтительную систему ным способом скачать версии разработчи- публикуемая документация; они помогут вам
управления версиями, и многие выдающиеся ка какого-нибудь интересного вам проекта. приступить к работе. Многие проблемы мож-
проекты, включая GCC, Samba, Mono, Apache, Вы также обнаружите изобилие графических но решить, скопировав сообщение об ошибке
Python и KDE, переключаются на него для интерфейсов, пытающихся сроднить коман-
управления исходным кодом. дную строку с преимуществами графичес-
ких инструментов. Популярный выбор – ksvn
«Обещает более высокий
Без боли для KDE и более общий esvn. Поддержка уровень поддержки, чем
Нет сомнений, что Subversion популярна имен- Subversion также встроена во многие интег-
но благодаря сходству с CVS. Она использу- рированные среды разработки, включая многие другие системы.»
ет ту же самую клиент-серверную модель, и KDevelop, Eclipse (с расширением Subclipse),
основная масса ее команд – двойники команд Zend Studio и Xcode от Apple. в строку поиска Google, чего нельзя сказать
CVS. Кроме переноса истории версий ваше- Что касается доступа к серверу, боль- о Monotone или Bazaar. Добавим сюда отно-
го проекта, переключение с одной системы шинство крупных проектов применяют в сительную простоту установки репозитория
на другую проходит относительно безболез- этом качестве популярный модуль Apache Subversion или присоединения к открытой
WebDAV, предоставляю- разработке, размещенной на другом сервере
щий доступ к web-сер- (как SourceForge, так и Google Code сейчас
веру на чтение-запись. используют Subversion), и Subversion стано-
Установить его не слож- вится непревзойденной.
но, и раз уж модуль
Apache загружен долж-
ным образом, настрой- Вердикт
ка тоже дело простое.
Вы, скорее всего, обна- Subversion
ружите, что ваш дист- Версия: 1.4
Сайт: http://subversion.tigris.org
рибутив включает этот Лицензия: Apache/BSD
модуль, заранее скомпи-
лированный для вашей Subversion – вне всякой конкуренции.
Она комплексна, предельно
версии Apache. Есть и
модифицируема и отлично
более простое решение, поддерживается.
удобное для небольших
Управление из командной строки – по-прежнему единственный
реальный способ получить преимущества от всех функций
групп разработчиков –
использовать интегри- Рейтинг 9/10
Subversion, особенно удаленно. рованный в Subversion
Git
Кто сказал, что Линус был сердит?
Д
аже если вы не интересуетесь про- ется в том, что если данные на kernel.org будут
граммами управления ревизиями, утрачены, последнюю версию ядра можно
имя Git вам, вероятно, попадалось будет снова собрать из кода, распределенного
на том мощном форуме, Slashdot. Git – это среди разработчиков, потому что каждый из
еще один плод разума Линуса Торвальса, и них имеет собственную рабочую копию репо-
появился он со скандалом. В мире «До Git» зитория в подкаталоге .git.
многие основные разработчики ядра Linux Минуло почти два года, и Git настолько
использовали закрытый инструмент управле- упрочил свои позиции, что вы найдете его
ния пересмотрами под названием BitKeeper. либо установленным по умолчанию, либо на
Но когда в начале 2005 г. было объявлено об расстоянии всего нескольких щелчков мышью Gitk, графический интерфейс Git, превращает уродство управления
отзыве бесплатной версии BitKeeper, в ответ в менеджере пакетов каждого свежего дист- версиями в поэзию. Включен в стандартную поставку Git.
на поднявшийся в сообществе шум Торвальдс рибутива Linux. Несмотря на свою репутацию
разработал Git. Он объявил, что Git – это вам инструмента для хакеров, он сравнительно
не просто система управления ревизиями, а прост в использовании. Например, репли-
скорее усовершенствованная файловая систе- кация удаленного репозитория – это обыч-
му. Прежде всего, однако, Git разрабатывался но трудоемкая работа. Но в случае с Git это Вердикт
с прицелом на производительность. Когда вы легко. Просто выполните git clone, указав
Git
работаете с проектом масштаба ядра Linux, URL удаленного репозитория. Другие коман-
Версия: 1.4
производительность – это все. ды работают подобно аналогичным функциям
Сайт: http://git.or.cz
Подобно Monotone, Git – распределен- в Subversion, и есть прекрасная утилита для Лицензия: GPL
ная система, без сервера. Но в то же вре- обеспечения взаимодействия между двумя
Всего двух лет от роду, Git является
мя, в Интернете есть серверы, используе- системами. высокопроизводительным, серьезным
мые в качестве центрального репозитория для решением для крупнейших проектов.
определенных проектов: прекрасный пример – «Каждый разработчик
www.kernel.org. Различие между использова-
имеет копию репозитория.» Рейтинг 7/10
нием их и чего-то вроде Subversion заключа-
Bazaar
Система управления версиями, спонсируемая
Canonical.
B
azaar – наследник распределенной сис- го рабочего каталога на web-сервер, и другие
темы управления версиями, Bazaar-NG, разработчики смогут забирать копии вашей
возникший благодаря спонсорской ветви оттуда. Вы можете синхронизировать
поддержке от Canonical Ltd. Неудивительно, ее со своей рабочей копией, используя rsync;
что Bazaar используется разработчиками в протокол также встроена поддержка SFTP,
Ubuntu и старается быть как можно более вызываемая через команду push.
понятным. Хотя он использует распределен- Bazaar использует интерфейс расшире-
ную модель, многие из команд очень похожи ний для обеспечения дополнительных функ-
на команды CVS или Subversion. Поскольку ций. Например, несколько графических ком- Пользовательский интерфейс Bazaar – один из лучших среди систем
управления версиями; идеален для отслеживания изменений и
центральный сервер отсутствует, вы заметите понентов на GTK2 можно запускать прямо из
просмотра различий в версиях.
различия только когда захотите предоставить командной строки Bazaar. Скажем, ввод bzr
в общий доступ свою локальную рабочую visualize откроет визуализатор ветви, кото-
копию – вам нужно будет вытянуть (pull) изме- рый выглядит подобно визуализатору Git. Есть Вердикт
нения с удаленного репозитория и объединить также графические компоненты для команд
(merge) со своими изменениями. commit, diff, annotate и branch. Bazaar
Документация великолепна, включая учеб- Bazaar трудно не полюбить. У него тот Версия: 0.11
ники, охватывающие сложные темы, напри- самый разумный подход, который создал Сайт: www.bazaar-vcs.org
Лицензия: GPL
мер, отслеживание главной версии и интегра- популярность Ubuntu, а графические интер-
цию с CVS. Базовый учебник даже проводит фейсы здорово помогают людям, напуганным Bazaar имеет великолепные
графические инструменты и прост в
вас через ряд основных концепций, харак- множеством опций командной строки. понимании. Наша любимая
терных для всех утилит управления версия- распределенная система управления
ми – прекрасный букварь для начинающих. «Публикация вашей версиями.
Публикация вашей работы также освежающе
проста. Просто скопируйте содержимое свое- работы очень проста.» Рейтинг 8/10
24 Linux Format Апрель 2007
Системы управления версиями Сравнение
Вердикт
Subversion 9/10
Е
сли честно, мы приступали к этому любой другой рассмотренной нами систе-
Сравнению, думая, что это будет ме, выше стабильность и полнее поддержка.
игра в одни ворота. Все мы использо- Subversion также сравнительно проста для
вали Subversion, были знакомы с тем, как она каждого, имеющего опыт работы с CVS, да и
работает, и в большинстве наших проектов вообще удобна – и для маленьких проектов с
также используется Subversion. Кому ж еще парой программистов, и для огромных, имею-
У Subversion львиная доля пользовательских интерфейсов и интеграция
победить? щих тысячи разработчиков. Именно комбина-
в IDE – это прекрасный выбор во всех отношениях.
Что ж, так и вышло, но не с такой легко- ция проверенной и заслуживающей доверия
стью, как мы думали. Распределенные моде- технологии с разносторонностью, достаточной
ли, используемые Monotone, Bazaar и Git, для удовлетворения потребностей большинс- Терминология
удивительно просты в использовании, а отсут- тва людей, позволила Subversion победить.
ствие центрального сервера – реальная инно- Наличие ряда графических оболочек, как и управления версиями
вация. Если бы мы выбирали распределенное интеграция во многие популярные IDE, также
решение, это был бы Bazaar. Благодаря раз- помогли сделать Subversion хорошим выбо- Несмотря на значительные различия между отдельными системами
работчикам из Canonical, он выглядел самым ром для тех, кто не хотел бы надолго оставать- управления версиями, они используют общие термины:
ухоженным и проработанным из трех. Но и ся один на один с командной строкой.
Git, и Monotone удивили нас своим удобством, Без сомнения, в целом качество систем Репозиторий (repository). Здесь размещаются все файлы проекта.
Репозиторий может размещаться на удаленном сервере, локально на
и в следующие двенадцать месяцев мы можем управления версиями, рассмотренных в этом
вашем компьютере, или и там, и там.
стать свидетелями захвата ими значительной Сравнении, невероятно высокое. Даже
Рабочая копия (working copy). Ваша личная версия репозитория,
доли рынка за счет некоторых других систем. последние двенадцать месяцев продемонстри- включающая все сделанные вами изменения и модификации. Также
В конечном итоге, никто не обогнал ровали впечатляющий прогресс. Достаточно известна как «песочница» (sandbox).
Subversion. Здесь больше функций, чем в взглянуть, каких успехов достиг Git за столь Фиксация (commit). Загрузка в репозиторий изменений, которые вы
короткое время, чтобы понять, как быстро все сделали локально. Если возникнут конфликты, вам нужно будет разо-
это развивается, и насколько жизненно необ- браться с ними.
Ваше мнение ходимыми являются системы управления вер- Ветвь (branch) или ответвление (fork). Пометка набора изменений
как изолированных от основной ветви разработки. Удобно для работы
сиями для будущего Linux. И если по усердию,
с которым разрабатываются системы управле- над новыми версиями и выпусками исправлений.
Кому нужна помощь в изучении использо-
Выписка (checkout). Получение копии проекта из рабочего репози-
вания систем управления версиями, может ния версиями, судить о будущем Linux, то оно
тория. Впоследствии она становится вашей рабочей копией.
взять наш учебник Subversion в wiki Linux выглядит прекрасным. LXF
Format (http://linuxformat.co.uk/wiki). Но сис-
темы управления версиями – не только для
программистов. Сообщите нам, если приду-
маете какое-то крутое применение для сис-
темы управления версиями. Например,
«В целом, качество систем управления
в LXF82 мы перевели на Subversion наш
домашний каталог. Присылайте свои идеи
версиями, рассмотренных в
на letters@linuxformat.ru. Сравнении, невероятно высокое.»
Таблица функций
Aegis Bazaar CVS Git Monotone RCS Subversion
Лицензия GPL GPL GPL GPL GPL GPL Apache/BSD
Совместная работа
Модель P2P P2P Server P2P P2P Server Server
Внутренний протокол
Графический интерфейс
Двоичные файлы
Модифицируемость
Web-интерфейс
Максимальное число 50 500 100 1,000 50 5 500
пользователей
(примерно)
Я
вляясь одним из самых роман-
D
ebian – удивительный проект. Он
тичных городов мира, Париж уме-
содержит более 20000 пакетов,
ет превращать обычных людей в
над ним работает более 1000 художников, графоманов в поэтов, любов-
разработчиков-добровольцев по всему ные интриги в вечные союзы сердец.
миру, и он полностью свободен во всех Особенно весной.
смыслах. Тот факт, что спустя 15 лет пос- Пусть компьютерное ПО не столь
гламурно, как большинство занятий во
ле создания он все еще силен, доказывает
французской столице, оно тоже чует при-
мощь интернет-сотрудничества, без всяких
ход весны. Mandriva доказала это серией
финансовых стимулов для участников. заявлений о представлении нескольких
Но один аспект Debian мне очень не интересных продуктов, один из которых,
по душе: это культура списков рассыл- Metisse – трехмерный рабочий стол, будет
ки для разработчиков. Любой читающий интегрирован в дистрибутив.
Metisse, трехмерный рабочий стол Mandriva, сулит новые пути
Апрельская версия Mandriva Linux
их найдет немало веток, позорящих про- повышения производительности: например, эффект отгибающихся
2007 (названная просто Mandriva Spring
ект. Оскорблениями, насмешками и зло- окон.
– Весенняя) обозначит возврат француз-
бой перенасыщены как технические, так и ского дистрибутивостроителя к шестиме-
организационные дискуссии. сячному циклу разработки. Это в духе большинства ментарий) под названием Metisse. Уже включённый в
его соперников и подчеркивает большую скорость раз- Live-дистрибутив Mandriva One 2007, Metisse предлага-
работки программ в мире Open Source: выпуск одного ет по-настоящему полезные функции. Например, при
Будьте любезны
продукта в год приемлем для бизнес-пользователей, выделении текста в окне, частично закрытом другим,
Тревожит то, что эта «культура» располза-
обычно не жаждущих супер-обновлений, но большин- верхнее окно временно отгибается, и выделяемый
ется по всей Планете Debian и попадает в ство линуксоидов желают, чтобы новейшее и лучшее текст не загораживается. Вместо куба, реализованного
другие блоги разработчиков. Dunc Tank – было включено в их дистрибутив как можно скорее. в Compiz и Beryl, Metisse предоставляет пейджер с чет-
спорная схема временных выплат отдель- Одной из горячих новинок, которая удивила (и ко проработанным рабочим пространством. Магнитные
ным разработчикам – лишь одна из наибо- разделила) сообщество пользователей Linux в 2006, границы, вращение окон, масштабирование, лупа и
был трехмерный рабочий стол – в форме Xgl и Beryl другие эффекты доступны тому, кто потрудится изу-
лее значимых тем, вызывающих трения на
с Compiz и AIGLX. Хотя мнения об этой технологии чить мириады клавиатурных комбинаций и жестов
Планете Debian. А таких тем очень много. мышью.
Debian’цы, остановите, пожалуйста, эту
бесконечную публичную перебранку! До
«Рабочий стол Linux уже Это, пожалуй, одно из
неудобств Metisse: как любое
нажатия кнопки Send в почтовом клиенте не в догоняющих, другое сложное ПО, его освоит
только тот, у кого есть время
или публикации гневной отповеди в вашем
блоге, перечитайте пункт 4 Социального
а в лидерах.» продираться сквозь его лабирин-
ты. Разумеется, скептики будут
соглашения Debian: «Мы исходим из нуж- сильно разнятся – одни пользователи клянутся, что воротить от него нос, как многие фанаты командной
дах наших пользователей и сообщества она осветила их жизнь, а другие презрительно счита- строки отмахивались от графического интерфейса в
свободного ПО. Мы ставим их интересы на ют её чистой «визуальщиной» – факт, что дистрибу- 1980-х. Хотя Metisse не столь революционен, каким
первое место». Если вы продолжаете счи- тивы, включившие 3D-функции, привлекают больше был GUI, он приносит много освежающе-новых идей на
пользователей. «Привлекательность – это функция» наши компьютеры, вновь доказывая, что рабочий стол
тать, что ваше высказывание – в интересах
в прошлом году было мантрой Марка Шаттлворта, а Linux уже не догоняет проприетарные операционные
ваших пользователей, то отсылайте. А ина- трехмерный рабочий стол вносит здоровую дозу при- системы, а опережает их.
че нажмите Delete. ятной миловидности. www.mandriva.com/projects/metisse
ladislav.bodnar@futurenet.co.uk. В грядущем релизе Mandriva тоже заготовила сюр-
приз – новый французский проект по созданию трех- Metisse рассматривается на стр. 17 и имеется на нашем
мерного рабочего стола (вообще-то целый инстру- DVD.
L
inux LiveCD полно на любой
И
з отзывов пользователей. вкус и цвет, но разработка Live-
«Это первая 64-битная ОС, в версий операционных систем
которой все работает прямо из семейства BSD явно засиделась на
коробки, – написал восхищенный поль- старте. Их не было до февраля 2004,
зователь на форуме DistroWatch.com, когда на сцену вышел самый первый
попробовавший SimplyMepis-64 6.0-4. – LiveCD на основе FreeBSD – FreeSBIE
Это очень важно для меня, среднего 1.0. Маттео Риондато [Matteo Riondato]
пользователя, который просто хочет, со товарищи из итальянской группы
чтобы все сразу заработало». LiveCD SimplyMepis 6.0-4 включает пользователей FreeBSD выпустили
Это действительно комплимент, установщик на жесткий диск. второй крупный релиз проекта в янва- Маттео Риондато,
если учесть, что до этого Mepis не ре 2007. ответственный за выпуск
выпускал своей 64-битной версии. В дистрибутива SimplyMepis с преды- FreeSBIE 2.0 – LiveCD, ориентиро- FreeSBIE LiveCD.
ответ на просьбы AMD64-пользова- дущего издания осталась нетронутой, ванный на применение в настольных
телей, разработчики проекта нако- несколько полезных обновлений паке- компьютерах и восстановление систе-
нец собрали 64-битную ОС, чтобы те тов, например, Firefox 2.0, усиливают мы. Он использует Xfce, сравнительно решающие виртуальную запись дан-
наслаждались стандартными расшире- ощущение, что данный релиз заслужил легковесное окружение рабочего сто- ных в режиме LiveCD. Другие функ-
ниями для браузеров и просматривали номер 6.1, а не 6.0-4. ла, и содержит небольшой набор попу- ции, обычно предоставляемые боль-
многие популярные медиа-форматы Впечатляет также интеграция в лярных приложений для Интернета, шинством Linux LiveCD, вроде загрузки
без отслеживания и ручной установки SimplyMepis-64 множества проприетар- работы с графикой, воспроизведения всего CD в память или установку CD
отсутствующих частей. ных медиа-расширений: пользователи мультимедиа и офиса. Инструменты на жесткий диск, в FreeSBIE 2.0 также
Наше первое впечатление от ново- смогут смотреть сетевое видео и слу- управления файлами представлены отсутствуют.
го продукта очень выиграло от дав- шать потоковое аудио столь же легко, программами Xffm и Rox-Filer. Тем не менее, пользователи, зна-
но напрашивавшейся ревизии рабо- как в Windows. Хотя пуристы вряд ли При всей полезности FreeSBIE, комые с BSD, сочтут FreeSBIE 2.0 бес-
чего стола SimplyMepis. Обновились придут от этого в восторг, пользовате- ясно, что LiveCD, основанный на BSD, ценным продуктом – особенно те, кому
изображение при загрузке, окно вхо- ли, предпочитающие удобство идеоло- по уровню технологий не сравним с необходимо выполнять действия по
да, оформление окон, набор иконок гии, найдут SimplyMepis практически Linux-аналогами. К примеру, FreeSBIE восстановлению или демонстрации
и обои – рабочий стол заметно похо- идеальной заменой своей старой ОС. 2.0 вообще не использует новомодные FreeBSD новым пользователям. LXF
рошел. Хотя базовая система нового www.mepis.org оверлейные файловые системы, раз- www.freesbie.org
Дистрибутив
5
SimplyMepis 1,241
Время загрузки (сек.)
6
Debian GNU/Linux 1,038
PCLinuxOS 2007 33 7
Sabayon Linux 1,001
8
Mandriva 995
Mandriva Linux 2007 40
9
Damn Small Linux 841
Debian GNU/Linux 4.0 47
10
Knoppix 795
Slackware Linux 11.0 48
DistroWatch.com отслеживает популярность дистрибутивов,
Ubuntu 6.10 49 основываясь на количестве посещений сайтов, посвященных
конкретным дистрибутивам. Хотя эти цифры и не отражают
SimplyMepis 6.0-4 51
реальное количество инсталляций, они являются индикатором
OpenSUSE 10.2 61 популярности дистрибутива на данный момент времени.
Fedora Core 6 72
Отец
почты
В этом месяце мы беседуем с Эриком
Оллменом, одним из отцов-основателей элект-
ронной почты, о былых и насущных проблемах
системы связи, которая в наши дни рассматри-
вается многими как основное гражданское
право…
сделать все правильно.» приходится обращать на нее все больше и больше внимания. E-mail может стать
причиной очень существенной утечки информации, не потому, что кто-то вредит
намеренно, а просто потому, что люди, бывает, ошибаются адресом или просто не
задумываются – отправляют кому-то сообщение, не указывая, что содержащаяся в
нем информация…
LXF: Конечно – по-моему, в книге Кевина Митника [Kevin Mitnick] по социаль-
ной инженерии приводятся примеры, как легко добыть действительно секретную
информацию через электронную почту, потому что люди, видя e-mail-сообщение, ресованы. В каком-то смысле лучше бы передвинуть это бремя возможно ближе к
верят, что оно пришло от того, кому можно доверять. центру. Но это сложно. Велось много дискуссий об использовании e-postage и тому
ЭО: Фишинг похож на то, как фокусники работают руками: они фокусируют [вот подобного, но есть и политические, и технические причины, по которым в ближай-
и происхождение слова выясняется! – прим. ред.] ваше внимание «там», чтобы вы шем будущем этого не произойдет.
не смогли увидеть, что они делают «здесь». И некоторые фишеры весьма и весь- Есть много возможностей снизить затраты. Один из примеров – DKIM. DKIM,
ма искусны. понятно, разработан таким, как есть, не по этой причине, но поскольку необходимо
рассчитывать криптографическую функцию от сообщения, отправителю потребу-
LXF: По последним данным, не менее 70% всего e-mail-трафика занимает спам; ются большие компьютерные мощности.
потом идут фишинговые атаки и все остальное, связанное с e-mail. Не приближа-
емся ли мы к тому, что проблемы перекроют всю пользу? Что, система полностью LXF: Вы думаете, что DKIM будет принят повсеместно?
разрушена? ЭО: Возьмите DomainKeys, его предшественника. Стандарт еще даже не стабили-
ЭО: Ну, ответов у меня два. Один: «Проблема действительно есть», и я считаю, что зировался, а Google уже подписывает все свои сообщения с помощью DK, Yahoo
спам, вирусы, фишинг и т.п. несомненно понизили ценность e-mail. Но вправду ли подписывает все свои сообщения с помощью DK, eBay подписывает все свои сооб-
все так безнадежно? Я так не думаю. Спам – одна из причин, по которым я работаю щения с помощью DK. Это – огромный бизнес. По-моему, я слышал, что Amazon
над штукой под названием DKIM, почтой, идентифицированной доменными ключа- тоже собирается использовать его, и я знаю, что многие финансовые учреждения
ми (domain keys identified mail). Это способ авторизации e-mail, и одна из причин тоже продемонстрировали свой интерес.
появления данной технологии следующая: можно многое сделать, если известно, от
кого в действительности пришло сообщение. Сейчас все, на что мы способны – это LXF: Значит, доведись вам заново создавать инфраструктуру MTA, она, видимо, в
сканировать содержание письма: «посмотрим, о чем оно, и попробуем угадать, корне отличалась бы от изначальной. Если бы вы забыли о том, что электронная
спам оно или нет». Проблема в том, что пока вы можете только принять это. Вы почта вообще существовала, и начали сначала, что бы вы реализовали в e-mail
можете сделать многое – иногда спам настолько явно является спамом, что вы 2.0?
можете сразу избавиться от него. ЭО: Если бы я создавал ее сегодня по новой, я бы включил авторизацию в качест-
DKIM способствует своего рода фильтрации на базе идентификации. Сочетание ве исходного пункта. Надо не достраивать ее потом, а просто создать в самом
все улучшающихся фильтров контента с идентификационной фильтрацией, я думаю, начале. А в самом начале этого не произошло, потому что – люди этого не осоз-
приведет нас к желаемому, [но спам как проблема] никогда не исчезнет. В мой нают – алгоритм RSA, используемый в качестве основы шифрования с публичным
настоящий почтовый ящик тоже попадают рекламные листовки, никуда не денешь- ключом, даже не был еще изобретен, когда разрабатывался SMTP. Сложновато
ся, но, по крайней мере, перед моей дверью не останавливается грузовик и не выва- требовать того, что пока не изобретено! А теперь говорят: «В e-mail есть ошибки!»
ливает на меня кучу рекламных материалов – а в Естественно, сейчас мы сделали бы все по-дру-
e-mail как раз происходит нечто подобное. ПРO TCP/IP гому, но пришлось бы ждать e-mail лишних лет
15–20.
LXF: Вы считаете, бремя решения проблемы «Линуксоиды создали свой Некоторые вещи в протоколе я бы сделал
спама ложится исключительно на получателей, иначе. Они были бы эффективнее: сейчас в них
или провайдеры и другие организации тоже что- протокол, Бог знает, зачем. слишком много времени уходит на запросы туда
то предпримут? Может, в те выходные и обратно – ну, знаете, всякие компьютерные
ЭО: Честно говоря, фильтровать спам – это мелочи. И, конечно, я бы постарался прояс-
неплохой бизнес.. И [у ISP] имеется свой интерес
просто шел дождь!» нить значение некоторых заголовков, например,
в фильтрации спама – ведь если они переложат «ответить» [reply to]. Люди никак не поладят
данную задачу на плечи потребителей, то им придется хранить весь этот спам насчет того, что под ним подразумевается…
самим. В идеале от спама следует избавляться как можно скорее.
Я думаю, что с предприятиями дело обстоит несколько иначе. Если хотите, боль- LXF: Вас не удивляет, что спустя столько лет Sendmail продолжает занимать
шинство пользователей e-mail принадлежат ISP или ESP – Yahoo, Gmails, Hotmail во командную позицию в инфраструктуре?
всем мире – а деньги все-таки у предприятий, потому что для них очень важно вре- ЭО: В каком-то смысле я удивлен, но не потому, что с Sendmail что-то неправиль-
мя с точки зрения бизнеса. И для них схема немного другая: их работники ведь не но, а потому, что не так много технологий 25-летней давности, которые все еще
уволятся из-за завалов спама в электронной почте, но, с другой стороны, все те же работают.
работники будут тратить на спам свое время, так что в фильтрации они тоже заинте- Естественно, что за эти годы Sendmail обновлялся, но впечатляет, что он до сих
пор на плаву. Apache ведь новее… но можно пробежаться по списку программ с
открытым кодом, и большинство из них будут старше. Есть стек TCP/IP, ему при-
мерно столько же лет, но он используется во многих системах. Хотя, по-моему, не
в Linux – линуксоиды создали собственный, Бог знает, зачем, но создали. Может, в
те выходные просто шел дождь!
LXF: Я заметил, что Sendmail сейчас часто обновляется. Это потому, что вы всегда
наготове с исправлениями по безопасности? По сравнению, скажем, с Exim, обнов-
ления и заплатки для Sendmail выходят в два-три раза чаще.
ЭО: На самом деле у нас в Sendmail Inc было много споров. Мы стали очень забо-
титься о проблемах безопасности. Мы относим к проблемам безопасности то, что
другие таковыми не считают. И мы выпустили заплатки безопасности для Sendmail
из-за ошибок в OpenSSL. К Sendmail они отношения не имеют, но ведь конечному
пользователю разницы нет. Есть ошибка в системе безопасности, через порт 25
возможна атака, следовательно, это наша проблема. Я думаю, часто наличествует
такое отношение: «Код не наш, значит, и проблема не наша». Возможно, мы заняли
тоже в своем роде крайнюю позицию по этому вопросу, но мне хочется сделать для
пользователя все возможное.
LXF: А вас никогда не беспокоило, что если бы у Open Source была Ахиллесова
пята, то это был бы вопрос интеллектуальной собственности, просто потому что это
Open Source? Вас не беспокоило, что в Sendmail может пробраться код, не достой-
ный существовать?
ЭО: Не думаю, что я ответил бы «да» именно на этот вопрос, но я бы ответил «да»
на вопрос очень близкий: что кто-то мог бы – или на самом деле может – получить
патент на технологию Sendmail, а потом придти и сказать: «Кстати, вы принадле-
жите нам!» Это – одна из проблем с патентами на ПО. Чтобы получить патент, надо
Оллмен – научный опубликовать то, что вы сделали. А некоторые вещи… Патенты выдаются на такие
директор Sendmail Inc в вещи, которые людям в голову не приходит публиковать – настолько они очевидны,
Эмеривилле, Калифорния. а потом кто-то другой получает патент и возвращается – и тогда вы не то чтобы сов-
сем пропали, но придется раскошелиться на дорогостоящих юристов.
ЭО: Верно. Знаете, честно говоря, в прошлом у Sendmail были проблемы с безо- LXF: Да, кажется, именно так это и бывает. Это одна из уязвимостей Open Source –
пасностью. Я не собираюсь этого скрывать. Но когда-то давно, вроде бы в версии у тех, кто пишет программы, обычно недостаточно толстые кошельки, чтобы нани-
8.8, мы прошлись по коду. Мы внесли в него проверку, чтобы перед открытием мать адвокатов.
файла он строго-настрого проверялся на предмет наличия разрешения. Возможно, ЭО: Точно. Именно поэтому я в какой-то степени понимаю точку зрения SUSE или
это самая параноидная программа – даже параноиднее, чем Apache, где при непра- Novell, почему они хотят получить гарантию от Microsoft [имеется в виду сделка
вильной настройке системы кто угодно может разгуливать по всем вашим фай- ‘Microvell’]. Если вы – корпорация, то вы не смеете прикрывать своих пользова-
лам. И такое бывало, но никто ни в чем не обвинял Apache, просто говорили: «Вы телей, пока не будете уверены, что вас самих не потащат в суд, так что я понимаю
же неправильно настроили систему». А если вы позицию Novell. Не уверен, что это хорошая
неправильно настроили Sendmail, во всем обви- ПРО E-MAIL, ЗАДНИМ ЧИСЛОМ идея, но я их понимаю.
няли Sendmail. Это же несправедливо!
«Если бы я создавал это LXF: Вы упомянули DKIM – а какие еще интерес-
LXF: Ну, справедливо сказать, что настройка ные вещи на подходе в Sendmail? Я уверен, что
Sendmail – это само по себе искусство, не так сегодня, я бы включил вы еще над чем-то работаете.
ли? авторизацию в качестве ЭО: На самом деле есть несколько проектов,
ЭО: Настройка Apache – тоже искусство. Файл над которыми я работаю лично. Знаете, одной из
конфигурации Apache легче читается, но в нем исходного пункта.» важных причин начать Sendmail Inc была в том,
примерно столько же опций, сколько в Sendmail, что я слишком много времени уделял поддержке
и многие их них довольно сложно понять. Если вам нужен серьезный web-сайт, то Sendmail, а я хотел войти в это дело, и снова работать с кодом, и разрабатывать вся-
понадобится настоящий гуру Apache. А если у вас серьезный почтовый сервер и кие новшества, и т.д. Оказалось, что организация собственной фирмы –не лучший
на нем работает Sendmail, вам потребуется гуру Sendmail. По мне, это не слишком способ вернуться к программированию. Это была большая ошибка с моей стороны!
высокая цена. И, кстати, все это говорится вовсе не в упрек Apache. Apache – мощ- Но с недавнего времени мне удалось выкроить немного времени и начать работу
ная программа, и нужно уметь настраивать ее, чтобы использовать всю ее мощь и над некоторыми проектами.
гибкость. Будет ли это одобрено IETF или нет, вполне очевидно, что Китай собирается
начать использовать в сообщениях свои языковые символы. Это уже сейчас можно
LXF: Но все же, в некотором смысле, если бы настроить Sendmail было бы проще, делать в теле сообщения, но в Sendmail, из-за способа внутренней кодировки заго-
то было бы меньше плохо настроенных Sendmail-серверов. ловков, это было не чисто 8-битным – ну, сейчас уже все чисто. Как я уже сказал,
ЭО: Думаю, вы совершенно правы. Я и перевел Sendmail на M4 как раз для того, это не те вещи, от которых ликуют люди, но с моей точки зрения, очень, очень важ-
чтобы изменить ситуацию. Народ по-прежнему упорствует, редактируя конфигура- но их сделать, причем до того, как это перерастет в кризис.
ционный напрямую. А я считаю его двоичным файлом. Я не буду заходить в него Но все же большинство настоящих инноваций в e-mail касаются фильтров.
и править – ну, если мне понадобится очень быстро что-то проверить [хлопает по Релиз 8.14 вышел с новой версией интерфейса milter, и он более мощный, и в milter
запястью], я зайду, но вам надо держаться подальше от файла .mc. Тогда настройка больше можно сделать. Я думаю, что это главное. А будут ли инновации в Sendmail?
становится намного проще. Не скажу, что она станет простой, но она будет проще. С технической стороны – нет, 95% наших коммерческих усилий направлено на
milter, и именно так и должно быть.
LXF: А вы лично чувствуете большую ответственность за всех тех, кто использует
Sendmail? LXF: И в заключение, я прав, что это вы написали исходную версию Trek для
ЭО: Помню, у меня как-то раз случилось небольшое озарение, и я сказал: «Я не Unix?
могу оптимизировать Sendmail так, чтобы он был хорош для определенной систе- ЭО: Вы совершенно правы.
мы отправитель–получатель. Потому что с другой стороны тоже будет Sendmail, и Читайте
если я оптимизирую его для одной системы, это приведет к деградации другой. Мне LXF: Так ведь он просто вопиет об обновлении! больше!
придется оптимизировать его для всего Интернета, а это означает, что некоторые ЭО: Знаете, мне это даже в голову не приходило!
решения будут выглядеть неоптимальными с точки зрения конкретного узла». Но Узнайте, что Эрик
думает о Microvell,
вы правы. Есть ответственность за правильность действия. Когда столько народа LXF: А я на это столько часов потратил!
патентах и Open
использует твой код, думать об этом надо. ЭО: И я тоже! Знаете, когда-нибудь я, возможно, вернусь Source на www.
к этому, чисто ради удовольствия, вернусь и гляну на него, linuxformat.co.uk/
LXF: GPL3 – это хорошо или плохо? но он ведь текстовый, а народу подавай графику, чтобы mag/allman.html.
ЭО: Я не анализировал версию 3 подробно, просто бегло просмотрел. Мне показа- все сияло и блестело. LXF
Что за штука…
XHTML 2?
Еще один рывок Web-стандартов в сторону XML – Пол Хадсон все объяснит…
Да, да, я знаю, что вы хотите сказать: XHTML бы исправить многие недостатки HTML, а это озна- Не понимаю, за что тут бороться…
хорош, потому что он несет в себе смысл, а чает отсутствие обратной совместимости с HTML. За смысловую нагрузку элементов. Например,
HTML полон бесполезных стилевых тэгов вроде <font>, Оказалось, что некоторые части XHTML 2 обратно- тэг <i> означает «написать это курсивом (italic)», а
поэтому мы все должны пользоваться XHTML. несовместимы даже с XHTML 1.1! <em> означает «эту часть текста необходимо специ-
Да, именно это я хотел сказать. Почти. Повнимательнее ально выделить (emphasis – выделение, акцент)».
взглянув на заголовок этой статьи, вы заметите, что Пожалуйста, конкретнее, не то мы и в четыре Чаще всего браузеры выделяют <em> курсивом, но в
речь идет скорее о XHTML 2, чем о XHTML вообще. страницы не уложимся. конечном счете, как именно выделять данный текст –
Хорошо, а помните, когда вы делали первые шаги в это дело браузера. Для людей, пользующихся озвучи-
Он что, в два раза педантичнее XHTML 1? XHTML, валидатор W3C XHTML отказывался призна- ванием экранного текста, <em> может быть выделено
Вообще-то он очень отличается от XHTML 1 и вать вашу страницу, пока ко всем рисункам не добавят особой интонацией или сказано немного громче – не
1.1, потому-то его и ждали так долго. Язык XHTML 1 атрибуты ALT? так-то просто говорить курсивом, поэтому <i> просто
был стандартизован в 2001 г., в попытке применить не имеет смысла. С тэгом <b> тоже были проблемы, но
некоторые правила XML к HTML. Например, нельзя О, да. Это был не мой день… основные неурядицы связаны с таблицами стилей. Со
было использовать А вот в XHTML 2, боюсь, вам придется убрать
<strong><em>Foo</strong></em> все эти атрибуты, потому что их больше нет в специ-
потому, что извлекать элементы из стека необходимо в фикации. Перемена имеет смысл, так как в XHTML 2
порядке, обратном тому, в котором их туда помещали: любой элемент может содержать как объект (напри-
<strong><em>Foo</em></strong> мер, картинку), так и замещающий текст. Первичный
было бы верно. контент используется как атрибут элемента, а вторич-
А еще, каждый атрибут XHTML надо было заклю- ный (который замещает основной, если он не может
чать в кавычки, даже если это выглядело глупо, напри- быть загружен или еще не загрузился) помещается
мер selected=”selected” для отмеченного флажка. внутрь элемента. Например:
<strong> шрифт можно слегка увеличить и окрасить, О да, все это делается для удобства разработчиков, деляется тем, в какой секции находится элемент <h>.
например, красным, чтобы подчеркнуть его значение, которые плюются при каждом упоминании об HTML. Фактически, если говорить о URL, точно так же, как
а вот текст с <b> можно и не заметить, если он в дей- У них давно готовы web-сервисы, XML-схемы и коды каждый элемент может содержать рисунок, каждый
ствительности не полужирный! J2EE, дело лишь за XForms – они сделают нашу Сеть элемент может быть и гиперссылкой. Например:
много лучше. <img src=”tacheback.gif” href=”http://tinyurl.com
Не особо радикальные перемены. Почему они yofm6c”><strong>Andrew Gregory</strong>
так долго готовились? Это все? winking like a mad man</img>
Бесспорно, крупнейшее событие в XHTML 2 – приме- Нет, не все. Вместе с XForms, пожалуйста,
нение XForms как стандарта для форм ввода данных. встречайте XFrames, попытку замены устаревших Ну, теперь-то вы назовете адреса?
Формы HTML – необычайно простой способ приема фреймов, о необходимости которой говорили годами. Информация о XHTML 2 очень разбросана, но
пользовательского ввода, а вот XForms, если чест- Рабочая группа XFrames посвятила свое время реше- последняя редакция этого стандарта доступна на www.
но, нет. Но дополнительной сложности сопутствует и нию проблемы людей, которых сбивает с толку пове- w3.org/TR/xhtml2. Введение в этот документ даст общее
дополнительная мощь: можно заполнять XForms зара- дение кнопки браузера «Назад». Широко известны представление тому, у кого есть лишь десять свобод-
нее с помощью XML, отправлять их данные с помощью также проблемы тех, кто не может поставить закладку ных минут: www.w3.org/TR/xhtml2/introduction.html.
XML и даже отправлять и получать данные без обнов- на конкретную страницу, не может определить проис- Если же нет и десяти минут, с основными положения-
ления страницы – почти как в AJAX. Для изучения хождение фреймовой группы и, что хуже всего, в этой ми можно ознакомиться вот здесь:
нового синтаксиса понадобится целый учебник – если фреймовой группе заблудился. Теперь им полегчает. www.petefreitag.com/item/370.cfm. LXF
буквы M, V и C кое-что значат для вас, вы должны
понять, как соотносится сложность XForms с XHTML. Спасибо; а где можно узнать подробности?
Эй, я ведь еще не закончил! Невозможно рас-
Ну вот, приняли еще один хороший стандарт, сказать о XHTML 2 без упоминания о новых элементах,
и все усложнилось. Хоть кто-нибудь выиграл <h> и <section>. Они пришли на замену прежним <h1>,
от этого? <h2> и им подобным, а уровень заголовка теперь опре-
на DVD
ClamAV 0.90rc3
John the Ripper
1.7.2
Firestarter 1.0.3
15 ценных советов
по безопасности
Думаете, ваш компьютер с Linux защищен? Вы уверены? Даже самая безопасная ОС станет лег-
кой добычей, если пренебрегать основными правилами. Грэм Моррисон даст 15 советов, чтобы
предприимчивый взломщик плюнул на ваш ПК и убрался вон...
Усильте пароли пользователей Установите пароль BIOS
Знаем, это похоже на надоевшую проповедь. Кто хоть раз читал это, Не будем зацикливаться на паролях; это последнее упоминание о них.
читал и тысячу раз: слабый пароль – самая частая «точка входа» потен- Но раз уж вы защитили свою учетную запись паролем, недоступным
циального взломщика. Но к проповеди все глухи. В октябре прошлого даже вашему двойнику из параллельной вселенной, почему бы не
года 34 тысячи паролей пользователей MySpace [myspace.com – попу- применить эту теорию к другим областям? Если вас беспокоит, что
лярный сайт и сетевое сообщество – прим. пер.] были похищены в кто-то имеет физический доступ к вашей машине – например, она
результате атаки фишеров, реализованной через поддельную страницу используется как сервер в небольшом офисе – установите стойкий
входа в систему. MySpace получил серьезную пробоину, а эксперт по пароль на BIOS вашей системы. Эта программа загружается первой,
безопасности Брюс Шнайер [Bruce Schneier] – прекрасную возмож- непосредственно отвечает за первичную настройку вашего оборудо-
ность заглянуть в коллективный разум 34-х тысяч типичных пользова- вания и проверяет, что все работает должным образом.
телей компьютера. Тремя самыми популярными паролями оказались Многие BIOS можно настроить на запрос пароля во время загруз-
password1, abc123, а самым креативным – myspace1. Шнайер ехидно ки. Есть множество типов BIOS, и настройка будет зависеть от спе-
Приложение Wallet
из KDE включает отметил, что пользователи MySpace как минимум научились добавлять цифики вашего оборудования. Обычно, чтобы попасть в меню BIOS,
измеритель силы цифры к легко угадываемому слову, хотя все еще используют символы следует удерживать [F2] во время загрузки машины, затем выбрать
паролей. только в нижнем регистре. страницу Security, где вы сможете установить свой пароль. После это-
Пользуйтесь! Вот такие пароли выбираются типичными пользователями для го единственным способом загрузить вашу систему, не зная пароля,
защиты своих драгоценных данных. будет очистка памяти BIOS – обычно тут не обойтись без вскрытия
Если вы недостаточно напуганы, ска- корпуса и извлечения бата-
чайте инструмент взлома паролей вроде рейки материнской платы
John the Ripper (www.openwall.com/john) и [не обольщайтесь – зачастую
натравите его на свой файл с зашифро- достаточно просто снять спе-
ванными паролями (см. LXF84). Шнайер циальную перемычку; кроме
рекомендует брать пароль, не вклю- того, некоторые версии BIOS
чающий ни обычные слова, ни какие- принимают т.н. «инженерный
либо производные сокращения, ни даты, пароль», – прим. ред.].
которые легко узнать: все они подвер-
жены атакам по словарю. Смешивайте Можете установить здесь пароль,
регистры и добавляйте небуквенные чтобы никто не мог загрузить вашу
символы. машину.
Установите брандмауэр щий доступ к вашей машине, сможет прочитать содержимое вашего
Пару лет назад считалось чистым безумием подключаться к Интернету домашнего каталога. Вам следует изменить права с помощью chmod.
без брандмауэра. Правда заключается в том, что брандмауэры вос- Например, chmod go-rx /home/graham отнимет доступ на чтение и
принимаются совершенно неправильно. Они лишь блокирует доступ исполнение у всех пользователей в этой же группе, а также у всех про-
к определенным сетевым портам на вашей машине. Если нет сервиса, чих пользователей.
прослушивающего этот порт, злонамеренный удаленный процесс не На стр. 56 представлено руководство по правам доступа для начинающих.
получит доступа к вашей системе независимо от того, запущен бранд-
мауэр или нет. Именно поэтому Ubuntu не запускает брандмауэр по Следите за sudo
умолчанию: там просто не работают никакие сетевые сервисы, кото- Для быстрого запуска приложений с
рыми мог бы воспользоваться злоумышленник. Брандмауэр может привилегиями администратора систе-
помочь только в том случае, если к вашей машине осуществляются мы в Ubuntu применяется утилита sudo.
как доверенные, так и не заслуживающие доверия сетевые подключе- Именно для этого sudo и разработана.
ния. В этом случае брандмауэр будет оберегать небезопасные серви- Но предоставление любому пользова-
сы от доступа из потенциально опасной сети. Уязвимыми сервисами телю доступа через sudo может быть
могут быть внутренний web-сервер или общие ресурсы NFS. рискованно с точки зрения безопаснос-
ти, поскольку вы не контролируете, кто
и что запускает. Решение – разрешить
использование sudo только конкрет-
ным пользователям и точно настроить,
какой доступ и к каким средствам им
необходим.
Для редактирования привилегий
sudo существует файл конфигурации, но изменять его нужно собствен- Мощная команда
ным vi-подобным редактором под названием visudo. Первое, что нужно sudo легко
сделать – это отредактировать строку root ALL=(ALL) ALL, заменив root настраивается с
на список пользователей (через запятую), которых вы хотите допус- помощью
встроенного
тить к командам, требующим повышенных привилегий. Другой частый
редактора visudo.
пример – заменить секцию после ‘ALL=’ на список каталогов (тоже
Графическая оболочка к брандмауэру, встроенная во все через запятую), к которым вы хотите предоставить доступ перечислен-
последние версии Linux, здорово экономит силы при настройке. ным пользователям: два наиболее типичных случая – /sbin и /usr/sbin.
Чтобы подпускать к учетной записи root только пользователей – членов
Функции брандмауэра в Linux фактически выполняются ядром, группы admin, введите следующее:
благодаря сложному инструменту iptables, используемому для филь- %admin ALL=(ALL) ALL
трации и перенаправления пакетов. Можно строить правила вруч-
ную, используя команду iptables, но большинство пользователей Не используйте setuid – правда!
предпочитают графический интерфейс. Хороший выбор – Firestarter: Setuid – прекрасная практическая идея: это просто еще один бит
он предлагает «мастера», помогающего выполнить стандартную прав доступа, наряду с чтением, записью и исполнением, позво-
настройку и даже разделить ваше интернет-соединение с другими ляющий запускать команду с привилегиями владельца файла.
компьютерами локальной сети. Вы всегда можете проверить эффек- То есть обычный пользователь может выполнять команды адми-
тивность защиты, используя для тестирования брандмауэра внешний нистрирования, если привилегии, требуемые для их выполнения,
сайт, например, Shields Up (www.grc.com/x/ne.dll?bh0bkyd2). определены правом setuid. Setuid также полезен для приложений,
работающих с оборудованием, доступным только администратору:
Разберитесь с правами например, приводов CD-RW. Но применение setuid создает значи-
Многие из нас в курсе, что Unix-подобные ОС вроде Linux используют тельный риск. Если использующая его команда по той или иной
права для предоставления доступа к файлам и приложениям, но как убе- причине «рухнет», запустившему ее пользователю могут достаться
диться, что они настроены должным образом? Взгляните на содержи- привилегии «погибшей» программы. Плохие ребята, взламываю-
мое своего каталога /home, набрав в щие Linux, точно знают, какие setuid-инструменты можно уговорить
командной строке ls -l /home. Вывод вести себя неправильно.
ls, вероятно, будет подобен этому: Хороший пример использования setuid – команда ping, требую-
drwxr-xr-x 66 graham graham 2904 щая административных привилегий для получения доступа к сети.
2007-01-23 10:09 graham Команда ls -l /bin/ping выдаст следующее:
В выводе будет запись для каж- -rwsr-xr-x 1 root root 30804 2006-10-16 18:32 /bin/ping
дого пользователя вашей системы, и Дополнительный символ s в секции прав показывает, что бит
проблема заключается в строке прав setuid установлен. Во время выполнения ping получает права пользо-
доступа – drwxr-xr-x. Если корот- вателя-владельца файла, в данном случае это root. Оставить инстру-
ко, то d – это признак каталога, менты с установленным setuid в вашем дистрибутиве – приемлемый
rwx – права доступа владельца фай- риск, но вы должны дважды подумать, прежде чем использовать его
ла (чтение, запись и исполнение), для упрощения жизни при написании своих собственных скриптов.
первые символы r-x – права группы,
а вторые r-x – права всех остальных. Запускайте проверку на вирусы
Следующая часть, graham graham, Хотя Linux не слишком обременен разрушительными вирусами, все
обозначает пользователя и группу, же сравнительно легко непреднамеренно пропустить вирус к тем, с
Если вам сложно изменить
права доступа из командной владеющих этим каталогом. Многие кем вы взаимодействуете, потому что на вашем рабочем столе могут
строки, попробуйте файловый дистрибутивы глобально открывают потихоньку дремать зараженные файлы – плод злонамеренного поч-
менеджер Gnome или KDE. домашние каталоги пользователей тового сообщения или скачивания. Даже если они не в силах сделать
на чтение, а значит, каждый, имею- ничего дурного на вашей Linux-системе, они по-прежнему способны
причинить вред какой-нибудь другой ОС. Запуск антивирусного ПО на Следующий шаг – скопировать открытый ключ на сервер. Это
вашем Linux-компьютере даст вам душевное спокойствие при отправке выполняется командой
файлов вашим знакомым, а также отловит подозрительные двоичные ssh-copy-id -i ~/.ssh/id_dsa.pub server_address
файлы, не позволив им покинуть лабораторию. Теперь вы должны получить возможность подключаться к своему
Наш любимый антивирусный пакет – ClamAV, имеющий версии SSH-серверу, используя аутентификацию по ключу.
для Mac и Windows, если вы хотите соблазнить друзей открытым ПО. Если вы столкнетесь с проблемами, первым делом убедитесь, что
ClamAV можно Он полностью бесплатен, и база данных известных вирусов обычно аутентификация по открытому ключу разрешена в файле конфигурации
запустить из обновляется в течение 24 часов с момента обнаружения нового вируса. SSH (это выглядит как PubkeyAuthentication yes), а если это не поможет,
командной строки, или, ClamAV выиграл наше сравнение антивирусов в LXF74/75, поскольку убедитесь, что и ваш домашний каталог, и каталог .ssh на удаленной
если хотите, через он достаточно гибок для использования как на почтовом сервере, так и машине имеют права доступа ‘drwx------’. Наконец, когда все заработает,
графический в настольной системе. Если он установлен, вы можете проанализиро- запретите в конфигурационном файле SSH аутентификацию по паролю.
интерфейс для KDE вать любые подозрительные файлы, просто щелкнув на файле правой
или Gnome.
кнопкой мыши и выбрав пункт «сканирование на вирусы». Раздавайте свой открытый ключ
Если вы приедете на одну из крупных конференций разработчиков
открытого ПО, например, OSCon, Akademy или Guadec, вы, вероятно,
увидите странный пункт в программе мероприятия, называющийся
‘key signing party’ («вечеринка подписания ключей», не путайте с ‘key
party’ [key party – вечеринка, в начале которой мужчины складывают
ключи от машин в кучу, а в конце женщины выбирают случайный
ключ, определяя тем самым своего сексуального партнера, – прим.
пер.]). Это возможность для разработчиков поделиться открыты-
ми PGP-ключами, а также единственный способ получить на 100%
достоверный ключ, не перехваченный при пересылке (что известно
как «атака посредника»). Пусть вы не разработчик, но распростра-
нение своего открытого ключа по доверенному каналу – прекрасный
способ подтвердить свою личность, во многом подобный подписи в
реальной жизни.
Сперва вам нужно создать ключ, набрав gpg --gen-key. Выберите
опции по умолчанию с размером ключа ‘4096’ для параноиков и вве-
дите свой адрес электронной почты. Важнейшая часть – ключевая
фраза, она используется для защиты вашего ключа таким же спосо-
бом, как пароль защищает учетную запись. Чем длиннее и случайнее
по своей природе эта фраза, тем сложнее ее взломать. Вы долж-
ны будете отправить идентификатор своего ключа на электронный
адрес, прежде чем получить список всех ключей, которые собирае-
тесь подписывать.
На самой вечеринке вы можете удостоверить личности людей в
Закалите SSH списке и подлинность их ключей. Затем вы отправляете их ключи
Теперь, когда вы сделали пароли более стойкими, захватить маши- к своему и отсылаете копию партнеру, который поступает так же –
ну удаленно – через SSH – будет куда как труднее. Но вы можете тем самым будет построена так называемая «сеть доверия» между
сделать еще больше, чтобы быть уверенным, что какой-нибудь участниками. PGP-ключи также можно использовать для шифрова-
пацан с другого континента не покопается в ваших личных файлах. ния файлов и электронных сообщений, предназначенных к отправ-
Первое – это запретить удаленный доступ пользователю root в кон- ке через небезопасную сеть. Ими гораздо проще управлять, когда
фигурационном файле SSH. Откройте /etc/sshd.conf или /etc/ssh/ используются графические интерфейсы типа Kpgp, или когда они
sshd_config в своем любимом текстовом редакторе и убедитесь, интегрированы в почтовый клиент типа Evolution или KMail.
что опция PermitRootLogin установлена в no. Теперь вам, а заодно и
пацану с другого континента, нужно будет получать доступ с права- Проверяйте системные журналы
ми root через учетную запись обычного пользователя.
Еще одна опция, которую стоит поискать в файле конфигура-
ции – Protocol 2. Любые другие строки с ‘Protocol’ нужно закоммен-
тировать, поскольку они разрешают соединения, использующие
менее безопасные ранние версии протокола, лишая вас при этом
множества преимуществ.
Linux – одна из самых разговорчивых ОС. В журналах можно найти или ошибка. Все, что име- Будьте бдительны:
запись почти для каждой возникающей проблемы. Возможно, именно ет выход в Интернет, всег- отключив инструмент
по этой причине очень немногие из нас не ленятся их просматривать. да подпадает под больший автоматического
Что довольно глупо, поскольку файлы журналов могут показать, как риск, чем небольшая про- обновления своего
атаковалась ваша система и какие меры следует предпринять, чтобы грамма с малым количест- дистрибутива,
атаки терпели поражение. вом доверенных пользовате- вы пропустите
важные обновления
Все системные файлы журналов размещаются в каталоге /var/log, лей, и поэтому проблемы с
безопасности.
и можно многое узнать, просто просматривая их время от времени. пакетными версиями Apache
Файл с именем messages – хорошее место для старта. Он содержит и PHP являются вполне
общие сообщения системы, а также протокол загрузки. Протокол пос- обычными. Чтобы контроли-
ледней загрузки также можно отобразить командой dmesg. Если вы ровать эти проблемы, следу-
хотите найти что-нибудь определенное, вам поможет grep. Используйте ет регулярно обновлять свою
команду tail -f, чтобы просматривать на экране последние записи в жур- систему. Многие дистрибу-
нале и команду logger для добавления собственных сообщений. тивы Linux сейчас включают
Читайте о ведении журналов на стр. 38. менеджер обновлений, кото-
рый доставляет их на вашу
Будьте на шаг впереди систему по мере обнаружения уязвимостей. Вы должны убедиться, что
Когда вы обнаружите проблему, не тяните с решением. В случае спа- это действительно происходит. В частности, в Ubuntu слишком легко
ма для поимки виновного мало что можно сделать. Но в Интернете отключить Update Manager и забыть запустить его вновь. Это очень
можно найти обратный адрес отправителя, а также машину, исполь- печально, поскольку для 6.06 LTS обещаны обновления безопасности
зованную для отсылки сообщения, и добавить ее адрес в базу дан- в течение пяти лет.
ных своего спам-фильтра (вы же используете спам-фильтр, не так
ли?). А вот об атаках фишеров следует сообщать. Во-первых, орга- Учтите, безопасность не приходит
низации, которая оказалась под атакой, а во-вторых, на сайт, отсле- сама
живающий фишеров, например, www.antiphishing.org. Это самый важный совет. В Linux нет ни ежедневных напоминаний,
Другой способ активной защиты: если у вас работает сервер SSH, от которых страдают пользователи других операционных систем, ни
приглядывайте за файлом /var/log/auth.log, и рано или поздно уви- финансового бремени от запуска платных антивирусов, брандмау-
дите, что кто-то пытался угадать ваш пароль, чтобы дорваться до эра и блокировщика всплывающих окон. Но это не значит, что нет
вашей машины. Строка в журнале может выглядеть, например, так: угрозы. Если вы не поленитесь заглянуть в свои файлы журналов,
Failed password for invalid user test from ip_address port 55218 то увидите, что она определенно есть. И когда система, которую вы
ssh2 считали безопасной, взламывается, последствия могут быть вдеся-
Здесь кто-то пытался соединиться с вашей машиной как поль- теро ужаснее, чем просто заражение вирусом. Ваша машина может
зователь test, но потерпел неудачу. Вы узнаете больше о компьюте- использоваться для размещения нелегального ПО, организации
ре, который покушался на вашу машину, набрав whois ip_address; атак типа «отказ в обслуживании», или просто для рассылки тысячи
вывод зачастую включает номер контактного телефона. В большин- спам-сообщений в час.
стве случаев это окажется обычный провайдер, который более чем Простое следование некоторым из наших советов определен-
заинтересован в сведениях, что один из его клиентов пытался полу- но поможет, но то же самое достигается обычной осторожностью.
чить неавторизованный доступ к чужой системе. Например, подумайте дважды, прежде чем устанавливать неподпи-
санные программы из сторонних репозиториев. Даже подписанные
Защищайте беспроводную сеть файлы не обязательно легитимны. Прикиньте, как легко встроить
Достаточно открыть ноутбук и просканировать точки доступа в густо- маленькую программку в исходный код одного из тех пакетов,
населенном районе, чтобы увидеть: существует масса людей, использу- которые вы скачиваете, и сколько разрушений она может понаде-
ющих незащищенные беспроводные сети. Помимо проблемы расходо- лать, отсылая историю ваших действий на какой-нибудь анонимный
вания дорогого канала халявщиками, незащищенная сеть неприлично сервер в Интернете. Шансы невелики, но лучше быть готовым к
проста для слежки. Если не применяется шифрование, ничто не поме- худшему. При наличии выбора, взломщик перейдет к более легкой
шает любопытствующему читать вашу почту и мгновенные сообщения цели. LXF
как бесплатную газету.
Шифрование поможет в этой беде. Есть две опции, поддерживае-
мых среднестатистической точкой доступа: WEP и WPA. WEP старше,
Программа
и имеет известные уязвимости. Если кто-то стянет достаточно данных, управления пакетами
зашифрованных с помощью WEP, из этих данных вполне осуществи- должна
мо извлечь ключ, и ваше соединение будет взломано. WPA, напротив, предупреждать вас
сейчас считается безопасным. Единственная проблема WPA заключа- о неподписанных
ется в том, что в Linux беспроводные драйверы только начали поддер- и сомнительных
живать его. пакетах.
Оба метода работают, в общем, одинаково. Вы задаете пароль для
точки доступа и используете его на вашем ноутбуке для подключения к
сети. Благодаря современным инструментам Linux, таким, как Network
Manager в Gnome и его KDE-эквивалент, управление паролями выпол-
няется весьма просто. Как только пароль будет принят, вы сможете
свободно использовать свое соединение.
Поддерживайте актуальность
На данный момент у вас могла возникнуть мысль, что определен-
ные экземпляры ПО в Linux уязвимее других. Чем больше программ
у пользователя, тем вероятнее, что будет обнаружена уязвимость
Записки
демонов
Учитесь правильно читать файлы журналов: они дают ценные данные о вашей системе.
Д-р Крис Браун начинает серию руководств из двух частей с рассказа о syslogd.
Н
е будем врать: файлы журналов, вероятно, скучнейшие мые события. А через месяц рассмотрим некоторые инструменты для
из всех в Linux-системе. Они однообразны и нудны, и про- управления, анализа и обобщения этих файлов.
сматривать их – все равно что перематывать бесконечные
видеозаписи службы безопасности в поисках чего-нибудь Тонкости Syslogd
интересного. Вдобавок сообщения в журнале часто пишутся в расчете Нет единого жесткого правила, определяющего, что нужно записы-
на разработчика, а не конечного пользователя, и понять их трудно. вать. По сути, сервис записывает сообщение при совершении действия,
Логично спросить: зачем вообще смотреть файлы журналов? которое создатель программы посчитал достойным упоминания. FTP-
Никуда не денешься: файлы журналов рассказывают о сервисах систе- сервер может создавать запись каждый раз при запросе файла; ядро –
мы (демонах) и других программах, которые не имеют видимого поль- находя новое устройство; и т.д., причем обычно стараются записывать
зователю интерфейса и не могут сами рассказать о своих действиях и события, выходящие за рамки обычных.
ошибках. Файлы журналов – это записки демонов. Некоторые сервисы, например, Apache, ведут свои собственные
Например: журналы. Другие – включая почту, печать, подсистему безопасности,
1 Файлы журналов сообщат, насколько загружен сервер. Допустим, Cron и ядро – делают записи с помощью отдельного демона, syslogd,
вам нужно выставить счет за его использование или понять, хорошо обрабатывающего сообщения от их имени. Рассмотрим сначала метод
ли сервер работает как средство маркетинга или доставки данных. syslog.
Журналы web-сервера особенно важны, и существует довольно много Отправляя записи через syslogd, сервисы не только передают тек-
инструментов, позволяющих выдавать статистику на основе файлов сты сообщений, но и указывают ‘источник’ (facility) и ‘уровень’ (level).
журналов сервера Apache. Источник идентифицирует подсистему, от которой пришло сообщение,
2 Файлы журналов помогут выявить ошибки в настройках (например, а уровень означает его важность. Syslog имеет файл настроек, опреде-
неправильные настройки авторизации) или отсутствие файлов (напри- ляющий, куда посылать то или иное сообщение, на основе его источ-
мер, ошибки типа ‘404 файл не найден’). ника и уровня (как мы увидим, записи не обязательно направляются в
3 Файлы журналов прояснят, почему сервис не желает правильно журнал, хотя это их обычный путь).
запускаться. Это особенно ценно при первом запуске приложения пос- Список источников включает auth, authpriv, cron, daemon, fpm kern,
ле изменений в настройке. Мудрые администраторы запускают tail -f на lpr, mail, news, syslog, user, uucp и от local0 до local7. Восемь источни-
файле журнала (тогда можно просматривать файл по мере его роста) в ков local syslogd предоставляет для пользовательских нужд. Кому инте-
одном окне терминала, а в другом запускают сервер. ресно, uucp означает ‘Unix to Unix copy’, это древний набор программ
4 Файлы журналов расскажут, что кто-то норовит вломиться в вашу для удаленной передачи файлов и выполнения программ. Название
систему. Фактически, о любой машине, имеющей внешний видимый также выдает возраст syslog: он начал использоваться с 1980-х.
IP-адрес, можно утверждать, что кто-то пытается в нее проникнуть. Существует восемь возможных уровней, начиная от щадящего до
Вопрос, преуспел ли этот кто-то? К примеру, журнал сервера под катастрофического, как показано в таблице «Уровни Syslog» справа
управлением автора содержит свыше 50000 строк, относящихся к вверху. (Описание каждого уровня является нашей интерпретацией).
попыткам проникновения – и это только за одну неделю! Между прочим, некоторые авторы используют термин ‘приоритет’, а не
В данной серии из двух уроков мы хотели бы помочь вам понять ‘уровень’, но большая часть документации по syslog использует термин
и настроить процесс регистрации событий. Начнем с создания фай- ‘приоритет’ для обозначения комбинации источника и уровня. Будьте
лов журналов, затем разберемся, как и где настроить журналируе- осторожны – возможны недоразумения.
Что происходит, когда сообщение доходит до syslogd? Это зависит Уровни Syslog
от файла настройки, но возможны пять вариантов:
Оно может быть добавлено в файл. Это наиболее распространен- Сообщениям журнала присваивается «уровень», отражающий степень их важности:
ный выбор.
Уровень Описание
Оно может выдано на терминал любого указанного пользователя.
Оно может быть записано в FIFO (именованный канал). Это бывает debug Отладочные сообщения. Рассказывают о внутренней деятельности сервиса,
обычно велики по объему и часто нацелены на разработчиков, а не
полезно при отладке; или можно запустить grep и вытаскивать интерес-
пользователей. Чтобы увидеть сообщения, связанные с отладкой, многие
ные сообщения из FIFO, пользуясь шаблоном регулярного выражения. демоны необходимо запускать с определенными флагами и/или собирать с
Оно может быть перенаправлено syslogd, находящемуся на удален- определенными ключами.
ном узле. info, notice Эти сообщения регистрируют обычную (но важную) деятельность сервиса.
Наконец, если для сообщения не определено, что с ним делать, оно
просто игнорируется. warning Необычные или ненормальные события, которые, однако, не вызывают сбоя
Мы скоро рассмотрим каждое из этих действий подробно. А сейчас сервиса.
займемся самым важным файлом настройки, /etc/syslog.conf, который err Ошибки, способные вызвать отказ сервиса при ответе на запрос.
связывает все вместе. Вот возможные варианты строк этого файла.
Это не настоящие настройки, просто набор примеров для пояснения crit, alert, emerg Эти три уровня представляют ошибки (в порядке возрастания серьезности),
синтаксиса. Номера строк даны для удобства ссылки – в сам файл они способные привести сервис (или всю систему) к полному отказу, и требуют
не входят. немедленной реакции.
1 mail.err /var/log/mail
2 mail.* /var/log/mail
3 mail.debug /var/log/mail Наконец, если надо, чтобы селектор включал несколько источников
4 *.crit /var/log/critical одного уровня, отделите имена источников запятой (,) как показано в
5 *.* @loghost строке 9. Между прочим, для сообщения вполне нормально соответ-
6 mail.=debug /var/log/maildebug ствовать более чем одному селектору – syslogd просто выполнит все
7 mail.warn;cron.notice var/log/messages предписанные действия, по очереди.
8 *.*;auth.none /var/log/messages
9 auth,kern.crit /var/log/critical Предпринимаем действие
10 *.*;auth,kern.none /var/log/messages Как мы уже упомянули, чаще всего сообщения добавляются к файлу;
11 *.=debug;*.=info -/var/log/messages вы просто определяете в качестве действия (абсолютный) путь к нему,
12 *.crit root как мы делали в наших примерах. Обычно syslogd сбрасывает свои
13 *.crit * буферы на диск после каждой записи. Это увеличивает шансы сообще-
14 *.=notice;*.=warn |/dev/xconsole ния попасть в файл до того, как система рухнет, но это также значит,
Каждое правило содержит селектор и действие. Так, в строке 1 что менее критичные (и более объемные) сообщения уровней debug,
селектором является mail.err. Это значит, что правило применяется к info и notice вызывают излишнюю дисковую активность. Поставив
сообщениям от источника mail уровня err или выше; то есть уровни err,
crit, alert или emerg. Затем идет действие – добавить сообщение в файл
/var/log/mail. Легко, правда? «Ведение журналов в сети
Правила бывают и посложнее. Селекторы допускают символы под-
становки (*) как для источника, так и для уровня. Так, селектор в стро-
легко централизовать, создав
ке 2 означает ‘все сообщения от источника mail’ согласно принципу ‘от для них отдельный хост.»
этого уровня и выше’, строка 3 делает то же самое. Селектор в строке
4 означает ‘сообщения уровня crit (или выше) от любого источника’, дефис (-) перед именем файла, вы разрешите syslogd не сбрасывать
а строка 5, понятное дело, применяется ко всем сообщениям. Знак буферы на диск каждый раз (см. строку 11). Можно попросить сооб-
равенства (=) перед уровнем означает, что правило применимо только щение отобразиться на консоль любого подключенного пользователя
к этому уровню, поэтому правило в строке 6 применимо сообщениям от (root является фаворитом), определив в качестве действия имя учетной
источника mail только уровня debug. Можно указать несколько селек- записи, как в строке 12.
торов, разделив их точкой с запятой(;) как показано в строке 7 (такой Здесь также применяется символ подстановки (*); действие в стро-
же эффект достигается написанием двух отдельных правил). Пустой ке 13 означает ‘написать всем подключенным пользователям’. Во вре-
уровень none используется для исключения всех сообщений от данного мена, когда системный администратор постоянно сидел в текстовой
источника и обычно используется вместе с ;, как показано в строке 8, консоли (если такое вообще было), это имело значение, но настольные
соответствующей всем сообщениям, кроме идущих от источника auth. компьютеры работают в графическом режиме, а за серверами особо
не присматривают. Вы можете заставить syslogd перенаправлять сооб-
щения на удаленную машину, добавив знак @ перед именем машины,
Новое поколение указанным в качестве действия; пример приведен в строке 5, но мы
подробно рассмотрим его попозже.
Некоторые из последних дистрибутивов – отметим SUSE – заменили Наконец, можно велеть syslogd записывать сообщения в имено-
syslogd на syslog-ng. Этот демон обратно совместим с syslogd (он все ванный канал, поставив символ канала (|) перед его именем; пример –
еще использует источники и уровни), но дает системному администра- строка 14 (взятая из стандартного syslog.conf в Ubuntu).
тору больший контроль над тем, откуда приходит сообщение и куда оно
пересылается (ценой усложнения файла настройки). Сообщения могут
выбираться на основе регулярных выражений, и для удаленного журна-
Поэкспериментируем
лирования используется TCP, а не UDP. Если вы хотите, чтобы мы рас- В порядке иллюстрации, настроим syslogd так, чтобы он посылал все
смотрели syslog-ng подробно, пишите на letters@linuxformat.ru. сообщения от источника local6 в файл /var/log/daemon. Для внесения
изменений необходимо быть суперпользователем. Добавьте в файл
syslog.conf строчку:
local6.notice /var/log/demolog одной машине упрощает их анализ. Второе, это более безопасно. Если
Далее, из командной строки, пошлите syslogd сигнал SIGHUP, что- журналы хранятся на машине локально, коварный нарушитель может
бы он перечитал файл. отредактировать их и замести свои следы; а если журналы хранятся на
# pkill -HUP syslogd другой машине, то до нее надо еще добраться.
Для отправки сообщения в syslogd из командной строки служит Однако с точки зрения безопасности удаленное журналирование
команда logger. Вот типичный пример ее использования (опция -p ука- имеет и недостаток: уязвимость к атакам на отказ в обслуживании от
зывает на источник и уровень сообщения): тех, кто просто посылает лавину сообщений в syslogd, пока не забьет
# logger -p mail.info “Тестовое сообщение от источника mail” весь диск. Поэтому имеет смысл установить на узле, ведущем журнал,
Чтобы послать сообщение с созданным нами приоритетом local6. брандмауэр и принимать пакеты на порт syslog (UDP-порт 514) только
notice, выполните из своей локальной сети.
# logger -p local6.notice “Это тест” Вы заметите, что syslogd очень гибок в настройке обработки сооб-
Теперь просмотрите файл /var/log/demolog. Там должна быть при- щений. Сложите все сообщения в один файл, разбейте их по несколь-
мерно такая строка: ким файлам или просто передайте их удаленной машине – выбор за
Dec 27 10:38:38 frodo chris: Это тест вами. На своих системах вы найдете различные вариации файла syslog.
Вы увидите, что syslogd предварил сообщение некоторой инфор- conf. Одно из преимуществ использования syslogd – для изменения
мацией: в данном случае это отметка времени, имя машины и UID стратегии ведения журнала достаточно отредактировать один файл.
процесса, пославшего сообщение. Попробуйте записать сообщения от
источника local6 с различными уровнями и проверить, какие уровни Взгляд разработчика
записываются. Прежде чем покинем syslog, взглянем на журналирование с точки
Если посылать одно и тоже сообщение syslogd много раз подряд, зрения разработчика демона (не путать с заклинателями демонов).
то syslogd будет сохранять их раз в минуту и добавлять отметку вроде Сообщения в syslogd легко посылать из программы на С.
‘last message repeated 22 times’ [«последнее сообщение повторялось 22 #include <syslog.h>
раза»] в конце каждого интервала времени. Это не дает демонам распо- #include <fcntl.h>
ясаться и затопить файлы журналов потоком однотипных сообщений. int main()
{
Централизация журналов openlog(“mydaemon”, LOG_PID, LOG_LOCAL6);
По умолчанию, syslogd прослушивает Unix-сокет /dev/log, то есть if (open(“/etc/xyzzy”, O_RDONLY) < 0) {
доступен только процессам на локальной машине. Однако он также syslog(LOG_NOTICE, “xyzzy: %m”);
может прослушивать и UDP-сокет, и, как мы уже видели, одним из }
действий syslog является перенаправление сообщения в syslogd на return 0;
удаленной машине. Это позволяет централизовать подсистему журна- }
лирования в вашей сети, выделив одну машину полностью под работу Первый аргумент openlog – это идентификатор, который будет
с журналами, чтобы другие просто пересылали ей свои сообщения. У появляться во всех сообщениях (обычно имя демона); аргумент LOG_
такого подхода есть несколько преимуществ. Первое, сбор журналов на PID велит включать в сообщение идентификатор процесса демона;
Syslog.conf парой слов например, Red Hat и Fedora пишут его в /var/
log/dmesg. Большая часть этих сообщений
создается модулями ядра при попытке опре-
владелец.уровень Действие деления и инициализации ассоциированного с
ними оборудования, и они загадочны даже по
стандартам Linux. Их внимательное изучение
Один из: Один из: при случае поможет определить, распознается
Что делать с сообщением:
auth debug ли ваше оборудование, но для большей части
/some/файл Добавить в файл
authpriv info сообщений dmesg есть два выхода: игнори-
cron notice
@loghost Перенаправить ровать их или отправить гуру для удаленной
daemon warning
в syslogd диагностики.
ftp err
на loghost
kern crit В следующий раз мы рассмотрим некото-
lpr alert рые типичные журналы; а пока –
имя_пользователя Написать
mail emerg
указанному LXF91 14:41:54 from chris: конец руководства
news * = все
пользователю LXF91 14:42:44 from chris: последнее
syslog none
user сообщение повторилось 42 раза LXF
uucp Файл настройки определяет, что произойдет
local0 .. 7
с каждым сообщением, посланным в syslog. Интервью с прародителем Syslog, Эриком Олл-
меном, опубликовано на стр. 28.
Через месяц На втором уроке мы научимся собирать, анализировать и обновлять файлы журналов.
Neo1973 –
начало
мобильной революции
Генеральной целью проекта OpenMoko является превращение телефонов из стремительно деше-
веющих игрушек в мобильные компьютеры с открытой платформой и возможностью пользовать-
ся всеми благами, которые предоставляют системы GNU/Linux на рабочих станциях. За развитием
проекта внимательно следит Денис Шмаков.
А
прель 1973 года. Доктор Мартин Графический интерфейс OpenMoko пред- но самые нетерпеливые могут воспользовать-
Купер совершает первый звонок с ставляет собой симбиоз компонентов сре- ся внешним адаптером, просто подключив его
первого в мире мобильного теле- ды GPE (мини-GNOME), оконного менеджера к USB-порту.
фона. И сообщает своему конкуренту из Matchbox и базовых приложений на осно- Весь дистрибутив занимает 64 Мб, остав-
Bell Labs, что тот проиграл. Neo1973 озна- ве libmokoui. Предельно простой и удобный, ляя равный объём памяти для дополнитель-
чает ‘Новый 1973-й’. Спустя 34 года коман- оконный менеджер Matchbox тем не менее ных приложений и данных. Увеличение памя-
да OpenMoko собирается совершить новую обладает довольно высокой настраиваемос- ти до 2 Гб возможно за счёт внешних карт
революцию в коммуникациях, совместив тью и масштабируемостью. Он уже исполь- microSD.
открытую программную платформу на осно- зуется во многих существующих PDA, web- Хотя Neo1973 является пока что един-
ве GNU/Linux и открытую аппаратную часть киосках и других портативных устройствах. ственной целевой серией для OpenMoko, неко-
от First International Computer. GSM-совмес- Помимо GPE, можно использовать основан- торые энтузиасты уже пытаются перенести его
тимый смартфон Neo1973 станет первым ную на Qt среду OPIE (миниатюрный аналог на другие, закрытые платформы. Это объясня-
устройством, работающим под управлением KDE), однако основная масса разработчиков ется отсутствием у текущей модели Neo1973
OpenMoko. не желает включать её в официальный дист- некоторых устройств, например адаптера Wi-
Что же представляет из себя этот дис- рибутив для сохранения консистентности (X11 Fi и видеокамеры. Однако, по мнению многих,
трибутив? Ядро Linux 2.6.17.14, X.Org 7.1, + GTK + libmokoui). Впрочем, не стоит забы- подобные попытки могут повредить сотрудни-
среда GTK+ 2.6.10, а также несколько новых вать о том, что OpenMoko является лишь честву с FIC. «Зачем тратить время, занимаясь
библиотек: libmokocore (реализует некото- первопроходцем в данной области. Вполне инженерным анализом, если теперь у нас есть
рые специфические для смартфона функ- вероятно, что вслед за ним появятся и дру- производитель оборудования, с которым мы
ции управления), libmokoui (содержит набор гие дистрибутивы для открытых смартфонов можем общаться напрямую?» – говорят они.
удобных элементов пользовательского интер- серии Neo1973, которые могут взять за основу Будущие спецификации Neo1973 во многом
фейса на базе GTK+), libmokonet (предостав- формулу X11 + Qt + OPIE. определяются пожеланиями (потенциальных)
ляет высокоуровневые функции GSM и GPS), Neo1973 поддерживает сетевое соедине- пользователей, а не корпоративным плани-
libmokopim (позволяет легко управлять пер- ние через USB и может быть использован как рованием FIC. Пожалуй, налаживание откры-
сональными данными пользователя). Среди GPRS-модем/брандмауэр/NAT-маршрутизатор того диалога сообщества с производителем
предустановленных приложений будут про- для компьютера. Для ядра Linux разработан является не менее важным событием, чем
грамма для набора номера, менеджер контак- патч, делающий возможным многопоточный непосредственно разработка дистрибутива.
тов, календарь, медиаплеер, браузер и неко- доступ к функциям GSM, поэтому пользова- Примечательным является и тот факт, что
торые другие. Однако, поскольку OpenMoko тель сможет одновременно совершать звонки FIC не только прислушивается к пожеланиям
базируется на достижениях существующего и бродить по Интернету. разработчиков и энтузиастов OpenMoko, но
проекта OpenEmbedded, тысячи дополнитель- Помимо сетевого USB-соединения воз- и оплачивает труд многих из них. Вне вся-
ных приложений доступны для установки уже можно подключение в роли хоста, что поз- кого сомнения, начальный успех этой новой
сейчас. Простой и удобный менеджер пакетов воляет смартфону работать с другими USB- мобильной революции зависит от ее взаимно-
ipkg позволит легко находить и устанавливать устройствами (видеокамерами, мобильными го сотрудничества с OpenMoko.
новые программы. «Приложения - это ринг- телефонами, плеерами) подобно персональ- OpenMoko призван быть дружественным
тоны будущего», – говорит Шон Мосс-Пулц ному компьютеру, при условии наличия у этих не только для конечных пользователей, но
[Sean Moss-Pultz], один из основателей и глав- устройств собственного источника питания. В и для разработчиков. Превосходный (хотя
ный идеолог проекта OpenMoko. Neo1973 не предусмотрена поддержка Wi-Fi, и неофициальный) инструмент MokoMakefile
к Просвещению
Andy Ounsted
Оконный менеджер E17 появился на… PlayStation 3! Натан Сандерс пояснит,
как проблемы Yellow Dog привели к этому проекту.
Т
ем, кто азартно пытался запустить Linux на PlayStation 2 или выбрала для своей новой приставки процессор Cell (специализиро-
принял вызов Майкла Робертсона [Michael Robertson], внедряя ванная производная от архитектуры PPC). Поясним…
Linux на Xbox, не повезло. А если вы просто хотели заставить
свои устройства работать как полагается, поздравляем. Sony взя- При чем тут Yellow Dog
ла на себя всю черную работу по установке Linux на PS3 – игровую Дистрибутив Yellow Dog появился в 1999 году и был ориентирован
приставку нового поколения. Но если вы думаете увидеть знакомый на энутзиастов Linux, имеющих в своем распоряжении Mac. Чтобы
GNU/Linux, вас ждет сюрприз. занять эту нишу, Terra Soft разработала ОС для архитектуры PowerPC/
Дело в том, что фирма Terra Soft для своей PS3-версии дистрибу- Apple, хотя практически всюду использовались чипы x86 от Intel. Terra
тива Yellow Dog вытащила из застоя оконный менеджер Enlightenment Soft продолжает продавать свой дистрибутив на базе KDE владельцам
[по-англ. так называется эпоха Просвещения, а заодно и «облегче- Mac’ов, а также занимается спецприложениями для суперкомпьютер-
ние», – прим. ред.], и после пяти лет разработки Enlightenment 17 ных расчетов.
(E17) готов к игровым подвигам. А началось все в 2003 г., когда Sony Но в 2005 г. Apple объявила о переходе на платформу Intel, и
Terra Soft пришлось пересмотреть стратегию: улучшив свою супер-
компьютерную ОС Y-HPC, пригодную и для PowerPC, и для x86, а
Пара слов о Cell также разработав узкоспециализированное ПО для анализа генных
цепочек, фирма стала главным игроком на поле суперкомпьютеров
Cell, процессор PS3, содержит основной модуль, совместимый с другими устройствами архи- PPC, так что Terra Soft отнюдь не бедствовала, когда Sony выбрала
тектуры PowerPC на уровне двоичного кода, и восемь специализированных блоков – грамот- PPC за основу PS3.
ная программа обязана учитывать эти особенности. Как и все многоядерные процессоры, Cell Версия Yellow Dog для PlayStation3 нуждалась в компактном и
не особо эффективен для web-серфинга или обработки текста, но дает огромный выигрыш
эстетичном рабочем столе, и летом 2006 г. Terra Soft обратилась к
при возможности распараллеливания, например, при кодировании аудио или рендеринге сцен
ведущему разработчику Enlightenment Карстену Хайцлеру [Carsten
3D-графики. Yellow Dog 5 поставляется с библиотекой разработчика Cell SDK от Barcelona
Computing Centre. Кай Стаатс, руководитель Yellow Dog, назвал ее «хорошей отправной точ- Haitzler] за долгожданным, но сильно запаздывающим E17. Хайцлер
кой» для оптимизации программ в Cell; он также рекомендует компилятор от RapidMind (www. хоть и обрадовался, но из осторожности отказался квалифициро-
rapidmind.net) и библиотеки MCF Cell (www.mc.com). вать версию даже как бета, пока все ошибки в Enlightenment не будут
исправлены: по его мнению, «версия альфа – это когда функцио-
нальность отработана, но осталось несколько известных ошибок».
Сдав продукт в ноябре 2006 года, он назвал его Enlightenment 17 Не только у Enlightenment есть красивый рабочий стол с анимаци-
пре-альфа. ей и эффектами: KDE и Gnome тоже такое предлагают. Но не на PS3.
Понятно, почему Terra Soft ухватилась за Enlightenment, несмотря Оконные менеджеры Compiz or Beryl построены на Xgl and AIGLX, то
на его незрелый статус: по словам Хайцлера, эта оконная среда при- есть на аппаратном ускорении OpenGL, применение которого в обо-
дает Yellow Dog «сексапильный глянец». рудовании Sony для PS3 ограничено. Enlightenment же в OpenGL не
Также понятно, что внешность – не главное: в отличие от KDE нуждается.
и Gnome, Enlightenment славен быстрой загрузкой (буквально за
несколько секунд); он быстр и не требователен к оперативной Получше Cairo?
памяти. Несмотря на мощный процессор, PS3 имеет всего 256 МБ Шикарная 2D-анимация Enlightenment обязана своим появлени-
ОЗУ – а Yellow Dog 5 с ем графической биб-
Enlightenment обходит-
ся 65 МБ, оставляя
«По словам Хайцлера, Enlightenment лиотеке Evas; кому-то
захочется сравнить ее с
место для других придает «сексапильный глянец.» аналогичной библиоте-
приложений. кой Cairo, популярной в
Версия E17 обещала гигантский скачок (предыдущий релиз сообществе Gnome. Хайцлер предупреждает, что подобное сравнение
DR16.0 вышел еще в 2000 г.), но создавалась она совершенно зано- некорректно. Cairo – небольшая библиотека, по мере возможностей
во, с нуля. Потенциальные потребители, соблазненные было клас- повышающая эффективность вывода векторной графики с помощью
сным графическим интерфейсом, уживающимся даже на самых аппаратного ускорения, а Evas гораздо богаче: здесь разработчики
медленных системах, помаленьку разбегались: разработка чересчур могут работать с графическими примитивами как с объектами, лег-
затянулась. Генеральный директор Terra Soft Кай Стаатс [Kai Staats] ко ими управлять и анимировать их. По мнению Хайцлера, «когда
понимал это, и решился помочь проекту. Чтобы придать ускорение Evas использует Cairo как движок рендеринга вместо собственного
команде Хайцлера, Terra Soft нацелила ее на несколько конкретных движка, скорость обработки снижается вдесятеро. Другое дело, что
задач, которые обе стороны расценили как неотложные и необходи- Evas ориентирована скорее на растровую графику, а Cairo – на век-
мые, и по особо важным пунктам назначила денежные премии для торную». Evas может использовать и OpenGL, но встроенный движок
программистов. Evas справляется с задачей гораздо лучше.
Стаатс победно сообщает, что все главные задачи завершены,
включая полную переделку кода рабочего стола и управления фоно-
вым изображением, введение нового селектора файлов ‘fm2’, под-
держку drag-and-drop и принятие стандарта Freedesktop.org для рабо-
Виджеты в Enlightenment 17
чего стола, меню и иконок.
Как и в Mac OS X, KDE и Gnome, в Enlightenment 17 могут использоваться апплеты различного
Все это рано или поздно произошло бы и без Terra Soft, но спон-
назначения: мониторинг электронной почты, просмотр изображений, блокнот и т.д.
сорская помощь существенно ускорила процесс. Стаатс уклонился
Для работы с апплетами используется Gadcon (Gadget Container): сами апплеты сложены на
от озвучивания премиальных сумм, но судя по объему проделанной «полку» (панель рабочего стола), а вызываются из панели управления. В будущих версиях
работы, программисты не за морковкой гнались. Причем продукт, Enlightenment разработчики надеются обеспечить встраивание апплетов в меню и рамки ок
созданный при поддержке Terra Soft, выходит под той же лицензией
BSD, что и весь Enlightenment.
Прочный фундамент
Оконный менеджер Enlightenment – лишь одно из многих приложе-
ний на базе EFL, откуда взяты компоненты для E17, точно так же, как
KDE использует графическую библиотеку Qt, а Gnome – GTK. У EFL,
однако, несколько иная функцональность. Фактически это целый
набор библиотек, с широким охватом. Команда Enlightenment оправ-
дывает свою медлительность необходимостью совершенствовать
Положение окон можно фиксировать, виртуальные рабочие столы
эти библиотеки. Документацию, информацию и даже примеры кода, можно переключать, тронув курсором край экрана: E17 – мечта
показывающие, как удобно программировать с EFL, можно найти на любителя поиграть с настройками!
http://enlightenment.org. А сейчас вкратце рассмотрим основные биб-
лиотеки в составе EFL:
Imlib2 – библиотека для низкоуровневой обработки изображений EVFS – библиотека для работы с файловой системой. Аналогична
и создания анимации. библиотекам KIO и GnomeVFS и предоставляет набор протоколов
EPEG – библиотека масштабирования изображений в формате для работы с файлами, включая поддержку bzip2, FTP, gzip, Samba,
JPEG, полезная для файловых менеджеров или приложений для SFTP, и tar.
просмотра фотографий (создание миниатюр). Обе библиотеки по Ecore объединяет несколько маленьких библиотек в один пакет,
скорости работы превосходят аналоги из Gnome и KDE (gdk-pixbuf ради простоты и модульности.
и QImage). Edje – библиотека для работы с интерфейсом приложений; ее
Epsilon – то же, что EPEG, но работает с большинством графичес- забота – организовать. интерфейс по максимуму удобства для поль-
ких форматов; по возможности, использует Imlib2 и EPEG для повы- зователя. Индивидуальная настройка интерфейса каждого приложе-
шения быстродействия Совместима со стандартами Freedesktop.org, ния сохраняется в EDC (Edje Data Collection) в файле .edj, с описанием
так что уменьшенные копии изображений будут храниться в папке расположения элементов и прочей сопутствующей информацией..
~/.thumbnails/ в формате PNG, и другим совместимым приложениям EET – библиотека для архивирования данных EDC. Обеспечивает
не придется дублировать работу по масштабированию. высокую скорость доступа к данным. Степень сжатия в данном случае
не главная забота: важнее, чтобы пользователь не ощутил задержки
при загрузке элемента интерфейса. При наличии готового EDC пост-
Основные библиотеки EFL роить интерфейс можно несколькими API-вызовами из Edje.
OGG, MP3 и WAV) дело не идет. (Все они находятся на www.get-e.org.) Больше чем игра
Yellow Dog должен позаботиться о привлечении разработчиков на Союз Terra Soft и Enlightenment ждет яркое будущее. Стаатс надеется,
платформу Enlightenment, а пока пользователи пробавляются ПО, что использование Yellow Dog на PlayStation 3 расширит его аудито-
разработанным для KDE, Gnome и других оконных сред. рию. «Игра притянет людей, а в придачу они получат дистрибутив,
Если вы, накаляясь, дожидались E17 пять долгих лет, вам скоро который их удержит», говорит он. «Благодаря использованию Yellow
полегчает. Разработка E17 заметно активизировалась, от чего выиг- Dog Linux на PlayStation 3 дистрибутив разойдется по всему миру.
рал весь релиз. Сейкел говорит: «E17 создавался с нуля: Enlightenment Опять же, увеличится популярность Linux, и рядовые пользователи
не боится начинать с нуля, если это оправдано. Но E18 строится на поймут, что PS3 – нечто большее, чем обычная игровая приставка.»
солидной базе E17, и дело должно пойти гораздо быстрее. Правда, Игроки, использующие OpenOffice.org? Ну, если их просветить… LXF
мы кое-что переделаем, так что ожидается некоторый прогресс. Я
думаю, этот релиз выйдет гораздо быстрее, чем E17».
Стаатс не закрывает глаза на опасность использования передово-
го, но незрелого рабочего стола при наличии стабильных альтерна-
тив: для приверженцев старых Linux-традиций на DVD Yellow Dog 5
предусмотрены и Gnome, и KDE, и соответствующие репозитории. Но
он утверждает, что пара E17 + YD5 вполне готова к работе. Terra Soft
с лета 2006 г. добросовестно тестирует дистрибутив на PlayStation 3,
рабочих станциях и даже серверных платформах.
Paul Blachford
GIMP пробудился. Ник Вейч выясняет, как его оживляют в преддверии
версии 2.4, почему проект GEGL так разросся, и что пользователи
делают с нашим лучшим графическим инструментом.
П
опросите людей назвать какую-нибудь открытую про- мы. Немало воды утекло с момента последнего крупного релиза (вер-
грамму; скорее всего вы услышите OpenOffice.org, Firefox, сия 2.2 вышла в декабре 2004 г.), и хотя добавлялись новые функции
возможно, Apache – в зависимости от того, с кем говорите. (и грядет релиз 2.4), по-прежнему налицо довольно большой список
Вспомнит ли кто-то про GIMP? Как ни странно, он не при- невыполненных пожеланий.
ходит людям на ум первым. Подобно гравитации, GIMP присутствует
незримо. Как и скрипты инициализации, он, пожалуй – нечто встроенное Предыстория
в ваш дистрибутив и воспринимаемое как данность. Как и другие социально значимые проекты, GIMP был впервые пред-
Не думайте, что GIMP не популярен. Он вполне способен удержи- ставлен широкой публике в группе Usenet-новостей comp.os.linux.misc.
вать свои позиции в списке 20 лучших открытых проектов по количе- В 1995 г. два студента из Беркли, Спенсер Кимболл [Spencer Kimball] и
ству обращений на SourceForge. Поскольку это редактор изображений, Питер Мэттис [Peter Mattis], попытались создать для фанатов свобод-
устанавливаемый по умолчанию во всех настольных дистрибутивах ного ПО нечто взамен Photoshop, который полюбился художникам на
Linux, трудно представить истинного линуксоида, который время от платформах Windows и Mac. Их ранний код был, прямо скажем, лос-
времени не прибегал бы к его услугам – в основном потому, что GIMP кутный и довольно нестабильный, и использовал откровенно ужасный
очень гибок по части обработки графики. Порты для Mac и Windows графический интерфейс Motif. И все же это был прекрасный фунда-
значительно расширили аудиторию GIMP, а с учетом дефицита бес- мент для отличного графического инструмента: 24-битный цвет, под-
платных программ обработки графики для этих платформ, не удиви- держка целого ряда файловых форматов, разумная система расшире-
тельно, что его принимают на ура. ний и функция отката.
Но и у лучшей графической программы для Linux есть свои пробле- GNU Image Manipulation Program мгновенно стала гвоздем сезона.
Двум студентам неожиданно пришлось разбирать запросы все возрас- врат былой формы. Хотя темп разработки вряд ли по душе рьяным
тающего числа пользователей, но они были упорны. Попутно Мэттис пользователям, по крайней мере, стали заметны связность, целеуст-
решил, что Motif действительно ужасен, и родился целый новый про- ремленность и ощущение стабильного прогресса. Промежуток между
ект: GTK. Он затевался всего лишь как инструментарий для GIMP, но основными релизами будет укорачиваться (возможно, шесть месяцев
хорошие вещи обычно идут нарасхват везде. между 2.4 и 2.6), а настоящие новшества вновь попали в поле зре-
В конечном итоге Кимболл и Мэттис окончили колледж и нашли ния. После появления GIMP 2.4 где-то в этом году определенно имеет
настоящую работу, но GIMP не умер – лицензирование под GPL озна- смысл обновиться.
чало, что он мог быть продолжен. Вот он и продолжался, с различны-
ми командами разработчиков, сквозь взлеты и падения, несколько лет
подряд. (Если вам интересна подробная история этого приложения,
Кто платит за GIMP?
очевидно, лучше всего поискать ее на собственном сайте GIMP, www. Если коротко, то никто. GIMP, конечно, сво- поставщики дистрибутивов оплачивают рабо-
gimp.org, раздел About.) бодное (free) ПО, и в данном случае это озна- ты над ключевыми аспектами ядра.
Но, видимо, GIMP был уж слишком хорош. Его ранний успех и весь- чает и бесплатность (free as in beer), и свободу Но GIMP, один из наиболее успешных пред-
ма открытая разработка означали, что желающие создавать графичес- (free as in speech). Но большинство солидных ставителей настольных программ для Linux,
кую программу неизбежно попадали в GIMP. Здесь не было ни великих проектов финансируются, хотя и косвенно. разрабатывается без спонсорской помощи.
расколов проекта, ни конкуренции за его пределами, ни выбора для OpenOffice.org? Несомненно, бесплатен для Основная команда разработчиков очень неве-
конечных пользователей. Выбор – основа философии свободного и использования, но разработка на самом деле лика, и их сторонние обязательства ограничи-
оплачивается рядом компаний, включая Sun и вают темпы развития. Страдают также докумен-
открытого ПО, но здесь он отсутствовал: не потому что хакеры не были
Novell, которые специально нанимают под него тация и web-сайт. Итак, Google, Novell, HP, IBM
способны соперничать, а потому, что предпочитали этого не делать.
сотрудников. Python? Google берет на себя и Ко! Если вы читаете это, то знайте: есть некий
Из-за недостатка конкуренции и отсутствия спонсорской поддержки
большую часть стоимости разработки этого сектор среди предметов рабочего стола первой
корпораций (см. врезку справа, «Кто платит за GIMP?») набор функций языка, оплачивая работу Гвидо ван Россума необходимости, которому не помешает ваша
GIMP, который раньше, в бурные дни конца девяностых, действитель- [Guido van Rossum] и многих других разработ- забота. Обычные пользователи тоже могут
но в чем-то превосходил закрытых конкурентов типа Photoshop, начал чиков Python. Само ядро Linux? Это, вероятно, помочь – см. врезку в конце этой статьи.
отставать от них. самый спонсируемый проект – все основные
Серия GIMP 2.x в известной степени продемонстрировала воз-
Н
овый релиз предусмотрит обыч-
ные исправления ошибок и улуч-
шения, в том числе ряд давно
Новая
ф
панель инструментов
обсуждаемых вещей: напри-
мер, термины, используемые в диалогах
фильтров. Изменения в меню Foreground Select
Также в коде заметно больше хитрых при- Меню было слегка изменено,
Функция Foreground Selection и
емов. Обработка EXIF в JPEG теперь намного чтобы предоставить более
расположенный ниже
быстрый доступ к фильтрам, не
лучше, и GIMP 2.4 автоматически определя- инструмент Alignment
зависящим от изображения.
ет флаг ‘rotate’ и при загрузке изображения превосходны для многослой-
спросит, надо ли его повернуть. Значительно ных изображений.
улучшен импорт векторной графики (особен- Целительный пластырь
Новый инструмент Helaing Perspective Clone
но формата SVG), а также обработка текста.
получил, наконец, особую иконку. Для умного клонирования.
Вы должны ощутить повышение произ-
водительности, поскольку сборки x86 теперь
оптимизируются для конкретных процессо- Иконки-незнакомки
ров. А как насчет чудесных новых функций? Многие иконки на панели В отрыв!
Читайте дальше... инструментов перерисованы; Настройки, зависимые от
людям, привыкшим к старым инструмента, теперь можно
версиям GIMP, придется не раз «отрывать», получая
остановиться и подумать. плавающее диалоговое окно.
Инструмент Healing
Новшество на панели инструментов – инструмент Healing. По дейст- или что-то еще. Инструмент Healing позволяет клонировать сходную
вию он похож на инструмент с тем же названием в Adobe Photoshop, и часть изображения, потихоньку затягивая пятно – раньше это дела-
некоторое время активно комментировался в списках рассылки GIMP. лось обычным инструментом Clone при настраиваемых пользователем
Идея его в том, что иногда бывает нужно доработать некоторую область опциях. Не пытайтесь переосмыслить его, а просто пользуйтесь: это
изображения – возможно, на объективе была пыль, поцарапан негатив чистое волшебство.
Мечты сбываются
Долгожданные функции добавятся в GIMP 2.6.
П
ри всех отличных новых функциях релиза 2.4, остается
чувство, что во многих отношениях разработка GIMP топ- Искусство GIMP: Гуннар Гримнес
чется на месте, и ряд фундаментальных проблем, как вы
увидите, еще предстоит решить. К сожалению, нынешние ограничения на раз- создано в CinePaint, отпрыске GIMP, ориенти-
Небольшой опрос пользователей GIMP, проведенный Linux Format в рядность цвета в GIMP препятствуют экспери- рованном на киноиндустрию: он может загру-
сети, выявил устрашающий список желаемых функций. Без некоторых ментам с «сырыми» данными изображений с жать «сырые» данные с большей разряднос-
из них GIMP не может считаться серьезным выбором для определен- цифровых камер, и это огорчает желающих тью цвета.
ного типа графических работ. Вкратце изложим наиболее популярные испытать эффекты HDR (High Dynamic Range) Проще говоря (а если вам нужны детали,
требования. или оптимизировать преобразования «сырых» можете заглянуть на http://en.wikipedia.org/
данных в финальные изображения. Гуннар wiki/High_dynamic_range_imaging), HDR – это
Гримнес [Gunnar Grimnes] использует GIMP и способ захвата большей информации о тоне:
Поддержка CMYK целый ряд других открытых инструментов для деталей по всей шкале градаций изображения.
Из цветовых моделей GIMP в настоящее время поддерживает только экспериментов с изображениями. Показанное И его можно использовать для получения
градации серого, индексированные или RGB-цвета. Этого достаточно здесь HDR-изображение было на самом деле некоторых крутых эффектов.
для большинства творческих работ – иконок, web-графики и даже опе-
раций с фотографиями, поскольку мир фото стал цифровым. Однако
есть большой и очень важный сектор графики, не охваченный этими
цветовыми моделями: печать.
Экранная графика аддитивна – различные цвета спектра смеши-
ваются для получения желаемого оттенка. В случае печати цвета рас-
сматриваются в отраженном свете и процесс становится субтрактив-
ным – чернила поглощают часть спектра и отражают остальное, что и
видит смотрящий. Здесь, пожалуй, не стоит вдаваться в подробности,
но вам следует знать, что гамма (жаргонный термин, используемый
любителями искусства для обозначения всего диапазона доступных
цветов) цветовой модели для печати очень отличается от таковой для
экрана – в пространстве RGB есть множество цветов, которые просто
невозможно напечатать.
Другая проблема заключается в том, что при печати реально
используются чернила голубого, пурпурного, желтого и черного цветов
(он же «ключевой», ‘key’). Отсюда и CMYK – Cyan, Magenta, Yellow, Key.
Чтобы рассчитать правильную дозировку чернил, рисунок в RGB (Red,
Green, Blue – красный, зеленый, синий) необходимо конвертировать,.
А сможет ли ваш принтер выполнить это преобразование правильно?
Или драйвер вашего принтера? Вообще-то для преобразования при-
меняется стандартная формула, проецирующая RGB-изображения на
доступный для печати диапазон CMYK. Но для конкретного изобра-
жения это может оказаться не лучшим вариантом, и часто приводит к Понятно, что многим хочется получить больший контроль над
затемнению цветов и потере контраста на некоторых участках. Всегда выполнением этого JPEG-преобразования. Камеры, поддерживающие
намного лучше доверить преобразование самому дизайнеру. А если сохранение в режиме RAW, обычно создают TIFF-файл с частично пре-
ваше изображение уже в CMYK, вряд ли вы захотите с потерями кон- образованными данными, но его загрузка требует от ПО поддержки
вертировать его в RGB только для того, чтобы на более поздней стадии большей разрядности цвета. Разрядность цвета весьма существенна
преобразовывать обратно. для всего, что делает GIMP, так что простой доработкой поддержку
Хорошая новость: GIMP 2.6 строится на движке GEGL, без проблем RAW и других форматов с большой разрядностью цвета (например, для
справляющемся с обработкой изображений в CMYK. Пока не все ясно эффектов динамического диапазона – High Dynamic Range, HDR) не
с поддержкой различных цветовых пространств (см. «Что за штука... получить. GEGL решит и эту проблему, но если ждать невмочь, взгляни-
GEGL» в LXF83 про цветовые модели и пространства). Но все же лед те на ответвление CinePaint (см. врезку «Раскольники!» далее), которое
тронулся. Ждем! умеет работать с HDR и другими интересными вещами уже сейчас...
Учебники
Наши эксперты помогут вам с любым приложением Linux
76 Новый Glade
В этом выпуске... Stetic и C# – это хорошо, а C и старый
добрый Glade – лучше!
ЕВГЕНИЙ БАЛДИН Андрей Боровский
Начинал с Агатов. Когда- покажет, как создавать
то даже знал, что такое интерфейсы GTK+ в стиле
Робик. новой школы.
80 Программирование с ncurses
Пора Окна бывают не только у
графических приложений!
легализоваться Андрей Боровский учит
ваять красивые и удобные
«Ржав вновь задумался. интерфейсы для
У него был вид газонокосилки, 56 Азбука безопасности 64 Подстройка SugarCRM консольных программ.
Linux гораздо защищеннее Windows, Клиенты Риты отличаются от клиентов
столкнувшейся с профсоюзом 84 Сессии и фильтры Java EE
но чтобы быть действительно Сью, чьи клиенты отличаются
травинок» Редкое web-приложение
в безопасности, необходимо хорошо от клиентов Боба. К счастью, у нас есть
Терри Пратчетт. Патриот представлять себе, что происходит. обходится без
Марк Бейн, который может все это
Энди Ченнел предлагает краткий обзор аутентификации. О том,
разрулить...
М
аски-шоу с целью поиска нели- защитных механизмов Unix. как реализовать ее
цензионных программ переходят из средствами Java EE – в
статье Антона Черноусова!
разряда страшилок в обыденную
реальность. И что бы там не говорили создатели 88 Допглавы PostgreSQL
Windows, именно они являются причиной этого. Резервирование,
репликация, автовакуум –
Как следствие, наша система в основном работа-
все, что вы хотели знать,
ет именно на них. но боялись спросить, в
С другой стороны, а чего нам бояться? У нас заключительной статье
всё чисто — GNU/Linux и никакого контрафакта. серии Евгения Балдина.
Но пофантазируем, ведь у страха глаза велики: 60 Улучшаем RSS с помощью 68 GUI в Mono
а что, собственно говоря, является доказатель- XSLT 94 Презентация в LaTeX
Готовы попробовать новое? Пол Хадсон Если вам проще писать,
ством его легельности? Ну да, в конце концов XML делает свое дело, но редко выглядит проведет вас по всем этапам создания чем рисовать, то OOo
привлекательно. Рейчел Проберт графического RSS-агрегатора в Stetic!
сервер вернут и, возможно, даже извинятся – Impress’у вы предпочтете
покажет, как использовать XSLT для
месяца через два. Вам от этого легче? LaTeX. Кстати, яркие пре-
создания красивой RSS-ленты.
Одни вопросы. Какие внешние признаки ука- зентации можно сохранять
не только в формате PowerPoint,
зывают на лицензионность ПО? Что мы знаем 72 Дебианизация всей страны и Евгений Балдин знает, как.
про это? Что знают те, кто приходят проверять? Почему бы не сделать что-то полезное
Может быть, есть какие-нибудь признаки, кото- для сообщества, собрав столь нужный 98 Шагающий пингвин
людям deb-пакет? Особенно теперь, Андрей Прахов завершает
рые успокоят их? Может быть, удастся вырабо-
когда у вас под рукой есть учебник серию уроков Blender
тать подходящее решение внутри сообщества и Грэма Моррисона... рассмотрением скелетной
взять его всем на вооружение? Тем более, что анимации.
нечто похожее на подобное решение уже начина-
ет кристаллизоваться. На сайте «Российской не-
организации поддержки свободного ПО» выло-
жены сканы нотариально заверенного перевода
Совет месяца: Linux sux
GPL v.2 (http://www.rfsi.ru/node/79). Это сдела- Команду su чаще всего вызывают из консоли, чтобы отре- запускать любое графическое приложение на том же X-
но только для примера, что такое возможно. дактировать какой-нибудь общесистемный конфигураци- экране. Если вы хотите включать эту возможность каждый
Зачем это нужно – отдельная история. Но видно, онный файл, но иногда возникает необходимость повы- раз, когда вы открываете X-сессию, следует добавить соот-
что «профсоюз травинок» потихоньку начинает сить привилегии для запуска графического приложения. ветствующую команду в файл .bashrc – тогда она будет
Попробовав сделать это, вы получите такую ошибку: выполняться при старте новой копии оболочки Bash.
свою организационную деятельность.
Xlib: connection to “:0.0” refused by server. Неприятным побочным эффектом данного решения явля-
Я вынужден поделить свою колонку на две
Проблема заключается в том, что при переключении ется возникновение аутентификационной петли при попыт-
части, потому что 19 марта 2007 года в возрасте
пользователя ключи, используемые для аутентификации ке переключиться с помощью su обратно на вашу учетную
82 лет умер Джон Бэкус, которого по праву назы- вашей X-сессии, становятся недействительными. Сегодня запись. Используйте команду exit.
вают создателем Fortran. Fortran (Фортран) явля- эта мера безопасности может показаться излишней, но Второе решение еще проще. Используйте команду,
ется первым рабочим высокоуровневым язы- она уходит корнями в те времена, когда X-сессии были альтернативную su, которая автоматически передает
ком программирования, модификации которого преимущественно сетевыми. Проблема имеет 2 решения. реквизиты вашей X-сессии. Она называется sux, и ее
активно используют до сих пор. Этот человек Первый подход: обеспечить аутентификацию на X-сер- придется доустановить из репозиториев вашего дистри-
определённо что-то изменил в нашем мире. вере для новой (привилегированной) учетной записи. Для бутива вручную. После этого, для переключения учетной
E.M.Baldin@inp.nsk.su этого используется команда xhost. Выполните xhost +local: записи будет достаточно набрать sux newuser. Вы сможе-
local от имени вашего обычного пользователя и вы увидите те запускать графические приложения без какой-либо
надпись: «non-network local connections being added to дополнительной настройки.
access control list». Теперь новый пользователь сможет
Система: Рули
Почему Linux столь защищен? Энди Ченнел считает, что благодаря правам доступа,
привилегиям и силе. И он прав.
С
ила вертит этим миром. Правда, экономисты уверяют, что документов. Важны оба этих аспекта: тот, кто прорвется в ваш компью-
деньги, а романтики предпочитают думать, что любовь, но это тер, может установить теневую программу слежения за клавиатурой
в чистом виде сила. В XXI веке, когда так много важной пер- (keylogger), которая в фоновом режиме будет записывать все, что вы
сональной информации хранится на жестких дисках и в компьютерах, набираете (имена пользователей, пароли, номера счетов и т.д.), то есть
эта сила иногда может быть названа одним словом: владение [owned]. уязвимость ОС может привести к потере или несанкционированному
Наш Намеренная опечатка в этом слове – ‘pwned’ – означает, что кракер, а использованию ваших данных.
эксперт не хакер (см. внизу справа врезку «Кракеры против Хакеров»), получил Исправление проблем безопасности в Linux – работа для профес-
контроль над вашим ПК и может использовать его в своих целях. сионалов, а мы, скромные конечные пользователи, должны доволь-
Энди Ченнел Гнусными целями могут быть: рассылка спама по миллионам адре- ствоваться загрузкой и установкой соответствующих заплаток по мере
Энди делает свои
первые шаги в Linux
сов, отправка вируса всем, кто записан в вашей адресной книге, хра- их появления. Но это не значит, что мы бессильны. На данном уроке
уже шесть лет, а нение и передача аморальных или противозаконных изображений или мы рассмотрим несколько методов защиты, а заодно разберемся, как
технологиями использование вашего браузера для накрутки счетчиков посещений и почему пользователи Linux поделены на рядовых и привилегиро-
интересуется еще со некоторого web-сайта. Это не просто мелкие жулики, интересующиеся ванных. Мы также обсудим способы блокирования файлов и папок,
времен Dragon 32.
вашим ПК: кракинг – большой бизнес. В мае 2006 г. Sony BMG Music запрещающие другим пользователям в многопользовательском окру-
Entertainment (да, та самая Sony!) была уличена в распространении рут- жении – в офисе, школе или дома – изменять их или вообще знать об
кита через DRM-приложение, записанное на одном из ее музыкальных их существовании.
CD и выпущенное 12-миллионным тиражом. Любой осведомленный об
этом кракер мог получить удаленный доступ к ПК. Опасности сетевого Корень проблемы
вторжения были подвергнуты миллионы пользователей. В Linux вы можете встретиться (и работать от имени) пользователя
Это, конечно, одна из причин, почему мы используем Linux; в мире одного из двух типов: рядового (user) и привилегированного (root).
Linux тоже встречаются руткиты, но они менее распространены, более Давайте рассмотрим, что может и что не может делать каждый из
вероятно, что они будут обнаружены и деактивированы, а благода- них. С точки зрения безопасности, root важнее, вот почему опытных
ря организации ОС Linux им труднее нанести серьезный ущерб [это пользователей раздражает, когда издатели дистрибутива решают, из
распространенное заблуждение. Руткит, действующий как часть ядра, соображений удобства, создавать обычных пользователей с правами
способен на все, как в Windows, так и в Linux, – прим. ред.]. Однако root. Такое было в Linspire, но теперь при установке вы можете выбрать,
функции, обеспечивающие защищенность Linux, заботятся в основном создавать ли пользователя root: пользуйтесь этим.
пользователями!
Вообще-то, root – это администратор компьютера, и вам необ-
ходим пароль root для выполнения задач типа установки программ,
изменения прав доступа к каталогам за пределами вашего пространс-
тва /home/имяпользователя и изменения параметров устройств. Этот
пароль назначается вами при установке дистрибутива, и он должен
быть стойким. Если ваш пароль слабоват, большинство дистрибутивов
предупреждает об этом.
Кстати, Ubuntu использует компромиссную систему, схожую с Apple
OS X, где пользователям временно предоставляются привилегии root,
когда они вводят свой собственный пароль. Эта система называется
sudo, и она неплохо работает: ведь кракеру, пожелавшему взломать
вашу машину, придется узнавать и имя пользователя, и пароль, тогда
как в противном случае будет достаточно подобрать пароль root.
Если вам захочется добавить традиционную учетную запись root в
Ubuntu (что разработчики дистрибутива не рекомендуют делать), прос-
то откройте консоль и наберите sudo passwd root. У вас спросят ваш
собственный пароль, затем новый пароль и его подтверждение. Сделав
это, можете открыть консоль, набрать su и ваш пароль для получения
полного доступа к системе. Однако sudo остается активной, и когда
при установке программ запрашивается пароль, имеется в виду пароль
пользователя, а не root. Вы можете сделать так, чтобы sudo запраши- Подлинно многопользовательская система означает, что у каждого
вала пароль root, отредактировав файл /etc/sudoers. Этот файл можно члена вашей семьи – своя собственная часть компьютера.
открыть в Gedit или Kate, запустив эти приложения с привилегиями root
(см. ниже). Найдите в тексте файла строку, начинающуюся с ‘Defaults’,
и добавьте ключевое слово ‘rootpw’. Идеальный пароль
Определив пользователя root, можете завершить сеанс и набрать На элементарном уровне безопасность вашего компьютера определя- Скорая
помощь
имя root, а затем тот самый пароль в окне входа в систему. Вход в ется ее слабейшим звеном, и часто это пароль. Выбирая его сложным
режиме root можно запретить, набрав su passwd -l root, но если вы для взлома, вы защищаете себя от локальных (связанных с физичес-
сделаете это при настройке sudo на использование пароля root, то ким доступом к машине) и удаленных (доступ по сети) атак. Хороший, Перемещайтесь
в командной
не сможете нормально администрировать свою систему. Пожалуйста, безопасный пароль должно быть трудно взломать, так что избегайте
строке при помощи
помните, что все-таки разделение на пользователей и суперпользова- дней рождения, имен детей, и тем более явных слов вроде password. команды cd. На-
телей имеет свои причины: будьте осторожны. Кроме того, большинство людей рекомендуют использовать комбина- пример, находясь в
Если вы прикипели к sudo, но хотите обеспечить другим пользо- цию как минимум шести символов, и строчных и заглавных, а также /home, наберите cd
вателям удобство установки программ и совместного использования числа: это не даст кракеру осуществить лобовую «атаку по словарю». documents –
и перемести-
файлов, наделите их соответствующими правами, войдя в System > Один из способов – взять начальные буквы запоминаемой фра- тесь в каталог
Administration > Users And Groups [Система > Администрирование > зы (например, Пока Коровы не Вернутся Домой) или песни и вашу /home/documents.
Пользователи и группы], выбрав соответствующего пользователя и дату рождения, так что в итоге получится ПКнВД130271 [имей- Команда ls выведет
нажав кнопку Properties [Свойства]. Выберите вкладку User Privileges те в виду, что использовать кириллицу в пароле не рекомендует- список содержи-
мого каталога.
[Привилегии пользователя] и установите опцию Executing System ся, – прим.ред.]. Можно также использовать имя и две даты, напри-
Administration Tasks [Выполнение задач системного администриро- мер, Mozart17561791 – заодно освежите в памяти историю! Если вам
вания]. Теперь, запустив sudo во время работы, другой пользователь неохота удерживать в голове строки практически случайных символов,
сможет ввести свой собственный пароль. почему бы не объединить два слова, по типу PaperGorilla – и запом-
нить легко, и взломать труднее, чем одно слово [правильнее сказать,
«незначительно труднее» – поэтому таких паролей также следует избе-
гать, – прим. ред.].
Кракеры против Хакеров Итак, у нас есть пользователь root и хороший сильный пароль
для защиты от вторжения со стороны других пользователей. Вход
За последнее десятилетие «хакер» стало синонимом компьютерных root через приглашение KDE или Gnome не отличается от входа обыч-
преступников, но это слово с большой предысторией, имеющее боль- ного пользователя, но он все же не рекомендуется к использованию.
ше общего с наладкой, чем со злодеянием. Большинство разработчи- Гораздо лучше работать под своей учетной записью, а когда понадо-
ков программ опишут свою деятельность как хакинг, как и те, кто
бится, давать себе привилегии root на время выполнения конкрет-
пытается воткнуть Linux во все устройства от Nintendo Wii до робота-
ных задач. Обычно это автоматизировано: при установке программ,
пылесоса Roomba. Другая сторона медали – это кракеры, те, кого
больше интересует поиск уязвимостей систем и злоупотребление ими например, в какой-то момент у вас запрашивается пароль root. Однако
для своего удовольствия (денежного или личного). иногда может потребоваться сделать это вручную, например, в ситуа-
ции, когда вы пытаетесь собрать и установить программу из исходных
текстов. Тут нужно открыть консоль и набрать su, нажать Enter, затем
ввести пароль root. После этого все, что вы набираете в консоли, будет None (Нет доступа) Другие пользователи не могут получить доступ к
выполняться от имени суперпользователя (root). содержимому каталога. Это наиболее безопасное и/или параноидаль-
Поскольку приложения также запускаются из командной строки ное состояние.
(путем набора имени приложения), можно открыть текстовый редактор Access files (Доступ к файлам) Другие пользователи могут захо-
вроде Kate, способный редактировать системные файлы, или запустить дить в каталог и открывать файлы, но не изменять или удалять их. Это
файловый менеджер вроде Konqueror или Nautilus, умеющий копиро- состояние принято было называть ‘только для чтения’, но и Gnome и
вать, вставлять или редактировать любые файлы в системе. Однако KDE пытаются очеловечить этот процесс, давая состояниям прав хоро-
это не очень здорово, поскольку может привести к осложнениям, если шие удобочитаемые имена.
позже в систему попробуют зайти другие пользователи. Лучший спо- Create and delete files (Создание и удаление файлов) Любой пользо-
соб выполнения таких задач – использовать gksudo (для пользователей ватель может добавлять, удалять, просматривать и редактировать фай-
Gnome) или kdesu (для KDE). При этом запускается отдельный экземп- лы как в своем домашнем каталоге (это называется Чтение/Запись).
ляр приложения с указанными правами, что уменьшает вероятность Есть еще опция, делающая файл (не каталог) исполняемым, ее
случайного вторжения в другие области операционной системы. можно использовать, когда вы загрузили приложение и хотите запус-
Чтобы сделать это, нажмите Alt+F2 для открытия диалога Выполнить тить его от имени своего пользователя. Щелкните правой кнопкой на
команду и введите приложении и выберите Свойства > Права, а затем отметьте опцию
gksudo appname ‘Выполнение’: она находится у нижнего края окна.
или
kdesu appname Разрешение на посадку
где appname – имя запускаемого приложения. Теперь это приложение В Linux есть несколько способов представления прав доступа к файлу
имеет права root, то есть пользователь может открывать любые фай- или папке, и хотя новичкам удобнее свалить работу на Gnome и KDE,
лы, включая системные или файлы настроек, и изменять их, но эти следует знать более стандартные способы записи, чтобы, столкнув-
привилегии будут отменены при закрытии приложения, тогда как при шись с проблемой в незнакомом окружении рабочего стола, вы все-
использовании командной строки привилегии root заканчивают свое таки смогли редактировать права как эксперт. Наиболее общая форма
действие только при закрытии терминала. указания прав – текстовая: состояние прав файла или каталога для его
Другой тип пользователя – это, хм... пользователь (user). Для владельца, группы и других пользователей описывается комбинацией
компьютера, пользователь – отдельная сущность, с собственными букв r, w и x. Вы, верно, догадались, что ‘r’ – это чтение, ‘w’ – запись,
настройками, рабочим столом и каталогом внутри /home для разме- а ‘x’ – выполнение. Вдобавок, дефис (-) может означать, в зависимос-
щения личных документов, фотографий и прочего. В своем домашнем ти от позиции, что рассматриваемый элемент – это файл, или что вам
каталоге (где имеется подкаталог с именем /Desktop, хранящий файлы, нельзя его даже трогать.
помещенные на рабочий стол), пользователь может вытворять все, что При таком методе каждый файл и каталог в системе Linux име-
угодно, но он не может изменять какие-либо другие файлы – включая ет настройки прав доступа, указанные десятью цифрами или битами.
домашние каталоги других пользователей. Это достигается посред- Вы можете увидеть их в действии в Gnome, открыв менеджер фай-
ством прав доступа, определяющих, кто и что может делать с каждым лов и выбрав опцию Права в меню Вид > Отображаемые колонки, а в
файлом и каталогом на компьютере. KDE’шном Konqueror – настроив опции вывода в виде списка в меню
Как вы понимаете, права доступа управляются не единственным Вид.
образом, и это важно для совместного пользования информацией на Проверить права каждого файла в каталоге можно также из
компьютере или в сети, особенно если у вас дома больше одного поль- командной строки. По умолчанию, открывая консоль, вы оказываетесь
зователя. Например, вы можете запретить детям доступ к вашему рабо- в своем каталоге /home. Чтобы увидеть права доступа ко всему, что
чему каталогу, но позволить им пользоваться коллекцией музыки; или здесь есть, наберите ls -l. Результат будет примерно таким:
совместно использовать библиотеку фотографий, куда каждый поль- -rw-r--r-- 1 andy andy 47841 2007-01-02 15:26 bumble_bee.jpg
В командной
зователь сможет выкладывать свои цифровые снимки для всей семьи. drwxr-xr-x 2 andy andy 4096 2007-01-15 11:53 Desktop
строке легко
отобразить права Права доступа обычно устанавливаются в три различных состояния, lrwxrwxrwx 1 andy andy 26 2006-10-22 15:07 Examples -> /usr/ share/
доступа к папке. но есть еще и дополнительные опции. example-content
drwxr-x--- 6 andy andy 4096 2007-01-15 10:19 Work
То, что нам интересно, находится в первой части каждой записи.
Первая цифра (позиция 0) сообщает, что мы видим: файл (-), ката-
лог (d) или ссылку (l). В данном случае ссылка – это ссылка на файл
или каталог в другой части системы. Следующие три цифры (пози-
ции 1–3) – это права владельца, 4–6 – права группы, а 7–9 – права
остальных.
К примеру, ссылка Examples (см. выше) и каталог Shared, который
мы скоро создадим, имеют следующие права: lrwxrwxrwx. l означает,
что это ссылка (далее будем использовать d), а rwx (3 раза) показы-
вают, что владелец, группа и прочие могут читать, записывать и про-
сматривать содержимое этого каталога. Для сравнения: у каталога
Work, скрытого от всех, кроме активного в данный момент пользова-
теля, указано drwxr-x---. Последние три дефиса говорят, что ‘осталь-
ные’ (пользователи, не являющиеся владельцем и не принадлежащие
к группе ‘andy’) не могут ничего читать, записывать и просматривать в
этом каталоге. Остальная информация, слева направо, это владелец,
группа, размер файла или каталога, дата создания или изменения и
имя файла/каталога. Отметим третью запись, в которой отображаются
имя ссылки и место, на которое ссылаются.
И снова в home
Linux – это действительно многопользовательская система, где каж-
XSLT: Создадим
Мозги у вас на месте, а как с внешним видом? Умело оформив RSS, вы получите призы в обеих
номинациях. А поможет вам в этом Рейчел Проберт.
R
SS – крутая технология, и ее популярность растет с бешеной
скоростью. Многие из ваших любимых сайтов уже наверняка Приступим
обзавелись новостными RSS-лентами, поскольку это упрощает Наш проект можно разделить на четыре стадии. Мы возьмем RSS-лен-
и ускоряет распространение слова (или что там они пытаются распро- ту Linux с Digg.com, воспользуемся таблицей XSLT, преобразуем Digg
странять). Воспользоваться технологией RSS не отказался бы любой
Наш блоггер или сайтовладелец, но наскоком ею не овладеешь: итог – нема-
эксперт ло RSS-лент убогого вида, да еще и неудобочитаемых. Чаще всего
встречаются два сценария:
Образцы таблиц
Рейчел Проберт
Последние семь лет Хочу «одолжить» ленту новостей с чужого сайта, но оформить ее в
Есть несколько фантастических примеров стилевых таблиц, в которых
консультирует собственном стиле. можно черпать вдохновение. Вот наиболее известные адреса:
развивающиеся Не хочу, чтобы подписчики моей RSS-ленты видели в своих браузе-
фирмы и создает для http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.
рах сырой XML, лучше создать нечто удобное для чтения. xml.
них web-приложения.
Ответ на оба вопроса дает тема нашего занятия: XSLT.
http://feeds.feedburner.com/publisherbuzz.
таблицу стилей
XML в элегантный HTML и отобразим его. Для урока вам понадобятся новке ПО к менеджеру пакетов своего дистрибутива.
некоторые навыки и парочка полезных программ. Прежде всего, поза- sudo apt-get install xsltproc
имствуем на www.digg.com ленту новостей о Linux/Unix. Чтобы усвоить
урок, пригодится знакомство с XML, но честно говоря, оно не обяза- Охота за контентом
тельно: если вы сумеете разобраться в содержании RSS-файла, про- В конечном итоге, мы будем иметь дело с тремя взаимосвязанными
блем не должно быть. Однако прежде чем знакомиться с XSLT, необ- файлами: исходным XML, XSLT-таблицей, которую мы собираемся
ходимо понять XPath. создать, и выходным HTML, преобразованным xsltproc (см. Рис. 1,
XPath для XML – примерно то же, что SQL для реляционных баз дан- ниже). Первый шаг – определение RSS-ленты, которую мы стилизуем
ных. Основная задача XPath – идентификация частей, или узлов, XML- под свой сайт. Вы уже знаете, что я выбрала канал Linux/Unix Digg на
документа. Рассмотрим следующий пример XML-файла: www.digg.com/rss/indexlinux_unix.xml.
<fridge> Потратьте некоторое время на изучение исходного XML-файла
<fish species=”trout” /> нашей ленты, это пригодится для создания XSLT-таблицы. Если ваш
<meat name=”ermintrude” /> браузер воспроизводит ленты в читаемом формате, понадобится
<fish name=”nemo” /> открыть исходный код выбором пункта контекстного меню View Page
<fish>wanda</fish> Source [Просмотр исходного кода страницы]. Этот-то файл нас и инте-
</fridge> ресует. Наиболее важная для нас информация разделена на узлы:
XPath-эквивалент для выражения SELECT fish FROM fridge можно канал (channel), заголовок (title) и пункт (item). На данном этапе непло-
записать как /fridge/fish. Подошло бы и //fish, но этот вариант вернет хо бы определить вид нашей страницы новостей. Подумайте, какие час-
всю рыбу, как в холодильнике, так и вне его. У XPath много общего с ти вам хотелось бы включить и как они будут выглядеть.
файловой системой Linux, поэтому знаток командной строки без тру-
да разберется в навигации: ../ приведет к узлу, расположенному сразу Мясо, картошка и лук
над текущим (./). Держите копию исходного кода RSS-ленты открытой, чтобы можно
Можно запрашивать XML не только по названию тэга, но и по атри- было быстро взглянуть на него в случае необходимости. Теперь войди-
бутам (см. врезку «Выражения XPath», стр. 63). Чтобы выбрать все те в свою рабочую директорию и создайте файл с названием digg.xsl.
компоненты холодильника, имеющие атрибут name (имя), можно вос- Откройте этот файл в любым текстовом редакторе, оказавшемся под
пользоваться выражением /fridge/*[@name]. Будут возвращены Nemo рукой. Я работаю в Kubuntu и пользуюсь Kate… ну, это неважно.
и Ermintrude, тогда как //fish[@*] вернет рыбу, имеющую хоть какой-то Начнем нашу таблицу так:
атрибут (всю, кроме Wanda). Можно указать //fish[@name=”nemo”], тог- <xsl:stylesheet version=‘1.0’
да будет выбрана рыба, атрибут name которой равняется Nemo. xmlns:xsl=’http://www.w3.org/1999/XSL/Transform’
Итак, XPath использует «путевые» выражения для выбора узлов xmlns:digg=”http://digg.com/docs/diggrss/”>
или групп узлов в XML-документе. Узлы выбираются, следуя указан- <xsl:output method=”html”/>
ному пути или шагам. <xsl:variable name=”title” select=”/rss/channel/title”/>
Для желающих получить более глубокие знания по этой теме, а Таблица стилей XSLT начинается с элемента <xsl:stylesheet> и
заодно и попрактиковаться, у Firefox есть замечательный модуль под содержит операторы, управляющие воспроизведением. Мы должны
названием XPather (http://xpath.alephzarro.com). Установив XPather, также включить атрибут version=”1.0”.
можно загрузить в Firefox XML-файл, щелкнуть в окне правой кнопкой
мыши и выбрать в контекстном меню пункт Show In XPather (Открыть в
XPather). Работая со сложными XML-файлами, вы сможете проверять
в XPather, соответствуют ли возвращаемые узлы вашим ожиданиям.
Попробуем реальные примеры. Загрузите www.digg.com/rss/
indexlinux_unix.xml в Firefox и откройте исходный код страницы. Таблица
Скопируйте его в файл на жестком диске, затем откройте этот локаль- стилей
ный файл в Firefox. Мы делаем это потому, что последние версии XSL
Firefox конвертируют RSS в HTML. Локальные файлы не конвертируют- Нечитаемая
ся, так что откроем окно XPather. Сперва попытаемся найти заголовок RSS-лента,
она же
RSS-канала. В окне ввода XPather наберите /rss/channel/title и нажмите
исходный
кнопку Eval (Вычислить). Если все прошло гладко, результатом будет XML-файл
следующее значение: «Digg/Linux/Unix». Теперь испробуем //item/title – Преобразователь
должны возвратиться 40 значений, отображающих заголовки всех ста- XSL: xsltproc Чудный
тей данной ленты. HTML на
Последний шаг перед началом действительно сложной работы – выходе
это установка xsltproc, инструмента командной строки для обработки
XML-документов с помощью таблиц XSLT. Это часть С-библиотеки XSLT
для Gnome, способная, впрочем, работать и в отрыве от этого рабочего
стола. Если ваш дистрибутив использует APT, просто наберите приве-
денную ниже строку; если нет – обратитесь за инструкциями об уста- (Рис. 1) Волшебник xsltproc – ну как он это делает?
SugarCRM: Как
ЧАСТЬ 2: Разбираясь с конфигурацией, Марк Бэйн покажет, как сломить упрямство
SugarCRM и не сломать приложение (окончательно).
Напомню, в прошлый раз мы загрузили архив со свежей верси-
ей SugarCRM (на сегодняшний день это 4.5.0h) с сайта программы и
распаковали его содержимое в корень web-сервера (или в каталог по
вашему вкусу), а потом заменили имя каталога SugarOSFull-4.5.0h на
более благозвучное.
Откройте окно терминала, перейдите (командой cd) в каталог с
SugarCRM и наберите ls. На экране появится содержимое директо-
рии: подкаталоги и файлы. В глаза сразу же бросается, что файлы
все написаны на PHP (удивляться нечему: на PHP написана и сама
SugarCRM). Но нам пока не до этого. Темы находятся в подкаталоге
themes, вот его содержимое:
bainm@hector:/www/lxf > ls themes
Awesome80s Links Sugar
BoldMove Love SugarClassic
Default Paradise SugarLite
Default Retro Sunset
FinalFrontier RipCurl VintageSugar
GoldenGate Shred WhiteSands
Вы уже поняли: в каждом из подкаталогов – файлы соответству-
ющей темы. Создадим еще одну.
И
так, вы уже установили SugarCRM на ваш чистенький сер- bainm@hector:/www/lxf/themes> ls lxf
вер или, на худой конец, ознакомились с демо-версией этой calendar-win2k-cold-1.css header.html menu.js
системы в Интернете (см. ссылку во врезке справа). Думаю, config.php header.php navigation.css
теперь вы согласитесь, что она вполне готова удовлетворить все cookie.js images style.css
потребности стандартного пользователя. footer.php layout_utils.php
Наш Однако вы-то, наверняка, нестандартный пользователь! И навер- Самый главный из них – файл config.php. Именно он дает системе
эксперт няка программа выглядит не так или говорит с вами на разных диа- SugarCRM доступ к остальным файлам темы. В config.php много чего
Марк Бэйн лектах. Да и вообще, хоть она и подходит для вашего бизнеса, но не понаписано, но нам интересны две следующие строки:
Свою первую
программу Марк
совсем. А раз так, поговорим сегодня о том, как настроить SugarCRM $theme_name = “Sugar Classic”;
написал еще для в соответствии с потребностями пользователя. $theme_description = “Classic Sugar theme”;
ZX81. Он много лет Мы их отредактируем – заменим название темы и ее описание:
работает с Unix и
Oracle, а также читает Смотреть и видеть $theme_name = “Linux Format”;
лекции и пишет Обратите внимание на выпадающий список с надписью «Тема» $theme_description = “Linux Format theme”;
книги. Его вторая (Theme) в нижней части экрана SugarCRM в вашем браузере. С его При следующем входе в систему вновь созданная тема Linux
книга, «Руководство
разработчика помощью можно менять внешний вид программы, выбирая одну Format появится в списке тем. Пока она ничем не отличается от Classic
SugarCRM» («The из тем: их довольно много, от стильной и профессиональной White SugarCRM, ведь мы изменили только имя. Пришла пора настоящих
SugarCRM Developer’s
Manual»), скоро
Sands до совершенно несуразной Awesome 80s (впрочем, это мое реформ!
выйдет из печати. личное мнение: бывают ведь и любители розового и зеленого текста
на черном фоне). Забраться в CSS
Теперь можно перелицевать SugarCRM. Выбор не слишком впечат- Теперь, когда мы создали новую тему и сообщили о ней программе,
ляет? Тогда создадим собственную тему. Не с нуля, конечно: возьмем можно придать ей индивидуальный стиль. Для этого нужно кое-что
одну из существующих и подправим ее. поменять в файле… ясное дело, style.css.
На DVD
это настроить
SugarCRM 4.5.1
Tutorial code
В нем (согласно его расширению – Сascading Style Sheet, кас- background-color: yellow;
кадная таблица стилей) находится таблица стилей, задающая цвета, Немного поэкспериментировав, вы добьетесь своего идеала.
шрифты и прочее. Наш урок посвящен не таблицам стилей, и CSS Можете и Awesome 80s привести в приличный вид. Однако ваши
как таковыми мы заниматься не будем: рассмотрим лишь небольшой пользователи больше заинтересованы в том, чтобы SugarCRM гово-
пример, а в остальном вы разберетесь сами. рила с ними на понятном им языке; и вам по силам им помочь.
Рассмотрим раздел, в котором определяется, как отображать
гиперссылки: Адаптироваться к бизнесу Скорая
a:link, a:visited { Взглянув на экран SugarCRM, вы приметите ряд вкладок. Некоторые помощь
color: #444444; из них пригодятся в любой организации: Home (Главная), Contacts
font-size: 11px; (Контакты), Notes (Заметки), Meetings (Встречи), Calendar (Календарь) Если SugarCRM у
text-decoration: underline; и Tasks (Задачи). Есть и другие вкладки, которые могут использовать- вас не установлена,
} ся торговыми организациями для учета товарооборота: Opportunities можете изучить
a:hover { (Возможности), Cases (Объекты) и Leads (Направления). демо-версию,
расположенную по
color: #666666; Хорошо, если внутри вашей организации используется та же адресу http://demo.
text-decoration: underline; терминология. А если нет? Приучать коллектив использовать стан- sugarondemand.
} дартные термины SugarCRM вместо тех, что они впитали с молоком com/sugarcrm_os/
Все это означает, что гиперссылки – как те, что вы уже видели, матери? Погодите смеяться: сам знаю, что это утопия. Переламывать index.php?action=Lo
gin&module=Users.
так и непосещенные – отображаются одним и тем же серым цветом, себя сотрудникам незачем, гораздо проще кое-что переделать в
причем при наведении курсора на ссылку оттенок серого меняется SugarCRM.
на более светлый; и все ссылки всегда подчеркнуты. Давайте внесем Представим себе фирму проката автомобилей. Вместо
некоторое разнообразие: добавим после строки text-decoration в раз- Направлений у них New business (Новый бизнес), вместо вкладки
деле a:hover такую строку: Возможности они используют Inquiries (Запросы), а вместо вкладки
background-color:yellow; /*highlight the link*/ Объекты – Bookings (Бронирования). На этом языке они изъяснялись
Чтобы увидеть результат этих изменений, не нужно входить в последние 20 лет, и будут продолжать изъясняться еще 20 лет. Уж
систему заново: просто обновите страничку. Теперь, при наведении лучше поменять названия вкладок!
курсора, фон гиперссылки меняется на желтый. К счастью, ничего сложного в этом нет – едва ли вы не сумеете
У тех, кто имел дело с таблицами стилей CSS, наверняка уже есть отредактировать пару PHP-скриптов, сейчас скажу каких. Но сначала
идеи по настройке внешнего вида темы на свой вкус. С остальными я знайте: лучше этого не делать! И вот почему: при установке новой
поделюсь парой советов. Чтобы все ссылки отображались заглавны- версии программы эти файлы могут быть перезаписаны, и вам при-
ми буквами, добавим строку в раздел a:link: дется вносить изменения заново. Так или иначе, файл перед вами:
text-transform: uppercase; include/language/en_us.lang.php. Найдите в нем раздел, содержащий
Может быть, вы не стремитесь к супер-эффектам, а ограничитесь moduleList’ =>
заменой основных цветов экрана. Тогда загляните в раздел body. Он array (
предоставляет немало возможностей – например, позволяет указать ‘Home’ => ‘Home’,
цвет фона страницы: ‘Dashboard’ => ‘Dashboard’,
‘Contacts’ => ‘Contacts’,
‘Accounts’ => ‘Accounts’,
‘Opportunities’ => ‘Opportunities’,
‘Cases’ => ‘Cases’,
‘Notes’ => ‘Notes’,
‘Calls’ => ‘Calls’,
‘Emails’ => ‘Emails’,
‘Meetings’ => ‘Meetings’,
‘Tasks’ => ‘Tasks’,
‘Calendar’ => ‘Calendar’,
‘Leads’ => ‘Leads’,
Этот массив представляет собой список вкладок. Как явствует из
его имени, вкладки в SugarCRM называются «модулями», поскольку
каждая реализуется отдельным модулем, но об этом чуть позже. Вы,
поди, недоумеваете: как изменить названия вкладок, если нельзя
редактировать файл, в котором они хранятся? Легко: создадим спе-
циальный файл, содержащий обновленные названия вкладок.
Обратите внимание на папку custom внутри каталога SugarCRM:
Тема White Sands выглядит вполне профессионально, но ее, как и в ней мы и займемся языковедением. Как вы уже сообразили, нам
другие темы, легко модифицировать. нужен файл custom/include/language/en_us.lang.php.
Я говорил вам, что этот урок – не про CSS; добавлю, что он и не $lead_title = $lead_single . ‘es’;
про PHP. Достаточно сказать, что создается двумерный массив, он
содержит названия вкладок, и в нем можно переименовывать суще- $mod_strings[‘LBL_BACKTOLEADS’] = ‘Back To ‘ . $lead_title;
ствующие вкладки и добавлять новые. Для переименования трех $mod_strings[‘LBL_DEFAULT_SUBPANEL_TITLE’] = $lead_title;
вышеупомянутых вкладок достаточно добавить в этот файл следу- $mod_strings[‘LBL_DUPLICATE’] = ‘Similar ‘ . $lead_title;
ющие строки: $mod_strings[‘LBL_LIST_MY_LEADS’] = ‘My ‘ . $lead_title;
$app_list_strings[‘moduleList’][‘Leads’] = ‘New Business’; $mod_strings[‘LBL_MODULE_NAME’] = $lead_title;
$app_list_strings[‘moduleList’][‘Opportunities’] = ‘Inquiries’; $mod_strings[‘LBL_MODULE_TITLE’] = $lead_title . ‘: Home’;
$app_list_strings[‘moduleList’][‘Cases’] = ‘Bookings’; $mod_strings[‘LBL_SELECT_CHECKED_BUTTON_LABEL’] = ‘Select
Осталось только сохранить его и обновить страничку в браузе- Checked ‘ . $lead_title;
ре. На месте трех старых вкладок появились новые – New Business, $mod_strings[‘LBL_SELECT_CHECKED_BUTTON_TITLE’] = ‘Select
Inquiries и Bookings. Checked ‘ . $lead_title;
Вроде неплохо, но откройте любую из этих вкладок – и увидите, $mod_strings[‘LNK_LEAD_LIST’] = $lead_title;
что содержимое-то осталось прежним. Например, на вкладке New $mod_strings[‘LBL_BUSINESSCARD’] = ‘Convert ‘ . $lead_single;
Business (бывшей Leads) остались ссылки ‘Create Lead’, ‘List Leads’ и $mod_strings[‘LBL_CONTACT_INFORMATION’] = $lead_single .
‘New Lead’. Тут ваши сотрудники, пожалуй, окончательно запутаются! ‘Information’;
Значит, работа по настройке не окончена. $mod_strings[‘LBL_CONTACT_NAME’] = $lead_single . ‘ Name:’;
Мы уже знаем, что названия вкладок для текущего языка хранятся $mod_strings[‘LBL_CONTACT_OPP_FORM_TITLE’] = $lead_single . ‘-
в файле include/language/en_us.lang.php, и изменить их можно через Opportunity:’;
файл custom/include/language/en_us.lang.php, прописав в нем новые $mod_strings[‘LBL_CONTACT’] = $lead_single . ‘:’;
названия вкладок. Аналогично, каждая вкладка-модуль тоже имеет $mod_strings[‘LBL_CONVERTLEAD_TITLE’] = ‘Convert ‘ .
собственный языковой файл. $lead_single . ‘ [Alt+V]’;
Скорая Вернемся в папку SugarCRM и найдем каталог modules. Именно в $mod_strings[‘LBL_CONVERTLEAD’] = ‘Convert ‘ . $lead_single;
помощь
нем хранятся модули: $mod_strings[‘LBL_LEAD_SOURCE_DESCRIPTION’] = $lead_single .
bainm@hector:/www/lxf> ls modules ‘Source Description:’;
Чтобы изменить
Accounts $mod_strings[‘LBL_LEAD_SOURCE’] = $lead_single . ‘ Source:’;
логотип SugarCRM
в левой части ACL $mod_strings[‘LBL_LIST_CONTACT_NAME’] = $lead_single . ‘Name’;
экрана, зайдите ACLActions $mod_strings[‘LBL_VIEW_FORM_TITLE’] = $lead_single . ‘View’;
в систему как ACLRoles $mod_strings[‘LBL_LIST_FORM_TITLE’] = $lead_single . ‘ List’;
администратор и Activities $mod_strings[‘LBL_LIST_LEAD_SOURCE_DESCRIPTION’] = $lead_
выберите пункт
… single . ‘ Source Description’;
System Settings
(Настройки систе- и т.д. Модуль Leads расположен в одноименном каталоге. Как и $mod_strings[‘LBL_LIST_LEAD_SOURCE’] = $lead_single . ‘Source’;
мы). Новое изоб- остальные модули, реализующие вкладки, этот модуль содержит свои $mod_strings[‘LBL_NEW_FORM_TITLE’] = ‘New ‘ . $lead_single;
ражение должно языковые настройки в папке language: $mod_strings[‘LBL_SEARCH_FORM_TITLE’] = $lead_single . ‘Search’;
быть размером
bainm@hector:/www/lxf> ls modules/Leads/language $mod_strings[‘LNK_NEW_LEAD’] = ‘Create ‘ . $lead_single;
212x40 пикселей и
иметь прозрачный en_us.help.DetailView.html en_us.help.index.html ?>
фон. en_us.help.EditView.html en_us.lang.php Сохраните этот файл и обновите текущую страницу в браузе-
Ну, вы поняли: файл en_us.lang.php содержит определения стро- ре. Но это еще не все. Нужно проверить, не содержат ли ссылок на
ковых констант для текущего языка. этот модуль остальные модули. Например, в панели Mass Update на
bainm@hector:/www/lxf> grep -i lead modules/Leads/language/ вкладке Opportunities (или Inquiries, если вы уже успели ее переиме-
en_us.lang.php| head -10 новать) остался текст ‘Lead Source:’. Беглый поиск в файле modules/
‘ERR_DELETE_RECORD’ => ‘en_us A record number must be specified Opportunities/language/en_us.lang.php выявит переменную, которую
to delete the lead.’, надо поместить в файл custom/modules/Opportunities/language/en_
‘LBL_BACKTOLEADS’ => ‘Back To Leads’, us.lang.php, чтобы поправить дело:
‘LBL_BUSINESSCARD’ => ‘Convert Lead’,
‘LBL_CONTACT_INFORMATION’ => ‘Lead Information’,
‘LBL_CONTACT_NAME’ => ‘Lead Name:’,
‘LBL_CONTACT_OPP_FORM_TITLE’ => ‘Lead-Opportunity:’,
‘LBL_CONTACT’ => ‘Lead:’,
‘LBL_CONVERTLEAD_BUTTON_KEY’ => ‘V’,
‘LBL_CONVERTLEAD_TITLE’ => ‘Convert Lead [Alt+V]’,
‘LBL_CONVERTLEAD’ => ‘Convert Lead’,
Как и основной файл языка системы, его редактировать не следует.
Есть даже строки, менять которые категорически не рекомендуется:
// НЕ ПОРТИТЕ ЭТИ СТРОКИ: ОНИ ЗАДАЮТ СООТВЕТСТВИЯ
‘db_last_name’ => ‘LBL_LIST_LAST_NAME’,
‘db_first_name’ => ‘LBL_LIST_FIRST_NAME’,
‘db_title’ => ‘LBL_LIST_TITLE’,
‘db_email1’ => ‘LBL_LIST_EMAIL_ADDRESS’,
‘db_account_name’ => ‘LBL_LIST_ACCOUNT_NAME’,
‘db_email2’ => ‘LBL_LIST_EMAIL_ADDRESS’,
//КОНЕЦ ЗАПРЕТНЫХ СТРОК
Снова создадим файл custom/modules/Leads/language/en_us.lang.
php с языковыми настройками.
<?php Победа! Не так уж сложно заставить вашу версию SugarCRM
$lead_single = ‘New Business’; говорить на одном языке с вашими пользователями.
bainm@hector:/www/lxf> grep “Lead Source:” modules/Opportunities/ правах в нижней части страницы. А в остальном – все ваше.
language/en_us.lang.php Полный текст лицензии можно найти на www.sugarcrm.
‘LBL_LEAD_SOURCE’ => ‘Lead Source:’, com/crm/SPL.
Таким образом, в файлe n_us.lang.php для Opportunities нужно На сегодня все. Надеюсь, я сумел показать, как легко настраива-
добавить следующую строку: ется SugarCRM, даже если ваши знания PHP минимальны. Итак, за
$mod_strings[‘LBL_LEAD_SOURCE’] = ‘New Business Source’; настройку! LXF
Конечно, вручную менять значения переменных, раскиданных по
разным файлам – не лучший способ, особенно если на презентации
вашего продукта вам вдруг заявят: «Мы тут прикинули – вместо ‘New
Business’ лучше написать ‘Fresh Business’».
Гораздо удобнее разместить все переменные в одном файле,
например, custom/include/lxf_variables.php, а затем включать его, где
понадобится. Ваши переменные могут выглядеть так:
<?php
$lead_single = ‘New Business’;
$lead_title = $lead_single . ‘es’;
?>
а в файле custom/modules/Opportunities/language/en_us.lang.php тогда
появится следующий фрагмент кода:
<?php
require_once(‘custom/ include/lxf_variables.php’);
$mod_strings[‘LBL_LEAD_SOURCE’] = $lead_single . ‘ Source’;
?>
Но я предупреждал: данный урок – не про PHP.
Mono: Создаем
При вашем знании Mono обычные текстовые программы писать уже скучно. Пол Хадсон
поможет разобраться с новым проектом, использующим графический интерфейс.
М
ы дошли всего до пятого урока, а мне уже не терпится воляет шагнуть далеко вперед. Другая причина, почему стоит сначала
показать вам магию GTK#... Вообще-то я бы и погодил с спроектировать интерфейс – вы сразу же увидите, будет ли ваш проект
показом, но столько читателей просили меня об этом – не неуклюж или невразумителен, и, в случае чего, заранее примете меры
игнорировать же народные массы! Надеюсь, вам понравились экспе- по редизайну интерфейса. Помните, что у лучших проектов интерфейс
рименты с Mono – ведь это очень весело. Но, по моему мнению, стоит пользователя разрабатывается очень тщательно – не зацикливайтесь
влезть в библиотеку GTK, как начнутся первые проблемы. Видите ли, исключительно на написании кода в надежде, что GUI сложится само
Наш GTK писали люди, не любившие принципы объектно-ориентированно- собой!
эксперт го программирования, но попытавшиеся реализовать их на С. Да еще Прежде чем приступать, полностью обновите версию Fedora, пото-
Пол Хадсон он безнадежно усложнен и почти непознаваем для новичка. Но вам му что Stetic – сравнительно молодой инструмент, и лучше использо-
Пол Хадсон полагает, повезло: я рядом! вать свежую версию MonoDevelop для минимизации числа возможных
что Mono – лучшая
На первых четырех уроках вы создали программы Hello World, отказов. Да почаще сохраняйте результаты, поскольку Stetic не страда-
вещь со времен
мультфильма Pinky утилиту для поиска файлов, RSS-агрегатор и простой интерфейс для ет излишней стабильностью.
and the Brain, и сейчас Beagle. На этом уроке, чтобы целиком сконцентрироваться на GTK, мы Итак, аккуратно выполните инструкции по работе в MonoDevelop,
поддерживает два возьмем готовый код из RSS-проекта и создадим графический RSS- приведенные на следующей странице и продолжите чтение на стр. 70.
проекта на основе агрегатор, который я назову Chomp. GTK не столько сложен, сколько
Mono на SourceForge.
муторен – если вы что-то не вполне поняли, вернитесь назад на пару
абзацев: нить рассуждений потерять очень легко.
Месяц назад Мы использовали библиотеки Beagle для супер-быстрой разработки утилиты поиска.
GTK-приложение
Часть 1 Создание интерфейса пользователя
Скорая Создание интерфейса позади, но для готового GUI еще кое-чего нехва- DateTime.MinValue, обозначающий «игнорировать дату».
помощь тает. Нужно сделать три вещи. Во-первых, назначить нормальные име- Вот код, который надо поместить в OnRowActivated:
на виджетам: пока что они называются button1, textview2 и т.д. Во-вто- TreeSelection select = tvFeeds.Selection;
Проверьте, что
рых, связать виджеты с полями: тогда мы сможем обращаться к ним TreeIter iter;
файл sitelist.txt со- из кода на C#. И в-третьих, изменить свойства виджетов, чтобы они TreeModel model;
держит адреса URL выглядели как надо и делали то, что мы хотим. select.GetSelected(out model, out iter);
лент, по одному Имя виджета – это просто одно из свойств, поэтому задачи 1 и 3 string val = (string)model.GetValue(iter, 0);
на строке, и что он
выполняются через панель Widget Properties, находящейся в правом txtFeed.Buffer.Clear();
находится там же,
где и файл chomp. нижнем углу окна MonoDevelop. Вы увидите кнопку Bind To Field в верху ReadFeed(val, DateTime.MinValue);
exe. Обычно это окна, которое только создали – я вам скажу, когда она понадобится. Первые пять строк иллюстрируют мои слова о занудстве GTK: таким
каталог bin/Debug Вот список требуемых изменений: манером мы извлекаем значения из компонента Tree View. Весьма запу-
или bin/Release, Нажмите на кнопку New на панели инструментов toolbar (не на самой танно, но зато годится для любого возможного способа использования
если вы сделали
релиз-версию.
панели!) и измените ее имя на btnNew. Tree View.
Измените имя кнопки Refresh на btnRefresh. Когда выбранное значение попадет в переменную val, мы очищаем
Измените имя кнопки Delete на btnDelete. буфер Text View и вызываем ReadFeed(), чтобы загрузить и отобразить
Измените имя Tree View на tvFeeds. Нажмите Bind To Field. RSS. Но давайте сначала разберемся с календарем. Для этого найдите
Снимите галочку с Show Day Names для Calendar (это его немного сигнал DaySelectedDoubleClick и назначьте ему обработчик DayClicked.
уменьшит). Нажмите Bind To Field. В режиме Source Code среды MonoDevelop должен появиться пустой
Измените имя Text View на txtFeed. Нажмите Bind To Field. Измените метод DayClicked(), который выглядит так:
Hight Request на 300, а Width Request на 400 (теперь Text View не будет protected virtual void DayClicked(object sender, System.
занимать весь экран). EventArgs e)
Измените имя кнопки под компонентом notebook на btnRefreshAll. {
Измените текст для страниц компонента notebook на By Feed для }
вкладки с Tree View и на By Date для вкладки с Calendar. Этот метод отлавливает двойные щелчки на календаре, а получить
выбранную дату из компонента Calendar очень просто.
Добавим реализацию Но не спешите хвалить GTK: вот я вам сейчас покажу, как перебрать
Вот и все – с интерфейсом пользователя покончено, можно сфоку- все элементы в Tree View. В DayClicked() надо поместить следующий
сироваться на реализации методов. Наберем кое-какой код прямо в код:
файле MainWindow.cs, а также установим обработчики сигналов для txtFeed.Buffer.Clear();
MainWindow.cs в Stetic. Сигналы – это внутренние GTK-сообщения, tvFeeds.Model.Foreach(FeedByDate);
которые посылаются, когда что-нибудь происходит: например, пользо- Здесь мы очищаем текстовый буфер для входящих лент, а затем
ватель нажимает кнопку или клавишу. По умолчанию, большая часть вызываем метод Foreach() модели данных Tree View. Метод FeedByDate()
сигналов ничего не делает, но мы можем на них подписаться, назна- (его я еще не показывал – не гоните коней!) вызывается для каждого
чив каждому обработчик с помощью Stetic – он даже создаст за нас элемента в Tree View. А так как метод FeedByDate() вызывается методом
базовый метод! Foreach(), он должен соответствовать конкретной функции-прототипу,
Прежде всего обработаем событие, возникающее, когда пользова- то есть принимать определенный список параметров. Иначе он рабо-
тель выделяет что-то в Tree View нашей программы. Этот компонент тать не будет.
будет использоваться для отображения списка RSS-лент, на которые Мы хотим, чтобы функция FeedByDate() читала каждую ленту, кото-
подписан пользователь, поэтому при выборе пользователем ленты из рую ей передают, затем посылала ее в ReadFeed() вместе с датой, опре-
списка Chomp надо скачать последнюю версию RSS-файла и отобра- деленной на компоненте Calendar. Это довольно просто:
зить его в Text View справа. Щелчки пользователя можно обработать, bool FeedByDate(TreeModel model, TreePath path, TreeIter iter)
отлавливая сигнал RowActivated – щелкните на Tree View, затем на {
Скорая панели Widget Properties перейдите на вкладку Signals. Найдите сигнал string url = (string)model.GetValue(iter, 0);
помощь
RowActivated и дважды щелкните там, где написано Click Here To Add ReadFeed(url, new DateTime(calendar.Year, calendar.Month + 1,
A New Handler. Назовите его OnRowActivated и нажмите Enter. Щелкнув calendar.Day));
GTK предусматри- на кнопке Source Code, расположенной ниже окна дизайна формы, вы return false;
вает масштабиро- увидите, что Stetic создал следующий метод: }
вание компонентов
интерфейса
protected virtual void OnRowActivated(object o, Gtk. Первая строка выцарапывает URL ленты из Tree View, после чего
при изменении RowActivatedArgs args) он передается методу ReadFeed() вместе с годом, месяцем и днем,
размера окна, { выбранными в календаре. Но вы заметили calendar.Month + 1? GTK
а также их сжатие } ведет отсчет месяцев с нуля. Зато дни и года он считает с 1. Я тоже не
и растяжение
Вроде неплохо, но тут вы и подошли к первому недостатку GTK. знаю, почему!
при переводе
надписей на другие А именно: получить данные из Tree View гораздо сложнее, чем вы Пару выпусков назад мы рассматривали код, необходимый для
языки, смене думаете! чтения RSS-лент. На сей раз мы его используем, но с небольшими
шрифта и других Chomp требуется работать с лентами двумя способами. Если мы изменениями:
параметров среды находимся на вкладке By Feed, то двойной щелчок на одной из лент Вывод будет происходить в текстовый буфер, а не в консоль.
выполнения. Вот
почему мы исполь-
в Tree View должен загрузить эту самую ленту. Если мы находимся GUID’ы кэшироваться не будут – мы хотим, чтобы Chomp загружала
зуем VBox и HBox, на вкладке By Date, при двойном щелчке на дате в календаре следует все записи каждой ленты, а не записи, которые мы не видели.
а не размещаем загрузить все ленты, но показать новости только за указанную дату. Если для времени указано DateTime.MinValue, имеется в виду «по
компоненты Чтобы как-то унифицировать наш код, создадим метод ReadFeed(), дате фильтровать не надо».
вручную.
который загружает URL, а затем фильтрует их по дате. При загруз- Иначе, получить дату публикации каждой новости и преобразовать
ке всех записей данной ленты мы передадим специальный аргумент ее в объект DateTime.
Финишная прямая
Первая версия Chomp почти завершена, но в ней кое-чего не хватает.
Двойной щелчок по лентам загружает все ленты. Двойной щелчок по
дате загружает все ленты и фильтрует записи по выбранной дате. Но в
какой момент мы загружаем ленты в программу? Ответ: а ни в какой!
Наш предыдущий XML-считыватель тоже загружал список лент,
Chomp 0.2
поэтому можно просто взять и модифицировать его для нашего интер- Версия Chomp на диске базируется на том, что Заполнить меню осмысленными действия-
фейса на GTK. А именно, давайте поместим каждый URL в Tree View, мы сделали, и позволяет пользователям вре- ми.
чтобы пользователи могли нажимать на них. Здесь опять проявится менно добавлять новые ленты, но вы можете Добавлять пользовательские ленты в файл
занудство GTK, поэтому возьмите себя в руки: сделать еще кое-что: sitelist.txt.
string[] sitelist; Заставить работать функцию удаления лен- Целью этого урока было научить вас исполь-
if (File.Exists(“sitelist.txt”)) { ты. зовать Stetic, и я думаю, мы справились непло-
sitelist = File.ReadAllLines(“sitelist.txt”); Кэшировать ленты и GUID, чтобы при отоб- хо. Дальнейшая работа будет в основном писа-
ражении они загружались из памяти, а не ска- ниной кода: обвешаем интерфейс всякими
} else {
чивались каждый раз из Сети. крутыми штуками. Почаще сохраняйте резуль-
sitelist = new string[0];
Реализовать поиск в кэшированных лентах. тат, и все будет в порядке – резвитесь!
} Добавить Refresh и RefreshAll.
// это значит, что мы хотим сохранить строку в строке Tree View, но в Поместить что-нибудь в строку состояния!
действительности нам нужен только URL!
dh_make: Сборка
Ubuntu набирает все большую популярность – почему бы не помочь ему, собрав пакет
с одним из недостающих приложений? Грэм Моррисон проведет мастер-класс
по дебианизации открытого ПО.
Б
лагодаря появлению Ubuntu, Deb-файл стал самым распростра-
ненным форматом двоичного пакета в Linux (если верить Google
Trends). Большинство дистрибутивов на базе Debian используют
Deb-пакеты, а не другие доморощенные форматы упаковки, и хотя мы
на данном уроке будем говорить в основном про Ubuntu, эта инфор-
мация в равной степени применима к прочим дистрибутивам на базе
Debian, или к любому другому дистрибутиву, располагающему соответ-
ствующими утилитами установки пакетов.
Просьбы о двоичных пакетах буквально засорили Интернет.
Пользователи, не имеющие опыта в сборке программного обеспече-
ния, отчаянно рвутся «наложить лапу» на последние версии полюбив-
шегося программного обеспечения. Создание и обмен собственными
пакетами – один из лучших видов вклада в сообщество. Приложение,
которое я выбрал в качестве примера, Ale – графический инструмент
для комбинирования изображений. Новая версия была выпущена в
январе, но так как разработчики Ubuntu намерены выпускать только
пакеты обновлений по безопасности, создание Deb-файла последнего
релиза будет отличным способом добавить новую функцию без муче-
ний по обновлению дистрибутива.
Процесс создания Deb-файла очень схож с созданием RPM и
страдает такими же проблемам – нахождением зависимостей вашего
пакета. К счастью, в отличие от RPM, существует хороший инструмент,
облегчающий создание собственного пакета.
Deb-пакетов
Часть 2: Создаем файл настройки
Установив все необходимое для создания Deb-файла, можете скачи-
вать исходный код выбранного приложения. Сперва лучше скомпи-
лировать и запустить приложение, чтобы удостовериться, что ничто
не повлияет на процесс сборки. Если все пройдет нормально, возвра-
щайтесь к исходному тексту. Следующий шаг состоит в использовании
команды dh_make, являющейся частью ранее установленного пакета
dh-make (дефис, а не знак подчеркивания).
Команда dh_make создаст в каталоге с исходным текстом програм-
мы подкаталог, в котором будут содержаться все файлы настройки,
которые понадобятся Dpkg для создания Deb-файла. Чтобы выполнить
работу, dh_make нужен как каталог, так и архив с исходными текстами
в определенном месте с именем определенного формата. Вам потре-
буется извлечь архив в каталог с названием имя пакета-номер версии –
где имя пакета отделено от номера версии дефисом. Для Ale 0.8.5,
например, каталог будет назван ale-0.8.5. Так уж вышло, что именно
этот формат используется большинством приложений (Deb’ами или
другими), включая Ale, поэтому есть шанс, что каталог будет иметь
верное имя по умолчанию.
Переименовав при необходимости каталог с исходным кодом, про-
верьте, что архив назван согласно тому же формату (т.е. ale-0.8.5.tar.
gz), и перейдите в каталог с исходным кодом. Для создания необходи-
мых файлов настройки наберите следующую команду и проверьте, что
параметр -f указывает на архив с исходными текстами: ные опции пытаются заполнить файлы настройки автоматически, в Перед генерацией
файлов настройки
dh_make -f ../ale-0.8.5.tar.gz зависимости от типа приложения или выбранного инструмента. Для
скрипт dh_make
Вам потребуется ответить на несколько вопросов. Первый – какой большинства приложений, скачанных из Сети, вы можете спокойно
задаст вам пару
тип пакета вы хотите создать: одиночный двоичный, множествен- выбрать опцию «одиночный двоичный» (Single Binary). Когда вы сдела- вопросов.
ный двоичный, библиотеку, модуль ядра или CDBS. Кроме CDBS, все ете выбор, dh_make выведет набор параметров, добытых им из вашей
остальное должно быть понятно. CDBS – это Common Debian Build системы, и попросит вас их подтвердить – впрочем, чисто из любез-
System [Общая система сборки Debian]; в этом случае создастся основ- ности: пути назад уже нет, и все, что вы можете сделать, это нажать
ной набор файлов настройки, который потребует значительного редак- Enter; после чего dh_make создаст все файлы настройки и поместит их
тирования, прежде чем вы сможете создать Deb-файл. Все осталь- в каталог debian.
В прошлом дистрибутив Ubuntu критиковали за всех уровней часто взывают о последних рели-
использование огромной библиотеки пакетов зах любимых программ в удобной «упаковке».
Debian без обеспечения обратной совместимос- Потратив немного времени на создание паке-
ти со своими пакетами. Но вы можете помочь та, вы сбережете время других людей. Только
восстановить баланс сил, собрав собственные представьте экономию электричества, если
пакеты, которые будут работать на любом дист- тысячи людей мигом установят ваш готовый
рибутиве. пакет и не будут собирать его сами!
Создание собственного Deb-пакета требует
кое-каких знаний. Но за год-другой работы с
Linux вы их накопите. Процесс сборки пакетов –
идеальное времяпрепровождение, если вы не
умеете программировать, но не боитесь компи- Почему бы не поучаствовать
лировать свое собственное ПО. Пользователи в фестивале Ubunty Debfest?
Альтернатива: CheckInstall
Есть более легкий способ создать Deb-файлы: использо- создаваемых во время компиляции. Чтобы добраться до
вать CheckInstall. Эта отличная утилита требует меньше тру- этой стадии, наберите ./configure, затем make в каталоге с
дов, чем dh_make, потому что не надо редактировать ника- исходным текстом вашего приложения. А вместо make
ких файлов настройки. Но за счет чего? Она не такая гиб- install наберите checkinstall.
кая, и будет работать только с более общим классом прило- Вам зададут пару вопросов (они служат той же цели, что
жений, которые используют Autoconf. и информация, содержащаяся в файле Control), включая
Установив CheckInstall с помощью менеджера пакетов путь к документации и описанию вашего пакета, и вы полу-
вашего дистрибутива, скачайте и распакуйте исходный код чите шанс отредактировать глобальные параметры, напри-
приложения – кандидата на «пакетирование». На самом мер, описание пакета и лицензию. После этого CheckInstall
деле, CheckInstall подключается на стадии make install сбор- создаст Deb-файл и поместит его в каталог с исходным тек-
ки вашего приложения, перехватывая контроль над процес- стом.
сом для получения списка зависимостей от библиотек, Пара простых вопросов, и CheckInstall
создаст Deb-файл автоматически.
Glade на новый
ЧАСТЬ 5 Описать интерфейс программы в XML и подгрузить его на лету? Совершенно необяза-
тельно покупать Visual Studio и устанавливать .NET 3.0 – Андрей Боровский покажет, как решить
задачу средствами Glade!
Е
сли бы великий художник лучше разбирался в компьютерах, он Разбираться, как вы уже поняли, мы будем на примере программы-
сумел бы найти в них гораздо больше недостатков. Чем зани- микрокалькулятора (Рис. 1).
маются большую часть времени настольные компьютеры? Они Как можно заметить, наш калькулятор довольно примитивен.
выполняют работу более примитивных устройств. Компьютер может Поддерживаются только операции сложения и вычитания, причем над
быть видеомагнитофоном, радиоприемником, будильником и, конечно, целыми числами. Отсутствует контроль переполнения при выполнении
конечно, пишущей машинкой. Ну а кроме всего прочего, любая опера- арифметических действий. При желании вы можете нарастить функ-
ционная система на любой платформе предлагает программу, выпол- циональность нашего микрокалькулятора сами – добавить поддержку
няющую функции простейшего микрокалькулятора. Непреложный чисел с плавающей точкой, тригонометрические функции, встроенный
факт – микрокалькулятор обязательно будет сэмулирован на любой язык программирования... Нет пределов совершенству. Мы же сосре-
системе, достаточно мощной доля того, чтобы его эмулировать. Нет, я, доточимся на программировании интерфейса калькулятора средства-
конечно, понимаю, что компьютерные проигрыватели, компьютерные ми GTK+, Glade и libglade.
будильники и компьютерные микрокалькуляторы полезны. Я и сам с Как это обычно бывает при работе со средствами визуального
удовольствием ими пользуюсь. Я лишь хочу сказать, что компьютеры программирования, проектирование программы начинается с пользо-
все еще по-настоящему не революционизировали нашу жизнь. Ну а в вательского интерфейса. В главном окне приложения мы размещаем
ожидании революции, после которой все будет не так, как было, мы, несколько контейнеров для более удобной упаковки элементов кальку-
уважаемый читатель, тоже напишем простейшую программу-калькуля- лятора – индикаторной панели и кнопок.
тор, и воспользуемся для этого, естественно, инструментарием GTK+. Свойству «Имя» объекта главного окна мы присваиваем значение
В предыдущей статье мы научились создавать проекты графичес- rootwnd. Это имя нам нужно запомнить, так как оно будет играть важ-
ких приложений с помощью Glade. Используя Glade 2.x, мы сгенери- ную роль при взаимодействии с библиотекой libglade. В верхней части
ровали не только описание интерфейса программы, но и заготовку ее главного окна расположено текстовое поле GtkEntry, которое будет слу-
исходного кода, включая вспомогательные функции и обработчики жить индикаторной панелью калькулятора. Кнопки калькулятора – это
событий. Сегодня мы рассмотрим другой способ работы с Glade. При объекты GtkButton. Вот, собственно, и все, других элементов управле-
новом подходе Glade используется исключительно для проектирова- ния наш виртуальный калькулятор (как и его «железный» собрат) не
ния интерфейса, а исходный код приложения пишется программистом предполагает.
с помощью других средств (по-видимому, этот способ работы станет Иерархию объектов-контейнеров и элементов управления, из кото-
единственно возможным в Glade 3.x). рых состоит калькулятор, проще (и полезнее) показать, нежели опи-
Описание интерфейса, созданное Glade в формате XML, и исход- сать. Для этого нужно всего лишь открыть окно «Дерево эл. управле-
ный код программы связываются между собой с помощью функций ния» среды Glade (Рис. 2). Перед вами появится древовидный список
(Рис. 1) Программа- библиотеки libglade. Все это немного похоже на систему XMLGUI, реа- всех визуальных элементов.
микрокалькулятор. лизованную в KDE. Разница заключается в том, что в XMLGUI внешний Объекты-контейнеры являются внутренними узлами дерева, а эле-
XML-документ описывает лишь отдельные менты управления – его «листьями». Если мы теперь сохраним проект
элементы интерфейса программы, тогда как Glade под именем calculator, на диске появится файл calculator.glade.
при работе с libglade все описание интерфей- Именно этот файл содержит описание спроектированного нами гра-
са загружается из XML-файла [Это не означа- фического интерфейса программы. Если мы откроем файл calculator.
ет, что в Qt/KDE нет технологии, аналогичной glade в текстовом редакторе, то увидим примерно следующее:
libglade. Интерфейсы, созданные в Qt Designer, <?xml version=”1.0” standalone=”no”?> <!--*- mode: xml -*-->
также можно загружать и обрабатывать на <!DOCTYPE glade-interface SYSTEM “http://glade.gnome.org/glade-
лету, – прим. ред.]. 2.0.dtd”>
Приступим к <glade-interface>
проектированию
Для того, чтобы понять, как работает биб- <widget class=”GtkWindow” id=”rootwnd”>
лиотека libglade, необходимо сначала разо- <property name=”visible”>True</property>
браться, что представляет собой проект Glade. <property name=”title” translatable=”yes”>Калькулятор</property>
Месяц назад Мы изучали визуальное программирование в духе старой школы Glade 2.x.
...
лад На DVD
Код примеров ста
тьи
Ведь на этапе выполнения программы система libglade не знает имен API Glade XML. Такое делегирование может быть полезно при интегра-
функций (а знает только их адреса) и не может сопоставить функцию с ции API Glade XML с другими языками программирования.
именем обработчика. Для решения этой проблемы мы должны явным В примере из предыдущей статьи в нашем распоряжении имелась
образом указать, что функция on_operation_button_minus_clicked(), удобная функция lookup_widget(), которая позволяла найти указатель
определенная нами в файле calculator-2.c, является «тем самым» на объект визуального элемента по его имени. Эта функция не явля-
обработчиком on_operation_button_minus_clicked(). Мы делаем это ется частью API GTK+, система генерации кода Glade 2.x сама создала
с помощью функции glade_xml_signal_connect(). Первым парамет- ее для нас. Рад сообщить вам, что при работе с библиотекой libglade
ром glade_xml_signal_connect() должен быть указатель на структуру у нас есть возможность использовать похожую функцию glade_xml_
GladeXML. Вторым параметром функции является имя обработчика, get_widget(). Эта функция возвращает указатель на визуальный объект,
заданное при описании интерфейса в среде Glade, а третьим парамет- заданный своим именем. Первым аргументом glade_xml_get_widget()
ром – адрес определенной нами функции-обработчика. Из сказанного должен быть указатель на структуру GladeXML, вторым аргументом –
следует, между прочим, что функция-обработчик сигнала не обязана имя искомого объекта. Конечно, для того, чтобы мы могли воспользо-
иметь то же имя, что и обработчик, назначенный сигналу в файле опи- ваться функцией glade_xml_get_widget() в обработчике сигнала, пере-
сания интерфейса. Важно лишь установить соответствие между двумя менная-указатель на структуру GladeXML должна быть в области види-
именами (точнее, между именем обработчика и адресом функции). мости процедуры-обработчика. Эту проблему можно решить, объявив
Таким образом, в функцию main() файла calculator-2.c нужно добавить переменную-указатель на GladeXML как статическую. Этот метод, одна-
следующие строки, в которых устанавливается соответствие между ко, неудобен, если обработчик сигнала расположен не в том же файле,
именами обработчиков, заданными в файле calculator.glade, и функци- что и функция main(). В общем случае указатель на структуру GladeXML
ями-обработчиками, определенными в программе: можно получить другим способом. Если у нас есть указатель на один из
glade_xml_signal_connect(xml, “gtk_main_quit”, G_CALLBACK(gtk_main_ визуальных элементов, образующих интерфейс (а в обработчике сиг-
quit)); нала как минимум один такой указатель есть всегда), мы можем вос-
glade_xml_signal_connect(xml, “on_numeric_button_clicked”, G_ пользоваться функцией glade_get_widget_tree(). Аргументом функции
CALLBACK(on_numeric_button_clicked)); glade_get_widget_tree() должен быть указатель на объект, представля-
glade_xml_signal_connect(xml, “on_operation_button_plus_clicked”, ющий элемент интерфейса, а ее возвращаемым значением будет указа-
G_CALLBACK(on_operation_button_plus_clicked)); тель на структуру GladeXML. Вот как, например, можно получить доступ
glade_xml_signal_connect(xml, “on_operation_button_minus_clicked”, к этой структуре в некотором обработчике on_button_clicked():
G_CALLBACK(on_operation_button_minus_clicked)); void on_button_clicked(GtkButton *button)
glade_xml_signal_connect(xml, “on_operation_button_equal_clicked”, {
G_CALLBACK(on_operation_button_equal_clicked)); GladeXML *xml = glade_get_widget_tree(GTK_WIDGET(button));
glade_xml_signal_connect(xml, “on_operation_button_cancel_clicked”, ...
G_CALLBACK(on_operation_button_cancel_clicked)); }
Теперь вы можете скомпилировать программу и убедиться, что все
кнопки (включая кнопку закрытия окна, завершающую приложение) Материал, рассмотренный в этой, равно как и в четырех предыду-
работают как надо. щих статьях, не охватывает всего многообразия программирования
Помимо функции glade_xml_signal_connect(), библиотека libglade GTK+. Но, я надеюсь, что эти статьи создали нечто вроде стартовой
экспортирует функцию glade_xml_signal_connect_data(). От glade_xml_ площадки, которая поможет вам вознестись к настоящим высотам,
signal_connect() эта функция отличается тем, что позволяет указать если программирование GTK+ вас заинтересует. Мы же перейдем к
объект, который будет передаваться обработчику сигнала в качестве освоению премудростей программирования для основанной на GTK+
дополнительного параметра. В нашей программе мы определили пере- среды GNOME. LXF
дачу объекта entry1 обработчикам сигналов еще на этапе визуального
программирования. Однако может случиться так, что объект, который
следует передать обработчику сигнала, станет известен только во вре-
мя выполнения программы. В этой ситуации функция glade_xml_signal_
connect_data() окажется более полезной.
API libglade предоставляет нам еще несколько функций, связан-
ных с обработкой сигналов. Функция glade_xml_signal_autoconnect()
сканирует файл *.glade в поисках сигналов и функций-обработчи-
ков, автоматически связывая сигналы с назначенными им обработ-
чиками, если обработчики являются функциями API GTK+ (например,
эта функция может связать сигнал destroy и функцию-обработчик
gtk_main_quit). Неудобство, связанное с использованием glade_xml_
signal_autoconnect() (простите за невольный каламбур) заключается
в том, что эта функция будет выдавать предупреждающее сообщение
всякий раз, когда ей встретится функция-обработчик, не являющаяся
частью API GTK+. Определенный интерес представляют также функ-
ции glade_xml_signal_connect_full() и glade_xml_signal_autoconnect_full
(). Первым параметром каждой из этих функций служит, как обычно,
указатель на структуру GladeXML. Вторым параметром обеих функций
должен быть указатель на определенную программистом функцию
GladeXMLConnectFunc(), которая будет осуществлять связывание сиг-
налов с обработчиками. Таким образом, связывание сигналов и обра-
ботчиков как бы делегируется другой функции, не являющейся частью
Через месяц До свидания, GTK+, здравствуй, GNOME! Что бы там ни говорил Линус...
ncurses:
ЧАСТЬ 11 Оконный интерфейс не обязательно должен быть графическим! Андрей Боровский
покажет, как создавать удобные приложения, работающие прямо в консоли.
Введение в ncurses
Основными понятиями в ncurses являются экран (screen), окно (window)
и подокно (subwindow). Экраном называется все пространство, на кото-
ром ncurses может выводить данные. С точки зрения ncurses, экран –
это матрица ячеек, в которые можно выводить символы. Если мони-
тор работает в текстовом режиме, экран ncurses совпадает с экраном
монитора. Если терминал эмулируется графической программой, экра-
ном является рабочая область окна этой программы. Окном ncurses
называется прямоугольная часть экрана, для которой определены осо-
В
прошлый раз мы научились управлять текстовой консолью с бые параметры вывода. В частности, размеры окна влияют на перенос
помощью интерфейса termios. Однако, для того, чтобы пред- и прокрутку выводимых строк. В каком-то смысле окно можно назвать
ставить текстовый экран во всем великолепии, возможнос- «экраном в экране». В процессе инициализации ncurses автоматически
тей termios недостаточно. Сегодня мы поговорим о дополнительном создается окно stdscr, размеры которого совпадают с размерами экра-
средстве управления терминалом – библиотеке ncurses. Она и вправду на. Кроме структуры stdscr по умолчанию создается еще одна струк-
заставляет терминал переливаться всеми цветами радуги (вот почему тура – curscr. Если окно stdscr предназначено в ncurses для стандарт-
во всей серии статей из серии Unix API, эта – единственная, в которой ного вывода данных, то curscr содержит копию данных, отражающую
вы найдете снимки экранов). текущее состояние экрана. Кода вы записываете данные в stdscr (или
Когда-то давным-давно графические терминалы были редкостью, другое окно), эти данные не отображаются на экране монитора авто-
а пользователи текстовых терминалов хотели работать с интерфейса- матически. Для того, чтобы сделать новый вывод видимым, вы долж-
ми, похожими на графические (и, самое главное, использовать новое ны вызывать специальную функцию обновления экрана (refresh() или
удобное средство ввода – мышь). Специально для того, чтобы пре- wrefresh()). Эта функция сравнивает содержимое окна stdscr и curscr и
доставить интерфейс «покажи и щелкни» пользователям текстовых обновляет экран на основе различий между ними, а затем вносит изме-
терминалов, была разработана библиотека curses (ее название проис- нения в структуру curscr. Благодаря наличию окна curscr, приложению
ходит от ее важнейшей функции – управления курсором, а вовсе не от ncurses не требуется «помнить» весь свой предыдущий вывод и пере-
проклятия, которое она накладывает на программистов). Изначально рисовывать его всякий раз, когда в этом возникает потребность. Этим
библиотека curses создавалась для BSD UNIX. В Linux используется программы ncurses отличаются от графических программ. В старину,
открытый (распространяющийся на условиях MIT License) клон curses – когда терминалы связывались с компьютерами через модемы, исполь-
библиотека ncurses (new curses). Приложений, использующих ncurses зование двух окон давало дополнительное преимущество в скорости
в современной Linux-системе не так уж и много. Среди наиболее попу- обмена данными, ведь программе нужно было передавать на терминал
лярных проектов на базе ncurses можно назвать Midnight Commander, не копию экрана целиком, а только последние изменения.
текстовый Web-браузер lynx, программу для чтения новостей tin и Помимо стандартных окон ncurses, вы можете создавать собствен-
почтовый клиент mutt. Сравнительно невысокая популярность ncurses ные окна размера, меньшего stdscr. Ваша программа может работать с
объясняется тем, что ниша ее применения сократилась. Большинство несколькими окнами одновременно, выполняя вывод в каждое из них.
современных компьютеров поддерживают растровую графику, так что Кроме окон (windows), программы ncurses могут создавать подокна
если вам нужно реализовать интерфейс «покажи и щелкни», вы, как (subwindows), поведение которых несколько отличается от поведения
правило, можете воспользоваться более совершенными графически- стандартных окон.
ми средствами. Выбирать ncurses как платформу для нового проекта Важнейшей особенностью ncurses является возможность указать про-
следует, только если, с одной стороны, вашей программе совершенно извольную позицию курсора для вывода (и ввода) данных. Позиция кур-
сора отсчитывается от левого верхнего угла текущего окна. Ячейка в верх- resizeterm() старается сохранить внешний вид и порядок работы при-
нем левом углу имеет координаты (0, 0). При работе с функциями ncurses ложения в окне терминала с новыми размерами, но это ей удается не
важно помнить, что первой координатой является номер строки (что соот- всегда, с чем мы и столкнемся ниже. Необходимые для resizeterm()
ветствует y в терминах графического программирования), а второй коор- значения размеров окна мы получаем с помощью специального вызо-
динатой – номер столбца (соответствует x в графическом режиме). ва ioctl(). При этом первым параметром функции ioctl() должен быть
В случае ошибки функции ncurses обычно возвращают константу дескриптор файла устройства, представляющего терминал. Вторым
ERR. Если функция не должна возвращать какое-то информативное параметром ioctl() должна быть константа TIOCGWINSZ, а треть-
значение (как, например, функция getch()), в случае успешного выпол- им – адрес структуры struct winsize. Структура winsize, определенная в
нения она возвращает константу OK. файле <sys/ioctl.h>, включает в себя поля ws_row и ws_col, в которых
возвращается число строк и столбцов окна терминала.
Первая программа ncurses Перейдем теперь к функции main() программы cursed:
Написание первой программы ncurses (она называется cursed, исход- int main(int argc, char ** argv)
ный текст вы найдете на DVD в файле cursed.c) мы начнем с перечис- {
ления заголовочных файлов. initscr();
#include <termios.h> signal(SIGWINCH, sig_winch);
#include <sys/ioctl.h> noecho();
#include <signal.h> curs_set(0);
#include <stdlib.h> attron(A_BOLD);
#include <curses.h> move(5, 15);
Помимо уже знакомых нам заголовочных файлов, в программу printw(“Hello, brave new curses world!\n”);
включен curses.h, который содержит объявления функций, констант и attroff(A_BOLD);
структур данных, экспортируемых библиотекой ncurses. attron(A_BLINK);
Прежде чем переходить к программированию ncurses, следует рас- move(7, 16);
смотреть решение одной задачи, с которой сталкиваются все разработ- printw(“Press any key to continue...”);
чики, использующие эту библиотеку. Речь идет об изменении размеров refresh();
окна терминала (под размерами окна в данном случае понимается чис- getch();
ло строк и столбцов). Пользователи настоящих текстовых терминалов endwin();
редко переключали их режимы, и готовы были мириться с последстви- exit(EXIT_SUCCESS);
ями своих действий. В наши дни, когда экраном терминала зачастую }
служит окно графической программы, пользователь вправе ожидать, Работа с ncurses начинается с вызова функции initscr(). Эта функ-
что при изменении размеров окна работа консольной программы не ции инициализирует структуры данных ncurses и переводит терминал в
нарушится, а ее интерфейс не развалится. нужный режим. По окончании работы с ncurses следует вызвать функ-
Когда размеры окна терминала меняются, выполняющаяся в нем цию endwin(), которая восстанавливает то состояние, в котором терми-
программа получает сигнал SIGWINCH. Это одновременно и хорошо, нал находился до инициализации ncurses.
и плохо. Хорошо – потому, что терминал информирует программу После вызова initscr() мы устанавливаем обработчик сигнал
об изменении своих размеров, плохо – потому, что сигналы имеют SIGWINCH. Устанавливать обработчик SIGWINCH следует именно пос-
особенность вмешиваться в работу программы. Например, если вы ле инициализации ncurses, поскольку в нем используется функция
напишете программу, использующую ncurses, и не позаботитесь об resizeterm(), предполагающая, что библиотека ncurses уже инициали-
обработке сигнала SIGWINCH, при изменении размеров окна термина- зирована. Функция noecho() отключает отображение символов, вводи-
ла ваша программа может неожиданно завершиться, оставив терминал мых с клавиатуры. Функция cur_set() управляет видимостью курсора.
в ненормальном состоянии. Давайте посмотрим, как обрабатывается Если вызвать эту функцию с параметром 0, курсор станет невидимым,
сигнал SIGWINCH в программе cursed. вызов же функции с ненулевым параметром снова «включит» его.
void sig_winch(int signo) Функция attron() позволяет указать некоторые дополнительные
{ атрибуты выводимого текста. Ей можно передать одну или несколько
struct winsize size; констант, обозначающих атрибуты (в последнем случае их следует объ-
ioctl(fileno(stdout), TIOCGWINSZ, (char *) &size); единить с помощью операции «|»). Например, атрибут A_UNDERLINE
resizeterm(size.ws_row, size.ws_col); включает подчеркивание текста, атрибут A_REVERSE меняет местами
} цвет фона и текста, атрибут A_BLINK делает текст мигающим, атрибут
Функция sig_winch() представляет собой обработчик сигнала A_DIM снижает яркость текста по сравнению с нормальной, атрибут A_
SIGWINCH. Следует отметить, что изменение размеров экрана во вре- BOLD делает текст жирным в монохромном режиме и управляет ярко-
мя работы программы ncurses представляет собой довольно нетри- стью цвета в цветном режиме работы монитора. Специальный атрибут
виальную задачу и стандартного рецепта, описывающего, что нужно COLOR_PAIR() применяется для установки цветов фона и текста. На
делать, не существует. Разработчики ncurses, как могли, постарались man-странице, посвященной функции attron(), вы найдете описания и
упростить решение этой задачи для программистов, введя функцию других атрибутов. Все перечисленные выше атрибуты оказывают воз-
resizeterm(). Функцию resizeterm() следует вызывать сразу после действие только на тот текст, который выводится после их установки.
изменения размеров окна терминала. Аргументами функции должны Сбросить атрибуты можно с помощью функции attroff(). Так же,
быть новые размеры экрана, заданные в строках и столбцах. Функция как и в случае с attron(), функции attroff() можно передать несколько
Чем же подокно отличается от обычного окна? Окно и его подокно украшенное рамкой, но тут возникает одна сложность. Поскольку
разделяют массив, в котором хранятся символы и их атрибуты. Новое символы рамки сами находятся внутри окна, символы текста могут
подокно наследует все атрибуты своего родителя. Эти атрибуты затем затереть их в процессе вывода. Мы решаем эту проблему с помощью
могут быть изменены, что не повлияет на атрибуты родительского создания подокна subwnd внутри окна wnd и вывода текста в это под-
окна. окно. Поскольку окно subwnd по размерам меньше, чем окно wnd, сим-
Мы займемся созданием окон в программе cursedwindows (файл волы рамки не будут затерты.
cursedwindows.c на диске). На всякий случай заявляю, что у меня нет ни Теперь мы можем распечатать текст – делается это с помощью
малейшего желания оскорбить Microsoft. Список заголовочных фай- функции wprintw(), которой передается идентификатор окна subwnd.
лов и обработчик сигнала SIGWINCH у программы cursedwindows такие Для того, чтобы символы, напечатаны в окне, стали видимыми, мы
же, как и у программы cursed, так что в листинге мы их пропустим и должны воспользоваться функцией wrefresh(). Мы вызываем ее толь-
рассмотрим только функцию main(). ко для окна wnd, поскольку именно оно содержит символьный массив
int main(int argc, char ** argv) и окно subwnd. Обратите внимание, что символы строки “Hello, brave
{ new curses world!”, которую мы печатаем в окне с помощью функции
WINDOW * wnd; wprintw(), переносятся при достижении границы окна (Рис. 2). После
WINDOW * subwnd; завершения работы с окнами следует удалить структуры wnd и subwnd,
initscr(); воспользовавшись функциями delwin(). Весь вывод, выполненный в
signal(SIGWINCH, sig_winch); окне wnd, останется на экране (точнее, в окне curscr) до тех пор, пока
curs_set(0); вы не перезапишете его другим выводом.
refresh();
wnd = newwin(6, 18, 2, 4);
box(wnd, ‘|’, ‘-’);
subwnd = derwin(wnd, 4, 16, 1, 1);
wprintw(subwnd, “Hello, brave new curses world!\n”);
wrefresh(wnd);
delwin(subwnd);
delwin(wnd);
move(9, 0);
printw(“Press any key to continue...”);
refresh();
getch();
endwin();
exit(EXIT_SUCCESS);
}
В функции main() мы, как и прежде, инициализируем ncurses с
помощью функции initscr() и устанавливаем обработчик SIGWINCH.
Далее, как и в предыдущем примере, мы делаем курсор невидимым.
После этого мы обновлем экран с помощью refresh(), а затем – созда-
ем окно wnd с помощью функции newwin(). Оно насчитывает 6 строк и Рис. 2. Вывод текста в окне и за его пределами.
18 столбцов, а его верхний левый угол находится в ячейке (2, 4) окна
stdscr. Функция box(), которую мы вызываем далее, позволяет создать
рамку вдоль границы окна. Ее аргументы: идентификатор окна и сим- На этом наше знакомство с ncurses не заканчивается. В следующей
волы, используемые, соответственно, для рисования вертикальной статье мы рассмотрим управление цветом и ввод данных средствами
и горизонтальной границы. Теперь было бы логично вывести в окно, ncurses. LXF
Через месяц Мы реализуем поддержку мыши и заставим наше приложение сиять всеми цветами радуги.
Сессии
ЧАСТЬ 3 Каждый линуксоид знает, что система уровня предприятия должна обеспечивать
разграничение доступа. Антон Черноусов расскажет, что может предложить здесь Java EE.
В
прошлый раз вы, под чутким руководством Александра, разо- только между запросом и ответом, в то время как объект HttpSession
брались с JSP и переписали «Телефонную книгу» с учетом этой обеспечивает средства для хранения и доступа к данным пользователя
технологии. Сегодня мы двинемся дальше и поговорим об авто- на протяжении всего периода работы с приложением.
ризации, сессиях, фильтрах и использовании разделяемых объектов в
web-приложениях.
На DVD
Код примеров ста
тьи
и фильтры
Фактически, объект session – это таблица Hashtable, в которой мож- <tr><td>Логин: </td><td><input type=”text” name=”login”/>
но хранить любое количество пар типа «ключ – объект». При исполь- </td></tr>
зовании сессионного объекта данные приложения не отправляются <tr><td>Пароль: </td><td>
пользователю так, как это происходит с cookie. Сессионный объект <input type=”password” name=”password”/></td>
хранится на сервере персонально для каждого клиента. Сервер раз- </tr>
личает сессии с помощью маркера, который передается пользователю. <tr><td colspan=”2” align=”center”>
Маркер хранится в cookies браузера до конца сессии, что накладывает <input type=”submit” value=”Авторизоваться”/></td>
некоторые ограничения на клиентское рабочее место (использование </tr>
cookies для вашего приложения должно быть разрешено). В этом мож- </table>
но легко убедиться, просмотрев сохраненные cookies в вашем люби- </form>
мом браузере. Легко видеть, что в форме имеется два поля ввода и одна кнопка.
Заметим также, что поле для ввода пароля имеет тип password, так что
вместо нажатых клавиш в окне браузера будут отображаться до боли
знакомые «звездочки» (‘*’).
Теперь внесем изменения в AddressBookServlet: расширим ветвле-
ние в методе handle следующим образом:
}else if (“/auth”.equals(target)) {
handleAuth(aRequest, aResponse);
}
Дело за малым – осталось написать метод handleAuth(aRequest,
aResponse), который и будет обрабатывать данные, введенные в фор-
му, то есть производить авторизацию пользователя.
private void handleAuth(HttpServletRequest aRequest,
HttpServletResponse aResponse) throws IOException,
ServletException {
String login = aRequest.getParameter(“login”);
String password = aRequest.getParameter(“password”);
if ((login != null) && (password != null)) {
// here is auth process
if ((login.equals(“user”)) && (password.equals(“userPass”))) {
(Рис. 2) Маркер сессии. Герои романа «Лабиринт отражений» //here is success auth
пытались повесить друг другу маркер под видом невинного поцелуя, HttpSession session = aRequest.getSession(true);
а наше web-приложение действует еще хитрее и незаметнее. session.setAttribute(“auth”,aRequest.getParameter(“login”));
aRequest.setAttribute(“message”, null);
Авторизация outputPage(“index.jsp”, aRequest, aResponse);
Логично предположить, что чаще всего сессии применяются там, где } else {
необходимо авторизовать пользователя и предоставлять доступ к //here is failed auth
определенным функциям приложения только при наличии соответ- aRequest.setAttribute(“message”,
ствующих привилегий. Давайте обратимся к нашей телефонной книге: “Неверный логин или пароль, повторите ввод
ее просмотр разрешен всем желающим, а для добавления нового теле- данных”);
фона, редактирования и удаления записи необходима авторизация. outputPage(“auth.jsp”, aRequest, aResponse);
Давайте создадим JSP-страницу auth.jsp, которая будет запраши- }
вать у пользователя имя и пароль. Сохраните файл в каталоге jsps и } else {
введите в него следующий текст: //here is no data to auth
<span style=”color: green;”><%=request.getAttribute(“message”)%> aRequest.setAttribute(“message”,
</span> “Логин и пароль не могут быть пустыми, повторите
<form action=”<%=request.getContextPath()%>/auth” method=”post”> ввод данных”);
<table> outputPage(“auth.jsp”, aRequest, aResponse);
<filter-name>AccessFilterName</filter-name> <description>
<url-pattern>/jsps/*</url-pattern> That is description
</filter-mapping> </description>
В секции filter мы объявляем, что имени фильтра AccessFilterName <param-name>
соответствует класс AccessFilter, а в секции filter-mapping указываем, sameParamName
на какие объекты распространяется зона действия фильтра. В дан- </param-name>
ном случае фильтр работает по шаблону, то есть используется для <param-value>
всех адресов типа /jsps/*, где вместо звездочки может быть все, что sameParamValue
угодно. </param-value>
Теперь давайте создадим класс AuthFilter, который будет ограничи- </init-param>
вать доступ к некоторым действиям для неавторизованных пользовате- Секцию init-param необходимо создавать отдельно для каждого
лей. Метод doFilter будет выглядеть следующим образом: параметра, при этом она должна быть размещена внутри секции filter.
public void doFilter(ServletRequest aRequest, Обязательными являются подсекции param-name и param-value, кото-
ServletResponse aResponse, FilterChain filterChain) рые задают название параметра и его значение, соответственно.
throws IOException, ServletException {
HttpSession session = ((HttpServletRequest) aRequest). Доступ к общим объектам
getSession(); Наше приложение уже вполне работоспособно, однако рано или позд-
String name = (String) session.getAttribute(“auth”); но нам захочется расширить его функциональность, и, возможно, для
if (name != null) { этого потребуется уже не один сервлет, а несколько, причем все они
filterChain.doFilter(aRequest, aResponse); будут обращаться к некому общему ресурсу (информации или объек-
} else { там). Например, вы можете захотеть узнать, сколько пользователей
aRequest.setAttribute(“action”, “auth”); в данный момент авторизовано в приложении или получить из двух
RequestDispatcher dispatcher = aRequest.getRequestDispatcher(“/ несвязанных сервлетов доступ к информации, хранящейся в одном
auth”); файле.
dispatcher.forward(aRequest, aResponse); Подобно сессионным объектам, существует и контекстный объ-
} ект, который обеспечивает доступ к общим ресурсам из разных мест
} приложения. Использование контекстного объекта очень похоже на
Если в текущей сессии не задан атрибут auth, пользователь будет использование сессионного, и получить его экземпляр в сервлете мож-
отправлен на страничку авторизации. Добавим в дескриптор разверты- но следующим образом:
вания следующие строки: ServletContext sc = this.getServletContext();
<filter> Этот объект обладает следующими методами:
<filter-name>AuthEditFilter</filter-name> getAttribute(String) – получение общего объекта по ключу;
<filter-class>AuthFilter</filter-class> getAttributeNames() – получение списка ключей общих объектов;
</filter> setAttribute(String, Object) – добавление нового объекта и соответ-
<filter-mapping> ствующего ему ключа;
<filter-name>AuthEditFilter</filter-name> removeAttribute(String) – удаление объекта, соответствующего ключу,
<url-pattern>/edit</url-pattern> из списка общедоступных объектов;
</filter-mapping> Несмотря на то, что в этой статье контекстному объекту уделено
<filter> немного внимания, он является одним из мощнейших инструментов
<filter-name>AuthAddFilter</filter-name> для обеспечения работы web-приложения.
<filter-class>AuthFilter</filter-class>
</filter> Вместо заключения
<filter-mapping> Сегодня мы поговорили о сессионных и контекстных объектах, узнали
<filter-name>AuthAddFilter</filter-name> как создавать и использовать фильтры, рассмотрели простейший при-
<url-pattern>/add</url-pattern> мер авторизации пользователя (конечно, надо сделать оговорку, что
</filter-mapping> было представлено весьма небезопасное и не промышленное решение,
<filter> хотя для простого офисного приложения его может быть и достаточно).
<filter-name>AuthRemFilter</filter-name> Наконец, мы модифицировали наше web-приложение «Телефонная
<filter-class>AuthFilter</filter-class> книга», применяя практически все изученные возможности.
</filter> В следующий раз мы рассмотрим паттерн MVC и его вариацию для
<filter-mapping> создания web-приложений: Model2. LXF
<filter-name>AuthRemFilter</filter-name>
<url-pattern>/remove</url-pattern>
</filter-mapping>
Обратите внимание, что хотя наш фильтр реализован одним-един-
ственным классом, он может быть доступен по нескольким именам (в
нашем случае: AuthEditFilter, AuthAddFilter, AuthRemFilter) и работать
для разных URL.
Чтобы закрыть тему развертывания фильтров, рассмотрим пример
настройки параметров фильтра в дескрипторе:
<init-param>
Через месяц Что общего у SmallTalk и Java, кроме объектов? Мы займемся изучением паттерна
Model-View-Controller..
Дополнительные
ЧАСТЬ 6 В заключительной статье цикла Евгений Балдин хочет остановиться на моментах,
с которыми стоит разобраться поглубже.
pg_dump/pg_restore
Просто копировать физические файлы базы данных – не самый луч-
ший способ резервирования, потому что на время выполнения этой
операции придется как минимум остановить сервер. Для создания кон-
систентной копии базы данных проще всего воспользоваться програм-
мой pg_dump (man pg_dump), которая работает как обычный клиент:
> pg_dump -Fc «база данных» > «файл резервной копии»
Опция -Fc определяет формат резервной копии: custom. В этом
случае сохраняются не только SQL-структуры, но и большие объекты
(lobj).
Для восстановления базы данных из ее резервной копии использу-
ется зеркальная процедура pg_restore (man pg_restore):
> pg_restore -d «новая база данных» «файл резервной копии»
Используя pg_restore с опцией -l, можно получить список всех таб-
лиц, находящихся в резервной копии, а с помощью опции -L – указать
список таблиц, которые надо восстановить. Иногда требуется лишь
частичное восстановление данных, например, для отката одной кон-
кретной таблицы.
Так как pg_dump и pg_restore сконструированы с прицелом на рабо-
ту в конвейере, то их удобно использовать в скриптах. Резервная копия
представляет собой, в основном, ASCII-файл, поэтому при формиро-
вании резервной копии/восстановления имеет смысл предусмотреть
фильтр для сжатия данных, например, bzip2.
Устреми свои мысли на высшее Я, свободный от вожде- При восстановлении больших объектов (lobj) очень важно, чтобы
ления и себялюбия, исцелившись от душевной горячки, pg_restore отработал без ошибок от начала и до конца. Причина этого
сражайтесь, Арджуна! в том, что при восстановлении больших объектов создается времен-
ная таблица, где хранится перекодировка из старой нумерации OIDов в
Зеркало. Понедельник начинается в субботу. новую. Если в процессе восстановления произошел сбой, эта таблица
теряется и ссылки на большие объекты в таблицах не обновляются. В
В
се рассказать и предусмотреть невозможно, хотя бы по той результате большие объекты загружаются в базу данных, но ссылки на
простой причине, что составляя планы, мы изменяем реаль- них отсутствуют. Это один из примеров того, как нестандартные рас-
ность. Измененная реальность, в свою очередь, требует изме- ширения могут приводить к неудобствам.
ненных планов, и так – до бесконечности. Исходя из этой теории, мы
не будем пытаться рассказать о PostgreSQL все, не откажем себе в Резервирование «нон-стоп»
удовольствии раскрыть напоследок некоторые из его особенностей pg_dump может создавать резервную копию, не особо мешая работе
чуть более подробно. базы данных, так как это всего-навсего еще один клиент. В классичес-
ком подходе к резервированию есть одна неприятность: информация
между моментом снятия копии и крахом базы данных теряется. Иногда
Резервное копирование это терпимо, так как подобное случается редко, но есть случаи, когда
Если уж вы завели хранилище информации, то его надо беречь. При потерянные запросы означают потерянные деньги в полном смысле
этом навязчивая боязнь порчи данных, переходящая в манию, являет- этого слова. И здесь на помощь приходит журналирование транзак-
ся обязательной чертой характера хорошего администратора базы дан- ций – своего рода находка для параноика.
ных. Только в этом случае можно подстелить соломки в нужном месте, Организация непрерывного резервирования – довольно сложная
до того как поскользнуться. То, что при этом весь дом будет покрыт процедура, и для ее реализации следует обратиться к разделу доку-
высушенной травой – обычные издержки производства. ментации, который так и называется «On-line backup and point-in-time
Месяц назад Настройка PostgreSQL под ваши нужды и сервер 1С:Предприятия на базе открытого ПО.
главы
recovery (PITR)». В нем представлено пошаговое руководство к дей- глобальный инструмент для решения многих проблем, но и сложности
ствию длиной чуть меньше пяти тысяч слов, что составляет около пят- в управлении таким кластером также будет предостаточно.
надцати страниц формата A4. Для репликации PostgreSQL существует несколько решений, как
Основная идея заключается в архивировании журнала транзакций. закрытых1, так и свободных. Самой популярной свободной системой
Формально, все действия PostgreSQL можно представить как последо- репликации является Slony I (http://slony.info/). Slony I поддерживает
вательные записи в этом журнале. На диске журнал транзакций раз- репликацию master/slaves2.
бивается на независимые файлы или сегменты (segment files), размер Список возможных преимуществ, которые можно получить, нала-
которых по умолчанию равен 16 МБ. PostgreSQL можно настроить на див репликацию, таков:
копирование сегментов в место для хранения резервных копий (пара- Организуются дополнительные копии данных, которые никогда не
метр archive_command в postgresql.conf). При этом нет необходимости бывают лишними (мы помним о благотворном влиянии паранойи).
хранить абсолютно все записи, достаточно оставлять только те, кото- Разгружается центральный сервер: теперь он может заниматься
рые были сделаны после резервирования. Для локализации момен- действительно важными делами, не отвлекаясь на мелочи. Например,
та времени, которому соответствует та или иная резервная копия, процедура полного резервирования довольно ресурсоемкая. Вполне
используются хранимые процедуры pg_start_backup/pg_stop_backup. можно поручить это задание одному из вспомогательных серверов.
При восстановлении можно вернуть не только последнее состояние Аналогично, можно организовать сервер, который имеет очень длин-
базы данных, но и то, в котором она была на указанный момент вре- ный журнал транзакций, позволяющий (в случае необходимости) отка-
мени (естественно, все ограничено объемом сохраненных сегментов). титься максимально далеко в прошлое.
Таким образом, при желании можно организовать своеобразное путе- Можно перенести вспомогательный сервер поближе к клиенту, что-
шествие в прошлое (point-in-time recovery). бы сэкономить время, которое уходит на подключение к базе данных,
Дополнительные сервера позволяют-таки получить доступ к данным,
даже если связь с центральным сервером полностью потеряна.
Переезд на новую версию Вспомогательные сервера вовсе не обязаны получать обновле-
PostgreSQL ния непосредственно с главного сервера (Master to multiple cascades
Slaves). Любой сервер, который получает данные из надежного источ-
По умолчанию, при выполнении pg_dump на выходе получаются SQL- ника, может быть сконфигурирован так, чтобы рассылать их далее по
команды, так что для восстановления можно воспользоваться psql, цепочке. Данная особенность позволяет легко масштабировать всю
указав файл резервной копии с помощью ключа -f. Таким образом, систему. Развернуть и запустить репликацию можно не останавливая
структура резервной копии зависит только от версии SQL, которую под- центральный сервер.
держивает данный сервер. Это позволяет достаточно легко обновлять Для привязки к событиям INSERT/DELETE/UPDATE используются
PostgreSQL, даже в случае, когда представление данных внутри самого триггеры PostgreSQL. Выполнение действий реализуется через хра-
сервера изменяется. нимые процедуры. Слежением за процессом репликации занимается
Переезд с версии на версию гарантированно можно выполнить в системный демон slon – он должен быть запущен на каждом из узлов
четыре этапа: кластера. Администрирование осуществляется посредством командно-
1 сделать резервную копию с помощью pg_dumpall; го процессора slonik.
2 остановить старый сервер; Административная утилита slonik реализована как программа,
3 запустить новый сервер; ориентированная на выполнение в командной строке и в скрип-
4 восстановить базу данных с помощью pg_restore или psql. тах. Синтаксис команд, воспринимаемых slonik’ом, напоминает SQL.
Если меняется только минорная версия PostgreSQL (последняя Команды следует передавать на STDIN. Перед выполнением запроса
цифра в номере), то в принципе можно упустить этап (1) и (4). Но в slonik анализирует синтаксис и в случае наличия проблем выдает сооб-
любом случае не следует забывать о фобии потери данных. В принци- щение об ошибке.
пе, можно исключить пункты (2) и (3), воспользовавшись конвейером: Подробно о настройке кластера можно прочитать в документации
> pg_dump -h host1 «БД» | psql -h host2 «БД» к пакету. На русском языке доступно пошаговое руководство, напи-
host1 и host2 – компьютеры, «с которого» и «на который» переез- санное Евгением Кузиным, правда, возможно уже устаревшее: http://
жает база данных, соответственно. www.kuzin.net/work/sloniki-privet.html. В случае возникновения про-
блем для начала следует поискать решение в стандартном FAQ: http://
linuxfinances.info/info/faq.html.
Репликация слонов
База данных подразумевает централизацию: все складывается в одно 1
Например, http://www.commandprompt.com/products/mammothreplicator – Mammoth
место. Это может стать проблемой. Некоторые проблемы не решаются, PostgreSQL + Replication.
2
Имя Slony-II зарезервировано для версии, которая будет поддерживать режим multi-master.
но если требуется всего-на всего ускорить доступ на чтение, то репли- На текущий момент перспективы этой версии довольно туманны. Организовать надежное
решение для требуемого режима очень сложно в силу большого количества принципиальных
кация базы данных может оказаться спасением. Побочным эффектом проблем: http://www.dbspecialists.com/presentations/mm_replication.html. Для использования в
репликации является повышение надежности, так как число консистен- режиме multi-master PostgreSQL поддерживает отложенные транзакции (two-phase commit).
Two-phase commit реализуются с помощью SQL-запросов PREPARE TRANSACTION и COMMIT
тных копий данных увеличивается. Создание кластера баз данных – это PREPARED.
Визитка LXF:
Сайт LOR (http://www.linux.org.
ru) существенно отличается
от других популярных
форумов и новостных сайтов,
хотя бы потому, что написан
он не на PHP, а в качестве
хранилища использует
PostgreSQL. Об этом и пойдет
разговор с создателем LOR
Максимом Валянским.
ЕМБ: На текущий момент используется PostgreSQL 8.0. Эта версия вышла примерно 2 года
назад, а LOR существует уже свыше десяти лет. Что заставило перейти на «восьмерку»?
МВ: Мы стараемся почаще обновлять PostgreSQL. Как показывает опыт, каждая последу-
ющая версия PostgreSQL как минимум не хуже предыдущей, а зачастую оказывается, что
некоторые наши запросы начинают выполняться быстрее из-за того, что разработчики учли
подобные им при разработки новой версии. В целом PostgreSQL радует тем, что релизы
качественно тестируются, и нам пока не приходилось «откатываться» на предыдущую вер-
сию из-за каких-то мешающих нам работать ошибок.
ЕМБ: Я понимаю, что «глас толпы» – это еще то указание к действию, но все равно хотелось
бы спросить. На странице http://www.linux.org.ru/view-vote.jsp?vote=174 проводился опрос:
«LOR FAQ — Нужен ли он в том виде, в котором существует сейчас?» С большим отрывом
лидирует «Нет, лучше wiki на l.o.r». Если wiki будет, то на каком движке и как это будет соот-
носиться с PostgreSQL?
МВ: Мне бы хотелось, чтобы движок был написан в виде Java-сервлета и использовал
PostgreSQL, для того, чтобы его можно было лучше интегрировать с основным сайтом,
однако я пока не исследовал имеющиеся движки.
ЕМБ: Кстати, почему именно Java? Подавляющее число форумных, новостных и wiki-сай-
тов сделаны на PHP. Тоже потому, что было интересно?
МВ: Да. Изначально сайт был разработан на PHP, потом мне стало интересно изучить
Java.
Готовим
ЧАСТЬ 8 Эффектная презентация может привести к чему угодно – от докторской
степени по орнитологии до головной боли в зале. Евгений Балдин расскажет, как
добиться желаемого эффекта средствами LaTeX.
Существует три разновидности людей: Класс seminar похож на slides и лишь чуть-чуть более современен
те, кто видит; те, кто видит, когда им показывают; (1993 г.), но не в пример лучше документирован (файл sem-user.pdf) и
кроме стандартного окружения slide имеет простейший набор команд
и те, кто не видит.
для создания рамок.
Леонардо да Винчи
В общем, если вам нужно по-быстрому сготовить презентацию из
Хочется показать свою крутизну? Подкупи слушателей. Хочется донес- уже имеющегося текста, и все что вы хотите – это просто продемонс-
ти свою идею? Сделай нормальную презентацию. трировать идею, классы slide и seminar окажутся весьма кстати.
При этом вовсе не нужен аляповатый фон, мультипликация при
смене слайдов, но необходим разборчивый текст и картинки к месту. beamer
Вполне можно ограничься «прозрачками» и стандартным «оверхэдом». Время шло, компьютеры матерели, появились проекторы и захотелось
Если слайд требует от аудитории размышления, то на него следует не чего-то разноцветного. Так появилось новое поколение презентацион-
пожалеть как минимум пяти минут. В противном случае все ваши уси- ных классов.
лия будут напрасными Имея это в виду, давайте попробуем разобрать- С помощью пакета beamer в принципе можно создавать «прозрач-
ся, что может LaTeX в сфере создания презентаций. ки», как это делается посредством slides, но основное его предназначе-
ние – электронная презентация. Пакету чуть более трёх лет, но он очень
slides активно развивается и на сегодня это, пожалуй, лучший выбор для
Динозавр среди классов LaTeX, специализирующихся на презентаци- создания презентаций в LaTeX. Его автор, Тиль Тантау [Till Tantau], ока-
ях. Идея очень проста: в качестве класса документа выбирается slides, зался очень восприимчивым к предложениям со стороны сообщества.
в результате базовый размер шрифта автоматически увеличивается. У beamer есть масса стандартных стилей, исчерпывающее описание на
Это позволяет прочитать стандартный текст на экране и избавиться от более чем двухстах страницах (beameruserguide.pdf) и официальный
одного из смертных грехов докладчика – желания уместить слишком сайт: http://sourceforge.net/projects/latex-beamer.
много информации на одной страничке. Опция класса landscape уста- beamer можно использовать как с pdflatex, так и со связкой latex +
навливает альбомную ориентацию для страницы по умолчанию. Сами dvips + ps2pdf. При желании можно даже использовать beamer в связке
слайды создаются с помощью окружения slide. Вот, собственно, и всё. с LyX. TeX Live включает в себя beamer по умолчанию. Для установки на
системах Debian следует выполнить команду:
> sudo apt-get install latex-beamer
После этого в начале преамбулы можно выбрать класс beamer,
примерно так:
\documentclass[hyperref={unicode=true}]{beamer}
\usepackage[koi8-r]{inputenc}
По умолчанию, класс beamer загружает пакет hyperref. Если в доку-
менте планируется использовать этот пакет с установками, отличными
от стандартных, то их следует передать в качестве необязательного
параметра команды выбора класса. Если текст представлен в кодиров-
ке UTF-8, это также необходимо указать при загрузке beamer:
\documentclass[utf8]{beamer}
slides – это просто. \usepackage[utf8]{inputenc}
Теперь можно выбрать тему для презентации и определить заголо-
\documentclass[a4paper,landscape]{slides} вок для титульного листа. Единицей представления для beamer являет-
… ся окружение frame:
\begin{document} % выбор темы
\begin{slide} \usetheme{Madrid}
\begin{center} \useoutertheme{shadow}
\Large Идея обработки \title{«Заголовок»}
\end{center} \date{«Дата или место проведения»}
… \author{«Автор»}
\end{slide} \begin{document}
\end{document} % титульная страница
презентации
Немного о PDF
За прошедшие годы Microsoft PowerPoint (PPT) стал де-факто стандартом для пред- шом экране размер шрифта нужно значительно увеличить. Это эффективно увеличивает
ставления презентаций. Сегодня его потихоньку начинают теснить OpenDocument разрешение до сравнимого с разрешением лазерного принтера, для которого и оптими-
Presentation (ODP) и другие форматы на основе XML. LaTeX напрямую не поддержива- зированы наиболее популярные векторные шрифты Computer Modern (пакет cm-super).
ет ни те, ни другие, зато позволяет легко сохранить созданные вами слайды в форма- Для отображения на экране ни в коем случае не следует использовать растровые
те PDF. PDF – Portable Document Format – открытый платформенно-независимый фор- шрифты в формате Type3. Обязательно нужно установить шрифты cm-super, заведо-
мат для описания документов, созданный компанией Adobe Systems, Inc. ещё в 1993 мо присутствующие в TeX Live.
году. В январе 2007 года началась процедура ратификации PDF как стандарта ISO. В Если вдруг по какой-то причине PDF потребуется преобразовать в PostScript, лучше
2006 году была опубликована версия стандарта под номером 1.7. Файл в формате PDF всего воспользоваться утилитой pdftops из пакета xpdf:
может представлять из себя комбинацию векторной графики, текста и растровых > pdftops [-eps] «pdf-файл»
изображений (фотографий, снимков экрана и тому подобного). В стандарте PDF пре- Если необходимо получить картинку в формате EPS, следует использовать ключ
дусмотрена возможность создания гиперссылок, заполняемых форм и интерактивных -eps.
вставок на JavaScript. Начиная с версии 1.6, декларируется возможность описания
трехмерных интерактивных документов. Что бы это ни означало, звучит заманчиво, но Переносимость
к сожалению, использовать эти возможности пока рано. Adobe Reader (ранее Acrobat Reader) и Ghostscript есть везде (если этой парочки где-то
С точки зрения формата для представления презентации, PDF удовлетворяет всем еще нет, то она легко может там появиться). Adobe Reader предоставляется всем жела-
необходимым условиям, таким как: ющим самой Adobe Systems. Как следствие, в смысле поддержки всех расширений
Простота создания. Это сила качественных открытых форматов – рано или поздно формата PDF эта программа «впереди планеты всей». Поэтому презентацию, скорее
их начинают поддерживать все, кому не лень. всего, придётся показывать с помощью неё.
Переносимость. Программу для просмотра PDF можно найти буквально везде. Одной из раздражающих особенностей Adobe Reader, мешающей использовать его
Элементы интерактивности. Документ может представляет из себя не только при работе над документом, является отсутствие возможность перезагрузить изменён-
плоскую последовательность страниц. ный файл. Эту проблему можно частично решить с помощью сторонних программ
pdfopen и pdfclose, включенных в дистрибутив TeX Live:
Простота создания > pdfclose --file «файл.pdf»
Допустим, что PostScript-файл презентации уже был получен тем или иным способом. # обновляем «файл.pdf»
С помощью ghostscript, а точнее – скрипта ps2pdf (man ps2pdf) из него легко можно > pdfopen --file «файл.pdf»
получить нормальный PDF: Ghostscript и его программа просмотра не менее вездесущи. Ghostscript отображает
> ps2pdf «файл.ps» «файл.pdf» PDF как обычный «плоский» документ, то есть об интерактивных эффектах можно забыть.
Получить PDF можно и напрямую из исходных текстов – с помощью программы Зато проблем с обновлением текста нет: нажал «.» (точку) и картинка обновилась.
pdflatex. Ее основное отличие от LaTeX как раз и состоит в том, что на выходе получа- Просмотрщик PDF-документов xpdf (http://www.foolabs.com/xpdf/) доступен только
ется не DVI, а полноценный PDF. При использовании pdflatex следует учитывать, что для систем с X Window. Начиная с xpdf 3.02, программа поддерживает структуру PDF
графика должна быть представлена либо в виде PDF (вектор), либо PNG/JPEG (растр). вплоть до версии 1.7. xpdf используется как «движок» и для других программ просмот-
pdflatex не умеет обрабатывать EPS-файлы, за исключением картинок, созданных при ра, например, KPDF. Обновить документ можно с помощью клавиши R. Он очень удо-
помощи MetaPost. бен при просмотре в процессе подготовке документа.
В PDF можно внедрять векторные шрифты Type1. Это позволяет отображать готовые
документы, независимо от набора шрифтов, установленных в системе. Отображение на Интерактивность
экране, особенно при низких разрешениях, зависит исключительно от качества внедрён- Зависит исключительно от стиля, который используется для подготовки PDF.
ных шрифтов. Парадокс качества: чем хуже разрешение, тем больший объём работы Присутствует весь простейший джентльменский набор: гиперссылки, различные виды
надо проделать с векторным шрифтом, чтобы он выглядел приемлемо. К счастью, в слу- переходов со слайда на слайд и анимация. Есть и ограниченная возможность демонс-
чае презентаций это не является проблемой, так для повышения читабельности на боль- трировать клипы и внедрять в презентацию звук.
ные темы. По состоянию на начало 2007 года в beamer существовали Здесь мы растягиваем слайд на страницу A4 в альбомной ориента- Представление
следующие именные темы: AnnArbor, Antibes, Bergen, Berkeley, Berlin, ции с 5-миллиметровым отступом от краёв. Если необходимо распеча- программного кода
Boadilla, CambridgeUS, Copenhagen, Darmstadt, Dresden, Frankfurt, тать по два слайда на странице, можно поступить так: (тема Hannover).
Goettingen, Hannover, Ilmenau, JuanLesPins, Luebeck, Madrid, Malmoe, \pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
Marburg, Montpellier, PaloAlto, Pittsburgh, Rochester, Singapore, Szeged
и Warsaw. Мультимедиа
Цветовые темы – палитра презентации. Для выбора темы использу- Пакет beamer включает стилевой файл multimedia. Загрузив
ется команда \usecolortheme. Можно выбирать из следующего набора его, можно включить в презентацию клип или звуковое
палитр: albatross, beaver, beetle, crane, dolphin, dove, fly, lily, orchid, rose, сопровождение, воспользовавшись командами \movie
seagull, seahorse, sidebartab, structure, whale и wolverine. и \sound. К сожалению, пока эта возможность поддержи-
Шрифтовые темы – выбор подмножества шрифтов. Для выбора вается только Adobe Reader в сборке для Windows и MacOS.
темы используется команда \usefonttheme. Существуют следующие Поддержка мультимедиа включена в стандарт PDF, поэтому
шрифтовые темы: professionalfonts, serif, structurebold, structureitalicserif её рано или поздно научится воспроизводить xpdf, даже если
и structuresmallcapsserif. Adobe System «не почешется». Подробности об использо-
Текстовые и структурные декорации – темы, определяющие как вании этих команд можно посмотреть в пользовательской
выглядят перечисления, теоремы и выделения. Для выбора темы документации.
используется команда \useinnertheme. Доступны следующие варианты Наконец, в пакете beamer предусмотрена возможность
декораций: circles, inmargin, rectangles, rounded. создания анимации на основе созданных слайдов. Команда
Внешние декорации – темы, определяющие вид заголовков и обрам- \animate<«список оверлеев»>
ления слайда. Для выбора темы используется команда \useoutertheme. позволяет автоматически проигрывать последовательность
В вашем распоряжении – следующие типы обрамлений: infolines, кадров. Для того чтобы эта функция заработала, необходимо
miniframes, shadow, sidebar, smoothbars, smoothtree, split и tree. раскрыть окно Adobe Reader на весь экран.
Кроме этого, можно создать свою собственную тему и назвать её в
честь родного города или страны. Подробности о том, как это сделать, Правила хорошей
следует искать в документации к пакету. презентации
Создание презентации – это очень тяжёлое занятие, так что
Ускорение компиляции не следует жалеть о потраченных на наведение блеска мину-
При подготовке презентации при выборе класса можно использовать тах. Готовя презентацию, не следует также забывать об эмпи-
опцию draft – это немного ускорит компиляцию. Можно также рически выведенных правилах:
указать, какие именно слайды следует компилировать (это похоже на Один слайд требует не меньше одной минуты;
\includeonly): Один слайд «со смыслом» требует не менее пяти минут;
\includeonlyframes{ex1,ex3} Времени всегда не хватает;
\frame[label=ex1] Не следует «пихать» в презентацию больше слайдов, чем
{Этот слайд будет включён при компиляции. } позволяет время. Перебор по времени только раздражает
\begin{frame}[label=ex2] слушателей;
Аналогично ex2. Каждый слайд должен иметь свой заголовок (\frametitle);
\end{frame} В один слайд можно поместить около 20-40 слов, но заве-
\frame{А вот этого слайда не будет.} домо не больше 80;
Команда \againframe и метки позволяют повторно выводить уже име- Полезно использовать block, theorem, proof и example.
ющиеся слайды: Эти окружения структурируют текст и помогают выделять
%ex1 будет выведен ещё раз основные мысли;
\againframe{ex1} Для разных аудиторий правила могут отличаться. LXF
Печать слайдов
На самом деле, размер слайдов составляет всего 128x98 мм, то есть Примеры
большие буквы получаются просто уменьшением размера листа бума- разных тем
ги. Для печати на листе формата A4 проще всего установить соответ- beamer – малая
ствующий параметр в Adobe Reader. Как вариант, чтобы всё гарантиро- часть от того,
ванно печаталось нормально, можно воспользоваться стилевым фай- что есть.
лом pdfpages из пакета pgf:
\usepackage{pgfpages}
\pgfpagesuselayout{resize to}[a4paper,border shrink=5mm,landscape]
Создаем
ЧАСТЬ 4 До завершения нашей первой сцены осталось совсем чуть-чуть – нужно просто
добавить качественную анимацию и освещение. Андрей Прахов научит ходить даже пингвина!
Для создания арматуры воспользуемся пунктом меню Add ->
Armature, доступном по клавише Space (пробел). Перед этим перейди-
те в окно Front View и в свободной зоне справа от пингвина установите
курсор на уровне шеи объекта. При этом создается начальная косточка,
которая по умолчанию является предком всего скелета. Этот объект
состоит из основания (самой кости) и шарниров. Именно шарниры
обеспечивают связь и взаимодействие с другими костями. Для созда-
ния следующего звена нажмите E. Таким способом можно выстроить
необходимую вам конструкцию.
Как и любой другой объект в Blender, Armature подчиняется общим
правилам манипуляции. Вы можете перемещать, масштабировать
любую из частей арматуры, вращать, экструдировать и т.д. Попробуйте
уцепиться за какой-либо из шарниров и потянуть. Заметили, что вся
конструкция, так или иначе, приходит в движение?
Будучи объектом, арматура имеет и свои функции, которые вызы-
ваются по клавише F9. Обратите внимание на следующие опции – они
пригодятся нам в дальнейшем (см. Рис. 1):
1
В
от мы с вами и добрались до заключительной части уроков
Blender для начинающих. На этот раз нам предстоит покорить
вершину 3D графики – анимацию персонажа. Недаром счита-
ется, что если ты сумеешь заставить естественно двигаться «живой»
объект, то уже близок к ступеньке мастерства. Помимо работы со ске-
летом, мы поговорим о правильном освещении и добавим некоторые
атрибуты для завершенности нашего детища. Опять-таки, советую
запастись не только терпением, но и старыми выпусками LXF с пре-
дыдущими уроками.
Для работы нам понадобится либо специально подготовленный
файл с диска LXF (less4_begin.blend), либо вы можете открыть соб-
ственный проект, над которым работали в последний раз, и немного Editing Options (опции редактирования):
модернизировать его. X-Axis Mirror Как известно, скелет любого «живого» объекта симмет-
В первую очередь необходимо расчистить поле деятельности. ричен. Было бы накладно создавать арматуру, одинаковую для правой
Перенесите все лишние объекты, кроме пингвина, в любой удобный и левой половины. Эта функция позволяет зеркально отражать созда-
для вас слой. Саму модельку расположите в первом слое. На послед- ваемую конструкцию.
нем уроке для удобства размещения детали объекта были сгруппирова- X-Ray Режим «рентгена». Кости внутри объекта становятся видимы-
ны. На данном этапе нам это не нужно, так что выделите модель и раз- ми, что очень удобно при анимировании.
группируйте ее (Object -> Group -> Remove from All Groups). Отметьте Auto IK Программа пытается просчитать инверсную кинематику
туловище, нажмите F9 и в закладке Modifiers нажмите кнопку Apply. арматуры в автоматическом режиме. Это не всегда приводит к положи-
Это означает, что действие, задаваемое модификатором, окончательно тельным результатам, но для обкатки конструкции весьма полезно.
применяется к объекту и изменению уже не подлежит. Осталось только
объединить модель в общий mesh-объект (Ctrl+J). Display Options (опции отображения):
Анимация персонажа начинается с создания для него скелета. По Это группа параметров, влияющих на отображение объекта на экране.
аналогии с живыми организмами, арматура объекта состоит из сово- Octahedron, Stick, B-Bone, Envelope – форма костей.
купности соединенных между собой костей, призванных обеспечить Draw Axes – визуализация осей подобъектов.
«естественную» анимацию. Затем с помощью специальных инструмен- Draw Names. Каждое звено в арматуре имеет свое уникальное имя,
тов, созданный скелет «вживляется» в модель объекта, настраиваются генерируемое программой или пользователем. Эта функция отобража-
места сгибов, добавляются управляющие рычаги. ет на экране имена, присвоенные элементам конструкции.
скелет На DVD
Blender 0.43
Начальный и конечн
вариант проекта
Финальный ролик
ый
2 3
8
Проделайте ту же самую операцию и для ik_leg.R. Для настройки
обратной кинематики перейдите в режим Pose Mode и выделите leg.
L. Теперь в закладке Constrains будет доступна кнопка Add Constraint,
используемая для указания контроллера. Выберите из списка IK Solver.
Обратите внимание, что выделенный объект изменил свой цвет с сине-
го на оранжевый. При правильной настройке контроллера он поменяет
свой цвет на более яркий. Введите в поле OB: значение «Armature», а
в BO: – ik_leg.L. Теперь становится понятным мое требование давать
звучные имена объектам. К сожалению, в этой версии редактор не
поддерживает выбор из выпадающего меню, все приходится править
вручную (Рис. 6).
Комментарий
1 Александра Супрунова
Одной из самых замечательных особенностей Blender, существенно повышающих его мощь, является возмож-
ность расширения за счет сторонних модулей и библиотек. Благодаря им, создание морской ракушки, дерева или
шестереночного механизма часов превращается в щелчок мышью и несколько секунд ожидания.
Мы пока не будем заселять земной шар, вращающийся под ногами Тукса. Но вот сделать помохнатее самого
пингвина можно и даже нужно! Да, я говорю про мех.
Для достижения этой цели, воспользуемся расширением BrianHFurLibVol1_13July2006. Это обычный blend-файл,
содержащий библиотеку, основанную на эффекте многих частиц, воспроизводящих волосяной покров жирафа,
далматинца, леопарда, зебры и даже... Кинг Конга.
Для добавления «меховой» библиотеки Находясь в режиме Object Mode, выделите на панели кнопку Physics buttons. В частно-
достаточно нажать Shift+F1 и выбрать файл пингвина вместе с мохнатым шаром (удер- сти, параметр Life отвечает за длину меха, а
BrianHFurLibVol1_13July2006.blend с диска живайте клавишу Shift). Теперь нажмите Amount – за его густоту. Не бойтесь экспе-
LXF. Ctrl+C и в появившемся меню выберите риментировать!
Щелкните по нему, чтобы войти внутрь и Particle Settings – Тукс покроется густым
перейдите в папку Object. Укажите тип меха: мехом. Его длину и прочие параметры
tiger. На одном из слоев должен появится можно подрегулировать во вкладке Particles,
мохнатый шар. Для этого нужно нажать F7 и активировать
Работа с группами вершин была подробно описана ранее – при Выберите из предложенного меню пункт Bone. Все! Теперь наша ани-
создании модели (LXF89). Сделайте следующие привязки: мация настроена окончательно.
foot.L и foot.R – стопы объекта.
leg.L и leg.R – подъем от стопы к туловищу. Искусство освещать события
spine – все, кроме стоп. Освещение в трехмерных сценах – это целая наука, которая заслужи-
Вот и все. Для проверки, выделите арматуру и перейдите в режим вает отдельной немаленькой статьи. Но, тем не менее, мы и сейчас,
позы. Для проверки «походки», попробуйте подергать за рычаги в окне особо не вникая в теорию освещения, сможем значительно улучшить
Rear View. При этом должны двигаться только ноги со ступнями. Теперь восприятие нашей сцены. Посмотрите вокруг себя, сколько источни-
перейдите в Front View и покачайте spine справа налево. Здесь, наобо- ков света вы сможете насчитать? Солнце, экран монитора, всевоз-
рот, происходит качание всего туловища без стоп. Если при движении можные отражения – даже крохотный экран мобильника и то вносит
неправильно работают вершины, нужно всего лишь удалить или доба- свою лепту. А теперь подумайте о переносе всего этого в компью-
вить оные в нужные группы. тер. Пожалуй, нереально, да и мощностей наших с вами машин не
Осталось вернуть все спрятанные объекты на место и настроить хватит. Но не все так тоскливо, и 3D-дизайнеры уже давно наловчи-
анимацию. Как вы уже догадались, для этого мы воспользуемся воз- лись «обманывать» народ. Речь идет о так называемом окружающем
можностями ключевой анимации (LXF90). Перейдите в режим позы свете, который равномерно пытается осветить все объекты в сцене.
и, совмещая движение земного шара с ногами, создайте несколько Попробуйте отрендерить кадр из сцены (F12). Тускло и безжизнен-
ключей. Не забудьте, что наш пингвин должен не двигаться, а переби- но. Теперь нажмите F5, затем крайнюю справа кнопку World buttons
рать ногами. Настроив этот вид ходьбы, перейдите в окно Front View и (иконка в виде земного шара). Вы попадете в панель настройки
добавьте характерное качание при ходьбе, причем на те же самые клю- «окружающего мира».
чи, что и созданные ранее. Ambient Occlussion – вот то, что нам нужно. Нажав на эту кнопку,
Если вам удалось настроить анимацию и пингвин зашагал впере- вы включите окружающий свет. Выполните рендеринг и сравните кар-
валку, то, наверное, вы заметили, что флаг все так же упорно оста- тинку с предыдущей. Налицо значительное улучшение общего вида... и
ется на месте и за движениями модели не следует. Это дело попра- столь же значительно увеличилось время обработки.
вимое. Выделите древко знамени, затем косточку spine (арматура Так как у нас в сцене явно присутствует космическая составляющая,
должна быть в режиме Pose) и нажмите Ctrl+P для создания иерархии. то неплохо было бы добавить звездное небо. Это можно сделать «в
Для создания звездного неба на этом уроке мы пошли простейшим путем и настроили параметры Mist/Stars....
Альтернативный подход аналогичен используемому в компьютерных играх – окружающее пространство представ-
ляется кубом с натянутыми текстурами звезд, туманностями и т.д.
О
Привет, Джек! SATA пока что вызывает про-
1 Определении 8 Настройке экрана блемы у многих. По нашему опыту, простей-
диска SATA 9 Инсталляции шее решение – переключить диски в режим
2 DVD-слайд-шоу 10 Сканировании совместимости через BIOS, закончить инсталляцию и
3 Символических 11 Освобождении попробовать вернуть все обратно. Многие дистрибути-
ссылках порта вы затрудняются «встать» на обычные SATA-диски, но
4 Кодировании 11 DansGuardian после установки прекрасно работают – особенно после
звука 13 MonoDevelop закачки новейших заплаток. Убедитесь также, что у
5 Настройке GUI Правах доступа Вас не установлен программный RAID, с ним тоже
6 Системных Восстановлению Превратите чудесные воспоминания а-ля Анита
бывают проблемы. В крайнем случае, попробуйте
шрифтах разделов Экберг в слайд-шоу с DVD-Slideshow.
добавить insmod=ide-generic во время инсталляции.
7 Беспроводной сети Удачи! ПХ
надо, чтобы каждый кадр длился около 3 секунд
2 Видео слайд-шоу (например), но я не смог найти способа изменить дли-
1 Военная хитрость
В
Я собрался сделать видео-CD из моих фотога- тельность. Convert выглядит многообещающе, но не
В
Пожалуйста, помогите! Меня зовут Джек. У фий. Для начала хочу просто поместить фото дружит с mpeg2encode.
меня проблема. на видео-CD, чтобы можно было просматри- У меня Ubuntu Dapper. Заранее благодарен за
Моя материнская плата – P4S800D, на чип- вать их на обычном DVD-плейере или телевизоре. любые советы.
сете SIS655FX, и у меня два диска: на одном, IDE, Потом добавлю звук. Daudi
О
стоит OpenSUSE 10.2, на другом, SATA – Windows. Похоже, что инструментов для этого хватает, но Использовать DVD было бы лучше: и больше
Инсталлятор SUSE 10.2 определяет только диск IDE. мне не удалось найти четкого описания этого про- фото поместится на один диск, и качество
Как настроить и смонтировать SATA в OpenSUSE 10.2? цесса. Например, с FFmpeg удалось сделать из моих будет заметно выше. Процесс в основном
Я нашел драйвер на официальном сайте SIS, но полу- фотографий кадры длительностью около 0.4 с. Мне одинаков для DVD и видео-CD, но все инструменты
ориентированы на DVD, поэтому для видео-CD потре-
буется перенастройка.
Простейший способ поместить слайд-шоу на
Наши эксперты диск – это воспользоваться слайд-шоу DigiKam или
KPhotoAlbum (оба используют один и тот же модуль
Мы найдем эксперта в любом вопросе! Вы получите ответ на все: от проблем с установкой или модемом до расширения) для создания DVD-слайд-шоу из фото-
сетевого администрирования; главное – спросить! альбома или отдельных фотографий. Возможности
их ограничены: можно лишь менять задержку между
Нейл Ботвик Майк Сондерс кадрами и время затухания – да и то единообразно
Владелец ISP и экс-редактор Майк был одним из создателей
для всех фотографий.
дисков для нашего журнала, Нейл прототипа LXF – Linux Answers. Его
считает, что в Linux он от скуки на специальности – программирование, Если хочется большего, то DVD-Slideshow (домаш-
все руки. оконные менеджеры, скрипты няя страница http://dvd-slideshow.sourceforge.net) –
инициализации и SNES. лучший выбор. Это набор скриптов для генерации DVD
из картинок и звука. Главный скрипт, dvd-slideshow,
Пол Хадсон Ник Вейч использует список изображений и эффектов в тексто-
Пол – местный супер- В свободное от исчеркивания вом формате, для формирования DVD VOB-фай-
программист. Он управится со текстов красными чернилами время
ла. Создайте входной файл DVD-Slideshow c помо-
всеми вашими проблемами по Ник возится с Linux-графикой и 3D-
части web и баз данных. приложениями; он у нас отвечает за щью dir2slideshow: его можно отправить прямо на
простые вопросы! dvd-slideshow или отредактировать для изменения
длительности кадров и эффектов. Затем организуй-
Владимир Иванов Валентин Синицын те слайд-шоу и добавьте музыку с помощью dvd-
работает с Linux уже более 10 лет, В свободное от работы время редактор
slideshow. Просмотреть VOB-файл перед записью на
днем – создавая комплексные нашего журнала разрабатывает
решения для крупных компаний, KNetworkManager и другие открытые диск можно через MPlayer.
а вечером – модерируя сайт приложения. Он с радостью поможет Наконец, dvd-menu может создать – угадайте,
linux.org.ru и отвечая на вопросы вам в вопросах использования Linux что? – DVD-меню для одного или более слайд-шоу; так-
о системном администрировании на рабочем столе.
же есть возможность вызова dvdauthor для изготовле-
и информационной безопасности.
ния ISO-образа, готового к записи на диск. Допустим,
директория, из которой нужно сделать слайд-шоу,
КУДА ПОСЫЛАТЬ ВОПРОСЫ: называется pics. Тогда понадобятся команды:
Пишите на м по адресу: answers@linuxformat.ru или спрашивайте на форуме: www.linuxforum.ru mkdir slideshow
dir2slideshow -o slideshow -t 5 -c 1 –n myslideshow лась новая директория /opt/openoffice.org2.1. Когда я дел файловых ассоциаций, и указать верный путь
pics щелкаю мышью на текстовом документе или табли- вызова программ ooffice2. НБ
# отредактируйте myslideshow.txt для настройки це в KDE, программа пробует войти в /opt/openoffice.
длительности или эффектов org2.0, которой больше нет. Если я делаю cd в /opt и 4 Количество и качество
В
dvd-slideshow -a somemusic.ogg myslideshow.txt набираю У меня 64-битный Ubuntu 6.10 на AMD64, я
dvd-menu -t “My slide show” -f myslideshow.xml –iso ln -s openoffice.org2.0 openoffice.org2.1 занимаюсь кодированием звука. Я затеял
Мы получим слайд-шоу с длительностью кадра 5 с создается символическая ссылка OpenOffice.org небольшой тест, чтобы посмотреть, что эффек-
и затуханием 1 с, записанное в ISO-образ, готовый для 2.0 внутри директории 2.1. Я уже все перепробовал – тивнее: последовательное кодирование четырех
записи на DVD. Можно изготовить DVD с единствен- не работает, и точка! директорий с FLAC-файлами (четыре файла одного
ным слайд-шоу, воспроизводимым непосредственно, OnlyTheTony размера в каждой директории) в OGG или параллель-
О
без меню. По умолчанию формат выхода – NTSC; для В Вашей работе с ln – две проблемы. Во-пер- ное. Я написал скрипты на Bash, чтобы измерить про-
формата PAL DVD понадобится добавить к каждой вых, синтаксис: правильно будет ‘ln -s источ- изводительность. Первый скрипт работал около девя-
команде -p или поместить ник назначение’. Я тоже попадал в эту ловуш- ти минут (чуть больше двух минут на директорию), но
pal=1 ку: когда я переходил с ОС, использующей обратный второй тоже занял девять минут, хотя в каждой дирек-
в ~/.dvd-slideshowrc. порядок, некоторое время приходилось думать дваж- тории был девятиминутный объем кодирования.
Если нужно создать DVD-совместимый MPEG, вос- ды. Аргументы должны идти в том же порядке, что для Я уверен, что с какого-то момента параллельное
пользуйтесь FFmpeg для перекодирования созданного cp или mv: мне так легче было запомнить. выполнение задач становится медленнее, чем пос-
Вами в dvd-slideshow VOB-файла, вот так: Другая проблема – если в качестве целевой ука- ледовательное. Просматривая вывод top, я заметил,
ffmpeg -target pal-vcd -i dvdslide.vob vcdslide.mpg зать существующую директорию, ln предполагает, что что при параллельной обработке четыре экземпляра
НБ ссылку Вы хотите создать внутри нее. Это переклика- flac были запущены одновременно, и каждый занимал
ется с cp и mv, они тоже копируют или перемещают около 20% процессорного времени. При последова-
3 Потерянная ссылка файл внутрь целевой директории. Удалите целевую тельной работе единственный процесс flac использует
В
Мне необходимо создать ссылку с одной дирек- директорию, и ln создаст нужную ссылку: намного больше возможностей CPU.
тории на другую, чтобы при обращении про- ln -s openoffice.org2.1 /opt/openoffice.org2.0 Проводились ли какие-либо тесты на эту тему?
граммы к директории X ей предъявлялась Заметьте, что в символьных ссылках источник При работе с тысячами файлов приходится эконо-
директория Y. Я пробовал ln с различными параметра- задается относительно назначения, поэтому даже если мить время.
ми, но она всякий раз создает ссылку внутри целевой эта команда исполняется не в директории /opt – а зна- Пол Хок [Paul Hoch]
О
директории. чит, директория или файл OpenOffice.org2.1 не сущес- Распараллеливание задач требует накладных
Причина, по которой мне это нужно – обновление с твует – ln все равно сработает. расходов, обусловленных переключением
OpenOffice.org 2.0 до OOo 2.1, в результате чего созда- А еще можно зайти в Центр управления KDE, раз- между ними и управлением памятью, но при
небольшом количестве задач это несущественно. Если
Вы попробуете запустить одновременно 20 или 30
Краткая справка о… процессов, то заметите значительное замедление,
особенно если будет задействован раздел подкачки
[swap].
Не забывайте, что работа по кодированию прово- 5 Где взять GUI NdisWrapper, дав от имени root следующие команды?
В
дится в фоне, поэтому, если у Вас большой объем или У меня стабильная Linux-система, являющаяся ndiswrapper -ma
работа очень срочная – на тесты может уйти больше моим настольным ПК и обслуживающая малую echo “alias wlan0 ndiswrapper” >> /etc/ modprobe.conf
времени, чем можно сэкономить на повышении про- домашнюю/офисную LAN. У меня есть несколь- А главное, создали ли Вы после всего этого новый
изводительности компьютера. Вы уже установили, ко свободных разделов на жестком диске, где я про- сетевой интерфейс для устройства с помощью инс-
что распараллеливание малого числа процессов не бую новые дистрибутивы. Из любопытства я поставил трумента Fedora system-config-network? Если все это
дает результата. Увеличение их количества делу не Fedora Core 6 (LXF88). Труднее всего в этих экспери- сделано, а Network Manager все еще не работает,
поможет – разве что у вас несколько многоядерных ментах было заставить работать беспроводную карту попробуйте запустить его при загрузке, вот так (тоже
процессоров. НБ PCI. На ней стоит бесславный чипсет Broadcom от имени root):
BCM4318, который с Linux не очень-то дружит. chkconfig NetworkManager on
Следуя подсказкам и советам, для активации кар- chkconfig NetworkManagerDispatcher on
ты я сделал следующие шаги. Во-первых, инсталли- Network Manager – совершенно новый инструмент,
ровал драйверы с помощью NdisWrapper. Во-вторых, к тому же он постоянно развивается. Ваши проблемы
отключил драйвер Fedora BCM43xx. В-третьих, по могут быть решены в Fedora 7, ожидаемой в апре-
инструкции SourceForge, отредактировал два сетевых ле. ПХ
файла [modprobe.conf и icfg-eth0]. Благодаря этому
мой eth0-интерфейс работает подобно wlan0 в дру- 6 Хочу большой!
В
гих дистрибутивах. Карта запускается из командной Я только что установил Fedora Core 6. Как уве-
строки вот так: личить системный шрифт?
/etc/init.d/network restart Саид Фарах [Said Farah]
О
Для завершения работы я вызвал NetworkManager О, это простой вопрос, я такие люблю!
из системного меню KDE. Хотел через диалоговое Системный шрифт в Fedora настраивается в
окно настройки сети нанести последние штрихи, но меню System > Administration (Система >
оно оказалось пустым. Никакого NIC-интерфейса нет, Администрирование), пункт Fonts (Шрифты). Когда
но при этом вся система действует безупречно. Я появится окно Fonts Preferences (Параметры шрифта),
просто купаюсь в техническом и мультимедийном щелкните на кнопке Details (Подробнее) в правом
великолепии широкополосной сети. Как можно гра- нижнем углу, затем найдите разрешение экрана в
фически управлять тем, что уже сделано в темных верхнем левом углу нового окна. Увеличение этого
глубинах системы из командной строки? числа делает шрифт больше, а вместе с ним увеличи-
Джим МакФарлан [Jim Macfarlane] вается размер кнопок, окон, меню и др. Не забудьте
О
Grip использует ресурсы машины по максимуму, Хоть Вы и обращались с Вашей картой записать первоначальное разрешение – вдруг к нему
параллельно выполняя CPU- и IO-зависимые несколько нестандартно, она работает – придется вернуться. ПХ
процессы. браво! А Вы настроили псевдоним
Rsync и Unison
Синхронизация двух директорий – движение не одностороннее!
Что такое rsync? Можно ли синхронизировать директо- узнать в man-странице программы. и заметит, что файл был изменен на
Это способ синхронизации содержимого рии разных компьютеров? У меня обоих компьютерах.
двух директорий, причем обе будут пол- локальная копия web-сайта, и не хоте- Что если файлы изменились на обоих
ностью идентичны. cp копирует все под- лось бы копировать все подряд, когда компьютерах, и данные тоже нужно Придется учить тысячу параметров
ряд, а rsync – только те файлы, которые изменится только пара файлов. сохранить на обоих? командной строки?
различаются. Если изменились большие Если у вас есть SSH-доступ к web-серве- Для этого понадобится специальная про- Придется. А можно воспользоваться GUI,
файлы, копируются только измененные ру, можно сделать так: грамма, например, Unison (www.cis. и просто указывать да щелкать мышью.
части. rsync --archive --delete /my/local/site upenn.edu/~bcpierce/unison). Для синхро- GUI работает только на том компьютере,
server:/path/to/site/ низации Unison пользуется той же rsync, который инициирует передачу, поэтому
Какой синтаксис у этой команды? Если один из путей или оба содержат а для передачи – SSH, но она предназна- можете использовать его для синхрони-
rsync --archive --delete /path/to/source/ hostname компьютера, rsync использует чена для двусторонней синхронизации. зации со своим web-сервером, не забудь-
/path/to/dest/ для передачи удаленную оболочку. По Если на двух компьютерах изменились те только установить там Unison.
точно скопирует первую директорию во умолчанию это SSH, но можно заменить некоторые файлы, каждый компьютер
вторую. Параметр --delete удаляет ее любой другой – даже RSH, если вы не получит новейшую версию.
файлы, которых нет в первой директо- против, чтобы ваши файлы во время
рии, а --archive копирует также права передачи читал кто ни попадя! Умно придумано; а если я отредакти-
доступа и временные отметки. рую один и тот же файл на обоих ком-
Замыкающие слэши важны: они указы- А как синхронизировать директории пьютерах?
вают на то, что синхронизируется содер- между Linux и Windows-компьютерами? Программа не умеет читать мысли и
жимое директорий. Без слэшей програм- rsync работает и под Windows, но пара- решать, какая версия вам дороже, она
ма просто скопирует одну директорию в метр --archive на разделах FAT действо- просто сообщит, что обе копии редакти-
другую. вать не будет, ведь в FAT не сохраняются ровались, и спросит, какую из них сохра- Синхронизируйте ноутбук и
права доступа. Подробности можно нить. Unison отслеживает все изменения, настольный компьютер через Unison.
В
Я пытался поставить Linux на ноутбук Bliss После того, как раздел будет целиком переме- поверхностей в одном цилиндре, HEAD – номер
4020. К моменту установки на жестком диске щен, программа вносит изменения в таблицу раз- поверхности, SPT – количество секторов на дорож-
имелось три раздела: два в формате NTFS с делов жесткого диска. Она расположена в нулевом ку, SECT – номер сектора.
различной информацией, и один неотформатиро- секторе и имеет следующие поля: После того, как резервная копия будет созда-
ванный, в начале диска. Попытки проинсталлировать 1 По адресу 0x0000 находится код начального на, можно приступать к попытке восстановления
некоторые варианты Linux закончились неудачей – загрузчика; данных.
1,8 ГБ оказалось явно недостаточно для полноцен- 2 По адресу 0x01be находятся 4 записи таблицы На имеющемся в Вашем распоряжении дис-
ной ОС. Столкнувшись с нехваткой места, я начал разделов жесткого диска (то, что под Linux видно, ке с Knoppix есть утилита testdisk. Ее мы и будем
искать инструменты для решения этой проблемы и как /dev/hdx1, /dev/hdx2, /dev/hdx3, /dev/hdx4), каж- использовать для восстановления таблицы разде-
нашел Paragon Partition Manager 7.0.1274. дая длиной в 16 байт; лов. Запустив testdisk, выберете создание нового
Я решил увеличить свободное место путем уре- 3 По адресу 0x01fe находится двухбайтовая сигна- файла журнала, затем – ваш диск и тип таблицы
зания одного из разделов NTFS. Процесс уменьше- тура MBR (0x55 0xaa). разделов (Intel).
ния раздела прошел безболезненно, а вот процесс Если в системе используются расширенные раз- В появившемся меню выбирайте пункт Analyze
перемещения раздела, к моему большому сожале- делы, то в начале каждого расширенного раздела и Search – это позволит найти заголовки разделов.
нию, закончился зависанием. помещается дополнительная таблица разделов, име- Затем сохраните новую таблицу разделов на жест-
Теперь у меня четыре раздела. Первый немного ющая следующий формат: кий диск, выбрав пункт меню write.
увеличился. Второй стал меньше, но главное, в нем 1 По адресу 0x01be находится запись о первом раз- Если зависание Paragon Partition Manager про-
все перепутано, не говоря уже о том, что файлы не деле размером 16 байт; изошло на этапе изменения таблицы разделов жес-
читаются. Некоторые программы заявляют, что они 2 По адресу 0x01ce находится запись о следующей ткого диска, то после выполнения этой процедуры,
из 30 ГБ доросли до пары десятков ТБ. расширенной таблице разделов, длиной в 16 байт; все ваши диски будут доступны. Если же на момент
В этом и состоит вопрос. Подскажите способ Каждая запись таблицы разделов по сме- зависания, утилита выполняла копирование данных
восстановления раздела, лучше конечно, “непрори- щению 0x0001 содержит трехбайтовый адрес раздела, предстоит дополнительная работа.
етарный”. Разумеется, на освободившееся место я начала раздела в формате CYL/HEAD/SECT Как видно из рисунка, в процессе «сдвига» раз-
ничего ставить не стал. Пользуюсь Knoppix 3.7 RE. (цилиндр/поверхность/сектор). дела образуется «дырка». Нашей задачей является
Сергей Васильевич К сожалению, не было указано, перемещение «приклеить хвост раздела к голове» и восстано-
О
Ситуация, конечно, непростая, но довольно какого раздела выполнялось: стандартного или рас- вить данные. Дабы избежать случайного разруше-
распространенная. Бывает, что при выпол- ширенного. Если перемещался основной раздел, то ния, рекомендую снова сделать резервную копию.
нении низкоуровневых операций с диском, все операции будут осуществляться только с глав- Скопируйте весь раздел, включая «голову», «дыр-
пользователь или программа ошибается. Так или ной записью таблицы разделов. Если же переме- ку» и «хвост» в отдельный файл. Далее мы будем
иначе, доступ к данным может быть потерян. щался раздел, расположенный внутри расширенной использовать его для работы.
Восстановление удаленных файлов в общем-то области (логический диск в терминах Windows), то Обратите внимание, что при копировании бло-
стало процедурой, привычной для многих пользова- были затронуты и расширенные таблицы разделов. ков раздела утилитой перемещения образуются дуб-
телей – существует масса вспомогательного ПО для Перед выполнением работ по восстановлению лирующие блоки данных. В нашем случае, если
различных операционных систем, что заметно упро- рекомендуется сделать резервные копии. Конечно, зависание произошло в процессе записи, последний
щает задачу. Однако, работа с разделами жесткого лучше скопировать посекторно весь жесткий диск, записываемый блок мог быть сохранен лишь час-
диска все еще остается уделом немногочисленных но если вы не можете позволить себе такой роскоши, тично. Исходя из этого, необходимо искать дубль
хакеров и требует более глубокого понимания сути сохраните хотя бы секторы с таблицами разделов. блока, записанного предпоследним. К сожалению,
проблемы, технологий и форматов данных, вовле- Сделать это можно командой dd. компания Paragon Software не публикует данных о
ченных в процесс. Загрузившись с компакт-диска Knoppix, сохрани- размере блока, используемого при работе, однако,
Что бы понять, как восстановить утраченные те основную таблицу разделов: начав с блока, равного одному сектору (512 байт),
данные, рассмотрим процедуру «передвижения» dd if=/dev/had of=/path/to/mbr/back.up bs=512 можно впоследствии уточнить результат, сравнив
раздела по диску. count=1 соседние блоки.
В процессе «передвижения» производится поб- Для сохранения резервной копии расширенной Для поиска можно использовать любой Hex-
лочное копирование данных, начиная с той части таблицы разделов, необходимо передать команде редактор или попробовать написать скрипт на
раздела, которая находится «ближе» к пустой облас- dd параметр skip, указывающий ее смещение. Как Вашем любимом языке.
ти. На приведенном рисунке раздел перемещается было сказано выше, положение расширенной таб- Обнаружив «начало конца раздела», вам оста-
«вправо», поэтому копирование происходит «справа лицы разделов можно выяснить в главной таблице нется лишь «приклеить» его к голове, используя все
налево». Если бы раздел перемещался влево, копи- разделов. ту же команду dd, на сей раз – с параметрами skip и
рование бы началось с начального, «левого» блока Значение параметра skip равняется LBA-адресу seek.
данных. Выбор направления и очередности копиро- начала раздела. Что бы выяснить LBA-адрес, зная Желаю удачи! Но впредь – делайте резервные
вания важен для обеспечения целостности данных. адрес в формате цилиндр/поверхность/сектор, вос- копии! ВИ
Ответы
Ограничение прав доступа что вход в графический рабочий стол сам по себе
В
Можно ли ограничить число процессов, требует запуска нескольких процессов. Терминал,
запускаемых одним пользователем в своей открытый из этого рабочего стола, по умолчанию
оболочке? У меня Ubuntu Dapper. не будет считаться отдельным входом, поэтому
RD, из форумов LXF ограничивайте процессы умеренно. Чтобы узнать,
О
Это делается двумя немного разными спо- сколько процессов запускает пользователь при
собами, в зависимости от того, использует стандартной загрузке, наберите
ли Ваша система PAM (Pluggable sudo ps -u fred | wc –l
Authentication Modules, Подключаемые модули Пример PAM включает жесткий лимит, а вооб-
Изменяя разрешение экрана на рабочем столе авторизации). Ubuntu использует PAM по умолча- ще PAM устанавливает два типа лимитов: жесткий и
Gnome, Вы увеличиваете размер шрифта. нию, поэтому пределы устанавливаются в /etc/ мягкий. Жесткий неоспорим, менять его разрешено
security/limits.conf. Чтобы ограничить Фреда деся- только администратору – но пользователь может
7 FullMAC – это как? тью процессами, добавьте строчку вроде этой: расширить лимит между мягким и жестким огра-
В
Недавно установил Fedora Core 6 в двойную fred hard nproc 10 ничениями командой ulimit (считайте мягкий лимит
загрузку на мой HP Pavilion t3065 (Intel Pentium Для систем, в которых нет PAM, лимит можно стандартным ограничением, а жесткий – абсолют-
4 3.4 ГГц с 1 ГБ ОЗУ). Все было прекрасно, пока установить в /etc/limits, подобным способом: ным максимумом). Оба лимита можно уравнять
я не попробовал соединиться со своим беспроводным fred U10 знаком – во втором поле строки /etc/security/limits.
G-модемом Belkin (802.11g – model F5D7632uk ver В любом случае можно подставить вместо име- conf. Ограничить можно не только число процес-
1000). Долго чесал в затылке и копал в Интернете – и ни * (звездочку), чтобы ограничить всех, кроме сов: можно ограничить использование ресурсов
смекнул, что нужен беспроводной драйвер. Допросив администратора. памяти или процессора. См. man для limits.conf и
сетевой контроллер, я определил следующие парамет- Лимиты, установленные в этих файлах, дейс- ulimit, там можно найти (намного) более подробные
ры чипсета: твительны для каждого входа в систему (а не для сведения. НВ
Intersil Corporation ISL3890 [Prism GT /Prism Duette] пользователя «в целом»), но не забывайте о том,
/ ISL3886 [Prism Javelin /Prism Xbow] (rev 01).
Subsystem: Accton Technology Corporation
WN4201B.
Flags: bus master, medium devsel, latency 64, словами, это был облегченный, удешевленный чипсет 8 Nvidia не видит
В
IRQ169. вроде используемых в win-модемах). Он стал известен У меня AMD64 3000+ CPU, с 1 ГБ ОЗУ, видео-
Memory at cfffc000 (32 bit, non-prefetchable) Size 8k. как SoftMAC-дизайн, и нарушал совместимость с карта Nvidia GeForce PCI-express и жесткий диск
Capabilities: (dc) Power management version 1. драйверами Prism54, пока не появился Islsm. Этот 320 ГБ SATA. Во время установки Fedora Core 6
Просмотрел множество разных Интернет-ресурсов драйвер работает как с SoftMAC, так и с прежними все было хорошо, пока не дошло до «starting udev
на тему подключений с этим чипсетом (включая www. чипсетами FullMAC. Драйвер FullMAC лучше работает с (OK)» – тут экран погас. Жесткий диск вроде бы рабо-
prism54.org), и растерялся. Какой драйвер устано- устройствами FullMAC, зато SoftMAC не признает тал, но экран был пуст; затем вышло сообщение:
вить – FullMAC или Islsm? Каждый драйвер пригоден вообще. К сожалению, трудно сказать, что именно «Mode not supported».
для одного или другого варианта ISL, но не для обоих! есть у Вас: ISL3890 работает с драйвером FullMAC, а Сперва я подумал, что виновата видеокарта, но
Возникает вопрос: не все ли равно, какой брать? для ISL3886 необходим Islsm. при инсталляции Elive 0.5 все заработало. Попробовал
Допустим, мне удалось связать Linux с моим моде- FullMAC включен в стандартное ядро Fedora Core снять видеокарту и пользоваться встроенной кар-
мом. Поддерживает ли Fedora или другой дистрибутив 6. Вам нужно только установить прошивку (firmware), той VIA – ничего; попробовал другой экран – ничего.
шифрование WPA-PSK, или пока нет ничего лучше ее можно загрузить с http://prism54.org/fullmac.html и Попробовал загружаться со всеми возможными пара-
128-битного шифрования? Как можно использовать протестировать, открыв терминал и набрав метрами, доступными для экрана в Fedora – ничего не
WPA-PSK на моем компьютере? su работало. Пробовал принудительно установить разре-
Джонатан Пис [Jonathan Peace] (в ответ на запрос, введите пароль шение экрана (linux resolution=1024x768) и запускал
О
Несколько лет назад Prism выпустила новую администратора) linux noprobe.
версию чипсета, перекладывавшего часть modprobe prism54 Среди сообщений об ошибках, которые можно
работы на основной процессор (другими lsmod | grep prism54 отнести к данной проблеме, были следующие: «PCI:
Если вывод последней команды будет непустым, BIOS Bug: MCFG area at e0000000 is not E820-reserved»
драйвер есть в наличии и загружен – попробуйте и «PCI:Not using MMCONFIG». Уж не знаю, могут ли
соединиться с модемом. Но сначала нужно отключить они помочь, раз все это не мешает работать Elive. Не
шифрование (WEP и WPA) – настройте соединение, а могли бы вы помочь мне с установкой Fedora?
потом шифруйте (без работающего подключения и Daryl
О
шифровать-то нечего). Если драйвер Prism54 не спра- Похоже на то, что Fedora пробует активиро-
вится – попробуйте Islsm. Для этого тоже понадобится вать встроенный драйвер Nvidia, но он не в
прошивка, но уже другая: ее можно взять на http:// ладах с разрешением экрана. Быстро устра-
prism54.org/newdrivers.html. Подробные инструкции нить проблему поможет переключение на драйвер
включены в пакет. VESA, который должен надежно работать с любой
Шифрование WPA-PSK в Linux реализовано в графической картой. Откройте /etc/X11/xorg.conf как
форме wpa_supplicant (http://hostap.epitest.fi/wpa_ администратор и найдите следующую строку:
supplicant). На Fedora Core пакеты для этого есть – Driver “nv”
нужно установить wpa_supplicant и wpa_supplicant- Замените nv на vesa и перезагрузитесь. По крайней
Обычно переключения на драйвер VESA для X gui. Необходим только первый, второй нужен лишь мере, получите рабочую систему.
достаточно для надежной работы двумерного для графического управления конфигурацией, чтения, А вот теперь, если VESA не годится для Вашей
рабочего стола. редактирования и сохранения файлов настройки. НВ повседневной работы, если Вы хотите попробовать
В
Приятно было найти DeLi Linux на диске LXF86,
ведь у меня есть 486 PC для пробы. Прожиг CD
и запись загрузочной дискеты прошли удачно,
и инсталляция продолжалась до тех пор, пока не поя-
вилась панель с вопросом: «Where is delibase.tgz?»
(Где находится delibase.tgz?). Среди вопросов на пане-
ли был и такой: «I can scan for CD-Rom drives. Should I
try to do so?» (Можно просканировать CD-приводы.
Сделать это?).
Щелкнув Yes, получаю другую панель с пред-
ложением «Enter the device which contains the DeLi
Linux Base Package delibase.tgz» (Укажите устройство,
на котором содержится основной пакет DeLi Linux,
delibase.tgz). Что бы я потом ни вводила, следова-
ло сообщение: «ERROR! Failed to mount the source
device. Exiting …» (ОШИБКА! Невозможно смонтиро-
вать устройство. Выход…) – и все. Скопировала этот
файл на C:\ (одно из предлагаемых расположений на
панели «Where is… и т.д.» – но когда пробую ввести
C:\, получаю лишь C:#.
Мэри Перрин [Mary Perrin] Tomboy неотъемлем от жизни, как тепло и кров – мы пользуемся им, готовя эти страницы.
О
Похоже, инсталлятор не может опознать CD-
привод: это бывает с нестандартными
устройствами ATAPI IDE. Раз Вам понадоби- тив, который справляется с этим – Ubuntu, но я пред- лению. Похоже, что Tomboy остался работать в фоне.
лась загрузочная дискета, скорее всего, так и есть. почитаю SUSE, он стабильнее на моей машине. Это можно проверить, набрав
Невозможность набрать C:\ почти наверняка вызвана Другой вопрос. Tomboy – отличная штука, но SUSE ps -ax | grep -i tomboy
неверной раскладкой клавиатуры, из-за нее вводятся 10.2 с ним не справился из-за обычной ошибки Alt/F12. в терминале. Будут показаны все процессы, в име-
не те символы. Символ \ там есть, а чтобы его найти, Я закрыл программу, но при попытке перезапуска мне ни которых имеется слово «Tomboy». Крайний левый
просто переберите несколько клавиш, до получения было указано, что она уже работает. Удалил ее через пункт в выводе будет идентификатором процесса
нужного результата. Похожие проблемы были у меня с Yast, а она никуда не делась. Загрузил новейшую вер- (PID), который поможет убить процесс:
поиском символов # и @ при загрузке с Live CD, при- сию с сайта Tomboy – она потребовала столько всего, kill nnnn
менявшего US-раскладку к моей UK-клавиатуре. что от нее пришлось отказаться. Жажду поработать с где nnnn – PID процесса. Убедившись, что програм-
Охоты за клавишами можно избежать, указав коррек- программой, но все мои попытки бесплодны. ма прекратила работу, Вы можете запустить ее снова в
тную клавиатуру на этапе инсталляции, иначе во время joslam штатном режиме. НБ
О
работы на DeLi Linux будут те же проблемы. За сканирование и копирование отвечает
Удачи Вам с DeLi Linux: заставить хоть что-нибудь SANE. Один из способов заставить его рабо- 11 Вон из моего порта!
В
работать на 486-м далеко не просто. Могу посовето- тать на SUSE – это загрузиться в Ubuntu и На моей материнской плате лишь один после-
вать Damn Small Linux – еще один малый дистрибутив, узнать, какой драйвер там установлен: довательный порт. А еще у меня есть Psion 5 и
его можно найти на диске LXF89. МС scanimage --list-devices Garmin Geko 201, оба с последовательным под-
Драйвер будет указан перед названием устройства. ключением. Мне кажется, некоторые программы, свя-
10 Скан и обман Например, мой сканер использует драйвер Genesys и занные с Psion, работают в фоне, даже когда сам он
В
SUSE 10.2 распознает мой «все-в-одном» прин- показывает следующее: отключен, и лишают Garmin (и программы, включая
тер Photosmart и прекрасно печатает, а вот ‘device `genesys:libusb:005:003’ is a GPSman) доступа к последовательному порту.
копировать не может. Единственный дистрибу- Canon LiDE 60 flatbed scanner’. Команда top в Linux (Kubuntu Edgy) не выяви-
Определить нужный драйвер – это пол-дела, а что- ла известных мне приложений, связанных с Psion;
бы завершить дело, надо схитрить: скопировать фай- не дала результатов и ps -aux. Не подскажете, какие
лы конфигурации (обычно они находятся в /etc/sane.d) процессы могут запирать порт при инсталлирован-
из Ubuntu в SUSE. ном KPsion, и как их отстрелить, не удаляя пакетов
Что Вы подразумеваете под «обычной» ошибкой KPsion?
Alt/F12, я не знаю. Я пользуюсь Tomboy уже давно и Если ничего не поможет – думаю, придется просто
даже не слышал, чтобы сочетание Alt+F12 делало что- купить PCI-карту с последовательными портами!
нибудь, кроме вызова меню, для которого оно и пред- Мартин [Martin]
О
назначено. Возможно, эту комбинацию заняло какое- А помните Unix-мантру «Все есть файл»? Она
нибудь другое приложение, но ведь горячие клавиши применима и здесь, так как последовательный
нетрудно изменить в диалоговом окне настройки порт можно расценивать как файл, а команда
параметров Tomboy. lsof показывает все открытые файлы. Без аргументов
Если программа не запускается или создает дру- команда показывает все файлы, открытые системой, и
гие проблемы, первое, что нужно сделать – запустить Вы удивитесь, как много их на Linux (у меня сейчас
DeLi Linux любит старые машины, но не любит
ее не из меню, а в терминале. Проблему это вряд ли открыто свыше 7 000). Круг поисков можно сузить,
старые CD-приводы.
устранит, зато даст больше информации к размыш- указав имя файла; в Вашем случае это будет, вероятно,
/dev/ttyS0, первый последовательный порт. I am running as squid and I am trying to open /usr/local/
Взгляните на этот код: var/log/dansguardian/access.log
sudo lsof /dev/ttyS0 Мой дистрибутив – SUSE 10.2. Подскажите, в чем
COMMAND PID USER FD TYPE DEVICE может быть дело? И еще – как настроить автоматичес-
SIZE NODE NAME кий запуск DansGuardian при загрузке компьютера?
belkin 9758 nut 4u CHR 4,64 5134 /dev/ ttyS0 Игорь Редькин
О
Этот пример показывает, что мой порт занят мони- Я бы порекомендовал Вам подойти к решению
тором моего ИБП. В Вашем случае будет указана этой проблемы с другой стороны и установить
программа, запирающая порт и мешающая другим – готовый RPM-пакет DansGuardian. Его можно
вероятнее всего, она связана с KPsion. Возможно, она загрузить с домашней страницы проекта (http://
использует символьную ссылку на /dev/ttyS0, напри- dansguardian.org/downloads/2/Stable/SUSE/) или поис-
мер, /dev/modem или /dev/psion. Увидеть их можно кать в репозиториях Вашего дистрибутива. После того,
с помощью как пакет будет установлен, вы сможете активировать
ls -l /dev/ | grep ttyS0 автоматическую загрузку DansGuardian во время старта
Попробуйте пропустить через lsof и символические системы в разделе «Сервисы» Yast. ВС
ссылки. Стоит взглянуть также на программы, запус-
каемые при загрузке. Ubuntu и другие производные от
Debian по умолчанию используют runlevel 2, поэтому 13 Происки Microsoft?
В
ls -1 /etc/rc2.d Установил пакет monodevelop-0.12-0.novell.
покажет все запущенные программы. noarch.rpm с диска, прилагавшегося к январско-
Если Вы хотите добавить порт, то дешевле (и му номеру LXF, в своей системе OpenSUSE
проще) всего купить USB-адаптер. На eBay он стоит 10.1. При попытке запустить MonoDevelop, получаю
несколько фунтов и «просто работает», когда его под- следующую ошибку:
ключают. Некоторые даже хвастают Linux-совмести- System.Runtime.Remoting.RemotingException: Unix
мостью – и на eBay тоже! НБ transport error.
В
Пробую установить и настроить программу in <0x0008f> Mono.Remoting.Channels.Unix.
DansGuardian, описанную в журнале LXF81. UnixMessageIO:ReceiveMessageStatus (System.IO.
Собрал версию 2.9.8.2 из исходных текстов. По Stream networkStream, System.Byte[] buffer)
умолчанию программа установилась в /usr/local/. ...
Запускаю ее командой Пожалуйста, помогите решить проблему,
# /usr/local/sbin/dansguardian start а то учебник Mono мне приходится изучать чисто
после чего все прекрасно работает. Но вот в чем теоретически!
заковыка: больше ни на какие команды DansGuardian temich_nd
О
не откликается: Вам «повезло» столкнуться с достаточно
# /usr/local/sbin/dansguardian status известной проблемой взаимодействия между
# /usr/local/sbin/dansguardian restart Mono 1.1.13 и Boo, Python-подобным языком
# /usr/local/sbin/dansguardian stop программирования для среды .NET (см. LXF77). Ее
выдают одно и то же: можно решить тремя способами: обновить Boo до
I seem to be running already! версии 0.7.5, Mono – до 1.1.14 и выше или просто
Если «убить» программу командой ‘kill -9 PID’, удалить Boo-дополнение из MonoDevelop, воспользо-
она перестает запускаться даже после перезагрузки вавшись командой mdtool gsetup. Учитывая, что Boo
компьютера. вряд ли понадобится Вам в процессе чтения учебников
# /usr/local/sbin/dansguardian start по Mono (они ориентированы на C#), я бы рекомендо-
Error opening/creating log file. (check ownership and вал третий путь – тем более, что он не требует лишних
access rights). скачиваний. ВС LXF
Нужна помощь!
Для наилучшего ответа на ваш вопрос нам нужно lspci -vv >>system.txt
знать как можно больше подробностей. Детально
опишите конфигурацию системы. Если вы получили Пожалуйста, помните, что сотрудники журнала НЕ
сообщение об ошибке, приведите текст сообщения и являются авторами или разработчиками Linux,
точно опишите вызвавшие его действия. Если у вас любых пакетов или дистрибутивов. Зачастую люди,
проблемы с оборудованием, то опишите его. Если отвечающие за приложения, выкладывают большую
Linux уже запущен, то выполните в root-терминале часть информации на web-сайты. Попробуйте
следующие команды и прикрепите к письму файл почитать документацию!
system.txt:
Мы стараемся ответить на все вопросы. Если вы не
uname -a >system.txt нашли ответ на свой, это, возможно, потому, что мы
lspci >>system.txt уже ответили на похожий вопрос.
LXF HotPicks
В ЭТОТ РАЗ ТОЛЬКО ДЛЯ ВАС: Qemulator Klavaro Bugle Audacity
Ричард Драммонд
Ричард – свободный разработчик,
писатель и отец двух детей. Он
живет в Индиане, США, где
отчаянно скучает по британскому
JSHoldem Dagii Breve ExactImage KX Generator SystemRescueCD TВ, подогретому пиву и сосискам.
Qemulator
Версия 0.3.2 Сайт http://qemulator.createweb.de
Q
emu – солидный набор инструмен- ванных или подключенных по USB устройств)
тов для эмуляции, способный вир- и передавать Qemu команды «на лету».
туализовать не только главный про- Но главное преимущество использования
цессор системы для эмуляции внешнего про- Qemulator по сравнению с чистым Qemu – это
цессора, но даже интерфейс системных вызо- простота создания конфигураций. Например,
вов Linux. Все это здорово, но пользоваться предоставляется инструмент для генерации
им не так-то просто. образов дисков Qemu во всех поддержива-
Поможет Qemulator, графический инстру- емых в настоящее время форматах. Образ
мент для настройки, запуска и управления используется для создания именованной кон-
сессиями Qemu: он предоставляет всю мощь фигурации, в которой можно отрегулировать
Qemu в доступной для среднего пользова- любые параметры: использование памяти,
теля форме. Главное окно отображает спи- настройки сети или разрешение на доступ к
сок «закладок» – именованных ссылок на USB-устройствам.
сохраненные конфигурации Qemu. Вы просто Qemulator написан на Python, так что его
выбираете одну из них и нажимаете кноп- легко установить – он требует только Python
ку Play для запуска Qemu-сессии с задан- 2.4 и зависит от GTK и libglade. Просто рас-
ными настройками. В дополнение к этому, пакуйте пакет Qemulator и выполните ./setup. Управление уступает в лоске и простоте использования
Qemulator поддерживает управление зада- py для запуска собственного графическо- заданиями от проприетарным решениям типа VMware, это
ниями: запустите сессию (специальная кноп- го установщика. Споткнуться он может раз- Qemulator дает вам ценное средство, если необходима виртуали-
полный контроль над
ка, похожая на клавишу быстрой перемотки, ве что в системе без команды sudo: здесь зация при скудном бюджете. Он несомненно
виртуальной
находится справа от кнопки Play), и вы смо- потребуется запустить программу от имени будет улучшаться и, быть может, однажды
машиной.
жете приостанавливать ее, несильно менять суперпользователя. превзойдет своих коммерческих собратьев.
настройки (например, перечень смонтиро- Хотя комбинация Qemulator плюс Qemu
Тренажер клавиатуры
Klavaro
Версия 1.0.1 Сайт http://klavaro.sourceforge.net
Е
сли у вас в кладовке не припрятан HAL способляемость. Как и на первом уровне,
9000 на замену вашему персональ- надо вводить группы случайных символов, но
ному компьютеру, то лучший способ используется уже вся клавиатура, включая
ввести текстовые данные в настольный ПК – цифры, знаки пунктуации и заглавные буквы.
это воспользоваться старой доброй клавиату- На третьем уровне вводятся произвольные
рой; конечно, если вы умеете ею пользоваться. слова и проверяется ваша скорость, а на чет-
К сожалению, набор текстов не есть умение, вертом (последнем) уровне – целые абзацы
достижимое за одну ночь. Чтобы перейти текста, а также проверяется скорость и плав- Klavaro содержит
от двухпальцевого, извините за выражение, ность набора. абзацы
«метода» к набору 100-слов-в-минуту-всле- После каждого упражнения Klavaro выво- полноценного текста Среди аналогичных программ Klavaro
пую, нужна практика. Много практики. дит оценку точности набора, а на более высо- для тренировки, но выделяется интернационализмом. Он пре-
Klavaro – тренажер клавиатуры; он пыта- ких уровнях – скорости и плавности. Если вы тематика их часто дусматривает настроенные стандартные US,
скучна.
ется научить вас основам слепой печати и не удовлетворите требованиям к точности и British, French, German и многие другие рас-
[На рисунке приведе-
предоставляет комфортное окружение для скорости данного уровня, Klavaro посоветует кладки клавиатуры, но можно определить и
но обсуждение
оттачивания навыков. Здесь четыре уровня его повторить. Прилагаются также графики нефтедобычи с ана- свою собственную; он содержит список слов
упражнений, с нарастающей сложностью. для визуализации вашего прогресса. литиками, – и текстовых абзацев для поддерживаемых
Первый уровень знакомит с расположением прим. пер.] локалей, но опять же легко добавить свои соб-
клавиш. Вы вводите группы случайных симво- ственные (это обычные текстовые файлы).
лов, начиная с символов, расположенных на Авторы создали RPM- и Debian-пакеты,
«опорных» клавишах (типа ФЫВА и ОЛДЖ в
русской раскладке).
«Klavaro выделяется но Klavaro проще простого собрать самому
(он требует только GTK). Кому не до маши-
По мере вашего прогресса, Klavaro добав-
ляет все больше и больше прочих клавиш.
среди прочих своим нописных курсов, тем Klavaro очень приго-
дится – мы используем его ежедневно, и аш
Упражнения второго уровня проверяют при- интернационализмом.» набор безуперчен!
Отладчик OpenGL
Bugle
Версия 20070107 Сайт http://bugle.sourceforge.net
Л
юбой работяга скажет вам, что глав- Кроме библиотеки, Bugle включает гра-
ное – выбрать правильный инстру- фическую и командную оболочки, значи-
мент. Например, попытка забить тельно ускоряющие и упрощающие отлад-
гвоздь отверткой отнимет много времени, а ку. Например, чисто текстовая gldb может
может отнять и пальцы. То же самое – при автоматически загружать библиотеку Bugle и
отладке приложений: использование подходя- запускать вашу программу. Для остановки
щего инструмента делает работу легче и быст- и возобновления выполнения, задания точек
рее. Если вы анализируете приложение OpenGL, останова в OpenGL-функциях, запроса состоя-
Bugle – набор инструментов для отладки ния OpenGL, создания снимков экрана, разре- Bugle
OpenGL – сэкономит вам кучу времени и изба- шения или запрещения любых, определенных предоставляет содержимое буферов переднего и заднего
вит от головной боли. Bugle, фильтров и т.д. предоставляются про- несколько способов плана и глубины, выводить список перемен-
Ядро Bugle – разделяемая библиотека, кото- стые текстовые команды в духе GDB (отлад- опроса состояния ных состояния OpenGL, проверять текстуры,
рую ваша программа может предварительно чика GNU) Можно даже следить за стеком или OpenGL. просматривать список шейдеров и задавать
загружать для перехвата вызовов OpenGL. По запускать сам GDB. точки останова.
умолчанию эта библиотека просто пропускает Оболочка Gldb-gui делает все это и многое На данный момент нет двоичной вер-
их, но можно настроить Bugle на использование другое в приятном графическом окружении, сии Bugle, доступной для загрузки, так что
набора элегантных инструментов отладки, от построенном на GTK. С Gldb-gui легко мож- вам придется собрать его самостоятельно
простого журналирования всех вызовов OpenGL но прерывать выполнение и визуализовать из исходных текстов. Сделать это не слож-
до захвата видео с GL-выхода. Все эти функции но: только вызвать configure и make; но вам
реализованы в виде фильтров и настраиваются потребуются GTK и GTKGLExt для сборки гра-
в простом текстовом файле. Пример файла кон-
«Можно настроить Bugle фического интерфейса и FFmpeg для запи-
фигурации поставляется с дистрибутивом Bugle,
но если вы пожелаете создать свой собствен-
на использование набора си видео. Bugle дает возможность запросто
представить, что ваша программа делает в
ный, то документация превосходная. инструментов отладки.» каждый момент.
Звуковой редактор
Audacity
Версия 1.3.2 beta Сайт http://audacity.sourceforge.net
Hottest
Pick
М
ы рассматривали Audacity ранее в непроста. Зависимости в какой-то мере раз-
разделе HotPicks LXF54, учебни- решены путем включения некоторых библио-
ках по работе со звуком и несколь- тек в архив Audacity, например, PortAudio для
ких обзорах. Не удивляйтесь, что мы обраща- вывода звука, libsndfile для импорта и экспор-
емся к нему вновь: он до того хорош, что усто- та, и так далее – но вам точно потребуется
ять невозможно. последняя сборка WXGTK и поддержка жела-
Audacity – прекрасный, хорошо оснащен- емых аудио-форматов (таких, как OGG), и
ный звуковой редактор. Его графический libmad для MP3. Выполните ./configure, затем
интерфейс проворен и легок в использова- прочитайте вывод и проверьте, что все зави-
нии, и может с равным успехом применяться симости разрешены. Но как только версия 1.3
и для простейших задач, и в профессиональ- Audacity станет стабильной, и будет доступен
ной сфере. Имеется две версии Audacity: ста- двоичный пакет, большинство пользователей
бильная и менее зрелая бета-версия (мы рас- сможет избавиться от этих мук.
смотрим последнюю). Обе версии в основном
используют одинаковые формы и функции, Звуковые байты
но бета-версия построена на основе новей- Audacity – многодорожечный звуковой редак-
шего графического инструментария WXGTK тор. Вы можете импортировать аудио-данные Audacity набит ках. Можно также выбрать частоту дискрети-
и, по сравнению со старой, имеет более ухо- из любых стандартных форматов или записы- расширениями для зации для всего проекта.
женный вид (например, сглаживает шриф- вать их напрямую с любого источника звука, любых Главное назначение Audacity – редакти-
ты), да и вообще предоставляет более при- поддерживаемого вашей звуковой картой; преобразований, рование, а не приятный вид, и для этой цели
ятный и опрятный интерфейс пользователя. Audacity может даже синтезировать простые вроде этого предусмотрен вагон инструментов. Вы можете
эквалайзера.
Отрицательный момент, кроме нестабильнос- звуковые сигналы самостоятельно. Он управ- объединять и разбивать дорожки, вырезать,
ти, в том, что набор двоичных пакетов бета- ляет моно- или стерео-сигналами, и все загру- копировать и вставлять части, микшировать
версии весьма скуден, и если вы захотите женные в данный момент сигналы отобража- дорожки и многое другое. Панель инструмен-
попробовать приложение, придется собрать ются на экране. По умолчанию, звуковые тов позволяет сдвигать дорожки по времени,
его из исходного текста самостоятельно. отсчеты имеют внутреннее представление в увеличивать и уменьшать громкость во вре-
Полная функциональность Audacity соби- виде 32-битного числа с плавающей точкой, мени и даже редактировать сэмплы вручную.
рается по различным библиотекам от треть- для точности, но это, а также различные пара- Недавние изменения могут отображаться в
их лиц, так что самостоятельная компиляция метры экспорта, можно изменить в настрой- диалоге, позволяющем отменить ряд манипу-
ляций, сделанных за последнее время.
Наиболее мощные инструменты, предла-
Изучаем интерфейс Audacity гаемые Audacity, подключаются в виде рас-
ширений. Поддерживается два типа расши-
рений: расширения LADSPA (the Linux Audio
Developer’s Simple Plugin API – см. www.ladspa.
org) и расширения, написанные на языке про-
Панель управления
Знакомые кнопки, и делают что
граммирования Nyquist, диалекте Lisp (см.
ожидается: воспроизведение, www.cs.cmu.edu/~music/music.software.html ).
паузу, остановку и запись звука. Хотите – используйте Nyquist для создания
собственных расширений, но стандартный
набор, включенный в Audacity, предоставляет
Инструменты дорожек столько эффектов, что большинству пользо-
Выпадающее меню содержит вателей их хватит надолго. Примеры включа-
инструменты для изменения ют настраиваемый БПФ-фильтр, фазовраща-
способа отображения звука, тель, программу сжатия и эффект «квакуш-
а также конвертирования ки». Более практичные расширения выполня-
формата и скорости сэмпла.
ют такие задачи, как удаление шума щелчков
Инструменты и нормализация.
редактирования В целом, Audacity – впечатляющий пакет.
Здесь расположены основные С его продвинутыми инструментами и расши-
инструменты редактирования ряемостью он обладает колоссальной мощью,
Audacity, включая масштабирова- Индикаторы Визуализация дорожек оставаясь доступным обычному пользовате-
ние, сдвиг по времени и Индикаторы входного и Звуковые волны можно отображать лю. Более того, прилагаемая документация и
инструмент огибающей выходного уровня позволяют в виде зависимости амплитуды
online-учебники помогают новичкам момен-
(позволяющий редактировать легко обнаружить отсечку от времени с настраиваемым
громкость). тально освоиться с приложением. Ждем выхо-
звуковых данных. пользователем увеличением.
да стабильной версии 1.3!
JSHoldem
Версия 0.94 beta Сайт http://jsholdem.sourceforge.net
П
еред вторым кругом у вас на Хотя графика его напоминает детские
руках десятка и валет одной мас- рисунки мелом, JSHoldem имеет солидный
ти, поэтому вы удваиваете втем- AI для четырех компьютерных игроков – они
ную и прикупаете. Приходят валет, король не просто играют в карты, но также блефу-
и девятка, вызывая бешеный вихрь мыс- ют и пытаются заставить вас спасовать. Вы
лей. Что делать? Налицо стрит, и имеется начинаете с 500 единиц неизвестной валюты,
шанс на флеш – рискнуть или просто пос- и можете делать ставки от 20 до 120 единиц,
тавить на пару и надеяться, что ваша сда- или, если чувствуете полную уверенность в По крайней мере,
ча достаточно хороша, чтобы кто-то риск- удаче, можете идти ва-банк. здесь вы не сможете терные игроки меняют тактику, их очень
нул перебить? Возможно, даже придет трио JSHoldem норовит взвинтить напряже- в отчаянии поставить легко подбить на большие ставки, что поз-
(prile – прайл)... ние, используя паузы (после раздачи карт на кон вашу машину/ воляет выигрывать много разом, без нудно-
Если для вас это звучит полной белибер- или хода соперника), но если они вас раз- дом/жену/любимую го накопления.
приставку SNES...
дой, но вы заинтригованы техасским поке- дражают, можете увеличить скорость игры. Компьютерный покер никогда не ста-
ром «холдем» (в конце концов, это хороший Однако игра не совершенна: когда компью- нет столь же затягивающим, как реальная
баланс удачи и умения, а играть ужасно игра – ведь не видно выражений лица сопер-
интересно), поможет JSHoldem. Его даже ников и не слышно их шуточек, но JSHoldem
не нужно устанавливать; JSHoldem написан отлично работает, если учесть, что это даже
на HTML и JavaScript, так что просто рас- «Четыре компьютерных не отдельная программа. Акулам блефа он
пакуйте jsholdem-0.94-beta.zip и откройте в
вашем браузере index.html из получившего-
игрока блефуют, пытаясь может показаться слишком легким – но если
вы хотите научиться играть, то найдете его
ся каталога. заставить вас спасовать.» весьма полезным.
Dagii
Версия 0.3 Сайт www.dagii.org
Д
авным-давно, когда ПК были юны- ней мере активно развивается. Вдобавок он
ми, Sierra Online произвела рево- уже обзавелся собственными уникальными
люцию в компьютерных играх, функциями, выделяющими его на фоне ран-
создав графическую сюжетную игру (жанр них предложений: скажем, включены опция
«Adventure»). По сегодняшним меркам, ран- создания снимков экрана и инструменты
ние игры Sierra выглядели просто чудо- для тех, кто создает или отлаживает AGI- Что может быть make dep и make. После запуска Dagii ищет
вищно, но в них все еще интересно играть. игры, например, встроенный просмотрщик лучше гуляния файлы с игровыми данными в текущем
Желающим окунуться в историю игр реко- спрайтов. с вашей свинкой каталоге и каталоге /usr/share/games/sierra.
мендуем Dagii – интерпретатор, позволяю- Разработчик Dagii Дэвид Саймондс [David в лесу, полном Переопределить этот путь можно, указав
щий играть в классику, включая King’s Quest Symonds] пока не создает двоичные пакеты драконов? Black новый в командной строке или при помощи
Cauldron в Dagii.
и Space Quest под Linux. для загрузки; придется вам закатать рука- опции gameselecter.search_paths в файле
Если это ваша страсть, то вам знакомы и ва и собрать его вручную. Требуются толь- конфигурации.
другие AGI-интерпретаторы для Linux, напри- ко SDL и libpng – они, вероятно, у вас уже Dagii весьма изящно закрыл брешь. Ну
мер, Nagi и Sarien. Увы, работа над обоими в имеются. Никаких необычных опций ком- да, звука в нем пока не предусмотрено,
последние годы приостановилась. Движок пиляции нет, так что выполните ./configure, работает он только с версиями игр Sierra для
Sarien ввели в популярный и чрезвычайно PC и не поддерживает никаких самопальных
неудачно названный проект ScummVM, но
релизы с поддержкой AGI еще не готовы. В
«Играйте в классику, AGI, но не так долго всего этого ждать. А
теперь, если вы нас извините, мы прогуляем
данный момент Daggi завершен в меньшей
степени, чем эти ранние движки, и обеспе-
включая King’s Quest и любимую свинку...
Breve
Версия 2.5.1 Сайт www.spiderland.org
И
скусственный интеллект (ИИ) – обо- наблюдаемый у стай скворцов. Минут через
юдоострый меч. Это волнующий и десять он становится пугающе натуральным.
чрезвычайно сложный предмет, вот- Просто глядя на экран, вы начинаете пони-
чина академиков и разработчиков игр. Продукт мать, как каждая птица находит свое место
диссертации Йона Кляйна [Jon Klein], Breve, не в постоянно движущейся массе виртуальных
исключение. Он делает изучение ИИ не легче, пернатых. Без подобных инструментов, для
но забавнее. получения того же уровня понимания мы
Вам не нужно знать о брайнтенберговской были бы обречены на чтение The Emergence
[V.Braitenberg] модели Роя, чтобы получить of Collective Behaviour in Evolving Populations После ночи лать один из множества демо-примеров. Но
удовольствие от этого приложения. Чтобы of Flying Agents [Возникновение коллектив- расчетов, эта даже не тронув ни строчки, вы можете вза-
увидеть ИИ в действии, просто запустите при- ного поведения в эволюционирующей массе имитация учит имодействовать с 3D-моделями, перемещая
ложение и выберите меню Demo. Вы увидите летающих агентов]. ходить кубоид объекты и меняя различные параметры. К
3D-имитацию выбранной модели, вместе с Если вы хотите с чем-то повозиться, то у с четырьмя основному приложению добавляются расши-
конечностями.
текстовым окном, отображающим ее исход- вас есть только Steve, Стив – это имя, данное рения, пригодные в любой имитации: хороший
ный код. Для начала представления просто объектно-ориентированному языку програм- пример – MIDI-плагин, связанный с имитацией
щелкните на кнопке Play. мирования, использованному для создания Роя, он посылает ноты на синтезатор. Online-
Некоторые демонстрации удивительны. симуляций Breve. Он поразительно прост для документация также превосходна, содержит
Полюбуйтесь, как кубоид с четырьмя конеч- понимания: лучший способ начать – переде- различные учебники и даже курс для углуб-
ностями пытается встать на ноги и прой- ленно изучающих материал. Breve – луч света
тись по холмистой местности, или посмот-
рите знаменитую игру Жизнь в трехмерном
«Breve не облегчает в темном царстве, без которого многие из нас
так и сидели бы в потемках.
варианте. Еще одна демонстрация направля-
ет случайное скопление птиц (отображаемых
изучение ИИ, но делает
на экране конусами) в естественный полет, его забавным.»
ExactImage
Версия 0.3.1 Сайт www.exactcode.de/oss/exact-image
Н
емецкий магазин Linux-программ вается. Затем идет Econvert, выполняющий
ExactCODE пытается внести попу- работу convert и способный изменять формат
лярный пакет обработки изображе- файла или глубину цвета, вращать, перевора-
ний ImageMagick в список ископаемых, заме- чивать или масштабировать изображение.
нив его более новым и более эффективным Компонент просмотра изображений,
ExactImage. Работа над ним не завершена, и Edisplay, бросится в глаза пользователям как
он не поддерживает такого количества фор- главным козырь по сравнению с ImageMagick.
матов, как конкурент – ImageMagick, но скоро Хотя на данный момент это просто про-
добавятся новые. смотрщик – с ним нельзя трансформиро- Просмотрщик
API ExactImage выполняет обычные функ- вать изображения и сохранять результаты, изображений http://enlightenment.freedesktop.org, возьмите
ции обработки изображений – преобразование как с display – он намного, намного быстрее. ExactImage, EDisplay, последние архивы libeet и libevas, загрузите
цвета, масштабирование, вращение – и функ- Изображения также можно быстро масштаби- использует их, скомпилируйте и установите. Затем мож-
цию поинтереснее: ускорение для кодеков. ровать (со сглаживанием или без) и панорами- ускорение OpenGL но компилировать ExactImage – простыми
для молниеносного
Например, JPEG-кодек может выполнять вра- ровать при помощи мыши. ./configure и make.
масштабирования
щение JPEG-изображений без потери качества Двоичные пакеты пока не доступны для Хотя ExactImage устанавливается долгонько,
и фильтрации
и быстро уменьшать размеры картинок. загрузки: вам придется самостоятельно изображений. мы думаем, что он того стоит – даже на столь
Кроме API, ExactImage содержит набор собрать его из исходных текстов. Зайдите на ранней стадии разработки. Разработчикам и
инструментов, похожих на имеющиеся в пользователям (особенно тем, кому нужно
ImageMagick. Инструмент Edentify копиру- манипулировать множеством изображений)
ет ImageMagick’овский identify, показывая
«Есть обычные функции пригодятся его скоростные функции обработ-
информацию об изображении: формат фай-
ла, размеры и детали цветового пространства.
обработки изображений ки изображений, да и функции вроде враще-
ния JPEG-снимков без дополнительных иска-
Более подробный вывод пока не поддержи- и ускорение для кодеков.» жений тоже очень украсят их жизнь.
Спасательный диск
Также выпущены
SystemRescueCD Новые и обновленные программы,
заслуживающие вашего внимания...
Х
отя вашего внимания пытается вят полный (чтение/запись) доступ к файло- Bacula 2.0.1 Сетевая система
добиться масса спасательных дис- вым системам NTFS. Для управления разде- резервирования www.bacula.org
ков, одним из наиболее продвинутых лами имеется Parted; для резервирования – DejaVu fonts 2.14 Популярные шрифты
является SystemRescueCD. Его размер близок Partimage. Вы также найдете полный набор TrueType http://dejavu.sourceforge.net
Не позволяйте
к 130 МБ, зато вы получаете массу удовольс- сетевых инструментов, включая поддержку
очаровашке-Туксу DrawPile 0.3.0 Программа коллективного
твия от этих многочисленных байтов. Можете Samba и ресурсов NFS. Далее, имеется пол- рисования http://drawpile.sourceforge.net
обдурить вас.
выбрать традиционный способ: просто про- ный дистрибутив X.org вместе с WindowMaker SystemRescueCD Fiwix 0.3.0 Свободное, совместимое
жечь образ на диск и использовать его; или плюс Firefox 2.0, GParted и текстовый редактор намного мощнее с Linux ядро для целей обучения
создать свой собственный образ; или даже GVim. Прямо-таки швейцарский перочинный вашего среднего Live- www.fiwix.org
установить и использовать его на USB-брелке, нож среди спасательных дисков! дистрибутива.
Grsync 0.5.2 Графический интерфейс
если пожелаете. Online-документация и силь- для инструмента синхронизации каталогов
ное сообщество помогут, если вам потребует- rsync www.opbyte.it/grsync
ся нечто более экзотическое.
H2 1.0/2007-01-17 Быстрый
Хотя это всего лишь минималистичный встраиваемый движок базы данных
LiveCD-дистрибутив, SystemRescueCD предла- на чистой Java www.h2database.com
гает в приглашении загрузки кучу других воз-
HDparm 6.9 Инструментарий для работы
можностей: невероятно полезный memtester, с параметрами жестких дисков ATA
жизненно важный при определении повреж- http://sourceforge.net/projects/hdparm
денной памяти; Live-дистрибутив FreeDOS,
KPlayer 0.6 Медиа-плейер для KDE на
если вам нужна совместимость с DOS; и базе MPlayer http://kplayer.sourceforge.net
Aida – инструмент диагностики оборудования.
LinuxBIOS 2-2536 Замените вашу BIOS
Естественно, имеется и Linux, на базе Gentoo.
открытой, основанной на Linux
SystemRescueCD поддерживает все стан- альтернативой www.linuxbios.org
дартные файловые системы Linux, а основан-
Mol 0.9.72_pre2 Новая жизнь клона
ные на Fuse инструменты NTFS-3G предоста-
виртуализации PPC
http://mac-on-linux.sourceforge.net
Инструмент настройки X Photo Organizer 2.33b Менеджер
фотографий http://po.shaftnet.org
KX Generator
Версия 0.3.7 Сайт http://kxgenerator.xt.pl
Stella 2.3.5 Соблазнительный эмулятор
Atari 2600 VCS http://stella.sourceforge.net
Подстройте
П
ринимая настройку X по умолчанию в Пока что охвачены далеко не все драйве-
специальные опции
вашем дистрибутиве, вы вряд ли реа- ра: поддерживаются несколько видеодрай-
для некоторых X-
лизуете все возможности оборудова- веров и унаследованные драйвера клавиа-
драйверов, среди
ния, особенно если хотите работать с несколь- туры и мыши. Когда их поддержка обрастет которых
кими мониторами. В этом случае можно или мясом, любители насладиться подстройкой проприетарный
пойти тернистым путем самостоятельной своих систем вряд ли смогут обойтись без KX драйвер Nvidia, при
настройки X, или обратиться к KX Generator. Generator. LXF помощи диалогов.
KX Generator создан для KDE, но требу- Stella: возврат к видеоиграм 70-х.
ет только базовые библиотеки, так что не
пугайтесь, если вы KDE-фоб. Чтобы полно- Xfce 4.4.0 Легковесный рабочий стол,
стью задействовать инструменты графичес- теперь с новым файловым менеджером
ких режимов KX Generator, потребуется так- www.xfce.org
же утилита GTF, используемая для расчета
режимов X.
Через серию диалогов можно настроить
любой аспект вашей X-конфигурации, вклю-
чая основные пункты: выбор драйвера для
видеокарты, мыши и клавиатуры, редактиро-
вание атрибутов экрана и создание сервер-
ного окружения. Мы сочли наиболее полез-
ной функцией KX Generator поддержку более
продвинутых опций настройки, на которые
Крутые эффекты с Xfce.
способны X-драйвера и которые трудно при-
помнить, не закапываясь в man-страницы.
И мило, и практично
Что важнее: внешний глянец или функци- другим путем: они поразмыслили о том, что
ональность? Когда в 2001 году появилась люди делают на своих компьютерах, и созда-
Mac OS X, многие злопыхатели глумились ли эффекты рабочего стола в соответствии с
над ее блестящим графическим интерфей- этим. Вместо подхода, практикуемого Xgl, по
сом, отметая виджеты и плавные тени как типу: «Во какой эффект ряби на воде! Давайте
архитектурные излишества. И наоборот, сто- его добавим!», команда Metisse рассуждает:
ронники Mac заявляли, что привлекательный «Как бы пользователям запускать и просматри-
интерфейс улучшает рабочую среду, потому вать больше программ одновременно?»
что лучше воспринимается глазом, чем серые Metisse вносит и свою лепту бессмыслен-
рабочие столы прошлого. ных завитушек, но его технология и то, как он
Похожие дебаты развернулись и в сооб- раскручивает рабочие столы Linux, произвели
Майк Сондерс ществе Linux после выхода Xgl и Compiz. на нас сильное впечатление. А всего лучше,
любовно подбирает Вращающийся 3D-куб, может, и красив, что вы можете сами опробовать его прямо с
содержимое диска Linux
но способствует ли он хорошей работе? DVD этого месяца, благодаря новой Live-вер-
Format, а также
поддерживает сайт www. Лучше ли миниатюры окон, чем пане- сии Mandriva, в которую включен Metisse –
linuxformat.co.uk. ли задач? Вправду ли отбрасываемые просто вставьте диск в привод, перезагрузи-
тени выделяют окна, или только созда- тесь, и готово! На DVD этого месяца много
ют корявый полу-трехмерный вид? чего интересного и достойного ознакомления,
Пока все прочие затопляли Usenet включая OpenSUSE 10.2 Live и уйму полезной
этими разборками, разработчики трех- документации.
мерного рабочего стола Metisse пошли mike.saunders@futurenet.co.uk
5 Облупим 6 Откроем
Дважды щелкните и Откройте текстовый
зажмите левую редактор, напечатай-
кнопку мыши на те несколько слов,
границе окна, чтобы затем перекройте ок-
увидеть кнопки но редактора другим
«сворачивания»; окном. Выделите мы-
двигайте мышью, шью текст в окне ре-
чтобы «отогнуть» дактора, и перекры-
край окна. вающее окно «ото-
гнется»!
Дистрибутив Linux
3 Поедем 4 Вертим
Перед показом ра- Нажмите и при-
бочего стола держите левую
Gnome Mandriva кнопку мыши на
задаст вам не- границе окна – по-
сколько вопросов явится меню мани-
о конфигурации. пуляций.
Чтобы начать ра- «Протащите» мы-
боту, откройте ме- шью до кнопки
ню Applications, Y Rotate, чтобы
расположенное прокрутить окно
вверху слева. вокруг своей оси.
7 Настроим 8 Завершаем
Для изменения на- Поработав в
строек Mandriva Mandriva, нажмите
зайдите в меню System, а за-
Applications> System тем – Shut Down,
>Configure Your чтобы выключить
Computer (это Live- или перезагрузить
дистрибутив, так компьютер.
что они не сохра-
нятся после переза-
грузки).
Дистрибутив Linux
Дистрибутив Linux
GNewSense
В
ообразите такую картину: вы сиди- граммы: ведь их могут отнять у вас в любой
те себе за компьютером и работае- момент.
те в Linux, используя свои любимые Да, эта ситуация маловероятна, но все же
программы. Заходите в YouTube за самыми мы нередко забываем о важности свободы
свежими классными новинками, но…оказы- ПО. Возможно, кому-то Столлмен и действует
вается, что их нельзя просмотреть! YouTube на нервы, но благодаря его неутомимым тру-
обновила свои Flash-приложения, и теперь дам почти у каждой проприетарной програм-
они требуют новую версию проигрывателя, а мы есть свободная альтернатива. А как насчет
выхода его под Linux ждать еще ой как долго! дистрибутивов Linux? Даже бесплатные-как-
Опаньки, думаете вы, и решаете с горя сыг- пиво дистрибутивы сообществ вроде Ubuntu
рать в BZFlag. Бумс! Ваш Х-сервер завершает включают двоичные прошивки и предоставля-
работу и оставляет вас в текстовом терминале, ют легкий доступ к несвободным программам.
потому что ваша лицензия на чисто двоичные Противостоять искушению очень сложно.
видеодрайверы истекла. Тут вы, обозленный, GNewSense – это переделанная версия
хотите успокоиться, послушав какой-нибудь Ubuntu 6.06, из которой убрали все несвобод-
мирный файл .WMA через MPlayer. ное ПО. Она не только унаследовала превос-
Тук-тук! А это полиция под дверью, кото- ходный дизайн Ubuntu, основанный на Debian,
рая ловит вас на использовании Audio® но и изгнала проприетарные части, не поз- Добавлять новое ПО блаженно-просто благодаря Synaptic,
Technology®, запатентованной Microsoft® воляющие вашей системе быть стопроцент- графической надстройке над менеджером пакетов APT от Debian.
исключительно для Microsoft OS. И пока вас но свободной. Устанавливая и распространяя
везут в полицейский участок, у вас в голове GNewSense, вы подлинно способствуете про-
звучит голос бородатого хакера: «А где же движению идеи свободы ПО плюс получаете Среда рабочего стола
наша свобода?» Ричард Столлмен [Richard
Stallman] напоминает вам, как легко попасть-
гарантию: все, что есть на вашей машине,
можно выложить для открытого доступа, и с
Xfce 4.4
ся, полагаясь только на проприетарные про- точки зрения этики все тип-топ. Некогда CDE-подобный модуль
Для запуска GNewSense загрузите компью- FVWM, Xfce вырос до превосход-
тер с нашего DVD, и выберите его в загрузоч- ной среды рабочего стола на
ном меню (потребуется 256 MБ ОЗУ). Подобно основе GTK 2 и стал облегченной
Ubuntu, это Live-дистрибутив с рабочим столом альтернативой Gnome. Обычно
Gnome – можете поиграть с ним или щелкнуть Xfce запускается в два раза быс-
дважды на значке Install на рабочем столе, если трее, чем Gnome, и его основные
вы хотите использовать его постоянно (потре- компоненты (панель, файловый
менеджер и т.д.) требуют значи-
буется не менее 5 ГБ свободного пространс-
тельно меньше памяти. Если на Команда Xfce заменила
тва на жестком диске). Программа установки старенький файловый
вашем компьютере меньше
GNewSense отличается изумительной просто- 256 Mб ОЗУ, и вы считаете, что менеджер шикарным Thunar.
той использования – просто следуйте подсказ- Gnome и KDE тормозят, было бы
кам, и у вас уйдет на все не более получаса. мудро дать шанс Xfce.
В папке Examples на рабочем столе – А уж если возникнут проблемы, загляните на Xfce 4.4 шагнул далеко вперед xfce4-4.4.0-installer.run из разде-
информация о GNewSense. www.gnewsense.org и www.ubuntuforums.org. по сравнению с прошлым круп- ла Desktop/Xfce нашего DVD в
ным релизом (4.2), применив но- свою домашнюю директорию.
вый шустрый менеджер файлов Откройте терминал и введите
под названием Thunar взамен sh xfce4-4.4.0-installer.run
старичка Xffm. Далее следуйте подсказкам, и
Добавились две новых утили- Xfce будет скомпилирован и ус-
3 Завершение ты Mousepad и Orage – соответ- тановлен (если вы плохо пред-
Закончив работу, ственно, текстовый редактор и ставляете, куда его запихнуть,
щелкните по пиктог- календарь. Разработчикам также оставьте путь по умолчанию:
рамме с зеленым удалось увеличить стабильность /home/имяпользователя/local).
гекконом, перейдите расширений панели: если один О нехватке какой-нибудь зависи-
на вкладку Leave из апплетов «упадет», он не пота- мости вам сообщат – подберите
и выберите один из щит за собой всю панель цели- ее с помощью менеджера паке-
предложенных вари- ком. А если вы – поклонник знач- тов. Покончив с этим, выйдите из
антов. В случае пере- ков на рабочем столе, радуйтесь: среды рабочего стола, чтоб вер-
загрузки не забудьте 4.4 включил и эту желанную нуться в окно входа в систему,
вынуть DVD, когда функцию. выберите сессию failsafe или
компьютер Чтобы установить Xfce, снача- terminal и, чтобы загрузиться в
перезапустится. ла удалите все ранее установлен- Xfce, введите команду:
ные версии через менеджер па- ~/local/bin/startxfce4
кетов, затем скопируйте файл
Документация
If (колес_
оторванных_от_земли
> 3) { ваша_
крутизна++; }
Информация
о диске
ВНИМАТЕЛЬНО ПРОЧТИТЕ ЭТО ПЕРЕД ТЕМ, КАК ИСПОЛЬЗОВАТЬ 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
ЖУРНАЛ
Blender ....................Файлы из учебника Blender Шахматные фигуры
Gtk ...........................Код примеров статьи. в Brutal Chess выглядят
JavaEE .....................Код примеров статьи. до того реально, что
Mono........................Код примеров статьи. немудрено по ошибке
PDFs ........................Статьи из предыдущих LXF.
сунуть руку в экран.
Roundup...................Системы управления версиями.
SugarCRM................Код примеров статьи.
Unix API ...................Код примеров статьи.
ЗВУК
AlsaPlayer ...............Медиа-плейер.
Aqualung ..................Музыкальный плейер.
Sweep ......................Звуковой редактор.
РАБОЧИЙ СТОЛ
AbiWord ...................Текстовый редактор.
AmiWM ....................Оконный менеджер а-ля Workbench.
F-Spot ......................Менеджер фотографий.
GDesklets.................Мини-утилиты рабочего стола.
MLVWM ...................Классический оконный менеджер
в стиле Mac.
PeaZip .....................Архиватор файлов.
ROX..........................Рабочий стол в стиле RISC OS.
Skinning ...................Скины Gnome и KDE.
Xfce .........................Среда рабочего стола. HELP
Answers ...................Решение проблем в Linux. Bash.........................Командный интерпретатор.
РАЗРАБОТКА Linuxpedia ...............Энциклопедия Linux. CheckInstall .............Программа для создания
Anjuta ......................IDE на основе GTK 2. RUTE ........................Руководство двоичных пакетов.
KDevelop .................Интегрированная среда разработки. по администрированию Linux. Coreutils ..................Утилиты командной строки.
KScope ....................Редактор исходного кода. CSV ..........................Содержание дисков LXF.
Mono........................Открытая реализация Microsoft HOTPICKS GLib .........................Низкоуровневая библиотека.
.NET. Audacity ...................Звуковой редактор. Glibc.........................Библиотека GNU C.
MonoDevelop ...........C# IDE. Breve .......................Инструмент визуализации AI. GTK ..........................GUI-инструментарий.
Bugle........................Отладчик OpenGL. HardInfo ...................Информация и оценка системы.
ДИСТРИБУТИВЫ Dagii ........................Интерпретатор Jigdo ........................Создатель ISO-образов.
gNewSense ..............Устанавливаемый и Live- приключенческих игр. Kernel ......................Свежий релиз ядра Linux.
дистрибутив на базе Ubuntu. ExactImage ..............Библиотека обработки LibXML2 ..................Анализатор и набор
Mandriva..................Live-дистрибутив. изображений. инструментов XML.
OpenSUSE ................Live-дистрибутив, спонсируемый JSHoldem ................Web-игра. Ncurses....................Оконный инструментарий
Novell. Klavaro ....................Тренажер клавиатуры. текстового режима.
KX Generator ...........Инструмент настройки X-сервера. Nvidia driver ............Графический драйвер.
Qemulator ................Интерфейс пользователя Qemu. Python......................Язык программирования.
SystemRescueCD ....Инструмент восстановления Rawrite ....................Программа записи
Linux-системы. изображений на дискеты.
SBM .........................Smart Boot Manager.
ИНТЕРНЕТ SDL ..........................Библиотека мультимедиа.
KTorrent ...................Клиент BitTorrent.
Netrik .......................Текстовый браузер.
SeaMonkey ..............Пакет для работы в Интернете.
БЕЗОПАСНОСТЬ
ClamAV ....................Антивирус.
Firestarter ................Визуальный брандмауэр.
John the Ripper .......Взломщик паролей.
в мае
Допечатная подготовка
Мария Пучкова, Родион Водейко
Креативный директор
Станислав Медведев
Технический директор
Денис Филиппов
Директор по рекламе
Денис Игнатов +7 812 965 7236 advert@linuxformat.ru
АПГРЕЙД
Заместитель генерального директора
Софья Виниченко
Генеральный директор
Павел Фролов
УЧРЕДИТЕЛИ
частные лица
по всем
ИЗДАТЕЛИ
Станислав Медведев, Виктор Федосеев, Павел Фролов
КОНТАКТНАЯ ИНФОРМАЦИЯ
Wine: потерянное руководство
UK: Linux Format, 30 Monmouth Street, Bath BA1 2BW Ветераны раскроют фокусы, с помощью которых они заставляют
Tel 01225 442244 Email: linuxformat@futurenet.co.uk
РОССИЯ: работать в Wine приложения Windows и игры.
Санкт-Петербург (редакция): ул. Гончарная, 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
Ян Мердрок
редакция Linux Format не несет ответственность за повреждения или ущерб, нанесенные вашему
компьютеру и переферии вследствие использования тех или иных советов.
За содержание рекламных материалов редакция ответственности не несет.
Linux-зарегистрированная торговая марка Линуса Торвальдса (Linus Torvalds). Название «GNU/
Linux» заменяется на «Linux» в целях сокращения. Остальные торговые марки являются
Интервью
собственностью их законных владельцев.
Linux Format является торговой маркой Future Publishing Ltd (Future plc group company). Побеседуем с основателем проекта Debian
За информацией о журналах, издаваемых Future plc group company, обращайтесь
http://www.futureplc.com
Плюсы подписки
- подписка дешевле!
- гарантированное получение
нового номера журнала!
ПОДПИСКА НА LINUX FORMAT
ПОДПИСКА ПО КАТАЛОГАМ СНГ И БЛИЖНЕГО ЗАРУБЕЖЬЯ
Каталог «Российская Пресса» – совместный проект Белоруссия
Государственного предприятия «Казпочта» , Агентства • по Каталогу изданий стран СНГ через РГО «Белпочта» (220050, г.Минск, пр-т
«Книга-Сервис» и АРЗИ. Ф.Скорины, 10);
Грузия
Блок изданий АРЗИ в национальных Каталогах • по списку номенклатуры «АРЗИ»» через АО «Сакпресса» (380019, г.Тбилиси,
Украины и Беларуси. В Азербайджане, Армении, ул.Хошараульская, 29 ) и АО «Мацне» (380060, г.Тбилиси, пр-т Гамсахурдия, 42);
Грузии, Киргизии, Узбекистане и Молдове - по изда- Казахстан
ниям, включенным в Объединенный каталог, распро- • по Каталогу «Российская Пресса» через ОАО «Казпочта» и ЗАО «Евразия пресс»;
страняемые через АРЗИ. Молдавия
• по каталогу через ГП «Пошта Молдавей» (МД-2012, г.Кишинев, бул.Штефан чел
Азербайджан Маре, 134);
• по Объединенному каталогу российских изданий • по списку через ГУП «Почта Приднестровья» (МD-3300, г.Тирасполь, ул.Ленина, 17);
через Предприятие по распространению печати • по прайс-листу через ООО Агентство «Editil Periodice» (2012, г.Кишинев, бул. Штефан
«Гасид»(370102, г. Баку, ул. Джавадхана, 21); чел Маре, 134).
Армения Узбекистан
• по списку номенклатуры «АРЗИ» через ГЗАО • по Каталогу «Davriy nashrlar» российские издания через Агентство по распростране-
«Армпечать» (375005, г.Ереван, пл.Сасунци нию печати «Davriy nashrlar» (7000029, Ташкент, пл.Мустакиллик, 5/3, офис 33);
Давида, д.2) и ЗАО «Контакт-Мамул» (375002, Украина
Г.Ереван, ул.Сарьяна, 22); • Киевский главпочтамт.
• Подписное агентство «KSS» Телефон/факс (044)270-62-20, 270-62-22
АЛЬТЕРНАТИВНЫЕ
АГЕНСТВА РФ
Агентство «Интер-Почта»
(095) 500-00-60, курьерская
доставка по Москве.
Агентство «УралПресс»
• Екатеринбург, Березовский,
В. Пышма, Первоуральск
тел. (343) 375-80-71,
375-84-93, 375-84-39,
факс 375-62-74,
info@ural-press.ru
• Нижний Тагил
тел. (3435) 411448, 417709,
ntagil@ural-press.ru
• Челябинск
тел. (351) 262-90-03,
262-90-05,
pochta@chel.surnet.ru
• Пермь
тел. (3422) 60-24-40,
60-22-95, 60-35-42,
parma-press@permonline.ru