Sweetohm

Michel Casabianca

Exception Management in Java

Here is a short document that describes my view on exceptions management in Java command line applications.

This is a quite different from the case of a library where you should type the exceptions you throw so that receiver will be able to take appropriate decisions.

This is also quite différent for web applications where you won’t catch exceptions in main() but in a place where you will be able to return appropriate status code. You would also probably throw exceptions that would contain status code to return.

Singleton

Voici un bout de code java très utile lorsqu’on souhaite qu’une application ne puisse tourner qu’en un seul exemplaire sur une machine.

Récupérer la version du MANIFEST

On voit parfois, sur certains projets Java, des horreurs comme un source que l’on modifie à la main pour mettre à jour la version de l’application. On peut faire beaucoup élégant grâce à la classe java.util.jar.Manifest : elle nous permet (plus ou moins simplement :o) de récupérer la version de l’application du MANIFEST contenu dans le JAR.

Effective POM

Le goal Maven help:effective-pom est bien pratique : il affiche le POM en y incluant ses parents. On peut ainsi examiner le POM complet de son projet :

$ mvn clean help:effective-pom | wc -l
35877

Couverture de Code

Entendu dans l’excellent podcast Talk Python to Me :

Un moyen d'augmenter la couverture
de test est de détruire du code.

List Comprehension vs Streams Java

Voici le code en Python pour construire une liste des IDs de factures dont le titre contient Training, triée par ordre décroissant de montant :

Babel

Babel est une boîte à outils permettant de gérer vos langages de programmation favoris.

Go Go!

C’est un grand jour pour le Go chez MBS. Après trois semaines d’étude, nous avons réalisé :

  • Un prototype en Go.
  • La même application en Java.
  • Des benchmarks des deux versions.

La décision est tombée la semaine dernière : nous partons sur la solution en Go. Les développements commencent donc cette semaine.

Raccourcis clavier sous NetBeans

Les raccourcis clavier sous NetBeans 6.9 et Linux (Mint dans mon cas) avec un clavier AZERTY ne fonctionnent pas toujours correctement : bien que l’éditeur reconnaisse bien le clavier, il gère les raccourcis comme si notre clavier était un QUERTY. Autrement dit, Ctrl-Z (Undo) est reconnu comme Ctrl-W (fermeture de la fenêtre) et inversement. C’est d’autant plus gênant que l’équipe NetBeans annonce qu’elle ne corrigera pas le bug parcequ’il serait dû à la machine virtuelle Java.

Vérifier son CLASSPATH

Le CLASSPATH est un peu le péché originel de Java. Il poursuit tout développeur, du débutant qui ne comprend pas pourquoi l’interpréteur ne trouve pas les classes qu’il vient de compiler, au développeur chevronné qui doit se battre avec Maven et ses règles tortueuses de gestion des dépendances (surtout si elles sont transitives)… Au final, souvent on ne sait plus très bien ce qui se trouve dans son CLASSPATH et il peut alors survenir des erreurs très difficiles à corriger.

Introduction à YAML

Cet article est une introduction à YAML, un langage permettant de représenter des données structurées, comme le ferait XML par exemple, mais de manière plus naturelle et moins verbeuse. On y verra une description de la syntaxe de YAML ainsi que des exemples en Java et Python.

Eclipse IDE 3.0

J’ai testé Eclipse en version 3.0. J’étais resté sur une impression mitigée quand aux versions précédentes, mais je dois dire que cette version 3.0 est une avancée majeure pour le projet Eclipse qui atteint, avec cette version, sa maturité.

Better, Faster, Lighter Java

Je suis en train de relire Better, Faster, Lighter Java pour les Editions O’Reilly. C’est un véritable calvaire : les chapitres n’arrivent pas assez vite !

Ecce Duke !

A funy image I made few years ago and just found on my hard disk.

Ecce Duke !

Un petit délire sur Duke, qui date déjà de quelques années et que je viens de retrouver (par hasard) sur mon dur.

Spice Wars

Spice Wars est un jeu de statégie en réseau pour 3 à 6 joueurs.