Catégories
JSLint - Vérifiez la qualité de votre code JavaScript

JSLint est un outil Open Source vous permettant de contrôler votre code JavaScript. Cet outil est disponible directement en ligne sur le site http://www.jslint.com/ ou alors en ligne de commande.
JSLint vous propose toute une série d'options, selon vos besoins, dans le but d'analyser votre code écrit en JavaScript. Il sera pratique pour mettre en valeur les erreurs et les problèmes courants dans ce langage de programmation.
Et si vous en voulez plus, vous trouverez la même chose pour vos CSS avec : CSSLint (http://csslint.net/).
OpenX - Détection du header HTTP_DNT pour vos bannières
OpenX est une application de gestion publicitaire. Il s'agit sans doute de l'une des plus complètes, accessible gratuitement pour sa version communautaire. Cette application vous permet donc de gérer la publicité en toute simplicité de votre ou de vos sites Internet.
Certains "plugins" (modules d'extension) sont installés de base dans OpenX pour compléter les fonctionnalités qu'offre le système de base. Le module qui nous intéresse aujourd'hui est "Delivery Limitations" qui propose de pouvoir gérer la diffusion de vos bannières selon certains critères (exemple : IP du visiteur, heure de la journée, navigateur, système d'exploitation, ...).
Je ne sais pas si vous avez déjà entendu parler de Do Not Track (alias DNT), il s'agit d'un entête HTTP qui se répand peu à peu sur le Web et qui signifie qu'une personne ne souhaite pas être "suivie". Aucune contrainte légale n'est à ce jour en place, rien n'oblige donc à respecter cela.
Seulement, certains logiciels comme notamment AVG proposent d'ajouter l'entête DNT sur vos navigateurs (Internet Explorer, Chrome et Firefox) et en plus filtrent certaines régies publicitaires comme Criteo par exemple. Ceci a pour conséquence d'afficher à certains moments des espaces publicitaires vides suite à ce blocage.
C'est pourquoi, je vous propose un petit plus à rajouter au module "Delivery Limitations" pour qu'il puisse gérer l'entête HTTP_DNT envoyé par le navigateur (si il est). Du coup, si l'entête est reçu vous pouvez afficher certaines bannières et sinon d'autres.
Les instructions d'installation sont fournies à l'intérieur du fichier ZIP, il s'agit de la première version de ce petit extra. Si vous faites des améliorations / modifications, faites-en moi part.
Téléchargement : openx-delivery-limitations-http_dnt-v1.zip (fonctionne parfaitement sous OpenX 2.8.10).
CoffeeScript pour votre JavaScript

CoffeeScript est un langage de programmation qui va vous permettre de générer du JavaScript à partir de votre code. Cependant, il n'est pas interprété nativement, il va donc falloir le compiler en JavaScript pour rendre votre code exécutable.
Mais pourquoi écrire du code en CoffeeScript plutôt que directement en JavaScript ?
Tout simplement dans un premier temps pour avoir un code bien lisible et plus condensé que ce que vous écririez directement en JavaScript. En effet, la syntaxe de ce langage est fortement inspiré de Python, Ruby et Haskell. CoffeeScript vous permettra également d'avoir accès à de puissantes fonctionnalités simplement, comme les listes en compréhension ou encore le filtrage par motif.
Retrouvez ci-dessous deux exemples pour vous montrer toute la puissance du système.
Vous initialisez jQuery de la manière suivante :
$(document).ready(function() {
// Le code d'initialisation va ici
});
Voici ce que ça donne en CoffeeScript :
$(document).ready ->
# Le code d'initialisation va ici
Egalement un autre exemple avec une alerte en fonction de l'existence d'une variable appelée "smith" :
alert "Yeah, found!" if smith?
Donnera en JavaScript :
if (typeof smith !== "undefined" && smith !== null) {
alert("Yeah, found!");
}
Son histoire a débuté le 13 décembre 2009 et le projet est arrivé en version stable le 24 décembre 2010.
Vous trouverez de plus amples informations sur le site de CoffeeScript.
Se connecter aux services web d'Amazon en Python
Boto est une interface python qui permet d'accéder aux services Web d'Amazon. Pour le moment les services concernés sont :
- Simple Storage Service (S3)
- SimpleQueue Service (SQS)
- Elastic Compute Cloud (EC2)
- Mechanical Turk
- SimpleDB
- CloudFront
- CloudWatch
- AutoScale
- Elastic Load Balancer (ELB)
- Virtual Private Cloud (VPC)
- Elastic Map Reduce (EMR)
- Relational Data Service (RDS)
- Simple Notification Server (SNS)
- Google Storage
- Identity and Access Management (IAM)
- Route53 DNS Service (route53)
- Simple Email Service (SES)
- Flexible Payment Service (FPS)
- CloudFormation
- Amazon DynamoDB
- Amazon SimpleWorkflow
- CloudSearch
- Marketplace Web Services
Le projet est régulièrement mis à jour donc je vous conseille d'y jeter un coup d'œil de temps en temps pour voir si d'autres services ont été ajoutés.
Pour installer Boto vous avez le choix :
- easy_install boto
- pip install -U boto
- Télécharger l'archive sur https://github.com/boto/boto
Qu'est-ce que MySQL ?

MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est développé par MySQL AB qui a depuis été rachetée en 2008 par Sun Microsystems, acquis par Oracle Corporation en 2009. Le logiciel est Open Source (Standard Ouvert), ce qui veut dire que chacun peut l'utiliser et le modifier à sa guise pour l'adapter à ses propres besoins.
Une base de données est un ensemble organisé de données. Les bases de données servent à enregistrer un grand nombre d'informations qui pourront ensuite être accessibles aux différents langages de programmation informatique et donc aux logiciels, sites Internet / Mobiles ou autres applications.
MySQL a été développé dans un souci de performances élevées en lecture et il est disponible sur un très grand nombre de plates-formes. On peut s'en servir aussi bien sur une seule machine, que sur plusieurs pour redonder et améliorer les performances du système.
MySQL est capable de gérer plusieurs moteurs de stockage (exemple : InnoDB, MyISAM, MEMORY, BerkeleyDB) au sein d'une seule base de données, ce qui permet d'optimiser son fonctionnement. En effet, chaque moteur de stockage a ses avantages et ses inconvénients. Les moteurs de stockage permettent de conserver des informations et de retourner ces dernières suivant leurs algorithmes et la requête envoyée au système.
MySQL est utilisée par de nombreuses grosses sociétés comme Google, Youtube, Adobe, The Phone House, Sony, Yahoo, Promovacances, etc. C'est le système de bases de données libre le plus populaire au monde grâce à sa haute performance, sa fiabilité et sa simplicité d'utilisation.
Jsfiddle : Débuger et partager du code HTML/CSS/JavaScript

En tant que développeur web nous sommes souvent confrontés à des phases de débogages de bouts de codes qui ne semblent pas fonctionner. Et suivant le contexte il peut paraître plus judicieux de sortir ce bout qui ne fonctionne pas et d'essayer de le tester et de le faire marcher dans un projet vierge . Chose que nous avons déjà tous fait au moins une fois.
Jsfiddle.net est une sorte d'éditeur HTML/CSS/JavaScript à la sauce WYSIWYG. Vous mettez votre code et vous voyez le résultat dès que vous cliquez sur un bouton.
Sinon comment ça marche ? Tout d'abord, le site est gratuit, pas la peine de s'inscrire. On arrive sur le site et on peut direct tester.
L'interface est divisée en 4 fenêtres :
- HTML
- CSS
- JavaScript
- Résultat
Si vous voulez vous pouvez même importer vos propres fichiers JS ou CSS. Il suffit d'indiquer l'adresse du fichier.
Bien entendu cela vous permet également, et c'est ce qui en fait un outils vraiment exceptionnel, de le partager. Que ce soit par messagerie, via les réseaux sociaux ou dans les forums, il suffit de donner l'adresse de votre code Jsfiddle et les personnes pourront voir votre code et le résultat que ça donne.
Infographie de l'histoire du HTML5

L'HTML5 est une révision majeure de l'HTML. Cette nouvelle version du langage a pris naissance en 2004 et tend à une finalisation de la spécification prévue pour 2014. Découvrez l'histoire du HTML5 en image : The Authentic Infographic History of HTML5 (source : Wix.com).
Navigateurs pour tester son site mobile

L'émergence du marché mobile nous oblige de plus en plus à développer les sites Internet de manière à ce qu'ils fonctionnent sur les différentes plate-formes. Que ce soit sur un ordinateur ou sur un appareil mobile, les sites Internet doivent pouvoir fournir l'information que le visiteur ou le client cherche quel que soit le terminal utilisé. Pour ce faire, il faut adapter le site Internet à la résolution du terminal autant que la quantité de données transférées pour éviter les chargements trop longs.
Il vous sera possible, par exemple, d'émuler le navigateur mobile à l'aide d'Opera Mobile Emulator qui permet de simuler la navigation Opera Mobile sur différents appareils (téléphones, tablettes, tactiles ou non).
http://fr.opera.com/developer/tools/mobile/
Dans la même lignée, vous trouverez d'autres navigateurs afin de vérifier la compatibilité de vos sites sur les différents logiciels de navigation sur Internet. Firefox propose de télécharger sa version mobile sur votre ordinateur.
http://www.mozilla.org/fr/mobile/
Dépôts Dotdeb sur Debian
Dotdeb fournit de façon indépendante et depuis de nombreuses années un dépôt. Vous y trouverez des paquets puissants, stables et à jour pour votre ou vos serveurs.
La liste des paquets présents aujourd'hui est la suivante :
- PHP 5.3 et 5.4
- MySQL 5.1 et 5.5
- Percona toolkit
- Nginx
- Passenger
- Redis
Comme il s'agit d'un dépôt complémentaire, vous n'aurez pas à installer obligatoirement ces paquets. Pour plus d'informations, je vous invite à consulter leur site Internet : Dotdeb.org.
MySQL et thread_concurrency
Beaucoup de distributions sous GNU/Linux incluent la variable "thread_concurrency" dans leur fichier "my.cnf". Celle-ci est très fréquemment accompagnée d'un commentaire vous disant de mettre le résultat de la multiplication du nombre de processeurs (CPU) par deux. Notre conseil est de ne plus perdre votre temps avec cette variable, elle n'a aucun effet sur les plate-formes GNU/Linux. Malgré tous les didacticiels qui vous expliquent comment régler votre MySQL avec la variable "thread_concurrency", vous ne devez plus perdre votre temps et ce pour deux raisons :
- Elle est dépréciée et supprimée dans MySQL 5.6.1.
- Cela ne fonctionne que sur les vieilles versions de Solaris (inférieur à 9).
Passez donc votre chemin avec cette variable et concentrez-vous plutôt sur "innodb_thread_concurrency" qui place une limite sur le nombre de "threads" qui peuvent tourner au sein d'InnoDB. La valeur par défaut dans MySQL 5.5 est de 0 qui signifie un nombre infini de "threads", mais limiter cette valeur sous certaines charges peut vous donner plus de performances.
