How to update PlantUML diagram automatically?

PlantUML is a nice tool to generate diagram as code but unlike the visual editors (like diagrams.net) you don't have visual feedbacks.

Easy but manual

The following command will generate an image name mydiagram.png

plantuml mydiagram.puml

watch ?

Let's try to update it every 10s with watch. It's a good start but it refresh the diagram even if it's not saved. It you are not lucky it could take ~10s to display the change. (Ok you can lower the watch duration but...)

watch -n 10 plantuml mydiagram.puml

inotifywait

inotifywatch listen for filesystem events so it will reload the diagram at the right time : when you save it.

while inotifywait -e move_self cd.puml; do plantuml cd.puml; echo ""; done

My editor is vim so I'm listening to the event move_self that is enough but maybe it's not suitable with another editor. You could watch for events with inotifywatch.

vim !

In fact, vim have this feature built in with the autocmd. autocmd BufWritePost *.puml !plantuml %

OpenDJ et les fichiers properties

Lorsque l'on souhaite passer une commande sur un annuaire il faut définir le serveur cible, son port, l'utilisateur et son mot de passe. Ceci est laborieux. ldapsearch --hostname ldap.example.net --port 389 --bindDn "cn=Directory Manager" --bindPassword secret ... Mais on peut s'en passer  […]

Lire la suite

Vive Oracle...

<users@opends.dev.java.net>: Sorry, I couldn't find any host named opends.dev.java.net. (#5.1.2)Après avoir changé le manuel d'OpenDS d'URL et en passant cassé toutes les bookmarks, l'indexation google etc... Je viens de m'apercevoir qu'ils avaient changé les adresses des mailings listes sans  […]

Lire la suite

PHP est faiblement typé !

A votre avis, que retourne le code suivant :

var_dump('11111111111111111' == '11111111111111112');
var_dump('11111111111111111' === '11111111111111112');
var_dump(11111111111111111 === 11111111111111112);
var_dump(11111111111111111 == 11111111111111112);

Et en bonus :

var_dump('12abc' == 12); 

On serait tenté de dire : c'est simple "faux" !

Et bien non..

Lire la suite

LDAP : les recherches non indexés et la pagination des résultats

Actuellement je travaille sur une application utilisant un annuaire LDAP comme conteneur de personnes. Dans cette application, les utilisateurs ont la possibilité de faire des recherches pouvant retourner beaucoup de résultats : quels personnes ont un nom commençant par "Du" (sn=Du*). Par  […]

Lire la suite

Haut de page