On discutait le weekend dernier avec Liz de l’apparition des langages de programmation. Et bien c’est aujourd’hui Google qui lance le sien. Le dernier s’appelle « Go » pour le moment. Je précise pour le moment car ce nom est déjà utilisé pour un langage de programmation. Il semble que « Go » soit un mix des langages de programmation Python et C++. Connaissant la puissance de Google, il faudra donc suivre l’évolution de ce langage qui ne peut être utilisé à grande échelle pour le moment
Category Archives: Informatique
Internet a 40 ans
Il y a quarante ans s’échangeait un message entre deux ordinateurs distants. Situés à l’université de Los Angeles pour l’un et Stanford pour l’autre, ces deux pc utilisaient à l’époque le réseau Arpanet, l’ancêtre d’Internet. A l’origine destiné à une utilisation militaire, il en a dépassé les applications prévues à l’origine.
La Maison Blanche en open source
Depuis ce week end, le monde de l’open source a une fois de plus pris une part de marché aux logiciels payants. On assiste depuis quelques années à une montée en puissance des logiciels open source pour plusieurs raisons :
- L’open source s’est professionnalisé. La notion de « gratuité » est de moins en moins associé aux problèmes de sécurité.
- L’écart dans de nombreux domaines entre l’open source et le payant s’est réduit.
De très nombreuses administrations migrent vers l’open source, de Microsoft Office vers Open Office par exemple. Ce week end, c’est le site de la Maison Blanche qui est entrée dans le monde du libre en migrant son site web vers Drupal.
Migration Dékio réussie
Prévue depuis la semaine dernière, la migration de version eZ Publish pour les sites www.dekio.fr, www.art-decoration.fr, www.maison-travaux.fr s’est très bien passée ce matin. Les sites utilisent donc aujourd’hui la dernière version (4.1.3) du CMS eZ Publish, l’extension ezoe (« online editor ») ainsi que la dernière version des eZ Components.
Migration WordPress
Cela faisait un moment que je voulais faire ma première migration de version sur le CMS WordPress. Auparavant en version 2.7.3, le blog est désormais à jour avec la dernière version 2.8.4. Cela s’est très bien passé. Je n’ai pas eu besoin de faire la moindre intervention manuel pour corriger un problème, c’est agréable.
Cette dernière version corrige qui plus est une faille récemment mise à jour permettant de changer le mot de passe admin…
Astuces PHP
A heure tardive post orienté informatique. Aujourd’hui je vais vous présenter quelques astuces (tips en anglais) de langage permettant de gagner de la place, de ne pas rallonger inutilement le code, d’éviter des erreurs basiques… La liste n’est évidemment pas exhaustive mais cela pourra toujours vous aider de les connaître. Ces astuces ne s’appliquent d’ailleurs pas uniquement au PHP.
Bien utiliser les expressions booléennes
Que l’informaticien, développeur… qui n’a pas eu un jour à abuser des if/elseif/else lève le doigt. Il est nécessaire d’optimiser ces codes pour éviter qu’ils prennent trois kilomètres de long.
/*Boolean Expressions optimization*/
if ($a == true) {
if ($a == true) {
print "coucou";
}
else if($b == true) {
print "coucou";
}
}
Le code ci-dessus devrait être le suivant.
/*Boolean Expressions optimization*/
if ($a && ($b || $c)) {
print "coucou";
}
Utiliser for à la place de while
/*Use for instead of while*/
$i = 0;
while($i < 18) {
/*SOMETHING TODO*/
$i++;
}
/*Shorter*/
for($i = 0; $i < 18; $i++) {
/*SOMETHING TODO*/
}
Utiliser la récursivité
La récursivité n’est pas toujours bien comprise ni utilisée. Une mauvaise utilisation amène très vite à des programmes qui tournent en boucle dans le vide. Le principe de la récursivité est d’effectuer le même traitement sur un élément. Ci-dessous se trouve la célèbre suite de Fibonaci
/*Write recursively*/
function fibonacci($n) {
$f1 = 1;
$f2 = 0;
$total = 0;
if( $n == 0 || $n == 1)
return $n;
for($i = 2; $i <= $n; $i++) {
$fib = $f1 + $f2;
$f2 = $f1;
$f1 = $fib;
}
return $fib;
}
/*Shorter*/
function fibonacci($n) {
if ($n <= 2) return 1;
else return fibonacci($n-1) + fibonacci($n-2);
}
L’opérateur ternaire
Je parlais plus haut de réduction du nombre de lignes de code lors de l’utilisation des if. Il est possible de réduire encore plus avec l’opérateur ternaire. Celui permet d’écrire un if/else sur un seule et unique ligne.
/*Ternary Operator*/
if ($iCompteur > 550)
$bBool = true;
else
$bBool = false;
/*Shorter*/
$bBool = $iCompteur > 550 ? true : false;
/*Even shorter*/
$bBool = $iCompteur > 550;
Combinaison arithmétique et opérateurs
Il s’agit sans doute de l’astuce la plus connue et utilisée. Elle permet d’identifier tout de suite ce qui est effectué.
/*Combination Arithmetic and Assignment Operators*/ $iCompteur = $iCompteur + 1000; /*Shorter*/ $iCompteur += 1000;
Il en existe d’ailleurs un certain nombre qu’il faut connaître.
/*Combination Arithmetic and Assignment Operators*/ += Addition -= Soustraction /= Division *= Multiplication %= Modulo .= Concatènation ++ Incrémentation de 1 -- Diminution de 1 |= Opérateur logique ou &= Opérateur logique et ^= Opérateur logique ou exclusif
Sens d’écriture du if
Entre le test et l’assignation à une variable, il n’existe dans la plupart des langages qu’un caractère de différence. Il est très facile de l’oublier et ainsi de générer une assignation alors qu’on voulait écrire une expression booléenne.
/*Test*/ if ($a == 1) echo "coucou"; /*Setting the variable $a to 1*/ if ($a = 1) echo "coucou"; /*Could be written this way to avoid the mistake */ if (1 == $a) echo "coucou"; /*The following code would generate a fatal error you would detect*/ if (1 = $a) echo "coucou";
Accès au blog
Les lecteurs assidus l’auront remarqué, le blog n’était plus accessible depuis quelques jours. En effet nous avions lancé une routine automatique sur notre serveur dédié, mais celle-ci a apparemment planté quelque part et rendu inaccessible toute les applications du serveur. L’assistance technique a résolé le problème et finit la manipulation commencée le week end dernier.
Tout est désormais revenu à la normale…
Star Wars en ascii art
Aujourd’hui je vous propose un petit post de pur Geek. Certains d’entre vous connaissent peut être le ASCII art. En fait cette notion est connu de tout le monde, absolument tout le monde. En voici quelques exemples :
-
- ‘-(
- ^_^ (que Lyr et moi utilisons beaucoup
Vous l’avez compris, l’ASCII art consiste à réaliser des images à partir des caractères ASCII. L’image ci-dessous vous montre ces caractères.
Les smileys font parti de cet art, c’est pour cela que tout le monde connaît l’ASCII art sans vraiment savoir ce que c’est. Voici un exemple qui je pense devrait rappeler des souvenirs aux personnes de notre génération.
MMMMM
MMMMMM
MMMMMMM
MMMMMMMM .
MMMMMMMMM
HMMMMMMMMMM
MMMMMMMMMMMM M
MMMMMMMMMMMMM M
MMMMMMMMMMMMM M
MMMMMMMMMMMMM:
oMMMMMMMMMMMMMM
.MMMMMMMMMMMMMMo MMMMMMMMMMMMMMM M
MMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMM. oMMMMMMMMMMMMMMM.M
MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: H
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM . MMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMM
.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMMMMMM
MM. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M MMMMMMMMMMMM
MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM .MMMMMMMMMMMMMM
MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
.MMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
HMMMMMMMMMMMMMMMMMMMMM.MMMMMMMMM.MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM MMM.oMMMMMMM..MMMMMMMMM:MMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMM MM..MMMMMMM...MMMMMMM. MMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM ..MMMMMM...MMMMMM ..MMMMMMMMMMMMMMMMMMM
MMMMMMM:M.MMM.M.. MMMMM M..MMMMM...MMMMMMMMMMMMMMMMMM MMM
MMMM. .M..MM.M...MMMMMM..MMMMM.. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM .
MMMM..M....M.....:MMM .MMMMMM..MMMMMMM...MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMM.M.. ...M......MM.MMMMM.......MHM.M .MMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMM..MM. . MMM.....MMMMMM.M.....M ..MM..M MMMMMMMMMMMMMMMMMMM
.MMMMMHMM. ..MMMM. MMM............o..... . .MMMMMMMMMMMMMMM
MMM. M... .........................M..:.MMMMMMMMMMMM
oMMM............ .................M.M.MMMMMMMMM
.....MM........................ . MMMMMM
M.....M.....................o.MM.MMMMMMMM.
M........................M.. ...MMMMMMMMMMMMMo
:....MMM..............MMM..oMMMMMMM
M...MMM.............MMMMMMM
.............:MMMMMMMM
M..... MMM.....M
M M.............
................M
ooM.................MM MoMMMMMoooM
MMoooM......................MoooooooH..oMM
MHooooMoM.....................MMooooooM........M
oooooooMoooM......... o........MoooooooM............
Mooooooooooo.......M.........Moooooooo:..............M
MooMoooooooooM...M........:Mooooooooooo:..............M
M..oooooooooooo .........Mooooooooooooooo..............M
M...Mooo:oooooooo.M....ooooooooooooooooooo..M...........M
...oooooMoooooooM..Mooooooooooooo:oooooooM.M...........M.
M...ooooooMoo:ooooMoooooooooooooHoooooooooH:M. ...........:
M..MoooooooMoooooooooooooooooo:ooooooMooooMoM..............M
M..ooooooooooMooooooooooooooHoooooooMooHooooM...............M
...ooooooooooooooooooo:MooooooooooooooMoMoooM................
M...oooooooooooooooooooooooooooooooooooooMooMM................M
...MooooooooooooooooooooooooooooooooooooooooMo ................
...MooooooooooooooooooooooooooooooooooooooooM M................M
M...ooooooooooooooooooooooooooooooooooooooooM ................M
...MoooooooooooooooooooooooooooooooooooooooMM .:...............
.....MooooooooooooooooooooooooooooooooooooMoo .............M
M...... ooooooooooooooooooooooooooooooooooooM M..............M
M........MooooMMM MM MM MMMMMMMMMooooooooM M...............M
.........HM M: MM :MMMMMM M M...............
M..........M M MoM M M................M
M.........:M MoH M M M MooooHoooMM. M M...............M
M..........Moooo MMooM oooooMooooooooM M..............H
M.........MooooM Mooo : ooooooMooooMoooM M........ . .o.M
H.. .....ooooo oooo M MooooooooooooooM M... MMMMMMMMMMM
MMMMMMMMMMooooM M oooo . ooooooMooooooooM .MMMMMMMMMMMMMMM
MMMMMMMMMMooooH : ooooH oooooooooooooooo MMMMMMMMMMMMMMM
MMMMMMMMMMoooo ooooM Moooooooooooooooo .MMMMMMMMMMMMMMM
MMMMMMMMMMoooo ooooM MooooooooooooooooM MMMMMMMMMMMMMMM
MMMMMMMMMMoooM ooooM ooooooooooooooooo MMMMMMMMMMM:M
MMMMMMMMMMoooM MooooM oooooooooooMoooooo MH...........
. ......Mooo. MooooM oooooooooooooooooo M............M
M.M......oooo MooooM Moooooooooooooooooo: .........M.....
M.M.....Moooo MooooM ooooooooooooooooooM .M............
.......MooooH MooooM oooooooooMoooooooooo M..o...M..o....M
.o....HMooooM MooooH MooooooooMooooooooooM .:M...M.......M
M..M.....MoooM
ooo: .MooooooooHooMoooooooooM M M... ..oM.M
M...M.:.Mooo. MMMMooooo oooooooooooMoooooooooooooM ....M. M
M:M..o.Moooooooooooooo MooooooooooooooMooooooooooooM .Mo
MooooooooooooooMooooooooooooMoMoooooooooooooo
Mooooooooooooooo:ooooooooooooooooooooooooooooo
ooooooooooooooooMooooooooooMoooooooooooooooooo
ooooooooooooooooMoooooooooooMooooooooooooooooHo
ooMooooooooooooooMoooooooooooooooooooooooooooMoM
MooMoooooooooooooo.ooooooooooooooooooooooooooo:oM
MoooooooooooooooooooooooooooooooooooooooooooooooM
MoooMooooooooooooooMooooooooooooooooooooooooooooo.
MoooMooooooooooooooMoooooooooooooooooooooooooMooooM
MooooooooooooooooooMoooooooooooooooooooooooooMoooooM
MooooMoooooooooooooMoooooooooooooooooooooooooMoHooooM
ooooooMooooooooooooooooooooooooooooooooooooooooMoMoooM
MooooooooooooooooooooMooooooooooooooooooooooooooMoooooH:
MoooooooMooooooooooooMoooooooooooooooooooooooooooooHoooM
MooooooooMoooooooooooMoooooooooooooooooooooooooMoooMooooM
Moooooooooooooooooooooooooooooooooooooooooooooo.oooMooooo
MoooooooooooooooooooooooooooooooooooooooooooooMoooooooooM
MooooooooooooooooooooMoooooooooooooooooooooooooooooooooM
MooooooooooooooooooooMHooooooooooooooooooooMoooo:ooooo
MMooooooooooooooooooMoMHoooooooooooooooooooooooMooooo
MMoooooooooooooooMMooo MMooooooooooooooooooooooooooM
MMMoooooooooooooMooooo oooooooooooooooooooooMooooo
MooMMoooooooooMoooMMoM ooooHooooooooooooooooMooooM
MooooMooooooMooooMoooM MoooooMoooooooooooooMooooo
ooooooMMooooooooMooooM MoooooooooMooooooooooooooM
HooooooMoooooooMooooM HoooooooHooMooooooooooooo
oooMoooooooooHoooM MoooooooooMoooooooooM
HooooooooooooHM MooooooooMMoooooooM
MMMMMMMMMMMMMM Moooooo:MooooHMM
MMMMMMM: ... MMMMMMMMMMMMMM
M............M MMMMMMMMM ....
M.MM.......... M.............M
M ..............MM M..............
MMMMM............MMMM ..MMMMMMMM ....M
MMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMM...M
.MMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMM
:MMMMMMMMMMMMMMMMMMH MMMMMMMMMMMMMMMMMMM
By EBEN Jérôme MMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM
HMMMMMM
Vous pouvez en trouver d’autres sur le site Ascii-fr.com
Quelques internautes se sont ainsi amusés à recréer le tout premier épisode de la saga Star Wars. C’est stupéfiant. Je vous conseille de regarder car c’est impressionnant. Pour regarder, il vous suffit de
- Sous OS X : Lancez le Terminal
- Sous Windows : Cliquez sur « Démarrer » puis « Exécuter »
Puis de taper la commande suivante :
telnet towel.blinkenlights.nl
Pour les utiklisateurs de Windows Vista, il faudra auparavant vous assurer que la commande telnet est coché dans les fonctionnalités de Windows car elle est par défaut décochée.
Merci à fufu pour l’idée…
Le pagerank du blog franchit le premier niveau
Cela fait un moment que ce blog existe, souvenez-vous bien (pour ceux qui étaient là dès le début) j’écris sur ce blog depuis maintenant quelques années et ce premier article en avril 2006. J’ai il y a peu changé de CMS car Dotclear ne me convenait plus. Il était pour moi trop limité. WordPress est actuellement le numéro un des blogs personnels en dehors des plateformes pré-construites comme les skyblogs… Les changements ont porté leurs fruits puisque le page rank google du blog a enfin passé le premier niveau, plafonnant jusqu’ici à zéro.
Revenons précisément à ce qu’est le Page Rank (PR). Je précise qu’il s’agit du page rank google pour introduire cette notion qui est propre au système le calculant. Le plus connu est celui fait par Google, mais chaque moteur de recherche calcule le page rank des sites qu’il référence. Il n’y a donc pas de normes permettant de calculer le page rank d’un site, il s’agit plutôt d’une « recette » algorithmique de calcul que personne ne connaît exactement. Le page rank est un indicateur, un score affecté à chaque site web. Cette « note » est attribué selon des critères évoluant dans le temps en fonction des technologies. Ce qu’on appelle le web 2.0 a pas mal modifié le réseau et les liens externes entre les sites. La notion de liens externes est primordiale et prépondérante, mais personne ne sait à quel point. Un lien externe est un lien entre deux sites, du site A vers le site B. On dit que le site B a un lien externe en provenance de A.
Aujourd’hui en travaillant sur le référencement du blog, j’ai remarqué que le Page rank était de un comme vous pouvez le voir sur l’image ci-dessous.
Cela fait plaisir…
Joli bug sur IE
En informatique, il est très facile de créer des bugs. Pour ce qui est des sites internet, ils peuvent être de nature très différentes.
- Erreur fatale qui affiche une page blanche…
- Erreur javascript qui coupe la navigation de l’internaute (et qui donc s’en va…)
- Erreur html ce qui donne des design déstructurés
- …
Les origines sont multiples. Les solutions sont malheureusement pour nous aussi variées que le nombre de systèmes existants. Pour donner un exemple simple et compréhensible par tous, une solution qui fonctionnera sous Firefox ne fonctionnera pas forcément sous Internet Explorer (IE 6, 7 ou 8). Un consortium s’est donc créé au début de l’internet dans le but de créer des standards, sous la forme de recommandations et non de normes. Ces recommandations ne sont pas toujours respectées pour des raisons bien trop nombreuses à expliquer ici d’autant plus que ce n’est pas l’objet de ce post.
Je vais vous détailler un bug rencontré au boulot hier et ce matin.
Vous pouvez voir ci-dessous le visuel normal du site Dékio.
Voici le visuel de la page sur les navigateurs IE 6 et IE 7 de ce matin.
Comme vous pouvez le voir, toute la partie en dessous du head de la page n’apparaissait pas, ce qui est bien embêtant. La raison en était très simple. Une balise était correctement fermée selon les standards mais cette méthode n’est pas géré par IE. Le petit bout de code était :
<span class="fond" />
alors qu’il devait être pour ne pas avoir le bug
<span class="fond"></span>
L’expérience des développeurs plus anciens a permis de corriger le problème parce que ne le connaissant pas je ne sais pas si je l’aurai trouvé…
Joli non ?




Les derniers commentaires