<![CDATA[Deblan.fr - Blog]]> http://blog.deblan.fr/ Deblan fr Thu, 02 Sep 2010 23:05:28 +0200 <![CDATA[DEBLAN sur HTML 5 Showcase]]> HTML 5 Showcase est un site d'inspiration graphique. Il partage les meilleurs sites web développés en HTML5. Parmi les 4 derniers articles se trouve mon blog et j'en suis très fiers !

DEBLANPixel Bender CreativeFor The RecordHTML5 Boilerplate
]]>
<![CDATA[Nouveau design !]]> Cette idée de retravailler l'interface du blog me trottait dans la tête depuis quelques mois déjà. Après un peu plus d'un an en bleu foncé, il avait mérité de prendre un coup de jeune.

J'ai décidé de faire dans le « sobre travaillé », en misant sur la légèreté de la structure : j'ai divisé le poids des pages par plus de trois ! Quasiment plus d'images et quand il y en a, leur poids reste ridicule à la vue de l'ancien design.

Seulement, il n'y a pas que la tronche du blog qui est remis à neuf...j'ai passé le blog en HTML5 en usant des propriétés CSS3.

J'en ai aussi profité pour virer le système de notation très rarement utilisé, ainsi que le bouton « Like » de Facebook.

J'espère qu'elle vous plaira et j'attends avec impatience vos réactions !

]]>
<![CDATA[Python et Pastebin me voila !]]> Chez Debian, et surement sur d'autres distributions, existe un paquet nommé « pastebinit ». Ce soft permet de poster du code sur le site pastebin.com afin de le colorer et de le partager facilement avec du monde. Petite note, j'ai sur mon serveur un service de colorisation disponible à l'adresse wall.deblan.fr.

Pastebin a été remis à neuf il y a quelques semaines et le paquet « pastebinit » ne fonctionnait plus. En fait, en plus d'avoir été modifié le front office, l'API a aussi changé.

Bref, c'était assez pénible de ne pas avoir de quoi "paster" (coller) facilement du code en mode console alors j'ai décidé de coder un script qui remplacera pastebinit. Pour ce faire, j'ai eu envie d'utiliser Python.

Licence : BSD.

Pour utiliser le script, il y a deux manières :

1. Si on veut paster (ou "waller") un fichier :

Langage : console
simon@anna:~/python$ cat /mon/fichier/a/paster | ./pastebinit.py

2. Si on veut paster du code qu'on va taper :

Langage : console
simon@anna:~/python$ ./pastebinit.py
vous taper
votre code
et pour arrêter : ctrl+D

Il est évident qu'il faut avoir python d'installé sur sa machine. Pour les debianneux :

Langage : console
# aptitude update && aptitude install python

Si tout ce passe bien, vous devriez recevoir une url (exemple : http://pastebin.com/XdXRMTzZ). Dans le cas contraire, un message d'erreur apparaîtra.

]]>
<![CDATA[Greasemonkey, l'extension du webuser developpeur]]> Cette extension qui fonctionne sur pas mal de navigateurs (je met IE dans le tas) permet d'ajouter des scripts Javascript sur tout les sites qu'on visite.

Une fois qu'on a installé et configuré un script, il s'exécute une fois que le DOM de la page est complétement chargé.

Pour la télécharger, c'est du coté du site officiel que ça se passe.

L'intérêt de cette extension est majeur quand on en a marre de voir des fonctionnalités inexistantes sur nos sites préférés.
L'ensemble des outils proposés par Greasemonkey ont été soigneusement implémentés pour permettent de développer facilement des scripts complets.

Basiquement, pour créer un script il faut lui donner un nom, une description, un espace de nom et les pages sur lesquels il s'exécutera.

De ces 4 informations, seule la description n'est pas essentielle. Le nom et aussi celui du fichier javascript généré sur la machine du client (vous). Si 2 scripts ont le même nom, alors le namespace (espace de nom) permettra de les différencier car plus tard, on verra que chaque script peut enregistrer des informations indépendamment. Les url à inclures sont évidement un point clé pour que les scripts soit exécutés.

Si je veux ajouter un script pour mon blog, je ferai :

Langage : javascript
// ==UserScript==
// @name  Mon script
// @namespace Mon script
// @include http://blog.deblan.fr/*
// ==/UserScript==

Le caractère « * » indique "tous les caractères possibles". Ainsi, toutes les pages de mon blog seront cibles.

Le reste de la manoeuvre demande simplement de savoir écrire du javascript.

Le meilleur ami de l'Homme 2.0 est la console d'erreur. Vous pouvez interfacer Greasemonkey avec la console Firebug mais vous pouvez également loguer des données (le alert() du riche en gros ^^) :

Langage : javascript
GM_log("Ceci est un log =)");
console.log("Ceci est un message qui sera affiché dans la console de Firebug");

Par défaut, on ne peut pas interagir avec les scripts originaux des pages cibles, donc par défaut, si JQuery ou Mootools sont présents, vous ne pourrez par les utiliser. Forte heureusement, on peut palier au problème en utilisant une des fonctionnalité très intéressante de Greasemonkey : unsafeWindow.

Pour donner un exemple concret, en développant un script pour Facebook, j'ai eu besoin d'avoir accès à l'objet "window.presenceNotifications". Pour pouvoir l'utiliser, voila le code utilisé :

Langage : javascript
var w = unsafeWindow;
var foo = w.presenceNotifications;
// A noter que c'est un poil plus complexe pour une bibliothèque

En javascript, on utilise les cookie pour enregistrer des données (dans le cas où on n'a pas de langage type Php pour le faire à sa place).
Avec Greasemonkey, 4 fonctions nous sont accessibles :

Langage : javascript
// http://wiki.greasespot.net/GM_setValue
// GM_setValue : enregistre une donnée
GM_setValue('Nom''Valeur');

// http://wiki.greasespot.net/GM_getValue
// GM_getValue : retourne une donnée enregistrée
GM_getValue('Nom');

// http://wiki.greasespot.net/GM_deleteValue
// GM_deleteValue : supprime une donnée enregistrée
GM_deleteValue('Nom');

// http://wiki.greasespot.net/GM_listValues
// GM_listValues : retourne toutes les données enregistrées
GM_listValues();

Bien sûr, entre 2 espaces de noms différents, impossible d'interagir avec les données.

Un tas d'autres fonctions sont présentes, en voici une liste :

  • GM_addStyle() : ajoute du CSS à la page
  • GM_xmlhttpRequest() : permet de faire des requêtes asynchrones
  • GM_getResourceText() : permet de télécharger une ressource textuelle
  • GM_getResourceURL() : télécharge une ressource (une image par exemple)

La documentation complète de Greasemonkey est disponible sur le wiki.

Pour donner des exemples, voila quelques-uns des scripts que j'ai développé :

Userscripts recense des milliers de scripts Greasemonkey pour une tripoté de sites web.

Si j'ai un conseil à donner avant d'écrire du code, c'est de savoir parcourir et modifier le DOM Html d'une page proprement, sans quoi vous allez avoir des problèmes.

A utiliser !

]]>
<![CDATA[Que feriez-vous devant un cambrioleur ?]]> Je pose le décor : vous êtes chez vous pendant la nuit. Vous entendez du bruit et vous parcourez les couloirs de la maison pour vous trouvez nez à nez devant un cambrioleur. Vous avez peur et vous vous sentez en danger. Quelle réaction penseriez-vous avoir ?

Article en relation avec le récent cambriolage qui mal fini pour deux cambrioleuses : Le Far-West à Nissan ?.

]]>