Articles bsimard.com http://www.bsimard.com/rss Flux RSS des articles de bsimard.com Thu, 23 Feb 2012 03:06:16 +0100 nouvelle version du module yml pour play! /articles/22-nouvelle-version-du-module-yml-pour-play%21 /articles/22-nouvelle-version-du-module-yml-pour-play%21 Tue, 29 Mar 2011 00:00:00 +0200 Hier soir, j'ai publié une nouvelle version du module logisimayml !

Pour rappel ce module permet d'exporter votre base de données play! dans un fichier au format yaml.

Cette mise à jour (la version 1.4), apporte simplement la correction d'un bug : celui du parcours de l'arborescence des contenus de la base de données. Ce problème est du à une mauvaise génération de l'identifiant du contenu (encore un problème avec le lazy, grrr).

Sinon, vu que je me suis remis sur ce module, je spécifie la version 2.0 :

  • ajout de l'import d'un fichier yml dans la base (avec reset ou non de la base)
  • export par partie des contenus de la base (par table, par contenu)

Si vous avez d'autres idées, je suis preneur, alors laissé un commentaire ^^

]]>
Présentation de play! sur nantes par Guillaume Bort /articles/21-pr%C3%A9sentation-de-play%21-sur-nantes-par-guillaume-bort /articles/21-pr%C3%A9sentation-de-play%21-sur-nantes-par-guillaume-bort Fri, 11 Mar 2011 00:00:00 +0100 Dans le cadre de la petite JUG Nantaise, Guillaume Bort vient présenter le framework de développement Play!. Pour information, si vous ne le savez pas déjà, Guillaume est le co-fondateur de Play!.

  • Quand : jeudi 31 Mars à 19h
  • Le lieu : la cantine numérique Nantaise

Moi j'y serais, et vous ?

]]>
Nantes libère ses données (openData) /articles/20-nantes-lib%C3%A8re-ses-donn%C3%A9es-%28opendata%29 /articles/20-nantes-lib%C3%A8re-ses-donn%C3%A9es-%28opendata%29 Thu, 03 Mar 2011 00:00:00 +0100 La ville de Nantes passe à l'open-data et crée un groupe de travail sur le sujet : liberTIC

Cette action est vraiment à souligner puisque que contrairement à nos voisins, la France a du retard sur ce sujet !  D'ailleurs voici un petit sympathique sur le sujet (même si l'article date d'un an, c'est toujours vrai) : http://www.regardscitoyens.org/etat-des-lieux-de-lopendata-en-france/

Parmi les informations qui vont se libérer, même si la liste n'est pas définie, on peut quand même citer :

  • l'info trafic
  • la qualité de l'air

Faut espérer que Nantes va libérer les tracés des rues, les lieux des écoles, de musées des piscines etc ... Cela servirait beaucoup à openStreetMap.

Voici le communiqué de presse :

]]>
Script de démarrage (init.d) de tomcat pour debian /articles/19-script-de-d%C3%A9marrage-%28init.d%29-de-tomcat-pour-debian /articles/19-script-de-d%C3%A9marrage-%28init.d%29-de-tomcat-pour-debian Thu, 24 Feb 2011 00:00:00 +0100 Vous en avez marre de  recherche à chaque fois que vous installez un tomcat sur une debian comment le faire démarrer automatiquement ?

Ba moi aussi, c'est pour cela que j'écris ce billet.

La première chose à trouver, c'est le script init.d de démarrage. Personnellement, je ne mets jamais le script catalina.sh, je le trouve pas à mon goût (il ne gère pas le restart, ne fait pas de kill si le process ne veut pas s'éteindre ...).

Alors voici ma version, elle est disponible ici, et tout est variabilisé dans l'entête du script  (merci Astik pour ton aide):

  • TOMCAT_USER : l'utilisateur unix qui sera le owner du processus
  • JAVA_HOME : le chemin vers le répertoire d'installation de java (JDK ou JRE)
  • TOMCAT_HOME : le chemin vers le répertoire du tomcat.
  • TOMCAT_STOP_PORT : le port de shutdown du tomcat
  • TOMCAT_LOCK_PATH : le chemin du fichier de lock du processus (/var/lock/tomcat)

Voici la liste des petits plus qu'apporte le script :

  • Mise à jour automatique des droits sur le répertoire du serveur (chown -R $TOMCAT_USER:$TOMCAT_USER $TOMCAT_HOME/*)
  • Lors d'un démarrage du serveur, le script vérifie si le serveur tourne déjà et en averti l'utilisateur (ce que ne fait pas le catalina.sh)
  • Si le serveur a du mal à s'éteindre, le script fait un kill du processus

Une fois que vous avez paramétré le script comme il faut, et que vous l'avez positionné dans le répertoire "/etc/init.d" (n'oubliez d'enlever l'extension ".sh"), voici les lignes à taper sur votre serveur :

chmod 755 /etc/init.d/tomcat
update-rc.d tomcat defaults

]]>
Upgrade du module play! logisimayml /articles/12-upgrade-du-module-play%21-logisimayml /articles/12-upgrade-du-module-play%21-logisimayml Fri, 18 Feb 2011 00:00:00 +0100 J'ai le plaisir de vous annoncer la sortie de la nouvelle version du module logisimplay, compatible avec play! 1.1

Celle-ci est déjà disponible sur le site du framework (http://www.playframework.org/modules/logisimayml), et le code-source sur github (https://github.com/sim51/logisima-play-yml). Le tag correspondant à cette version est version-1.3.

Le principe du module reste le même, il suffit d'installer le module, puis de taper en ligne de commande play yml:generate.

Cependant, il y a beaucoup d'améliorations (c'est cool de dire amélioration pour correction de bug ^^) :

  • amélioration de l'accès concurrent à la map des données à exporter (merci les fonctions récursives), mais réglé grâce à Collections.synchronizedMap (je ne connaissais pas, merci faabb ...)
  • amélioration des exports des objects en relations lors de fetch en lazy (je n'avais pas prévu le coup, oups)
  • amélioration des exports des objets en relation ManyToMany (il n'y a pas besoin d'exporter les objets en relation ManyToMany avec l'attribut mapped by).

Bref, le module devient enfin opérationnel, alors profitez-en !

]]>
Le CCI de Nantes a annoncé l'ouverture de sa filière TIC /articles/13-le-cci-de-nantes-a-annonc%C3%A9-l%27ouverture-de-sa-fili%C3%A8re-tic /articles/13-le-cci-de-nantes-a-annonc%C3%A9-l%27ouverture-de-sa-fili%C3%A8re-tic Fri, 18 Feb 2011 00:00:00 +0100 La chambre des commerce et d'industrie des pays de loire a annoncé ce mercredi l'ouverture de sa nouvelle filière TIC. Son nom : ouest numérique !

Voici l'adresse de leur site internet : http://www.ouest-numerique.com

Son objectif, développer cette filière dans l'ouest :

  • en évangélisant, via de la communication, les clients potentiels sur les nouvelles technologies (dont l'optim et le décisionnel !).
  • permettre aux entreprises de cette filière de mieux se connaître (cartographie de la filière), ce qui on espère provoquera des synergies (via l'entraide)
  • développer l'éducation. Il y a un manque grandissant d'étudiant en informatique.
  • aider les labos de recherche en informatique à se rapprocher des entreprises.

Cela va permettre de dynamiser l'info dans la région, qui possède déjà un beau potentiel ! L'affaire est à suivre, mais il faudra au moins attendre 1 an (voir 2) avant d'en voir les retombés.

En tout cas l'initiative est très interressante !

]]>
Se former au framework play! /articles/14-se-former-au-framework-play%21 /articles/14-se-former-au-framework-play%21 Fri, 18 Feb 2011 00:00:00 +0100 Voici presque deux ans que j'utilise ce framework pour tous mes projets persos, et je commence à réussir à le pousser dans mon entreprise (nous sommes entrain de réaliser notre premier projet play! chez Smile).

C'est pourquoi j'ai écrit il y a quelque mois ces slides pour former les gens à ce framework. J'espère que ceci vous sera utile.

]]>
unifier ses données sur le web /articles/17-unifier-ses-donn%C3%A9es-sur-le-web /articles/17-unifier-ses-donn%C3%A9es-sur-le-web Fri, 18 Feb 2011 00:00:00 +0100 Vous avez un compte sur twitter, facebook, google ? Lorsque vous partagez un lien sur google-reader, vous voulez que celui-ci soit aussi publié sur twitter et facebook ? J'ai la solution pour vous : Twitterfeed

Comme vous j'ai un compte sur github, google, twitter, facebook ... et j'en avais marre que dès que je partage une infos sur l'un de ces réseaux, elle ne soit pas disponible sur les autres.

Voici ce que je voulais mettre en place :

  • lorsque je commit, tag, branch sur github, que cela se sache sur twitter
  • lorsque je publie un lien sur google-reader, que celui-ci le soit aussi sur twitter, facebook et sur mon site
  • lorsque je post un article sur ce site, celui-ci le soit aussi twitter et facebook
  • ...

Bref, j'avais besoin de pouvoir unifier mes infos sur les réseaux de manière automatique sans avoir à le faire à la mano. C'est chose faite grâce à Twitterfeed !

Ce site permet de publier n'importe quel flux RSS sur les réseaux twitter et facebook ! Essayez le, vous verrez.

]]>
nouvelle version du module cas pour play! /articles/18-nouvelle-version-du-module-cas-pour-play%21 /articles/18-nouvelle-version-du-module-cas-pour-play%21 Fri, 18 Feb 2011 00:00:00 +0100 J'ai le plaisir de vous annoncer la nouvelle version (la 3.0) du module cas pour le framework play!. Pour rappel, celui-ci permet de plugger facilement votre application play! avec le service de single sign on de Jasig : CAS.

Cette version vient avec son petit lot de fonctionnalité :

  • il gère les cas attributs.
  • le module possède un mock pour le serveur CAS. Ainsi plus besoin d'avoir un serveur CAS sur le poste de développement (et les probs de certificat etc ..).
  • la suppression de la lib client de CAS. Maintenant le module est réellement un client CAS, implémentant lui-même la communication avec le serveur.
  • création d'une application test (avec tests unitaires, tests fonctionnels & tests selenium) pour tester l'intégralité du fonctionnement de mon module (vive la qualité ^^).
]]>
Compte rendu de la soirée chaussette ! /articles/11-compte-rendu-de-la-soir%C3%A9e-chaussette-%21 /articles/11-compte-rendu-de-la-soir%C3%A9e-chaussette-%21 Sat, 03 Jul 2010 11:46:34 +0200 Suite à la dernière soirée firstjeudi (la soirée chaussette) voici le compte rendu des tips bash qui ont été présentés.

Tout à d'abord, le premier tips (qui mérite une chaussette) mais qui est toujours très utile :

[bsimard@localhost ~]$ man bash

La commande "type" permet de savoir qu'une commande est pure bash

[bsimard@localhost ~]$ type cd
cd est une primitive du shell

L'historique et les arguments des commandes

Comment rejouer la dernière commande exécutée ?

Utilisez le "!!"

[bsimard@localhost ~]$ echo toto
toto
[bsimard@localhost ~]$ !!
echo toto
toto

Comment rejouer la n-ième commande de l'historique ?

Utilisez le "!-n" où n est la position dans l'historique.

[bsimard@localhost ~]$ echo toto
toto
[bsimard@localhost ~]$ echo titi
titi
[bsimard@localhost ~]$ !-2
echo toto
toto

Comment récupérer le n-ième argument d'une commande ?

Utilisez le ":n" où n est le numéro de l'argument.

[bsimard@localhost ~]$ echo toto titi tata
toto titi tata
[bsimard@localhost ~]$ echo !!:3
echo tata
tata

Comment récupérer tous les arguments entre le ième et le jième ?

 Utilisez le ":i-j"

[bsimard@localhost ~]$ echo toto titi tata
toto titi tata
[bsimard@localhost ~]$ echo !!:1-3
echo toto titi tata
toto titi tata

Comment récupérer le dernier argument de la dernière commande ?

Utilisez "!$"

[bsimard@localhost ~]$ echo titi toto tata
titi toto tata
[bsimard@localhost ~]$ echo !$
echo tata
tata

Le remplacement de chaine de caractère

Comment remplacer la première occurrence d'un mot dans la dernière commande ?

Utilisez "^old^new^"

[bsimard@localhost ~]$ echo toto titi tata
toto titi tata
[bsimard@localhost ~]$ ^toto^tete^
echo tete titi tata
tete titi tata

Comment remplacer la première occurrence d'un mot dans la dernière commande ?

Utilisez la command substitute ":s/old/new/"

[bsimard@localhost ~]$ echo toto toto toto
toto toto toto
[bsimard@localhost ~]$ !!:s/toto/titi/
echo titi toto toto
titi toto toto

Comment remplacer toutes  les occurences ?

Utilisez ":gs/old/new/"

[bsimard@localhost ~]$ echo toto toto toto
toto toto toto
[bsimard@localhost ~]$ !!:gs/toto/titi/
echo titi titi titi
titi titi titi

Comment récupéré le path d'un fichier ?

Utilisez ":h"

[bsimard@localhost ~]$ ls /usr/share/doc/xterm/copyright
[bsimard@localhost ~]$ cd !$:h
[/usr/share/doc/xterm]

L'historique et la recherche de commande

Vous en avez marre de taper toujours la même commande, alors que celle-ci se trouve dans l'historique ?

Alors le CTRL+R est pour vous ! Lorsque vous tapez cela dans votre terminal, vous verez apparaitre un prompt. Si vous tapez le debut de la commande que vous recherchez, bash va chercher dans l'historique la dernière commande qui y ressemble.

De plus si cela n'est pas la bonne, retaper CTRL+R, et bash va aller chercher la précédente. Bref vous naviguer dans votre historique avec un filtre.

[bsimard@localhost ~]$ echo toto
toto
[bsimard@localhost ~]$ echo titi
titi
[bsimard@localhost ~]$ echo tata
tata
(reverse-i-search)`e': echo tata

Une autre solution, consite à modifier le fichier ~/.inputrc, pour y ajouter les lignes suivantes :

"\e[A": history-search-backward
"\e[B": history-search-forward

Ceci permet de filtrer l'historique obtenue avec les touches "up-arrow" et "down-arrow", avec le début de la commande que l'on tape. Ainsi plus besoin du CTRL+R. Si on tape rien , c'est l'historique habituel. Par contre si on tape "ec", seules les lignes de l'historique commençant par "ech" seront accéssibles.

Quelques tips en vrac, mais bien utile !

Comment insérer un marqueur dans une ligne de commande ?

Utilisez "CRTL+ESPACE".

Comment alterner la position du curseur, avec celle du marqueur ?

Utilisez "CTRL+X CTRL+X"

Comment basculer la ligne courante dans l'éditeur défini par la variable d'environnement EDITOR ?

Utilisez "CTRL+X CTRL+E"

Comment remplacer toutes les variables d'une commande par leur vrai valeur ?

Utilisez "CTRL+META+E"

Comment faire un menu de selection dans vos scripts ?

select choix in choix1 choix2 choix3; do ...; done

Comment faire planter une machine ?

Utilisez ":(){ :|:& };:"

]]>