Inclusion de page html coté serveur

Les inclusions coté serveur ou SSI (Server Side Includes) sont très utiles pour inclure dans une page html une autre page html.

Ce site utilise par exemple ce système pour les entêtes et pieds de page de tous les documents interne, comme ça, il n’est pas nécessaire d’écrire ce code partout et sa mise à jour est centralisée en un seul et unique point.

La configuration se fait en chargeant dans apache le module mod_include, puis en le configurant :
Dans le fichier http.conf, dans la description du repertoire dans lequel on souhaite réaliser des include, on doit ajouter l’option +Includes, ce qui donne :

<Directory /src/www/htdocs>
Options […] +Includes
</Directory>

Il faut aussi ajouter l’activation dans la partie globale :

<IfModule mod_include.c>
xBitHack on
</IfModule>

Enfin, le fichier qui réalise l’inclusion doit avoir des droits d’execution et contenir une inclusion qui peut être de la forme suivante :
<!–#include virtual=”/model/fichier.html” –>

Utiliser Vim en multifenetres

Créer une nouvelle fenetre sous Vim peut se faire à l’aide des commandes :split et :vsplit qui peuvent être suivies par un nom de fichier à ouvrir dans la nouvelle fenêtre.
Il est aussi possible de creer un nouveau fichier à l’aide des commandes :new et :vnew
La navigation entre les fenêtres se fait à l’aide des combinaisons de touches suivantes :

  • CTRL+w suivi de h
  • CTRL+w suivi de j
  • CTRL+w suivi de k
  • CTRL+w suivi de l

Charger une page Web avant de l’afficher

Il est souvent préférable de terminer le chargement d’une page et entre autre de ses images avant son affichage, de sorte à éviter que la disposition des éléments soit instable durant ce temps.
Pour ce faire, un petit java Script peut vous venir en aide :

Dans la partie HEAD :
<SCRIPT>
<!–
function show() {
document.getElementById(“hidDiv”).style.visibility = “visible”
}
</script>
–>
Dans la partie BODY :
<BODY onLoad=”show()”>

Partie Affichée durant le chargement

<div id=”hidDiv” style=”visibility:hidden”>

Partie Affichée une fois la page chargée

</div>
</body>

Forward de ports avec SSH

SSH peut être utilisé pour forwarder des ports, il est ainsi possible d’accéder à un port distant dont l’accès serait restraint au réseau local puisque SSH permet de simuler un accès local à distance.

On peut souhaiter, par exemple acceder, au travers d’un port local 2000 au port 80 d’une machine distante. La commande est alors la suivante :

ssh -N -l root -L 2000:ip_host_distant:80 host

L’option -N indique que l’on ne souhaite pas de Shell.
L’option -R peut être utilisé pour l’inverse à savoir mapper sur la machine distante un port qui sera en fait local (visible depuis le client).

Note : le terme local correspond au client ssh. Le termer distant correspond au réseau du serveur sshd.

JAVA et DNS Dynamiques

Par sécurité, Java, lorsqu’il connait une association nom de domaine-IP, la mémorise de façon infinie. De cette sorte, on évite les attaques de DNS, ou simplement la surcharge inutile des serveurs. Cette philosophie serait interressante si l’on n’était pas confronté certaine fois à des DNS dynamiques, dont l’adresse change régulièrement.

J’ai pour ma part rencontré ce problème sur ce site lorsque j’interrogais mon adresse IP pour ne pas comptabiliser les requetes locales.

Il est alors nécessaire de modifier les règles de sécurité de Java pour autoriser la mise à jour de son cache. Plus précisement, il s’agit de donner une durée de vie au entrées du cache DNS de la machine virtuelle.

Pour ce faire, il faut éditer le fichier présent dans le répertoire du JRE dont le chemin est ../lib/security/java.security et de modifier la ligne networkaddress.cache.ttl pour lui donner une valeur de 180(secondes) par exemple.

Alors, le serveur DNS sera à nouveau interrogé si la précédente requete a plus de 3 minutes.

Les processus JAVA doivent être relancés pour que les modifications soient prises en compte.

Extraire un mot pour en faire un paramètre

Ceci est utile lorsque vous souhaitez passer en paramètre d’un script le ième item retourné par une commande. Ce peut être le cas lorsque vous voulez extraire la taille d’un fichier à partir de la commande ls.

Pour faire celà, une solution simple est de passer par la commande awk comme indiqué ci-dessous :

taille=`ls -l fichier | awk ‘{print $5}’`

Le 5ème argument retourné par la commande ls sera mémorisé dans la variable taille.

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.