• Vous êtes ici :
  • Accueil
  • >
  • François Viens

Blogueur

« François Viens »

François Viens
François Viens
23 février 10
  • 5
  • 0

Quelques bases du URL Rewrite

Pour des questions SEO, il est intéressant de maîtriser certaines techniques de réécriture d'adresses sous Apache avec les fichiers .htaccess. Si l'adresse ne change pas dans la barre d'adresse du navigateur, on parle de redirection interne. Si l'adresse change, on parle de redirection externe, souvent des redirections retournant le code HTTP 301 indiquant que la ressource est déménagée à la nouvelle adresse de façon permanente. Les redirections internes sont les plus complexes à comprendre car intangibles, elles permettent de créer une structure complètement virtuelle pour un site Web qui lui serait généré à partir du même fichier PHP. Wordpress en est un bon exemple!

Il faut garder en tête que le mod_rewrite est appelé chaque fois qu'une demande HTTP est faite sur un fichier. Il faut donc être concis et s'assurer des limites de notre fichier .htaccess pour éviter des comportements incompréhensibles. Le plus complexe dans le URL Rewriting c'est les expressions régulières. Plusieurs règles de base peuvent être mises en place sans trop de connaissance en expressions régulières mais la science des URL Rewriting prend toute son ampleur lorsqu'on y ajoute un peu de "pattern matching"!

Le texte ci-dessous représente principalement une traduction des passages les plus intéressants des 2 sources citées à la fin de l'article.

Contenu de base du fichier .htaccess

Un fichier .htaccess de réécriture d'adresse de base devrait contenir ces lignes. La ligne Options +FollowSymlinks n'est que très rarement utile car elle permet de suivre les liens symboliques à l'intérieur des bornes définies par le <Directory> de votre serveur Apache. En contrepartie, chez certains hébergeurs, la présence de cette ligne donnera une erreur interne de serveur (500). La solution la plus simple est de laisser la ligne si le serveur ne retourne pas d'erreur, s'assurant que d'éventuels besoins seront comblés automatiquement ou de commenter la ligne si le serveur retourne une erreur. Pour faire un commentaire dans un fichier .htaccess, ajoutez simplement un # en début de ligne.

Options +FollowSymLinks
 
RewriteEngine On
RewriteBase /

Dans le cas où votre projet est dans un sous-répertoire, il faut ajuster le RewriteBase en conséquence pour que les règles commencent à l'intérieur de ce répertoire.

Flags

Mais qu'est-ce que c'est ces lettres entre crochets []? C'est des "flags" indiquant certaines instructions supplémentaires au moteur de réécriture d'adresse d'Apache. En voici une liste des principaux "flags" :

        
  • R=code : Indique une redirection. Le code est le code HTTP que vous désirez retourner. Souvent le code 301 est utilisé pour indiquer que l'adresse demandée n'existe plus et a été remplacée par la nouvelle adresse. Si aucun code n'est spécifié, le code 302 sera retourné, celui-ci indiquant qu'il s'agit d'une redirection temporaire.
  •     
  • L : Indique que si cette règle est respectée, ne pas tenter d'autres règles, arrêter immédiatement avec celle-ci. Très utile pour permettre de mettre les règles les plus précises en début de fichier allant vers les moins précises et arrêter le traitement aussitôt qu'une règle correspond à l'adresse demandée.
  •     
  • NC : Fait en sorte que la règle ne doive pas nécessairement respecter la case (majuscule, minuscule)
  •             
  • QSA : Permet de conserver les paramètres d'une adresse et d'en ajouter d'autres. Par exemple, avec la règle suivante RewriteRule fr/nouvelles.html$ nouvelle.php?lang=fr , si l'URL demandé est fr/nouvelles.html?page=2 , nouvelle.php n'aura pas accès à la valeur du paramètre page, seulement la valeur de lang. Si au contraire on ajoute [QSA], les paramètres lang et page seront disponibles dans le fichier PHP.
  •     
  • S=num : Permet de sauter les "num" prochaines règles si la règle en cours est respectée. Permet de faire une sorte de IF ELSE bouetteux... la dernière règle du premier S étant S=X, X étant le nombre de régles à sauter dans la portion "else".
        (if)
        RewriteRule ... [S=2]
           RewriteRule ...
           RewriteRule ... [S=1]
        (else)
           RewriteRule ...
        (endif)
        Lecture normale des règles suivantes...    
  •     
  • NE : Permet d'éviter d'escaper des caractères spéciaux lors d'une redirection ce qui arrive automatiquement sinon. Ainsi, RewriteRule /test/(.*) /page?q=repertoire\%3d$1 [R,NE] redirigera '/test/bobo' sur l'URL suivante '/page?q=repertoire=bobo'.
  •     
  • N : Permet de relancer le traitement des règles de réécriture, mais pas avec l'URL de départ mais plutôt avec l'URL transformé par les premiers passages... À éviter, risque de boucles infinies.
  •     
  • F : Permet de forcer le retour d'une erreur HTTP 403 : Forbidden sur une page ou un ensemble de page respectant une RewriteConds
  •     
  • B : Apache traduit les caractères "url escapés" en caractère standard. La règle RewriteRule ^(.*)$ index.php?show=$1 réécrira /C++ vers index.php?show=/C++ mais va également réécrire /C%2b%2b vers index.php?show=/C++ car les + auront été "dé-escapés"! L'utilisation du flags B vous assurera que /C%2b%2b deviendra index.php?show=/C%2b%2b et /C++ restera index.php?show=/C++.
  •     
  • C : Permet de lier une règle avec la règle suivante et ainsi de suite si le C est présent sur les règles suivantes. Si la règle est respectée, le traitement continue de façon normal et le flag est ignoré. Si la règle n'est pas respectée, toutes les règles liées à celle-ci ne seront pas considérées.
  •     
  • CO=NAME:VAL:DOMAIN[:LIFETIME[:PATH[:SECURE[:HTTPONLY]]]]' : Permet de créer un cookie! Il s'agit d'une fonctionnalité intéressante mais rarement utilisée... Le prochain développeur à travailler sur votre projet risque de chercher l'emplacement de la création du cookie longtemps dans le code! NAME est le nom du cookie, VAL sa valeur, DOMAIN le domaine ".test.com" sur lequel le cookie doit être actif, LIFETIME la durée de vie en minute, PATH le répertoire où le cookie est effectif, SECURE "true" ou "1" fait en sorte que le cookie est effectif seulement sous https, HTTPONLY "true" ou "1" fait en sorte que le cookie n'est pas manipulable par du javascript.
  •     
  • NON COUVERT ICI : DPI, E=VAR:VAL, G, H=Content Handler, NS, P, PT, T

Forcer la présence des www

Bien que les www. ne sont pas du tout nécessaires pour qu'une page Web fonctionne, les internautes néophytes sont tout de même habitués à leur présence. Le plus important à retenir est que www. agit de façon similaire à un sous-domaine (site.domain.com). D'avoir du contenu accessible avec et sans les www. peut causer un problème de dupplication de contenu ce qui n'est pas idéal pour les moteurs de recherche. Une façon d'éviter est de regarder combien de pages sont présentes dans les index des moteurs de recherche avec et sans les www. (site:domain.com). S'il y a plus de pages avec www., forcez la présence du www., sinon, retirez les www. . Dans les 2 cas, faisant des redirections retournant le code HTTP 301 (déplacement permanent), les adresses fautives seront éventuellement remplacées dans les index des moteurs de recherche.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Retirer les www

Il est parfois préférable de se départir des www pour rendre les adresses plus courtes. En tant que tel, les www. n'ajoute aucune valeur. Si un site n'est pas déjà bien référencé dans les moteurs de recherche, il peut être intéressant de forcer le retrait des www.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Forcer la présence du www sans "hardcoder" le domaine

Il peut parfois arriver que plusieurs domaines soient effectifs sur un même compte d'hébergement, bien que c'est en gérale une mauvaise pratique que le même contenu puisse être accessible à partir de différents noms de domaine. Dans un tel cas, plutôt que d'inscrire le nom de domaine dans la règle forçant la présence du www., une règle générale peut être mise en place :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.[a-z-0-9]+\.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+\.[a-z0-9]{2,6})$     [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Arrêter des loops de redirections

Bien que non recommandé, il peut arriver que nos règles créées des boucles infinies de redirections sur le serveur. Partant du principe que chaque appel HTTP fait une requête au fichier .htaccess, vous pouvez altérer ce fichier avec le code suivant pour arrêter la boucle.

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

Déjouer la cache des navigateurs

Trop souvent on doit dire "Avez vous vidé votre cache?"... Une façon de régler ce problème est d'utiliser une règle de réécriture d'adresse permettant de conserver toujours le même nom de fichier pour les feuilles de styles et les fichiers javascript sur le disque mais d'ajouter un numéro de version dans le nom de fichier dans le HTML. Ainsi /skin/js/script-VERSION.js pointe vers /skin/js/script.js et /skin/css/styles-VERSION.css vers /skin/css/styles.css

RewriteRule ^skin/(js|css)/([a-z]+)-([0-9]+)\.(js|css)$ /skin/$1/$2.$4 [L]

Retirer le Query_String

Il est très fréquent de voir des sites pour lesquels page.html et page.html?param=bobo affiche le même contenu... Ceci peut causer des problèmes de contenu duppliquer et nuire au référencement de votre site Web. Une façon de régler le problème est de se départir du QUERY_STRING et il suffit simplement d'ajouter un ? à la fin de votre règle.

RewriteRule bobo.html$ bobo.php? [R=301,L]

Documents sauvegardés en base de données

Vous pouvez simuler la présence d'un document PDF ou Word ou autres dans un répertoire donné et utiliser cette règle pour appeler un script en charge de servir le document en provenance de la base de données /getdoc.php

RewriteRule ^docs/(.+)$  /getdoc.php?file=$1.pdf [L,NC,QSA]

Afficher par défaut dans la langue du visiteur (navigateur)

Il arrive très souvent qu'on doive afficher le contenu d'un site multilangue dans la langue du navigateur du visiteur par défaut. Une façon d'y parvenir est d'utiliser le "flag" ENV permettant d'assigner une variable d'environnement.

RewriteCond %{HTTP:Accept-Language} ^.*(es|fr|en).*$ [NC]
RewriteRule ^(.*)$ - [env=prefer-language:%1]

On est fermé! Permettre de bloquer l'accès à un fichier à une période donnée de la journée.

Concept à utiliser que si nécessaire... Rendre indisponible du contenu de votre site à une certaine heure pourrait faire en sorte que ce contenu soit retiré des index des moteurs de recherche si ceux ci visitent votre site à cette heure.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# S'il est 17h, on ferme
RewriteCond %{TIME_HOUR} ^17$
RewriteRule ^.*$ - [F,L]

Changer les underscore (_) par des tirets (-)

Pour des raisons SEO, les tirets sont plus efficaces que les underscores car ils permettent de séparer une chaîne de caractères en plusieurs mots, plutôt que d'être considéré comme un seul mot. Pour cette raison, l'utilisation de underscrore dans les URL est généralement à éviter. La régle suivante fonctionne pour des URL présentant jusqu'à 5 underscores...

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
 
RewriteRule !\.(html|php)$ - [S=4] # on skip les 4 règles suivantes si ce n'est pas un appel à du HTML ou PHP
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
 
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://domain.com/$1 [R=301,L]

Réduire le vol de bande passante

Il n'est pas rare de voir des sites faire référence directement à une image, une animation flash ou autre mais de façon intégrée à leur contenu. Le résultat est que vous fournissez la bande passante pour le média transmis.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/.*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ /dev/null [R=302,L]

Redirection pour une adresse IP précise

Il arrive souvent qu'on doive ajouter une règle dans un fichier .htaccess et il peut être tentant de la faire directement sur le serveur... Bien entendu, dans certains cas, une erreur de manipulation peut causer des problèmes! C'est pourquoi il peut être intéressant de tester une règle en spécifiant notre adresse IP dans une condition préalable... Ainsi, seulement les requêtes en provenance de cette adresse IP seront considérées.

RewriteCond %{REMOTE_ADDR} ^1\.1\.1\.1$
RewriteRule ^$ http://www.domain.com/testderedirectionjustepourmoi.html? [L]

Contrôle du comportement du HTTPS

Je trouve pratique qu'une section sécurisée d'un site ne soit pas simplement sur https://www.lesite.com... Par exemple, dans le cas de paiement en ligne pour une boutique, l'utilisation d'un sous-domaine secure.lesite.com, lui étant disponible seulement sous HTTPS me paraît un scénario beaucoup plus sympathique... Les règles suivantes permettent d'avoir un contrôle sur une zone bien précise pour le HTTPS et s'assurent que cette zone n'est disponible qu'avec HTTPS

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} secure.lesite.com(.*)$
RewriteRule ^(.*)$ https://secure.lesite.com/$1 [R=301,L]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^secure.lesite.com
RewriteRule ^(.*)$ https://secure.lesite.com/$1 [R=301,L]

Page 404

Le fichier .htaccess peut également servir à définir une page d'erreur 404 par défaut.

ErrorDocument 404 404.html

Sources

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
19 octobre 09
  • 11
  • 0

Drupal vs Typo3

Voilà déjà plusieurs fois que mon collègue et moi avons des discussions par rapport à différentes solutions de gestion de contenu (CMS) Open Source. Chez QuiboWeb, notre équipe est spécialisée en programmation Web, majoritairement en PHP 5 orienté objet et MVC (Modèle Vue Contrôleur), utilisant Smarty et XHTML et CSS pour le "front end".

À partir du moment que tu es spécialisé en PHP, tu peux intervenir dans plusieurs plateformes Open Source codées en PHP. Avec les années, nous avons donc pu développer une expertise avec différentes solutions mais certaines solutions nous plaisent davantage...

Dans le dernier mois, à 2 reprises un appel d'offre précisait l'utilisation de Typo3. Préférant Drupal, cette demande autour de Typo3 a piqué notre curiosité. Quand commencer un projet avec Typo3? Travailler sur un projet existant qui a déjà Typo3, ok... Mais pourquoi commencer un projet de 0 avec Typo3? Au Québec, la technologie Typo3 est particulièrement populaire au niveau gouvernemental et part le fait même, dans la ville de Québec. À Montréal, 1 seul joueur s'affiche clairement comme expert en Typo3 (Googlez le, je mets pas de lien!)


Mon collègue a alors sorti de son sac, un document PDF rédigé en 2008 comparant les CMS Open Source. Je ressors quelques statistiques pour le plaisir, fidèle avec le titre de mon billet Drupal vs Typo3 !


Ressources disponibles

Tout le monde sait qu'au niveau d'un projet Open Source, le nombre de ressources compétentes disponible, on l'appel plus souvent "La communauté", est très important. Dans le document on voit que pour Drupal, 933 ressources disponibles sur eLance.com et 353 sur Guru.com alors que pour Typo3, seulement 71 ressources disponibles sur eLance.com et 34 sur Guru.com

Livres publiés

La documentation disponible autour d'une solution Open Source en dit long sur sa notoriété dans l'industrie. Drupal, en 2008, avait 12 livres publiés dont 7 dans la dernière année (2007 à 2008). Typo3, pour sa part, en avait 7 de publiés et 0 dans la dernière année.

Taux d'adoption

En 2008, Drupal était dans les "Leaders" alors que Typo3 était dans les "Movers", ce qui est tout de même pas si mal, n'étant pas dans les "Laggards"!

Inbound Links

Intéressant de comparer le nombre de liens entrant sur les sites Web des 2 solutions! La théorie des grands nombres supposent que si on a beaucoup de liens et qu'on n'a pas fait faillite, c'est que les gens doivent parler en bien de nous! En 2008, 163 000 liens pour Drupal et 3810 liens pour Typo3.

Positionnement dans les moteurs de recherche

Si je cherche "content management system", quelles solutions sont les mieux positionnées? Drupal était là, mais pas Typo3!

Position dans Alexa

Bon, je le mentionne pour prouver mon point, mais Alexa, ça vaut ce que ça vaut! Drupal occupait la position 1223 au palmarès alors que Typo3 occupait la position 6861. Quelques mois plus tard, la position de Typo3 dans ce palmarès avait baissée.

Bruit

Les gens parlent de quelle plateforme sur Internet, Google et compagnie? Drupal en 3e position et Typo3 en 5e position. Au niveau de Twitter, des blogues, des "Groups", des prix et des médias, Drupal est également mieux positionné que Typo3...

Au niveau de la marque ("Brand"), Drupal a de l'avance... Au niveau de la convivialité de l'interface, mon avis personnelle est que Drupal a l'avance...

Vous êtes fous de Typo3 et lisez ce billet, vos commentaires sont appréciés... N'oubliez pas de consulter le PDF avant de me sauter dessus!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
23 septembre 09
  • 5
  • 0

C'est l'Internet ça monsieur

Puisque je suis en vacances et que l'équipe chez QuiboWeb est trop
occupée pour faire des articles, voici une vidéo que mon collègue
Hugues Beaumont m'a fait connaître par son Twitter . Le
gars parle de l'Internet sans pouvoir le nommé puisque la vidéo date de
1969... Vraiment impressionnant, il avait prédit les grandes lignes de
l'Internet, même un peu le volet 2.0 en disant que les gens y
participeraient contrairement au côté passif de la télévision...
BRILLANT!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
21 août 09
  • 5
  • 0

Service à la clientèle - Rona

Tout le monde le sait, le service à la clientèle c'est la clef pour conserver sa clientèle... Bien que tout le monde le sache, les décideurs/administrateurs veulent que l'image de leur entreprise soit bonne au niveau du service à la clientèle, mais il y a toujours du staff qui s'en fout...et c'est dommage...

Hier, je vais acheter des moulures au Rona l'Entrepôt à St-Bruno... jusque là, tout est normal! J'entre avec en tête que je vais sortir avec seulement 4 ou 5 moulures de 8 pieds de long, donc pas besoin de panier, je suis capable de prendre en charge 4 ou 5 moulures!! En direction de la caisse, je réfléchis à ma scie pour couper mes moulures... AH! Ma scie est brisée, j'en avais acheté une cheap, ce qui me rappelle toujours une "quote" que j'aime bien : "On est trop pauvre pour acheter du cheap"... En achetant du cheap, on doit acheter de nouveau rapidement... Je devrais donc regarder pour une  bonne scie une fois pour toute... Une Dewalt ça c'est bon... même si c'est très dispendieux...

Je suis donc stationné devant ma future scie dans le département des outils, avec mes moulures dans les mains... donc les mains pleines... La dame en fonction est dans l'échelle à côté de moi et place des boîtes dans le storage au dessus des tablettes de présentation... Après quelque temps je me convaincs de "la déranger" pour lui demander de l'aide... Je lui indique la scie que je veux acheter... Elle me regarde froidement et me dit : Je peux pas lever ça, il faut que tu ailles te chercher un panier d'abord... mais pas les paniers normaux... les plateformes qui elles sont dehors! Surpris et bouché à la fois, je me dirige vers les caisses, négocie avec la caissière qui elle était très sympathique, pour laisser traîner mes moulures quelque part près des caisses. Je sors dehors. Je prends une plateforme et je fais le tour pour rentrer à nouveau car on sait que dans les Rona, les sorties sont loin des entrées. Je reviens aux outils. La dame n'est plus là. Je prends la scie. Je la mets sur ma plateforme. Je vais aux caisses. Je paye. Je pars.

C'est quoi ton problème François? J'ai déjà travaillé 1 an dans un Rona... On m'avait appris que le client est roi. Si le client veut acheter quelque chose, facilite lui la vie... trouve lui son panier. Si c'est tranquille, ce qui était le cas, aide le jusqu'aux caisses. Souhaite lui une bonne soirée... Si tu n'es pas physiquement capable de l'aider, call un kid! Un voltigeur comme ils les appellent... Il va venir forcer lui... Moi je suis un gros bonhomme... mais si ça avait été une petite dame? Elle aurait dû s'arranger seule aussi?

Le service à la clientèle pour une entreprise c'est pas facile à gérer... car une seule personne qui ne pousse pas dans le bon sens fait que l'expérience client peut être décevante... Je ne suis pas un mauvais client et je ne suis pas mauvais en service à la clientèle non plus... il suffit de comprendre la situation de l'autre et de bien expliquer notre situation... ensuite s'il y a mauvaise foi, ça arrive que le service à la clientèle coupe sec... mais bon... Elle voyait bien que j'avais les mains pleines avec mes moulures... je voulais quand même lui acheter la scie... j'étais pas un client pour un paquet de gomme, c'est plusieurs centaines de $ que je dépensais... ça n'aurait pas été très difficile pour elle d'être sympathique, sourire, d'appeler un voltigeur pour aider, apporter tout ça à la caisse et le tour est joué!

J'en viens donc à une conclusion pour les employeurs...

  • Enseignez la courtoisie à votre monde
  • Assurez-vous que vos gens sont passionnées par leur travail, sinon ça paraît tellement qu'ils s'emmerdent que c'est désagréable
  • Si vous avez des gens ultras compétents mais pas sympathiques, cachez les
  • Surveillez... c'est pas tout le monde qui va s'en plaindre... ils vont juste garder ça en dedans et acheter ailleurs

On chiale souvent contre les magasins à commission... Dans ce cas-ci, elle se serait forcée le cul pour me vendre ma scie et bien me servir!


  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
10 août 09
  • 21
  • 0

Le "best effort", ça existe encore?

Avec les années d'expérience, j'ai eu l'opportunité de travailler avec plusieurs personnes, clients, co-équipiers et partenaires d'affaires sur des tonnes de projets de développement Web. Avec un peu de recul, on arrive souvent au même constat :

  • le projet est toujours plus long que prévu
  • c'est rarement directement la faute de l'équipe

Plusieurs raisons expliquent ce problème.

  • Le Web est un domaine très large avec plusieurs disciplines
  • Bien que le client pense connaître le Web, il le connaît très peu
  • On devrait faire le projet avant de faire le projet pour s'assurer que tout est bien compris
  • Le projet Web n'est souvent pas prioritaire pour le client sauf la semaine avant le lancement officiel
  • Étant un domaine très compétitif, pour conserver sa clientèle, il faut être très gentil = accepter des ajustements = plus de travail = plus de temps

MAIS LE BEST EFFORT N'EXISTE PLUS!

Bien que toutes les bonnes intentions soient en jeux, malgré l'attente interminable de feedback du client, malgré l'augmentation de la charge de travail sans nécessairement d'augmentation de frais, si le projet dépasse, ça ne prend pas de temps qu'on se le fait dire...

C'est dommage car :

  • L'équipe met beaucoup d'effort dans la réalisation
  • L'équipe a recommencé plusieurs fois la même chose pour en arriver précisément au résultat demandé
  • L'équipe s'essouffle sous la pression des différents niveaux
  • L'équipe désire elle aussi terminer le projet dans les plus brefs délais
  • Du temps est perdu à justifier l'injustifiable

Résultat des courses, le projet est livré et le client met plusieurs semaines avant de donner son accord à la mise en ligne, ce qui pressait ne presse plus, mais l'équipe Web perd de son lustre.

Il me semble que dans plusieurs domaines on est prêt à attendre... même dans des domaines où il n'y a rien de "sur mesure", alors que sur le Web, souvent, tout est fait sur mesure pour bien respecter les besoins précis du client....

Voilà une réflexion personnelle... elle ne reflète pas la totalité des projets, heureusement, je serais intéressé d'avoir l'avis de d'autres développeurs Web en commentaire!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
31 juillet 09
  • 4
  • 0

Internet est plein de gens créatifs

En faisant un peu de ménage dans mes fils RSS je suis tombé sur ce vidéo à partir du blogue : Conception Pourquoi Pas

Je suis toujours aussi impressionné de la créativité des gens.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
30 juin 09
  • 25
  • 1

Montée de lait sur des petites choses de la vie

Aujourd'hui je suis tombé sur cet article à partir de Twitter : La grande liste des petites choses insupportables

Moi aussi je veux chialer! Moi aussi j'ai des choses à dirent...

1 - Les passages à piétons


IL FAUT ARRÊTER S'IL Y A UN PIÉTON! Même si c'est en plein milieu de nul part... Puisque personne ne respecte cette règle de la sécurité routière, c'est rendu que c'est dangereux de la respecter car à chaque fois que je m'arrête, je me fais presque rentrer dedans et les cons klaxonne en faisant des gestes de bras comme si c'était moi le cave... grrrrr.

2 - Paniers à l'épicerie

Rendu aux caisses à l'épicerie, il vous reste juste 20 pieds à ROULER votre panier pour le ranger au bon endroit, souvent sur le bord de la porte de sortie en plus.... pourquoi le laisser traîner en plein milieu de la place...

3 - Place de stationnement

Dans ma petite ville, il y a un propriétaire d'une Honda Accord qui se stationne volontairement, et ce à chaque fois et à chaque commerce, sur la ligne entre 2 places pour éviter que son voisin soit trop proche... C'EST UNE HONDA ACCORD, COME ON! Peut-être pour une Ferrari ou une NSX mais pas une Honda Accord, c'est un manque de respect...

4 - Service à la clientèle
Dans n'importe quel commerce, souvent chez les jeunes employés, quand arrive le temps de payer, que le caissier scanne mes items un par un et continue ses multiples discussions avec ses amis caissiers ou autre, je trouve ça pas chic... dis moi bonjour, lance moi un sourire, quand je vais sortir du magasin, "criss" toi de moi... mais pas quand je suis dans ta face...

5 - Les comptes de "guidounes" sur Twitter

Je comprends que le sexe est omniprésent sur Internet mais j'ai honte que 20% de mes followers soient des comptes de "guidounes"... En passant, j'ai lancé le 20% comme ça... si vous êtes un follower et que pour atteindre 20% il faudrait que vous soyez une "guidoune" ne changez pas votre avatar pour autant!

6 - Outsourcing
Par courriel ce n'est pas si mal mais au téléphone ça se corse... Mon principal problème c'est que les gens qui me téléphonent ne parlent généralement pas bien anglais et pas du tout français... Je suis ouvert à écouter des offres et à évaluer la valeur de celles-ci, mais donnez moi des outils pour vous comprendre. Et si vous fonctionnez par courriel c'est super mais n'écrivez pas à toutes les adresses courriels que vous trouvez, à partir du site, des fiches whois des noms de domaine et tout le truc... ça ressemble alors beaucoup à du spam et je ne lis pas.

7 - Les propriétaires du Lightning de Tempa Bay

Je pense que celle-ci est évidente, du moins pour les amateurs de hockey!

8 - L'impression de relevé au guichet automatique
Grrr... Pourquoi?

9 - Les annonces à CKAC Sport

Oups j'ai déjà eu ma montée de lait ici : Publicité radio... ça craint

Ça fait du bien!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
12 juin 09
  • 9
  • 0

BrickBreaker sur BlackBerry est un jeu pour décideurs en TI

C'est ce que j'ai affirmé simplement sur Twitter en début de semaine mais voilà le moment idéal d'expliciter d'avantage mon propos!

En 2009, on ne peut plus vraiment passer à côté, les décideurs en TI ont en leur possession des téléphones intelligents comme les appellent les distributeurs de service mobilité. C'est donc la base pour appuyer mon affirmation initiale!

Système de points et niveaux

Le défi de tous les jours d'un décideur est d'atteindre de nouveaux niveaux au point de vue "business" et d'augmenter la rentabilité/profitabilité de ses activités.

Goodies

Ceux qui ont déjà joué à ce jeu sauront que des "goodies" tombent parfois des briques que l'ont vient de fracasser. Il faut savoir maximiser les prises sans risquer de tomber dans les pièges de certains items (Pivoter par exemple grrr!)... On peut faire le parallèle avec certains projets... faciles à décrocher mais tournent au cauchemar par la suite...

Rapidité

Plus vous prenez votre temps pour terminer un tableau, plus la pression se fait sentir car les briques descendent à chacun de vos gestes! Plus ça descend, plus les rebonds sont rapides et plus vos gestes doivent être efficaces pour éviter la perte de contrôle... les fameux "deadline"...

Choix déchirants

Une brique libère une "vie" mais la balle redescend à l'opposé... la balle ou la vie? Si vous jouez la balle, vous perdez une vie + 50 points (car il y a 50 points supplémentaires par Goodies attrapé) mais vous attrapez la balle... c'est la situation qu'on appellerait : Jouer safe ! Cela étant dit, si on choisit plutôt d'attraper la vie, on ajoute une vie, 50 points et on a une chance de s'essayer pour la balle et si on manque, ce n'est pas la fin du monde, on a 50 points de plus! Cependant, il arrive parfois que nos prévisions ne soient pas bonnes et que la balle tombe au sol avant qu'on attrape la vie et on a alors aucun point et une vie en moins... En affaire, moi j'appelle ça choisir ses batailles...

Calcul rapide

Vous pourriez finir le tableau mais un "Goodies" tombe d'une brique... Il faut tenter d'éviter la dernière brique pour attraper d'abord le "Goodies" et faire 50 points! Vous avez un "lance 3 missiles" et un "laser" tombe d'une brique... chaque missile donne 50 points supplémentaires par brique touchée et un laser donne 10 points par brique touchée... il reste combien de briques? Car selon la situation, un est plus payant que l'autre! Être vif au niveau de l'analyse monétaire permet d'être beaucoup plus efficace pour la prise de décisions d'affaires.

Record et rayonnement

L'objectif est de laisser sa trace! Avec le tableau des meilleurs pointages, il est possible de se comparer avec les autres! C'est intéressant et motivant! Les entrepreneurs partent souvent de la base de vouloir vivre une certaine aventure, vivre la liberté d'être son patron... c'est trippant! Avec le temps s'ajoute une autre motivation... ne pas laisser tomber les gens qu'on a impliquées dans notre projet, employers, clients, partenaires... et après un certain niveau, s'ajoute la volonté de la reconnaissance, notoriété...

Donc BrickBreaker est un jeu parfait pour les décideurs en TI ou pour développer ses aptitudes à prendre des décisions rapides... elles ne sont pas toujours bonnes mais on en tire une expérience. À ceux qui disent que les entrepreneurs n'ont pas le temps de jouer sur leur BlackBerry, poudre aux yeux, je suis sur la même partie de BrickBreaker depuis plus de 3 mois et je joue seulement lorsque je suis dans une situation d'attente : salle d'attente, aéroport, salle de bain LOL et même dans le trafic... NON pas dans le trafic!

Bonne game!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
4 juin 09
  • 11
  • 0

Pas 5, ni 6, 7 ans pour QuiboWeb!

Oh la la... L'année est passée très très vite... Déjà 7 ans pour QuiboWeb!

Il me semble qu'encore hier je travaillais de la maison et voilà que notre équipe de 10 jeunes spécialistes du Web nous permettent d'accumuler les années sans les voir passer!

Au cours de la dernière année, en plus de l'agrandissement des bureaux, il a eu l'accueil de 2 nouveaux programmeurs, l'ajout de plusieurs projets et clients d'envergure et certains membres de l'équipe attendent, au cours des prochains mois, la relève de l'entreprise!

Ce fut une année de visibilité : Conférences, W3Québec, blogue (1 billet chaque 2 jours en moyenne), réseaux sociaux (@FrancoisViens @HuguesBeaumont @lacroixma @seophe @legaultg @parevise @tsukassa @yannickcg) et nous avons même passé près de gagner un Octas dans la catégorie B2B. Avec tous ces efforts, QuiboWeb fait partie de la crème des entreprises spécialisées en développement Web, sur mesure et/ou Open Source de l'industrie québécoise.

Merci à nos principaux clients :

Merci une fois de plus pour votre confiance et fidélité.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
25 mai 09
  • 3
  • 0

Octas 2009 - Close but no cigar

Ce samedi 23 mai avait lieu le Gala des Octas 2009 organisé par le Réseau Action TI et j'y étais présent avec @RGrondin du Réseau Immobilier La Capitale Vendu. Nous étions finalistes dans la catégorie Affaires électroniques inter-entreprises - B2B pour le projet Le portail intranet, un portail communautaire collaboratif.

Bien que nous n'ayons pas gagné, il faut dire que c'était une soirée très bien organisée. Chapeau au Réseau Action TI! Dans la catégorie B2B, le gagnant est la Coop Fédérée et ce projet a également remporté le prix d'Excellence du concours Octas 2009. Ne pas gagner contre le gagnant de l'Excellence apaise beaucoup la déception!

Le Réseau Action TI est réellement une belle communauté pour le réseautage d'affaire dans le domaine des TI. Il s'agissait de notre première participation aux Octas. Être finaliste à la première tentative nous encourage à coup sûr de se reprendre l'année prochaine avec un autre projet.

Écrivez nous à info@quiboweb.com si vous désirez que ce soit VOTRE projet!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
7 mai 09
  • 4
  • 0

Wordwrap pour Eclipse

Êtes-vous programmeur? Non? Ne lisez pas ce billet!

Voilà déjà un moment que je cherchais la façon dans Eclipse de faire "wrapper" une ligne trop longue... N'étant pas une fonctionnalité "built-in" de l'éditeur, j'avais alors abandonné...

Ce soir, c'était important que j'arrive à trouver une solution et j'ai réussi!

Il suffit d'un plugin Eclipse fait en 2006, pas parfait mais combien pratique!

http://ahtik.com/blog/2006/06/18/first-alpha-of-eclipse-word-wrap-released/

Update site à partir d'Eclipse : http://ahtik.com/eclipse-update/

Bon code!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
22 avril 09
  • 10
  • 0

L'impact d'un blogue et ses commentaires

Un collègue à moi me fait part de cette histoire... Parfois, un commentaire négatif sur un blogue ou n'importe où sur Internet, peut faire mal dû aux moteurs de recherche... il faut savoir bien réagir en tant que personne visée par le dit commentaire... QuiboWeb à dernièrement été victime d'un tel événement sur le populaire réseau Twitter... la situation s'est finalement très bien réglée! Voici son histoire :

En septembre 2008, je cherchais à acheter un numériseur. J'avais alors trouvé une petite compagnie en Californie qui fabrique un produit super prometteur. Mais comme le produit coûte près de 10000$, et comme nous avons été déçus dans le passé par certains produits d'autres compagnies, j'étais hésitant.

Après m'avoir assuré que son produit était excellent, le CEO de la petite compagnie m'avait fourni une référence, le nom d'un client en Ontario. Je m'étais empressé de le contacter. Les commentaires de ce dernier n'étaient cependant pas convaincants. J'avais aussi consulté des blogues sur le Web ou j'étais resté sur mon appétit. Peu de gens avaient commenté ce produit.

Tenace, je m'étais alors retourné vers le CEO, lui suggérant de payer 2000$ de dépôt pour acheter le numériseur. Après des essais, nous pourrions procéder à l'achat en payant la différence. Si ce dernier ne répondait pas aux spécifications, nous retournions le produit, perdant notre dépôt. Au bout de quelques échanges, il m'avait répondu bêtement que c'était une manigance nous permettant de les arnaquer et que nous pourrions profiter du numériseur pour ensuite le leur retourner.

J'étais déçu. Et vu l'attitude du type, j'étais insulté. J'étais vraiment intéressé par son produit. Le prix était bon. J'avais vraiment l'intention de procéder à l'achat. Mais il ne me prenait pas au sérieux. J'avais alors posté un billet sur un blogue discutant de la question. J'y avais raconté mon histoire dans un paragraphe, expliquant pourquoi je chercherais dorénavant ailleurs.

Aujourd'hui, - six mois plus tard - le type me rappelle. Il veut savoir pourquoi je raconte des mensonges. Frustré et insulté à son tour, il veut que je lui explique pourquoi j'ai affiché cela, étant tombé sur mon billet. Il trouve que ce n'est pas professionnel. J'ai tenté en vain de m'expliquer, mais il répétait inlassablement que j'ai menti et qu'il n'oserait pas traiter un client tel que je le décrivais. Une fois qu'il eu dit ce qu'il avait sur le coeur, nous avons raccroché.

Eh bien j'en retiens une leçon. Contrairement à ce que je pensais auparavant, un seul billet peut faire mal à une entreprise. Un billet est susceptible de provoquer des réactions, surtout lorsqu'il est si facile de retrouver ce dernier par une recherche Google. Ceci étant, souhaitons que les gens feront une utilisation parcimonieuse des commentaires fumants et aussi, que les compagnies exploiteront cette information de façon constructive, résistant à la tentation de vilipender les commentateurs négatifs...

Ça vous est déjà arrivé? Comment avez-vous réagit et comment ça s'est fini?

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
21 avril 09
  • 1
  • 0

Soirée de première pour le W3Québec

Hier avait lieu la première soirée-conférence W3Québec - nouvelle édition - au Café Laika sur la rue St-Laurent à Montréal. Il faut avouer que l'équipe du W3Québec était plutôt fébrile dans les jours précédant l'événement car cette soirée serait une première à plusieurs niveaux :

  • Première soirée W3Québec de la nouvelle équipe en poste
  • Première soirée-conférence nouveau genre, 2 conférenciers + réseautage
  • Nouvel emplacement - le Café Laika
  • Première diffusion en direct avec l'excellent travail de Christian Aubry commandité par Accessibilité Web
  • Premier intervenant anglophone : Sarven Capadisli

En plus de la trentaine de personnes sur place, plus de 20 personnes ont eu l'opportunité d'assister à l'événement en ligne ce qui à fait de la soirée, un des événements les plus populaire du W3Québec.

Merci à tous les membres et sympathisants et à très bientôt pour la prochaine édition!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
15 avril 09
  • 2
  • 0

Pour les clients et les gestionnaires de projets

Ce billet n'est pas pour les développeurs Web mais plutôt pour les acteurs du Web qui font la relation client et le client en tant que tel...

Il y a environ 6 mois de ça, j'ai rencontré un gestionnaire de projets d'expérience qui m'expliquait l'idéologie derrière sont logo triangle... théorie très intéressante que j'ai rarement eu l'opportunité d'utiliser lors d'une rencontre mais qui faisait alors partie de mon bagage...

Voilà que Marie-Andrée tombe sur cet article : Rapidité, qualité, économie, choisissez deux options? sur Eclaireur.net

Je crois que dans tous projets qui se corsent, un meeting avec le client, en face du fameux triangle de choix Temps Qualité Prix est un incontournable pour permettre à tout le monde d'être sur la même longueur d'onde.

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis


François Viens
François Viens
5 avril 09
  • 2
  • 0

Évolution - W3Québec

Voilà déjà 4 mois que j'ai le mandat à la présidence du W3Québec avec mes partenaires Mathieu Chartier, Éric Paré, Samuel Sirois et Samuel Lavoie.

Plusieurs membres et sympathisants du W3Québec se demandent qu'est-ce qui se passe avec l'organisme. Il s'agit d'une question valable puisque, bien que nous avons été très actifs au cours de ces 4 mois, nous avons très peu "shiné", faute de temps, peut-être, mais principalement à cause d'une question de gestion des ressources attribuées au rattrapage de certains dossiers.

Voici un sommaire de ce qui a été réalisé depuis les élections de fin novembre 2008 :

  • Mi-décembre 2008 : commandite de l'événement Celebrate Camp d'Austin Hill : bonne visibilité au niveau du réseautage lors de la soirée et acquisition d'une dizaine de nouveaux members
  • Fin février 2009 : Mise en ligne du nouveau site Web W3Québec en mode Béta, maintenant hébergé à Montréal
  • Fin février 2009 : Formation CSS d'un groupe de 11 participants du Centre de services partagés du Québec , un win-win pour le CSPQ et pour le W3Québec. Les revenus de la formation permettent à l'organisme de régulariser sa situation fiscale aux différents paliers gouvernementaux, de préparer l'achat d'une bannière professionnelle qui sera utilisée pour les différentes présences du W3Québec dans des événements, l'impression de cartes d'affaires qui ont été très populaires lors du JobFair PHP Québec et la préparation de l'événement du 20 avril 2009 qui arrive à grands pas.
  • Début mars 2009 : Participation au JobFair PHP Québec en tant que
    partenaire Média. Plusieurs rencontres intéressantes, bonne visibilité
    pour le W3Québec et sa communauté. L'association W3Québec et PHPQuébec
    se répétera dans les années à venir!
  • Mi-mars 2009 : Alliance avec Webcom-Montreal 2009 qui résulte en un rabais de 15% sur l'inscription d'un membre du W3Québec et un échange de visibilité. La collaboration entre Webcom Montreal et le W3Québec fera d'autres "petits" dans les mois et années qui viennent.
  • 20 avril 2009 : Première soirée-conférence W3Québec avec Normand Lamoureux (Accessibilité Web) et Sarven Capadisli (Identi.ca). Il s'agit de la première soirée avec le nouveau concept du nouveau conseil d'administration du W3Québec. Consommation gratuite pour les membres "early bird", information pertinente et réseautage d'affaires, le tout dans un endroit à la mode.
  • Au cours de 4 derniers mois : plusieurs nouveaux membres et plusieurs renouvellements : MERCI! Merci de nous faire confiance pour une année de plus!

Il y a aussi plusieurs dossiers sur la table :

  • 2e soirée-conférence W3Québec qui présentera probablement Sylvain Carle (Praized) et Yves Williams (AgentSolo), du moins espérons le! Cette soirée aura lieu au début de l'été, juin ou juillet 2009.
  • Tournoi de golf W3Québec 2009, 2e édition! Bien que nous étions peu de joueurs lors de la première édition (annonce de pluie), la préparation de la 2e édition est déjà en marche afin d'avoir un minimum de 5 équipes de 4! Allez, rassembler les membres de votre équipe et participez à ce tournoi Vegas (meilleure balle), pour le plaisir de partager une belle journée avec des gens intéressants de l'industrie du Web.
  • Et oui, nous travaillons également fort pour que le respect des bonnes pratiques Web soit reconnu par un concours québécois. Octas ou Boomerang ou les 2? Qui sait, on y travaille, les gens sont intéressés, c'est très encourageant!
  • Site Web et Calendrier : plusieurs changements sont à prévoir sur le site Web, principalement pour la mise à jour de la section membre et la maintenance du calendrier des événements de l'industrie du Web : Pour le calendrier, votre contribution est la bienvenue... simplement envoyer vos événements à decouvrir@w3qc.org , on les ajoutera sur le site le plus rapidement possible
  • Recrutement de membres corporatifs (personne morale) et individuels... Puisque nos événements ont maintenant une saveur de réseautage, plus on est de membres, plus les échanges sont intéressants.
  • Recrutement de commanditaires pour nos événements et interventions. Si vous voyez un intérêt, écrivez à decouvrir@w3qc.org ... Si vous ne voyez pas d'intérêt, attendez qu'on se rencontre lors d'un événement, on pourra en discuter!

Alors voilà, en tout temps vous pouvez suivre le W3Québec en devenant membre ou en nous suivant à l'aide du fil RSS du site, notre compte Twitter @w3qc, sur Identi.ca @w3qc, sur LinkedIn (groupe) et sur FaceBook (groupe).

Au plaisir de vous rencontrer le 20 avril prochain lors de notre soirée conférence au café Laïka Montréal!

  • Partagez sur del.icio.us
  • Partagez sur Facebook
  • Partagez sur Google
  • Partagez sur LinkedIn
  • Partagez sur Live
  • Partagez sur TwitThis