dimanche 10 janvier 2010

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.

mardi 10 novembre 2009

Le Projet Euler

Une initiative intéressante qui intéressera les amateurs de problèmes mathématiques et informatiques : le "Projet Euler".

Le projet Euler propose un ensemble de petits (par la taille de l'énoncé ;-) ) problèmes qui demandent à la fois réflexion mathématique et mise en oeuvre informatique afin d'être résolus. En effet, il s'agit bien de programmer la solution en utilisant l'ordinateur pour ce qu'il est : une super calculatrice programmable !
Il est possible de s'enregistrer gratuitement sur le site pour pouvoir tenir le compte des problèmes pour lesquels vous avez trouvé une solution.

Il y a bien sûr le côté récréatif pour ceux qui aiment ce genre de petits défis qui active les neurones. C'est aussi à mon sens une mine d'or pour les enseignants d'algorithmique et d'initiation à la programmation.

Bon par contre, tout est en anglais, ce qui est parfois un problème pour certains...

Je suis tombé un peu par hasard sur ce site, à la lecture d'un article de DeveloperWorks sur le langage Clojure dans lequel quelques problèmes du Projet Euler sont résolus avec ce langage.

http://projecteuler.net/

dimanche 18 octobre 2009

IntelliJ IDEA vient de passer en OpenSource

Cela fait pas mal de temps que j'entends souvent des commentaires élogieux sur IntelliJ IDEA... néanmoins comme je n'ai jamais eu l'opportunité de l'utiliser dans un contexte professionnel et que ce dernier était payant, je n'avais jamais pu vérifier ces dires par moi-même.

Jeudi dernier, en jetant un oeil aux derniers podcasts disponibles, je suis tombé sur le dernier en date de l'excellent JavaPosse (épisode #283) qui parle du passage en Open Source d'IntelliJ IDEA.
Ainsi une version "Community" est disponible gratuitement pour Windows/Mac/Linux. Cette propose tous les plugins pour le développement Java hors JEE et pour différents language de la JVM (Groovy, etc.). La version Ultimate avec tout le nécessaire pour faciliter le développement JEE reste quant à elle payante.

Dans tous les cas, c'est une excellente nouvelle et va permettre à un large public de développeurs de tester cet IDE.

Rendez-vous sur le site de JetBrains dédiés à IntelliJ : www.jetbrains.org.
Des informations et des liens sur le site de l'épisode #283 du JavaPosse (ainsi que le Podcast qui est également disponible sur iTunes) et sur le site d'Artima.

Bien sûr il doit y avoir bien d'autres des sites et blogs qui doivent désormais relier la news !

A vos claviers !

dimanche 21 juin 2009

Les Cast Codeurs Podcast

En attendant d'avoir le temps et le courage de publier la suite de l'échiquier en JavaFX, voici un petit billet pour parler d'un podcast sur la plateforme Java que j'ai découvert récemment, qui est très intéressant et surtout - ce qui n'est pas si commun - en français !
Je veux parler des Cast Codeurs Podcast. En allant sur leur site à l'occasion de ce billet, j'ai vu que le sixième épisode était sorti aujourd'hui. J'étais tombé dessus un peu par hasard sur iTunes, lors d'une recherche sur Java il y a peut-être 3 semaines. Cela m'a fait pensé à une version française de the JavaPosse (et je le pense comme un compliment) : les participants savent de quoi ils parlent (du beau monde de la communauté Java française : Emmanuel Bernard, Guillaume Laforge, Antonio Goncalves, Vincent Massol), cela se passe dans la bonne humeur, les informations techniques et les news sur la plateforme Java sont réellement intéressantes pour un développeur Java. Bref un podcast indispensable qui a pour une fois la bonne idée d'être en français !
Le site : http://lescastcodeurs.com/

dimanche 17 mai 2009

Un échiquier en JavaFX

Dans ce billet, un petit programme en JavaFX qui dessine en un échiquier. Ce petit programme était l'occasion de s'essayer à utiliser un CustomNode (qui ici correspondra à l'échiquier). Et quand il y a quelques années j'enseignais la programmation en Java, le dessin d'un échiquier était un des premiers TP que je donnais aux étudiants quand nous abordions AWT/Swing, parce que c'est simple à mettre en oeuvre.

Ci-après la copie d'écran du programme :



Ce programme est composé de 2 fichiers : ChessBoardNode.fx qui contient la classe ChessBoardNode qui étend la classe CustomNode et Main.fx qui contient notre Stage et utilise le ChessBoardNode.

Tout d'abord ChessBoardNode.fx :

Tout ceci est assez simple, mais revenons sur quelques points :
- La classe CustomNode est une classe abstraite et il faut redéfinir la fonction "create" ; attention en JavaFX quand on redéfinit il faut utiliser le mot clé override.
Cette fonction create est un peu comme la méthode paint pour les composants graphiques en Java/Swing : en la redéfinissant on indique comment le composant doit être "peint". Cette méthode doit retourner un objet de type Node. Ici on créé plusieurs Rectangle (en fonction du nombre de lignes et du nombre de cases par ligne, valeurs définies dans les attributs) pour lesquels on alterne les couleurs parmi 2 et qui forment un Group, sous-classe de Node.

On remarquera qu'un certain nombre d'attributs ont été définis pour rendre l'échiquier plus facilement paramétrable.

Autre point, on notera ici l'utilisation du for et du if : il faut rappeler qu'en JavaFX, ce sont des expressions et qu'ils retournent un résultat.
A part cela, ce code ne pose pas de difficultés particulières.

Maintenant utilisons cette classe dans Main.fx :

On utilise directement un objet ChessBoardNode, en renseignant certains de ces attributs. On notera que l'abscisse et l'ordonnée de l'échiquier ne sont pas renseignées, pas plus d'ailleurs que la largeur ou la hauteur de la Scene ou du Stage : c'est JavaFX qui détermine tout cela en prenant les valeurs au plus juste.

Initialement, je voulais proposer une suite à ce billet sur JavaFX, en repartant de cet exemple et en l'améliorant un peu par la mise en oeuvre du "binding" de JavaFX pour obtenir simplement des petits effets sympathiques. Cependant je trouve que le format "billet de blog" n'est pas toujours idéal pour faire un texte comportant du code.

Entretemps j'ai donc créé un petit site sur Google Sites, dans lequel je reprends et complète ce billet.

jeudi 14 mai 2009

Cours d'introduction au SGBD

Un cours d'introduction au SGBD avec MySQL. Cela s'adressait à des étudiants n'ayant pas de connaissances particulières sur les bases de données mais ayant un background informatique. Ce cours n'a pas connu de mise à jour significative depuis 2005-2006. Elle est également disponible directement sur SlideShare.

mercredi 13 mai 2009

Cours d'introduction à C++

Voici un cours d'introduction à C++, s'adressant à un public type bac +3 connaissant ayant des connaissances minimum en algorithmique et connaissant le C. Cette présentation est également disponible sur SlideShare.

mardi 12 mai 2009

Cours d'introduction à Java

Voici un cours d'introduction à Java qui date un peu (dernière mise à jour significative en 2005-2006), mais qui sait cela peut servir. La présentation est également disponible sur SlideShare. Ce cours s'adresse à des étudiants niveau Bac +3/Bac +4 connaissant déjà C et C++.