Category Archives: Autres

Rediriger les liens mailto: vers Gmail sous Linux

Aujourd’hui, les webmails sont devenus assez performants. A tel point qu’on commence à abandonner les clients mails lourds au profit des webmails. Gmail est un exemple en la matière. Seulement voilà, cet usage peut être « problématique » quand on clique sur une adresse mail (dans une page Web).

En effet, quand le système d’exploitation détecte un lien mailto:, il tente de lancer le client mail par défaut et lui passe les informations du lien en paramètre. L’idéal serait qu’il appelle directement le navigateur internet en lançant la page de Gmail qui va bien. Voilà comment faire sous Ubuntu:
Continue reading

Des raccourcis clavier en ligne de commande pour gagner du temps

C’est un fait: quand on sait l’utiliser correctement, la ligne de commande est bien souvent plus simple et plus rapide sous Linux que l’interface graphique. Une fois maîtrisée, il n’y a plus qu’un seul objectif: aller toujours plus vite.

Dans cette optique, il existe des raccourcis claviers qui peuvent s’avérer très utiles. Je vous présente ceux que j’utilise, ils ont étés testés en console sous Ubuntu mais sont normalement valable pour tout ce qui repose sur un noyau Linux (voire peut être même *BSD).

  • CTRL+A: Pour déplacer le curseur en début de ligne
  • CTRL+U: Supprime tout ce qui se trouve entre le curseur et le début de la ligne
  • CTRL+W: Supprime le mot qui se trouve à gauche du curseur
  • CTRL+E: Pour déplacer le curseur en fin de ligne
  • CTRL+K: Supprime tout ce qui se trouve entre le curseur et la fin de la ligne
  • CTRL+L: Efface le contenu de la console courante
  • CTRL+P / CTRL+N: Se déplace dans l’historique des commandes comme les flèches du haut et du bas. Utile dans le cas où ces dernières ne sont pas nappées correctement …
  • CTRL+R: Permets d’effectuer une recherche textuelle dans l’historique des commandes saisies

Bien évidement, c’est loin d’être une liste exhaustive. Il ne s’agit que des raccourcis clavier que j’utilise personnellement et qui ne concernent que le gain de temps. On ne parle pas ici de la gestion des processus ou autre touches magiques …

Cache Safari de l’iPhone: pas très éfficace …

Il y a quelques jours, Éric Daspet (de Performance web) parlait de l’iPhone et de sa gestion du cache Web (sous Safari) dans un billet nommé « Encore sur le cache de l’iPhone ». Voici un extrait de celui-ci:

Encore il y a peu nous parlions d’un cache HTTP limité à 25ko par composant sur l’iPhone, 500ko au total. On parle de la taille une fois la ressource décompressée (sans gzip donc). 25ko c’est peu, la plupart des sites ont un composant qui dépasse cette taille. 500ko ce n’est pas beaucoup mieux, naviguez sur un ou deux sites et le cache aura complètement oublié vos précédentes visites. Pire, des bibliothèques javascript comme jquery dépassent les 25ko et donc ne passeront jamais dans le cache.

La bonne nouvelle c’est que cette limite est désormais dépassée. Une présentation de Nicole Sullivan indique que la limite des 25ko a disparue, et que la taille globale du cache a été doublée.

Oui mais voilà, la situation n’est pas si idyllique que ça … Dans son billet, il invite à faire quelques tests sur les différentes plateformes (iPhone et iPod Touch tous firmware confondus). Je viens de finir mes tests sur iPhone 3G dernier firmware (2.2) et voici le résultat:

  • Aucune mise en cache pour la page HTML en elle-même (même si les en-têtes HTTP le demandent explicitement). Et ce, peu importe la taille du fichier HTML.
  • Concernant la mise en cache des éléments joints (dans le cas présent: une image), ça passe jusqu’à 220Ko (une fois cette limite dépassée, le mécanisme de cache ne s’applique plus).
  • Aucune différence de comportement n’a été remarquée que l’on soit en WiFi ou bien en 3G.

Avouons le, le comportement de Safari iPhone est assez étonnant pour un développeur Web. Mais pour un développeur mobile, ça semble assez normal. Rappelez-vous que Safari iPhone peut avoir simultanément 9 « onglets » ouverts. Rajoutons aussi que Safari est une application qui peut être momentanément interrompue, puis relancée par l’utilisateur. On se retrouve donc avec des problématiques de gestion mémoires bien plus fines que dans le cas d’un développement Web « lourd ». Pour finir, rappelons (encore) que l’iPhone est un appareil mobile, donc avec une quantité limitée de mémoire …

Décompresser des archives dans des dossiers multiples sous Linux (3)

Il y a quelques temps, j’avais du faire un petit script pour de la décompression d’archives multiples sous Linux. Le script est utilisé assez fréquemment. Mais aujourd’hui, l’utilisation commence à devenir un peu plus intensive. Il s’agit de traiter, d’une commande, une plus grosse quantité d’archives. Concrètement, le script peut mettre quelques heures à s’éxecuter.

Par conséquent, il faudrait avoir un rapport à la fin de l’exécution du script. En effet, on ne peut pas lancer un script pendant une nuit entière sans avoir de rapport final. L’idée est donc de reprendre le script précédemment développé et de faire ce qui suit:

  • Rendre rar un peu moins verbeux. C’est l’option -idq qui fait ça. Elle bloque tout les messages sauf les warnings / erreurs.
  • Vérifier que chaque exécution de rar s’est bien passée. Il s’agit d’utiliser if [ $? = 0 ]; qui se traduit par Est-ce que la dernière commande exécutée à retourné 0?.
  • Faire un bilan général de l’exécution. Rien de bien compliqué, on place des compteurs un peu partout. Il faut aussi penser à garder de coté le nom des archives où ça ne s’est pas bien passé.
  • Ne supprimer que les archives dont on est certains qu’elles ont bien été décompressées.

Au final,voilà ce que donne le script:
Continue reading

Connaître son IP publique en ligne de commande

Pour des raisons X ou Y, il est souvent utile de connaître l’IP publique de sa machine. On parle ici de l’IP avec laquelle on sort sur le réseau public (Internet). En effet, on n’a pas toujours la maitrise de son réseau jusqu’à la sortie vers le monde extérieur.

L’idée générale du script est assez simple: on contacte le site WhatIsMyIp.com avec lynx (navigateur en ligne de commande … pensez à vérifier qu’il est installé sur votre machine). L’option -dump permets de récupérer la page sans les balises de formatage sur la sortie standard. Ensuite, on récupère la ligne qui contient Your IP Address Is et on affiche l’IP.

Ce qui donne au final:

Décompresser des archives dans des dossiers multiples sous Linux (2)

Hier, j’exposais mon problème (et sa solution) d’archives en pagaille : « Dans la série des petits problèmes du quotidien qui peuvent prendre des heures ou quelques minutes : en voici un nouveau. Le problème est le suivant : j’ai un dossier qui contient 544 sous-dossiers. Chacun de ces sous dossiers contient un certain nombre d’archives .zip. Ce que je veux est assez simple : obtenir au final mes 544 dossiers avec ce que contenaient les fichiers .zip. Accessoirement, je veux que les fichiers .zip dégagent. »

Aujourd’hui, j’ai exactement le même problème sauf que c’est avec des fichiers .rar qui peuvent eux même contenir des fichiers .rar. Je veux toujours que les fichiers .rar originaux dégagent. Comme je ne connais pas l’option pour choisir le chemin de destination de décompression pour la commande rar (et comme j’avais pas le temps de chercher), j’ai fait autrement. On rentre dans le dossier, on extrait l’archive, on supprime tout ce qui s’appelle nomDeLArchive.r* (car une archive rar peut être sur plusieurs fichiers du genre rO1, r02, …) et on retourne à la racine. Bref, voilà ce que cela donne :

Au final, 1532 fichiers traités en 5 minutes.

Décompresser des archives dans des dossiers multiples sous Linux

Dans la série des petits problèmes du quotidien qui peuvent prendre des heures ou quelques minutes : en voici un nouveau. Le problème est le suivant : j’ai un dossier qui contient 544 sous-dossiers. Chacun de ces sous dossiers contient un certain nombre d’archives .zip. Ce que je veux est assez simple : obtenir au final mes 544 dossiers avec ce que contenaient les fichiers .zip. Accessoirement, je veux que les fichiers .zip dégagent.

Faire ça à la main ? Je dirais (à vue de nez) : 4h de boulot rébarbatif. Non, profitons de la plateforme Linux Unix et de Bash. L’idée est simple : on liste tout les fichiers .zip de l’arborescence (pour ce faire, on utilise find) ensuite, on les dézipe (via unzip) et précisant que le chemin de destination est le même que celui de l’archive (via l’option -d le_dossier). Et hop le tour est joué ! Un petit rm –rf */*.zip pour virer les archives devenue superflues et c’est fini. Au final, voilà ce que ça donne :

Bilan de l’opération : 15 minutes pour faire le script (rédaction du billet comprise) et 6 minutes d’exécution (la machine souffrait déjà en terme de charge) pour traiter 544 dossiers et 1503 fichiers .zip pour une taille totale de 2.4Go.

PHP 5.3 en approche

Les aficionados de PHP l’attendaient: PHP 5.3 vient d’être publié dans sa version alpha1. Il s’agit de la première marche d’un long processus de développement / debug qui passera pas des alphas, betas et RC séparées de 2-3 semaines. La version finale devrait apparaître entre septembre et la mi-octobre. Celle-ci marquera un cap important. Au programme des festivités:

  • Les espaces de noms (ou Namespaces)
  • Le Late static binding
  • _callStatic
  • Les fonctions lambda
  • Ajout des extenssions intl, phar (à partir de l’alpha2), fileinfo et SQLite3
  • Le garbage collector (!!!)
  • Le support du driver MySQLnd pour libmysql
  • Nouvelles fonctionnalités syntaxiques: NowDoc, GOTO et l’opérateur ternaire ?:
  • Les version de Windows antérieures à Windows 2000 ne seront plus supportées

Bref: que du bon ! Vous l’aurez remarqué, on retrouve quasiment toutes les fonctionnalités qui étaient prévues pour PHP6. La seule qui manque, c’est la gestion de l’Unicode en natif. D’un autre coté, ce n’est pas si mal: le développement de PHP6 semble assez compromis pour le moment… Comme d’habitude, n’hésitez pas à tester et à faire remonter les bugs !

Liens connexes :
L’annonce officielle (en anglais)

A la découverte de PHP6 sur Webd

Non, l’iPhone n’est pas ouvert aux développeurs !

Comme je l’ai déjà dit ici même: je travaille en ce moment sur un projet d’application pour l’iPhone 2.0. Ca va maintenant faire un mois que j’ai commencé ce projet (avec une coupure pour aider sur un projet WebDev) et je pense qu’il est temps de faire le point sur mes impressions.

Continue reading

Comment ne plus être blacklisté de Google

Comme j’ai eu l’occasion de le dire à plusieurs reprises: la toute-puissance de Google peut poser certains problèmes. Par exemple, si Google a décidé de ne plus référencer un site, de le blacklister, les conséquences pour ce derniers sont énormes. Concrètement, cela se traduit par une baisse plus que conséquente des visites.

Le système de blacklistage de Google est cependant une bonne chose dans l’ensemble. Il permet de détecter et de sanctionner les sites qui tentent de frauder et de se retrouver en haut des résultats sans avoir de contenu en réelle adéquation avec la recherche de l’internaute. Comme tout système automatisé, celui-ci peut avoir des ratés. De même, un Webmaster peu expérimenté peut mettre en place certains éléments considérés comme frauduleux.

Pour les cas d’erreurs et de fraude involontaire, il est possible de ré-intégrer l’index de Google. Le géant de Mountain View a publié une vidéo expliquant comment corriger les problèmes sur son site et comment demander la ré-intégration de celui-ci. La vidéo est très bien faite et plutôt instructive. Je vous laisse la visionner:

Via T37.