Retours du Google SoC et OPW 2013

Posté par  . Édité par patrick_g, ZeroHeure et Sylvestre Ledru. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes : aucune
33
7
oct.
2013
Gnome

Cet été aussi, Google a sponsorisé quelques étudiants pour contribuer à GNOME, entre autres. Comme à son habitude, le projet GNOME a complété le Summer of Code avec Outreach Program for Women, qui sponsorise différentes sortes de contributions féminines à GNOME. L'année 2013 est un bon cru car plusieurs étudiants ont directement contribué à GNOME 3.10. Vous trouverez dans cette dépêche un aperçu d'une sélection de ces projets.

Sommaire

GIR pour Java

La passerelle Java pour la plateforme GNOME utilisera sous peu GObject Introspection. Le code du français Guillaume Mazoyer est prêt. Java-GNOME utilise de la génération de code, la passerelle est maintenant générée à partir du GIR. Espérons que les applications GNOME Java ne se multiplierons pas pour autant :x

GIR dans Java-GNOME

GSoC trois en deux pour Evince

L'industrieux aakash a pris deux projets d'un coup sur Evince. Le premier est une vue étagère des documents récents. Malheureusement cela n'a pas été intégré dans 3.10, de justesse. Il y a de bonne chances pour que cela arrive dans une future version d'Evince. il manque la parallélisation du chargement des vignettes et la mise en évidence du document courant.

Étagère des documents récents

Autre projet du même étudiant : le rendu partiel. Evince a une limite de 400% de zoom, sinon la consommation mémoire exploserait. La solution consiste donc à limiter le rendu à une zone, nommée tuile. La rotation, la sélection et les différentes vues sont implémentées. Il manque le préchargement et quelques finitions. Sur la capture d'écran on peut voir un zoom pharaonique à 3343%, et une consommation mémoire inférieure à 100Mo pour un gros document de référence avec table de matière, etc.

Rendu partiel

Enfin, l'italien Alessandro Campagni a implémenté le mode présentation sur deux écrans d'Evince. Le projet a abouti, mais la branche n'a pas été intégrée. Alessandro a écrit un petit éditeur de notes de diapos en javascript avec GObject introspection. Les notes sont stockées dans un fichier séparé.

rebase interactif dans Gitg

Gitg, qui a eut un coup de projecteur avec GNOME 3.10 a été le terrain de jeu de Sindhu pour ajouter le rebase interactif. Au niveau ergonomie, c'est encore rude. Il s'agit simplement d'un éditeur graphique du mode interactif de git rebase.

Rebase interactif

Recherche asynchrone dans GEdit

Le sujet a déjà été abordé dans un journal et dans la dépêche GNOME 3.10. Le recherche asynchrone optimise les performances et permet de présenter le nombre de résultats dans un document.

Gestionnaire de pause

Workrave est un très bon logiciel GNOME 2 pour rappeler les pauses avant que les yeux ou les poignets ne le fasse. Pour GNOME 3 deux alternatives ont émergé : Dr Wright du français Christian PERSCH et GNOME Break Timer. Dr Wright n'a pas évolué depuis octobre 2012. Dylan McCall maintient activement son projet. Le résultat est une sympathique application GNOME 3, à l'image d'Horloges.

Break Timer

Enregistreur de son

Autre logiciel GNOME 2 qui attends sa migration vers GNOME 3 : l'enregistreur de son. C'est Meg Ford qui s'y colle au sein de GNOME OPW. Le résultat est probant. La nouvelle interface met clairement en évidence l'enregistrement en cours. Une gestion des enregistrements passés évite la multiplication des fenêtres, à l'instar de Cheese, mais pour le son. Une vidéo de démonstration est sur YouTube.

Enregistrement

Horloges touristique

Evgeny Bobkin a implémenté le chargement de photos des villes dans l'horloge mondiale, avec une photo de jour et une photo de nuit. Les photos sont téléchargées depuis un compte flickr.

Villes

En outre, Evgeny a utilisé la géolocalisation dans Horloges et pas mal d'améliorations visuelles. La géolocalisation est activable via dconf. Une vidéo a été postée montrant l'animation de l'horloge. Un retour visuel intéressant, surtout pour le compte à rebours.

Evgeny parle d'Horloge comme d'un pet project, un projet passe-temps, sans ambition. Et c'est vrai que la géolocalisation serait plus utile dans Météo. En tout cas, avec Cartes et Horloges, la géolocalisation devient une réalité dans GNOME 3.10.

Itinéraires dans Cartes

Mattias Bengtsson n'a pas pu terminer son projet d'implémenter le calcul d'itinéraire dans Cartes. Retard principalement dû à l'immaturité des bibliothèques libres dans le domaine. C'est la bibliothèque java GraphHopper qui a été choisie, durant le GUADEC. Matthias s'accuse aussi de procrastination pour expliquer le retard du projet :-)

Actuellement, le calcul et l'affichage d'itinéraire fonctionnent. Mais on ne peut pas basculer d'un mode de locomotion à un autre. Les étapes du trajet sont affichées dans une barre latérale. Une vidéo de démonstration est disponible sur YouTube.

GNOME Musique

Deux sponsorisations sur GNOME Musique avec l'étudiant indien Sai Suman Prayaga et l'indienne Shivani Poddar. Cela inclut le portage de Javascript vers Python (un signe ?), la recherche, la lecture en boucle, la sélection, l'internationalisation, des optimisations et de nombreuses corrections de bugs. Tout cela est arrivé dans GNOME Musique 3.10.

Nouveau tweak tool

Le nouveau tweak tool de GNOME 3.10 est le fruit du travail de l'autrichien Johns Strower. Cela inclut là mise à jour de l'ergonomie vers celle des applications GNOME 3, de nouvelles options (HiDPI, applications au démarrage), la mise à jour des extensions du shell et un réarrangement des catégories et options. Allan Day, actuel pilier de l'ergonomie de GNOME 3, a participé directement à la conception.

Applications au démarrage

Conclusion

Le projet GNOME tire mieux partie du Google Summer of Code pour impliquer les étudiants dans la prochaine version. La présence de nombreux étudiant au GUADEC en est un signe. En outre, le programme destiné aux femmes se cantonne moins à la documentation et au graphisme avec des contributions directes au code. Un double succès qui appelle une confirmation.

Aller plus loin

  • # portage sous Python

    Posté par  . Évalué à 3.

    L'article du blog d'un indien qui a participé au portage python sur le portage. http://kyoushuu.wordpress.com/2013/08/20/gnome-musics-python-port-cant-be-this-great/
    TLDR l'environnement javascript manquait cruellement d'outils nécessaires au développement d une application de cette taille, principalement: absence de bon debbuger, de profiler, et de bon threading (python est pas fou non plus là-dessus mais les bonnes alternatives sont légions).
    L'auteur conclut qu'il ne regrette pas son choix et que la version python est plus rapide et plus agréable à développer. Et le que le vala reste tout de même son langage de choix :)

  • # Commentaire supprimé

    Posté par  . Évalué à 1.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # Un peu tôt pour un vendredi

    Posté par  . Évalué à 4.

    "Espérons que les applications GNOME Java ne se multiplierons pas pour autant :x"
    C'est vrai que ça serait dommage d'attirer un plus grand nombre de développeurs grace à un nouveau binding pour un langage populaire et performant.
    Non, vraiment, la plate-forme devrait se cantonner à Vala.
    Ironie mise à part, merci à l'auteur de ces bindings, et s'il lit ces lignes, les bindings permettent'ils d'écrire tout type d'application gnome, comme, par exemple, des extensions gnome-shell?

    • [^] # Re: Un peu tôt pour un vendredi

      Posté par  (site web personnel) . Évalué à 4.

      Je me trompe peut-être, mais il me semble que les extensions gnome-shell sont écrites en Javascript, non ?

    • [^] # Re: Un peu tôt pour un vendredi

      Posté par  . Évalué à 0. Dernière modification le 08 octobre 2013 à 10:10.

      un langage […] performant

      On parle de Java quand même…

      Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

      • [^] # Re: Un peu tôt pour un vendredi

        Posté par  . Évalué à 2.

        Java est assez rapide quand même. Par contre ça bouffe beaucoup de mémoire… En tout c’est ce que j’ai remarqué, et qui semble confirmé par le Benchmarks game.

        Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: Un peu tôt pour un vendredi

          Posté par  . Évalué à 1.

          Par défaut la JVM s'alloue énormément de mémoire, de l'ordre de 1/8. Bien sûr, c'est configurable, mais fausse pas mal de benchmark. La contrepartie, evidemment, c'est que moins de mémoire implique plus de pression sur le GC, et donc, à priori, des performances subtilement moindres.

          • [^] # Re: Un peu tôt pour un vendredi

            Posté par  . Évalué à 1.

            Ah ouais c’est vrai… Toujours est-il que j’ai remarqué que les programmes java prenait beaucoup de RAM. En fait, il faudrait convertir une application de taille moyenne de C++ à Java pour comparer.

            Niveau technique, Java utilise beaucoup d’abstractions, il est interprété par la JVM, il est donc logiquement moins rapide. Après c’est sûr que l’écart avec C++ n’est pas non plus énorme.

            Pourtant, en tant qu’utilisateur, je le ressens. Minecraft, ProjectLibre, Eclipse, NetBeans, tout ceux-là font un peu «poids lourds» (en terme de temps de lancement, vitesse d’exécution, etc).

            Bref, tout ça pour dire que les logiciels en Java ça me fait chier parce qu’en général c’est une mauvaise surprise, et assez souvent en terme d’UI aussi (je pense notamment à l’UI d’Eclipse ou de ProjectLibre — surtout que pour ce dernier j’aime pas le look par défaut des applications Java).

            Écrit en Bépo selon l’orthographe de 1990

    • [^] # Re: Un peu tôt pour un vendredi

      Posté par  (site web personnel) . Évalué à 2.

      «C'est vrai que ça serait dommage d'attirer un plus grand nombre de développeurs grace à un nouveau binding pour un langage populaire et performant.»

      Surtout que ça permet aussi a priori d'utiliser les bibliothèques GNOME dans les langages qui tournent au-dessus de la JVM, comme Scala, Clojure, … (Et du coup c'est cool (vu que les bindings pour Guile sont visiblement pas à jour) parce ça permet à nouveau de faire du GNOME avec un langage à parenthèses \o/)

      Après je pense pas que ça va «drainer» des développeurs Java : dans les intérêts de Java, il y a le fait de pouvoir facilemt avoir un programme multi-plateformes, ce qui, j'en ai bien peur, passe un peu à la trappe si t'utilises GTK+ (je dis pas que c'est impossible, mais moins simple).

  • # GObject introspection

    Posté par  . Évalué à 1.

    A propos du GIR java, mono a fait la même chose. Il serait sans doute intéressant d'échanger sur les expériences car je sais qu'il y a pas mal de bugs/erreurs dans les GIR files.

    http://monosoc.blogspot.fr/2013/10/the-google-summer-of-code-is-over-and.html

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.