En cette journée d'Halloween, Google prend les mesures nécessaires pour repousser les zombies. En effet, son fichier robots.txt spécifie clairement que les zombies devront se priver de festin :
User-agent: zombies
Disallow: /brains
Placé à la racine d'un site, le fichier robots.txt contient "généralement" des instructions destinées aux moteurs de recherche et spécifie les répertoires dont on veut indexer les fichiers ainsi que ceux à exclure.
Une des caractéristiques de la recherche sur Google est qu'il permet d'utiliser une syntaxe qui suggère les définitions possibles d'un terme lorsqu'on le préfixe par l'expression define:, comme si on cherchait dans un dictionnaire.
Excellent pour démystifier les nombreux acronymes reliés au domaine informatique tels que define:php ou define:sql, pour décrire une entreprise define:google, une émotion define:mélancolie, une province define:quebec ou sa gastronomie define:poutine.
Parfois, ça peut faire peur de voir que Google a réponse à tout : Answer to Life, the Universe, and Everything = 42.
La distribution Ubuntu (Linux pour tous) annonce aujourd'hui la sortie de la version 8.10 de son système d'exploitation open-source basé sur le noyau Linux.
Les téléchargements des différentes saveurs graphiques sont ici :
Pour ceux comme moi qui apprécient Linux mais qui doivent travailler sur un environnement Windows dans un cadre professionnel, voici une collection d'outils permettant d'obtenir des utilitaires GNU/Linux sur Windows. UnxUtils est un package qui regroupe une centaine d'outils sous forme d'exécutables.
En téléchargeant le fichier compressé (UnxUtilsSrc.zip contient les sources tandis que UnxUtils.zip contient les versions compilées), on trouvera à l'intérieur les utilitaires dans le répertoire usr\local\wbin. On pourrait simplement les placer dans C:\windows\system32 pour qu'ils soient accessibles par l'invite de commandes.
Mieux, on peut ajouter le chemin des utilitaires dans le environment path de Windows. Sous XP, on y accède par le Control Panel/System/Advanced/Environment Variables. Dans l'encadré System Variables, sélectionner la variable path et cliquer edit. À la fin des valeurs existantes, il faut ajouter le chemin menant au répertoire du fichier sh.exe (pour exécuter des scripts shell) et un autre chemin pour le répertoire des exe en prenant soin de séparer chaque chemin par un point-virgule. Dans mon cas, j'ai déposé le répertoire décompressé dans C:\UnxUtils, donc il faut ajouter les deux chemins suivants :
C:\UnxUtils\bin\;C:\UnxUtils\usr\local\wbin
Une fois ajoutés, cliquer OK pour chaque fenêtre de confirmation. Si une console est déjà ouverte, il faudra la redémarrer pour que les modifications soient effectives.
Quelques commandes à explorer : pwd, ls -l, grep, sed.
Lorsqu'on travaille dans l'éditeur de requêtes de SQL Server (Query Analyzer ou Management Studio), on peut décrire un objet de la base de données en utilisant la procédure système sp_help (l'équivalent du mot réservé DESCRIBE sous Oracle ou MySQL).
EXEC dbo.sp_help stored_proc_name
À l'intérieur d'une classe de connexion à la base de données, ce type de procédure peut s'avérer pratique pour récupérer la structure d'une table ou les paramètres d'une procédure stockée puisque les résultats sont retournées sous forme de recordset.
De nombreuses autres procédures systèmes utiles sont disponibles à partir de la base de données master.
Il fut un temps lorsqu'on programmait pour le web où l'on devait calculer le volume de transfert des données pour s'assurer que le téléchargement d'une page serait suffisamment rapide (lire ici "tolérable) sur un modem 56k.
De nos jours, avec les connexions à haut débit, ma préoccupation est à un tout autre niveau. Les sites web sont de plus en plus sollicités et sont constamment enrichis de contenu dynamique (DHTML, Ajax, Prototype, jQuery, script.aculo.us, YUI) et ce, dans le but de rendre l'expérience de l'utilisateur plus agréable. Le problème ici n'est plus du côté de l'utilisateur, mais du côté du serveur. Désormais, on tente d'optimiser la charge des serveurs web et des bases de données (workload, replication, optimisation des requêtes, etc.) ou d'utiliser des techniques de mise en cache. Dans le cas des sites hautement sollicités, à titre d'exemple Amazon, du contenu statique est même délégué à un autre domaine (images-amazon.com) qui contient plusieurs sous-domaines entièrement dédiés à cette tâche (http://ecx.images-amazon.com, http://g-ecx.images-amazon.com, http://z-ecx.images-amazon.com).
Nombreuses sont les techniques permettant de désengorger les serveurs et de limiter le transfert de données à grande échelle. Une des bonnes habitudes qu'un programmeur peut utiliser, même sur un site web modeste, est la compression JavaScript à l'aide du YUI Compressor.
À partir de la Yahoo! UI Library, les développeurs ont accès gratuitement à un outil permettant non seulement de compresser le code JavaScript, mais aussi de l'obfusquer, permettant ainsi de réduire la taille de la librairie et d'en compliquer la compréhension (le code n'étant pas compilé, il est toujours possible de faire du reverse engineering, mais la patience en prend un coup!).
Voici un exemple d'utilisation :
- Java doit préalablement être installé sur la machine
- Télécharger la version la plus récente de l'utilitaire (présentement la version 2.4)
- Extraire son contenu et repérer le fichier "yuicompressor-2.4.jar" dans le répertoire "build"
- Ouvrir un invite de commande
- La syntaxe d'exécution est la suivante :
java -jar yuicompressor-2.4.jar source-o destination
où -o spécifie le nom en sortie du fichier une fois compressé - J'utiliserai la librairie prototype.js pour démontrer concrètement l'efficacité de la compression (la version 1.6.0.3 originale pèse 126 Ko)
- Dans ce cas-ci, la commande exacte sera :
java -jar yuicompressor-2.4.jar prototype-1.6.0.3.js -o prototype-1.6.0.3-min.js - Une fois compressé, prototype-1.6.0.3-min.js pèsera 73 Ko, soit un taux de compression d'environ 40%. Ceci est dû au fait que les espacements, les tabulations, les sauts de lignes et les commentaires sont retirés alors que les noms des fonctions, des classes et leurs propriétés restent les mêmes.
Pour rouler le système d'exploitation Windows et ses applications sur Mac, VMware Fusion est sans contredit le plus évolué en matière de virtualisation.
De son côté, Wine permet d'exécuter des applications Windows sur un environnement Linux/Unix grâce à son implémentation de l'API Windows.
À l'inverse, KDE on Windows est un projet émergent qui tente de porter les applications de l'environnement KDE (K Desktop pour Linux) de façon native sur Windows.
Peu importe notre allégeance en matière d'OS, il est toujours possible de bénéficier des avantages de l'un... avec les inconvénients de l'autre!
Dans le domaine de la littérature informatique, il y a tellement de livres disponibles qui traitent d'autant de versions, de langages et de méthodologies qu'on s'y perd rapidement. Avec le temps, j'ai moi-même acheté une multitude d'ouvrages à prix fort sans réellement savoir s'ils valaient leur pesant d'or et qui accumulent maintenant la poussière dans ma bibliothèque.
Il y a plusieurs années, j'achetais mes livres chez InfoLivres à Montréal car ils écoulaient souvent à 50% de rabais les anciennes éditions, que Camelot (aujourd'hui disparu), situé à un coin de rue plus loin vendait encore au plein prix. C'est ainsi que je me suis introduit dans l'univers du Perl en explorant les fonctionnalités de la version 5.0.0.3 plutôt que la version la plus récente qui était la 5.2. C'était au tournant des années 2000, la troisième édition de Programming Perl de Larry Wall était sur le point de sortir et allait couvrir la version 5.6 (il n'y a d'ailleurs pas eu d'autres éditions de ce livre depuis). Bref, c'était parfait pour explorer toutes les avenues possibles mais je dois avouer que ça m'a coûté cher ;-)
Comme j'en achetais pour le plaisir d'apprendre et pour des objectifs plus professionnels, je n'avais souvent pas la chance de passer au travers. Avec le temps, j'ai appris à être plus sélectif et je me suis mis à rechercher les meilleures sources pour ne lire que les plus pertinents (en règle générale!).
Je suis devenu un client fidèle d'Amazon.com (et de sa filiale canadienne) d'abord pour les prix imbattables, pour son système de critiques (reviews) qui apporte la force du nombre, la disponibilité des produits, mais aussi pour sa fonctionnalité de Search Inside qui permet d'avoir un aperçu du contenu d'un livre.
Cependant, son système de recommandations a pour but de stimuler la vente de façon subjective. Autrement dit, leur marketing me suggére des produits similaires (complémentaires ou du même sujet) à ce que je suis sur le point d'acheter. Aussi, la liste de leurs meilleurs vendeurs (bestsellers) quantifie les ventes, donc avant la lecture. Pourtant, est-ce possible d'obtenir une liste plus objective des lectures susceptibles d'intéresser un programmeur ? Avoir une liste des lectures indispensables ?
Il semble que oui. Un site web intitulé The Best Programming Books Ranked by Programmers permet d'y inscrire ses coups de coeur de la littérature informatique et d'en faire un "top list", sans aucune prétention commerciale (effectivement, les images pointent vers Amazon, mais c'est en raison des termes d'utilisation de leur API qui permet de récupérer l'information et l'image d'un livre à partir de l'ISBN, à condition de pointer vers la page du produit). Le site est divisé en sections permettant de couvrir de nombreuses facettes de la programmation (API, frameworks, langages, méthodologies, ingénierie, etc.).
Comme point de départ, mieux vaut jeter un oeil à la section The Best Books Every Programmer Should Read.
À l'heure actuelle, il est impossible d'enregistrer un nom de domaine à un seul caractère sur un domaine de premier niveau (.com, .net et .org) puisque ce sont des noms de domaines réservés depuis 1993 par The Internet Assigned Numbers Authority.
Cependant, certains domaines étant déjà assignés, il existe certaines exceptions à la règle:
- www.i.net : Firme de développement web du Koweït
- www.q.com : Firme de télécommunications (redirection au site de QWest)
- www.x.com : PayPal (laboratoire expérimental)
- www.x.org : X.Org Foundation (X Window System, un interface graphique pour Linux/Unix)
- www.z.com : Nissan (redirection à la page de son modèle Z Coupe)
Code 18
n.m. Expression principalement utilisée par les techniciens en référence à une erreur commise par un utilisateur (qui se trouve physiquement à 18 pouces de distance de l'écran).
Manuel du savoir-faire à l'usage des geeks et des curieux
Titre parodié tiré d'un livre de l'humoriste français Pierre Desproges: Manuel du savoir-vivre à l'usage des rustres et des malpolis
À propos de moi
Le pseudonyme infinite loop est directement inspiré de l'adresse du siège social de Apple situé au 1, Infinite Loop, Cupertino en Californie. Très geek!
En regardant de plus près, vous verrez que derrière ce pseudonyme se cache un programmeur web du Québec comptant une dizaine d'années d'expérience en entreprise et un amateur de musique originale et déjantée.
À propos de ce blogue
Le but exact de ce blogue est encore incertain. Il traitera certainement de technologies, de programmation, de musique et un brin d'humour. Le reste est à vos risques.