2009-12-20

64 bits

Voilà bien longtemps que je n'avais plus posté de billet. Notamment en raison d'une baisse d'activité de codage personnel. Mais une motivation est survenue il y a peu sans que je m'y attende vraiment.

Je me suis décidé à mettre à jour mon PC vieillissant, choisissant pour le coup un CPU permettant de faire tourner Windows 7 en 64 bits, un Core i5 de chez Intel.

Même si l'architecture x64 n'est pas une révolution par rapport à l'ancienne génération, ça m'a suffit pour m'insuffler un peu de motivation, après tant d'années à stagner sur du x86 32 bits. Je me mets à chercher des applications natives pour x64 de partout ! :) Hop hop un lecteur de video x64 (pas VLC), un Firefox x64 (pas officiel, dommage)... même si je reviens à Firefox x86 (bouh Adobe, pas de plugin Flash x64)... Mais on sent que ça commence à rentrer dans les foyers.

Je me suis aussi amusé à porter plusieurs applications de mon cru en x64, à corriger les petits bugs de compatibilité et à mesurer les performances. Cela fait bizarre de travailler avec des données qui font le double de ce à quoi je m'attends depuis que je fais de la programmation.

Pizza* pPizza = (Pizza*) 0x000000024bf376a0; // Pas un pointeur de mauviette

La généralisation des processeurs multi-c½urs fait aussi réfléchir à la réécriture de certains algorithmes afin de profiter de ce parallélisme.

J'ai porté le kbdfr-dk, qui doit être compilé en natif pour fonctionner. Mais je dois encore le peaufiner, mon Windows 7 refuse désormais de le charger sans raison, après une semaine d'utilisation normale.

J'ai aussi porté PngOptimizer, qui fonctionne plutôt bien. Mais j'aimerais terminer un développement sur le APNG qui traine depuis un an avant de proposer une nouvelle version. En fait le développement était déjà quasiment terminé depuis un an, mais je bute sur plusieurs problèmes :

  • le APNG a une notion d'image par défaut que n'a pas le GIF. Cela implique une grosse difficulté de conversion sur certains GIF, engendrant parfois un APNG dont la preview ne ressemble à rien (en général un rectangle d'une seule couleur)
  • le GIF peut associer une palette par image d'animation, le APNG une seule palette pour toute l'animation, je dois donc ruser et souvent transformer une image en mode palette en RGB ou RGBA.
  • Firefox dans sa version actuelle ne supporte pas les APNG en mode palette avec de la transparence, ce que génère la plupart des GIF ! Je viens de voir que la correction existe est sera appliquée prochainement dans Firefox, mais entre temps, dois-je mettre une option pour convertir les GIF animés en RGBA ?
  • l'optimisation de toute une animation sans faire de casse n'est pas ce qu'il y a de plus facile, je pense que la première version de PngOptimizer à supporter le APNG n'aura pas toutes les optmisations utilisées pour les images fixes.

Encore du pain sur la planche :)