WMII et MPC

Depuis que je traîne avec des lutins, j’ai appris pas mal de choses et en particulier l’existence de wmii, un gestionnaire de fenêtres qu’il est bien. J’en ai profité pour virer pas mal d’appli KDE, y compris AmaroK qui commençait de toutes façons à me les courir. Je l’ai remplacé par mpc/mpd avec des bindings clavier convi pour wmii.

La config est . Un jour, je ferai un billet plus complet sur wmii et un sur mpc. Si vous êtes sages et si j’ai pas trop la flemme.

Des attaques gratuites

Le serveur qui héberge ce blog (entre autres) est tombé samedi après-midi (et revenu en ligne lundi). Tout un tas de raisons, un enchaînement de boulettes… allez, je raconte, je passerai pour une andouille (mais ça j’ai l’habitude 😉 ) mais peut-être que ça sera formateur pour d’autres, on sait jamais 😉

Erreur 1 : quand j’ai signé pour le serveur, j’ai pris un login que j’utilise très peu (et que deux ans après je n’ai pas envisagé avoir utilisé) et j’ai associé le serveur à une adresse yahoo (ce qui n’est plus possible actuellement, c’est pas plus mal). Je sais toujours pas bien ce qui m’a pris. Je devais être bourrée.

Erreur 2 : j’ai laissé expirer ladite adresse yahoo. L’accident bête, au bout de 4 mois sans accès, Yahoo efface les archives et désactive le compte. Et donc le mail qui a dû exister à un moment me disant « au fait, tes informations de contact, c’est ça ».

Erreur 3 : j’ai bien évidemment oublié le login de la console d’administration du serveur. Je m’en suis rendue compte ya un mois. J’ai vu la procédure à ce moment là : « envoyez un fax à tel numéro et contactez l’assistance technique ».

Erreur 4 : j’ai procrastiné et je me suis pas remuée pour remettre la main sur mon login.

Erreur 5 : j’ai voulu changer le noyau du serveur. Je reboote une première fois, damned je suis revenue au premier noyau de la box, j’ai pas modifié GRUB. Je modifie GRUB, je me plante (putain de numérotations à partir de 0) (ou de 1) (je sais plus) et donc mon serveur s’est retrouvé en mode single sans accès à rien. Et moi comme une andouille sans console d’amin, un samedi après-midi, avec une brique au bout du SSH. L’accident bête.

De là, je passe sur le forum, finis par envoyer un fax (merci papa), je commence à me prendre une première réflexion « Et tu administres des serveurs depuis longtemps pour avoir mis ton adresse de contact administratif sur une adresse yahoo ? ». Je SAIS que j’ai fait une connerie. Ya deux ans, quand j’ai signé pour le serveur. Je suis déjà dans tous mes états d’avoir paumé mon serveur (ya mon mail dessus… ceux qui me connaissent voient dans quel état je suis quand j’ai pas accès à mon mail).

Pierre me configure son serveur sur lequel j’ai mon MX secondaire pour que je puisse lire mon mail et passer un WE à peu près serein.

Lundi midi, pas vraiment de réponse sur le forum, je décide de tenter de passer sur l’IRC. Je tombe sur un des admins qui après les vérifications d’usage me rend mon login (qu’il en soit remercié). Je laisse un message sur le forum en disant que je suis passée sur IRC et que tout est réglé (et en repassant quelques remerciements). La même personne demande si quelqu’un a les logs parce que « ça a dû être la fête ». Et en explicitant au post d’après : « Il y a toujours quelque chose de lol une nana sur irc avec les geeks. »

Je commençais à trouver que l’environnement geek en général devenait plus girl-friendly et moins lourd. Je commençais à laisser tomber mes défenses. Je commençais à me comporter comme un être humain et pas comme une minorité étrange. Je commençais à ne plus voir l’intérêt des « havres » que mettent à disposition des projets comme Linuxchix ou Ubuntu-women.

Je viens de perdre mes illusions. Fragiles, visiblement, puisqu’une seule personne a réussi à me les faire perdre. Mais ça fait mal quand même.

Alors ouais, c’est une personne, isolée. Une autre personne a d’ailleurs très bien répondu en parlant de stéréotypes. Mais sur ce, je m’en vais quand même aller remettre mon armure. En espérant qu’elle me protège contre les prochains coups (très) (très) bas.

Je crois que j’ai des goûts de luxe.

J’ai une Dedibox (serveur dédié Proxad « low-cost ») depuis quelque temps déjà. Bon, et ya pas à dire, on prend vite ses aises.

Je suis en train de regarder pour migrer un phpBB2 vers un phpBB3 pour un ami. Qui est sur un hébergement web « classique » : on te file un accès ftp, un phpMyAdmin si t’es bien sage, et démerde-toi avec ça.

Sauf que bien sûr, le script de conversion, il est long à s’exécuter. Et que bien sûr toujours, pour des raisons tout à fait compréhensibles hein, l’exécution des scripts est lourdement limitée dans le temps. Et que, évidemment, ça me rebalance une erreur 500 à la tronche. Du coup, je sens qu’il va falloir que je me paluche la conversion à la main… plus de downtime (parce que pendant la conversion ça serait bien qu’on écrive pas dans l’autre base, ça serait cool), plus de tests – parce que bon, je ferais ça pour moi, je ferais ça à la barbare BLEUAAAAAAARGH, je fais ça pour un copain, donc je teste un peu plus, va falloir que je me fasse un environnement de test, une procédure, tout ça (toujours pour limiter le downtime)… Bref, ça promet.

Alors que si j’étais chez moi, j’aurais augmenté la variable kivabien, tatapoum tatapoum, option je suis root et je vous domine tous… Ah, et accessoirement, j’pourrais éditer les fichiers en live en vim en SSH. Parce que le FTP, c’est pas que c’est relou, mais c’est relou.

Notons qu’il existe maintenant des offres encore moins chères que la Dedibox – la Kimsufi d’OVH et l’hébergement virtualisé de Gandi. Pas testé ni l’un ni l’autre. Bon, OK, c’est plus cher que beaucoup d’offres en mutualisé. Mais le confort de l’administrateur, ça n’a pas de prix 😀

KDE 4.0

Aujourd’hui, mûe comme par un coup de pied au cul, j’ai installé et testé KDE 4.0.

L’installation s’est très bien passée ; sous Kubuntu Gutsy il suffit de :

  • ajouter le dépot apt-get remove kdelibs5 kde4base-data kde4libs-data
  • apt-get update
  • apt-get install kde-base (et les locales qui vont avec, d’ailleurs)

Attention, le dépôt n’est pas authentifié (smal). Et le tout s’installe en parallèle à KDE 3.

La première impression, c’est AAAAAAAAAH ILS M’ONT TOUT CHANGÉÉÉÉÉÉÉÉ ! Le menu est bizarre, on peut ajouter des « plasmoïdes » (hihi le nom)… Le menu se sépare en plusieurs catégories : Favoris, Applications, Poste de travail, et les bidules récemment utilisés. On passe de l’une à l’autre en baladans la souris. J’avoue n’avoir vraiment utilisé que le menu Applications, qui là encore a pas mal changé. L’interface précédente se composait de menus en popups les uns par rapport aux autres ; ici on a un premier menu par catégories d’applications, on clique, on passe dans un deuxième menu avec les applis, on peut revenir avec la ptite flèche. J’avoue ne pas être super convaincue, à froid, mais bon, peut-être qu’à l’usage ça va mieux.

Deuxième lutte, virer les sons à la noix quand on change de bureau ou d’appli. Ça traîne dans la configuration du système, dans Notifications. Et là attention ya un menu déroulant que j’ai personnellement pas vu tout de suite – les sons en question traînent dans Le gestionnaire de fenêtres de KDE.

Troisième lutte : MAIS POURQUOUA ils ont viré le ptit bouton de création d’onglet de Konsole ??? Fini par trouver (en-dehors du Ctrl-Shift-N qui marche toujours hein, mais auquel je ne suis pas habituée) : un double-clic dans la partie vide de la barre d’onglets crée un nouvel onglet. C’était en fait déjà le cas dans KDE 3, je viens de vérifier – mais bon, avant yavait un bouton, pas besoin de chercher…

Quatrième lutte : j’aime bien avoir trois choses dans ma barre des tâches : un raccourci vers le term, un raccourci vers mon client mail et un raccourci vers Firefox. Et là, ben c’est le drame. Autant c’était très simple dans KDE 3, autant KDE 4 j’ai mis un certain temps à trouver. Donc, faut aller dans le menu, cliquouiller avec le bouton droit sur l’appli à ajouter, et cliquer dans le menu qui s’affiche sur « Ajouter au tableau de bord ». Quand au fait de déplacer lesdits raccourcis, là, j’ai pas encore trouvé.

Pour finir, lancement de Kopete 4. Bon, il paraît qu’il est pas fini, j’ai envie de dire « heureusement ». J’ai vaguement essayé de bricoler pour ravoir le même comportement sous KDE 4 que sous KDE 3 (la barre de l’appli qui clignotte quand on me cause), jamais réussi (ni avec KDE 3 ni avec KDE 4). Bon, j’y ai pas mis toute ma bonne volonté, mais bon.

Et pour finir, je sais pas COMMENT j’ai réussi à me démerder, mais j’ai réussi à déplacer… le bureau. Ouais, le truc là, avec un fond d’écran et des icones. J’essayais de balader une icone, et j’ai déplacé le bureau avec. Sont violentes les icones KDE4 🙂 Du coup je me suis retrouvée avec un fond d’écran décalé de facile un tiers de l’écran dans les deux sens (horizontal et vertical), une grosse bordure blanche là où j’avais plus de fond d’écran, les icones qui ont suivi le bureau, plus moyen d’accéder aux icones en haut à droite, et à quand même pouvoir mettre mes icones dans la zone blanche. Très bizarre ! J’ai réussi à re-déplacer le truc une ou deux fois, mais plus par hasard qu’autre chose… C’est PEUT-ÊTRE une feature, mais ça ressemble salement à un bug.

Bref, avec tout ça j’avais un bureau à moitié pété… j’ai déconnecté et je suis repassée sous KDE 3.

À mon avis, KDE 4, c’est pô prêt pour le desktop. On verra la 4.1 !

Procmailrc et filtrage sur Subject

Aujourd’hui, on est le 15 août. Réflexion du jour : « Tiens, si je triais mon inbox et que j’en profitais pour mettre mes filtres Procmail à jour ? ». Louable intention.

Problème amusant : j’ai une règle de type

 :0: * ^Subject: .*[users-fr] .Lists.OOo.users/ 

Manque de pot, celle-ci ne se déclenche pas sur un sujet qui apparaît comme :

 Subject:  [users-fr] [Base] Critère de requête 

dans ma boîte mail.

Gênant. On cherche, on cherche, on cherche… On finit par aller voir (sur la suggestion de Zom) directement sur le serveur la tronche du mail en question.

Bingo : le Subject réel est : =?iso-8859-1?Q?_=5Busers-fr=5D_=5BBase=5D_Crit=E8re_de_requ=EA?= =?iso-8859-1?Q?te_?=. Un encodage est spécifié, et l’encodage en question fout la zone sur les crochets.

Bref, un truc bon à savoir… et une raison de plus de filtrer sur le List-Id quand il est disponible… 🙂

R.I.P.

Ouin. Mon iPod est mort ce matin. Ca faisait quelques temps qu’il donnait des signes de faiblesse : musique coupée, ça rame un peu plus que d’habitude, mais bon, je me disais « c’est pas bien grave, il survivra ». Et ben, non. Je l’allume ce matin dans le RER, comme d’habitude, je le mets en mode « mix de morceaux », je passe 6 morceaux que je n’avais pas envie d’écouter, j’arrive sur le 7e, bof aussi, je clique sur suivant… je reclique sur suivant… damned il est freezé.

Aaaaah.

Je reboote la bête, et là le symbole que tous les possesseurs d’iPod redoutent : le Sad iPod (pour les amateurs de Sex and the City, c’est comme le Sad Mac de Carrie, mais avec un iPod à la place du Mac. Très meugnon, mais on s’en passerait bien). Bref, et au vu des symptômes précédents, le disque est mort.

Manque de pot, l’iPod (ou équivalent), quand on prend le RER et qu’on est toute la journée dans un openspace, c’est un instrument de survie. D’isolation des boulets. Et il y a beaucoup de boulets. Rien que ce matin dans le RER une fille qui écoutait du zouk sur son téléphone portable. SANS écouteurs. Et comme je suis une serpillère, j’ai pas osé râler 😦

Donc, voilà, je sens qu’il va falloir réinvestir. J’avais acheté un iPod parce que j’avais un Mac à l’époque (je l’ai toujours, hein), pendant ma période « Apple fangirl » (ça par contre ça m’a un peu passé, je suis revenue à mon Linux, et je m’en porte pas plus mal). Du coup, j’ai un peu (pas la majorité, mais des trucs quand même) de zik iTunes que j’ai la flemme de m’embêter à transférer ailleurs. Du coup… bin je crois qu’en bonne cliente captive de technos propriétaires, vais racheter un iPod. Pis celui-là, il aura la couleur et la vidéo (chouette.)

Rendre IE un peu plus web-developer-friendly

L’extension Web Developer de Firefox est bien connue et quasi indispensable quand on bricole des pages web. Faut savoir qu’il existe un outil utilisable pour Internet Explorer (à part que la toolbar est énorme, mais bon). C’est … C’était l’information potentiellement utile oupa de la journée :p

Le pourquoi du comment du rhaaaaaa.

Christophe m’a demandé de préciser ce que j’avais contre le MVC & le n-tiers etc etc.

Alors, MVC, sur le principe, c’est très bien. J’en suis même, en théorie, un ardent défenseur. Le principe, c’est « pour une appli, on a des données (model), on veut les voir (view), et on veut y appliquer des traitements (controler). Et on découple tout ça de manière à ce que (par exemple) si on change l’algorithme de traitement, il y ait normalement pas besoin de changer ni la visualisation des données ni le modèle de données. Très bien.

Là où ça se gâte, c’est que le cloisonnement du modèle MVC, bien souvent, il est dur. Ça veut dire que pour appeler un truc du côté contrôleur quand on est côté vue, faut se manger des callbacks pas possibles et, bien souvent, c’est pénible ET long. Pour l’exemple, la dernière fois que j’ai dû aller rechercher une fonction à la noix de ce type là, ça m’a pris 4 ou 5 heures pour mettre en place ledit callback. On me rétorquera que 1/ c’est que je suis une buse 2/ c’est qu’y’a ptêt un problème avec le framework que j’utilise ; ça n’empêche que par rapport à appeler bêtement une fonction, c’est long.

En pratique, le problème, et tout particulièrement quand on travaille à plusieurs sur du code, c’est que les choses ne sont jamais aussi claires que ça. Déjà, il va en général y avoir du code qu’on aimerait bien avoir des deux côtés (côté contrôleur (on dit aussi métier) et côté vue (on dit aussi présentation)). Techniquement, on est bien d’accord, ça veut dire que quelque part, on sait pas trop où va le code, qu’il faudrait réfléchir, éventuellement le déplacer d’un côté à l’autre et/ou faire les choses plus proprement qu’elles ne sont faites.

Maintenant, considérons la situation suivante. On livre en intégration demain. Il est 16h. J’ai une fonction qui traîne, avec le code kivabien dedans, mais elle est pas du bon côté. J’ai pas de mapping pour faire mon callback. Faire le mapping, ça va relativement vite, sauf qu’il faut recompiler pour mettre le mapping au bon endroit (et ça, c’est long), et que pour mapper, il faut que les paramètres de la fonction soient sérialisables, sinon ça passe pas (et oui, un Boolean, c’est sérializable, un boolean, ça l’est pas. Astuce.) (oui, je fais du Java.) Et, comme dit plus haut, avec toutes ces emm… diverses, faire le mapping proprement, ça peut prendre 4h (avec les divers bugs et autres ennuis) (bon, ça peut aussi prendre un quart d’heure si on s’en tire bien, hein, soyons honnête !!), donc… bin on duplique le code. Moche.

On pourrait contourner ça en ayant une partie de code « commune » qui serait compilée à la fois avec la partie métier et avec la partie présentation. Il faudrait bien sûr faire super gaffe en y mettant quoi que ce soit (c’est un coup à exploser complètement le modèle, donc pas très beau), MAIS quelques fois ça serait intéressant. Je pense en particulier à tout un tas d’utilitaires à la noix qui peuvent très bien servir des deux côtés, traitement de chaînes, tris, etc. Sauf que, évidemment, simplicité et développement à l’arrache obligent, on finirait toujours par y trouver « la fonction qui récupère la liste des gens à qui envoyer un mail pour telle opération » (mbof) et/ou par ne pas y trouver « le petit utilitaire de trois lignes qui appelle le Tokenizer pour parser m chaîne, là ».

En-dehors du code potentiellement duplicable, ya aussi le problème du code qui est « juste pas au bon endroit, du moins il me semble ». Pour moi, une fonction qui envoie un mail à un utilisateur avec des informations sur une instance particulière du modèle, ça va côté présentation (parce que je crée mon mail et je le présente à l’utilisateur). Bon, pour la personne qui a fait la fonction, ça va côté métier. Et là, c’est la lutte. Je sais pas qui a raison (enfin, si, moi 😉 ) mais, techniquement, non, j’ai pas le temps d’en discuter et j’ai pas le temps de corriger quoi que ce soit (rappel : il est 18h et je livre demain en intégration). Donc, on lutte. Pis là on se rend compte qu’il y a deux fichiers de ressources pour les chaînes. Gargl, le fichier en question est côté présentation, il faut donc que je crée le mail côté présentation et que je l’envoie côté métier. Ouiménon, en fait, les chaînes elles étaient dans l’autre fichier. Damned, il est 22h.

Bref, voilà. Le modèle MVC, conceptuellement, c’est très joli. En pratique, entre le code qu’on sait pas où mettre, le code qu’est pas au bon endroit, le code qu’on voudrait bien des deux côtés, le tout dans un environnement d’équipe et à l’arrache, le modèle MVC, ça te pourrit la vie d’une manière monstrueuse.

Quant à l’archi n-tiers… bin mon code métier et mon code présentation, ils sont sur deux serveurs Websphere différents. Il faut lancer le serveur métier avant le serveur présentation, sinon ça plante. Relancer les deux serveurs, ça me prend au moins 10 minutes à chaque fois. La trace d’exécution, elle se fait sur deux serveurs et c’est donc le bordel (d’un côté, ta trace s’arrête sur l’appel au callback, de l’autre, faut déjà voir si elle commence (aka si t’as pas foiré ledit callback)). Debugger du n-tiers, c’est pas marrant.

Voilà. Ceci était mon billet argumenté sur le hurlement primaire de l’autre jour.

Je reprécise donc que dans un environnement parfait où tout le monde sait ce qu’il fait, où personne ne fait de bugs et où on n’a pas (trop) de contrainte de délais, le MVC et le n-tiers, c’est probablement fantastique.