Bilan sur les deux première semaines au Quebec

Bon pour calmer les raleurs voici un vrais billet pour mon blog (qui d’ailleurs à un vrais design désormais).

#Le logement Le contact avec ce qui sera ma chambre pour les 4 prochains fut déprimant. La chambre date de la fin des années 60 et les murs ne sont pas lisses (à ce niveau là on peut parler de gruyère). Bon on se reprend et on ouvre les rideaux, nouvelle déprime un imbécile à mis un bloc de béton au centre la fenêtre il ne reste que des petites fenêtres sur les cotés (l’avantage c’est que j’ai pas de reflets sur mon écran :D).

Une vidéo de mon palace

Les sanitaires sont collectif et aussi déprimant que la chambre. Ma fenêtre à un léger courant d’air qui disparait une fois l’encadrement recouvert de glace. A ce propos un matin en ouvrant ma fenêtre car j’avais trop chaud (-26 dehors, 30 à l’intérieur), j’ai eu la surprise de voir des blocs de glace se détacher de la fenêtre et tomber sur mon lit.

#Le tourisme Avec un logement aussi déprimant il fallait que l’on prenne l’air. On a donc pris un grand bol de visite touristique, au point que en une semaine on avait vu tout ce qu’il y a à voir à Quebec…

#Les cours Bah c’est la FAC avec des profs plus proche de nous. Plus d’infos après les premier examens.

#Le climat Froid pour nous, horriblement chaud pour eux. Ils attendent un vrais hiver canadien, alors que sous ma cagoule je prie pour le réchauffement climatique.

<emb63 center>

Voilà ma vie exposé selon la norme ISO 1984. J’en attend autant des autres EPIVOYAGEUR.

Les bus

Pour ce déplacer dans quebec il faut utiliser les bus de la RTC (Réseau de Transport de la Capital). Bien entendu cela ne se passe pas comme en Françe.

#Le ticket Deux possibilité s’offre à nous pour acheter les tickets de bus. Acheter le ticket 2$25 chez un tabagie (bureau de tabac) ou un dépanneur (mini supermarché).Ou mettre exactement 2$50 dans une tirelire prêt du chauffeur qui ne peut pas rendre de monnaie. Je ne sais pas comment le chauffeur fait pour controler ce qu’on met, ils doivent les recruter chez les tireur d’élite de l’armée.

Ensuite si on veut faire une correspondance avec un autre bus il faut le préciser à la montée dans le bus et le chauffeur nous remet un joli ticket valable 90 minute. Chose dommage on ne peut l’utiliser que pour aller dans un sens, pas d’aller retour pour une petite course donc.

#Arrêter le bus A paris on a des boutons pour dire au bus de s’arrêter mais c’est pas pratique si on est assis prêt d’une fenêtre. Alors la RTC a mis une corde tous le long du bus relier à une cloche sur laquel on tire pour demander l’arêt. La question que l’on ce pose toujours c’est où est caché la cloche?

<53 center>

La dernière version de PHP sous Ubuntu

Sous ubuntu les paquets sont mis à jour que tous les 6 mois, cela peut vous gêner si vous souhaitez utiliser les dernières innovations de PHP. Par exemple sur edgy PHP est en version 5.1 alors qu’une version 5.2 qui apporte des nouvelles fonctionnalités comme les filter est disponible.

Heureusement il existe le dépôt dotdeb qui package en .deb les dernière version de PHP et MySQL.

Pour l’utiliser c’est très simple ajouter à votre /etc/apt/source.list les dépots qui se trouvent à cette adresse: http://dotdeb.org/mirrors.

J’utilise ce dépôt depuis plus d’un an et je n’ai jamais eu de problème avec ces paquets.

Tester l'existence d'une variable en Python

Lorsque l’on débarque de langage plus permissif que Python comme PHP ou Perl on est surpris lorsqu’en essayant de tester l’existence d’une variable avec un simple if le programme s’arrete.

if toto:
    print toto
Traceback (most recent call last):
  File "./test.py", line 4, in ?
    if toto:
NameError: name 'toto' is not defined

En Python on part du principe qu’il est plus facile de demander pardon que de d’obtenir la permission. En effet si vous voulez utiliser une variable, Python va devoir tester en interne si cette variable existe. Si vous testez l’existence de la variable avant le test sera effectué deux fois. Une perte de temps non? Python lève donc des exceptions en cas de problème.

Dans le cas qui nous intéresse il suffit donc de catcher l’exception NameError.

try:
  print toto
except NameError:
  print "Toto n'existe pas"

Vérification de syntaxe lors d'un commit SVN

Lorsque l’on travaille en équipe avec subversion le commit d’un fichier PHP syntaxiquement incorrect ne devrait jamais arriver, mais pourtant une erreur est vite arrivée. C’est pour cela, que j’ai configuré svn pour qu’il refuse les commit de fichier PHP avec des erreurs de syntaxe.

Pour cela on va utiliser l’option -l de PHP qui permet de vérifier la syntaxe.

Subversion possède un système de hook permettant de se brancher à diverses étapes d’une opération. Le hook qui nous intéresse est celui de pre-commit. Il se situe après le start-commit qui permet de verifier qu’une personne a le droit de commiter et avant le post-commit qui est lancée une fois que la révision a été ajoutée au SVN.

Un hook est un programme (un script shell suffit) qui reçoit de SVN des arguments en ligne de commande et qui renvoi le code d’erreur 0 en cas de succés et 1 sinon.

#Le hook de pre-commit Pour créer un hook de pre-commit allez dans le répertoire hooks de votre SVN sur le serveur et créez un fichier pre-commit avec les droits d’exécution.

Voici le contenu du fichier pre-commit pour la vérification de la syntaxe PHP:

#!/bin/sh

REPOS="$1"
TXN="$2"

changed=`$SVNLOOK changed -t "$TXN" "$REPOS"`
phpfile=`echo $changed | awk '*print $2*'`
if echo $phpfile | grep .php
then
    $SVNLOOK cat -t "$TXN" "$REPOS" "$phpfile" | php -l
    if [ $? -ne 0 ]
        then
        echo "Syntax error in $phpfile." 1>&2
        exit 1
    fi
fi

# All checks passed, so allow the commit.
exit 0