Trucs de geek

La table de nuit la plus cool du monde ...

Posted on mai 14, 2008

… C’est la mienne :)
photo.jpg

Le pied

Une SGI Indigo avec une IP20, un CPU R4000SC à 100MHz, 32Mo de RAM, la board graphique XZ, et un disque de 1Go.

Je l’ai achetée avec son écran de 19”, son clavier blindé, et la souris.

L’OS est IRIX 6.5.20, si je me souviens bien. Ca fait un moment que je ne l’ai pas démarré. Beaucoup trop bruyante.

je m’en suis servie plus d’un an en tant que machine principale en 2000-2001. La RAM manquait pour Netscape alors celui-ci tournait sur un serveur linux derrière, et était déporté avec X11 sur l’Indigo.

L’Indigo est célèbre pour avoir été utilisé dans la synthèse du T1000 liquide dans Terminator 2.

La tablette

La tablette est une slab, une NextStation N1100.

Dedans il y a un 68040 à 25MHz, de la RAM et un disque dur et une boîtier en magnésium (je crois). Je ne l’ai jamais démarrée, sans clavier, sans écran, impossible ; c’est encore en tablette qu’elle me sert le mieux …

C’est sentimental de toute façon. Je me souviens avoir lu jusqu’à l’usure le SVMMac annonçant la sortie de la première NeXT et je me suis dit “Un jour elle sera mienne, oh oui, Un jour elle sera mienne”.

Bref, elle ne tourne pas. C’est pas grave. Je suis en train de taper ce texte sur la version actuelle de NeXTstep, Mac OS X.

L’ensemble

L’accord couleur n’est pas parfait. Et je sais que Significant Other ne l’aime pas beaucoup.

Mais c’est le top du top de 1990. J’aimais déjà beaucoup les machines à cette époque (j’avais 13 ans). Surtout celles que je pouvais pas me payer ; La NeXTStation valait $5 000 et l’Indigo dans les $20 000.

EC2 : La tentation de puissance

Posted on mai 02, 2008

Amazon Elastic Computing Cloud, aka EC2, mon nouveau jouet.

En quelques clics, on dispose d’une puissance de feu capable d’affronter à du Slashdotting, du Facebooking ou du Digging.

Jusqu’à récemment, EC2 était à la fois sexy et limité.

Les deux manques (d’avant)

Pas d’IP statique : il fallait utiliser un provider de DNS dynamique pour maintenir le lien avec le monde extérieur (oui, comme avant, avec l’ADSL de Francetélécom).

Pas de stockage en mode bloc persistent : La plus grosse instance (octo-core, 15Gig de RAM) a bien 1,5 To de stockage, mais en cas de arrêt de l’instance (volontairement du locataire ou involontairement en cas de défaillance matérielle sur la machine qui héberge la machine virtuelle), on perd tout.

Heureusement, un écosystème s’est développé pour pallier aux manques. Elastic Drive, par exemple, est un module FUSE qui permet de monter un bucket S3 en système de fichier par bloc.

Du coup pour héberger une base de donnée, on crée une partition RAID 1 : d’un côté la partition non persistente, mais performante de la machine EC2, et de l’autre, lent mais fiable, le stockage sur S3.

En cas de crash, le RAID est reconstruit à partir du S3.

Ah non, ça ne manque plus …

On peut maintenant avoir des IP statiques, et c’est implémenté avec beaucoup d’élégance. Les IPs sont décorrellés des machines virtuelles, et on peut faire pointer une IP d’une machine à une autre instantanément. Les IPs statiques sont limités à 5 par compte AWS, et coûtent $0.01 lorsqu’elles ne sont pas utilisées/

Le Persistent Storage arrive lui aussi. Des partitions (jusqu’à 1To) peuvent être attachées à n’importe quelle instance EC2 (pas de partage toutefois). On peut ensuite en faire des snapshots sur S3.

How cool is that ?

Le système est encore en closed beta, j’attends avec impatience mon invitation pour tester le service.

Pour quels usages ?

La souplesse

Le prix de la plus petite instance par mois est de 45 Euro. Pour une machine de la puissance d’une dédibox vieux modèle. Donc pas vraiment rentable en soi.

Mais, on y gagne la souplesse. Si je m’y suis bien pris, si j’ai un pic de trafic (durable ou non) je peux en quelques minutes augmenter le nombre de mes serveurs et donc la charge que peut encaisser mon site/service.

Et encore mieux, je peux diminuer le coût de mon infrastructure si la réalisation de mon business plan n’est pas aussi réussie :)

Et il ne faut pas négliger tous les coûts annexes lorsqu’on installe un cluster de machines : il faut des switchs (redondants) des routeurs (redondants) de quoi faire des backups (redondants), et aligner la force de frappe en fonction de la charge prévue.

Cette souplesse ne vient pas toute seule, il faut développer et/ou des outils de management, pour faciliter le déploiement. Ces deux articles abordent le déploiement rapide.

On peut automatiser encore plus, en allouant ou libérant des machines en fonction de la charge. Les serveurs d’application, souvent déployés en share-nothing (comme Ruby on Rails) sont lancés facilement (pas d’état à transférer). La solution Scalr propose tout ça. Ça a l’air super cool. Mais j’ai pas encore pu tester, l’appli PHP de contrôle plantent sur mon portable …

Un besoin spontané

Je me suis mis récemment à utiliser tsung, l’outil de load testing de Process-One. (oui, ceux qui maintiennent ejabberd)

Un soft erlang/OTP qui permet de rejouer des sessions HTTP préalablement enregistrée avec son recorder. C’est un proxy qui génére le fichier de configuration.

Tsung permet de faire des “attaques” distribuées sur plusieurs machines.

Sexy, mais mon MacBook Pro derrière sa ligne ADSL ne sera jamais aussi violent qu’un serveur dans un datacenter.

J’ai donc créé une Amazon Machine Image (à partir d’une Ubuntu 8.04) qui va exécuter Tsung à partir d’un fichier passé en paramètre :


ec2-run-instances ami-0146xxx -t m1.large -k cle  -f tsung.xml.zip

Le fichier est décompressé et tsung se lance. Une fois le testing fini, le rapport est généré, et disponible via le navigateur.

Avec la ligne ci-dessus, j’ai un quadcore avec 8 Go de RAM dans un datacenter d’Amazon qui travaille pour moi.

Je vais probablement publier cette AMI quand je l’aurais fignolée, et j’espère pouvoir la configurer de manière lancer directement un cluster de machines qui vont se répartir la charge.

Pour conclure

Ce serait bien si la solution pouvait venir en Europe (S3 y est bien) … Profitons déjà du dollar faible, et de l’énorme marché américain :p

Et j’ai hâte de tester PersistentStorage !

Mulder ouvre son blog !

Posted on avril 22, 2008

Mulder, aka David Robin, retente l’expérience du blog.

Il y cause Java, Talend, LDAP, que du lourd :)

C’est par là !

[Updated] Optimiser la clope

Posted on mars 30, 2008

[Update : après 2 jours]

Voici les raisons qui ne sont pas celles pour lesquelles je fume

  • devoir sortir sous la pluie venteuse de janvier
  • ne plus aller au comptoir d’un café

Voici les raisons pour lesquelles je fume

  • dépendant à la nicotine
  • dépendant au geste
  • dépendant au café-clope

La solution :

Image 10.png

Disponible aussi en noir.

On met une cartouche de nicotine parfumée à l’intérieur, on aspire, et on récupère de la vapeur d’eau avec de la nicotine.

Pas de fumée, pas de tabagisme passif ; ton voisin te remercie – et toi aussi tu te peux remercier !

Combien ?

Allez voir sur le site. Ca ne se rentabilise pas immédiatement, vu que la clope coûte 90 €.

Mais les recharges valent moins de 2 euros, et sont à peu près équivalentes à 1 paquet de clope.

Et alors ?

C’est carrément positif.

On sent bien le kick de nicotine, et le café passe très bien avec !

Le truc pèse assez lourd (y a une batterie qu’il faut recharger).

Le goût n’est pas terrible, mais n’est pas horrible non plus.

Mais en face de tous les avantages (listés ici ou pas), au final, le goût ne peut pas lutter.

Deux jours après

Convaincu … Je n’ai plus envie de fumer une clope.

La technique : faire des aspirations un peu forte au début, et dès que la vapeur, y aller doucement … et s’arrêter quand ça gratte la gorge :)

Ma recharge a duré 36 heures ; je viens de la changer.

Et la santé ?

Un médecin néo-zélandais actuellement conduit une étude. Les résultats intermédiaires sont disponibles.

Le modèle utilisé est celui de Ruyan, dont la Sedansa n’est qu’un rebranding.

Le Dr Murray Laugesen nous dit :

The Ruyan® e-cigarette is designed to be a safe alternative to smoking, and on examination from a number of aspects, appears to achieve this aim.

Géopolitique

Les ecigarettes sont été inventées, fabriquées et vendues par des entreprises chinoises.

L’idée d’une cigarette qui soit sans danger pour la santé est évidemment un truc qui est censé plaire à tout fumeur. Les perpectives d’un marché captif de 30% de l’humanité (chiffre au pif) qui est en train de se faire chasser de partout!

Philip Morris et les autres américains qui tiennent actuellement le marché devraient s’inquiéter. L’âge d’or (et de goudron) est fini, les chinois attaquent de front.

(Et je les en remercie)

Le code et le bébé

Posted on mars 20, 2008

Ca fait maintenant deux mois que Martin n’a plus de nounou. Cela explique mon relatif silence ici. J’explique :

Celle-ci a perdu son agrément à la suite d’une histoire assez obscure. Je ne vais pas m’étendre dessus, mais je pense qu’elle et sa famille sont d’origine algérienne.

IMG_0018.jpg

Quelles sont les options ?

  • la crèche ? bof, un mois d’adaptation, des horaires super rigides
  • une autre nounou ? on espère que la situation soit temporaire, alors une autre nounou, on trouve ça un peu prématuré.
  • le papa, qui bosse beaucoup à la maison.

Pour une solution temporaire, la dernière option est bien sûr la plus simple. Enfin, de l’extérieur …

code + bébé = journées bien remplies

Ah ça oui. C’est dur d’atteindre une concentration suffisante pour résoudre les défis informatiques d’aujourd’hui sur une période supérieure à 15 minutes lorsque bébé est réveillé.

A cela s’additionne les défis de s’occuper d’un bébé tout seul, et il faut ordonnancer et synchroniser les tâches pour minimiser les temps de maintenance.

Malheureusement l’outil n’est pas scriptable et fait parfois preuve de mauvaise volonté.

Mais un certain nombre de plans sont possibles :

Plan M comme Mamie

Depuis quelques semaines, la grand-mère de Martin vient à la maison deux jours par semaine pour s’occuper de Martin et faire des balades dans le parc à côté.

J’en profite pour coder plus et faire un tour au bureau. (mais en fait, je travaille beaucoup mieux à la maison).

Plan C comme Chat

Malgré lui, bien malgré lui, Boulette le chat s’occupe de Martin une heure par jour.

Plan B comme Bouffe

A utiliser cependant avec modération. Un bout de pain de mie, tranquillité garantie.

Plan S comme Sieste

3 heures de tranquillité par jour !

Mignon

A delà de tous ces plans, je suis vraiment content de pouvoir passer autant de temps avec lui.

Martin a 14 mois et chaque jour il …. bla bla bla .. (insérer ici 12 lignes de commentaires du père ébaubi devant sa progéniture qui chaque jour découvre le monde un peu mieux)

En gros : c’est dur, mais je ne regrette rien !

Jusqu’à quand ?

On en sait rien. A priori quatre mois maximum. Mais ça dépend d’une décision de justice (celle de Bobigny, Seine Saint Denis) … A suivre.

NetNewsWire gratos !

Posted on janvier 10, 2008

Le meilleur lecteur de feed vient de voir son prix baisser de $30.

Téléchargez-le et utilisez-le (achetez un mac si nécessaire)

Outre son interface très sympathique, il est possible de le synchroniser avec NewsGator, qui propose une interface web pour l’iPhone. Et je ne peux pas le dire mieux que Caféine sur twitter : “NG iPhone do POWNZ :)”

Stevostin sur le papier

Posted on décembre 01, 2007

Couverture Stevostin
Greg, un de mes associés, a une vie parallèle. En plus de son rôle de directeur artistique pour Ohm Force, il raconte aussi des histoires.

Stevostin, son alter ego dans World of Warcraft, est sorti en bandessiné et avec de la couleur !

C’est drôle, et on est même pas obligé d’avoir une Maîtrise de culture d’Azeroth pour se marrer, parce que ces cons d’elfes en prennent plein la gueule (les autres aussi).

On retrouve aussi Magnum aka Franck, notre bon chef de projet, dans le rôle du Taureen Shaman et son “bisou qui guérit”.

On le trouve chez tous les bons libraires, comme ici, par exemple.

A bicyclette

Posted on novembre 12, 2007

Ce matin, avant d’aller donner un TP de bases de données à l’ECE, je suis allé chez Décathlon acheter un vélo. Je voulais prendre le premier prix, mais la selle était bien dure, donc montée en gamme, avec un B’Twin 5 avec une selle avec du gel dedans.

Les grévistes peuvent gréver (sic), rien à faire (avant aussi, y avait rien à faire à part les détester)

Au niveau des performances, c’est pas mal. Le premier benchmark entre le Décathlon Porte de Montreuil et le café en bas de la rue du Bac avec le café posé sur ma table et vélo garé/antivol verrouillé : 40 minutes.

Et y a de la place pour l’optimisation vu que je n’ai pas trouvé le trajet optimal.

Le GPS m’indique une distance de 11km, sur un trajet relativement sympa : Nation, Bastille, île de la Cité, quartier latin.

J’ai quand même réussi à dérailler boulevard Diderot :/

La sécurité et le wifi

Posted on novembre 08, 2007

malin.jpg

Un screenshot pris pendant un TP.

Ma déontologie m’empêche de fouiller, et pourtant, on trouverait des trucs cotons !

Ceci dit, l’utilisateur lui-même n’est pas le seul en faute… Si je me souviens bien, l’interface de Windows est tellement décourageante qu’on a pas envie de mettre un mot de passe.

SVN et PHP : attention !

Posted on novembre 08, 2007

PHP

Le site GForceSoftware nouveau est arrivé.

Il est hébergé sur le serveur d’Ohm Force dont j’ai la charge ; c’était une expérience intéressante, car je devait mixer une application à base de Servlets avec une application PHP, derrière le même domaine.

En frontal, il y a nginx, le serveur http russe léger et qui fonce.

Pendant 24 heures, il y avait un trou de sécurité flagrant, qui permettait de récupérer le code source des scripts php, à cause de svn. (je me suis tapé sur la tête quand je m’en suis rendu compte. Heureusement en analysant les logs, personne n’a eu l’idée de l’exploiter).

SVN

Le déploiement sur la production, c’est un checkout des scripts. C’est à dire que tous les répertoires ont un répertoire .svn qui contient les métadonnées sur les fichiers du répertoires ainsi qu’un cache contenant les fichiers originaux tels qu’ils sont stockés sur le repository svn.

Les fichiers originaux sont identifiés par une extension svn-base.

La faille

Or la configuration du serveur est d’envoyer le contenu tel quel pour une extension inconnue.

Du coup, on pouvait récupérer le code de la page d’index avec ce lien :

http://www.gforcesoftware.com/.svn/text-base/index.php.svn-base

Pas glop.

La correction

Donc pensez bien à ajouter la configuration suivante dans votre serveur web (ici pour nginx) :


location ~ .svn/ {
        deny all;
    }

La conclusion

C’est un des trucs qui me plaît le moins avec PHP, le fait que l’arborescence détermine l’URL, je préfère un MVC un peu plus abstrait comme avec les servlets ou avec Rails. On a beaucoup plus de souplesse, sans s’encombrer de rewrite rules trop complexes.

Vu que pour le MVC, toutes les URLs sont masqués derrière le contrôleur l’utilisateur ne sait même pas quel est l’arborescence système.

Sur le site Ohm Force, les JSP elles-même sont cachés dans le répertoire WEB-INF dont le contenu n’est pas publié.

Slides sur OLAP

Posted on octobre 09, 2007

Voici les slides du cours sur OLAP que j’ai donné cette semaine à l’ECE. Ce cours dure en gros 1 heure.

Ces slides sont basé sur le site de Bernard Lupin, Osez OLAP !, que je vous invite à consulter.

Ils s’accompagnent d’une démonstration sur Pentaho Mondrian, un serveur OLAP open source en Java.

Serveur dédié Team Fortress 2 sous Linux

Posted on octobre 06, 2007

Le serveur Djudge! Team Fortress 2 tourne. Sur le serveur qui vous sert en ce moment ce billet.

Vu que c’est basé sur le moteur Source, j’imagine que tous les admins de CS:S savent déjà tout ça, mais j’ai un peu lutté, donc je résume.

On choppe Steam et on télécharge le serveur de TF. C’est gros, vu qu’on télécharge aussi Half-Life 2.


sudo mkdir /usr/local/steam
cd /usr/local/steam
sudo adduser steam
sudo chown steam /usr/local/steam
sudo su steam

wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
# tapez yes
chmod +x steam
./steam -command update -game "tf" -dir 

il faut reprendre la dernière ligne plusieurs fois, parce qu’on se fait déconnecter.

Ensuite il faut ouvrir les ports du firewall.

J’utilise iptables-restore et iptables-save pour respectivement charger et dumper mes règles à partir de l’entrée standard.

Voici les règles que j’ajoute à mon fichier /etc/iptables.up.rules


#Source server
-A INPUT -p udp -m udp --dport 1200 -j ACCEPT
-A INPUT -p udp -m udp --dport 27000:27015 -j ACCEPT
-A INPUT -p udp -m udp --dport 27020 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27030:27039 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 27015 -j ACCEPT
# a placer avant cette ligne :
-A INPUT -j DROP
# et les autres DROP

Qu’on charge ensuite avec :


sudo iptables-restore < /etc/iptables.up.rules

Pour finir on lance le serveur :


cd /usr/local/steam/orangebox
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24 +map ctf_2fort

Le serveur doit indiquer à un moment qu’il se connecte sur les serveurs steam, et c’est bien.

Une fois qu’il est lancé, la console reste accessible pour donner des commandes (kick/ban user etc)

La liste des commandes peut être affiché avec :


cvarlist mp
# et
cvarlist sv

On peut les sauver dans un fichier log avec


cvarlist log listecvar.txt
Il est donc recommander de lancer le serveur dans un terminal virtuel comme `screen`.

screen 
./srcds_run -console -game tf +ip ip -port port +hostname "Mon serveur" +maxplayers 24

Avec : control-a-d pour se déconnecter du terminal et screen -r pour se ré-attacher au terminal.

Sources : le forum de http://www.teamfortress2.fr/

Beyond Relational : cours donné à l'ECE

Posted on octobre 02, 2007

J’ai appris tardivement que je devais donner un cours de base de données de 3h aux élèves de dernière année en spécialisation SI.

Elèves que j’avais eu l’année dernière, on avait passé une trentaine d’heures sur les SGBD, et j’avais envie de changer de sujet …

Du coup, j’ai préparé un cours que j’ai appelé sans peur “Beyond Relational : Large Dataset / Phat throughoutput”. (Oui, les slides sont en anglais, je ne savais pas non plus si le cours devait être en français ou en anglais).

Les sujets abordés :

  • la montée en charge des bases relationnelles pour les applications web, et comment la gérer,

  • les algorithmes et l’architecture de Google : the almighty MapReduce, GFS, BigTable et Sawzall,

  • Erlang/OTP et Mnesia, et une implementation de MapReduce en Erlang,

  • CouchDB qui est un sujet bien chaud en ce moment.

Ci-joint mes slides, qui évidemment ne font qu’accompagner le discours (ca me fait trois heures, hein).

Toutes mes sources sont listés sur le dernier slide, donc.

Mon objectif caché derrière ce cours était aussi d’ouvrir ces élèves, qui vont bientôt se retrouver dans les DSI de leur rappeler que Java et Oracle n’est pas la seule et unique réponse à tous les problèmes ;)

La semaine prochaine j’ai encore 3 heures avec les mêmes. Je ne sais pas encore quels sujets je vais aborder, le responsable d’option a l’air de tenir à une intro sur OLAP, donc au moins un peu de ça. Et ptet bien un concours de vitesse de réalisation des TP de l’année dernière :)

Encoder des films pour le P990i et le P1i sur Mac

Posted on août 23, 2007

Ayant une carte de 1 Go sur mon P990i, il me fallait la remplir … avec de la vidéo !

Les AVI ne passent pas nativement sur le téléphone, et nécessite de les convertir vers un format reconnu. Soit le 3gp, soit le mp4.

Il faut aussi un outil. ffmpeg est le couteau suisse ultime de la conversion vidéo. Toutefois dans un accès de flemmardise, je suis passé par le front-end ffmpegX, dont j’ai sauvé quelques réglages.

En voici deux :

L’opération :

  1. Drag and drop du fichier à convertir

  2. Fichier -> Charger pré-réglage

  3. Encoder !

UPDATE : L’ajout de sous-titre se fait avec l’onglet “Filtre” de ffmpegX. On importe les sous-titres, et ils sont incrustés directement. Nice (mais je ne m’en sers pas).

Retour sur l'Ile de France

Posted on août 22, 2007

trajet.jpg Depuis la mi-avril, la famille était à Bonny/Loire, joyeuse bourgade du Loiret.

En effet, Hélène était en congé maternité, et je n’ai besoin que d’une connexion internet pour travailler, alors pourquoi rester en région parisienne ?

Mais c’est fini, tout ça. La rentrée d’Hélène c’est le 3 septembre, Martin va devoir s’acclimater avec sa nounou, et je donne une formation la semaine prochaine chez, ironie du sort, un des fournisseurs d’Ohm Force, Atos Origin, (ils hébergent notre solution de paiement par carte de crédit SIPS, fournie en marque blanche à la plupart des banques française).

PICT0054.jpg

Le bilan de Boulette :

  • 3 oiseaux

  • 3 mulots

  • 4 kilos de croquettes

  • les chats du voisinage n’osent plus venir dans le jardin