juin 23

Dans la guerre Internet Explorer contre Mozilla Firefox beaucoup de critères entres en jeux:

  • On dit que Firefox est plus rapide que Internet Explorer
  • On dit que Internet Explorer est moins gourmand en mémoire que Firefox
  • On dit que Firefox respecte les normes, contrairement à Internet Explorer.
  • On dit pas mal de choses, un peu de tout et parfois même du n’importe quoi.

J’aimerais apporter deux exemples simples :

1) Punycode

Hier, un ado me demande le nom d’un logiciel pour lire les dvd et divx. Je lui annonce VLC, ce à quoi il me répond :
“Je vais sur télécharger point  com ?”
Étantoccupé à autre chose, Je gromelle un “humm ouais”.
Quand au bout de deux minutes j’entends :
“je vais demander à mon père la carte bleue”
????? Je regarde et m’aperçois qu’il n’est pas sur
telecharger.com
mais sur
télécharger.com
lequel demande un numéro de carte bleu … ba bien sûr ….
Après s’être pris une claque derrière les oreilles, je lui explique la différences entre les deux urls.

S’il avait utilisé Firefox, il aurait pu se rendre compte de son erreur (s’il avait réfléchi aussi mais bon … c’est un ado … ).
En effet, lorsque que l’on tappe une url avec accents sur IE, elle ne sont pas traduite en leurs équivalents en “Punycode”, alors qu’avec Firefox elles sont traduites en Punycode.

Petit définition Wikipedia de “Punycode”:

Punycode (littéralement «code chétif») est une syntaxe de codage simple définie dans la RFC 3492 et conçue pour être utilisée en adéquation avec les noms de domaines internationalisés dans les applications les supportant (cf RFC 3490).

Voici deux screenshots pour illustrer, regardez bien les urls.


capture sans transcription punycode

capture avec transcription punycode

2) Pyshing, malware et tout leurs amis sympa

Petite définition de Wikipédia :

Pishing :
Un logiciel espion (en anglais spyware), mouchard ou espiogiciel, est un logiciel malveillant qui s’installe dans un ordinateur dans le but de collecter et transférer des informations sur l’environnement dans lequel il s’est installé, très souvent sans que l’utilisateur n’en ait connaissance. L’essor de ce type de logiciel est associé à celui d’Internet, qui lui sert de moyen de transmission de données.

Malware : Un logiciel malveillant (malware en anglais) est un logiciel développé dans le but de nuire à un système informatique. Les virus et les vers sont les deux exemples de logiciels malveillants les plus connus.

Qui n’a jamais reçu d’email de la banque avec pleins de fautes d’orthographe pour vite aller se loguer sur lecreditlyonnais.com@78.45.23.45 ou autre truc du genre ?
Pas mal à la mode aussi les fameux sites qui vous aident à découvrir quelles personnes vous “bloquent” sur msn …

Lorsque que l’on essai d’aller sur ces sites avec IE, pas de problème, pas d’avertissement. On y accède. Mais voici ce que l’on obtient avec Firefox :

capture de detection de malware et sypware avec firefox 3

Plutôt efficace non ?

Bref :  Firefox c’est bon, mangez en !

\\ tags: , , , ,

juin 18

Vous aviez toujours rêvé de savoir ce que le nom de votre dernière distribution Ubuntu veut dire en français ?

Voici les traductions :

Version Nom Nom en français
Ubuntu 4.10 The Warty Warthog le phacochère verruqueux
Ubuntu 6.06 LTS The Dapper Drake le canard pimpant
Ubuntu 6.10 The Edgy Eft la salamandre énervée
Ubuntu 7.04 The Feisty Fawn le faon courageux
Ubuntu 7.10 The Gutsy Gibbon le gibbon fougueux
Ubuntu 8.04 LTS The Hardy Heron le héron robuste
Ubuntu 8.10 The Intrepid Ibbex le bouquetin intrépide

Par contre, c’est à se demander ce qu’ils prennent chez ubuntu …

On peut jouer aussi ?

  • The Jagged Jaguar
  • The K….. Koala

Source : ubuntu-fr.org

juin 05

Depuis le temps que ca me démangeais, j’ai enfin mis un compteur live sur http://www.odowa.com/

Vu que la méthode du random est déjà utilisée par Yakaz, il me fallait trouver une autre solution: merci Ajax.PeriodicalUpdater.

Bien sûr, un update toutes les secondes c’est un peu optimiste, surtout sur une dedibox, mais bon :)

\\ tags: , ,

mai 18

L’AFUP organise samedi 07 juin son premier PhpCamp qui se tiendra à la Cantine de 10h00 à 18h00.
Comme vous le savez, les barCamp ne sont pas vraiment des rendez vous où vous pouvez vous coller au fond, près du radiateur mais plutôt des journées de rencontres productives.

80 Places était dispo lors de l’ouverture des inscriptions

Retouvez la page barCamp de ce PhpCamp.

\\ tags: , ,

mai 05

Je me suis mis à rails depuis quelques semaines et pour être franc, je galère pas mal sur la syntax ruby.
L’utilisation du framework rails demande très peu d’écriture de code ruby complexe mais quand ca arrive… je lutte :)

Vous connaissez surement le site php.net et sa syntaxe particulière qui vous permet de trouver de la doc rapidement ?

ex: php.net/myFunction => vous redirige vers la doc de la fonction myFunction.

En PHP on peut très difficilement se passer de doc puisque la coutume veut que les haystack et les needle changent parfois de place ;) .

J’ai découvert récemment railsforphp.com qui vous donne la correspondance php <=> rails de pas mal de commandes

http://railsforphp.com/myFunction permet d’afficher la page qui va vous montrer comment faire en ruby pour avoir l’équivalent de myFunction en php.

Comme bien souvent un screenshot (cliquable) est plus parlant:


capture de railsforphp.com

\\ tags: , , , , ,

mai 04

Voici un outil très bien conçu et absolument indispensable quand vous avez pas mal de regex à écrire , il permet, via une interface simple et pratique de tester votre regex dans différents langages tel que PHP, perl, Python et Javascript.
Ça permet réellement de gagner du temps.

Voici le fonctionnement :

  • Vous choisissez le langage dans lequel votre regexp sera utilisé.
  • Vous entrez le texte à comparer ou reconnaitre.
  • Vous choisissez vos options
  • Vous entrez votre regexp.

Lors de la saisie du regexp:

  • Les correspondances dans votre texte “source” sont mises en surbrillances
  • La ligne de code, prête à être copiée dans le langage choisi, s’affiche.
  • Le résultat de l’opération effectuée par cette même ligne de code s’affiche.

Voici une petite capture (cliquable):


capture de regex.larsolavtorvik.com

Bon, c’est plus simple d’aller voir par vous même en fait :
regex.larsolavtorvik.com

\\ tags: , , , , , , , ,

avr 22

Voici un petit script de surveillance des logs apache dont je me sert pour vérifier de ne pas me faire leacher :

#!/bin/bash

HIT_MAX=100;
LOG_PATH="/var/log/apache2";

for i in `sed -e  's/^\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\s.*$/\1/' \
  $LOG_PATH/*.log | grep -v '[::alpha::]'  | sort -u`
  do
    HIT=`grep  $i $LOG_PATH/*.log | wc -l`
    if [ $HIT -gt $HIT_MAX ]; then
      echo "$HIT times  ; $i" ;
    fi
done;

Pour résumer, ce script envoi simplement une liste d’ip trouvé >HIT_MAX dans LOG_PATH/*.log comme suit:

153 times ; 80.154.37.173
150 times ; 81.251.61.124

\\ tags: ,

avr 21

Pour avoir vu pas mal de pratiques différentes sur l’utilisation de librairies externes dans un projet, voici un memo sur l’utilisation de repository externes : svn externals

Les svn externals permettent d’utiliser un repository de composants externes à votre projet et d’en utiliser le versionning. Vous pouvez choisir de mettre à jour ou non ce composant externe quand bon vous semble. Vous maitrisez ainsi l’évolution de vos composants indépendamment ou non du versionning de votre projet.

Comme pour tout projet versionné, vous pouvez figer (svn tag) votre application et les composants externes à une release.

Vous souhaitez par exemple ajouter MyPlugin dans votre projet :

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT"

ou

svn propset svn:externals "MyPlugin URL_DU_REPOSITORY_DU_COMPOSANT" AllPlugins/

Voici ce que ca donne, par exemple, avec le composants simple_captcha pour Ruby:

svn propset svn:externals "simple_captcha svn://rubyforge.org/var/svn/expressica/plugins/simple_captcha"

Vous pouvez vérifier la création de ce lien avec un

svn status

et devriez voir la lettre X devant le répertoire crée (ici, MyPlugin). Faite ensuite un

svn up

pour aller chercher les fichiers de ce composant externe dans le repository:

Fetching external item into 'MyPlugin'
External at revision X.
\\ tags: , , ,

avr 08

Parce qu’il me faut toujours 2 heures pour le retrouver, cette fois je le note :)

find . -type f -regex ".*\ .*" \
                -exec bash -c 'echo "$1";mv "$1" "${1// /-}"' '{}' '{}'  \;

Ceci vous permet de trouver et de renommer un fichier avec un espace.
Ici on remplace l’espace par un tiret.

\\ tags: , , , , , , ,

fév 24
for i in `find -iname *.zip `; do unzip -o $i -d `dirname $i`; done;
\\ tags:

déc 01

J’ai souvent entendu des prestataires expliquer au client que la migration d’un nouveau site peut être longue à cause du temps de propagation DNS, petite explication:

Les serveurs DNS (domain name serveur) ou serveurs de noms sont (en gros) des bases de données où sont stockées les binômes adresseIp/nom de domaine, cela afin de retrouver l’ip quand on à le domaine et inversement. Quand vous tappez un nom de domaine dans votre navigateur, un serveur DNS est interrogé (ou un cache dns) pour savoir sur quelle machine (adresse ip) il faut taper.

Il existe surement des milliers de serveurs DNS dans le monde, et ceux-ci fonctionne en mode asynchrone.
Lorsque vous modifiez les DNS d’un nom de domaine, la modification n’est bien entendu pas prise en compte directement sur tous les serveurs DNS, le laps de temps qui défini chaque rafraichissement de ces données DNS est le TTL (time to live) du DNS.
Il est fortement conseillé de baisser ce TTL lorsque vous effectuez une migration mais attention, il ne fait pas le faire à la dernière minutes.
Si votre TTL est de 24 heures (valeur moyenne) cela veut dire qu’au pire des cas, vos modifications peuvent être prisent en compte 24h après.
N’oubliez pas aussi que votre machine (windows, linux ou mac) possèdent leurs propres cache DNS.

Ceci étant, afin de contourner tout cela de manière provisoire je vous propose d’utiliser le mod_proxy d’apache afin de faire des migrations en prod en un clin d’oeil et parfaitement contrôlées.

Ingrédients:

- Apache2 (ca doit fonctionner avec apache 1.3.x)

- mod_proxy (sous debian, sudo a2enmod proxy, puis un reload d’apache)

Recette:

Le but ici est de remplacer le contenu d’un site par un nouveau contenu, tout deux sur des urls différents sans que l’utilisateur ne s’aperçoit de rien.

Vous avez votre ancien site qui va bientôt prendre sa retraite : www.monsite.com

Vous avez votre nouveau site dont l’url sera au final www.monsite.com mais que vous également avez rendu accessible sur une autre url (alias) parce que c’est mieux pour ce qu’on veut faire ex: monsite.maboite.org

Après s’être assuré que le mod_proxy est activé (voir ingrédients) il vous suffit d’ajouter ceci dans votre conf apache (ex /etc/apache2/sites-enabled/monsite.com) :


  ServerName www.monsite.com
  ProxyPass / http://monsite.maboite.org/
  ProxyPassReverse / http://monsite.maboite.org/

    Order deny,allow
    Deny from all
    Allow from all
  

Après un reload d’apache, l’url www.monsite.com devrais afficher le même contenu que monsite.maboite.org.
Voila, bon appétit.

\\ tags: , , ,

nov 30

Petit memo perso, transformation d’une phrase en url (avec accents puisque maintenant google et les dernières navigateurs acceptent).

function urlize($string){
  $find   = array(
    '/([\[\(].*[\]\)])/'  # bracket and co
    ,'/[\s]/'              # space and multispace
    ,'/[…,!?.;:“’”\’"&+]/'      # blacklisted chars
    ,'/[-]+/'              # multi -
    ,'/(^-)/'              # - as begin
    ,'/-$/'                # - as end
  );
  $repl   = array('','-','-','-','','');
  return  preg_replace($find, $repl, $string);
}

Comme souvent, j’ai surement oublié deux ou trois caractères à bannir donc à compléter suivant les utilisations.

\\ tags: , , , ,

L'inventeur de l'hydrogommage.

Voici les nouveaux sites qui parlent de l'hydrogommage: hydrogommage.org, procédé breveté qui permet de nettoyer en douceur toutes surfaces grâce à une faible pression et un fort débit d'eau. Sur ce site, vous trouverez des informations concernant le brevet de l'hydrogommage.

Pour ce qui est de la technique de l'hydrogommage, vous pouvez vous rendre sur hydrogommage.net et vous saurez tous sur l'hydrogommage.

Logiciel de partage d'agenda, logiciel de livraison, logiciel de courtage, logiciel de gestion.

Voici un site pour trouver des logiciels pour la gestion d'agenda et autres logiciels : www.softpme.fr

Vous cherchez un plombier pour une fuite ou des travaux de plomberie ?

Voici un nouveau site, un plombier.com rempli d'informations sur les plombier qui vous permet d'en savoir un peu plus sur les devis de plombier ou sur les différents types de factures.

Vous y trouverez aussi plein d'informtion sur les formations pour devenir plombier.