mat@oxyg3n.org

Mon bloc note perso sur les systèmes UNIX & GNU/Linux, le développement web et... la photo.

Aller au contenu | Aller au menu | Aller à la recherche

07juil

Serveurs d'application J2EE, tendance


ok, tomcat n'est pas une implémentation complète des spécifications J2EE... Mais ça donne quand même une idée de la tendance actuelle quand à l'adoption de ce type de serveurs par les entreprises. Rien ne semble arrêter la douce et lente progression de Jboss ;-) On ne le voit pas très bien sur la courbe, mais glassfish commence à monter. Ce serveur semble promu à un bel avenir.

01juil

RMLL 2008 - Premier jour

Petite sacoche de bienvenue contenant entre autre quelques magazines Diamond et l'indispensable programme.

Cette première journée se sera déroulée sous une chaleur caniculaire, mais ça ne semblait absolument pas perturber le déroulement de l'évènement ;-)

En bref, voici ma journée:

- 10h: arrivée à Mont de Marsan. Ca fait plaisir de retrouver la ville ou j'ai fait une partie de mes études!
- 10h30: arrivée sur les lieux, direction l'IUFP pour le discours de lancement de l'évènement. Une tente géante accueillant les divers stands à été installée. Les gens de l'accueil se chargent d'orienter les visiteurs. Tout à l'air impeccablement bien organisé, j'en veux pour preuve la rapidité à laquelle les gars ont retrouvé mon dossier ;-) Deux petits points noirs tout de même: Les t-shirts sont uniquement disponibles en Taille XL et XXL (je voulais un L ou un M). Mais ce n'est pas grave. Plus "grave" par contre: vous est remis à l'accueil une feuille contenant vos accès à internet. Super, me direz vous! Oui, si seulement le mot de passe perso inscrit en clair sur la feuille n'était pas celui utilisé lors de l'inscription sur le site internet. Il aurait surement été préférable de générer un mot de passe, plutôt que de réutiliser le mot de passe perso de l'utilisateur (qui n'a pas forcement envie qu'il soit à la vue des organisateurs). Un détail certes, mais agaçant tout de même. Bref, ces petits points réglés, direction les jardins de l'IUFM ou se déroule le discours de bienvenur. Là, petit défilé de politiques venus saluer l'évènement. La bonne humeur est bien là. On en oublierait même les amalgames et autres bourdes de nos amis politiques que les plus avertis n'auront pas manqué de relever. Dégustation de spécialités régionales autour d'une table bien garnie. Merveilleux.
12h30: repas à l'IUFM. Accueil très sympathique, repas très bon. Il fait vraiment très chaud.
14h: J'ai assisté à la conférence de présentation de PostgreSQL par Guillaume Lelarge. Excellente conférence. Même s'il ne s'agissait que d'une "présentation" j'ai trouvé ça très clair et plutôt complet.
16h: La conférence sur "La gestion des risques du SI par la méthode MEHARI 2007" de Eric Papet était également des plus intéressante. Éric à pu nous brosser une liste des étapes clés de l'application de cette méthode en seulement 45min. Ça aurait mérité bien plus de temps, mais c'était déjà pas mal. Merci à lui.

Point noir de la journée: chaleur! Que ce soit dans les locaux ou à l'extérieur c'était difficilement supportable.
Point positifs: ambiance du tonnerre, bonne humeur, geek à souhait, organisation parfaite, conférences très intéressantes.

A demain,

30juin

RMLL 2008, c'est parti !


Comme évoqué dans un précédent billet, je serai à Mont de Marsan pour les 9èmes rencontres mondiales du logiciel libre ;-) Alors non, je ne cèderai pas à la tentation de poster des billets en live depuis les conférences mais - dans la mesure du possible - j'essaierai de vous faire un billet par soir afin de vous faire vivre cet évènement.

27juin

Headers Apache / Jboss

Apache dans sa configuration par défaut envoie une bannière descriptive de la configuration du serveur dans le header de la réponse. Il est possible de désactiver ce comportement en modifiant les deux directives suivantes:
ServerSignature Off
ServerTokens Prod

Jboss de son côté peut ajouter des informations dans la réponse HTTP. Le header X-Powered-By peut par exemple donner des informations importantes. Ce header est créé via un servlet filter activé par défaut dans la conf de tomcat. Deux solutions possibles pour désactiver ce comportement:

- mettre en commentaire le filter dans le fichier deploy/jbossweb-tomcat55.sar/conf/web.xml

<!--<filter-mapping>
<filter-name>CommonHeadersFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> -->

- modifier la conf apache afin qu'il supprime ces headers:

<LocationMatch '^/mywebap/.*'>
Header unset 'X-Powered-By'
</LocationMatch>

23juin

Optimiser les valeurs wsize et rsize sur un lien NFS

Afin de trouver des valeurs wsize et rsize les plus adaptées et ainsi améliorer les vitesses de transfert sur le lien, les commandes suivantes peuvent s'avérer utiles:

pour tester la vitesse en écriture:
time dd if=/dev/zero of=/mnt/home/testfile bs=16k count=16384

et pour tester la vitesse en lecture:
time dd if=/mnt/home/testfile of=/dev/null bs=16k

29mai

Eglise de Figueras (Espagne)

J'ai pris cette photo sur la route de Barcelone lors d'un arrêt à Figueras . Très jolie petite église située non loin du musée Salvador Dali.

22mai

BeanShell

J'ai découvert BeanShell ya pas longtemps, un peu par hasard, et je me demande comment j'ai pu faire "avant" tellement cet outil est incroyable. Beanshell c'est quoi? C'est un interpréteur de code source JAVA. Concrètement ça permet exécuter un bout de code JAVA à la volée. Et ça c'est vraiment super pratique (hop, en ligne de commande par ex).
Voici la marche à suivre pour tester la bête:
- télécharger le jar de beanshell ici.
- copier ce fichier dans le répertoire: $JAVA_HOME/jre/lib/ext
- test ultime:

shell# java bsh.Interpreter
BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)
bsh % System.out.println("test");
test
bsh %

ou bien,

echo "System.out.println(System.out.println("test"));" | java bsh.Interpreter

Pour les sysadmin l'interêt va être de pouvoir visualiser rapidement des variables Java, ex:
System.out.println(System.getProperty(\"file.encoding\"));

Ce n'est bien sûr qu'un tout petit exemple des capacités de l'outil ;-)

21mai

RMLL 2008

Ça y est, les vacances sont posée! Et du 1er au 5 Juillet je partirai en direction de Mont de Marsan (oui monsieur!) pour les RMLL 2008 (Rencontres Mondiales du Logiciel Libre). Au programme plein de conférences intéressantes - pour ça jetez un œil au programme - plein d'ateliers, présentations sur le thème des logiciels libres. En ce qui me concerne voici le petit programme que je me suis préparé (va falloir courir!):

Mardi 1er Juillet:
- 11h-11h30 - Jardins IUFM: Plénière d’ouverture
- 14h-15h30 - IUT RT/TD5: Présentation de PostgreSQL
- 16h00-16h45 - IUT BIO/TD3: La gestion des risques du SI par la méthode MEHARI 2007

Mercredi 2 Juillet:
- 11h-11h45 - RT/TD5: Présentation du langage Ruby
- 14h-16h - IUT RT/PC: PostgreSQL : réplication avec Slony
- 16h-16h45 - IUT RT/COURS: Applications web en Python : panorama et déploiement
ou - 16h-16h45 - IUT BIO/TD3: Assurance qualité avec Fusil le fuzzer

Jeudi 3 Juillet:
- 9h-10h: Introduction à l’art libre - Partie 1
- 10h-10h30: Introduction à l’art libre - Partie 2
- 10h30- ?: Cas concret d’utilisation de Nagios 3 dans une grande entreprise
- 14h15-14h45: GlassFish
- 14h45-16h30: Infrastructure de fabrication de la distribution Debian (que je quitte en cours...lol)
- 15h15-15h45: JOnAS
- 16h15-16h45: EasyBeans
- 16h45-17h15: JASMINe

Vendredi 4 Juillet:
- 9h-9h45 - IUT BIO/TD2: FAN (Fully Automated Nagios)
- 9h45-10h30 IUT BIO/TD2: Vigilo : logiciel libre de supervision grands comptes
- 11h00 - 11h45 - IUT BIO/TD2: Centreon, supervision d’infrastructures critiques basée sur Nagios
- 11h45 - 12h45 - IUFM Salle 13: Cas concret d’utilisation de Nagios 3 dans une grande entreprise
- 14h - 14h45 - IUT BIO/TD2: Gestion d’identité open source avec OpenSSO
- 16h - 16h45 - IUT RT/COURS: Présentation du framework Ruby on Rails

Samedi 5 Juillet:
9h00 - 11h - IUT BIO/AMPHI: GPLv3 : en quoi cette licence est-elle une amélioration par rapport aux précédentes ?

06mai

Façade du Musée Dali de Figueras (Espagne)

Détail de la façade du musée Salvador Dali de Figueres (Espagne).

06mai

Dell OpenManage & Debian

Il existe maintenant un paquet debian pour OpenManage :-) Dell ne proposant pas de support pour Debian, ce n'est donc pas un paquet officiel. Mais c'est déjà ça!

Voici ce qu'il faut faire pour l'installer:
- ajouter la source suivante dans le fichier/etc/apt/source.list
deb ftp://ftp.sara.nl/pub/sara-omsa dell sara
- lancer un "apt-get update"
- installer simplement avec: apt-get install dellomsa

et hop, le tour est joué!

Quelques commandes sympa:

- voir l'état des disques: omreport storage pdisk controller=0

- voir l'état d'une grappe de disques: omreport storage vdisk

- dans le cas ou on souhaite changer un disque, il peut être interessant d'augmenter la vitesse de reconstruction: omconfig storage controller action=setrebuildrate controller=<id> rate=80

27mar

Bash - Ces petites commandes qui vous simplifient la vie... ( III )

  • obtenir des informations sur le matériel: lshw
  • créer un ensemble de répertoires en une seule ligne: mkdir -p tmp/a/b/c
  • vérifier l'état d'un disque dur: smartmontools: smartctl -t long /dev/hda
  • changer la date d'un fichier: touch -d 20080301 /tmp/toto ou en précisant l'heure: touch -t 200803010600.00 /tmp/toto
  • lister les librairies utilisées par un programme: ldd /usr/lib/lspci
  • bookmarquer des répertoires (merveilleux!): installer cdargs (package debian dispo), faire "source /usr/share/doc/cdargs/examples/cdargs-bash.sh" pour ajouter les fonctions de cdargs au bash. "ca <description>" pour ajouter le répertoire courant à la liste des bookmarks, "cdb <nom du bookmark>" pour utiliser un bookmark, "cv" pour lister les répertoires bookarqués et passer en mode browse (via la touche TAB).
  • générer des mots de passe aléatoires: pwgen (package debian dispo)
  • rechercher des fichiers en fonction de leur taille: find / -size +1024k -print (1024 taille mini du fichier en ko)
  • identifier ses disques dur: dmesg |grep hd
  • statistiques interface réseau (vitesse etc.): ifstat -b

17mar

Script Ant "minimal"

Quelques variables:

<property name="sourcedir" value="${basedir}/src"/>
<property name="targetdir" value="${basedir}/bin"/>
<property name="librarydir" value="${basedir}/lib"/>
<property name="action" value="list"/>


Il faut utiliser toutes les librairies .jar du répertoire "lib" dans le classpath:

<path id="libraries">
   <fileset dir="${librarydir}">
       <include name="*.jar"/>
   </fileset>
</path>


fileset: permet de définir un ensemble de fichiers.


Première "cible", on fait le ménage dans le répertoire "bin":

<target name="clean">
   <delete dir="${targetdir}"/>
   <mkdir dir="${targetdir}"/>
</target>


Copie dans le répertoire "bin" de tous les fichiers autres que ".java" (ex: fichiers de configuration et de mapping hibernate...):

<target name="copy-resources">
   <copy todir="${targetdir}">
       <fileset dir="${sourcedir}">
           <exclude name="**/*.java"/>
       </fileset>
   </copy>
</target>


On lance la compilation:

<target name="compile" depends="clean, copy-resources">
   <javac srcdir="${sourcedir}" destdir="${targetdir}" 
       classpathref="libraries"/>
</target>


On lance le programme compilé en y passant un paramètre:

<target name="run" depends="compile">
   <java fork="true" classname="org.events.EventManager" 
       classpathref="libraries">
       <classpath path="${targetdir}"/>
       <arg value="${action}"/>
   </java>
</target>


fork: permet l'exécution de la tâche dans une autre VM.
classpathref: le classpath à utiliser.
classname: la classe java à exécuter.
arg: argument à passer en ligne de commande lors de l'exécution.

15mar

Nick Heudecker à propos de Wicket

Voici une une courte interview de Nick Heudecker (hibernate) à propos de Wicket. Ce framework n'a décidément pas fini de faire parler de lui !

14mar

C'est les vacances !

moi
C'est les vacances, ça se voit, j'ai du temps à perdre... (South Park Studio)

13mar

BOUML, la boîte à outil UML "light" pour le développeur

reverse
Intéressant ce petit logiciel développé par Bruno Pagès. BOUML est une suite d'outils UML 2 libres dont un modeleur, vous permettant de spécifier et générer du code C++, Java, Idl, Php et Python. J'ai essayé de lancer l'opération inverse, a savoir l'analyse d'un ensemble de classes java (un driver JDBC MySQL, le premier truc qui m'est tombé sous la main) afin de générer un XPI importable dans ArgoUML. Mais rien a faire, ArgoUML me crie dessus lors de l'import, visiblement le format du XPI ne lui convient pas :-( Si vous avez une idée...

12mar

Les logiciels que j'utilise au quotidien sous MacOSX

Vous trouverez ci-dessous une petite sélection des logiciels que j'utilise au quotidien avec mon mac. Et comme vous pourrez le constater, la majorité des logiciel utilisés par votre serviteur sont libres. A ce propos, j'ai été agréablement surpris par la quantité de logiciels libres disponible sur cette plateforme lors de mon switch :-) Enjoy


Si vous connaissez d'autres logiciels sympas, n'hésitez pas à les ajouter dans les commentaires, je compléterai la liste.

PS: dédicace à Matlox qui va bientôt switcher ;-)

04mar

En Vrac !

03mar

Citation

La science, c'est ce que le père enseigne à son fils. La technologie, c'est ce que le fils enseigne à son papa.

Michel Serres

Oh que c'est mignon :-)

03mar

Adoption des technologies & marché de l'emploi

Le nombre d'emploi associés à une technologie est généralement un bon indicateur quant à l'adoption de celle-ci par les entreprises. C'est ce qu'explique Rod Johnson dans ce très bon billet. Exemple concret à l'aide du site jobtrends.

et un petit dernier pour la route:

19fév

Bash - Ces petites commandes qui vous simplifient la vie... ( II )

  • renommer une liste de fichier: rename 's/\.txt$/\.dat/' *.txt
    (pour renommer tous les .txt en .dat)
  • dernière commande exécutée: symbole !! . C'est très pratique, surtout lorsque vous avez oublié sudo devant une commande qui le requiert :-)
  • premier et au dernier argument de la commande précédente: respectivement les symboles !^ et !$
  • revenir au répertoire précédent: cd -
  • raccourci pour faire un "clear" du terminal: control + L

- page 1 de 3