World Usability Day
Présentations (slides + vidéos) sont dispo ici.
J’ai eu la chance d’être à Paris au bon moment pour assister à une série de conférences sous le thème de l’utilisabilité appliquée aux applications RIA. Sujet qui je dois le dire me passionne de plus en plus. Exceptionnellement, ces conférences ce sont tenues hier soir au sein des beaux locaux de Microsoft Paris mais la journée mondiale de l’utilisabilité c’est bien aujourd’hui jeudi 13 novembre. D’ailleurs si vous êtes sur Genève et qu’à 17h vous êtes dispo, ne loupez pas cet événement (En savoir plus)! Pour en revenir aux conférences, c’est du condensé mais au combien instructif et varié. Avec pas moins de 6 présentations d’agences (PIA, Tequilarapido), d’éditeurs (Adobe, Microsoft) et d’indépendants (Fred Cavazza, Patricia Gallot-Lavallée) on est passé par la définition des RIA et de ses nouveaux défis au solutions proposées aux entreprises utilisant cette technologie en passant par les concepts de jeux vidéo qui pourraient être applicables au interfaces applicatives. Personnellement les présentations des éditeurs ainsi que celle de Patricia m’ont particulièrement captivé. Celle de Patricia pour son dynamisme et la description du Flow (équilibre entre challenge et maîtrise). Les Adobe guys quant à eux m’ont scotché avec leur différentes démos. Finalement l’introduction aux interfaces holistiques par Microsoft n’était de loin pas en reste. Si ça ne vous dit rien c’est pas grave jetez un oeil sur les travaux de recherches menés par Microsoft pour vous rendre compte de ce que ça peut donner. J’ai pris quelques notes de toutes ces conférences, mais vous pouvez trouver toutes les présentations en ligne donc plutôt que d’en faire un résumé je vous invite à consulter directement le contenu à la source.
En savoir plus
- Toutes les présentations sont disponibles sur SimpleWeb.
- Donne-moi ce que je veux! livre écrit par Patricia
- Patterns in interaction design
- Thibault Imbert, Michael Chaize, Sam Woodman (pas de blog/portfolio/site ?), les Adobe guys.
Paris me voilà!
C’est demain que débute ma formation Spring dont l’objectif est le suivant:
Maîtriser le framework Spring pour le développement d’applications Java EE.
Pour l’atteindre cette formation de 3 jours offerte par Logica va aborder les principes de base le 1er jour, les transactions le 2ème et enfin les applications MVC et les web services vendredi… Beau programme.

J’ai déjà pu aborder un peu Spring grâce au livre Spring in Action mais je me réjouis de pouvoir acquérir de nouvelles compétences sur ce framework. En plus coup de bol pile durant cette semaine s’organise une conférence gratuite autour de l’utilisabilité. Je ne vais pas manquer d’y aller, si vous y êtes faites-moi signe! A côté de tout ça je suis en train de faire un nouveau design de ce site… Plus de nouvelles bientôt!
Michael Crichton s'en est allé
Un grand nom de la science-fiction s’en est allé en la personne de Michael Crichton. Brutalement décédé le 4 novembre des suites d’un cancer, il laisse derrière lui pas moins de 429 travaux dont certaines pointures comme la série Urgences, les Jurassic Park ou encore Sphère et Prisonnier du temps… N’hésitez pas à parcourir ses oeuvres littéraires, ses recherches dans les domaines technologiques en font des oeuvres fameuses!
Critique de livre: Les cerfs-volants de Kaboul par Khaled Hosseini
Voilà une œuvre passionnante racontant l’histoire d’un américain immigré à mi chemin entre culpabilité et rédemption face à son passé douloureux en Afghanistan. On y découvre tout d’abord un beau pays , chaleureux et hospitalier mais qui malheureusement sous le feu du fanatisme ou d’une dévotion quelque peu “spéciale” s’est retrouvé subitement face aux explosions et autres exécutions en public.
Une amitié liant Amir, un afghan chiite et Hassan son serviteur sunnite, voilà la trame de fond de ce livre. Autour de cela, à l’instar des mouvements extrémistes, on découvre la haine et l’intolérance face aux différences idéologiques.
Véritable tragédie, l’auteur m’a personnellement captivé de part son ton et les sentiments qu’il fait passer entre Baba et son fils, entre ce fils et son serviteur, etc. Ce livre en apprend également beaucoup sur l’histoire afghane et c’est pas pour me déplaire…
Finissons avec une citation du livre résumant bien la situation:
Si les enfants sont nombreux en Afghanistan, l’enfance, elle, y est quasi inexistante.
Exercice SICP 1.10
J’ai terminé la lecture du premier chapitre de SICP et j’ai commencé à m’attaquer aux exercices qui se sont entassés au fur et à mesure de ma progression. Initialement, je pensais les faire directement durant ma lecture mais ma flemme ajoutée à mon envie d’avancer dans la lecture du bouquin m’y ont découragé. L’avantage de devoir revenir maintenant sur les exercices c’est que j’ai la possibilité de revoir - par la pratique cette fois-ci - les concepts que j’ai passivement lu dans le livre. A mon avis celà devrait graver d’autant mieux la matière dans mon esprit…. Soit mais bon maintenant le titre de ce billet n’attendait ni plus ni moins la solution de l’exercice 1.10! Donc nous y voilà, je mets ici ma solution parce qu’elle m’a pris pas mal de ligne à l’expliquer et je ne veux pas trop poluer ma page dédiée aux exercices de SICP… Cet exercice propose de prédire le résultat de la fonction d’Ackermann (générateur de grands nombres très rapide grâce à la récursivité) au vu de certains paramètres donnés. La fonction d’Ackermann est fournie par le livre:
(define (A x y)
(cond ( (= y 0) 0)
( (= x 0) (* 2 y))
( (= y 1) 2)
(else (A (- x 1) (A x (- y 1))))))
Mon objectif a été de résoudre qu’un seul des trois exercices proposés:
(A 2 4)
(A 1 (A 2 3))
(A 2 3) = 16
(A 1 (A 2 2))
(A 2 2) = 4
(A 1 (A 2 1))
(A 1 2)
(A 1 2)
(A 0 (A 1 1))
(A 0 2)
4
(A 1 4) = 16
(A 0 (A 1 3))
(A 1 3)
(A 0 (A 1 2))
(A 0 4) = 8
(A 1 16) = 2 ^16 = 65536
En espérant être assez clair, j’ai procédé la fonction en suivant l ‘applicative-order pour ne pas finir avec une ligne immense mais plutôt remplacer chaque appel de fonction avec la valeur calculée. Ce qui finalement nous amène à (A 1 16). A ce moment-là, j’aurais pu continuer le processing jusque trouver la solution mais on peut constater une abstraction lorsque la fonction d’Ackerman est appelée suivant le motif (A 1 n):
- (A 1 2) = 4
- (A 1 3) = 8
- (A 1 4) = 16
Autrement dit, (A 1 n) = 2 ^ n et donc (A 1 16) = 2 ^ 16 = 65536. Trouver ce motif permet en plus de répondre à la 2ème partie de la question:
(define (f n) (A 0 n)) = 2*n
(define (g n) (A 1 n)) = 2^n
(define (h n) (A 2 n)) = 2 ^ 2 ^ 2 ... n fois
La dernière se retrouve également dans la preuve de (A 2 4):
-
(A 2 3) = 16 = 2 ^ 2 ^ 2
-
(A 2 2) = 4 = 2 ^ 2
-
(A 2 1) = 2 = 2 ^ 1 (cas spécial dans la fonction)
Si ce genre d’exercices vous intéressent, je ne peux que vous conseiller la lecture de SICP!
order_evaluation#Applicative_order
Critique de livre: Getting Things Done de David Allen
Waow ça claque! Ce livre, c’est juste une merveille! A lire absolument, qui que vous soyez! Au premier coup d’œil on pourrait penser qu’il est plutôt destiné à une audience de managers et autres cadres mais croyez-moi, loin s’en faut! Il est destiné à toutes personnes qui a des projets. Et un projet c’est quoi? Simplement un ensemble d’actions destiné à atteindre un objectif prédéfini…. Or qui n’a pas d’objectif même tout petit petit? PERSONNE!
Nous abordons tous différemment la gestion de nos petits projets mais si vous avez déjà eu des réflexions du genre “ce serait tellement bien que j’arrive à…” ou encore “je devrais faire ça…. ah quand j’aurai le temps” la suite peut vous intéresser….
Vider sa tête
L’une des premières étapes qui ressort du livre et sur laquelle David Allen insiste beaucoup c’est de faire une liste exhaustive de TOUS les projets actuels. Cela va des courses pour la semaine à l’achat d’une maison en passant par les projets professionnels actuels. Passer par cette étape et la faire jusqu’au bout permettra de se vider la tête et de pouvoir se focaliser entièrement sur les tâches à faire. Mais comment être sûr d’avoir tous listé? GTD répond:
When nothing else shows up as a reminder in your mind.
Il est donc bien de s’arrêter et de prendre le temps de faire cette liste le plus consciencieusement possible. Le problème c’est que souvent quand on a une idée ou un rappel en tête, on a rien pour notifier ce rappel. D’où ce conseil:
Keep good writing tools around all the time so you never have any unconscious resistance to thinking due to not having anything to capture it with.
L’idée est là: ne plus avoir une seule trace de résistance inconsciente dans la tête. Lister tous ses projets et définir la prochaine action concrète à faire sur chacun d’eux. Voilà peut-être la meilleure façon d’améliorer significativement sa productivité.
Avoir un objectif clair
Ça parait évident mais l’auteur va très loin en conseillant de le faire de manière très concrète. Je m’explique en deux points. Premièrement, il faut vraiment définir ce qu’il faut produire. Quel est le but de ce projet? Dans l’idéal, à quoi ressemblerait la réalisation de mon projet? Telles sont des questions qui peuvent vraiment aider à définir cet objectif.
Everything you experience as incomplete must have a reference point for “complete”.
Deuxièmement, il faudrait définir un objectif à très court terme. Pour dire vrai l’objectif de la toute prochaine action. Cet objectif doit être très concret; c’est une** action physique qui doit se voir** (téléphoner un tel, écrire ce mail, programmer cet algorithme). De ce fait, en définissant une action concrète pour chacun des projets en cours, jamais plus vous ne devriez vous sentir comme un moustique…
I am rather like a mosquito in a nudist camp; I know what I want to do, but I don’t know where to begin. - Stephen Bayne
Blague mise à part, c’est la formule magique pour améliorer sa capacité de concentration et son sens des priorités.
Conclusion
C’est une véritable méthodologie qui a été mise au point ici par David Allen et je n’ai fait que mettre en avant 2 étapes qui m’ont semblées importantes mais croyez-moi, ce livre est une mine d’or. Si vous avez l’envie de réaliser vos projets et mener une vie moins stressante tout en étant plus productive, ce livre est fait pour vous. Mais comme je le disais, il est utile à tout le monde, lisez-le, lisez-le, lisez-le! Pour aller plus loin: http://www.thesimpledollar.com/2007/05/06/review-getting-things-done/ (en anglais)
Traitement de fichiers PDF en python et un client satisfait
Si vous lisez ce blog, vous savez que j’aime bien Java et Flex. Mais lorsqu’on a besoin de faire des traitements typiquement automatisés et accédant au système ou ne demandant aucune interaction graphique avec l’utilisateur ces langages ne sont certainement pas les mieux adaptés. Je ne vais pas m’étendre sur cette assertion maintenant… Ca pourrait faire le sujet d’un autre billet tiens… Mon choix personnel du moment pour ce type d’action porte sur Python. ((Python is a dynamic object-oriented programming language that can be used for many kinds of software development. - www.python.org)) Le but ici n’est pas de défendre les atouts de Python. Ceux-ci sont déjà largement reconnus par les développeurs. Le nombre de projets open-source l’atteste tout comme le classement TIOBE évoqué il y a quelques temps. Récemment j’ai eu la joie de faire un petit développement en freelancing ayant pour but un simple traitement de fichiers PDF. Python a une nouvelle fois pleinement répondu à mes attentes. Ce que j’aime principalement lorsque je développe en Python c’est sa simplicité et de ce fait la rapidité de développement associée, le nombre de librairies disponibles ou encore un code naturellement facile à lire. Pour ce projet, le workflow était le suivant:
-
Lister tous les fichiers PDF du dossier courant
-
Parser chaque fichier et récupérer le texte le plus haut dans la première page
-
Enregistrer le fichier avec cette valeur
Très simple en apparence. Mais c’est sans compter sur le fait que les fichiers PDF ont une structure disons pas très naturelle. J’ai donc du passer un certain temps à comprendre cette structure. Pour ce faire j’ai utilisé la libraire PDFMiner codée par Yusuke Shinyama qui a fait un excellent boulot en l’occurence. Après avoir atteint ces 3 objectifs j’ai simplement du me pencher sur les possibilités de python à compiler le tout en exécutable Mac… Et là c’est stackoverflow qui m’a aidé… py2app m’a permis de compiler le tout et hop le tour est joué! Sur ce, l’expérience python m’a une fois de plus convaincu mais qu’est-ce qu’en a pensé mon client? Aussi clair qu’un code Python:
Test réussi! C’est parfait. Je vous remercie beaucoup de l’excellente collaboration.
Ca fait toujours plaisir :D
Critique de livre: Toute l'histoire du monde
J’ai été carrément scotché par le résumé fait au dos du livre:
Il y a un siècle, ceux qui savaient lire savaient aussi se situer dans l’espace et dans le temps. Il n’en est plus ainsi. Les Français, et d’ailleurs tous les Occidentaux, sont devenus, pour la plupart, des hommes sans passé, des " immémorants “. Notre modernité fabrique, hélas, davantage de consommateurs-zappeurs interchangeables que de citoyens responsables, désireux de comprendre et de construire. Est-il possible de déchiffrer l’actualité sans références historiques ? Comment situer, par exemple, les guerres d’Irak sans avoir entendu parler de la Mésopotamie ? On voit tout, tout de suite, en direct, mais on ne comprend rien. D’où l’idée simple, ambitieuse et modeste à la fois, d’écrire un livre assez court qui soit un récit de l’histoire du monde, fermement chronologique, pour tous ceux qui souhaitent " s’y retrouver " et situer leur destin personnel dans la grande histoire collective de l’espèce humaine.
Après percution donc j’ai acheté ce livre et été rapidement séduit par le récit. On navigue au travers de l’histoire humaine du début jusqu’à maintenant. Ou comment avoir une rapide vision globale de notre monde… J’ai assez aimé; bien qu’à force c’est tout de même triste de constater que l’une des seule choses communes à tous les hommes, c’est l’envie de dominer son prochain… Pour finir par des guerres, génocides, dictatures, etc. Triste monde! Heureusement les auteurs n’oublient tout de même pas de relever le génie de certains personnages marquants (Ératosthène, Bouddha, Platon, Archimède, Voltaire, Mozart et j’en passe); ca fait quand meme du bien de se rappeler que l’homme est capable de bonnes choses. Bref, je recommande ce livre à tous ceux qui ont envie de faire un lien rapide entre les différentes puissances mondiales qui se sont succédées et comment d’un point de vue politique le monde à évolué pour en arriver là où nous sommes.
Apprentissage de Flex
Alors que j’ai bien de la peine à avancer ma progression en ce qui concerne SICP (la pile d’exercices est effrayante, j’ai stoppé la lecture du bouquin..), j’ai commencé mon apprentissage de Flex. Par chance je suis bien plus sérieux de coté-là. Allez savoir pourquoi… Enfin bref, je ne veux pas lâcher SICP ça c’est sûr (la lecture en est très instructive) mais comme j’aime à le faire, j’ai commencé à reporter ce que j’apprends sur Flex dans un document que je mets à disposition de qui voudra (en ~anglais). Je le mets à jour à mesure de mon avancement, n’hésitez donc pas à le consulter régulièrement. Ce sont des notes en vrac mais qui peuvent être utiles pour tout nouvel arrivant sur Flex, enfin je l’espère! Quelques resources à ceux qui voudraient également se lancer dans cette aventure:
- La série LFFS sur InsideRIA
- Flex in a Week conçu par Adobe
Et bien sûr comme toujours, je suis preneur de tout conseils ou suggestions dans cet apprentissage.
Stackoverflow en version publique
L’info cours sur la toile: l’ouverture d’une nouvelle plateforme programming Q&A complètement ouverte et gratuite. Cette nouvelle plateforme a pour nom stackoverflow et a été initiée par (non des moindres) les auteurs des blogs Coding Horror et Joel on Software, j’ai nommé Jeff Atwood et Joel Spolsky. Ce genre de plateforme tient son existence principalement à la communauté qui la suit. Dès lors j’espère vraiment que soutient il y aura et que le genre de “souci” que Joel décrit dans son billet disparaîtra bel et bien, autrement dit, dès qu’une question se profile… Je ne tape non plus google.com (avec ses inconvénients lors de questions précises..) mais plutôt stackoverflow.com! L’idée est très bonne et les initiateurs sont des gars très talentueux, on peut donc se dire qu’on est entre de bonnes mains et que si espoir il devait y avoir, on est en tout cas bien parti pour que ça prenne bonne forme.

A ma première impression, je vois un design épuré, une navigation conviviale et rapide. Je vois également que les auteurs s’impliquent au niveau du contenu de la plateforme et ca c’est plutôt pas mal… Il ne reste donc plus qu’à voir comment va réagir la communauté et si l’engouement passé, un réel groupement de développeurs va venir enrichir le contenu de ce:
synthesize aspects of Wikis, Blogs, Forums, and Digg/Reddit in a way that is somewhat original
On croise les doigts!