Harvard Business School of Echec

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, 15 octobre 2008

Le LaTex vieillit mal

Quand j'étais à la fac y a 3/4 ans, j'avais écris tous mes bousins en LaTeX en faisant de mon mieux: UTF-8 partout, lstlisting, etc. A part quelques problèmes, je pouvais compiler aussi bien sur ma Debian que sur les RedHat de ma fac.

J'ai voulu jeter un oeil à des trucs que j'avais écris et là patatra, Debian/texlive ça ne fonctionne plus du tout. lstlisting par en vrille dès qu'il voit du non-ascii alors qu'avant il mangeait ça très bien. Et ça explose sur des tas de petites bêtises ça et là. J'ai un peu décroché de LaTex, j'ai essayé de bricoler ça et là, fait des bugs Debian, mais chaque fois que je corrige un problème, autre chose explose.

Evidemment j'ai pas sauvegardé de PDF.

Et là j'ai envie de dire "si j'avais fait un .doc je pourrais encore le lire"... là je peux même pas compiler.

vendredi, 10 octobre 2008

mono apps power consumption

Any idea why mono apps write/update ~/.wapi/shared_* files every 40s ? These files are mapped and their timestamp change even when sleeping... Please help :)

update: bug forwarded upstream

vendredi, 12 septembre 2008

Crétin.fr

Grâce aux nouvelles lois de notre gouvernement, maintenant quand j'appelle mon FAI pour lui dire que sa prestation est minable et que j'en ai marre d'être déconnecté aléatoirement entre 20H et minuit et ce pour la soirée, et bien quelle chance, je ne paie plus que 20€/H (alors que mon abonnement est de 30€/mois).

Heureusement qu'ils ont changé leurs publicités, je commençais vraiment à croire que le crétin c'était moi et pas l'autre FAI.

Aujourd'hui quand on n'est pas trop souvent déconnecté, que la télévision ne saccade pas trop et que le téléphone veut bien sonner, on s'estime bien servi. Dire qu'avant on avait une téléphonie plus fiable que le réseau électrique, quelle avancée.

vendredi, 5 septembre 2008

Thumbnails explosion

Fri Sep 5 13:02:56 CEST wafl.dir.size.max:warning: Directory /vol/vol0/users/luser/.thumbnails/normal/ reached the maxdirsize limit. Reduce the number of files or use the vol options command to increase this limit.

Huhu. There were actually 2 x 135k files under this users's ~/.thumbnails/normal and .thumbnails/fail directories :)

This is RHEL 4.5, there's already a bug about it (i can't find it, but i'm subscribed to it).

I can see that ext4 raised it's dirsize limit from 32K to 64k, looks like it's not enough :)

vendredi, 8 août 2008

API superhero

There's a one 1.4K patch for policykit (now an external depency) support for system-monitor (~7K SLOC) to basically replace 3 lines of gksu. Oh yes i know "it's so much powerfull" (that you have to rewrite kill, renice, etc). I'd rather depend on the new Linux file capabilities...
Kov was already my hero because of the clean design of libgksu API...

He's now my superhero !

Cybermanifestation

Si ça vous intéresse, venez cybermanifester avec RSF devant le stade olympique de Pékin.
Sur la forme, il n'y actuellement que 9000 manifestants, ça n'a peut-être pas de poids aujourd'hui, mais ça pourrait devenir un mode d'expression efficace...

vendredi, 30 mai 2008

hard disk drive troubles

On May, 8th, my ibook fall from the table and hit the ground 40cm below. I saw it fall, saw it instantly poweroff :/

Disk reconstruction began. It's a 60GB disk, with a 58GB reiserfs /. It could still boot but i got read errors everywhere and reiserfsck reported 81 corruptions. I have a one month old backup, that's not good enough. I needed a live cd in order to copy the disk, run badblocks and eventually try to fix it if it's not totally destroyed. The best i could get was an Ubuntu 5.04 live cd. I pluged in my 250GB USB disk. I then started to run badblocks (with the wrong blocksize...). I then tried to dd it, but that was taking ages. I was looking for GNU ddrescue but it was not present. I wondered a bit, but then realized that the / was writable: spent 10 minutes looking for a valid ubuntu mirror, apt-get update g++, grabbed the ddrescue sources, compiled it. I would have extracted the disk if i could found the righ screwdriver (thank you Apple).

48H later: at first ddrescue found 130MB of dead blocks out of 58GB. The damaged blocks are located around 20GB, 40GB, and 60GB, so clearly, the heads hit the platters. After trimming errors, it's down to 30MB. reiserfsck has this very nice '--rebuild-tree' which scans the whole partition, rebuilds the filesystem and reports which entries are damaged, using real filenames. This is so great because you then know which files are damaged (and there's of course a lost+found).

...
After days of dd_rescue and badblocks, i recreated the fs and copied back all my data. I had the nice idea to double-check the copied data and found a lot of corruption. I took my laptop to the nearest apple center, and got it back 2 days later (May, 28). 220€ later, my laptop was back with a new 120GB harddrive and OS10.4 on it (although i asked for a clean drive). Booted ubuntu, partionned the disk, formated in ext3 (with 256B inode, ready for ext4), installed yaboot, copied my rescued /. Tada ! it booted OK. I eventually found that some /var files were damanged which made apt unhappy.


FIN

mardi, 20 mai 2008

Java WTF

I tried to download a propriertary JDK6, worst download experience ever ... clicked download which gave me a JNLP file (???). I first thought it was a bug, so i reloaded the page. No, it's the "Tvo Download Manager". You need to read the "download" button's tooltip to understand what was going on.

This started a 3 tab download manager:

  1. Download: you configure where the file is to be downloaded, the number of retries, the logfile size (???), whether it has to unzip or not, etc
  2. Proxies: HTTP and FTP proxies configuration. I failed to enter any valid proxy there (it always claimed the proxy was invalid). At first this "tool" must have inherited browser settings.
  3. Authentication: totally failed to configure this tab with host authentication list, etc

You want to dowload a zip and you end up with a bloated java downloader for HTTP downloading which doesn't handle transparent proxy configuration and authentification. So i haven't downloaded anything and i'm going to stay as far as possible from this unethical crap. (If that zip was to be downloaded bia bittorrent, i would have understood the need for a downloader.)

WTF

PS: I was a proxy admin in my previous job.

jeudi, 15 mai 2008

network shared /etc/sudoers

I'd like to use the same/etc/sudoers file for a lot of servers. sudo seems to support this because it has Host_Alias. What's the best way to share the same file ?

  • the path to /etc/sudoers seems to be hardcoded, so i can't put it on a network fs.
  • i haven't find any ldap support
  • scp the file to all the hosts ?

Any experience in that ? Thanks.

mercredi, 14 mai 2008

/dev/random

About DSA-1571 openssl , I totally aggree with Eric ... openssl is just like this XKCD strip. So whatever distro you run, cross your fingers while you generate your keys from so-called uninitialized memory so it's uninitialized enough. Why don't we just drop openssl ?

PS: http://wiki.debian.org/SSLkeys gives better explanation. The problem is that one of the cleanups is harmless, while the other one actually commented the code that seeds the PRNG with real entropy. Ouch.

lundi, 5 mai 2008

Build a deb package with debug info

I often find the need to rebuild a package with debug symbols (if no -dbg is available).

sudo apt-get build-dep <package>
apt-get source <package>
cd <package>
# eventually patch sources
DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -rfakeroot -uc -us
cd ..
dpkg -i <package>.deb

Et voilà :) Now i can gdb it or run sysprof. (It's also a very fast way to start hacking on a program)

Le gestionnaire de paquets de Mandriva Spring

A l'invitation de liberf0rce, je me lance dans un test limité de Mandriva. J'installe et je regarde le gestionnaire de paquets. En vrac.

J'ai donc téléchargé le DVD de la 2008.1 version libre. Ca s'installe sans problème, je choisis GNOME et ça roule. Pas de LVM par défaut et je n'ai pas vu de SELinux. L'installation est rapide. Les actes d'administration se font en rentrant le mot de passe root.
J'arrive en terrain connu sur mon bureau GNOME: les menus sont bien remplis (et pas bourrés) avec des applications que je ne connaissais même pas telles que Homebank. Je repère tout de suite le Centre de Contrôle, c'est là que je vais sévir. Je remarque aussi une applet réseau, qui ressemble un peu à NetworkManager.

RPMdrake

Le gestionnaire de paquets de Mandriva s'appelle RPMdrake et se lance depuis le Centre de Contrôle. On peut visualiser les programmes avec des filtres : applications graphiques, métapaquets et listes de RPM. C'est pas mal mais je suis un peu déçu parce que tous les noms/descriptions de paquets ne sont pas en français alors que les catégories le sont.

Autodestruction

J'ai d'abord essayé de supprimer nautilus. J'ai été averti que task-gnome-minimal allez être supprimé. J'ai donc annulé pour continuer un peu.

Alexandria

Je fouille un peu pour installer alexandria. Mais lequel ?

alex2.PNG

Métapaquets

Je décide d'installer de quoi coder: je trouve un métapaquet de développement en C++. Je le sélectionne, je fais appliquer, et l'inquisition commence:

ctags.png

  • est-ce que je veux libc-dev ou ulibc-dev ?
  • libstdcppxyz ou libstdcppabc ?
  • etc

Ce n'est pas un problème spécifique aux métapaquets, ça le fait partout si plusieurs paquets peuvent résoudre les dépendances. Ce n'est pas compréhensible du tout et je me demande bien ce qui peut arriver si on fait des choix malheureux qui entrent en conflits avec des paquets déjà installés.

Au final ça s'installe et ça prend énormément de temps. Ca à l'air de fonctionner comme ceci: télécharger un paquet, l'installer, passer au suivant. Les barres de progression sont multiples: quand un paquet s'installe, on voit la barre du paquet, quand ça télécharge, on voit celle du téléchargement, et des fois quand on a de la chance, on voit la barre de progression globale. C'est dommage, la barre de progression globale "X paquets installés sur Y" devraient toujours être visible. A chaque fois que je voulais savoir où en était l'installation, ça m'a obligé à attendre un nouvel écran pour voir le fameux "123/217".

Glom

Je veux aussi installer Glom. Ca va être un bon test vu que glom va tirer tout un tas de dépendances, jusqu'à PostgreSQL. Après avoir répond au questionnaire, je lance par le menu et c'est l'explosion, le tackle à la gorge dans les starting blocks:

glom_kaput_2.png
Je veux être gentil et ouvrir un bug. Je n'arrive pas à trouver dans le menu une entrée pour faire ça. Ce n'est pas non plus dans l'aide. Je retourne alors dans le Centre de Contrôle, et je trouve dans Aide:

glombug.png

Je mets glom, ça associe le bon paquet, feu et firefox se lance sur un bugzilla sur lequel il faut s'enregistrer. Je peux comprendre que le spam bugbuddy c'est embêtant, mais je suis un luser, j'ai pas envie de m'enregistrer pour mon bug. Tant pis. Ca me paraît problématique pour obtenir des retours des utilisateurs s'ils sont obligés de s'enregistrer.

Base de RPM verrouillée

En plein vol, j'ai reçu une notification "La base de RPM est verrouillée" et un "?" orange dans ma zone de notification. Je ne sais pas ce que ça veut dire (pas de détails) ou si je dois m'en inquiéter.

Sécurité

Je me suis promené dans le Centre de Contrôle, c'est globalement bien foutu. Mais il y a des rubriques carrément usines à gaz telle que les paramètre de sécurité.

secu11.png

Euh c'est quoi le "Choix par défaut" ? Et c'est plein de listes vertigineuses avec plein de options très variées, la taille de l'historique shell, les paramètres GDM, etc tout mélangé. Et surtout des tas de paramètres que je ne trouve absolument pas pertinents ni pour un luser ni pour un admin. Bref ça ne m'inspire pas vraiment confiance (puisque les choix sont cachés), ce n'est pas encore demain que je vais lâcher mon sudo vi /etc/machin

secu2.png

Configuration de SSH

J'ai fait ces captures d'écran et après j'ai voulu les copier sur mon ibook. Normalement, première connexion SSH == validation de clef. Mais là non, ça accepte la clef immédiatement sans question ni vérification. La configuration par défaut a un bien vilain StrictHostKeyChecking no, pas sécurisé du tout. OK une clef SSH c'est difficile à mémoriser, mais avec cette option si elle changeait, on ne le saurait même pas :/ Je m'étonne qu'OpenSSH n'est pas encore implémenté quelque chose comme :

SSH fingerprint

Consommation mémoire

Ce weekend j'IRCais avec Luis à propos de la consommation mémoire des applis et je lui disais que Spring mange environ 140Meg de RAM au démarrage sans beagle. Installez un paquet et doublez !

rpmdrake.png

Je me disais bien que ça ramait à fond cette installation ! Plus de 100meg pour installer des logiciels. Au final, une fois l'installation terminée, moi qui était parti de 140meg au démarrage, je me retrouve avec 140meg de swap. C'est codé en Mono ou quoi ?

mardi, 22 avril 2008

ABI vs. API compatibility

glibtop_get_proc_mem

libgtop has a function glibtop_get_proc_mem to retrieve basic memory usage of a process. It fills a struct glibtop_proc_mem which looks like:

struct _glibtop_proc_mem
{
	guint64	flags;
	guint64 size;	
	guint64 vsize;
	guint64 resident;
	guint64 share;
	guint64 rss;
	guint64 rss_rlim;
};

Yes, size/vsize and resident/rss look like duplicate. At least on the linux implementation, even if size/vsize and resident/rss come from /proc/self/stat and /proc/self/statm, you can see in linux/fs/proc/{array,task_mmu}.c that they have the same values. So, it seems to me that the only unique members of struct glibtop_proc_mem are size, resident and share (ok there are also flags which flags which members are filled and rss_lim).

linux proportional set size

Linux 2.6.25 comes with a new stat in /proc/self/smaps called pss which is even smarter/accurate than private_dirty. There's glibtop_get_proc_map which currently have all the smaps member but not this new pss. So what is the smarter way to get this new pss in libgtop without breaking everything ?

- break the ABI ?

I could simply extend struct glibtop_proc_map. That would break the ABI, which i'm allowed to because libgtop is desktop. But that's bad practice since packagers have to rebuild everything. That's a painful migration that may delay the adoption of newer versions of the library.

- break the API ?

What about cleaning up the glibtop_proc_mem duplicate members, mark unused some of them and rename rss to pss while keeping it binary compatible ? That would make the API a bit more sensible. I've scanned the Debian/unstable archive and that would break the build 3-6 packages but i would be able to submit trivial patches to fix glibtop_get_proc_mem usage. (And also add glibtop_init(); which are missing everywhere).

- hide pss inside rss ?


So what's best ?

lundi, 21 avril 2008

Quelques minutes avec Fedora

Au travail, la distribution GNU/Linux validée est RHEL 4.5 sur les serveurs et les postes de travail. C'est un peu vieux (Linux 2.6.9, avec un GNOME 2.6 - 2.7), mais ça fonctionne sans problème (j'ai même était surpris que le branchement de clef USB à chaud fonctionne). À mes débuts, vers 2000, j'utilisais RedHat et Mandrake, mais depuis que j'ai découvert Debian, je n'avais jamais ré-utilisé ce type de système.

Donc je me suis dit que j'allais tester Fedora 8, j'ai téléchargé le DVD pour installer ça sur une machine de récupération. L'installation est facile, elle est graphique et ça tient même dans du 800x600, et j'ai choisi un mode minimal (823 paquets quand même): par défaut, le partitionnement utilise LVM et SELinux est en mode strict, tout ça me plaît bien. Il y aussi icedtea dans le tas, c'est sympathique. Quelques minutes plus tard, j'arrive sur mon bureau GNOME 2.20. C'est mignon et très standard. Je veux rajouter un disque dur pour étendre mon / mais je n'arrive pas à trouver d'outils dans le menu, je finis donc par un petit pvcreate/vgextend/lvextend/resize2fs, rien de bien sorcier.

En passant, il n'y a pas de sudo configuré par défaut, on tape donc le mot de passe root pour les gestes d'admin.

Ensuite je me mets en tête de tester frysk et systemtap puisque qu'apparemment c'est installé: impossible de mettre la main dessus. Rien dans mon PATH, les paquets sont bien installés, je lis le man, fais un gros find /, mais impossible de trouver comment les lancer. Je me dis bon je vais déinstaller/supprimer frysk au cas où: yum remove frysk fonctionne très bien, par contre yum install frysk ne connaît pas frysk, le mode search ne trouve rien. Au passage, il n'y a pas de complétion bash pour yum. Je laisse tomber puisque je vois qu'il y a une entrée dans le menu Applications pour ajouter/supprimer des logiciels.

J'ai déménagé deux fois en un mois, je n'ai pas récupéré d'accès à Internet, et quand je lance ce gestionnaire de paquets graphique, il n'arrive logiquement pas à récupérer la liste des paquets: il y a bien un bouton "Annuler" mais il ne fonctionne pas. Quand la MAJ échoue enfin, j'ai le choix entre quitter ou voir l'éditeur de la liste des dépôts. Là c'est la première farce: si je clique sur "Fermer" sans avoir fait de modification, ça quitte le gestionnaire de paquets. Après plusieurs essais, je le comprends, et je ne laisse activer que le dépôt "Install media" qui doit correspondre à mon DVD (même si les détails du dépôt sont entièrement vide). La liste des paquets est enfin disponible. Je suis déjà un peu méfiant, puisque qu'en somme le gestionnaire de paquets n'est pas (trivialement) utilisable si on est pas connecté à Internet. Très mauvais point.

J'arrive ensuite sur une liste de méta-paquets répartis en catégories. Ce sont des gros méta-paquets, il y en a peut-être une vingtaine, avec des noms simples tels que "Environnement GNOME", "Développement GNOME", etc. Impossible de savoir ce qu'il y a dedans, par contre, on peut savoir en cliquant sur le bouton "Paquets additionnels" ce qu'il n'y pas dedans. Je sélectionne donc "Développement GNOME", j'installe, c'est un ensemble de paquets très utiles, genre tous les -devel sauf que ça n'a installé aucun outil de développement un peu utile genre style gcc. Ça m'a quand même installé rcs... J'y retourne pour installer "Outils de développement". Je me promène dans les autres catégories pour personnaliser tout ça : au revoir le "Serveur web" (toujours impossible de savoir ce que ça contient), je désélectionne aussi "Bureautique/Productivité" (sic) qui selon sa description doit contenir des afficheurs PDF, etc.

Erreur monumentale.

D'abord les descriptions sont inexactes voire fausses. Ensuite, il n'y pas de gestion de dépendances entre les méta-paquets : en cliquant à droite à gauche pour alléger mon système, ça a un peu déselectionner par hasard "Environnement de bureau GNOME", sans me le dire bien sur... moi je suis un luser de base, quand on me présente une liste illisible de noms de RPM dans une petite fenêtre, je fais "Appliquer". Et là je vois l'installateur de paquets afficher des mise à jour (???), et j'aperçois des trucs importants passer à la trappe: nautilus, gnome-volume-manager, etc. Bref il est trop tard. Les applets plantent en rafale. Je me retrouve à la porte, je retombe sur GDM et tente de retourner dans ma session ... xterm. On m'avait pas le coup depuis 10 ans.

Magnifique: en quelques minutes, j'ai flingué mon système en voulant juste supprimer "Sons et vidéos", "Graphismes", "Internet basé sur texte" (sic) et quelques trucs comme ça. J'insiste, je n'ai pas fait n'importe quoi. Seulement les dépendances et RPM, même 10 ans après, ça ressemble toujours à de l'escroquerie. Une distribution avec des gestionnaires de paquets aussi défectueux, ça me paraît inutilisable (et pour cause j'ai détruit mon système) qu'on soit utilisateur de base ou ingénieur de métier. Mais qui utilise ça !?

Le DVD finira son weekend à la poubelle. Mes Debian/Sid n'ont pas à s'en faire. Une distribution, c'est des paquets, et Fedora j'ai vu. Pour bien m'assurer du problème, j'ai fait 2 fois l'installation et la manipulation. La première fois, j'ai même eu droit à un plantage du gestionnaire de paquets. Peut-être que Fedora a par ailleurs de bons outils de configuration système (j'ai regardé un peu l'intégration NIS/LDAP/Kerberos ça m'a plu), mais si le plus important est (toujours) défaillant, ça fait fuire.

Allez pour la route, une petite capture d'écran pour que vous faire une idée du niveau de crédibilité de la gestion des paquets sous Fedora 8:

armenie

(Vous pouvez aussi en déduire que personne n'utilise Fedora, en français du moins, sinon ce genre de bourdes aurait était détecté)

samedi, 5 avril 2008

Unix 64bits fun

I used to work within a team of windows admins. I saw them strugling with applications requiring too much memory for Windows 32bits. Maybe some people run Windows 64bits, but i've never seen that: applications comes from everywhere and are 32bits only. Moreover, the kernel/user split is 2G/2G and that's pretty small for a Java process. Most servers i've seen have 4GB of memory (usually only 3GB are managed on common^Wbroken configs) and are dedicated to a small set of applications, so there's really no point in adding more memory. Oh, and yes, we run hundreds of Windows servers, not for fun.

But i've switched back to the bright side and left that windows world: i now play with unix servers, big filers and tape libraries. I've just realized that most of the linux workstations are 64bits and have at least 8GB of RAM. Yup, that's twice more than the biggest Windows servers we run...

This week, we had to recover a somehow low-end server and install RHEL on it. When i say 'low-end', i mean an old Dell or HP server garbage-collected to set-up some test environment, nothing valuable to the company. The server booted, and damn, the RAM-check took 40s ... 49152MB. Yes, 24 x 2GB on a 'low-end' server. So i asked my workmate why there were so much RAM on a simple server:

We don't tune applications, we add more memory. he said.

That's true unix speech :)

vendredi, 28 mars 2008

There and back again

For more than a year, i've been the NetApp NetCache (proxies) worldwide guru at some very big company in Pau.
But on the first week-end of March, i moved from Pau (South West) to Clermont-Ferrand (Center) (that's 600km away) to start a new position as a Unix admin (mostly AIX servers). But i ended up doing uninteresting things (to me), i felt sick, i couldn't stand the job and I was very disapointed. Today i've accepted a real Unix admin job back in Pau ...
I'm really sad because most of my friends are in Clermont-Ferrand. It kills me to say so, but i need a not-awfull job to be happy, even if i have lots of friends around. Being in Clermont-Ferrand was like starting a new life. Friends are everyting.
On Tuesday i'll be back in Pau and hope to stabilize a bit (at least for a full month ;).

mardi, 18 mars 2008

WTF

system-monitor is getting famous !
(This is bug#418652.)

jeudi, 21 février 2008

Power management failure

Tonight i was hacking on my ibook on my sofa watching Extreme Makeover. Then "peeeeeeeeeeeewwwwwwwwwwwww". No more battery.
I haven't received any warning at all. Maybe gnome-power-manager is a bit broken currently on Debian/sid because of hal/s2ram/whatever on ppc. I mean s2ram and hal works, but no the way gpm likes them too (i have to manually run s2ram to suspend). But at least , I would have expected gpm to warn me, and then shutdown my laptop. Yep, i've checked, when the battery level becomes critical, it should have poweroff. But that did not happen.
Now i only trust the battery gauge LEDs.
Happy End: thanks to reiserfs and emacs, i haven't lost a single line of code :)

jeudi, 27 décembre 2007

Empoisonnement

Vivement l'interdiction de fumer dans les bars et partout. J'ai vraiment été stupide d'y retourner hier soir.
En attendant 2008, fumeurs, je vous gerbe à la gueule.
(C'est réciproquement l'effet que me fait votre merde, mes fringues sont pourries, j'ai les yeux explosés, etc).

lundi, 10 décembre 2007

GNOME system monitor team

Bienvenue Karl !

- page 1 de 4