Tracker Google Analytics optimisé
2/12/09
De nombreux sites web utilisent Google Analytics pour analyser les données de trafic. Google recommande de place ce code juste avant la fermeture du tag </body> et de s’assurer « que le code de suivis est bien le dernier élément du DOM exécuté ». Sinon le script pourrait bloquer le chargement des autres éléments.
Pour améliorer les performances du script, Google a décidé de le charger de façon asynchrone. « Contrairement à une installation traditionnelle, le suivis asynchrone optimise la manière dont les navigateurs charge le script ga.js de sorte que son impact sur l’utilisateur est réduite au minimum. » Il vous permet aussi de mettre votre code de suivis plus haut dans la page sans pour autant retarder le chargement des autres éléments.
Voici le nouveau code:
<script type="text/javascript">
_gaq var = _gaq | | [];
_gaq.push ([ '_setAccount', 'UA-XXXXX-X']);
_gaq.push ([ '_trackPageview']);
(function () (
var ga = document.createElement ( 'script');
= ga.src ( "https:" == document.location.protocol?
'https: http://www / / ssl': '') + '.google-analytics.com/ga.js';
ga.setAttribute ( 'async', 'true');
document.documentElement.firstChild.appendChild (GA);
})();
</ script>
D’après le blog de Google Analytics:
- Temps de chargement plus rapide
- Collecte de données améliorés et plus précise
- Élimination des erreurs liées à l’attente de la fin du chargement du script
[ source ]
Nouveau design de Google en test
28/11/09
De nouvelles interfaces sont en cours de tests sur Google.
Après les tests sur la page d’accueil, qui ont conduit à sélectionner un design encore plus épuré, sans boutons ni liens, Google teste maintenant de nouvelles pages de résultats (SERP). Au menu, une barre latérale (que l’on connaissait déjà) agrémentée de nouvelles icônes colorées pour différentier visuellement les catégories disponibles ainsi qu’un nouveau logo.
Il est possible de tester cette nouvelle interface grâce à un cookie que vous aller créer sur votre navigateur. Pour cela, rien de plus simple !
- Ouvrez votre navigateur préféré.
- Entrez Google.com et assurez vous d’être sur l’interface anglaise.
- Copiez puis collez le code javascript ci dessous dans votre barre d’adresse et validez.
javascript:void(document.cookie="PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com");
- Rechargez Google.com (et rebasculez éventuellement sur l’interface anglaise)
Invitations pour Google Wave
13/11/09
Google double sa capacité de stockage pour le quart du prix
12/11/09
Pour tous les utilisateurs de Gmail, vous le savez, actuellement nous bénéficions de 7,4 Go de stockage gratuitement, et ce chiffre augmente à chaque seconde.
Google propose depuis très longtemps des solutions de stockage beaucoup plus importantes, mais celles-ci sont payantes.
La baisse de prix est assez énorme, pour 400Go de stockage par exemple, on passe de 500$ à 100$. La taille maximum passe également à 16 Tera !
Avant:

Avant
Après:

Après
En comparaison, avec MobileMe d’Apple, c’est 100$ par année pour 20 Go (5$ chez Google)
Desimlock d’iPhone 3G et 3Gs avec BlackSnow
4/11/09
Geohot, encore lui, vient de réalisé l’exploit de désimlocker (changer d’opérateur téléphonique) les derniers iPhone 3G et 3Gs utilisant le baseband 05.11.07 avec BlackSnow.
BlackSnow est inclu dans la dernière version de Blackra1n RC3.
En résumé, ce qu’il est possible de faire avec Blackr1in:
- activer votre iPhone 2G/3G/3GS.
- jailbreaker votre iPhone 2G/3G/3GS et les iPod Touch 1g/2g/3g en 3.1.2.
- desimlocker votre iPhone 3G/3GS avec le baseband 05.11. (Blacksn0w)
- réactiver la fonction modem en 3.1.2.
Tutoriaux en anglais, mais très illustrés:
PHP: Break et Continue
27/10/09
Utilisation standard
Vous avez déjà sûrement utilisé la commande « break » dans vos éléments switch pour éviter de passé à la condition suivante et sortir de l’élément. Cette commande peut également être utilisée dans les boucles standards while, do…while et for. Sa fonction est la même, elle permet de casser la boucle et d’en sortir.
$i = 0 ;
while (true) {
if ($i == 10) {
break ;
}
$i++ ;
}
La boucle ci-dessus bouclera 10x puis s’arrêtera. L’utilisation est identique dans les boucles do…while et for.
La commande « continue » elle, permet d’interrompre l’itération courante pour passer à la suivante.
for ($i = 0 ; $i < 10 ; $i++) {
if ($i >= 5 && $i <= 7) {
continue ;
}
}
Cette boucle réalisera 10 itérations mais sera interrompue lors de la 6, 7 et 8ème itération.
Utilisation avancée
Les utilisations décrites ci-dessus sont standards et vous les avez probablement déjà expérimentées dans votre code. Toutefois, PHP propose en plus, le passage d’un entier à ces commandes qui permet de quitter plusieurs boucles en même temps.
for ($i = 0 ; $i < 10 ; $i++) {
for ($j = 0 ; $j < 10 ; $j++) {
if (($i + $j) % 2 == 0) {
// interrompt l'itération courante et la parente
continue 2 ;
}
if (($i + $j) > 15) {
// interrompt la boucle courante et la parente
break 2 ;
}
}
}
Ces boucles, parfaitement inutiles, nous donne toutefois un bon exemple de l’interruption de deux boucles grâce à la commande « break 2 ; » et de la même manière avec la commande « continue 2 ; ».
L’histoire de Google résumée en 2 minutes
27/10/09
A très bref retour sur l’histoire de Google au cours de ces 11 dernières années. De Stanford à Mountain View et tout autour du globe, mettant en vedette de nombreux produits différents, en commençant par BackRub (Recherche) jusqu’à Google Wave, StreetView et Chrome.
[ source ]
Blackra1n disponible en version RC2
26/10/09
Geohot vient de publié une mise à jour « RC2″ pour son outil de jailbreak d’iPhone et iPod Touch, au menu:
- Résolutions de problèmes avec les iPhone 3G
- Jailbreak « Tethered » pour les nouveaux iPhones 3Gs avec le bootroom 3.1
- « Icy » refonctionne
- Pour Windows et Mac
- A télécharger ici: Blackra1n (en cliquant sur le logo Windows ou Mac)
Si vous avez déjà Jailbreaké votre iPhone avec succès avec la précédente version de Backra1n, inutile de faire la mise à jour.
Nouveautés Apple: iMac, MacBook & Magic Mouse
21/10/09
Apple a présenté aujourd’hui une toute nouvelle gamme iMac, avec écran panoramique brillant LED de 21,5 ou 27 pouces. Le nouveau design se distingue par une surface d’écran maximale bord à bord et une coque en aluminium.
Côté configuration, le modèle 27″ dispose d’un CPU quadricœur (Core i7 en option), jusqu’à 16GB de RAM, une ATI Radeon HD 4850 (en option) et jusqu’à 2TB de disque dur.

Chaque nouvel iMac est livré avec un clavier sans fil et la toute nouvelle souris sans fil Magic Mouse (voir plus bas).
PHP: bloquer les spams avec Akismet
16/10/09
Akismet est un système visant à combattre le spam sur les commentaires de blogs, mais il peux s’utiliser également dans d’autres contexte.
Il s’agit d’un système commercial, non libre, qui autorise toutefois un usage gratuit pour les sites personnels ou non commerciaux.

Le principe est simple : chaque message à destination d’un forum est envoyé à un serveur central qui répond « spam » ou « ok ». Charge ensuite au site d’intégrer ou non le commentaire.
On peux également choisir de sauver le commentaire dans la base de données même s’il est vu comme « spam », ça permet au webmestre de contrôler l’activité d’akismet, voire de republier d’éventuels « faux positifs », messages légitimes que le serveur central d’akismet aurait fliqué comme « spam ».
Pour l’utiliser, il faut tout d’abord un clé Wordpress API qui s’obtient en s’inscrivant sur le site de Wordpress (c’est gratuit et ça prends moins de 5 minutes) ainsi que cette classe PHP5: PHP5Akismet (24k)
Pour d’autres formats comme PHP4, .Net, Ruby, … c’est par là: Developpement – Akismet
include_once('inc/Akismet.class.php');
$WordPressAPIKey = 'aoeu1aoue';
$MyBlogURL = 'http://www.maiis.ch/';
$akismet = new Akismet($MyBlogURL ,$WordPressAPIKey);
$akismet->setCommentAuthor($name);
$akismet->setCommentAuthorEmail($email);
$akismet->setCommentAuthorURL($url);
$akismet->setCommentContent($comment);
$akismet->setPermalink('http://www.maiis.ch/url/');
if($akismet->isCommentSpam()) {
// enregistrer le commentaire mais le signalé comme SPAM
} else {
// enregistrer le commentaire normalement
}

