dimanche 12 juin 2011

Craftsmanship & policy

Une présentation (Devoxx 09) qu'il faut avoir vu en tant que professionnel de l'informatique. De professionnalisme, il en est d'ailleurs question ainsi que de trou noir d'ailleurs... J'ai trouvé cette présentation tout simplement excellente... mais c'est sûr "Uncle Bob" connaît son affaire.

La vidéo est sur Parleys.com, comme toutes les présentations Devoxx, et comme c'est d'un "vieux" Devoxx c'est gratuit. Il me semble d'ailleurs qu'au bout d'un an, ils mettent à disposition gratuitement les vidéos du Devoxx précédent... mieux vaut tard que jamais, surtout si vous n'avez pas la chance de pouvoir aller à Devoxx.

Cette présentation existe aussi sous la forme d'un podcast (c'est comme cela que je l'ai initialement récupérée).






lundi 10 mai 2010

Un prototype d'IHM d'un coup de crayon (ou presque!)

Que cela soit pour faire rapidement une maquette d'interface graphique ou pour commencer à réfléchir à un concept sans se lancer dans le code, je n'avais jusqu'à présent pas trouver d'outil gratuit et multiplateforme qui me satisfasse (peut-être que jusqu'à présent j'avais mal cherché...). J'en étais réduit soit à utiliser le couple Visio©/Powerpoint©, soit à faire quand cela était possible à construire la maquette avec le "GUI Builder" d'un IDE (Netbeans©, IntelliJ Idea©, Flex Builder©,etc.) sans que cela soit toujours concluant ou portable... Je ne parle même pas de montrer cela facilement à un utilisateur final...

Et puis je suis tombé sur le Pencil Project ! Et là j'ai trouvé l'outil qui me manquait ! C'est fait en XUL, cela tourne en version "standalone" indépendante (en fait cela embarque un XULRunner) ou bien dans Firefox. Cela tourne sur Windows(©), Linux et Mac.

L'objet du projet Pencil est de construire un outil facilement utilisable par tout un chacun, gratuit et "opensource" pour réaliser des diagrammes et des prototype d'interface graphique.

L'outil a bien quelques bugs et limitations (dans les versions que j'ai utilisées) mais cela reste largement utilisable et je ne me vois plus désormais utiliser un outil au moins aussi complet pour faire des maquettes d'interfaces. Ce que vous produisez peut être exporté notamment sous forme d'images ou de pages HTML.

Et je me suis aperçu au gré des conversations et échanges avec des collègues développeurs que je n'étais pas le seul à la recherche d'un outil de ce type... je passe donc le mot :-)

samedi 13 mars 2010

Petit amusement programmatique avec Google Collections (1)

Google Collections est une bibliothèque fort sympathique et bien utile. Ce billet de Benjamin Wintenberg et celui-ci sur le Jayway Team Blog en présente plus en détail que le mien ce qu'offre cette nouvelle bibliothèque de Google .

Mon objectif est plus ici de m'amuser un peu avec Google Collections sur un petit cas concret. En l'occurrence ici le problème 1 du Projet Euler.
Il s'agit ici de déterminer la somme de tous les entiers naturels strictement inférieurs à 1000 qui sont multiples de 3 ou de 5.

La classe principale qui implémente une solution possible avec utilisation de l'API Google Collections :


La classe de tests (JUnit4) associée :


Regardons tout cela d'un peu plus près. La partie vraiment intéressante est la méthode solve.

Cette méthode comme son nom l'indique résout notre problème.
On crée d'abord une liste des nombres entiers de 0 à 999. Le "Lists.newArrayList();" vient de Google Collections. C'est plutôt explicite, la méthode statique newArrayList me retourne une instance de ArrayList (ici une ArrayList) que l'on se contente ensuite d'initialiser avec les nombres de 0 à 999.
Puis on crée une nouvelle liste à partir de la première liste. On utilise toujours Lists.newArrayList mais cette fois-ci avec en paramètre un Iterable. Ce paramètre Iterable correspondra concrètement à notre liste précédente filtrée pour ne garder que les multiples de 3 ou de 5. Pour se faire on utilise la méthode statique filter de la classe Iterables disponible dans Google Collection. Cette méthode filter prend en paramètre la liste à filtrer et un objet implémentant l'interface Predicat matérialisée ici par l'instanciation d'une classe anonyme implémentant une méthode apply. Cette méthode apply doit retourner un booléen et sera appliquée sur chaque élément de la liste passée en paramètre de la méthode filter : tous les éléments pour lesquels la méthode apply retournera false seront filtrés. Une fois que l'on a la liste filtrée, c'est fini. Il n'y a plus qu'à faire la somme des éléments pour trouver le résultat.

Voilà, rien de bien extraordinaire, c'est certain. L'intérêt est ici de voir un petit exemple d'utilisation de l'API Google Collections (qui - je vous rassure - propose bien d'autres choses) et les possibilités de pouvoir avoir une approche fonctionnelle en Java. D'ailleurs puisque l'on parle d'approche fonctionnelle en Java, un billet sur le blog de Xebia à propos de la sortie de Google Collections en finale 1.0 renvoyait vers 2 projets qui concernent une approche fonctionnelle en Java : Lambdaj et Functional Java. Avis aux amateurs !

dimanche 28 février 2010

Syntax Highlighter

Je viens de découvrir un outil indispensable pour ceux qui écrivent des billets de blog avec du code dedans : Syntax Highlighter.

Bon cela fait un moment que je m'interrogeais sur la manière dont certains bloggueurs arrivaient à formater fort joliment leur code dans leur billet. Faute de temps, je n'avais pas trop poussé l'enquête (à tord).

En lisant ce billet, je me suis dit que cette fois-ci il fallait que je regarde d'un peu plus près sur la manière d'opérer.

Après une petit recherche, j'ai trouvé Syntax Highlighter et cet excellent billet qui explique comment l'utiliser dans blogger.

Il faut noter que Syntax Highlighter peut s'utiliser pour n'importe quel type de page HTML donc dans n'importe quel site si vous le souhaitez et tant que vous pouvez accéder aux fichiers requis.

dimanche 17 janvier 2010

Présentation du langage Clojure (5)

Les vidéos 8, 9 et 10 de cette introduction à Clojure :

- la 8ème vidéo


- la 9ème vidéo


- la 10ème vidéo

Présentation du langage Clojure (4)

Voici respectivement les vidéos 6 et 7 :

- la 6ème


- la 7ème

dimanche 10 janvier 2010

Présentation du langage Clojure (3)

Les vidéos 4 et 5 de la série d'introduction à Clojure.

- la 4ème vidéo


- la 5ème vidéo

Présentation du langage Clojure (2)

Suite du billet précédent sur Clojure, avec les vidéos 2 et 3 de la série

- la deuxième vidéo


- la troisième vidéo

Présentation du langage Clojure (1)

Clojure est un dialecte de Lisp pour la JVM créé par Rich Hickey. En dehors d'être un langage fonctionnel de la famille de Lisp, il propose plusieurs caractéristiques intéressantes notamment par rapport à la gestion du "multithreading".
Le mieux est d'aller voir le site officiel - http://clojure.org/ - sur lequel vous trouverez toutes les informations pertinentes.

Si après la première de 10 vidéos de présentation sur clojure. Je trouve cette série vraiment bien faite : elle présente dans des vidéos relativement courte (toujours d'une durée au maximum de l'ordre des 10 minutes) l'essentiel des caractéristiques de Clojure.

J'ai inclus la première vidéo ci-après et je vais mettre sur mon blog les 9 autres. L'URL de cette vidéo sur YouTube est http://www.youtube.com/watch?v=Aoeav_T1ARU.
Vous pouvez toutes les retrouver directement (ainsi que d'autres sur d'autres thématiques informatiques comme JavaScript) sur la chaîne de briantwill : http://www.youtube.com/user/briantwill.

vendredi 13 novembre 2009

TGITS sur Google Sites

Le format billet de blog n'étant pas toujours adéquat de mon point de vue pour faire de petits articles sur la programmation, j'ai créé un site compagnon (aussi nommé TheGeekInTheShell) à ce blog sur Google Sites.
Je réserve le blog pour mes billets d'humeur et les informations que je souhaite relayer.
Le site sera plus pour des "articles" (c'est un grand mot !) sur la programmation.