lundi 27 février 2012

Check Disk


Un check disk est programmé par défaut tout les 30 démarrage depuis Ubuntu 10.04. Il me semble avoir lu que le check existait déjà avant aussi, mais c'est surtout depuis 10.04 que j'y suis confronté.

Au bout d'un certain temps, c'est tout simplement insupportable parce que, bien entendu, c'est toujours quand au pire moment (pendant LA réunion) le check disk se lance. Un peu comme les mises à jour Window$ qui ont le chic pour vous gâcher votre journée.
Le check disk pose en outre un autre problème. Dans certain cas, il s'avère extrêmement long. L'interface propose d'annuler le check disk en appuyant sur la touche C mais cela ne fonctionne généralement pas bien. Je vous conseille le combo CTRL+ALT+F1 pour poursuivre le boot.

Voici comment configurer cette caractéristique :

sudo tune2fs -c xxx /dev/sdx#


xxx peut prendre des valeurs plus importantes (5000 par exemple).
Si vous souhaiter déactiver complètement le check, vous pouvez remplacer xxx par 0 ou -1.sdx# sera sda1 ou autre en fonction de vos disques.

Une autre façon de travailler consiste à prévoir le check disk une fois par mois (par exemple) :

sudo tune2fs -i 1m /dev/sdx#


Une fois par semaine : -i 1w ; une fois par an : -i 12m ; etc.


Si vous souhaitez forcer un check après un reboot, voici la ligne de commande :

sudo touch /forcefsck


Il est également possible d'inclure cette commande dans un script et de le lancer automatiquement au moment du shutdown.

Voila comment on lutte efficacement contre la frustration.


vendredi 24 février 2012

OpenOffice - Table des matières

Lorsque l'on crée un document structuré avec le Writer OpenOffice, il est très appréciable d'insérer une table des matières qui reprend les différents éléments de titres.

Problème : lorsqu'on ajoute la table, il arrive que des lignes non formatées en titre apparaissent dans la table des matières. Totalement insupportable!

La solution consiste à modifier le format de paragraphe correspondant à ces lignes.

  1. Sélectionnez la ou les lignes, clic-droit > Paragraphe.
  2. Rendez-vous dans l'onglet Plan & numérotation.
  3. Pour le niveau de plan, choisissez corps de texte par exemple.
  4. Pour le style de numérotation, choisissez Aucune.
  5. Validez en cliquant sur ok.
Après ceci, retournez sur votre table, clic-droit > Actualisez l'index/la table. Ça marche!


jeudi 23 février 2012

DRM


Vous voulez lire vos DVD honnêtement procurés sur votre PC qui tourne avec Linux mais ces salopards de l'industrie du cinéma vous ont abîmé vos DVD avec leurs saloperies de DRM et vous ne parvenez pas à lire vos DVD. Simplement honteux.
Heureusement, quelques lignes de commandes vous sortirons de ce mauvais pas :


sudo apt-get install libdvdnav4 libdvdread4 ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly
sudo /usr/share/doc/libdvdread4/install-css.sh

Et c'est la fête!


lundi 20 février 2012

Problème avec un montage de disque

En bidouillant un peu hier soir, une de mes clés USB s'est mise à m'insulter, refuse de se monter à l'insertion et pour couronner le tout, le pc m'affiche un méchant message "Le lecteur de disque de /media/sg1 n'est pas encore prêt ou n'est pas présent" à chaque démarrage.

Une petite recherche sur google me permet de résoudre le problème assez facilement.

Le fichier /etc/fstab contient une liste des points de montage de mon système. J'identifie rapidement la ligne qui correspond au montage automatiquement de ma clé. J'ignore comment cette ligne est arrivée là mais son retrait apporte la solution à mon problème. En outre, j'ai encore appris un truc sur le fonctionnement de Linux.

vendredi 17 février 2012

Javascript : paramètre optionnel

Je désire créer une fonction javascript dont le dernier paramètre serait optionnel.
Voici un exemple qui fonctionne pas trop mal :


function methode(id,value){
    var option=(arguments.length==2)?"default":arguments[2];
    alert(option);
}

Les appels possibles :

methode(1, "ma valeur");      => Message = 'default'
methode(1, "ma valeur", "autre valeur");     => Message = 'autre valeur'

jeudi 16 février 2012

PHP - contrôleur date

Depuis un certain temps, je cherche un contrôleur de date en php qui soit facile à utiliser.

En cherchant sur google, on trouve très rapidement des contrôleurs prêts à l'emploi mais leur utilisation via l'ouverture d'une fenêtre ou d'un div ne me plaît pas toujours.
Ce que je voulais, c'était plutôt une fonction PHP facile à appeler et qui offre un contrôleur simple à utiliser et qui me permette de changer la date, le mois et le jour avec la même simplicité/rapidité.
En plus, je souhaite figer le contrôleur pour éviter que les utilisateurs puissent corrompre le format de ma date (entrer 16/02/2012 au lieu de 2012-02-06).

Je me suis donc retroussé les manches et vous présente ici le résultat de mes efforts.

Le contrôleur se présente comme ceci :


Le code est englobé dans deux méthodes PHP.
La première contient des fonctions javascript communes.
La seconde permet de créer le code html de mon contrôleur.
L'appel se déroule comme ceci :

<? // Fonctions communes
CalendarJS();
 
//Creation de deux controleurs
GetCalendar("date1", "2010-07-28");
GetCalendar("date2", "2012-02-16");
?>
Voici le code de la méthode GetCalendar() :

 <? function GetCalendar($nom,$valeur){?>
<TABLE border="0" cellpadding="0" cellspacing="2">
<TR>
<TD><img src="../images/plus.jpeg" onclick="Add('<?=$nom?>',1)"></TD>
<TD><img src="../images/plus.jpeg" onclick="Add('<?=$nom?>',2)"></TD>
<TD><img src="../images/plus.jpeg" onclick="Add('<?=$nom?>',3)"></TD>
</TR>
<TR>
<TD colspan="3">
<INPUT type="hidden" name="<?=$nom?>" id="<?=$nom?>hidden" value="<?=$valeur?>">
<INPUT type="text" id="<?=$nom?>" maxlength="10" size="10" value="<?=$valeur?>" disabled="true">
</TD>
</TR>
<TR>
<TD><img src="../images/moins.jpeg" onclick="Sub('<?=$nom?>',1)"></TD>
<TD><img src="../images/moins.jpeg" onclick="Sub('<?=$nom?>',2)"></TD>
<TD><img src="../images/moins.jpeg" onclick="Sub('<?=$nom?>',3)"></TD>
</TR>
</TABLE>
<? }?>
L'INPUT visible est mis en disabled=true ce qui oblige à créer un clône invisible qui, lui, sera visible dans le POST de votre formulaire html.

Voici le code de la méthode CalendarJS() :


<? function CalendarJS(){?>
<SCRIPT>
// Fonction qui permet d'ajouter soit une annee, un mois ou un jour a notre controleur de date
function Add(objet, champ){
// Lecture de la valeur date
valeur = document.getElementById(objet).value;
// Decoupage des champs et convertion des valeurs en entier
  annee = parseInt(valeur.substring(0,4));
if(valeur.substring(5,7)=="08") mois=8; // bug javascript
else if(valeur.substring(5,7)=="09") mois=9; // bug javascript
  else mois = parseInt(valeur.substring(5,7));
  if(valeur.substring(8,10)=="08") jour=8;        // bug javascript
else if(valeur.substring(8,10)=="09") jour=9; // bug javascript
else jour = parseInt(valeur.substring(8,10));
  switch(champ){
  case 1:
// ajouter une annee
annee++;
// cas des annees bisextiles
// On evite d'arriver a des situations du genre 2012-02-29 + 1 an = 2013-02-29
if(mois==2 && jour>28) jour=28;
  break;
  case 2:
// ajouter un mois (si on est decembre, on incremente l'annee)
  if(mois==12){
  annee++;
  mois=1;
  } else mois++;
// On evite d'arriver a des situations du genre 2012-01-30 + 1 mois = 2012-02-30
if(mois==4 || mois==6 || mois==9 || mois==11){
if(jour>30) jour=30;
} else if(mois==2) {if(jour>28) jour=28;}
break;
  case 3:
// ajouter un jour
  if(mois==1 || mois ==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12){
// cas des mois en 31 jour
  if(jour==31){
// on passe du 31 du mois au 1er du mois suivant
  jour=1;
  if(mois==12){
  mois=1;
  annee++;
  } else mois++;
  } else jour++;
  } else if(mois==4 || mois==6 || mois==9 || mois==11){
// cas des mois en 30 jour
  if(jour==30){
// on passe du 30 du mois au 1er du mois suivant
  jour=1;
  if(mois==12){
  mois=1;
  annee++;
  } else mois++;
  } else jour++;
  } else if(mois==2){
// cas de fevrier
if(annee % 4 == 0) {
// si annee bissextile
    if(jour==29){
// on passe du 29 fevrier au 1er mars
    jour=1;
    mois=3;
    } else jour++;
    } else {
    if(jour==28){
// on passe du 28 fevrier au 1er mars
    jour=1;
    mois=3;
    } else jour++;
}
}
break;
}
// Conversion des resultats en chaine de caracteres
sannee = annee.toString();
smois = mois.toString();
if(smois.length==1) smois="0"+smois;
sjour = jour.toString();
if(sjour.length==1) sjour="0"+sjour;
// on re-injecter les valeur dans le champ date et son champ cache
  document.getElementById(objet).value = sannee+"-"+smois+"-"+sjour;
document.getElementById(objet+"hidden").value = sannee+"-"+smois+"-"+sjour;
}
// Fonction qui permet de retirer soit une annee, un mois ou un jour a notre controleur de date
function Sub(objet, champ, valeur){
// Lecture de la valeur date
valeur = document.getElementById(objet).value;
// Decoupage des champs et convertion des valeurs en entier
  annee = parseInt(valeur.substring(0,4));
if(valeur.substring(5,7)=="08") mois=8; // bug javascript
else if(valeur.substring(5,7)=="09") mois=9; // bug javascript
  else mois = parseInt(valeur.substring(5,7));
  if(valeur.substring(8,10)=="08") jour=8;        // bug javascript
else if(valeur.substring(8,10)=="09") jour=9; // bug javascript
else jour = parseInt(valeur.substring(8,10));
  switch(champ){
  case 1:
// retirer une annee
annee--;
// cas des annees bisextiles
// On evite d'arriver a des situations du genre 2012-02-29 - 1 an = 2011-02-29
if(mois==2 && jour>28) jour=28;
  break;
  case 2:
// retirer un mois (si on est janvier, on decremente l'annee)
  if(mois==1){
  annee--;
  mois=12;
  } else {
  mois--;
  }
// On evite d'arriver a des situations du genre 2012-03-30 - 1 mois = 2012-02-30
if(mois==4 || mois==6 || mois==9 || mois==11){
if(jour>30) jour=30;
} else if(mois==2) {if(jour>28) jour=28;}
break;
  case 3:
// retirer un jour
  if(mois==2 || mois ==4 || mois==6 || mois==8 || mois==9 || mois==11 || mois==1){
// cas des mois qui suivent un mois en 31 jour
  if(jour==1){
// on passe du 1er du mois au 31 du mois precedent
  jour=31;
  if(mois==1){
  mois=12;
  annee--;
  } else mois--;
  } else jour--;
  } else if(mois==5 || mois==7 || mois==10 || mois==12){
// cas des mois qui suivent un mois en 30 jour
  if(jour==1){
// on passe du 1er du mois au 30 du mois precedent
  jour=30;
  if(mois==1){
  mois=12;
  annee--;
  } else mois--;
  } else jour--;
} else if(mois==3){
// cas de fevrier
  if(annee % 4 == 0){
// si annee bissextile
  if(jour==1){
// on passe du 1er mars au 29 fevrier
  jour=29;
  mois=2;
  } else jour--;
  } else {
  if(jour==1){
// on passe du 1er mars au 28 fevrier
  jour=28;
  mois=2;
  } else jour--;
  }
  }
  break;
  }
sannee = annee.toString();
smois = mois.toString();
if(smois.length==1) smois="0"+smois;
sjour = jour.toString();
if(sjour.length==1) sjour="0"+sjour;
  document.getElementById(objet).value = sannee+"-"+smois+"-"+sjour;
document.getElementById(objet+"hidden").value = sannee+"-"+smois+"-"+sjour;
}
</SCRIPT>
<? }?> 

Libre à vous d'utiliser ce bout de code et de l'adapter à vos besoins.

mercredi 15 février 2012

Monter un serveur LAMP

Envie de vous lancer dans du développement php?

Voici les lignes de commandes qui vous permettront d'installer un serveur LAMP (acronyme pour Linux Apache MySql Php) sur une machine virtuelle ou un serveur physique.

Le serveur


Pour commencer, il vous faudra choisir, télécharger et installer un serveur dans une des nombreuses distributions Linux. Moi, j'ai utilisé un serveur Ubuntu par simple question d'habitude.

Si vous êtes vraiment allergique aux lignes de commandes (qu'est-ce que vous fichez ici alors!) vous pouvez toujours installer une version minimaliste de gnome :


>sudo apt-get install gdm gnome-core xfonts-base xserver-xorg

Installation du serveur Apache


>sudo apt-get install apache2
>sudo apt-get install libapache2-mod-chroot+

Voila, ce n'est pas plus compliqué. Pour relancer le service après chaque installation ou modification du paramétrage, >sudo service apache2 restart


Installation de php


>sudo apt-get install libapache2-mod-php5
>sudo a2enmod php5


Pour paramétrer la configuration, ça se passe dans /etc/php5/apache2/php.ini


Installation de MySql


>sudo apt-get install libapache2-mod-auth-mysql
>sudo apt-get install mysql-server


Installation de l'interface phpmyadmin


Ce n'est pas obligatoire mais ça facilite l'administration de vos bases de données en vous offrant une belle interface graphique.

>sudo apt-get install phpmyadmin (à ce moment, il vous faudra définir les accès à l'interface)
>sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin


Installation d'un serveur FTP

Pratique si vous écrivez vos pages php dans un bel éditeur graphique sur votre pc de travail pour ensuite les envoyer sur le serveur.

>sudo apt-get install proftpd


Il vous faudra ensuite éditer le fichier /etc/shells et ajouter la ligne /bin/false.
Un répertoire /home/ftp/ a été créé sur le serveur.
Pour paramétrer le serveur ftp à votre convenance, veuillez éditer le fichier /etc/proftpd/proftpd.conf (adresse du port, nom du serveur, nombre de personne qui peuvent s'y connecter, etc.)
Enfin, démarrez le serveur :

>sudo /etc/init.d/proftpd start

Installer un accès ssh


Une bonne astuce pour accéder à votre serveur à distance - à partir de votre pc de développement par exemple - est d'utiliser une connexion ssh. Pour pouvoir l'utiliser, vous devez installer un serveur ssh sur votre serveur LAMP :

>sudo apt-get install openssh-server


Openssh-client est installé par défaut sur les postes ubuntu. Putty vous sera utile si vous travaillez sous Window$.
Attention à bien configurer votre firewall (ufw) pour permettre la connexion.


Pour plus de documentation sur tous ces programmes, je vous conseille la lecture des articles dédiés sur ubuntu-fr :





Ceci devrait constituer une bonne base pour démarrer vos premiers "Hello world!" en php.
Je vous renvoie également à ce précédent article si vous voulez afficher des graphiques dans vos pages.

Enjoy ...



lundi 13 février 2012

Suppression de fichiers


Vous désirez récupérer un fichier que vous venez juste de supprimer.
Pas de panique, il est possible de le récupérer mais attention, plus vous attendez, plus le risque qu'il soit définitivement détruit augmente.

Une solution consiste à employer Foremost

sudo apt-get install foremost

pour récupérer ce qui est récupérable :

sudo foremost -t typefile -i /dev/sda1

où typefile peut être jpg, gif, png, bmp, avi, exe, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, cpp ou all. Attention, cette opération peut s'avérer assez longue en fonction de l'âge de votre OS.

Foremost crée un répertoire output/ dans le répertoire où vous avez lancé la commande. Il ne reste plus qu'à fouiller. Pour consulter le répertoire, il vous faudra au moins lui donner les droits en lecture. L'inconvénient de la méthode est que les fichiers sont renommés par un code qui n'est pas très parlant. En plus, si Foremost vous retrouve plusieurs centaines de fichiers, vous êtes bon pour passer les fichiers en revue un à un.


Dans le cas où, au contraire, vous souhaitez qu'un fichier ne soit pas récupérable. Par exemple, un fichier ultra-confidentiel. Vous pouvez utiliser la commande Shred un peu à l'image d'une déchiqueteuse.
Sans argument, Shred réduira le contenu de votre fichier en bouillie mais ne le supprimera pas. Voici un petit exemple d'utilisation dans lequel le fichier est réécrit 50 fois avec des zéros puis supprimé.

shred -uvz -n 50 monfichier



samedi 11 février 2012

Logithèque (part. 3)


La bureautique

Parlons de la suite open-office ou libre-office, c'est selon, Miss Bricola. J'utilise Writer tout les jours au bureau. L'échange de documents dans un environnement window$ fonctionne assez bien à condition de respecter certaines règles.
La première : lorsque je crée des documents, j'utilise toujours le format odt. On m'a conseillé de le faire car il est plus stable que le format doc. Je converti en pdf ou en doc au moment de les envoyer à mes collègues. Ça peut paraître lourd ou inutile mais c'est devenu une habitude. En suivant cette méthode, personne n'a jamais eu à se plaindre des documents que j'envoie.
En ce qui concerne la réception de documents, c'est une autre chose. Plus l'utilisateur essaie de faire de la "mise en page" moins ça ressemblera à quelque chose sur mon PC. Heureusement, cela reste assez rare dans les faits. Le principal problème vient du logiciel Impress. La mise en page est très rarement respectée lorsque j'ouvre un ppt.
Enfin, Calc, me convient dans la plupart des cas. Là où ça coince, c'est lorsque j'essaie de cumuler plusieurs feuilles de calcul comprenant des diagrammes. Ça rame comme pas possible au bout de 10 graphiques. De même, j'ai régulièrement des plantages lorsque j'encode des dates dans des documents d'une dizaine de feuilles.  J'imagine que ces problèmes se régleront avec les mises à jour ou les prochaines versions. J'apprécie son utilisation mais sans ignorer ses limites.
De manière générale, utiliser cette suite en alternative à la suite de Micro$oft au quotidien ne m'a jamais posé de problème. Je ne veux pas dénigrer la suite M$ office, bien au contraire, il s'agit d'excellents outils. Mais l'utilisation que je fais de la suite open et les résultats que j'obtiens ne justifieront jamais le prix d'une license Micro$oft.

Gscan2pdf est un petit soft qui permet de générer du pdf. Ce qui m'a plu dans ce programme est qu'il permet de charger plusieurs images pour générer un pdf unique en un clic. C'est très pratique, par exemple, lorsqu'on veux créer un pdf contenant une suite d'impressions d'écrans pour un user-guide.

PDF-Shuffler est bien pratique pour agréger ou merger plusieurs documents pdf ou, à l'inverse, pour dégrosser un document.

Gnu cash est un soft qui vous permet de gérer un ou plusieurs comptes bancaires. Il semble possible de se connecter directement avec certaines banques mais cette option ne m'intéresse pas. En pratiquant un encodage quotidien, il me permet surtout de gérer mon budget et de planifier le paiement de factures ou d'épargne. Un autre avantage du logiciel est de catégoriser ses dépenses. En jouant sur les catégories sur plusieurs années, on peut alors sortir des graphiques qui renseignent sur l'évolution du budget transport ou logement par exemple. Je le recommande pour les bons pères de famille.

Calibre est le soft essentiel pour qui consomme des ebooks régulièrement. Il permet de convertir à peu près n'importe quel document vers d'importe quel format pdf, epub, rtf, txt, etc.


jeudi 9 février 2012

Graphiques en php

Comment afficher des graphiques sur une application web-based en php?
Une collection de fonctions php a été créée pour réaliser plusieurs types de graphiques et les afficher sur votre site/application. Il s'agit de jpgraph.

Dans un premier temps, il faut se procurer la version appropriée de jpgraph, en extraire le contenu et copier le contenu de src/ dans votre espace de travail.
Pour les fainéants, voici les lignes de commandes :

sudo mkdir /var/www/jpgraph
cd /var/www/jpgraph
sudo tar zxcf jpgraph-<votre_version>.tar.tz

Il faut prendre de soin d'ajuster les droits sur les différents éléments, par exemple : 755 pour les répertoires et 644 pour les fichiers. Voici un petit script pour nos chers fainéants :

#!/bin/bash

find /var/www/jpgraph -type d -print0 | xargs -0 chmod 775
find /var/www/jpgraph -type f -print0 | xargs -0 chmod 664
chmod 755 /var/www/jpgraph
chmod u+x $0

Il reste une petite bug fonctionnalité à fixer. Elle se trouve dans le fichier src/gd_image.inc.php.
Vous devez commenter la ligne JpGraphError::Raise(25128) dans la méthode SetAntiAliasing().

Ceci étant fait, vous pouvez vous inspirer des différents exemples dans src/Examples/ afin de construire et customiser vos propres graphiques.


lundi 6 février 2012

Ligne de points

Voici une petite astuce pour l'utilisation du Writer d'OpenOffice.

L'astuce consiste à remplir plusieurs lignes avec des points et ce, indépendamment du texte en début de ligne de la police de caractères.
Pour ce faire, il faut :
  1. Ouvrir le menu Format > paragraphe et choisir l'onglet Tabulations
  2. Fixer la position de la prochaine tabulation en fin de ligne (exemple : 16 ou 17 cm)
  3. Définir le type de tabulation à droite
  4. Définir le caractère de remplissage (le point .)
  5. Finalement il suffit de faire une tabulation et la ligne se remplira automatiquement de points et ce jusqu'à la position définie à l'étape 2.



vendredi 3 février 2012

Un peu de nettoyage

Ceci est plus un témoignage qu'une véritable astuce.

Tandis que je mettais quelques logiciels à jour, j'ai eu un petit problème de corruption de mon fichier /etc/apt/sources.list.
Je décide donc de l'ouvrir pour "voir" ce qui clochait mais je n'y découvre rien de particulier.
Ensuite, par simple curiosité, je consulte le répertoire /etc/apt/sources.list.d/ et y découvre un certain nombre de "cadavres". Je décide donc de faire un peu de ménage dans ce fouillis et - o joie - mon apt-get update fonctionne à nouveau comme au premier jour.
Une bonne façon d'y voir un peu plus clair par l'intermédiaire d'une interface graphique consiste à utiliser software-properties-gtk.

Je continue donc sur ma lancée, bien décidé à nettoyer un peu les coins poussiéreux : fichiers temporaires, cache, cookies flash (oui, ça existe), paquets oubliés, ... Voici quelques lignes de commandes à placer dans un script shell :

# Vider le cache des navigateurs
rm -R /home/user/.opera/cache/*
rm /home/user/.opera/temporary_downloads/*
rm /home/user/.mozilla/firefox/xxxx.default/Cache/*
rm /home/user/.thumbnails/normal/*
rm /home/user/.cache/google-chrome/Cache/*
rm /home/user/.cache/chromium/Cache/*

# Vider les coockies flash
rm -rf /home/user/.macromedia/Flash_Player/macromedia.com/support/flashplayer/s ys
rm -rf /home/user/.macromedia/Flash_Player/#SharedObjects

# nettoyer les paquets apt-get
apt-get remove
apt-get autoremove
apt-get clean
apt-get autoclean

Et voila, ça fait du bien de temps à autre.


mercredi 1 février 2012

Apps android


Voici quelques applications android que j'utilise quotidiennement.



Gaude Battery Widget vous permet d'afficher le niveau de votre batterie avec une meilleure précision que l'icône qui se situe dans la barre android. Le widget peut s'afficher sur la page d'accueil et ressemble un peu à un compteur de vitesse.



gReader est une application qui vous permettra de lire vos flus RSS. En réalité, il s'agit d'une interface android pour google reader. Je ne vous conseille pas l'officiel de google mais bien le lecteur développé par noinnion. Pourquoi le préférer à la version officielle? Tout simplement parce que la version officielle vous oblige à être connecté pour pouvoir lire vos flux tandis que celle de noinnion récupère vos flux et vous permet une lecture offline.



Je vous parlais récemment de podcasts et vous conseille donc Listen, une application qui vous permet de télécharger et d'écouter vos podcasts favoris. Si vous arrêtez l'écoute d'une émission, le lecteur vous permet plus tard de reprendre là où vous en étiez précédemment.



Google+ est l'app officielle du réseau social du même nom. Elle est élégante mais a un gros défaut, elle ne permet pas de lecture offline. Détail amusant, vous pouvez prendre une photo, l'envoyer dans picassa et la poster sur votre profil en un clic.



Si vous voulez dire au monde entier où vous vous trouvez ou devenir le maire de la fritterie du coin, Foursquare est pour vous. J'y ai joué un peu et puis ça m'est passé. C'est amusant mais ça n'a pas duré longtemps chez moi.



Pour consulter les status Facebook, Twitter et Foursquare, Tweetdeck est une application simple qui permet une lecture offline et affiche les trois réseau sociaux (facebook, twitter et foursquare) dans un seul flot. J'aimais bien l'application Seesmic au début mais il faut basculer entre les différents réseaux sociaux ce qui m'a vite découragé.



APN on-off Widget est vital si, comme moi, vous ne supportez pas de payer plus de trois euros par mois d'abonnement GSM. Ce petit widget vous permet de désactiver votre connexion DATA en un clic. Le principe est simple et donc génial, il modifie le nom du serveur de connexion MMS et WAP. Il ne vous reste plus qu'à utiliser le wifi dès que vous trouvez un réseau.



Ultra Voice Changer n'est pas une application essentielle mais un petit gadget amusant. Cette app vous permet d'enregistrer un petit message et de changer votre voix selon une pré-selection d'effets qui vont de la possession démoniaque au chipmunk en passant par le message lu à l'envers.



Sonomètre - Sound Meter, à nouveau n'est pas une application fondamentale. Elle vous permet de mesurer le bruit environnant en décibel. Amusant et inutile donc indispensable.



Barcode Scanner vous permet de scanner des barcode et des QR code. Cela fonctionne particulièrement bien sur des codes suffisamment grands et bien illuminés. Oubliez les codes minuscules.



Enfin, je terminerai par mon app mobile préférée, Aldiko eBook Reader. Il s'agit d'une application de lecture d'ebook. Très simple à utiliser et configurable à souhait, elle permet d'emporter sa bibliothèque dans sa poche. Depuis que j'ai découvert cette appli, je me suis réconcilié avec la lecture malgré l'utilisation de la voiture au quotidien.