Forcer l’IPv4 au lieu de l’IPv6 sur Linux [astuce]

[niveau intermédiaire]

J’ai constaté que l’utilisation de la commande apt-get étant devenue lente, dû au fait qu’il essaie de se connecter en ipv6 au lieu d’ipv4.

Pour modifier ce comportement, et forcer votre Linux à résoudre en ipv4 de manière générale, il suffit de modifier le fichier /etc/gai.conf en enlevant le commentaire sur la ligne :
precedence ::ffff:0:0/96 100

Ajout/Suppression/Modification d’un SELECT dans IE6 qui ne se rafraîchit pas [IE6 Exception]

[niveau: débutant]

J’ai remarqué la chose suivante : j’utilise jQuery pour ajouter/supprimer des éléments dans une liste déroulante SELECT, cependant sous IE6 le rendu de la liste n’est pas mis à jour, et de fait les modifications apparaissent de façon partielle. Pour résoudre ce problème j’ai découvert qu’il faut ajouter un élément FRAME sur la page pour que le rendu soit mis à jour ! Si on utilise jQuery, cela ne fonctionne pas, il faut donc utiliser la bonne vieille méthode :

if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) == 6) {
      var f=document.createElement('frame');
      f.display="none";
      document.body.appendChild(f);
 }

Ainsi après ma modification, j’ajoute une FRAME invisible qui va forcer IE6 à rafraîchir le rendu de la page et ainsi à mettre à jour la dropdown box.

Raccourcisseur de lien personnalisable [Astuce]

[niveau débutant]

Le site http://bit.ly est un raccourcisseur de liens (shorter links) bien connu. Mais saviez-vous qu’il est possible de personnaliser le lien raccourci créé ? Par exemple au lieu d’avoir, par exemple, http://bit.ly/giGZt2 (pour ce blog), on peut créer http://bit.ly/kodono.

Pour cela, aller sur le site http://bit.ly et enregistrez vous (sign up). Après quoi vous copiez votre url dans la zone prévue à cet effet. Une fois l’adresse créée, vous pouvez cliquer sur « Customize » et ainsi créer l’extension que vous souhaitez.

Hack de la BBox pour Android [Astuce]

[niveau intermédiaire]

EDIT: une application Android existe maintenant pour BBox (et autres box) : Penetrate.

La nouvelle a rapidement fait le tour du web : le mot de pass wifi par défaut de la BBox de Bouygues Telecom se retrouve très facilement à partir du nom du réseau (appelé SSID). Ainsi on trouve un script pour Windows, et un autre pour Linux.
J’ai décidé de transcrire ce script pour Android grâce au projet Android Scripting.

Comment cela fonctionne ?

Il suffit d’installer l’application SL4A. Ouvrez l’application, puis « Menu » et « View ». Choisissez « Interpreters », puis « Menu » et « Add ». Prenez « Python » dans la liste proposée. Cela va télécharger l’interpréteur Python que vous devrez installer, puis ouvrir, et enfin suivre les instructions.

Ensuite il vous faut récupérer le script python : hack_bbox_Android.py

Maintenant connectez votre téléphone à l’ordinateur, activez le périphérique de stockage USB, et allez dans dans le répertoire « sl4a » qui doit se trouver à la racine, puis placez le script dans… « scripts » 🙂

Déconnectez votre téléphone de l’USB, et lancez SL4A, et enfin le script nommé « Hack_BBox_android.py ».

Votre téléphone (ou votre tablette) va vous montrer les réseaux Wifi disponibles autour de vous (pensez à activer le wifi avant!). Il suffit d’en choisir un qui commence par BBox pour que le script se mette à chercher la clé correspondante. Selon la puissance de votre téléphone, l’opération peut prendre jusqu’à 15 min (temps constaté sur un HTC Hero, alors qu’il faut que 2 min sur une tabelette Toshiba Folio 100).

Captures d’écran :


Les widgets de la sidebar WordPress ne se sauvegardent pas [WordPress]

[niveau: intermédiaire]

Vous utilisez WordPress et avez choisi un des nombreux thèmes gratuits qu’on trouve sur le Net. Et puis vous souhaitez utiliser la barre latérale (« sidebar ») pour afficher dynamiquement des widgets comme WordPress le permet ? Cependant vous remarquez que même en cliquant sur « Save », les widgets ajoutés ne se sauvegardent jamais…

Tout d’abord vous devez aller vérifier le fichier sidebar.php (« Barre latérale ») dans l’éditeur de votre thème.
Voici un exemple de ce que vous devriez avoir:

<ul id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
 <li id="about">
  <h2>About</h2>
  <p>This is my blog.</p>
 </li>
 <li id="links">
  <h2>Links</h2>
  <ul>
   <li><a href="http://example.com">Example</a></li>
  </ul>
 </li>
<?php endif; ?>
</ul>

C’est le code par défaut qui fonctionne pour que la sidebar s’affiche correctement. Vous devriez donc d’abord tester en insérant ce code là. On notera que s’il n’y a pas de widgets, alors la barre affichera les deux éléments définis par défaut (ici « About » et « Links »).

Maintenant, il suffit d’activer la sidebar dans le fichier « functions.php » de votre thème. Pour cela, voici le code que vous devriez avoir dans ce fichier :

<?php
if ( function_exists('register_sidebar') )
    register_sidebar();
?>

C’est tout, seulement ces quatre lignes. Il dit à WordPress qu’il doit activer une sidebar. Maintenant, les widgets doivent pouvoir s’ajouter et se sauvegarder sans problème.

Supposons maintenant que vous ne voulez pas utiliser le code par défaut, mais que vous voulez une barre latérale un peu plus personnalisée.
Voici un exemple avec des div :

<div id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
 <div class="mywidget">
  <h2 class="title">About</h2>
  <p>This is my blog.</p>
 </div>
 <div class="mywidget">
  <h2 class="title">Links</h2>
  <ul>
   <li><a href="http://example.com">Example</a></li>
  </ul>
 </div>
<?php endif; ?>
</div>

Et le code associé à mettre dans le fichier functions.php :

<?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '<div class="monwidget">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="title">',
        'after_title' => '</h2>',
    ));
?>

Maintenant vos widgets devraient s’enregistrer sans problème !

(Source: http://automattic.com/code/widgets/themes/)

Equivalent de ModalBox de okonet.ru en jQuery [javascript]

J’ai longuement cherché un équivalent en jQuery de ModalBox qui est, lui, basé sur PrototypeJS. Je voulais avoir cet effet MacOS X qu’il donne à ses fenêtres popup.

Après d’infructueuses recherches je suis finalement tombé sur SimpleModal qui propose exactement le même effet de popup basé sur un style MacOS X, et le tout pour jQuery !

J’espère que ce post servira à ceux qui cherchent comme moi un équivalent jQuery à ModalBox 🙂

Carte SD endommagée sur un téléphone Android [stockage]

[niveau expert]

Avec mon téléphone HTC Hero sous Android j’ai eu la mauvaise surprise de voir un jour un message m’indiquant « Carte SD Endommagée », m’empêchant d’utiliser cette petite carte qui stocke pas mal d’informations (dans mon cas une carte SanDisk de 2Go).

Un formatage habituel n’avait pas d’effet, j’ai dû donc passer par un formatage de bas niveau (attention, cela supprime toutes les données de la carte de façon définitive!) afin d’effacer complètement et durablement toutes les données de la carte. Pour cela, mon téléphone utilisant une rom alternative (CyanogemMod), j’ai pu le redémarrer en mode « recovery ».
Commencez par relier votre téléphone au PC Windows, puis dans les options au redémarrage il suffit de choisir « partitions menu ». Ensuite sélectionnez « mount /sdcard », puis « mount USB storage ». Normalement Windows devrait détecter votre carte SD. A partir de là vous pouvez tenter de récupérer les données les plus importantes mais vous risquez plusieurs erreurs.

Maintenant nous allons passer à un formatage de bas niveau de la carte qui va absolument tout faire disparaitre. Pour se faire vous devez télécharger le logiciel HDD Low Level Format Tool. Une fois installée, choisissez votre SD Card dans la liste des disques et procédez au formatage. Cela pourrait indiquer un tas d’erreurs, mais ignorez les. Une fois terminé, fermer le programme.

Maintenant, dans Windows, faites un clic droit sur la SD Card et choisissez l’option « Formater ». Prenez « FAT32 », et laissez les autres options par défaut. Décochez la case « formatage rapide », puis commencez l’opération. Une fois terminé, vous pouvez redémarrer le téléphone !

jQuery.ready() avant le chargement des images [Javascript]

[niveau: intermédiaire]

Pour ma société je dois travailler sur IE7. Il se trouve que j’utilise jQuery (1.4.4) avec Microsoft Sharepoint pour customizer certaines pages. J’ai remarqué que sous mon IE7 la fonction jQuery(document).ready() n’était appelée que lorsque les images étaient complètement chargées; cependant ce comportement ralentissait grandement les modifications que je cherchais à faire.

Après quelques recherches j’ai découvert une solution qui fonctionne pour moi sur le blog de Nexxar : il suffit d’ajouter try { jQuery.ready(); } catch {} à la fin de la page HTML pour que notre fonction ready soit activée avant que toutes les images ne soient pleinement téléchargées !

Corriger le décalage de son/image [vidéo]

Je suis un heureux possesseur d’une Freebox, et j’utilise le Freeplayer (via le module Homeplayer), cependant il arrive que les vidéos diffusées sur la télévision subissent un décalage du son par rapport à l’image au fur et à mesure de la transmission.

Pour éviter un tel problème, il suffit d’utiliser le tout petit programme BatchUnpack.exe. En deux clics vous pourrez corriger le problème et avoir une vidéo avec plus aucun décalage de son 🙂