On n’a pas fini de jouer à la hotline

help-about Toi aussi tu es l’informaticien de la famille? Toi aussi toute ta famille pense que tu peux résoudre n’importe quel problème informatique simplement en clignant des yeux? Et bien sûr pour le prix d’un sourire, mais c’est pas comme si les dépannages informatiques coûtaient cher. Et tu as beau leur expliquer que tu n’utilises plus windows, et que tu ne sauras certainement pas régler le souci, rien n’y fait!

La seule vrai solution à ce problème, c’est malheureusement de s’exiler. Ainsi il devient possible de sortir l’argument imparable: Il faudrait que je sois devant l’ordinateur, là comme ça, je vois pas. Bon bien sûr, on vous dit que vous jetterez un œil quand vous passerez pour les vacances, mais dans l’effervescence générale et pour peu que vous restiez une poignée de jour, le supplice peut être éviter.

Mais voilà Windows a brisé des familles, amputé leur fils prodigue et ils viennent de le comprendre! Voilà qu’ils nous préparent un Windows 7 avec certaines fonctionnalités assez surprenantes dont le fameux: Problem Step Recorder.

En quelques mots, plus d’excuse pour ne pas regarder le problème de l’oncle Bob qui quand il lance Internet Explorer, se lance 18 fenêtres en même temps avec des filles légèrement vêtues qui ne plaisent guère à votre tante. Il pourra vous le prouver sur le champ capture d’écran à l’appui.

On dit merci Billou! (bon en fait maintenant c’est Steve mais Billou ca sonne quand même mieux).

Déclaration de guerre à IE6

system-software-update Tous les développeurs web le connaisse et on cherche même des solutions pour l’émuler tellement ce navigateur ne veut pas quitter la scène du web, la faute à windows xp, où il est installé de série.

Et même si tout le monde est d’accord sur le fait qu’il coûte à tout le monde de s’adapter à ce navigateur, personne n’a jamais rien tenté, jusqu’à ces derniers jours. En effet Wired relayait l’information hier, certains sites influents norvégiens, puis suédois, danois ont lancé une déclaration de guerre par l’intermédiaire de message à l’intention des utilisateurs de IE6 pour leur signaler que leur navigateur était obsolète.
Une belle initiative répertoriée sur ce wiki.

Voici quelques screen des messages:
image-13
image-12

A suivre de très près, et sait-on jamais, on pourrait voir la proportion d’IE perdre du terrain plus vite que prévu… l’espoir fait vivre ;)

Prenez le contrôle de votre CSS

applications-system Votre projet est en plein sprint, les releases de corrections s’enchainent et vous devez soumettre le résultat à chaque fois à votre client. Et pourtant il y a un mécanisme des navigateurs qu’on adore en tant qu’utilisateur mais qui gène parfois en tant que développeur, la mise en cache des CSS.

Quoi de plus frustrant d’avoir en premier retour de votre client Euh, pourquoi l’image est au milieu de l’écran? alors que vous venez de passer les dernières heures à la mettre au bon endroit en retouchant votre CSS. Bien sûr vous lancez rapidement le cri de guerre adéquat F5! et la magie opère enfin.

Mais ne serait-il pas plus plaisant que d’obtenir dès le premier clic, le bon résultat?
Il y a pour cela une astuce, que bon nombre connaisse, mais qui dans un contexte de développement professionnel, est souvent lourde à mettre en place: changer le nom de votre CSS pour forcer le navigateur à la recharger et ainsi laisser apparaitre vos modifications du premier coup.

Lire la suite de Prenez le contrôle de votre CSS

IE6 sur Mac OS X, quand Linux inspire Mac

applications-internet Tous les Linuxiens, en particulier les développeurs web ont du passer le pas un jour, installer une solution le permettant de tester leur page web dans ces magnifique navigateurs qui ralentissent l’avancée technologique du web, j’ai nommée IE6 et IE7.

Là où la virtualisation se banalise grâce à des logiciels comme VirtualBox, certains utilisent encore des émulateurs dont le célèbre ie4linux.

Et bien, l’alternative pour Mac OS X existe, preuve que la pomme a quand même bien fait les choses. Et pour l’installer rien de plus simple.

Lire la suite de IE6 sur Mac OS X, quand Linux inspire Mac

Expod: extraire ses mp3 de son ipod

ipod-icon S’il y a bien une option qui manque à iTunes, c’est bien de pouvoir récupérer les mp3 une fois dropé dans son ipod.

Une fois de plus, ce manque est corrigé par un tiers par l’intermédiaire de Expod, seulement en version mac pour l’instant ce petit soft a le mérite de faire son travail et de le faire bien.

Une fois lancé, rien à faire de plus, il reconnait votre ipod connecté comme un grand:
image-9

Ensuite, on sélectionne les mp3 qu’on veut récupérer et on arrive sur une boîte de dialogue qui nous propose le format de nom de fichier qu’auront nos futurs fichiers mp3 via les tags de ces morceaux:
image-10

On choisit le répertoire de destination et l’affaire est dans le sac. Reste à voir, si ce logiciel évolue, en permettant surtout un support Windows voir Linux

Uploadez en Symfony

accessories-text-editor Quand on utilise un framework PHP aussi propre et bien pensé que symfony, on a souvent envie de continuer ce beau travail en ajoutant notre code de la meilleur des façons pour conserver la logique de l’application, MVC, héritage, composition…

Mais ce n’est pas toujours simple. Voici un petit exemple qui concerne un passage obscur de la documentation officielle des formulaires dans symfony, l’upload de fichier.

Pour commencer, il faut souvent définir dans la définition de notre formulaire le widget et le validator correspondant. Dans notre exemple, on prendra un champ nommé avatar, imaginons un classe Profil:

public function configure()
{
    $this->widgetSchema['avatar'] = new sfWidgetFormInputFile();
    // Un upload étant rarement obligatoire, 
   // le cas de l'avatar est un bon exemple, on le rend facultatif ici
    $this->validatorSchema['avatar'] = new sfValidatorFile(array('required' => false)) ; 
}

Maintenant on a bien notre formulaire qui s’affiche correctement. Le problème, si on n’upload pas de nouvel avatar, à la prochaine sauvegarde, le champ avatar sera remis à sa valeur par défaut, fonctionnement tout à fait normal en l’état.
Pour éviter ceci, voici la fonction à rajouter, toujours dans notre classe de notre formulaire Profil, c’est en fait une surcharge de la méthode save:

public function save($con = null)
{
    // On test si le champ avatar a été renseigné dans le formulaire
    if ($file = $this->getValue('avatar'))
    {
      // Si oui, on sauvegarde le fichier
      $filename = 'nomDuFichier';
      $extension = $file->getExtension($file->getOriginalExtension());
      $file->save(sfConfig::get('sf_upload_dir').$filename.$extension);
    }
    else
    {
      // Si non, on récupère la version actuelle dans l'objet Père (ici profil), 
      // que l'on insère dans le tableau de valeur du formulaire
      $this->values['avatar'] = $this->getObject()->getAvatar();
    }
 
    // Puis on lance la sauvegarde normal de la classe mère
    return parent::save($con);
}

Et voilà, nous sommes restés dans la logique métier de symfony, en surchargeant l’existant et surtout en permettant de garder notre action identique, les modifications ayant été apportées dans le modèle.

Un terminal mac os x plus sexy

utilities-terminal Quand on vient de l’univers Linux vers le monde merveilleux de la pomme, on est vite en manque de notre cher terminal, celui qui permet de faire tout ce qu’on veut rapidement et sans se heurter à une interface peu bavarde parfois.

Mais quel choc quand on a le malheur de lancer le terminal mac dans sa configuration de base:
image-30

Assez tristounet, aucune couleur et le panel de configuration est peu enclin à nous aider efficacement. Et pourtant, quand on sait que mac os x est construit sur une base unix, il serait dommage de se priver d’un terminal qui pourrait se révéler très utile, surtout pour un développeur comme moi.

On va donc se lancer dans un petit tuning de terminal.

Lire la suite de Un terminal mac os x plus sexy

Montastic, surveiller vos serveurs du coin de l’oeil

system-software-update Quand on a pas la chance d’avoir un serveur dédié pour son site web, le monitoring de ce dernier est rarement de bonne facture, et c’est bien souvent un contact sur skype ou pire encore, vous même avec quelques heures de retard forcément, qui vous informe que votre site est tombé.

Et bien Montastic permet justement de monitorer vos sites web gratuitement. Bien sûr le monitoring est très basique, il ne teste que le ping, mais c’est bien le test le plus important et le plus simple à mettre en oeuvre. Pour ce faire, il vous suffit de vous inscrire (gratuitement!), et d’indiquer la liste des sites à monitorer.

Attention à l’adresse mail utilisé pour l’inscription, c’est cette dernière qui sera utilisée pour vous prévenir si votre site rencontre des problèmes. Pensez également à retirer les sites web d’exemple, google et l’hôte inconnu sinon vous allez être vite spammé de mail.

Un très bon service, auxquels sont venus se greffer des widgets pour ceux qui ne passent pas leur journée la tête dans leur mailbox.

Pour la version mac, il faudra simplement renseigner la clé que l’on trouve dans son profil sur le site et on obtient un joli:
image-31

Un PHP5 toutes options pour votre Léopard

computerLa dernière version de Mac Os X, Léopard est maintenant livrée avec un couple PHP5/Apache 2 de série.

Il vous suffit d’activer le partage web pour lancer l’apache et une ligne à décommenter dans le php.ini pour bénéficier du support de PHP5 et ce sans rien faire de plus.

Cette combinaison suffit la plupart du temps, mais dès qu’il faut rajouter un module, librairie, PHP, ca devient vite compliqué. Que se soit GD ou ZIP, il est rarement simple, sans aucune recompilation d’installer ces librairies, pourtant assez classiques sur votre mac.

Et bien, un monsieur l’a compris, Marc Liyanage, qui maintient des versions de PHP5 recompilées pour mac avec toutes les options.

Pour l’installer, rien de compliqué, lancer un terminal puis si vous souhaitez faire un backup de votre version actuelle de PHP.

sudo mv /usr/local/php5 ~/Desktop/php5.old

Puis placez vous dans votre dossier de téléchargement habituel et télécharger la dernière version et dézippez là là où se trouvait l’ancienne.

wget http://www2.entropy.ch/download/php5-5.2.5-6-beta.tar.gz
tar -xzf php5-*-beta.tar.gz
sudo mv php5 /usr/local/

Il faut ensuite changer rajouter la conf de cette nouvelle version à notre apache

sudo ln -sf /usr/local/php5/entropy-php.conf /etc/apache2/other/+entropy-php.conf

Et on redémarre apache

sudo apachectl restart

Voilà, vous pouvez jeter un oeil à un phpinfo(), vous disposez maintenant de toutes les options pour votre PHP5.

Faites patienter à votre sauce

applications-otherAvec l’arrivée de gros frameworks javascript orienté AJAX que sont jQuery, Prototype ou Mootols, et leur intégration dans les applications PHP, que se soit les CMS ou les frameworks, il devient de plus en plus facile et abordable de dynamiser à coup d’ajax une interface web.

Mais du coup, on en demande de plus en plus, et les traitements sont bien souvent de plus en plus lourd. Et pour un utilisateur rien n’est plus frustrant que de cliquer sur un lien/bouton et ne de pas voir l’application réagir, ne serait-ce que pour l’informer qu’elle a bien compris sa demande.

On a donc trouvé la solution, de petits gif animés qui symbolisent l’attente comme par exemple:
ajax-loader ou bien ajax-loader2

Et certains ont donc eu la bonne idée de faire un générateur de load ajax avec la possibilité de changer les couleurs pour coller au mieux à votre charte graphique. Il suffisait d’y penser!

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGN1c3RvbS5jc3M8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9ob21lPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3LmFtaWNhbGVtZW50LXdlYi5uZXQvd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdl9leGNsdWRlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIFR5cGViYXNlZDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYW1pY2FsZW1lbnQtd2ViLm5ldC93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmc8L2xpPjwvdWw+