Sometimes I write things, sometimes I don't.

To content | To menu | To search

Saturday 29 June 2013

Now the summer is really beginning

code.pngLike said in the last article that I wrote here I'm working on java-gnome to write a brand new code generator that will use GObject Introspection data. During the first two weeks of this summer of code I was not really dedicated to my project. I just finished my year at the university by having almost two weeks of exams. So I had to make a choice and decided to work more on my exams than on my summer project.

Serkan Kaba and I found the time to make some choices about what I will have to do during the whole summer starting from now. We have chosen to focus on the XML version of the Introspection data so we can easily parse them with a minimum of changes in the current code generator. If you don't know how the code generator currently works, it just parse .defs files data and generate several layers (JNI, translation) in the code of java-gnome. So the idea is to in a first time try to write a piece of code that will write .defs files from Introspection XML data. This will allow us to validate that we have fully understood how to use the data from GIR and to use the current powerful code generator to continue to generate some bindings layers. In a second time, I will work on implementing the new code generator that will use GIR data natively.

My exams are done I can now focus on this summer project. I am very glad to participate to the Google Summer of Code again (this is my third time). And I am mainly happy to be able to improve one of the project that I love.

Sunday 22 January 2012

Une extension à Nautilus pour GNOME Split

astuce.pngBientôt 2 ans après avoir exprimé ma volonté de créer une extension pour Nautilus afin de pouvoir lancer un découpage ou un assemblage avec GNOME Split, cette extension est enfin arrivée.

Le but de l'extension est de proposer deux nouvelles entrées dans le menu contextuel de Nautilus. Lors d'un clic droit sur un fichier quelconque l'item "Découper le fichier..." apparaît, l'utiliser permet de lancer GNOME Split avec les arguments qui vont biens pour découper le fichier sélectionné. Lors d'un clic droit sur un fichier étant considéré comme la première partie d'un fichier qui a été découpé auparavant, l'entrée "Assembler les fichiers..." apparaît permettant de lancer GNOME Split pour assembler les parties.

nautilus-extension-decoupage.png
Concrètement, cette extension de Nautilus est codée en C, publiée sous GPL version 3 et déjà présente dans le PPA pour la version 11.10 d'Ubuntu.

    ~$ sudo add-apt-repository ppa:gnome-split-team/ppa
    ~$ sudo aptitude update
    ~$ sudo aptitude install nautilus-gnome-split


N'étant pas expert en développement d'extensions pour Nautilus toute aide est la bienvenue.
En espérant que cette extension soit utile.

Monday 24 January 2011

GNOME Split en version 1.0

astuce.pngJ’aurais du en parler plus tôt, beaucoup plus tôt même. Le 18 novembre 2010 a été pour moi l’occasion de partager la version 1.0 de GNOME Split, nom de code Stable Isotope.

Cette version est donc sortie plus ou moins un an après la toute première version tout public de GNOME Split. Elle apporte principalement des corrections de bugs plutôt gênants et qui étaient là depuis pas mal de temps.

split-view.png
Comme on peut le voir l’interface n’a pas changé et j’avoue qu’elle me plaît bien comme elle est actuellement. Donc a priori, ça ne devrait pas (ou peu) changer par la suite. Voyons tout de même les corrections et quelques nouveautés qu’apporte la version 1.0 par rapport à la 0.9.

  • Amélioration des performances : les opérations de découpages et d’assemblages prennent en moyenne 2 fois moins de temps par rapport aux versions précédentes.
  • Prise en compte des cas où un ou plusieurs fichiers à assembler ne sont pas disponibles.
  • Meilleure gestion des exceptions et des erreurs dans le code.
  • Fenêtre de préférences légèrement revue pour la rendre plus compacte.
  • Correction générale de l’assistant, les pages ne se dupliquent plus.
  • Meilleure gestion de la fermeture des flux de fichiers lors d’un arrêt brutal (CTRL + C par exemple).
  • Affichage du pourcentage d’avancement dans le titre de la fenêtre.
  • Correction d’un bug qui ne permettait pas de découper des fichiers de plus de 2 Gio.
  • Mise à jour des traductions (traduction française complète).

J’espère que cette nouvelle version répondra aux attentes de beaucoup de personnes. Et nous voilà donc sur le chemin vers la 2.0 qui devra permettre après toutes les versions intermédiaires de découper un fichier en cryptant les données via mot de passe et aussi d’uploader des fichiers directement sur des sites web dédiés afin de les partager.

Comme toujours, les archives de code sont et le dépôt pour les ubunteros est ici.

Wednesday 30 June 2010

Sortie de GNOME Split 0.8

code.pngIl y a quelques heures, je viens de sortir une nouvelle version de GNOME Split. Cette dernière est numérotée 0.8 et représente une étape de plus vers la 1.0. Cela fait un an environ que le voyage a commencé après la mort inévitable de gSplit.

GNOME Split 0.8 tire donc partie de java-gnome 4.0.16 et des dernières nouveautés offertes. Aucune nouveauté géniale n’a été ajoutée. Il s’agit simplement d’une amélioration de l’interface graphique.

gnome-split-0.8.png
Au niveau des changements qui ont été effectués, on notera qu’une partie du code a été réécrite, que le fichier de configure (Gentoo, Fedora et ArchLinux, si y’en a qui sont intéressés pour tester hésitez pas) a été mis à jour. Les unités utilisées pour les tailles de fichiers respectent les standards et leur représentation en chaînes de caractères est confiée à GLib. On remarquera aussi l’utilisation des accelerators dans les menus.

gnome-split-0.8-file.png
Enfin, et en vrac, la nouvelle barre d’information disponible dans GTK+ est utilisée pour montrer les informations et les warnings à l’utilisateur, la fenêtre principale se redimensionne automatiquement si nécessaire, des méthodes dépréciées ont été retirées du code, le curseur change d’état selon l’état de l’interface et des traductions ont été mises à jour et ajoutées.

Je profite de cet article pour faire le point sur les noms de code que je donne à chaque version. Je ne sais pas si quelqu’un l’aura remarqué mais chaque nom de code est en rapport avec une expression ou une scène de la série The Big Bang Theory. La version 0.8 se nomme Happy Birthday mais ça n’a pas vraiment de rapport avec la série.

Pour terminer, GNOME Split 0.8 est disponible sur Ubuntu via le PPA ou avec le code source bien évidemment. N’hésitez pas à faire de paquets pour vos distributions favorites et à me donner vos avis et éventuellement à me dire les modifications à apporter.

Monday 21 June 2010

Sortie de java-gnome 4.0.16 et le futur

java.pngIl y a quelques jours, le 17 juin 2010 pour être précis, une nouvelle version de java-gnome est sortie. Cette dernière, numérotée 4.0.16, apporte comme toujours son lot d’amélioration. Il y a eu tout de même moins de modifications par rapport à ce que l’on a pu voir précédemment mais quand même. Une nouvelle version apporte toujours un peu de neuf (ou de vieux remis à neuf) et ça fait plaisir.

1. Nouvelle version : 4.0.16

Ainsi, java-gnome comporte maintenant le support complet pour l’utilisation des “accelerators” (on peut peut-être traduire par “raccourcis”), qui sont des combinaisons de touches permettant d’activer des actions et des entrées dans les menus. Je pense que bon nombre d’entre nous connaissent le très classique CTRL + Q pour quitter un programme. Le coeur de l’API se situe dans la classe AcceleratorGroup mais il faudra aussi utiliser les méthodes setAccelerator() des classes MenuItem et Action. L’API native étant presque incompréhensible, le travail pour porter tout ça en Java a été assez conséquent.

accelerators.png
De manière plus rapide, le support des opérateurs utilisables avec Cairo a été ajouter avec la classe Operator. Une bonne quantité d’exemple en image en montre le principe (images bien entendu générées avec java-gnome lors de la construction de la documentation. Le style CENTER a été ajouté dans la classe ButtonBoxStyle. Les fichiers .defs on été mis à jour pour prendre en compte les modifications apportées par GTK 2.18 et et le widget InfoBar a été ajouté (effectués par votre serviteur). Les interfaces Activatable et Editable ont reçu quelques changements tout comme la classe Glib qui comporte une nouvelle méthode formatSizeForDisplay() permettant de formater un taille d’octets en une chaîne de caractères plus lisibles pour nous humains. Enfin, une dernière méthode ensureNative() a été ajoutée à la classe Window de GDK.

2. Le futur

En tant que contributeur et avec les autres personnes travaillant sur java-gnome, nous nous sommes aperçu que maintenir un jeu de fichiers .defs pour générer la partie non publique de l’API commençait à être compliqué. Nous avons alors changer un peu le plan prévu. C’est pourquoi, en ce moment, certains travaillent sur l’utilisation du projet GObject Introspection pour générer une partie de l’API. C’est probablement le meilleur moyen d’avoir une source donnée la plus complète et la plus à jour afin de garder les bindings les plus proches des dernières versions des bibliothèques natives. Cependant, la migration vers GObject Introspection demande un travail long et délicat puisqu’il faut réécrire une partie du générateur de code que l’on sait stable puisqu’il commence à prendre de l’âge. J’espère tout de même que l’on aura quelque chose de fonctionnel assez vite afin de tester et stabiliser le code le plus rapidement possible.

Le futur de java-gnome prévoit de bonnes surprises, c’est certain. Tout ça dans le but d’améliorer encore l’API telle qu’on la connaît et de toucher un public toujours plus grand.

Wednesday 31 March 2010

Un nouveau pas vers GNOME 3.0 : GNOME 2.30 est là

Comme vous le saviez peut-être, aujourd’hui est sortie la version 2.30 de GNOME. Cette version qui devait à la base être nommée 3.0 n’est qu’une étape vers GNOME 3.0. Qu’est-ce que GNOME ? C’est un environnement de bureau axé sur la simplicité, qui offre à l’utilisateur des applications pour pouvoir exploiter son ordinateur du mieux possible. Il offre également pour les développeurs tout un panel de bibliothèques qui permet de développer des applications s’intégrant au bureau GNOME de la manière la plus conviviale possible.


C’est donc aujourd’hui (31 mars 2010) que la version 2.30 de GNOME sort. Au programme, un mode d’affichage partagé pour Nautilus, Empathy qui progresse grâce à des méthodes de drag’n’drop et une meilleure gestion de quelques protocoles de messagerie instantanée, une synchronisation automatique de notes de Tomboy, le lecteur de PDF Evince améliore sa gestion de l’impression et ajoute la possibilité d’attacher des notes, enfin la navigateur Epiphany se voit octroyé de nouvelles fonctionnalités. Bien entendu, je ne fais pas toute la liste des nouveautés car il y a une page pour ça.

Pour ma part, je m’intéresse particulièrement aux changements opérés dans les bibliothèques et surtout GTK+ 2.20 afin de savoir où aller avec java-gnome (qui devrait commencer à tirer partie de GNOME 2.30). N’oublions pas également que GNOME 2.30 sera (et même est déjà utilisé) pour la version, déjà très populaire, 10.04, aussi connu sous le nom de Lucid Lynx, de Ubuntu. Celle-ci sera d’ailleurs une nouvelle LTS (Long Term Support).

Il ne nous reste qu’à apprécier cette nouvelle release (de manière globale) et regarder comment va se profiler le futur et révolutionnaire GNOME 3.0.

Thursday 10 December 2009

GNOME Split sort en version 0.1

Comme je l'avais annoncé la semaine dernière la sortie de la première version de GNOME Split était imminente. Et bien aujourd'hui, c'est officiel, la version 0.1 est désormais disponible. Vous pouvez la télécharger sur la page du projet sur Launchpad.

Pour l'instant, il est possible de découper et assembler des fichiers au format Xtremsplit (extension en .xtm) et au format GNOME Split (extension .gsp). Pas de paquet pour les diverses distributions (en fait pour le moment j'ai du mal à packager le tout pour Ubuntu sur mon PPA). Aucun bug n'a été trouvé pour le moment (sachant que j'ai été le seul cobaye), à vous donc de me les rapporter. Pour les impatients qui n'ont pas peur de compiler, un tutoriel est disponible ici et pour ceux qui sont intéressés, il est possible de suivre le développement ici.

Wednesday 2 December 2009

GNOME Split débarque... bientôt

Ça faisait longtemps (pour ne pas dire très longtemps) que je n'avais pas parlé de mon projet de découpeur et assembleur de fichiers. En effet, gSplit est en arrêt depuis plusieurs semaines (voire mois). J'ai, en fait, décidé de le recoder en partant d'une page d'Eclipse blanche et au passage de le renommer GNOME Split.

De l'ambition ? Oh oui, il en a ! Le but est de faire un découpeur et assembleur de fichiers supportant plusieurs formats (dont le fameux Xtremsplit [ce qui est déjà fait]). Pourquoi n'est-il pas tout de suite dans sa première version ? J'ai encore un algorithme de découpage / assemblage à implémenter (j'ai implémenté celui de Xtremsplit avant celui propre à GNOME Split... Qui a dit paradoxal ?), la fonctionnalité d'arrêt en cours d'action et un léger bug à corriger. J'espère que tout ceci sera fait d'ici la fin de semaine pour que le petit outil sorte en version 0.1. D'ici là, je vous offre quelques petites captures d'écran.




Ah oui, j'oubliais ! Une chose qui serait très sympa serait d'avoir un nouveau logo. Donc si vous en avez l'envie et le temps, n'hésitez pas à m'envoyer vos créations (le must serait que celles-ci respectent les conventions du Tango Desktop Project). L'auteur du logo retenu aura bien évidemment sa place dans les crédits du projet. Merci d'avance.

- page 1 of 3