Qt 4.8 Technology Preview

Qt 4.8 est maintenant disponible pour test et retours de la part de la communauté !

La version 4.8 de Qt va contenir beaucoup d’améliorations au niveau de la qualité du code et des performances, fruits des recherches de ces douze derniers mois, en bénéficie par exemple le système de fichiers. Il inclut aussi la couche d’abstraction de la plateforme Lighthouse, qui permet un portage de Qt sur d’autres systèmes graphiques plus simple pour des tiers. Autre changement important, les améliorations dans la gestion du réseau sur Symbian.

Les paquets disponibles actuellement ont été testés sur Windows 7, Mac OS X 10.6, Linux et Symbian^3. La liste des plateformes que supportera effectivement Qt 4.8 sera diffusée en temps et en heure. Une liste des fonctionnalités d’ores et déjà dépréciées est disponible.

La beta de Qt 4.8 devrait être disponible dans les prochaines semaines, la Release Candidate dans la seconde moitié de 2011. Elles ne seront disponibles que par l’intermédiaire du Qt SDK.

Les sources : http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.8.0-tp.tar.gz

Moniteur de performances QML

Qt Creator 2.2 sortant dans peu de temps, le développement de nouvelles fonctionnalités dans une nouvelle branche peut débuter. L’une d’entre elles est un moniteur de performances QML, un petit outil, qui fera partie du nouveau mode d’analyse. Il pourra être utilisé pour profiler les applications Qt Quick. On peut ainsi inspecter les évaluations de bindings, la gestion des signaux, les opérations de dessin lors de l’exécution du code QML. Cela peut être très utile pour identifier de potentiels goulots d’étranglement, particulièrement dans l’évaluation des bindings. Voici une petite vidéo introduisant la fonctionnalité :

Ici, le moniteur est lancé sur une application Qt Quick créée dans l’assistant de Qt Creator en important la démo samegame.

Ce nouvel outil a été rendu possible grâce aux trolls de Brisbane, qui ont démarré ce projet. Il s’agit cependant d’une fonctionnalité dans ses tout débuts, beaucoup d’options manquent encore à l’appel et il pourra même être instable.

Il est aussi possible de profiler sur un périphérique mobile en lançant l’application Qt Quick avec les paramètres en ligne de commande -qmljsdebugger=port:33456 et en y attachant le profileur en utilisant les options dans le menu de débogage. Cela étant dit, on ne peut pas encore garantir que cela fonctionnera dans tous les cas, des tests plus approfondis doivent encore être menés.

Source : http://labs.qt.nokia.com/2011/04/07/qml-perfomance-monitor/

Release candidate du Qt SDK 1.1

Aujourd’hui est disponible le Qt SDK en version 1.1 release candidate, étape majeure sur le chemin de la version finale, se basant entièrement sur la beta, déjà disponible. La version finale de ce SDK permettra de soumettre directement des applications basées sur Qt 4.7 sur Ovi Store.

Quelles sont les nouveautés depuis la beta ?

  • Qt 4.7.3, pour le desktop et Symbian, pas encore disponible officiellement ;
  • Qt Mobility 1.1.2 ;
  • Qt Assistant ajouté comme paquet séparé (demande des développeurs) ;
  • l’installeur utilise le proxy système sous Linux ;
  • Notification API déplacé depuis expérimental vers les API supplémentaires ;
  • corrections de bogues dans le Qt Simulator et pour l’installation et la mise à jour.

De plus, Qt 4.7 ne sera plus supporté pour S60, troisième édition, on peut toujours créer des applications pour cette plateforme à l’aide de Qt 4.6 et de Qt Mobility 1.1.2. Ce changement a été induit par les retours des beta testeurs.

Aussi, à la sortie du Qt SDK 1.1, la version 1.0 ne sera plus disponible. En effet, la nouvelle version 1.1 supportera aussi bien Qt 4.6 que Qt 4.7, rendant la version 1.0 inutile.

On peut le télécharger sur le Forum Nokia.

Sources : http://labs.qt.nokia.com/2011/04/06/qt-sdk-1-1-rc-released/ et http://blogs.forum.nokia.com/blog/nokia-developer-news/2011/04/06/qt-sdk-1-1-release-candidate-available.

Les QML Templates arrivent

La bibliothèque de templates QML (QML UI Templates Library) contient des composants réutilisables d’interfaces utilisateur pour QML, la technologie d’interfaces graphiques déclaratives de Qt.

Cette bibliothèque fournit des outils basiques pour construire une application QML, alors que les templates mettent en évidence les bonnes pratiques de conception d’interface. Les styles et graphiques utilisés se basent sur un modèle unique que l’on peut réutiliser dans toute application. On peut aussi personnaliser ces éléments (couleur, style, graphiques…).

Ses éléments sont d’ores et déjà utilisé dans deux applications d’exemple, RSSReader et Restaurant. Les composants disponibles ne sont pas des widgets élémentaires, ils sont déjà disponibles dans QML, mais bien des templates plus complets comme des vues de listes et des détails intégrés.



Le site officiel

Source : http://www.forum.nokia.com/Develop/Qt/QML_templates/

PySide 1.0.1 est sorti, avec d’autres nouveautés

La version 1.0.1 de PySide est sortie, elle ne s’occupe que de corriger des bogues de la version précédente. Ce n’est pas la plus grande nouvelle concernant le binding Python de Qt pour cette fois-ci. La dernière version de PySide.

Il faut aussi remarquer l’apparition de nightly builds, des paquets de la version de développement de PySide, donc moins stable qu’une sortie officielle. Ils peuvent être utilisés pour voir ce que contiendra la prochaine version de PySide et améliorer le retour utilisateur au sujet notamment des bogues. Ces fichiers sont mis à jour chaque nuit à partir du repository Git à 1h, GMT -3. Les nightly build.

Aussi, PySide supporte maintenant officiellement MeeGo, avec un paquet basé sur les fichiers de spécification d’openSUSE. Toutes les informations sont disponibles sur la page concernée du wiki.

Ainsi, PySide est officiellement disponible sur Windows, Mac OS X, Maemo 5, MeeGo et toutes les distributions Linux majeures.

Sources : http://www.pyside.org/2011/04/pyside-1-0-1-python-for-qt-released/, http://www.pyside.org/2011/03/pyside-nightly-builds/, http://www.pyside.org/2011/03/pyside-1-0-meego/ et http://lists.pyside.org/pipermail/py…il/002328.html

Qt Creator 2.2 en beta

La dernière version de Qt Creator, la 2.2, arrive en beta aujourd’hui. En plus des habituelles corrections de bogues de la version précédente, mais surtout quelques nouvelles fonctionnalités très utiles pour un EDI, rendant Qt Creator encore plus puissant et flexible.

Notons l’amélioration du support de QML (principalement dans l’édition textuelle de code QML), du débogage (le moteur CDB autorise maintenant le débogage d’applications 32 et 64 bits séparément, ainsi que le débogage de code mixte C++/Qt) et des outils de compilation. Aussi, les outils de débogage sont maintenant punaisables !

Bien d’autres choses sont encore prévues pour la version finale de Qt Creator 2.2, comme l’intégration d’outils externes améliorées, la configuration de chaînes de compilation manuelle, le changement des définitions de types MIME, ce qui rendra possible l’utilisation d’extensions différentes pour les fichiers source ou d’en-tête. Ce paramétrage se situe dans la page Environment > MIME Types des préférences.

Plus en détail, on trouve les snippets configurables, ajoutés aux différents éditeurs, qui fournissaient déjà moult snippets prédéfinis, que ce soit en C++ ou en QML. On peut les configurer dans les préférences, onglet Text Editor > Snippets.

Sources : http://blog.qt.nokia.com/2011/03/24/qt-creator-2-2-beta-released/ et http://labs.qt.nokia.com/2011/03/24/qt-creator-2-2-beta-release/

Sortie de Qt 4.7.2

Qt 4.7.2 est sorti ce jour. Ce n’est qu’une version de maintenance, avec son lot de corrections de bogues, grâce au retour utilisateur et aux contributions, depuis la sortie de la version 4.7.1, en novembre dernier. Point plus important, il marque la sortie officielle de Qt Quick, LA nouvelle fonctionnalité clé de Qt, permettant de créer très simplement des applications légères et des interfaces utilisateur. Pour mener à bien sa mission, il se base sur QML, un langage de déclaration d’interfaces, sur le module Qt Declarative et de nouveaux outils dans Qt Creator, dont un éditeur visuel, un éditeur de code et un débogueur.

Des paquets sont d’ores et déjà disponibles sur la page des téléchargements ; pour ceux qui suivent l’évolution du framework sur Gitorious, un nouveau tag devrait apparaître assez bientôt.

Source : http://labs.qt.nokia.com/2011/03/01/qt-4-7-2-has-been-released/

CUDA 4.0 arrive, la release candidate disponible

La sortie cette semaine aux développeurs enregistrés de CUDA est l’accomplissement de milliers d’heures dédiées à ce projet. Cette technologie peut sembler jeune, sa première version, la 1.0, n’a été sortie qu’en 2007. L’effet de cette sortie sur le monde entier n’a, sans nul doute possible, pas été nul. Elle n’est pas non plus le seul terrain d’avance pour les technologies massivement parallèles sur matériel NVIDIA : les API comme OpenCL et DirectCompute sont elles aussi supportées et améliorées, en plus d’un accès direct au GPU en C, C++ et Fortran.

Comme toujours, NVIDIA est à la recherche d’aide sur le sujet, notamment au niveau des retours d’utilisateurs, d’améliorations possibles, des bogues ; tout ce qui vous empêche de développer rapidement, de déployer des applications sans souci, tout cela doit être amélioré. Si vous êtes intéressé dans cette perspective, n’hésitez pas à vous enregistrer comme développeur.

Le contenu de CUDA 4.0

Venons-en au fait de cette sortie prochaine, vendredi 4 mars aux développeurs enregistrés.

Notons la version 2.0 de GPUDirect, une technologie qui offre un support pour des communications entre les GPU d’un serveur ou d’une station de travail, une fonctionnalité que beaucoup décrivent comme un outil pour un développement plus rapide et plus aisé pour plusieurs GPU, ainsi qu’un vecteur d’améliorations de performances.


UVA, acronyme de Unified Virtual Addressing, permet d’utiliser un espace d’adressage mémoire unifié entre la mémoire du système et celles des GPU.

Aussi, grande nouveauté par rapport aux versions précédentes de CUDA, le partage entre divers threads de GPU : plusieurs threads ou processus sur le CPU peuvent utiliser le même GPU pour leurs calculs. De même, un même thread CPU peut utiliser plusieurs GPU en même temps. Thrust est désormais intégré dans CUDA, le portage de la STL du C++ aux technologies du GPU.

Pour les amateurs de C++, de nouvelles fonctionnalités propres au langage sont désormais supportées, comme les fonctions virtuelles, ainsi que les mots clés new et delete pour la gestion de la mémoire allouée.

Sources : http://blogs.nvidia.com/2011/03/announcing-cuda-4-0/, http://developer.nvidia.com/object/cuda_4_0_RC_downloads.html, http://www.ddj.com/high-performance-computing/229219474;jsessionid=YAXVYSIIVLYCTQE1GHPSKH4ATMY32JVN, http://www.anandtech.com/show/4198/nvidia-announces-cuda-40 (d’où proviennent les images)

PySide 1.0.0 beta 2, le support complet des interfaces déclaratives arrive dans ce bindind LGPL Python de Qt

Voici donc sortie la deuxième beta de PySide, le binding Python de Qt initié par Nokia, dont la principale différence avec le binding historique, PyQt, réside dans la licence : PySide est disponible sous LGPL, une licence moins restrictive que la GPL employée par PyQt. Ainsi, un binding Python de Qt peut être utilisé pour des développements propriétaires sans obligation de payer une licence commerciale.

La première version beta de PySide (la bien dénommée beta 1) apportait un grand changement par rapport aux versions précédents (0.4.2 et avant) : un changement dans l’ABI (Application Binary Interface), ce qui, pour rester en dehors des détails techniques, obligeait à recompiler toute application se basant sur PySide (notamment le module Python). Cependant, ainsi, le projet se dote d’une architecture qui pourra servir pendant encore un certain temps, enlevant les choix de conceptions qui se sont avérés moins bons que d’autres.

La beta 1 améliorait le support de Qt Quick et de QML, les interfaces utilisateur dans ce langage déclaratif étaient désormais possibles en Python ; une seule chose manquait : l’enregistrement de nouveaux types QML depuis Python. Cela est désormais possible, comme l’atteste l’exemple : http://qt.gitorious.org/pyside/pyside-examples/trees/master/examples/declarative/extending/chapter5-listproperties.

Le support de Python 3 a été déclaré comme « non insurmontable » mais est prévu pour après la sortie de la version finale de la branche 1.0. Il est à remarquer, à ce niveau, que PyQt supporte déjà Python 2.x et 3.x, mais propose à chacun des API différentes, l’API 1 est plus prévue pour le portage d’applications du C++ au Python (par défaut pour Python 2.x), l’API 2 étant plus pythonique (par défaut pour Python 3.x), ce qui n’est pas très cohérent. Le PSEP 101, déjà implémenté, fait le choix de ne se baser que sur l’API 2, car plus pythonique ; ce choix permettra de passer sans trop de dégâts dans son code à Python 3.x.

Afin de fignoler le travail, au moins deux betas sont prévues avant cette version finale (trois semaines avant la beta 3, puis deux semaines pour la beta 4 et deux nouvelles semaines pour la finale, tels sont les projets).

Canonical et Nokia pourraient travailler en collaboration sur Qt

Sur les quelques derniers mois, des contacts ont eu lieu entre les développeurs de Qt et Canonical ainsi qu’avec les participants au projet Ubuntu. Mark Zimmerman, CTO de Canonical, disait sur son blog, en octobre :

I have been thinking about Qt recently. We want to make it fast, easy and painless to develop applications for Ubuntu, and Qt is an option worth exploring for application developers. In thinking about this, I’ve realized that there is quite a bit of commonality between the strengths of Qt and some of the new directions in Ubuntu.

Overall, I think Qt has a lot to offer people who want to develop applications for (and on) Ubuntu, particularly now. It already powers popular cross-platform applications like VLC, not to mention the entire Kubuntu distribution. I missed it when this happened last year, but Qt is now available under either the LGPL 2.1 or the GPL 3.0, which should make it suitable for virtually any Ubuntu application. It has strong commercial backing as well as a large developer community.

J’ai pensé à Qt récemment. Nous voulons que le développement d’applications pour Ubuntu soit rapide, simple, sans anicroche, Qt est une option qui mérite d’être explorée pour les développeurs. En pensant à tout cela, j’ai trouvé qu’il y avait quelques points communs entre les forces de Qt et les nouvelles orientations d’Ubuntu.

En général, je pense que Qt a beaucoup à offrir à des gens qui veulent développer pour (et sur) Ubuntu, particulièrement maintenant. Il est déjà à l’Å“uvre dans des applications multiplateformes comme VLC, sans oublier la distribution Kubuntu dans son entièrement. Je ne l’avais pas remarqué l’année dernière, Qt est maintenant disponible en LGPL 2.1 ou GPL 3.0, ce qui le rend utilisable pour à peu près toute application Ubuntu. Il possède aussi un support commercial et une large communauté de développeurs.

Et de citer plusieurs points communs, dont les plateformes supportées. Qt supporte depuis longtemps ARM comme x86, depuis plus de dix ans ; Ubuntu supporte les produits basés sur ARM depuis deux ans, la dernière version supporte encore plus de processeurs ARM ; de son côté, Qt optimise son utilisation de ARMv7, la dernière version de l’architecture. Ainsi, on peut fournir aux fabricants un large choix de matériel sans sacrifier la gamme de logiciels disponibles.

Par la suite, deux développeurs de Qt, Zeno Albisser et Dennis Dzyubenko, ont été personnellement invités à la Ubuntu Developer Conference 2010, qui a eu lieu à Orlando. Ils avaient pour but d’aligner la stratégie de Canonical pour le support d’Ubuntu et des services liées avec Qt, ont participé à différentes discussions sur les gestes et les méthodes d’entrée multipoint. Bien évidemment, ils brandissaient le drapeau Qt ! Selon Zeno, Canonical est très intéressé par l’approche de Qt pour utiliser la puisse de l’entrée par des gestes (taper, taper et maintenir, balayer, etc.).

La vérité, cependant, est que rassembler deux communautés, deux flux de développement n’est jamais une mince affaire, même si les deux groupes sont de bonne disposition dès le tout début. Quand il s’agit d’en venir au niveau de la technologie, Zimmerman avait déjà suggéré que travailler ensemble pour activer le support des gestes d’une manière collaborative sera un processus assez complexe. Il disait même que Qt avait un système d’entrée tactile très mature, avec maintenant le support du multitouch et des gestes, dont QML (fairly mature touch input system, which now has support for multi-touch and gestures (including QML)), il est donc de ceux qui voudraient aligner les développements de la communauté Canonical vers les outils offerts par Qt. Cependant, ces fonctionnalités ne sont complètement implémentées et supportées que sous Windows 7 et Mac OS X 10.6, rien pour Linux et X11 pour le moment (bien qu’un développement d’un framework de bas niveau pour ces plateformes soit en cours de développement).

Du côté de Qt, l’objectif est de travailler dur, avec un peu de magie et de chance si nécessaire, pour aller plus loin dans la collaboration avec Canonical et Ubuntu, pour que tous partagent le même framework.

Mais est-ce une si bonne nouvelle ?

Sources : http://blog.qt.nokia.com/2010/12/22/my-new-years-resolution-plus-canonical-and-the-opportunity-to-work-more-closely/ et http://mdzlog.alcor.net/2010/10/20/ubuntu-and-qt/