lundi 30 décembre 2013

Voir ses e-mails système dans Thunderbird

Le bon vieux "You've got mail" dans la console apporte rarement grand chose d'intéressant, du moins pour un utilisateur desktop comme moi. Cependant, cela heurtait mon TOC de savoir tous ces e-mails qui s'accumulaient dans l'horrible interface texte. Est-il possible de voir (et gérer!) ses messages dans Thunderbird? La réponse, heureusement, est oui. C'est un petit peu cochon, mais ça marche.

  • Tout d'abord, dans Thunderbird, créer un répertoire, par exemple "System", dans "Local Folders"
  • Quitter Thunderbird. Aller dans le répertoire correspondant à votre profil, par exemple
    cd .mozilla-thunderbird/xxxxxxxx.default/Mail/Local\ Folders/
    ou,
    cd .icedove/xxxxxxxx.default/Mail/Local\ Folders/
    si vous êtes un débianneux.
  • Virez le répertoire System, et remplacez le par un lien symbolique vers votre répertoire de courrier dans /var/mail:
    rm System; ln -s ln -s /var/mail/moncompte System
  • Redémarrez Thunderbird, votre répertoire System contient votre courrier! Magique, non?

dimanche 29 décembre 2013

Plus d'Infinity

J'ai fait un peu de rangement dans mes bookmarks: cliquer, vérifier que le lien existe encore (d'abord!), et vérifier que le lien m'intéresse toujours (ensuite). Énormément de liens morts, malheureusement, sur des projets dont je suivait l'actualité et qui ont disparu. Les temps changent, les gens passent à autre chose.

Quelque chose qui est toujours là, en revanche, c'est le bon vieux Infinity : Quest for Earth, dont je parlais en 2011 (ce qui ne nous rajeunit pas). Un nouveau site, quelques posts sur leur blog, et au final pas grand chose de neuf. Une nouvelle vidéo montre les capacités du moteur à afficher des terrains rocheux. Les montagnes et les champs de pierre sont tout à fait impressionnants, mais après tout ce temps, on a envie de dire, qu'est-ce qu'il y a d'autre? J'imagine que beaucoup de travail se passe en arrière plan, sur le moteur de jeu, en particulier, mais l'on reste sur sa faim. Peut-être une indication que le moteur ne remue pas autant les foules que prévu, le studio revient sur l'idée de faire un jeu avec le moteur, "Infinity : Battlescape", une sorte de pré-chauffe pour l'extrêmement ambitieux "Infinity : Quest for Earth" des débuts, centré sur le combat spacial, et financé via Kickstarter. Mhh!

lundi 2 décembre 2013

Combien est-ce qu'il y a d'utilisateurs d'Emacs dans le monde?

C'est une question que l'on se pose parfois. Quelqu'un a demandé sur StackOverflow, quelqu'un d'autre sur la mailing list, les réponses vont de 1 à 4 millions. Suivons une méthode un poil différente.

Tout d'abord, je vais partir du principe que la majorité des utilisateurs d'Emacs l'ont installé sur au moins une machine Linux. Ceci étant posé, quelle est la proportion des utilisateurs de Linux qui utilisent Emacs? De nos jours, bien peu d'utilisateurs installent du logiciel autrement que par leur gestionnaire de paquets. L'on peut donc utiliser les "popularity contests" pour découvrir la proportion d'installations sur ces distributions.

  • Chez Debian 31421 / 161281, c'est à dire environ 19%
  • Chez Ubuntu, 312120 / 2628854, c'est à dire environ 11%, ce qui est compatible avec l'idée qu'on se fait d'une démographie moins technique et plus "casual".

La page Wikipédia sur la taille de la communauté Linux parle d'environ 29 millions d'utilisateurs sur machines de bureau (je laisse volontairement de côté les utilisateurs d'Emacs sur tablette, faut vraiment en vouloir). Ramené à nos chiffres plus haut, cela donne entre 3 et 5.5 million d'utilisateurs, ce qui est étrangement proche de la première estimation sur la mailing list. On ne doit pas être loin!

lundi 25 novembre 2013

Vaadin

Je code un petit peu en Vaadin, ces jours-ci. C'est un framework Web Java, qui fournit une abstraction de très haut niveau, orientée widgets, pour écrire des applications web "riches", comme on dit. Jetez un coup d'oeil à leur démo, c'est tout à fait étonnant. Derrière, dans le code, pas une once de HTML, et à peine un poil de javascript pour spécialiser quelques affichages. L'on peut donc tout écrire en Java, avec ses callbacks sur les différents événements GUI, et le framework génère HTML + Javascript + Jason pour faire tourner le tout. Notons tout de même qu'il faudra se plonger jusqu'au cou dans les CSS si l'on veut faire quelque chose qui s'éloigne du style de base.

Comme beaucoup de frameworks de ce type, tout se passe bien tant que l'on reste dans le moule, mais l'on doit se battre un peu lorsque l'on veut adapter certains comportements. En particulier, l'écriture de nouveaux widgets semble complexe.

Alors, bien sûr, il a fallu que je tâte un peu du Java (il ne faut pas dire "Fontaine, je ne boirai pas de ton eau"), et j'apprécie fortement les classes anonymes pour écrire ses callbacks. C'est presque aussi bien qu'un lambda :)

mercredi 13 novembre 2013

wxWidgets 3.0 est sorti!

La version 3.0 de l'excellente bibliothèque graphique wxWidgets est enfin sortie, avec passage à GTK3, et quelques nouveautés comme les rubans et un Unicode simplifié. Pour plus de détails, vous pouvez vous reporter à la dépèche sur DLFP

Contrairement à QT, qui garde son préprocesseur MOC (et qui est la principale raison pour laquelle je ne l'utilise pas *), wxWidgets se dirige de plus en plus vers le C++ standard, avec notamment une meilleure intégration de la STL. Récemment, Vadim Zeitlin, un des développeurs principaux du toolkit, a posté un article tout à fait intéressant sur le blog de wxWidgets, où il montre comment combiner les dernières fonctionnalités de C++11 avec le framework. En particulier, l'ancien style de callbacks qui passait par des macros est maintenant avantageusement remplacé par un appel à la méthode Bind de chaque widget, dans lequel on peut coller un lambda, permettant un code plus dense aux fonctionnalités plus localisées.

* Un petit mot sur cette remarque trollogène: je veux bien croire que sur le principe, l'usage du pré-processeur ait un grand nombre d'avantages. C'est juste que dans mon cas d'utilisation, je cherche quelque chose qui s'intègre mieux à mon système de build pré-existant. Notons au passage que le support d'Android et iOS par les dernières versions de QT pourrait bien me faire changer d'avis.

jeudi 24 octobre 2013

Les jeux qui m'ont marqué - Dungeon Master

Ah, le bon vieux Dungeon Master! Sorti sur Atari, ce fut un hit qui lança un genre à lui tout seul. Comme les Doom-like et les Warcraft-like, il y eut (et il y a, voyez la série des Diablo) les Dungeon Master-like.

Le principe: vous montez une équipe de 4 personnages à choisir parmi une vingtaine, et parcourez un donjon en tous sens pour y basher des créatures et récupérer un artefact puissant qui sauvera le monde. Là où Dungeon Master s'est démarqué de ses prédécesseurs, c'est dans la représentation 3D du donjon, et le jeu en temps réel. Pour ajouter à l'ambiance, les éclairages sont dynamiques (il faut récupérer des torches, ou apprendre à en créer des magiques), les seuls bruits sont ceux des monstres qui s'approchent, et le décor, quoi que répétitif, est vite angoissant.

En plus des monstres à dégommer, il faudra résoudre des énigmes de plus en plus complexes mettant en jeu des trappes, des clés, des passages secrets, des téléporteurs, augmenter l'expérience de ses personnages, et trouver de l'équipement.

Ajoutons que les 13 niveaux du jeux sont de véritables labyrinthes. Il m'a fallu cartographier les niveaux petit à petit, sur des doubles feuilles à grand carreaux, notant les monstres, les mécanismes divers... Sans compter que pendant que l'on note les détails de la carte, nos personnages ont faim et soif. Il faudra donc s'y prendre à plusieurs fois, tellement il est facile de perdre en tombant dans une trappe, en tombant à court d'eau, ou tout bêtement en ayant pas trouvé suffisamment d'équipement pour terrasser les monstres de plus en plus puissants.

Le système de magie était également novateur, avec un système de runes à invoquer. L'on trouve des parchemins contenant des formules, mais il est possible de deviner certains sorts: ainsi, "feu" fait apparaître une torche magique, mais "feu" puis "aile" envoie une boule de feu.

C'est probablement un de mes premiers flips vidéo-ludiques: tourner au coin d'un couloir glauque, se retrouver nez à nez avec une sorte de lézard avec des dents à la place du cou, repartir en courant dans l'autre sens, se perdre et se retrouver dans un cul-de-sac avec la bestiole qui s'approche... Ça marque! Et je dois avouer n'avoir jamais réussi à aller plus loin que le 4ème ou 5ème niveau, mon niveau d'anglais plus que limité à l'époque n'aidant pas à résoudre les énigmes ou à comprendre les sorts. Mais Dungeon Master reste le mètre étalon du genre: choix de personnages charismatiques, gestion de la nourriture et du sommeil, sorts avancés, équipements complexes, expérience gagnée au fur et à mesure dans les classes de prêtre, sorcier, combattant et ninja, niveaux tentaculaires, et tout cela sur une disquette de 720 ko!

vendredi 18 octobre 2013

Les jeux qui m'ont marqué - Another World

Développé par Éric Chahi, légende du jeu vidéo s'il en est, Another World est en (très) gros Prince of Persia chez les aliens. S'il possède la même vue de côté, la même fluidité de mouvements, il s'en démarque en revanche par une action plus variée entrecoupée de cinématiques en polygones, et bien entendu d'un univers complètement original.

Le gameplay est complètement old-school. Voyons à quoi ressemble le début de partie. Après une cinématique expliquant comment vous vous êtes fait transporter dans cet "autre monde", vous apparaissez dans une sorte de piscine glauque. Des algues apparaissent du bas de l'écran, vous attrapent. Fin de partie. Vous recommencez dans la piscine. Tentez les contrôles. Ah, on peut monter! Vous sortez de la piscine.

À gauche, un ravin. À droite, quelques ruines, d'où tombent des sortes de sangsues. L'une d'elle passe à proximité, et vous mord. Fin de partie, retour dans la piscine. Vous sortez, évitez les sangsues, et vous retrouvez nez à nez avec une sorte de sanglier furieux qui vous démolit. Fin de partie, retour dans la piscine. Retour devant le sanglier, vous repartez dans l'autre sens, ratez votre saut pour éviter les sangsues. Fin de partie, retour dans la piscine.

L'on meurt donc beaucoup, mais l'on progresse assez vite. De plus, l'action est vraiment variée, entre sauts, combats avec un pistolet à 3 modes (tir normal, bouclier, tir chargé) et énigmes. L'on se fera un allié d'un des autochtones, que l'on retrouvera à plusieurs moments de l'aventure.

L'on retrouve beaucoup de points de design qui ont depuis fait leur chemin, mais à l'époque étaient très novateurs: cinématiques non seulement au début, mais également au milieu de l'action, interface minimaliste sans barre de vie ni autres compteurs pour une meilleure immersion, l'exploration d'un monde cohérent et mystérieux... Another World m'avait complètement scotché, et me scotche encore.