Incrémenter une variable en shell

La solution est simple et à retenir :

var=$(($var + 1))

Bien sûr ceci ne se limite pas à une simple incrémentation : toutes les opérations de calcul sont possibles.

Notons que

var=$(( var + 1 ))

fonctionne aussi, mais personnellement il me semble que cet usage est un mauvaise habitude qui pousse à oublier par la suite de préfixer les variables lues par un $

Corriger le bug des tables de Mozilla et autres

Certaines versions de mozilla souffrent d’un bug qui, lors de l’affichage d’un tableau avec des images, font apparaitre des lignes blanches entre les cellules. Ce bug est problématique dans l’ajustement de graphiques. La solution est assez simple à mettre en oeuvre :
Ajouter les lignes suivante dans la page .html intégrant la table, dans la section <HEAD> :

  <style>
     img {display: block}
     iframe {display: block}
  </style>

La ligne img concerne les cellules avec image, la ligne iframe l’insertion d’internal frame qui souffre du même problème.

Compiler plus vite avec GCC

La compilation de programmes au travers de Gcc et de l’outil make est relativement lente, il est possible d’accélerer celà en utilisant l’option -j de make qui permet de lancer plusieurs compilations en parallèle.

Par exemple essayez make -j3 vous constaterez une différence non négligeable.

3 est une bonne valeur pour un processeur, dans une architecture multiprocesseurs, vous pouvez viser plus haut.

WiFi, une technologie attrayante à ne pas utiliser n’importe comment.

I.Introduction

Pour certains, Wifi semble la solution à tous leurs problèmes, j’ai eu l’occasion de lire certains articles dans lesquels quelques DSI annoncaient être déçu de cette technologie en laquelle ils avaient aveuglément confié leur avenir.
Mauvaise technologie ou mauvais choix ? Loin d’être à la hauteur des prétentions publicitaires des constructeurs, Wifi reste sans doute une technologie d’avenir par sa souplesse d’utilisation et l’accès à la mobilité qu’il procure.
Nous allons voir dans cet article comment ne pas utiliser Wifi de sorte à l’utiliser au mieux, comment éviter de mauvais choix.
Continue reading

Inclusion dynamique et existence de fichier

Il est possible dans une page JSP d’inclure un fichier à l’aide de la commande <jsp:include page=”nomfichier” />

Il est tout autant possible de réaliser une inclusion dynmique de fichier, ce qui est util dans le cas de ce site pour gérer des articles écrits sous forme de fichiers indépendants. Dans ce cas, il est possible d’utiliser la commande suivante : <jsp:include page='<%=obj.getNom()%>’ />

Toutefois, lors d’un inclusion dynamique, il est possible que le fichier à inclure n’existe pas, dans le cas de l’inclusion d’un fichier “.jsp”, son existance est vérifiée et une Exception est levé, il est donc possible de tester celà simplement avec un “try-catch” comme le montre l’exemple ci-dessous :

<%  try {   %>

           <jsp:include page='<%= page.jsp %>' />

<%    } catch ( Exception e ) {  %>

           <jsp:forward page="error.jsp" %>

<%    }    %>

Toutefois, dans le cas de l’inclusion d’une page autre, html par exemple, aucune exception n’est levée si la page n’existe pas, une solution consiste donc à vérifier avec l’inclusion l’existance au non du fichier comme le montre l’exemple ci-dessous. Notons que cet exemple fonctionne avec des chemins absolus et non avec des chemins relatifs, le chemin de la page courante etant plus difficile à gérer.

<% 
        if ( new java.io.File( 
             application.getRealPath( filename )).exists() ) {
%>
         <jsp:include page='<%="/"+filename%>'/>

<%  } else { %>

         <jsp:forward page="error.jsp"/>

<%  }    %>

Mise à jour d’un iPaq h3600 vers familiar OPIE 1.0

Mise a jour d’un ipaq h3600 vers familiar/OPIE1.0

I. Présentation :

Après 2 ans d’utilisation de mon ipaq sous linux en environnement Qtopia, j’ai décidé de mettre à jour mon PDA en installant la version, 1.0 d’opie, du fait de l’intégration de la synchronisation entre PDA et Pc en environnement KDE.
Histoire que cette expérience profite à d’autres, voici comment j’ai procédé.

Note : toutes les manipulations ci-dessous sont à vos risques et périls, je ne saurais être tenu pour responsable de quelque problèmes qu’il soit.

Continue reading