Archives pour la catégorie ‘Geek’

Comment ma vie est sauvée par RTM

Par Maxime, le 26 décembre 2009.

Il me semble évident que pour être productif il faut savoir se libérer l’esprit un maximum pour se concentrer sur son travail, au moins de manière temporaire. C’est pourquoi j’ai longtemps recherché un moyen de gérer mes nombreuses todo-lists de manière efficace. Depuis plus d’un an je pense l’avoir trouvé, grâce à l’excellent Remember The Milk.

rtm.png

J’avais fait partie des early adopters de Remember The Milk, à l’époque où Loïc Le Meur en parlait sur son blog (maintenant il n’a plus de blog, pauvre de nous). A l’époque, RTM était loin de faire l’unanimité dans mon cerveau, puisque toute sa puissance réside bien ailleurs que sur le service lui-même.

Autant l’interface Web est aguichante, autant sur le concept je ne trouve pas ça pratique d’avoir tout le temps une fenêtre ouverte sur ses tâches. Après tout, mon client mail est déjà ouvert en permanence, il y aurait une redondance évidente. Seulement depuis quelques temps, RTM a développé sa vraie force : Une API et de vraies applications crées autour d’elle.

ss_iphone.png

J’ai ainsi organisé ma todo-list RTM de la manière suivante :

  • Sur mon bureau : J’ai installé le gadget Gmail Labs ce qui me permet de garder un oeil sur les mails en même temps que sur mes listes en permanence, sans perdre de place pour une fenêtre supplémentaire.
  • Sur mon iPhone : J’ai téléchargé l’application RTM for iPhone, elle est aussi disponible en version Web. Elle a gagné un Apple Design Award en 2008 ce qui me dispense de disserter sur son ergonomie.

Grâce à ces deux services mes listes sont synchronisées en permanence.

ss_gmail.png

Au final, la beauté de Remember The Milk réside dans le fait que je n’utilise jamais leur interface Web (sauf pour renouveler mon abonnement), mais tous les services autour de son API. Petit bémol si vous souhaitez utiliser la version iPhone ou Android, elle est réservée aux abonnés Pro, ce qui vous en coûtera $25 par an. Si vous ne voulez pas utiliser ces services mobiles, RTM est gratuit pour la vie !

Lien : Remember The Milk (Inscription)

Le monitoring, cette belle activité

Par Maxime, le 21 décembre 2009.

Dans un récent article Comment être productif avec 5 écrans (en même temps, ils sont tous récents vu l’âge de ce blog), je vous parlais de mon écran dédié au monitoring. Voici donc le billet tant attendu. Mais je vous préviens, il risque d’être inintéressant :-)

L’hébergement des différents sites de ma société (en somme, VDM et ses déclinaisons linguistiques) est entièrement géré par SD France au niveau matériel, et par votre serviteur au niveau logiciel / administration système. La question qui s’est donc rapidement posée une fois que tout était mis en place fut celle de la surveillance de toutes ces machines, autrement appelée le monitoring.

Les premiers termes qui viennent à l’esprit lorsque l’on parle de monitoring sont Nagios, MRTG, et autres RRDTool, qui sont les outils les plus populaires dans la surveillance en réseau. Pour ma part je les ai trouvés bien trop complexes pour les quelques données dont j’avais besoin au quotidien, c’est pour cela que je me suis orienté sur une solution maison que je vais vous décrire ci-dessous.

Côté serveur

Même si tout un écran peut sembler important niveau espace, lorsque l’on parle de 27 serveurs à monitorer individuellement, il faut se montrer efficace. Il a donc fallu identifier les points-clés à surveiller. J’ai choisi les suivants :

  • Etat de la réplication MySQL : Point névralgique évident lorsque l’on parle de réplication circulaire master-master. Si un des serveurs ne réplique plus, toute la boucle est endommagée immédiatement.
  • Secondes de retard MySQL : Ce n’est pas précisément le temps de retard d’une réplication par rapport à son maître, il s’agit plus précisément de la différence entre le temps actuel et l’heure indiquée sur le log que l’esclave est en train de répliquer. Cela reste cependant un bon indicateur de l’état de santé de la réplication.
  • Connexions Apache : Permet de savoir en permanence les connexions à un instant t sur le cluster Web, ainsi que les types de connexions (lecture, écriture, slot inactif).
  • Statut du serveur Memcache : Le serveur memcache est assez sollicité pour stocker de manière centralisée les sessions PHP du cluster, ainsi que certaines données des sites.
  • Modifications sur le FTP : Plusieurs personnes travaillant sur le FTP, il est parfois utile de savoir quels ont été les derniers fichiers modifiés lorsque survient un problème inexplicable par le simple état des machines. J’ai codé un script qui établit automatiquement un diff du fichier uploadé versus le fichier original, pour plus de lisibilité.

Une fois ces points identifiés avec succès, il a fallu coder les agents qui enverront les données à un serveur central (j’ai dédié un serveur au monitoring). Ces agents envoient actuellement les informations toutes les 5 secondes via le réseau local sur une interface VLAN. Je les ai codés en PHP ou en Perl selon l’inspiration du moment. C’est un serveur Web qui récolte les données et peuple une base MySQL, mais peu importe le langage du moment que les variables sont renseignées dans la base de données.

Côté client

Ma base se peuple maintenant à la vitesse de la lumière (ou du cuivre, selon le degré de poésie). Il faut maintenant développer l’interface qui affichera les données en temps réel sur mon écran de droite.

e25v.png

Par pure déformation professionnelle, j’ai encore tâté de l’HTML. Les connexions à Apache que vous voyez ci-dessus ainsi que les secondes de retard MySQL plus bas ont été réalisées via l’excellente librairie Flash Amcharts que j’avais déjà utilisée auparavant. Cette librairie crée des graphiques en Flash à la volée, au moyen de fichiers XML ou CSV, et permet aussi de rafraîchir ses données à intervalles de temps réguliers.

awak.png

Concernant les données qui ne nécessitent pas de vision en fonction du temps, j’ai tout simplement utilisé de l’AJAX (avec jQuery) qui permet par exemple de rafraîchir l’état de la réplication MySQL et d’afficher l’erreur explicite en cas de panne. J’ai aussi utilisé cette technique pour afficher les dernières modifications du serveur FTP.

rh2t.png

Enfin, comme le résultat donne une page Web, j’avais besoin qu’elle se comporte comme une véritable application, afin d’éviter qu’elle se ferme lorsque je devais redémarrer Safari, ou tout simplement pour pouvoir placer la fenêtre de manière permanente en plein écran sur la droite. J’ai utilisé comme à chaque fois Fluid qui permet tout cela, et même bien plus avec ses librairies Javascript intégrées (vous pouvez par exemple mettre des badges ou des notifications Growl très simplement).

Et quand t’es dehors ?

Avoir un smartphone est forcément indispensable, dans mon cas c’est un iPhone. Vous n’êtes pas sans savoir qu’il ne gère pas le Flash, et quand bien même il le gérerait, ce serait trop lourd pour vérifier d’un coup d’oeil l’état de mes serveurs en Edge ou en Wap. J’ai donc codé une page HTML avec les entêtes HTML qui vont bien pour que l’iPhone considère ça comme une application à part entière :

<meta name="robots" content="noindex" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta name="format-detection" content="telephone=no" />
<meta content="yes" name="apple-mobile-web-app-capable" />
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="apple-touch-icon" href="/mgmt.png"/>
<script type="text/javascript">
	addEventListener(
		"load",
		function() {
		setTimeout(hideURLbar, 0);
		setTimeout('window.location.reload(true)', 5000);
		}, false
	);
	function hideURLbar() { window.scrollTo(0, 1); }
</script>

La page se rafraichit automatiquement toutes les 5 secondes pour me permettre de supprimer totalement la barre d’adresse de l’écran de contrôle.

J’ajoute à côté du screen une autre application qui s’appelle HostMonitor [iTunes], très pratique pour simplement tester des ports sur des machines distantes, le tout sous forme de groupes. Utile si vous voulez juste jeter un oeil sur l’état de santé de votre réseau.

IMG_0378.PNG       IMG_0379.PNG
Le monitoring version iPhone, et HostMonitor.

Un autre outil que j’utilise (mais moins souvent), c’est iStat. Cette application se présente sous la forme d’un client iPhone et de serveur à installer sur tous les ordinateurs que vous souhaitez monitorer. L’avantage est qu’il marche sur Linux aussi bien que sur Mac, avec seulement un port TCP à ouvrir sur chaque serveur. Le détail des paramètres système est paramétrable.

IMG_0376.PNG       IMG_0377.PNG
iStat en action.

Concernant l’installation sur des serveurs Linux, le code source est disponible sur Google Code. Une bonne âme a créé un paquet Debian à partir de ces sources, elle s’appelle Marius (iStat My Linux on My Phone) et le lien se trouve en bas de son article. Un coup de dpkg -i plus tard et vous avez un serveur iStat sur votre Debian (pensez aussi à éditer le /etc/istat.conf si vous ne souhaitez pas que tout le monde connaisse vos stats).

Voilà pour le billet promis, désolé si j’ai mis un peu de temps à le rédiger, et pour la consistance finale de l’article, mais j’ai eu du mal à trouver une meilleure présentation. Comme d’habitude, si vous avez des questions, je tenterai d’y répondre avec mon humble expérience.

Clavier Bluetooth avec iPhone 3G

Par Maxime, le 21 décembre 2009.

La nouvelle va peut-être passer inaperçue, et pourtant c’est une avancée que beaucoup attendaient dans le domaine des hacks iPhone : L’utilisation d’un clavier Bluetooth va bientôt être possible et ceci avec toutes les applications de l’iPhone !

vlcsnap-2009-12-21-10h01m18s4.png
Logiciel de démonstration du driver

Le jumelage de l’iPhone avec le clavier Bluetooth se fait comme sous Mac, avec un code numérique à taper sur le clavier distant. Puis l’appareil est connecté et ne souffre d’aucun lag lors de la frappe. Un vrai bonheur :-)

IMG_0381.PNG       IMG_0380.PNG

A noter que dans la version 1.0, il n’y aura pas de support du copier/coller ni de la sélection de texte, mais c’est en tout cas un début très prometteur pour les accrocs aux SMS.

Si vous avez un iPhone jailbreaké, vous trouverez la démonstration dans Rock ou Cydia sous le nom de « Keyboard Driver Demo ». La version complète devrait arriver bientôt, sûrement payante.

Mise à jour : L’application Keyboard Driver est sortie sur Cydia, au prix de $5. Je l’achète et je vous en reparlerai sûrement :-D

Site officiel : iPhone Bluetooth Keyboard Driver

S’ennuyer avec des mouches

Par Maxime, le 11 décembre 2009.

Ce soir, je m’ennuie. Alors j’ai décidé de partager mon ennui avec toi, public fougueux. Nous allons faire un petit atelier créatif. Pour cela, vous aurez uniquement besoin de mouches, d’un papier et d’un crayon. Protocole opératoire ci-dessous :

  • Tuer des mouches avec précaution (ne pas les écraser !).
  • Les mettre à sécher au soleil pendant environ une heure. S’il n’y a pas de soleil, opter pour la lampe de bureau.
  • Reprendre les mouches séchées, et laisser vagabonder son esprit via le crayon sur le papier.

Je vous laisse quelques exemples ci-dessous, qui auront, je l’espère, valeur d’inspiration (et parfois de dégoût, mais ça va c’est le week-end) :

ATT2654729.jpg
La photo finish.

ATT2654732.jpg
Don Quichote.

ATT2654735.jpg
Le night club.

ATT2654734.jpg
Piscine olympique.

Variantes spontanément proposées : Fourmis (mais pas les rouges, ça court trop vite), abeilles (plus sportif aussi).

J’espère que ça vous donnera des idées pour vos après-midi de pluie. Si vous en faites, envoyez-les moi, évidemment !

Comment être productif avec 5 écrans

Par Maxime, le 7 décembre 2009.

Certains d’entre vous doivent encore se souvenir de cette photo publiée sur mon compte Twitter il y a presque deux mois jour pour jour, juste après l’installation de mon ordinateur dans mon nouvel appartement :

dsc00205qj.jpg
Le contenu des écrans n’est pas représentatif !

On m’a accusé de temps à autres d’avoir cette configuration uniquement pour la frime, et n’en avoir aucune utilité dans la réalité. Voici donc un « petit » article pour expliquer comment avoir 5 écrans augmente ma productivité.

Le matériel

Seuls les deux LaCie ont été achetés pour l’occasion, les trois autres écrans étaient déjà en ma possession. Leur choix n’est pas spécialement primordial, les miens sont assez grands, ce qui au final est plutôt agréable si vous avez la place.

  • Au centre : Acer P244W (24″ 16:9)
  • A gauche et à droite : LaCie 324 (24″ 16:10)
  • Aux extrémités : Acer AL2216W (22″ 16:10)

Vous aurez judicieusement remarqué que les deux écrans aux extrémités n’avaient pas la place pour reposer sur la table, j’ai donc utilisé deux bras Ergotron pour les accrocher en l’air. Ce sont des bras assez chers mais qui valent vraiment le coup, pour avoir essayé leur équivalent « noname » auparavant, ça n’a rien à voir niveau qualité de fabrication.

L’ordinateur qui supporte tout cela peut aussi être n’importe quelle tour bien configurée, dans mon cas c’est un Mac Pro, avec trois cartes graphiques évidemment, pour pouvoir supporter les 5 sorties vidéo.

Le logiciel

La première réflexion qui vient souvent à l’esprit lorsque je parle de ma configuration c’est : « Ça ne t’arrive pas de perdre ta souris ? ». La réponse est si, bien sûr ! Mais il y a quelques astuces pour naviguer efficacement dans un espace aussi grand.

C’est là où les raccourcis clavier viennent à la rescousse de votre productivité :-) J’ai choisi d’utiliser Keyboard Maestro après en avoir testé quelques autres, je ne sais pas si celui-là est le meilleur mais il m’a pleinement satisfait depuis un peu plus d’un an. Ce logiciel me sert à deux choses : reconfigurer certaines touches de mon Mac pour qu’elles réagissent comme un clavier Windows (un an et demi après avoir switché, je suis toujours persuadé que le clavier AZERTY est mieux pour coder), et ajouter des raccourcis pour accéder rapidement à n’importe quelle application située sur mes écrans.

Ces raccourcis clavier sont dits globaux, c’est à dire qu’ils fonctionnent peu importe l’application où vous vous trouvez sur votre ordinateur.

yjvv.png

Au-delà de ça, j’ai aussi pris l’habitude de remettre ma souris au centre de l’écran principal avant d’éteindre mes écrans. :D

Passons maintenant au contenu des écrans à proprement parler.

Au centre

Certainement la partie la moins intéressante, l’écran du milieu me sert à coder (il vaut mieux le faire au centre, ça évite les torticolis), et à naviguer sur le Web, quelques terminaux SSH de temps en temps, rien d’autre.

A gauche

J’utilise l’écran de gauche pour iTunes (que j’utilise en permanence en travaillant), Adium (messagerie instantanée sous Mac), Gmail (via Mailplane).

gauche.png

A droite

La télécommande EyeTV de l’écran tout à gauche (voir paragraphe ci-dessous), quelques bidouilles faites avec GeekTool, Tweetie, et Google Wave, mais vu l’inutilité grandissante de ce dernier, je pense le remplacer par un autre logiciel encore à déterminer. J’utilise l’espace quand j’ai des SSH à monitorer ponctuellement.

droite.png

Les extrémités

De part leurs emplacements dans mon champ de vision, il était impossible d’envisager des écrans où je serais actif dessus. Les deux écrans me servent d’écran de « contrôle ». A droite, j’ai le monitoring de mes serveurs (qui est néanmoins primordial puisque c’est mon métier), quant à l’écran de gauche il me sert pour la télévision, souvent les infos mais aussi les reportages qu’on peut regarder d’un oeil tout en travaillant :-)

monitoring.png
Mon monitoring, qui fera sans doute l’objet d’un autre article.

J’ai essayé de ne pas trop vous encombrer de détails sur la description de ma configuration de travail. Je concluerai en disant qu’il ne faut pas croire que c’est parce que vous avez 5 écrans que vous multiplierez votre productivité par 5, mais en s’habituant un peu, les avantages s’en font vite sentir. Si vous avez des questions (ou des conseils), laissez-moi un commentaire !