Brouiller pour mieux montrer

Je suis entrain de développer un site interne à PriceMinister. J’ai envie de faire le site très sérieusement, en respectant tous les standards en vigueur, et l’intégré au maximum au navigateur.
J’ai décidé de le rendre très sérieux et épuré, avec une pointe de javascript pour apporter le fun et le confort d’usage.
Je suis parti sur une base WordPress qui apporte le confort d’usage pour ceux qui l’alimenterons, et j’ai pour l’occasion étendu mon plugin Identikit pour qu’il gère l’identité des articles et des catégories. Je publierai prochainement la v2 sur ce site.

Donc c’est une adaptation pour prototype.js d’un script de Johnvey qui est visible sur son site. Quand vous survolez les liens de son menu, le slogan change. J’aime beaucoup cette idée, je l’ai donc adapté pour servir ma démarche.

Je voulais un effet dans le genre pour afficher l’attribut title de toutes mes balises a. D’autres s’amusent à afficher cette donnée dans des infobulles, mais je trouve cette mode un peu indigeste. Cette méthode reste très discrète comme vous pouvez le voir dans la vidéo. Ainsi, quand l’utilisateur survole un lien, la div id="blog-description" se met à jour. Pour le moment il ne fonctionne que sous Firefox, mais je vais l’adapter pour qu’ils fonctionnent sur d’autres navigateurs. Voici la bête :

var Scrambler = Class.create();
Scrambler.prototype = {
    initialize: function() {
        this.cs = new Array("!","~","@","#","$","%","^","&","*","(","+","=","_","D","p","-","C","e");
        this.base = $('blog-description').innerHTML;
        this.timer = null;
        this.eid = 'blog-description';
        this.words = '';
        this.cnt = 0;
        $$('a').each( function(e) {
            if( e.getAttribute('title') != null ) {
                e.onmouseover = function() { myScrambler.scrambled( this.getAttribute('title') ); }
                e.onmouseout = function() { myScrambler.reset( this.base ); }
            }
        } );
    },
    scrambled: function(ph) {
        this.loops = 0;
        this.cnt = 0;
        this.words = ph.split(" ");
        for(var i=this.words.length-1; i; i--) this.loops = Math.max(this.loops, this.words[i].length);
        clearTimeout(this.timer);
        this.timer = setTimeout(this.m_scrPhrase, 45);
    },
    reset: function() {
        if(this.base != $('blog-description').innerHTML)
            this.scrambled(this.base);
    },
    m_scrPhrase: function() {
        var out = "";
        if(myScrambler.cnt++ >= this.loops) {
            clearTimeout(myScrambler.timer);
            out = myScrambler.phrase;
        } else {
            for(var i=0; i = ln) return wd;
        var out = wd.substring(0, po);
        var i = ln - po;
        do { out += this.cs[Math.floor(Math.random() * 20)]; } while(--i);
        return out;
    },
}
function initScrambler() { myScrambler = new Scrambler(); }
Event.observe(window, 'load', initScrambler, false);

Un peu d’absurde dans un monde de scripts

Avec le niveau niveau de complexification des scripts, des fois je passe du temps à essayer de comprendre comment pense la machine. Mais elle ne pense pas, elle en fait qu’exécuter des scripts qu’un groupe à écrit. La machine à sa propre logique, et des fois ses voix sont impénétrables.

Comme le seigneur, elle a sa langue propre, qui à un certain niveau de complexification, que même C3PO mettrait du temps à comprendre. Le plus étonnant reste quand son langage est incompréhensible. Ses non-sens prêtent à sourire.

Mise à jour de la SMC

Mac, c’est cool. Il propose fréquemment des mises à jour pour que son système soit toujours meilleurs, toujours plus performants. Le dernier en date est la mise à jour de la SMC vers la 1.1. Je ne savais même pas que mon système avec une SMV. késako ? J’apprends sur le site d’Apple que le SMC (Contrôleur de gestion du système) est une puce située sur la carte logique, qui contrôle toutes les fonctions d’alimentation de votre ordinateur. Si votre ordinateur a des problèmes d’alimentation, la réinitialisation du SMC peut les résoudre.

Trop bien ! Je le mets à jour.

Le programme interne de la SMC de votre ordinateur est à jour à la version 1.1 de MÀJ du programme interne de la SMC du MacBook

Me voilà rassuré ! Le message de confirmation de la bonne installation me confirme bien que le programme interne de la SMC de votre ordinateur est à jour à la version 1.1 de MÀJ du programme interne de la SMC du MacBook.

Maintenant que mon ordinateur gère mieux l’alimentation, est-ce que la nouvelle priorité d’Apple est le support de la langue française ?

Conjugaisons nos efforts

Utilisant Microsoft Word, je rédigeais des recommandations internes. Beaucoup de notions de l’application PriceMinister sont en anglais, car les traduire en français n’aurait plus de sens. Donc, dans mes spécifications en français, je tape le mot « spacename ». Word m’affiche une petite vague sous ce mot, cela pour me proposer une autre orthographe : sphacélâmes.
Sphacélâmes
Curieux, j’ai cherché la définition de ce mot. Première certitude, ce mot n’est pas dans l’édition 2005 du Petit Robert, mais sphacèle l’est. Je poursuis donc mes recherches sur la toile. Voici mes observations.

Sphacèle
nom masculin, tissu nécrosé en voie d’élimination
Sphacéler
verbe transitif, provoquer un sphacèle
Présent
sphacèle
sphacèles
sphacèle
sphacélons
sphacélez
sphacèlent
Imparfait
sphacélais
sphacélais
sphacélait
sphacélions
sphacéliez
sphacélaient
Passé simple
sphacélai
sphacélas
sphacéla
sphacélâmes
sphacélâtes
sphacélèrent
Futur simple
sphacélerai
sphacéleras
sphacélera
sphacélerons
sphacélerez
sphacéleront
Passé composé
ai sphacélé
as sphacélé
a sphacélé
avons sphacélé
avez sphacélé
ont sphacélé
Plus-que-parfait
avais sphacélé
avais sphacélé
avait sphacélé
avions sphacélé
aviez sphacélé
avaient sphacélé
Passé antérieur
eus sphacélé
eus sphacélé
eut sphacélé
eûmes sphacélé
eûtes sphacélé
eurent sphacélé
Futur antérieur
aurai sphacélé
auras sphacélé
aura sphacélé
aurons sphacélé
aurez sphacélé
auront sphacélé

Sphacélâmes serait donc la déclinaison à la première personne du pluriel du passé simple de l’indicatif. Mais qui sur Terre irait utilisé ce verbe à la 1ère personne du pluriel comme du singulier ? De qui plus est au passé-simple ? Est-ce que les cellules biologiques ont une conscience au point d’avoir des conversations entre-elles dans un langage précieux ?

  • Mon cher globule blanc ! qu’eussiez vous fait dans la soirée du vendredi ?
  • Comme à inaccoutumé, avec les cousins nous sphacélâmes entre deux parties de mitose

Comma-separated values

For de mon travail à PriceMinister, j’ai la chance de manipuler des pelles entières de fichiers dits csv. Ces fichiers sont directement édités de logiciels tiers qui proposent de faire des exportations dans ce format, et pourtant il ne savent pas le faire correctement. J’ai donc écrit un petit script qui rectifie une bouillie en un fichier propret.

Qu’est ce qu’un csv

C’est un fichier texte qui représente des données tabulaires. Chaque ligne représente un enregistrement. Chaque enregistrement est composé de champs délimité par un même caractère que l’on nomme le séparateur. Ce champ peut-être entouré de guillemets. Ainsi, si nous trouvons le séparateur entre ces guillemets, il sera interprété comme étant un caractère typographique. Enfin, les guillemets typographiques doivent à leur tour être doublés.

Le script

Excel, HomeBase, FileMaker… ne savent pas faire ce type de csv standard. C’est pourquoi j’ai écrit cette petite moulinette qui corrige le fichier source.

function csv_ise($string, $sep = ",") {
	for($cleanex = '', $tok = strtok($string, $sep); $tok !== false; $tok = strtok($sep) ) {
		if( $tok{0} == '"' ) {
			$tok = ($tok{strlen($tok)-1}=='"') ? substr($tok, 1, -1) : substr($tok, 1) .','.strtok('"'.$sep);
			$tok = preg_replace('`n`', '<br>', $tok);
		} 
		elseif( substr_count( $tok, '"') === 1 ) {
			$tok = $tok .','.strtok($sep);
		}
		$tok = preg_replace('`([^"]|^)("|\")([^"]|$)`', '$1""$3', $tok);
		$tok = '"'.$tok.'"';
		$tok = preg_replace('`(([nr])+)`', '"$2"', $tok);
		$cleanex .= $tok . $sep;
	}
	unset($string, $sep, $tok);
	return $cleanex;
}

Bon transfert de données !

New Look ?

Delphine fait une double dans le magazine New Look. Moi je mets à jour mon site web.

Voilà deux mois que je travaille à cette petite révolution, ce qui explique mes absences. Le thème général reste quasiment le même, mais le cœur à complètement changer. La version précédente était excellente lors de son déploiement, mais avec le temps elle était devenue inadaptée au contenu qu’elle proposait. C’est corrigé !
Les patrons des pages ont été entièrement réécrit ainsi que la css qui l’accompagne, la colonne centrale est plus large et le texte plus petit. Les barres latérales des côtés apparaissent sur toutes les pages du site, et se voient agrémenter de petits modules de navigation. J’ai retirer l’avertissement concernant IE : le site actuel fonctionne mieux sous IE6 (mais pas parfaitement), et IE7 devant sortir dans la prochaine quinzaine, il devrait encore mieux s’afficher. D’autres petits bugs d’affichage que j’étais le seul à remarquer ont été corriger. Enfin il est prévu pour Firefox 2. Cette nouvelle version apporte un lot de nouvelles fonctionnalités et notamment une protection contre le Phishing. Mais la vraie révolution, c’est la correction orthographique ! Il introduit un nouvel attribut spellcheck="true" à insérer dans les input type=text et les textarea. Tous les petits mots mal orthographiés des contributeurs seront soulignés d’un fin pointillé rouge, comme sur Safari.

Tout ça c’est bien, mais il n’y a pas de quoi casser des bonbons. En effet, la vraie petite révolution est que le site est entièrement microformaté. C’est à dire qu’il utilise les attributs, id et class des balises xhtml de manière standardisée, afin que la page soit compréhensible pour une machine comme pour un humain. Pour voir comment une machine traduit mes pages, installez le plugin Tails pour Firefox.

Bidouilles sévères

Celà fait 10 jours qu’avec Damien, on prépare la refonte du site de la IAC Studio. Bien que l’existant est agréable a utiliser, il date d’il y a plus de 2 ans, il commence sérieusement à être dépassé par le nouveau Web 2.0

On a trois axes d’amélioration :

  • Look’n’Feel : le site va être beaucoup plus graphique que l’actuel monolithe. On va expérimenter un nouveau genre en le rendant un peu plus barge. On est parti de l’idée de la petite graine qui pousse. L’internaute pourra créer sa page de navigation : à chaque lien qu’il cliquera, le contenu s’ajoutera à la suite de la page courante.
  • Refaire la navigation : Elle ne va pas trop changée, on va juste déplacer 2 – 3 catégories pour le rendre plus convivial. On va développer la notion de blog.
  • Nouveaux services : On va ajouter de nouveaux services. On va commencer par agréger nos billets de nos blogs respectifs sur la Iac et il poser des mots clés Technorati. On va proposer du RSS 2.0.1 et quelques fantaisies en Javascript. Le site ne se transformera pas en usine à gaz, mais on espère rendre son utilisation agréable. Et il y aura une petite surprise pour les écrans larges.

Maintenant, vous pouvez imaginer dans quel état fébril on se trouve. Personnellement, je me retrouve assez bien dans la description de l’homme qui se couche avec son portable, publié dans cet article du NYT. Anne pourra témoigner, j’aime bidouiller sur mon MacBook.

Nouveau moteur pour petits tracas ordinaires

Jean Pierre Raffarin rocks !
J’ai changé le John Noone.

D’une superbe page unique il devient une sorte de réel portail d’info. J’ai décidé de le changer et d’élargir son champ d’utilisation : Ania naissant, d’autres projets étant en cours, j’avais besoin de créer une sorte de fil d’infos, pour mettre au courant tout le petit monde de ma bulle.

J’ai choisi de pervertir le moteur de blog WordPress, petit bonheur d’ergonomie. Télécharger quelques modules. Les raboter à ma sauce. La réalisation de ce nouveau site fut très rapide. Et biiim, voilà le résultat.

Petit jeu : reconnaissez-vous le rockeur de cette photo ?