Журнал LinuxFormat - перейти на главную

LXF87-88:KDE 4

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Полигон идей)
 
(не показаны 7 промежуточных версий 1 участника)
Строка 83: Строка 83:
 
более интуитивной: нет смысла дарить пользователю мощь ''KPArts'' или
 
более интуитивной: нет смысла дарить пользователю мощь ''KPArts'' или
 
''KIO slaves'', если он даже не подозревает о подарке. Вот как сильно разработчики KDE хотят, чтобы вы использовали их рабочий стол.
 
''KIO slaves'', если он даже не подозревает о подарке. Вот как сильно разработчики KDE хотят, чтобы вы использовали их рабочий стол.
 +
 +
==Plasma и Solid==
 +
 +
:Не парьтесь с настройкой оборудования: лучше поиграйте с виджетами.
 +
 +
''Plasma'' – «интегрированный рабочий стол» ''Appeal'', и это первое, что бросится в глаза в KDE 4. Эффекты ''Plasma'', в отличие от многих других новых технологий этой версии, вы сможете увидеть на рабочем столе.
 +
 +
Если вы не программист, то старый KDE 3 для вас нерасширяем:
 +
невозможно создавать собственные элементы интерфейса или добавлять функции к рабочему столу. Вы ограничены в использовании предоставляемых инструментов, и их недостаточно. Самое популярное
 +
приложение для расширения функциональности KDE 3, ''SuperKaramba'',
 +
больше похоже на одномоментный «хак», чем на основу для расширений. Но это не вина автора прежней ''Karamba'', Ганса Карлссона [Hans Karlsson], а следствие слабой поддержки расширений в KDE, отсюда
 +
и «хаки»: просто не было другого способа решить проблему. ''Plasma'' –
 +
средство KDE 4, призванное исправить этот недостаток. Это интерфейс
 +
к рабочему столу, способ добавлять расширения, не ломая машину.
 +
 +
===Проблема Kicker===
 +
 +
К сожалению, разработка ''Plasma'' зависит от некоторых других функции
 +
KDE 4, и потому она шла медленно. Лидер проекта, Аарон Сейго, до
 +
июля 2006 г. дожидался стабилизации новых API, достаточной, чтобы
 +
начать разработку, и многое изменилось в сентябре, после конференции Akademy в Дублине (ежегодная встреча KDE-сообщества).
 +
 +
Сейго имеет огромный опыт управления проектами типа ''Plasma'', и
 +
к разработке ''Plasma'' его привела, прежде всего, его работа над KDE-панелью ''Kicker''. ''Kicker'' часто воспринимается как некий «хак» (похоже, это общая тема приложений KDE). Он не предусматривал обработки
 +
прозрачности, кнопок или множественных апплетов, и в результате
 +
добавления этих функций исходный код стал неуправляемым и сложным в сопровождении. Были случаи, когда разработчики, хотевшие всего-навсего сменить цветовую схему, обнаруживали, что проще
 +
ответвить ''Kicker'' и решать свои задачи в этом коде, чем вносить свои
 +
изменения в исходный проект с тем же самым эффектом. Сайт http://kde-apps.org содержит некоторые ответвления ''Kicker'', которые вносили
 +
в него только косметические изменения, не влияя на суть исходного
 +
проекта. ''Kicker'' даже научили автоматически перезагружаться, если он
 +
зафиксирует крах своего собственного процесса.
 +
 +
Частично эта проблема вызвана тем, что подавляющее большинство приложений KDE разработано на языке ''C++''. Он очень мощный, но, по словам Сейго, «может и крышу снести». ''C++'' слишком сложен
 +
для разработки простых расширений и расставляет слишком много
 +
ловушек для неосторожных программистов. ''SuperKaramba'' обходит
 +
эту проблему, используя язык ''Python'', довольно простой по сравнению с ''C++'', и подобное сделано и в ''Plasma''. ''Plasma'' по-прежнему будет
 +
разрабатываться на ''C++'', но расширения предполагается писать на
 +
''JavaScript'', в основном потому, объясняет Сейго, что ''JavaScript'' гибок
 +
и прост. Также планируется поддержка других популярных языков,
 +
включая ''Python'' и ''Ruby''.
 +
 +
===Создайте свой рабочий стол===
 +
 +
Лично на вас окажет влияние тот способ, которым ''Plasma'' использует
 +
пространство рабочего стола. ''Plasma'' заменит метафору иконок тем,
 +
что лучше соответствует современным технологиям. Апплеты, подобные предлагаемым ''SuperKaramba'', станут разменной монетой для рабочего стола, а компоненты типа ''Kicker'' или менеджера задач будут
 +
представлены отдельными апплетами ''Plasma''. Дойдет даже до перетаскивания в апплеты компонентов из некоторых основных приложений.
 +
Например, перетаскивание папки входящих сообщений из ''KMail'' на ваш
 +
рабочий стол могло бы динамически создать, скажем, апплет оповещений о поступлении новой почты.
 +
 +
Вот тут-то и пригодилась идея KDE об абстракции данных, потому
 +
что если у ''SuperKaramba'' и есть проблема, так это недостаток согласованности – существует десяток апплетов для вывода информации о погоде или мониторинга системы, и каждый собирает данные по-своему. Отделение данных от интерфейса апплета будет означать, что как
 +
только будет создан внутренний механизм сбора информации о погоде
 +
или о системе, каждый, кто обладает минимальными художественными способностями, сможет легко добавить пользовательский интерфейс. Сложность здесь в разработке источников данных. Они будут
 +
многомерными (как база данных), и разрабатываются на ''C++''. При этом
 +
каждый источник сможет иметь более одного атрибута – например,
 +
число писем в вашем почтовом ящике наряду с количеством писем от
 +
конкретного человека.
 +
 +
KDE 4 собирается свернуть менее успешные части KDE 3, а оставшиеся упростить. Иногда достаточно изменить соответствующий API,
 +
иногда приходится создавать новый, как в случае с ''Plasma''.
 +
 +
Но есть несколько областей, нуждающихся в полном переосмыслении и разработке с нуля, например, медиа-проигрыватель. ''Solid'' и ''Phonon'' – два новых API, спроектированных, чтобы сделать KDE максимально портируемым – и это особенно важно сейчас,
 +
когда свободная версия ''Qt'' доступна для операционных систем Mac OS X и Microsoft Windows. Как и в случае с Plasma, этот слой абстракции требует разделения на интерфейсную (front-end) и фоновую (back-end)
 +
части. ''Solid'' и ''Phonon'' отделяют данные от пользовательского интерфейса настолько, чтобы фоновый поставщик данных можно было менять, а интерфейсная часть продолжала бы работать. Все это – благодаря мощному механизму «сигналов» и «слотов» в Qt, дающих программистам свободу создавать интерфейсы в ПО.
 +
 +
===Solid’ная конфигурация===
 +
 +
''Solid'' – это слой аппаратной абстракции, который KDE будет использовать в будущем. Он поможет забыть о настройке оборудования, и,
 +
будем надеяться, сотрет грань между приложениями для конкретных
 +
устройств. Лучший пример – беспроводные сети. При использовании ''Solid'', информация о сетевом соединении и его состояние станет
 +
доступна любому приложению KDE, использующему ''Solid'', причем ему
 +
не надо будет вникать в особенности оборудования. Это означает, что
 +
апплет ''Plasma'', менеджер сети или даже ваш FTP-клиент будут способны перемещаться между беспроводными сетями или отслеживать статус соединения, не надоедая вам лишними запросами пароля.
 +
 +
В KDE 3 обнаружением и настройкой оборудования вынуждено
 +
заниматься каждое приложение. Например, для настройки ''K3b'' вам
 +
нужно сообщить, какие CD/DVD-приводы вы используете. ''Solid'', в
 +
фоновом режиме, делает эту информацию доступной для всех остальных средств записи CD/DVD, и вам не нужно вводить одну и ту же
 +
информацию дважды. Это особенно важно для областей, где приложения для работы можно выбирать. Так, в KDE 3 есть два инструмента для работы с беспроводными сетями (''KNetworkManager'' и ''KWiFiManager''),
 +
а также различные приложения для определения оборудования, и их
 +
следует переработать в KDE 4, чтобы использовать преимущества аппаратной абстракции ''Solid''. В этих случаях пользовательский интерфейс
 +
''Plasma'' будет расположен поверх слоя абстракции ''Solid'', и вам не придется каждый раз «изобретать велосипед».
 +
 +
''Solid'' работает в так называемых доменах. Они сообщают максимум
 +
информации о затрагиваемом оборудовании (хотя непосредственно с
 +
ним не взаимодействуют). Есть домены для распознавания оборудования, управления питанием и управления сетью. Поверх доменов располагаются агенты политик (policy agent), занимающиеся характеристика
 +
ми оборудования. В данный момент их всего два: один для управления
 +
сетевыми соединениями и второй – для обработки мультимедиа.
 +
 +
Может показаться, что технологии, подобные ''Plasma'' и ''Solid'', сами
 +
по себе не новы, но огромным отличием KDE 4 является то, что о них
 +
думали до начала разработки какого-либо приложения, так что ''Plasma''
 +
и ''Solid'' становятся доступны любому приложению KDE 4. Для разработчиков это упростит добавление функций во время портирования приложения на KDE 4 – только представьте, какой потенциал это дает
 +
для ''KOffice, Kopete, Kate, Konqueror''. Изменится самый способ использования KDE.
 +
 +
===Оживляя иконки: Oxygen===
 +
 +
Маркетинг KDE 4 весьма напорист, и это
 +
распространяется даже на иконки: разработчики продвигают ''Oxygen'' как «не просто очередную тему иконок. ''Oxygen'' формирует новые принципы работы пользователей». Но ''Oxygen'' – и вправду просто
 +
тема иконок; единственное ее отличие в
 +
том, что разработчики ''Oxygen'' не только
 +
перенесли привычный набор значков в
 +
масштабируемый векторный формат
 +
SVG, но и добавили иконкам выразительности, использовав стандартные цветовые палитры и фон для обозначения
 +
различных функций. Иконки «действий»
 +
типа '''Редактировать, Увеличить''' или
 +
'''Настроить''' выделяются на общем фоне, а
 +
значки выбора файлов расцвечены в
 +
соответствии с типом. Что-то похожее
 +
было в некоторых приложениях KDE и
 +
раньше, но никогда не распространялось
 +
на весь рабочий стол.
 +
 +
[[Изображение:LXF88_KDE402.png|LXF88_KDE402]]
 +
 +
'''Масштабируемая графика будет играть важную роль во внешности и работе ПК с KDE 4 – даже если нет графического интерфейса.'''
 +
 +
==Phonon, KHTML и Decibel==
 +
 +
: Классные инструменты рабочего стола, понятные даже бабулькам.
 +
 +
''Phonon'' перенимает то, что делает ''Solid'' для настройки сетей и
 +
управления питанием, и применяет то же самое разделение
 +
на фоновую и интерфейсную части для воспроизведения и
 +
записи мультимедиа.
 +
 +
Дело важное, если учесть, насколько отвратителен старый аудио-каркас из ''KDE 3''. ''Arts'', аудио-демон KDE, создает больше проблем, чем решает. Разрабатывался он с целью освободить программиста от
 +
мороки со входами и выходами кодеков и аудио-оборудованием, но в
 +
итоге получилось, что ''Arts'' редко ведет себя прилично с другими драйверами и может отказаться воспроизвести простой звук. Мультимедиа в Linux развиваются, появился, например, ''GStreamer'', создающий стандартную платформу с низкой латентностью для воспроизведения звука. ''Phonon'' не привязывает воспроизведение к API, он просто предлагает программисту приемы работы. Воспроизведение должно работать прозрачно, независимо от того, запускает ли пользователь KDE-приложение на Linux, OS X или Windows.
 +
 +
Отсоединение проигрывателя от кода, выполняющего воспроизведение, означает, что пользователю больше не нужно беспокоиться
 +
о том, какой фоновый процесс настроен и как он будет взаимодействовать с другими приложениями. Разработчики ''Phonon'' надеются расширить этот принцип на самонастраивающиеся (plug-and-play)
 +
устройства, типа USB-гарнитур, где воспроизведение будет просто
 +
работать без всякой дополнительной настройки, и пользователь даже
 +
и вникать не станет, какой фоновый процесс этим занимается. Как и в
 +
''Solid'', фоновый процесс динамически загружается и легко заменяется,
 +
а ''Phonon'' продолжает работать.
 +
 +
[[Изображение:LXF88_KDE403.png|LXF88_KDE403.png]]
 +
 +
'''Phonon отделяет движок от интерфейса для воспроизведения мультимедиа.'''
 +
 +
===Без GStreamer===
 +
 +
У ''Phonon'' есть большая нерешенная проблема: не налажена взаимосвязь с самым популярным механизмом воспроизведения в Linux – ''GStreamer''. Сейчас доступны только реализации для ''Xine, AvKode'' (интерфейс ''Phonon'' к библиотеке ''FFMPEG'') и ''NMM'' (для сетевых аудиопотоков). Это действительно проблема, и без ''GStreamer Phonon'', вероятно, ждет та же участь, что и его предшественника ''Arts''. Даже самый сложный движок, ''Xine'', поддерживает воспроизведение, но не запись;
 +
будем надеяться, что ко времени выхода ''KDE 4'' эта проблема будет
 +
решена. Другие функции, которые, вероятно, будут включены в релиз –
 +
поддержка ''KIO slaves, VoIP'' на уровне API (облегчающее разработчикам
 +
приложений добавление интернет-телефонии), встроенное воспроизведение DVD и совместимость с DVB.
 +
 +
===Прорыв KHTML в Mac===
 +
 +
''KHTML'' – оплот стандартов для проекта KDE. Это основной компонент
 +
рабочего стола, используемый для отображения web-страниц в самых
 +
различных приложениях. Он также принят как движок отображения HTML во многих популярных браузерах, включая ''Safari'' от Apple, открытый браузер от Nokia и, с недавнего времени, платформу Adobe Apollo.
 +
 +
Благодаря тесной интеграции с остальной частью KDE, ''KHTML''
 +
зачастую отображает страницы быстрее, чем независимые браузеры
 +
вроде ''Firefox''. ''KHTML'' всегда разрабатывался с прицелом на легковесность, и еще одним его преимуществом является возможность его повторного использования: это один из первых проектов, начавших
 +
использовать каркас ''KPArts'' в KDE 2, и благодаря ему вы можете видеть
 +
web-страницы в приложениях, не имеющих непосредственной связи с
 +
HTML: Например, ''Amarok'' отображает страницы Wikipedia непосредственно в окне приложения. ''KHTML'' также является важной частью и ''KMail'', и ''Akregator'', наряду со многими другими приложениями. Именно
 +
портируемость обусловила успех ''KHTML''.
 +
 +
Интегрированный интернет – не единственное сходство пользователей KDE и их «кузенов» с Mac: значительная доля ''KHTML'' используется для разработки платформы рендеринга ''Safari WebCore''. Благодаря
 +
лицензии LGPL разработчики Apple возвращают все выполненные
 +
изменения в ''KHTML'' – в результате ''Konqueror'' оказался одним из двух
 +
браузеров, прошедших тест Acid2 в ноябре 2005 г. Но многие изменения, сделанные командой Apple, слишком далеки от текущего исходного кода ''KHTML'', чтобы объединение функций стало осуществимым.
 +
 +
Получается, что ''Safari'' хорошо работает со сложными сайтами,
 +
вроде календаря и почты Google, а ''Konqueror'' плетется позади. Выпуск
 +
''KDE 4'' – отличный повод переписать ''KHTML'', чтобы он стал способен
 +
принимать код Apple. Эта инициатива получила наименование Unity,
 +
с целью «примазаться» к хорошим отзывам в прессе, которые получили другие браузеры на базе ''KHTML''. Она также дает гарантию, что в будущем разработка ''KHTML'' будет согласована с основной ветвью разработки ''Safari''. Это не только поможет с совместимостью ''KHTML'', это
 +
также будет означать соответствие с точностью до ошибок коду Apple,
 +
дающее опору на многочисленных пользователей и улучшающее базу
 +
стандартов для принятия в браузере. Обязательство серьезное, потому что команда ''KHTML'' Unity собирается использовать код Apple как
 +
новую базу для выстраивания совместимости ''KHTML'', а не реформировать текущую ветвь разработки ''KHTML'' – получается что-то вроде эстафеты, где эстафетная палочка возвращается первому бегуну. Но есть
 +
несколько недостатков. Может пострадать производительность браузера, и такие решения нужно принимать широким сообществом ''KHTML'', а не командой KDE. Также требуется переписать несколько основных
 +
аспектов старого ''KHTML'', включая виджеты форм, апплеты Java, код
 +
подключаемых модулей ''Netscape'' и общую интеграцию с KDE.
 +
 +
===Проект Decibel===
 +
 +
Еще один проект, способный принести заметные изменения в часть
 +
приложений – это ''Decibel'', новый KDE API для мгновенных сообщений
 +
и видеоконференций. Может показаться, что KDE плодит проекты, не
 +
задумываясь о завтрашнем дне – особенно если учесть, что ''Phonon''
 +
задался подобной целью встраивания функциональности ''VoIP'' в API. Но
 +
''Decibel'' предназначен служить основой для коммуникаций в реальном
 +
времени, а не просто добавлять функциональность ''VoIP''. И он будет
 +
прозрачным. Его идея в том, что вам не нужно знать, какой IM-протокол используют те, с кем вы общаетесь: ''Decibel'' просто сообщит вашим приложениям, когда станет возможна беседа, а все остальное – за
 +
сценой.
 +
 +
{{Врезка
 +
|Заголовок=KDE 4: хакнем все
 +
|Содержание=Даже те, кто не умеет программировать, поймут по приведенному ниже фрагменту кода, насколько просто создать аудиоплейер в ваших приложениях. Всего в пяти строках мы закодировали возможность воспроизводить OGG-файлы.
 +
 +
AudioPlayer *player = new
 +
  AudioPlayer (Phonon::MusicCategory, this);
 +
player->play(KUrl(“file://tune.ogg”));
 +
player->seek(milliseconds);
 +
player->pause(); player->stop();
 +
 +
Этот подход применяется многими новыми API в KDE, и он означает,
 +
что каждому под силу обогатить любое приложение рабочего стола.
 +
|Ширина=300px
 +
}}
 +
 +
Приятно, что ''Decibel'' не собирается игнорировать другие проекты-аналоги. Уже существуют два хорошо определенных базиса для
 +
коммуникаций. Первый – ''Telepathy'', ставший стандартом, по которому
 +
оцениваются другие. Он гнездится на http://freedesktop.org и использует ''D-BUS'' для предоставления соединения в реальном времени общим сервисам, типа IRC, мгновенных сообщений, голоса и видео.
 +
Чтобы реализовать все по максимуму, он не чурается и других стандартов, например, протокола ''Jabber'', но ''Telepathy'' тяготеет к Gnome.
 +
Многие годы конкурирующей спецификацией была ''Tapioca'', реализованная с использованием библиотеки ''Qt''. По счастью, у программистов ''Tapioca'' возобладал здравый смысл: они сделали свою спецификацию совместимой с ''Telepathy'' – и теперь гармонично сосуществуют.
 +
''Decibel'' будет использовать привязки ''Qt'' для ''Tapioca''. Может показаться, что команда разработчиков KDE создает собственную реализацию
 +
Qt-механизма ради него. Но те дни, мы надеемся, прошли. В ''Qt 4''
 +
объединяются многие изменения, нужные проекту KDE, так что мы не
 +
должны бы снова увидеть виртуально идентичные классы ''KIconView''
 +
и ''QIconView''.
 +
 +
В ''Decibel'' реализована штука под названием '''Housten''', это слой взаимодействия с ''Telepathy''. Он включает '''Account Manager, Protocol Manager''' и '''Component Manager'''. '''Account Manager''' обрабатывает информацию о
 +
возможности соединения, например, находится ли пользователь в сети или отключен, а '''Protocol Manager''' определяет, каким образом будет подключаться каждый пользователь. Соединение ''Jabber'' – часть комплекса ''Telepathy'', которая должна привлечь пользователей. '''Component Manager''' используется для управления данными приложений.
 +
 +
''Phonon, KHTML'' и ''Decibel'' намереваются изменить отношение среднего пользователя к настольным Linux-системам. Мультимедиа полностью интегрируется на уровне рабочего стола, web-страницы будут отображаться быстрее, чем с ''Firefox'', и с той же совместимостью, как у ''Safari''. И болтовня с друзьями станет так же привычна за рабочим столом, как управление
 +
файлами. Команда разработчиков KDE 4 воспользовалась этим, чтобы рассмотреть, для чего пользователи сейчас применяют
 +
настольные системы и какие происходят изменения.
 +
 +
==Получите свежий KDE==
 +
 +
: Живите на передовой – ищите ошибки, давайте советы и стройте будущее.
 +
 +
Чтобы испытать последний релиз ''KDE 4'', достаточно установить последние пакеты Kubuntu. К сожалению, вы не найдете больших изменений по сравнению с ''KDE 3''; многие из основных приложений сейчас являются частью релиза, но
 +
ни одно из них не готово использовать преимущества новых API.
 +
 +
Пройдет еще месяцев шесть, пока вы ощутите реальные изменения,
 +
и чтобы быть способным их разглядеть, нужно постоянно обновлять
 +
вашу версию KDE. Здесь описываются шаги, необходимые для получения самой свежей версии, независимо от того, являетесь ли вы разработчиком KDE или энтузиастом-любителем. Мы использовали Ubuntu,
 +
но наши инструкции должны работать и на других дистрибутивах, поскольку здесь нет специфических требований. Новичкам на заметку: при
 +
разработке ''KDE 4'' используется система контроля версий ''Subversion''.
 +
Она отслеживает все изменения, сделанные разработчиком, а также
 +
управляет сотнями разработчиков, вносящих изменения в один и тот
 +
же проект. Не позволяйте ей вас запугать, если вы не умеете писать
 +
код: последнюю версию может установить каждый. Сейчас мы расскажем, как это сделать.
 +
 +
===Создайте нового пользователя===
 +
 +
Чтобы надежно изолировать ''KDE 4'' от остальной системы, лучше установить ''KDE 4'' под новой учетной записью, созданной специально для целей запуска приложений KDE 4. Это можно сделать либо в менеджере учетных записей вашего дистрибутива, либо из терминала, набрав
 +
''su -c ‘adduser kdefour’''. Вам нужно создать две папки в домашнем каталоге нового пользователя: одну с именем '''Qt-copy''', а вторую – '''kde4'''.
 +
Также вам понадобится добавить некоторые переменные окружения,
 +
чтобы сохранить установку ''KDE 4'' изолированной в вашем домашнем
 +
каталоге. Добавьте следующее в конец файла '''.bashrc''', принадлежащего
 +
новому пользователю:
 +
 +
export REPOSITORY=svn://anonsvn.kde.org/home/kde
 +
export QTDIR=~/qt-copy
 +
export KDEDIR=~/kde4
 +
export DBUSDIR=~/kde4
 +
export KDEDIRS=$KDEDIR
 +
export PATH=$QTDIR/bin:$KDEDIR/bin:$DBUSDIR/bin:$PATH
 +
export LD_LIBRARY_PATH=$DBUSDIR/lib:$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
 +
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins/
 +
export PKG_CONFIG_PATH=$QTDIR/lib:$DBUSDIR/lib/pkgconfig
 +
export QTEST_COLORED=1
 +
export XDG_DATA_DIRS=$KDEDIR/share
 +
export XDG_CONFIG_DIRS=$KDEDIR/etc/xdg
 +
 +
===Установите новую систему сборки, ''CMake''===
 +
 +
''CMake'' заменяет старые пакеты ''Automake'', на которые разработчики KDE полагались ранее. ''CMake'' теперь обрабатывает все сценарии компиляции для приложений, и должна намного упростить обработку
 +
зависимостей сборки. Инсталляция ''CMake'' проста: скачивание последнего пакета с http://www.cmake.org, распаковка полученного файла, затем переход во вновь созданный каталог и ввод следующих команд, для
 +
установки ''CMake'' в локальный каталог '''kde4''':
 +
 +
./configure --prefix=~/kde4
 +
make; sudo make install
 +
 +
===Добавьте обмен сообщениями ''D-BUS''===
 +
 +
''KDE 4'' использует ''D-BUS'' для взаимодействия между процессами. ''D-BUS'' – эффективная и кросс-платформенная замена для старого ''DCOP''. Найти ее можно на влиятельном сайте http://Freedesktop.org, и по умолчанию
 +
она устанавливается со многими последними дистрибутивами. Если вы
 +
работаете на старом дистрибутиве, вам может потребоваться скомпилировать и установить собственную версию. Обычно это заключается в
 +
скачивании последнего основного релиза с http://dbus.freedesktop.org,
 +
распаковке пакета и вводе следующих команд:
 +
./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR
 +
make; sudo make install
 +
 +
===Получите свежую версию ''Qt''===
 +
 +
Прежде чем погрязнуть в исходном коде KDE, вам нужно скачать и
 +
установить последнюю версию инструментария ''Qt'', от которой KDE
 +
наследует все свои внутренние прелести. ''Subversion''-репозиторий KDE
 +
содержит версию, на которой работают разработчики KDE, и ее можно
 +
скачать и установить тем же способом, что и сам KDE:
 +
 +
svn co $REPOSITORY/trunk/qt-copy
 +
cd qt-copy; ./apply_patches
 +
./configure -qt-gif -no-exceptions -debug -fast -prefix $QTDIR -confirm-license
 +
make
 +
 +
===Получите KDE 4!===
 +
 +
Теперь, когда у нас есть все основные зависимости для KDE, можно
 +
скачать и собрать рабочую копию ''KDE 4''. Это нужно делать за три
 +
шага, поскольку приложения KDE требуют, чтобы сначала были собраны и установлены библиотеки и базовые файлы. Общая процедура
 +
такова:
 +
 +
svn co $REPOSITORY/trunk/KDE/kdelibs
 +
mkdir kdelibs/build; cd kdelibs/build
 +
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR ..
 +
make -k; make install
 +
 +
Для установки базовых файлов замените ''kdelibs'' на ''kdebase'' в приведенном выше коде. Как только сборка и установка завершатся, все необходимые для запуска приложений ''KDE 4'' части будут на месте. Их
 +
можно найти в каталоге '''kde4/bin''', а '''kdebase''' включает предметы первой необходимости, например, текстовый редактор ''Kate'' и web-браузер ''Konqueror''. Чтобы вызвать какое-нибудь приложение, сначала убедитесь, что ''D-BUS'' работает, затем запускайте двоичный файл. Чтобы запустить ''Kate'', используйте следующие команды:
 +
 +
eval ‘dbus-launch --auto-syntax’
 +
~/kde4/bin/kate
 +
 +
===Держитесь в курсе===
 +
 +
Вы можете просматривать репозиторий ''KDE 4'', заходя на http://websvn.kde.org/trunk/KDE. Здесь можно оценить прогресс, достигнутый в
 +
других основных проектах KDE, и скачать их, используя ту же самую
 +
процедуру, что и в Шаге 5. Просто замените ''kdelibs'' именем проекта,
 +
представленным на сайте '''WebSVN''', затем скачайте, откомпилируйте
 +
и установите. В случае с базовой инсталляцией ''KDE 4'' сравнительно
 +
просто отслеживать прогресс разработки. ''Subversion'' имеет команду
 +
для обновления исходного кода до последней версии, размещенной на
 +
сервере: вам просто нужно войти в каждый из основных подкаталогов,
 +
которые вы скачали, и запустить:
 +
 +
cd kdelibs
 +
svn update
 +
cd build
 +
make; sudo make install
 +
 +
Мы использовали ''kdelibs'' в примере выше, потому что его по-прежнему нужно обновлять и устанавливать первым, затем – ''kdebase'',
 +
чтобы не нарушить баланс зависимостей, необходимый для сборки и установки других пакетов.
 +
 +
==Как может выглядеть KDE 4: мнение нашего художника==
 +
 +
[[Изображение:LXF88_KDE404.jpg|LXF88_KDE404.jpg]]
 +
 +
==Что нам готовит ...==
 +
 +
===''DigiKam''===
 +
 +
* Независимый интерфейс к базам данных
 +
* Интеграция с рабочим столом
 +
* Поиск по метаданным
 +
 +
Жиль Кoлье [Gilles Caulier], «хранитель» ''DigiKam'': «После выхода версии 0.9.0 было начато портирование ''DigiKam'' на ''Qt 4/KDE 4''.
 +
Первая задача новой библиотеки – предоставить новый интерфейс
 +
к базам данных, независимый от выбранного сервера (как в
 +
''Amarok''). С ''Qt 4'', в отличие от ''Qt 3'', это будет сделать легко. ''Qt 4/KDE 4'' также будет управлять всеми поточными фильтрами изображений, доступными в ядре ''DigiKam''.
 +
На самом деле, стиль кодирования потоков в ''Qt 3'' не особо удобный, особенно когда пытаешься
 +
получить обратную связь с графическим интерфейсом пользователя во время расчета или
 +
загрузки файла.
 +
 +
За последний год мы много работали над ''DigiKam'' и ''DigiKamImagePlugins'', чтобы добавить
 +
поддержку 16-битного цвета, управление цветом, полную поддержку метаданных, поддержку
 +
файлового формата RAW и так далее – между 0.8.x и 0.9.0 разница очень большая. Исходный
 +
код использует только ''Qt 3/KDE 3'', и сейчас он на стадии завершения. Выпуск 0.9.0 планируется
 +
на конец 2006 г. Фактически, у нас нет времени на изучение нового API, предоставляемого KDE
 +
4. Этим мы займемся после выхода 0.9.0.»
 +
 +
===''K3b''===
 +
 +
* Однократная настройка устройств для всех приложений сразу
 +
* Простая установка
 +
* Интегрированный в систему поиск
 +
 +
Себастьян Трюг [Sebastian Trueg], глава ''K3b'': «Я уже говорил с разработчиком ''Solid'' об аппаратной абстракции, и мы обсудили возможность включить функции ''K3b'' непосредственно в ''Solid'' или даже
 +
в ''HAL''. Сейчас я занят релизом 1.0 (который пришлось опять отложить). После этого начнется портирование на KDE 4.
 +
 +
Что касается поиска, я думаю, что интеграция в ''K3b'' будет такой
 +
же, как во всех приложениях KDE. По крайней мере, это моя цель:
 +
получить глубокую интеграцию расширенных семантических функций рабочего стола KDE. Я
 +
пытаюсь следить за всем, что творится вокруг, но это все-таки неподъемно. Так что я сосредоточился на проектах, над которыми работаю (''K3b'' и ''Nepomuk-KDE'') и пытаюсь следить за развитием
 +
родственных проектов.»
 +
 +
===''Kate''===
 +
                         
 +
* Двунаправленный текст (поддержка языков типа арабского)
 +
* Произвольная подсветка
 +
* Автодополнение текста
 +
 +
Кристоф Куллманн [Christophe Cullmann], глава ''Kate'': «Интеграция с ''Tenor'' – это, наверно, круто, но для нее нужен код
 +
''Tenor'', а его пока нет. Мы будем поддерживать скрипты ''KPart'', что позволит писать, например, средства расстановки
 +
отступов в коде как сценарии ''JavaScript''. Графический интерфейс
 +
останется примерно тем же; кое-что переделано, например, диалоги
 +
'''поиска/замены''' перейдут в поисковую панель, вроде используемой в
 +
''Mozilla Firefox''. Самая большая проблема на данный момент – надежность; требуется масштабное тестирование и отлавливание ошибок в кодовой базе KDE 4.»
 +
 +
===''Kopete''===
 +
 +
* Вертикальные вкладки в окне чата
 +
* Возможность создавать глобальные персональные данные
 +
* kopete:/ KIO slave как полностью виртуальная файловая система
 +
* Способность сохранять все контакты в адресной книге KDE
 +
 +
Мэтт Роджерс [Matt Rogers], лидер проекта ''Kopete'': «''Decibel'' может стать крайне важной частью ''Kopete'' в ''KDE 4'', и есть люди, которые думают над тем, как сработаются ''Decibel'' и ''Kopete''. С нашей стороны,
 +
я могу только радоваться этому. Правда, мы еще не знаем, чему радоваться, потому что первые фрагменты кода ''Decibel'' только-только [в середине ноября] перешли в Subversion-репозиторий KDE.
 +
 +
Команда разработчиков ''Kopete'' оказывает некоторое влияние на разработку и спецификации
 +
''Decibel'', хотя большинство работ происходит в сфере проектов ''Telepathy'' и ''Tapioca''. Несколько
 +
разработчиков ''Telepathy'' в этом году были на Akademy, и мне говорили, что от их присутствия
 +
было немало пользы».
 +
 +
===''KDevelop''===
 +
 +
* Модификация большей части кода
 +
* Поддержка большего числа языков
 +
* Новый интерфейс сборки Cmake
 +
 +
Мэтт Роджерс [Matt Rogers], ведущий
 +
«хранитель» ''KDevelop'': «Было очень
 +
важно выкинуть всякий хлам из ''KDevelop 4'', поскольку в ''KDevelop 3'' было слишком много неподдерживаемого кода,                                                    который мало кого волновал. Не думаю, что «глубокая переработка» неизбежна,
 +
когда выполняется крупное обновление
 +
''Qt'' или KDE – все зависит от предпочтений людей, работающих над проектом. Мы повторно
 +
используем в ''KDevelop 4'' немало кода и идей из ''KDevelop 3''. Например, нынешний менеджер
 +
проектов в ''KDevelop 4'' – прямой потомок кода, разработанного для ''KDevelop 3''. Поддержка ''GNU autotools'' и ''Qmake'' в ''KDevelop 4'' также будет развитием фрагментов, уже присутствующих в
 +
''KDevelop 3''. Конечно, мы кое-что перепишем с учетом новых технологий в ''Qt 4'', но это отнюдь не
 +
переработка до основания – на это ушла бы целая вечность! Я думаю, настройка приложения
 +
станет проще, так как все больше и больше разработчиков учитывают мнение людей, занимающихся эргономикой, которые предоставляют свои знания через различные проекты, типа ''OpenUsability'', и список рассылки kde-usability.»

Текущая версия на 20:19, 5 декабря 2008

Содержание

[править] KDE 4 Вкус будущего!

Слухи о релизе v4 уже дразнят воображение фанатов KDE, но ждать его еще не один месяц. Ключевые разработчики KDE предоставили Грэму Моррисону предварительный обзор.

C момента выпуска KDE 3 в 2002 году, ландшафт Linux-технологий изменился до неузнаваемости. Теперь мы принимаем как данность поразительные 3D-возможности, интегрированный поиск и апплеты рабочего стола; и проектировщики KDE 2002 г. убеждаются, что их рабочий стол выдерживает перегрузки.

Но теперь не только Linux имеет вращающиеся кубы да виртуальные рабочие столы: новые версии Microsoft Windows и Apple OS X наращивают конкурентоспособность. Новая среда рабочего стола KDE должна будет сделать серьезную заявку на удобство Linux. Она должна стать доступной любому, простой в использовании и величавой на вид. Она должна переманить пользователей изуродованных «цифровыми правами» рабочих столов DRM в мир свободы, единения и сотрудничества.

До выхода KDE 4 все еще остаются месяцы, но дизайнерские планы нового рабочего стола утверждены, а библиотеки и спецификации уже доступны. Linux Format воспринял это как открытое приглашение сделать обзор. Мы оценили возможное влияние каждой технологии и поговорили с некоторыми из ведущих разработчиков, чтобы дать вам представление о вашем будущем рабочем столе KDE 4.

[править] Структура KDE 4

KDE 4

Структурная схема KDE 4 показывает, что пользователи получат хорошо спроектированный, ориентированный на задачи рабочий стол благодаря проекту Appeal, а появление Solid, Decibel и Phonon означает, что разработчикам больше не нужно будет изобретать велосипед при добавлении новейшего оборудования, мультимедиа и сетевых функций.

[править] Манифест Appeal

Как мог бы сказать Стив Баллмер: конечные пользователи, конечные пользователи, конечные пользователи, конечные...

KDE порожден немецким компьютерщиком Маттиасом Эттрихом [Matthias Ettrich] в 1996 г. Он всегда строился на коммерческом продукте Qt от норвежской фирмы Trolltech. Но KDE, по большому счету, крупнейший проект, использующий Qt, и Маттиас Эттрих теперь директор Trolltech по разработке ПО, а значит, эти два проекта серьезно влияют друг на друга.

Qt – инструментарий программиста и костяк функциональности KDE, выполняющий многие трудоемкие задачи, например, манипуляцию изображениями и файлами, прорисовку элементов графического интерфейса и взаимодействие с базой данных. При выходе каждого основного релиза Qt KDE должен адаптироваться к изменениям и вбирать новые функции. Вот почему цикл выпуска KDE следует за Qt. Qt 4, вышедший в июне 2005 г., ввел много новых функций, которых не хватало KDE, в том числе, новый движок рендеринга Arthur и поддержку SVG.

Но команда KDE, обновляя версию, не упустила шанса сделать гораздо больше, чем просто пересмотр функций. Кроме замены устаревшего механизма взаимодействия процессов и принятия D-BUS, разработчики добиваются внешней привлекательности. При переводе внутреннего формата изображений на SVG и добавлении расширяемых виджетов, разработчики хотят, чтобы новые пользователи понимали среду рабочего стола интуитивно. Мэтт Роджерс [Matt Rogers], глава проекта входящей в состав KDE IDE KDevelop, говорит: «Я думаю, во главе угла для разработчиков KDE 4 сейчас находится интерфейс пользователя. Говорю это только потому, что слишком много было спекуляций, шумихи и прочего вокруг всяких интерфейсных технологий, типа Plasma и Oxygen». В KDE 4 пользовательский интерфейс становится «первым лицом».

[править] Полигон идей

Экскурсию по KDE 4 удобно начать с Appeal. В отличие от технологий, которые мы рассмотрим дальше, Appeal [зов, – прим. пер.] – это не конкретный программный проект, а, скорее, исследовательский центр по «перетягиванию» KDE от разработчиков поближе к простым смертным. Не очень внятно? Дело в том, что Appeal – пока только манифест для задуманных в KDE 4 новых технологий, видимых пользователям: они должны сразить их в первую же наносекунду и заставить влюбиться в этот рабочий стол. Проект Appeal хочет, чтобы пользователи KDE 4 воспринимали функциональность так же, как Йода воспринимал Силу – просто как должное.

Сайт http://appeal.kde.org был запущен в августе 2005 г., и его wiki переполнена идеями. Проект занимается «визуальными искусствами» KDE 4, включая Plasma (похожую на SuperKaramba замену виджетов рабочего стола, икон и панели) и Oxygen, гладкий, векторизованный набор иконок, определяющий внешний вид KDE. С некоторого момента Appeal займется и технологией поиска, которую будет использовать KDE 4. Аарон Сейго [Aaron Seigo], штатный разработчик Plasma, описывает Appeal как «социальный эксперимент по сознательному вовлечению в скоординированную, открытую и многоцелевую разработку». По сути, Appeal стал координационным центром для новой плеяды разрабатываемых приложений KDE 4.

Манифест Appeal содержит четыре принципа: «произведение искусства», «рай разработчиков», «сетевые вычисления» и «интегрированный рабочий стол». Каждый из них немного расплывчат, ибо Appeal не определяет требования: он только иллюстрирует идею. Поэтому «произведение искусства» стоит на первом месте. Подобно Марку Шаттлворту, разработчики KDE признают, что красота – это функция. KDE 4 в первую очередь нуждается в приятной внешности, вот почему дизайн иконок Oxygen непосредственно связан с Appeal. «Рай разработчиков» означает, что разработчикам должно хотеться работать с KDE API и при этом ощущать, что использование технологий KDE – лучший способ достичь их целей. Есть даже мысль создать в сети «университеты» KDE-разработки, где можно изучать KDE, чтобы максимально упростить новым разработчикам создание собственных проектов.

У «сетевых вычислений» более прикладная цель, движимая идеей единой регистрации для пользователя: и за получение почты, и за доступ к удаленному столу по протоколу NX, и за web-сервисы будет отвечать единственный механизм аутентификации. Это согласуется с инициативой KDE/Wikipedia, анонсированной в июне 2005 г.: разработкой интерфейсов KDE API для выполнения запросов к Wikipedia, которые в дальнейшем сможет использовать каждое приложение KDE.

Appeal помогает убедиться, что каждое приложение KDE 4 использует один и тот же подход к дизайну интерфейса. Удобство – ключевой момент, и это означает, что функциональность должна быть как можно более интуитивной: нет смысла дарить пользователю мощь KPArts или KIO slaves, если он даже не подозревает о подарке. Вот как сильно разработчики KDE хотят, чтобы вы использовали их рабочий стол.

[править] Plasma и Solid

Не парьтесь с настройкой оборудования: лучше поиграйте с виджетами.

Plasma – «интегрированный рабочий стол» Appeal, и это первое, что бросится в глаза в KDE 4. Эффекты Plasma, в отличие от многих других новых технологий этой версии, вы сможете увидеть на рабочем столе.

Если вы не программист, то старый KDE 3 для вас нерасширяем: невозможно создавать собственные элементы интерфейса или добавлять функции к рабочему столу. Вы ограничены в использовании предоставляемых инструментов, и их недостаточно. Самое популярное приложение для расширения функциональности KDE 3, SuperKaramba, больше похоже на одномоментный «хак», чем на основу для расширений. Но это не вина автора прежней Karamba, Ганса Карлссона [Hans Karlsson], а следствие слабой поддержки расширений в KDE, отсюда и «хаки»: просто не было другого способа решить проблему. Plasma – средство KDE 4, призванное исправить этот недостаток. Это интерфейс к рабочему столу, способ добавлять расширения, не ломая машину.

[править] Проблема Kicker

К сожалению, разработка Plasma зависит от некоторых других функции KDE 4, и потому она шла медленно. Лидер проекта, Аарон Сейго, до июля 2006 г. дожидался стабилизации новых API, достаточной, чтобы начать разработку, и многое изменилось в сентябре, после конференции Akademy в Дублине (ежегодная встреча KDE-сообщества).

Сейго имеет огромный опыт управления проектами типа Plasma, и к разработке Plasma его привела, прежде всего, его работа над KDE-панелью Kicker. Kicker часто воспринимается как некий «хак» (похоже, это общая тема приложений KDE). Он не предусматривал обработки прозрачности, кнопок или множественных апплетов, и в результате добавления этих функций исходный код стал неуправляемым и сложным в сопровождении. Были случаи, когда разработчики, хотевшие всего-навсего сменить цветовую схему, обнаруживали, что проще ответвить Kicker и решать свои задачи в этом коде, чем вносить свои изменения в исходный проект с тем же самым эффектом. Сайт http://kde-apps.org содержит некоторые ответвления Kicker, которые вносили в него только косметические изменения, не влияя на суть исходного проекта. Kicker даже научили автоматически перезагружаться, если он зафиксирует крах своего собственного процесса.

Частично эта проблема вызвана тем, что подавляющее большинство приложений KDE разработано на языке C++. Он очень мощный, но, по словам Сейго, «может и крышу снести». C++ слишком сложен для разработки простых расширений и расставляет слишком много ловушек для неосторожных программистов. SuperKaramba обходит эту проблему, используя язык Python, довольно простой по сравнению с C++, и подобное сделано и в Plasma. Plasma по-прежнему будет разрабатываться на C++, но расширения предполагается писать на JavaScript, в основном потому, объясняет Сейго, что JavaScript гибок и прост. Также планируется поддержка других популярных языков, включая Python и Ruby.

[править] Создайте свой рабочий стол

Лично на вас окажет влияние тот способ, которым Plasma использует пространство рабочего стола. Plasma заменит метафору иконок тем, что лучше соответствует современным технологиям. Апплеты, подобные предлагаемым SuperKaramba, станут разменной монетой для рабочего стола, а компоненты типа Kicker или менеджера задач будут представлены отдельными апплетами Plasma. Дойдет даже до перетаскивания в апплеты компонентов из некоторых основных приложений. Например, перетаскивание папки входящих сообщений из KMail на ваш рабочий стол могло бы динамически создать, скажем, апплет оповещений о поступлении новой почты.

Вот тут-то и пригодилась идея KDE об абстракции данных, потому что если у SuperKaramba и есть проблема, так это недостаток согласованности – существует десяток апплетов для вывода информации о погоде или мониторинга системы, и каждый собирает данные по-своему. Отделение данных от интерфейса апплета будет означать, что как только будет создан внутренний механизм сбора информации о погоде или о системе, каждый, кто обладает минимальными художественными способностями, сможет легко добавить пользовательский интерфейс. Сложность здесь в разработке источников данных. Они будут многомерными (как база данных), и разрабатываются на C++. При этом каждый источник сможет иметь более одного атрибута – например, число писем в вашем почтовом ящике наряду с количеством писем от конкретного человека.

KDE 4 собирается свернуть менее успешные части KDE 3, а оставшиеся упростить. Иногда достаточно изменить соответствующий API, иногда приходится создавать новый, как в случае с Plasma.

Но есть несколько областей, нуждающихся в полном переосмыслении и разработке с нуля, например, медиа-проигрыватель. Solid и Phonon – два новых API, спроектированных, чтобы сделать KDE максимально портируемым – и это особенно важно сейчас, когда свободная версия Qt доступна для операционных систем Mac OS X и Microsoft Windows. Как и в случае с Plasma, этот слой абстракции требует разделения на интерфейсную (front-end) и фоновую (back-end) части. Solid и Phonon отделяют данные от пользовательского интерфейса настолько, чтобы фоновый поставщик данных можно было менять, а интерфейсная часть продолжала бы работать. Все это – благодаря мощному механизму «сигналов» и «слотов» в Qt, дающих программистам свободу создавать интерфейсы в ПО.

[править] Solid’ная конфигурация

Solid – это слой аппаратной абстракции, который KDE будет использовать в будущем. Он поможет забыть о настройке оборудования, и, будем надеяться, сотрет грань между приложениями для конкретных устройств. Лучший пример – беспроводные сети. При использовании Solid, информация о сетевом соединении и его состояние станет доступна любому приложению KDE, использующему Solid, причем ему не надо будет вникать в особенности оборудования. Это означает, что апплет Plasma, менеджер сети или даже ваш FTP-клиент будут способны перемещаться между беспроводными сетями или отслеживать статус соединения, не надоедая вам лишними запросами пароля.

В KDE 3 обнаружением и настройкой оборудования вынуждено заниматься каждое приложение. Например, для настройки K3b вам нужно сообщить, какие CD/DVD-приводы вы используете. Solid, в фоновом режиме, делает эту информацию доступной для всех остальных средств записи CD/DVD, и вам не нужно вводить одну и ту же информацию дважды. Это особенно важно для областей, где приложения для работы можно выбирать. Так, в KDE 3 есть два инструмента для работы с беспроводными сетями (KNetworkManager и KWiFiManager), а также различные приложения для определения оборудования, и их следует переработать в KDE 4, чтобы использовать преимущества аппаратной абстракции Solid. В этих случаях пользовательский интерфейс Plasma будет расположен поверх слоя абстракции Solid, и вам не придется каждый раз «изобретать велосипед».

Solid работает в так называемых доменах. Они сообщают максимум информации о затрагиваемом оборудовании (хотя непосредственно с ним не взаимодействуют). Есть домены для распознавания оборудования, управления питанием и управления сетью. Поверх доменов располагаются агенты политик (policy agent), занимающиеся характеристика ми оборудования. В данный момент их всего два: один для управления сетевыми соединениями и второй – для обработки мультимедиа.

Может показаться, что технологии, подобные Plasma и Solid, сами по себе не новы, но огромным отличием KDE 4 является то, что о них думали до начала разработки какого-либо приложения, так что Plasma и Solid становятся доступны любому приложению KDE 4. Для разработчиков это упростит добавление функций во время портирования приложения на KDE 4 – только представьте, какой потенциал это дает для KOffice, Kopete, Kate, Konqueror. Изменится самый способ использования KDE.

[править] Оживляя иконки: Oxygen

Маркетинг KDE 4 весьма напорист, и это распространяется даже на иконки: разработчики продвигают Oxygen как «не просто очередную тему иконок. Oxygen формирует новые принципы работы пользователей». Но Oxygen – и вправду просто тема иконок; единственное ее отличие в том, что разработчики Oxygen не только перенесли привычный набор значков в масштабируемый векторный формат SVG, но и добавили иконкам выразительности, использовав стандартные цветовые палитры и фон для обозначения различных функций. Иконки «действий» типа Редактировать, Увеличить или Настроить выделяются на общем фоне, а значки выбора файлов расцвечены в соответствии с типом. Что-то похожее было в некоторых приложениях KDE и раньше, но никогда не распространялось на весь рабочий стол.

LXF88_KDE402

Масштабируемая графика будет играть важную роль во внешности и работе ПК с KDE 4 – даже если нет графического интерфейса.

[править] Phonon, KHTML и Decibel

Классные инструменты рабочего стола, понятные даже бабулькам.

Phonon перенимает то, что делает Solid для настройки сетей и управления питанием, и применяет то же самое разделение на фоновую и интерфейсную части для воспроизведения и записи мультимедиа.

Дело важное, если учесть, насколько отвратителен старый аудио-каркас из KDE 3. Arts, аудио-демон KDE, создает больше проблем, чем решает. Разрабатывался он с целью освободить программиста от мороки со входами и выходами кодеков и аудио-оборудованием, но в итоге получилось, что Arts редко ведет себя прилично с другими драйверами и может отказаться воспроизвести простой звук. Мультимедиа в Linux развиваются, появился, например, GStreamer, создающий стандартную платформу с низкой латентностью для воспроизведения звука. Phonon не привязывает воспроизведение к API, он просто предлагает программисту приемы работы. Воспроизведение должно работать прозрачно, независимо от того, запускает ли пользователь KDE-приложение на Linux, OS X или Windows.

Отсоединение проигрывателя от кода, выполняющего воспроизведение, означает, что пользователю больше не нужно беспокоиться о том, какой фоновый процесс настроен и как он будет взаимодействовать с другими приложениями. Разработчики Phonon надеются расширить этот принцип на самонастраивающиеся (plug-and-play) устройства, типа USB-гарнитур, где воспроизведение будет просто работать без всякой дополнительной настройки, и пользователь даже и вникать не станет, какой фоновый процесс этим занимается. Как и в Solid, фоновый процесс динамически загружается и легко заменяется, а Phonon продолжает работать.

LXF88_KDE403.png

Phonon отделяет движок от интерфейса для воспроизведения мультимедиа.

[править] Без GStreamer

У Phonon есть большая нерешенная проблема: не налажена взаимосвязь с самым популярным механизмом воспроизведения в Linux – GStreamer. Сейчас доступны только реализации для Xine, AvKode (интерфейс Phonon к библиотеке FFMPEG) и NMM (для сетевых аудиопотоков). Это действительно проблема, и без GStreamer Phonon, вероятно, ждет та же участь, что и его предшественника Arts. Даже самый сложный движок, Xine, поддерживает воспроизведение, но не запись; будем надеяться, что ко времени выхода KDE 4 эта проблема будет решена. Другие функции, которые, вероятно, будут включены в релиз – поддержка KIO slaves, VoIP на уровне API (облегчающее разработчикам приложений добавление интернет-телефонии), встроенное воспроизведение DVD и совместимость с DVB.

[править] Прорыв KHTML в Mac

KHTML – оплот стандартов для проекта KDE. Это основной компонент рабочего стола, используемый для отображения web-страниц в самых различных приложениях. Он также принят как движок отображения HTML во многих популярных браузерах, включая Safari от Apple, открытый браузер от Nokia и, с недавнего времени, платформу Adobe Apollo.

Благодаря тесной интеграции с остальной частью KDE, KHTML зачастую отображает страницы быстрее, чем независимые браузеры вроде Firefox. KHTML всегда разрабатывался с прицелом на легковесность, и еще одним его преимуществом является возможность его повторного использования: это один из первых проектов, начавших использовать каркас KPArts в KDE 2, и благодаря ему вы можете видеть web-страницы в приложениях, не имеющих непосредственной связи с HTML: Например, Amarok отображает страницы Wikipedia непосредственно в окне приложения. KHTML также является важной частью и KMail, и Akregator, наряду со многими другими приложениями. Именно портируемость обусловила успех KHTML.

Интегрированный интернет – не единственное сходство пользователей KDE и их «кузенов» с Mac: значительная доля KHTML используется для разработки платформы рендеринга Safari WebCore. Благодаря лицензии LGPL разработчики Apple возвращают все выполненные изменения в KHTML – в результате Konqueror оказался одним из двух браузеров, прошедших тест Acid2 в ноябре 2005 г. Но многие изменения, сделанные командой Apple, слишком далеки от текущего исходного кода KHTML, чтобы объединение функций стало осуществимым.

Получается, что Safari хорошо работает со сложными сайтами, вроде календаря и почты Google, а Konqueror плетется позади. Выпуск KDE 4 – отличный повод переписать KHTML, чтобы он стал способен принимать код Apple. Эта инициатива получила наименование Unity, с целью «примазаться» к хорошим отзывам в прессе, которые получили другие браузеры на базе KHTML. Она также дает гарантию, что в будущем разработка KHTML будет согласована с основной ветвью разработки Safari. Это не только поможет с совместимостью KHTML, это также будет означать соответствие с точностью до ошибок коду Apple, дающее опору на многочисленных пользователей и улучшающее базу стандартов для принятия в браузере. Обязательство серьезное, потому что команда KHTML Unity собирается использовать код Apple как новую базу для выстраивания совместимости KHTML, а не реформировать текущую ветвь разработки KHTML – получается что-то вроде эстафеты, где эстафетная палочка возвращается первому бегуну. Но есть несколько недостатков. Может пострадать производительность браузера, и такие решения нужно принимать широким сообществом KHTML, а не командой KDE. Также требуется переписать несколько основных аспектов старого KHTML, включая виджеты форм, апплеты Java, код подключаемых модулей Netscape и общую интеграцию с KDE.

[править] Проект Decibel

Еще один проект, способный принести заметные изменения в часть приложений – это Decibel, новый KDE API для мгновенных сообщений и видеоконференций. Может показаться, что KDE плодит проекты, не задумываясь о завтрашнем дне – особенно если учесть, что Phonon задался подобной целью встраивания функциональности VoIP в API. Но Decibel предназначен служить основой для коммуникаций в реальном времени, а не просто добавлять функциональность VoIP. И он будет прозрачным. Его идея в том, что вам не нужно знать, какой IM-протокол используют те, с кем вы общаетесь: Decibel просто сообщит вашим приложениям, когда станет возможна беседа, а все остальное – за сценой.


Приятно, что Decibel не собирается игнорировать другие проекты-аналоги. Уже существуют два хорошо определенных базиса для коммуникаций. Первый – Telepathy, ставший стандартом, по которому оцениваются другие. Он гнездится на http://freedesktop.org и использует D-BUS для предоставления соединения в реальном времени общим сервисам, типа IRC, мгновенных сообщений, голоса и видео. Чтобы реализовать все по максимуму, он не чурается и других стандартов, например, протокола Jabber, но Telepathy тяготеет к Gnome. Многие годы конкурирующей спецификацией была Tapioca, реализованная с использованием библиотеки Qt. По счастью, у программистов Tapioca возобладал здравый смысл: они сделали свою спецификацию совместимой с Telepathy – и теперь гармонично сосуществуют. Decibel будет использовать привязки Qt для Tapioca. Может показаться, что команда разработчиков KDE создает собственную реализацию Qt-механизма ради него. Но те дни, мы надеемся, прошли. В Qt 4 объединяются многие изменения, нужные проекту KDE, так что мы не должны бы снова увидеть виртуально идентичные классы KIconView и QIconView.

В Decibel реализована штука под названием Housten, это слой взаимодействия с Telepathy. Он включает Account Manager, Protocol Manager и Component Manager. Account Manager обрабатывает информацию о возможности соединения, например, находится ли пользователь в сети или отключен, а Protocol Manager определяет, каким образом будет подключаться каждый пользователь. Соединение Jabber – часть комплекса Telepathy, которая должна привлечь пользователей. Component Manager используется для управления данными приложений.

Phonon, KHTML и Decibel намереваются изменить отношение среднего пользователя к настольным Linux-системам. Мультимедиа полностью интегрируется на уровне рабочего стола, web-страницы будут отображаться быстрее, чем с Firefox, и с той же совместимостью, как у Safari. И болтовня с друзьями станет так же привычна за рабочим столом, как управление файлами. Команда разработчиков KDE 4 воспользовалась этим, чтобы рассмотреть, для чего пользователи сейчас применяют настольные системы и какие происходят изменения.

[править] Получите свежий KDE

Живите на передовой – ищите ошибки, давайте советы и стройте будущее.

Чтобы испытать последний релиз KDE 4, достаточно установить последние пакеты Kubuntu. К сожалению, вы не найдете больших изменений по сравнению с KDE 3; многие из основных приложений сейчас являются частью релиза, но ни одно из них не готово использовать преимущества новых API.

Пройдет еще месяцев шесть, пока вы ощутите реальные изменения, и чтобы быть способным их разглядеть, нужно постоянно обновлять вашу версию KDE. Здесь описываются шаги, необходимые для получения самой свежей версии, независимо от того, являетесь ли вы разработчиком KDE или энтузиастом-любителем. Мы использовали Ubuntu, но наши инструкции должны работать и на других дистрибутивах, поскольку здесь нет специфических требований. Новичкам на заметку: при разработке KDE 4 используется система контроля версий Subversion. Она отслеживает все изменения, сделанные разработчиком, а также управляет сотнями разработчиков, вносящих изменения в один и тот же проект. Не позволяйте ей вас запугать, если вы не умеете писать код: последнюю версию может установить каждый. Сейчас мы расскажем, как это сделать.

[править] Создайте нового пользователя

Чтобы надежно изолировать KDE 4 от остальной системы, лучше установить KDE 4 под новой учетной записью, созданной специально для целей запуска приложений KDE 4. Это можно сделать либо в менеджере учетных записей вашего дистрибутива, либо из терминала, набрав su -c ‘adduser kdefour’. Вам нужно создать две папки в домашнем каталоге нового пользователя: одну с именем Qt-copy, а вторую – kde4. Также вам понадобится добавить некоторые переменные окружения, чтобы сохранить установку KDE 4 изолированной в вашем домашнем каталоге. Добавьте следующее в конец файла .bashrc, принадлежащего новому пользователю:

export REPOSITORY=svn://anonsvn.kde.org/home/kde
export QTDIR=~/qt-copy
export KDEDIR=~/kde4
export DBUSDIR=~/kde4
export KDEDIRS=$KDEDIR
export PATH=$QTDIR/bin:$KDEDIR/bin:$DBUSDIR/bin:$PATH
export LD_LIBRARY_PATH=$DBUSDIR/lib:$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins/
export PKG_CONFIG_PATH=$QTDIR/lib:$DBUSDIR/lib/pkgconfig
export QTEST_COLORED=1
export XDG_DATA_DIRS=$KDEDIR/share
export XDG_CONFIG_DIRS=$KDEDIR/etc/xdg

[править] Установите новую систему сборки, CMake

CMake заменяет старые пакеты Automake, на которые разработчики KDE полагались ранее. CMake теперь обрабатывает все сценарии компиляции для приложений, и должна намного упростить обработку зависимостей сборки. Инсталляция CMake проста: скачивание последнего пакета с http://www.cmake.org, распаковка полученного файла, затем переход во вновь созданный каталог и ввод следующих команд, для установки CMake в локальный каталог kde4:

./configure --prefix=~/kde4
make; sudo make install

[править] Добавьте обмен сообщениями D-BUS

KDE 4 использует D-BUS для взаимодействия между процессами. D-BUS – эффективная и кросс-платформенная замена для старого DCOP. Найти ее можно на влиятельном сайте http://Freedesktop.org, и по умолчанию она устанавливается со многими последними дистрибутивами. Если вы работаете на старом дистрибутиве, вам может потребоваться скомпилировать и установить собственную версию. Обычно это заключается в скачивании последнего основного релиза с http://dbus.freedesktop.org, распаковке пакета и вводе следующих команд:

./configure --disable-qt --disable-qt3 --prefix=$DBUSDIR
make; sudo make install

[править] Получите свежую версию Qt

Прежде чем погрязнуть в исходном коде KDE, вам нужно скачать и установить последнюю версию инструментария Qt, от которой KDE наследует все свои внутренние прелести. Subversion-репозиторий KDE содержит версию, на которой работают разработчики KDE, и ее можно скачать и установить тем же способом, что и сам KDE:

svn co $REPOSITORY/trunk/qt-copy
cd qt-copy; ./apply_patches
./configure -qt-gif -no-exceptions -debug -fast -prefix $QTDIR -confirm-license
make

[править] Получите KDE 4!

Теперь, когда у нас есть все основные зависимости для KDE, можно скачать и собрать рабочую копию KDE 4. Это нужно делать за три шага, поскольку приложения KDE требуют, чтобы сначала были собраны и установлены библиотеки и базовые файлы. Общая процедура такова:

svn co $REPOSITORY/trunk/KDE/kdelibs
mkdir kdelibs/build; cd kdelibs/build
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR ..
make -k; make install

Для установки базовых файлов замените kdelibs на kdebase в приведенном выше коде. Как только сборка и установка завершатся, все необходимые для запуска приложений KDE 4 части будут на месте. Их можно найти в каталоге kde4/bin, а kdebase включает предметы первой необходимости, например, текстовый редактор Kate и web-браузер Konqueror. Чтобы вызвать какое-нибудь приложение, сначала убедитесь, что D-BUS работает, затем запускайте двоичный файл. Чтобы запустить Kate, используйте следующие команды:

eval ‘dbus-launch --auto-syntax’
~/kde4/bin/kate

[править] Держитесь в курсе

Вы можете просматривать репозиторий KDE 4, заходя на http://websvn.kde.org/trunk/KDE. Здесь можно оценить прогресс, достигнутый в других основных проектах KDE, и скачать их, используя ту же самую процедуру, что и в Шаге 5. Просто замените kdelibs именем проекта, представленным на сайте WebSVN, затем скачайте, откомпилируйте и установите. В случае с базовой инсталляцией KDE 4 сравнительно просто отслеживать прогресс разработки. Subversion имеет команду для обновления исходного кода до последней версии, размещенной на сервере: вам просто нужно войти в каждый из основных подкаталогов, которые вы скачали, и запустить:

cd kdelibs
svn update
cd build
make; sudo make install

Мы использовали kdelibs в примере выше, потому что его по-прежнему нужно обновлять и устанавливать первым, затем – kdebase, чтобы не нарушить баланс зависимостей, необходимый для сборки и установки других пакетов.

[править] Как может выглядеть KDE 4: мнение нашего художника

LXF88_KDE404.jpg

[править] Что нам готовит ...

[править] DigiKam

  • Независимый интерфейс к базам данных
  • Интеграция с рабочим столом
  • Поиск по метаданным

Жиль Кoлье [Gilles Caulier], «хранитель» DigiKam: «После выхода версии 0.9.0 было начато портирование DigiKam на Qt 4/KDE 4. Первая задача новой библиотеки – предоставить новый интерфейс к базам данных, независимый от выбранного сервера (как в Amarok). С Qt 4, в отличие от Qt 3, это будет сделать легко. Qt 4/KDE 4 также будет управлять всеми поточными фильтрами изображений, доступными в ядре DigiKam. На самом деле, стиль кодирования потоков в Qt 3 не особо удобный, особенно когда пытаешься получить обратную связь с графическим интерфейсом пользователя во время расчета или загрузки файла.

За последний год мы много работали над DigiKam и DigiKamImagePlugins, чтобы добавить поддержку 16-битного цвета, управление цветом, полную поддержку метаданных, поддержку файлового формата RAW и так далее – между 0.8.x и 0.9.0 разница очень большая. Исходный код использует только Qt 3/KDE 3, и сейчас он на стадии завершения. Выпуск 0.9.0 планируется на конец 2006 г. Фактически, у нас нет времени на изучение нового API, предоставляемого KDE 4. Этим мы займемся после выхода 0.9.0.»

[править] K3b

  • Однократная настройка устройств для всех приложений сразу
  • Простая установка
  • Интегрированный в систему поиск

Себастьян Трюг [Sebastian Trueg], глава K3b: «Я уже говорил с разработчиком Solid об аппаратной абстракции, и мы обсудили возможность включить функции K3b непосредственно в Solid или даже в HAL. Сейчас я занят релизом 1.0 (который пришлось опять отложить). После этого начнется портирование на KDE 4.

Что касается поиска, я думаю, что интеграция в K3b будет такой же, как во всех приложениях KDE. По крайней мере, это моя цель: получить глубокую интеграцию расширенных семантических функций рабочего стола KDE. Я пытаюсь следить за всем, что творится вокруг, но это все-таки неподъемно. Так что я сосредоточился на проектах, над которыми работаю (K3b и Nepomuk-KDE) и пытаюсь следить за развитием родственных проектов.»

[править] Kate

  • Двунаправленный текст (поддержка языков типа арабского)
  • Произвольная подсветка
  • Автодополнение текста

Кристоф Куллманн [Christophe Cullmann], глава Kate: «Интеграция с Tenor – это, наверно, круто, но для нее нужен код Tenor, а его пока нет. Мы будем поддерживать скрипты KPart, что позволит писать, например, средства расстановки отступов в коде как сценарии JavaScript. Графический интерфейс останется примерно тем же; кое-что переделано, например, диалоги поиска/замены перейдут в поисковую панель, вроде используемой в Mozilla Firefox. Самая большая проблема на данный момент – надежность; требуется масштабное тестирование и отлавливание ошибок в кодовой базе KDE 4.»

[править] Kopete

  • Вертикальные вкладки в окне чата
  • Возможность создавать глобальные персональные данные
  • kopete:/ KIO slave как полностью виртуальная файловая система
  • Способность сохранять все контакты в адресной книге KDE

Мэтт Роджерс [Matt Rogers], лидер проекта Kopete: «Decibel может стать крайне важной частью Kopete в KDE 4, и есть люди, которые думают над тем, как сработаются Decibel и Kopete. С нашей стороны, я могу только радоваться этому. Правда, мы еще не знаем, чему радоваться, потому что первые фрагменты кода Decibel только-только [в середине ноября] перешли в Subversion-репозиторий KDE.

Команда разработчиков Kopete оказывает некоторое влияние на разработку и спецификации Decibel, хотя большинство работ происходит в сфере проектов Telepathy и Tapioca. Несколько разработчиков Telepathy в этом году были на Akademy, и мне говорили, что от их присутствия было немало пользы».

[править] KDevelop

  • Модификация большей части кода
  • Поддержка большего числа языков
  • Новый интерфейс сборки Cmake

Мэтт Роджерс [Matt Rogers], ведущий «хранитель» KDevelop: «Было очень важно выкинуть всякий хлам из KDevelop 4, поскольку в KDevelop 3 было слишком много неподдерживаемого кода, который мало кого волновал. Не думаю, что «глубокая переработка» неизбежна, когда выполняется крупное обновление Qt или KDE – все зависит от предпочтений людей, работающих над проектом. Мы повторно используем в KDevelop 4 немало кода и идей из KDevelop 3. Например, нынешний менеджер проектов в KDevelop 4 – прямой потомок кода, разработанного для KDevelop 3. Поддержка GNU autotools и Qmake в KDevelop 4 также будет развитием фрагментов, уже присутствующих в KDevelop 3. Конечно, мы кое-что перепишем с учетом новых технологий в Qt 4, но это отнюдь не переработка до основания – на это ушла бы целая вечность! Я думаю, настройка приложения станет проще, так как все больше и больше разработчиков учитывают мнение людей, занимающихся эргономикой, которые предоставляют свои знания через различные проекты, типа OpenUsability, и список рассылки kde-usability.»

Персональные инструменты
купить
подписаться
Яндекс.Метрика