Апр 26

OpenCL — это открытый набор библиотек для параллельного программирования в гетерогенной среде.

Начнём с конца. Что значит «в гетерогенной среде»? OpenCL позволяет запускать C-код на вычислительных мощностях вашей видеокарты. Или же на вашем центральном процессоре — ему всё равно.

Что же касается параллельного программирования — OpenCL предназначен не просто для того, чтобы производить вычисления на GPU, но и для распределения нагрузки между всеми ядрами CPU и GPU, до которых он только сможет дотянуться. Идея в том, что программисту не нужно предпринимать дополнительных усилий по написанию очередей обработки — OpenCL делает это для вас, и ваше приложение без каких-либо изменений масштабируется для выполнения на одном, двух или же на двадцати четырёх ядрах.

Разработчики Qt заинтересовались возможностями OpenCL, и недавно они представили библиотеку QtOpenCL.

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

Апр 05

Недавно разработчики deKorator и Aurorae, движков оконных декораций для KDE, сообщили в своих блогах последние новости о текущем прогрессе. Читать далее »

Мар 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.

Фев 17

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

Virtuoso

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

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

Фев 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

Янв 28

Quanta Plus остаётся довольно популярным средством веб-разработки для среды KDE3 даже сейчас. К сожалению, создатели приложения больше не занимаются её разработкой, а потому судьба порта Quanta на KDE4 долгое время была под вопросом. В конце концов, разработчики KDevelop решили подобрать упавшее знамя, и объявили о том, что Quanta4 будет переписана с нуля на основе разработок KDevPlatform. Это значит, что с одной стороны, Quanta4 будет строиться на той же кодовой базе, что и KDevelop 4, а значит, бесплатно получит все возможности последнего, а с другой — для KDevelop будут реализованы плагины для работы с HTML, CSS, JavaScript и PHP (в том числе, и для отладки).

Придётся, конечно, учитывать, что будучи полностью переписанной, первые релизы Quanta4 вряд ли будут охватывать все возможности, которые были заложены в версии для KDE3. Тем не менее, развиваясь в рамках KDevPlatform, Quanta наверняка получит дальнейшее развитие.

kdevelop-php

Первую стабильную версию KDevPlatform планируется выпустить 31-го марта 2010 года, а пока что регулярно выходят бета-релизы (седьмая бета вышла 16-го декабря). Разработчики сообщают, что поддержка PHP уже сейчас реализована на высоком уровне, а в настоящее время Niko Sams работает над плагинами для CSS.

Дек 17

Недавно один из разработчиков Qt Labs Paul Olav Tvete рассказал о проекте Lighthouse, целью которого является упростить портирование Qt на различные платформы. Идея проекта проста: изолировать весь платформенно-зависимый код, и создать фреймворк для написания «бэк-эндов» под различные платформы и устройства вывода.

Сейчас поддержка многих устройств реализована в рамках проекта Qt for Embedded Linux. Это очень гибкая платформа, которая развивается уже более десятка лет, но некоторые её аспекты не соответствуют современным тенденциям. Например, Qt/E включает в себя полноценный оконный менеджер, который нужен далеко не на всех платформах, тем более, во многих из них реализованы свои системы управления окнами. Читать далее »