Мар 19

Близится лето и разработчики KDE приглашают всех студентов принять участие в очередном Google Summer of Code. Summer of Code — это проект Google, в ходе которого организации или проекты, связаные с OpenSource, заявляют список задач (например, реализовать какую-либо возможность или исправить ошибку), а любой студент может предложить свою кандидатуру для их решения. При этом справившиеся с заданием не только помогают любимому проекту, но и получают денежное вознаграждение в размере 5000$.

Наиболее интересное из списка задач проекта KDE:

Читать далее »

Мар 11

Каждый разработчик, знакомый с Qt, знает об используемом в этой библиотеке паттерне сигналов и слотов. Традиционно синтаксис соединения сигналов и слотов в PyQt и PyKDE выглядел очень похоже на аналогичный синтаксис в C++:

from PyQt4 import QtCore
from PyQt4 import QtGui
from PyKDE4 import kdeui

class MyGUI(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyGUI, self).__init__(parent)
        self.pushbutton = kdeui.KPushButton()
        self.pushbutton.setText("Push me!")

        QObject.connect(self.pushbutton, QtCore.SIGNAL("clicked()"),
                               self.button_pushed)

    def button_pushed(self):
        print "Button clicked"

Однако в PyQt 4.5 была добавлена поддержка нового стиля соединений:

from PyQt4 import QtCore
from PyQt4 import QtGui
from PyKDE4 import kdeui

class MyGUI(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyGUI, self).__init__(parent)
        self.pushbutton = kdeui.KPushButton()
        self.pushbutton.setText("Push me!")
        # New style
        self.pushbutton.clicked.connect(self.button_pushed)

    def button_pushed(self):
        print "Button clicked"

Будучи основанной на PyQt4, PyKDE4 также теперь поддерживает этот синтаксис. Как видите, код таких соединений выглядит гораздо компактнее и выразительнее, и более «по-питоновски». Кроме того, если раньше было трудно отследить возможные ошибки, допустив опечатку в названии сигнала или слота, то теперь любая опечатка вызовет исключение AttributeError.

Подробнее использование нового стиля описано в документации к PyQt.

Обратите внимание: если вы решили перейти с PyQt на PySide, то этот синтаксис вам пока ещё не доступен. Тем не менее, разработчики PySide планируют исправить это в будущих версиях библиотеки. Детали реализации нового стиля сигналов и слотов в PySide описаны в этом документе.

Мар 10

Разработчики QtWebKit приняли решение отделиться от процесса подготовки релизов Qt, чтобы иметь возможность выпускать обновления чаще, чем выходят новые версии основной библиотеки. Первый независимый релиз QtWebKit будет называться QtWebKit 2.0 и выйдет в мае. Эта версия будет совместима с Qt 4.6 и Qt 4.7. Новые релизы Qt будут по-прежнему включать текущую стабильную версию QtWebKit.

В прошлом медленный цикл развития QtWebKit тормозил разработку новых возможностей таких приложений, как Arora, Rekonq и WebKit KPart. Сейчас его сообщество активно растят, и более частый выпуск новых версий поможет динамичному развитию проекта — достаточно глянуть на серию заметок «This week in QtWebKit trunk»

Кроме того, используемая в QtWebKit ветка WebKit всегда синхронизируется с текущей стабильной веткой при выходе значительных релизов Qt (4.5, 4.6), из-за чего новые версии браузеров на основе QtWebKit могли долгое время отставать в реализации поддержки веб-стандартов от других WebKit-браузеров. Теперь же, работая по независимому от Qt графику, разработчики QtWebKit могут легко привязаться к выходу новых версий WebKit.

Мар 09

Продолжая тему предыдущей заметки, Robert Riemann также предлагает использовать Klipper для того, чтобы чтобы отправлять фрагменты текста на сервисы вроде pastebin. Но гораздо проще воспользоваться виджетом Pastebin: просто добавьте виджет на панель или рабочий стол, и кликнув средней кнопкой мыши на нём, вы разместите текст или изображение из буфера обмена на pastebin.ca или imagebin.ca. Кстати, в следующих версиях KDE SC (видимо, в 4.4.2) можно будет назначить быструю клавишу для этого действия (сейчас, к сожалению, назначение клавиши для этого виджета ничего не делает).

Вы также можете переместить текст или изображение из другого приложения на этот виджет — например, вы можете перетащить файл из Dolphin или сделав скриншот, сразу же перетянуть его из окна KSnapshot на Pastebin

(Смотреть в OGG)

Мар 09

Если вы активно пользуетесь микроблогами вроде Twitter или identi.ca, то наверняка знакомы с сервисами bit.ly и tinyurl, которые позволяют создавать короткие псевдонимы для длинных адресов. Robert Riemann предлагает простой способ получать доступ к таким сервисам при помощи механизма действий Klipper — встроенного в KDE менеджера буфера обмена.

Для начала вам понадобится консольный скрипт, который будет отсылать длинный URL на сервис и возвращать в ответ короткий. Роберт предлагает свой скрипт на Ruby, который предоставляет интерфейс к ur1.ca, но можно воспользоваться гораздо более простым рецептом от Григория Бакунова:

$ curl http://clck.ru/--?url=http://ваш-url

Читать далее »

Фев 17

Sebastian Trueg рассказывает о ходе разработки проекта Nepomuk в 2009 году.

Virtuoso

Одно из важнейших изменений в Nepomuk — это, безусловно, новый механизм хранения данных. Ранее пользователям Nepomuk приходилось использовать sesame2 – бекэнд, основанный на технологиях JAVA и потребляющий довольно много памяти, или же Redland, который не может похвастаться хорошей производительностью и не имеет многих нужных разработчикам возможностей.

Поэтому год назад была начата работа над Virtuoso-бэкэндом. Сервер Virtuoso соотвествует всем требованиям разработчиков Nepomuk, и отлично при этом масштабируется. Программисты из компании OpenLink, создателя Virtuoso, не только добавили «лёгкий» режим работы сервера, но и помогли с отладкой и исправлением проблем, возникших в ходе написания бекэнда. Читать далее »

Фев 17

Относительно недавно Trever Fischer добавил более-менее рабочую поддержку интерфейса video4linux2 в xine-lib. Интересующиеся могут заглянуть в файл src/input/input_v4l2.c в этом hg-репозитории. А это — ещё один важный шаг на пути полной поддержки вебкамер во фреймворке Phonon.

Так как автор не имел ранее дела с внутренним устройством xine, код получился не таким хорошим, как ему хотелось бы. Так что в планах у Trever’а дальнейшая работа над качеством и портирование на нестабильную ветку xine-lib 1.2

Плюс реализация поддержки дополнительных форматов, радио-устройств, скрытых субтитров (closed captions), OSD-вывода и, наверное, самого важного – аудио.

Похоже, что придётся написать новый v4l2-специфичный demuxer — вроде как сейчас с этим просто :)

Также, есть хорошие новости из стана Phonon и его бэкэндов.

Читать далее »

Фев 15

На блоге Amarok появился скринкаст с обзором текущего состояния Amarok 2.3. Не забывайте, что до релиза ещё далеко, и многие вещи изменятся (в частности, вид верхней панели не окончательный)

А для того, чтобы хорошенько потестировать нашу новую систему комментирования, давайте похоливарим на тему «когда разработчики Amarok научатся делать человеческие интерфейсы»

Фев 15

Продолжая мобильную тему, сегодня было объявлено о выходе Qt 4.6.2 для Maemo 5.

И если более ранние версии Qt для Maemo выходили с приставкой beta, то теперь этот порт считается стабильным. Конечные пользователи получат Qt 4.6.2 в составе обновления PR1.2

Фев 15

Сегодня разработчики Nokia и Intel объявили о том, что проекты Maemo и Moblin будут объединены с целью создания новой мобильной платформы MeeGo. MeeGo будет поддерживать широкий спектр устройств, включая мобильные компьютеры, нетбуки, таблетки, смартфоны, телевизоры и бортовые компьютеры автомобилей. Первые устройства на основе MeeGo должны появиться уже в этом году.

MeeGo будет основана на Linux, а основным фреймворком для разработчиков будет Qt. В пресс-релизе подчёркивается, что Qt позволяет разработчикам однажды создав приложение, поддерживать его на множестве различных платформ, а также продвигать в Ovi Store от Nokia и AppUpSM Center от Intel.

Обещают, что проект будет поддерживаться Linux Foundation и управляться согласно с лучшими практиками OpenSource модели.

Замечу, что буквально пару дней назад было объявлено о начале работ над портированием Qt на платформу Android энтузиастами при помощи средств проекта Lighthouse