Bouletcorp

Boulet a posté aujourd’hui ses planches réalisées lors des “24h de la BD” du Festival d’Angoulême. Une histoire en 24 planches, donc, avec une contrainte : la planche douze doit comporter une réunion de famille. Le résultat est excellent, très bien dessiné et assez poétique/drôle/déprimant, selon ce que l’on veut y voir. Jetez y un oeil, et profitez-en éventuellement pour découvrir le reste :)

Boulet - Un dimanche en
famille

Où est Charlie ?

S’ajoutant à la longue série des “Google Earth-bombing”, voici le Charlie géant ! L’idée est de faire photographier cette reproduction de 16 mètres de long de Charlie par les satellites de Google Earth. Gag : non, on ne sait pas où cette installation se trouve ; il va bien falloir trouver Charlie.

Où est Charlie vu du
ciel

Réparations

Three things are certain:
Death, taxes, and lost data.
Guess which has occurred.

Bonne nouvelle : la garantie joue. Mauvaise nouvelle : quelques documents perdus, une sauvegarde plus toute jeune, et pas d’ordinateur pendant quelques jours…

L'innovation chez Blizzard

Le blog sur l’innovation tenu par Colin Stewart a récemment posté un billet qui me rappelle fort certains enseignements tirés des cours d’innovation que j’ai suivi à l’Isep (dont il faudra que je vous parle un jour). Il analyse le succès de Blizzard et du jeu World of Warcraft, et en tire 11 leçons sur l’innovation — qui sont en fait applicables à quasiment tout développement informatique, voire industriel, voire quoi que ce soit. On trouve par exemple des leçons comme “servez-vous des critiques”, “utilisez votre propre produit”, “demandez la perfection”, etc., le tout détaillé et expliqué. Mérite un coup d’œil, c’est très instructif.

11 innovation lessons from creators of World of Warcraft

Une application avec Flex - I

Dans cette chronique, je vais détailler mes expériences de développement avec Flex, la technologie d’Adobe.

J’ai été promu il y a quelques temps grand grand-manitou-chef-programmeur d’une association, Antigone, visant à encourager l’apprentissage du grec ancien — et développant pour se faire un logiciel d’apprentissage du grec ancien. Je suis donc chargé de concevoir et développer ce logiciel.

Choix d’une technologie

Je suis parti sans idées arrêtées quand à la technologie à employer. A vrai dire, je cherchais quelque chose de moderne et sympa : rien de pire que de s’enferrer dans une technologie trop contraignante qui fait sans cesse obstacle au développement. J’ai donc un peu tâté du côté de .NET et WPF, en ayant plutôt de bons résultats.

Quoi qu’il en soit, les prérequis étaient les suivants :

Logo Microsoft .NETJ’ai donc commençé par quelques tests en utilisant WPF : une technologie moderne, souple, et basée sur .NET que j’aime bien. L’interface et les widgets sont personalisables à loisir, il y a plein de capacités multimédias, et des bibliothèques annexes le cas échéant. Bref, la panacée — mais pas portable. Le .NET pur peut tourner sous Linux et Mac, grâce à Mono, mais WPF reste pour l’instant du pur Windows. A exclure pour des raisons de portabilité, donc.

Logo
FirefoxXUL m’a bien fait de l’œil : c’est la technologie derrière Firefox. J’y avais un peu touché en écrivant mon extension pour Thunderbird, et, il faut dire ce qui est, c’est fort sympathique — ainsi que très portable et hautement customisable par un peu de CSS. Plus la possibilité de programmer en Javascript, qui est un langage que j’aime bien. Seul souci : les capacités multimédias. Pour en intégrer, il aurait fallu me servir d’un plugin du type Flash, ou en recoder en C++. Bref, pour un projet multimédia, j’avais moyennement confiance : j’ai fini par l’écarter.

Logo QtJ’ai alors pensé à C++ : en choisissant un bon système de widgets, cela devait être possible. Et justement, Trolltech sortait en grande fanfare sont produit phare, Qt 4.3. J’avais déjà jeté un coup d’œil à Qt, qui est décidément une très chouette technologie, vraiment agréable à manipuler ; c’est très portable, il y a quelques capacités multimédias, et la personnalisation est hautement possible, à l’aide de pseudo-CSS. Mais bon, le C++ n’est pas vraiment ma tasse de thé — je préfère les langages d’un peu plus haut niveau, que ce soit du genre Java/.NET ou plus genre script PHP/Javascript. Enfin pourquoi pas.

Logo JavaD’ailleurs, en y repensant, il y avait Java. Proche de .NET, j’en avais déjà manipulé ; portable, et relativement élégant. De plus, il y avait la possibilité d’utiliser Jambi, l’interface Java de Qt. Tous les avantages de Qt, plus du Java, donc : pas mal. Cela dit, je connais plus .NET que Java ; cela donne souvent un sentiment de plus grande propreté et modernité dans .NET que dans Java, qui traîne quelques archaïsmes que j’avais moyennement envie de retrouver. Rien de très concret, en tout cas ; c’était pour le moment mon meilleur choix.

Flash, Flex et AIR

Logo FlexJ’ai enfin regardé rapidement du côté de Flex. Pour ce que j’en savais, c’était une technologie similaire à XUL ou WPF, permettant de concevoir des interfaces en XML et de les contrôler à l’aide d’un langage de script. Basée sur Flash, je pouvais donc m’attendre à de la portabilité, à une bonne personnalisation graphique, et à un très bon support multimédia. En creusant un peu, j’ai confirmé ces impressions — et surtout j’ai découvert AIR, à l’époque en version bêta.

Logo Adobe
AirAIR, est principalement un enrobage d’intégrer du Flash dans des applications de Bureau. L’emballage-desktop est très léger, il s’agit d’à peine plus qu’un fichier de configuration détaillant le nom et la taille de la fenêtre à employer ; AIR génère ensuite un exécutable, un installeur, et permet de lancer son projet Flash dans une fenêtre. Du simple et du bon, donc.

Concernant le développement concret en utilisant AIR, le développeur a le choix entre trois technologies : XHTML/CSS, Flash ou Flex. Le XHTML est ce qu’il y a de plus connu et de plus simple ; l’application est alors rendue dans un navigateur embarqué. Le Flash permet d’héberger un module Flash classique dans un conteneur AIR. Enfin, Flex permet de créer une application riche en utilisant des fenêtres natives de l’OS. La bibliothèque de contrôles utilisateurs disponibles avait l’air importante, et les quelques exemples que j’ai téléchargé ont achevé de me convaincre.

Conclusion

Finalement, AIR/Flex remplissait toutes mes contraintes, et me permettait en plus d’utiliser une technologie moderne, des interfaces en XML et du Javascript : tout pour plaire. Après beaucoup d’hésitations, je suis donc parti là dessus.

Dans la prochaine chronique, je raconterai ma quête d’un framework MVC pour Flex, qui soit à la fois léger et adapté à mes besoins.