- Détails
Et plus encore, je suis une quiche en CSS.
Autrefois, mon site était fait main (tiens, j'ai encore un mirroir actif ici !), et était psychédélique. 🙂 C'était drôle à voir, mais c'était complètement statique, et il fallait que je me tape le code HTML dans Notepad pour ne serait-ce que mettre une nouvelle de 2 lignes...
Depuis mon site est en Plone (tain le nombre de fois que je le dis dans le blog, je devrais demander à me faire payer pour la pub). C'est pratique, complètement dynamique, j'ai juste à taper mon texte en vrac (ou presque) et voilou, ça marche tout seul. 🙂 (passons sur le fait que j'ai investi des journées d'efforts et de l'argent pour monter mon propre serveur chez moi, et donc que ça s'est pas vraiment fait tout seul...)
Mais, car il y a un mais, je ne sais presque pas personnaliser l'apparence du site. Le vert et blanc, c'est un style par défaut de Plone (et encore, pas la dernière version majeure). Tout ce qui reste des couleurs chamarrées et loufoques de l'ancien site, c'est le minuscule logo de fleur psychédélique qui remplace le logo Plone par défaut...
Tout ça parce que je ne sais presque rien en CSS. CSS, ça veut dire Cascading StyleSheet, ou feuille de style en cascade (dans la pure tradition de traduction à la française). Ça sert à spécifier la présentation d'une page HTML, sans pour autant mélanger les données et textes et les informations de présentation. le CSS est un fichier à part. Il est appelé par la page HTML pour fournir les infos de présentation. L'avantage du système est qu'on sépare les données du code, et qu'une toute autre présentation peut être appliquée à la même page avec peu ou pas de modifications.
Et Plone utilise les CSS, et donc je peux tout modifier en retouchant juste le CSS ! Problème : je connais presque rien aux CSS (comme je le répète 🙂).
Mais bon, je ne suis pas un naze, je peux apprendre, et je vais essayer de bricoler la présentation du site dans les prochains jours. Si vous constatez que l'affichage est louche, c'est sûrement que j'ai fait une boulette. 😉
- Détails
Suite à mes mésaventures de disques durs, je me suis intéressé aux garanties et j'ai fait une découverte intéressante...
Bon, j'ai déjà dit que j'ai injustement soupçonné mes pauvres disques durs de mort subite collective. Mais ça m'est déjà arrivé dans le passé. Un de mes disques (le plus gros, au hasard) est tombé en rade. Je pense que ça doit être purement électronique, vu qu'il est détecté occasionnellement correctement dans le BIOS (avec une taille variable de 0 Go à 80 Go), et qu'il est jamais détecté correctement dans Windows (le dernier test me le donne à 8 Go au lieu de 80), alors qu'il ne fait aucun bruit suspect, et qu'il arrive à lire des données cochonnées sur le disque (normal, c'est plus la bonne taille).
Au hasard de mes vagabondages sur le net, je suis tombé sur cet article de TT-Hardware, qui détaille tous les secrets des garanties des disques durs. Et ça m'a appris qu'on pouvait vérifier la garantie des disques Seagate.
Comme je l'ai dit à plusieurs reprises, je suis un fidèle de Seagate. Je n'achète que des disques Seagate. Mais je recommande les disques Hitachi. 🙂 Et c'est un disque Seagate Barracuda ATA IV 80 Go qui m'a claqué entre les doigts, il y a presque un an, à un an et un mois après l'achat. Et comme je l'avais acheté à Montgallet, et qu'ils le garantissaient un an, je l'avais dans l'os...
Et là surprise : en vérifiant chez Seagate, je me rends compte que ce disque est encore sous garantie jusqu'en septembre 2005 ! 🙂 Mais le hic est que l'article de TT-Hardware dit bien que les disques OEM n'ont aucune garantie chez le constructeur... Or il y a marqué en gros que mon disque est un disque OEM sur l'étiquette...
Je tente quand même le coup, et je demande un numéro de RMA (numéro de retour marchandise). Et ça marche ! Ils me donnent un numéro RMA, les instructions d'emballage et d'envoi, et l'adresse de retour. Je sais que ce disque n'est normalement pas supporté, mais s'ils me disent qu'il est encore sous garantie et qu'ils me donnent un numéro de retour, c'est qu'ils veulent bien me le passer en garantie, non ? En tous cas, j'espère qu'ils n'ont pas été assez bêtes pour ne pas indiquer que les disques OEM ne sont pas repris.
Quoi qu'il en soit, j'ai pris le risque, j'ai envoyé mon disque en recommandé chez les Péïbadois, où se trouvent beaucoup de centres de SAV de constructeurs informatiques, dont Seagate. Ça m'a coûté 14 €. Sachant qu'un disque Seagate 80 Go neuf coûte 55 € environ, c'est un pari peu risqué que je prends : si le disque est en effet hors garantie en étant OEM, tant pis, j'aurais perdu 14 €. Mais s'ils me renvoient un disque neuf (ou du moins fonctionnel), j'aurais gagné 41 € (si on considère que j'ai déjà perdu l'argent que je l'ai payé au départ - ce qui est vrai, vu qu'il traîne sur une étagère depuis des mois).
Suite au prochain épisode. 😉
- Détails
Jamais deux sans trois, j'ai encore eu une histoire d'alim grillée...
Le titre provient de Year of hell, un épisode de Star Trek: Voyager, où il arrive des malheurs à Voyager pendant toute une année. Moi c'est pas ma semaine.
Lundi, je mets à jour le serveur de test au boulot en FreeBSD 5.3-STABLE, en même temps que mon serveur personnel chez moi. Jusque-là, ça va.
Mardi soir, je me dis que je vais mettre à jour les ports de mon serveur. Mal m'en prend. Ça a pour effet de casser mon serveur Zope, qui sert ces pages... Suite à des recherches sur le net, je me décide à remettre à jour TOUS les ports, ce qui prend un temps considérable.
Mercredi matin, je découvre avec horreur la console ssh où j'ai lancé la réinstallation bloqué sur un terrible Press [enter] to continue...
! ARG. Et il semble s'être arrêté un peu après minuit. Tant pis, je surveillerai ça du boulot. J'ouvre donc un accès RDP vers ma machine d'où se continue la réinstallation, et je pars travailler. Arrivé au boulot, je lance le client Terminal Server et tente de joindre ma machine : pas de réponse... Là, je réalise que le nouvel antivirus que j'ai installé l'avant-veille comprend un pare-feu qui n'a pas été programmé pour laisser passer les requêtes RDP... Je me rends compte qu'il y a une boîte de dialogue me demandant si je veux bien accepter la connexion sur l'écran chez moi, où il n'y a personne... ARG. Et j'ai dû dépanner des imprimantes toute la journée, en plus... Finalement le soir, je relance le compilation du début (j'ai fait une boulette en arrêtant Perl 5.6.1 que je pensais inutile), et finalement à 2 h 30 du matin, le serveur est à nouveau frais et opérationnel.
Jeudi, je me lève super tard vu que je me suis couché à 3 h 30 (histoire de vérifier que tout marche vraiment bien), et du coup j'ai pris froid. Je suis malade toute la journée.
Vendredi, je me suis remis de mon coup de froid, je chatte avec mes amis, et à cause d'une Windowserie, je dois redémarrer la machine. Je me dis que je vais faire ça vite fait et reprendre la conversation. Ça n'arriva pas. Ma machine se plante au boot. Je relance, pareil. En plus, un des disques commence à siffler. Je me dis qu'un des disques est en train de mourir. Vu que ça se plante au boot, ça a l'air d'être le disque système. Super, ça oblige à TOUT réinstaller, vu qu'on peut pas réparer les installations des logiciels, la base de registres est envolée. 🙂 Au fil de mon enquête, je me rends compte que TOUS mes disques sifflent ! Mes 4 disques sont grillés tous en même temps ?!
Un premier rapport de dommage me montre qu'il me faudrait environ 235 € pour remplacer les disques, sans compter le temps perdu à tout réinstaller (et vraiment TOUT, vu que TOUS les disques sont morts !). Une seconde solution est de prendre 2 disques plus gros, ce qui me reviendrait à 205 €. Mais c'est toujours cher...
Je teste chaque interface, je change les disques de connecteur, je passe SeaTools sur les disques (tous mes disques sont des Seagate), et il me trouve des centaines de secteurs défectueux sur chaque disque. Mais j'ai comme un doute, et je démonte un de mes disques pour l'essayer sur la machine de Séverine. Au cas où.
Surprise, le disque démarre correctement, ne siffle pas, SeaTools peut effectuer tous les tests, aucun problème matériel détecté, aucun mauvais secteur, et Windows lit le disque normalement. Mes disques sont probablement saufs. Mais qu'est-ce qui pourrait causer ça, alors ?
Le premier candidat est bien sûr le contrôleur disque de la carte mère. C'est chiant, parce que c'est cher, et qu'en plus ça prendrait des semaines à envoyer et revenir du SAV. Mais en même temps, vu que les disques sur mon contrôleur ATA RAID PCI sifflent et plantent de la même façon, c'est pas la carte mère.
J'ai une intuition, je démonte l'alimentation de la machine de Séverine et je l'installe dans la mienne. Pas de bol, son alimentation 350 W est insuffisante pour démarrer mon PC (j'ai des tonnes de matériel, là-dedans). Mais je poursuis mon idée, et j'installe mon alim dans son PC. Ça a l'air de marcher , il démarre, et au moment de charger l'Explorateur, le disque dur du PC de Séverine siffle comme les miens, et Windows se bloque ! J'éteins le PC (de force) rapidement pour ne pas causer de dommages irréparables.
Mon alim a grillé. Mais pas comme les précédentes alims qui avaient grillé dans mes machines, en brûlant et en emportant plein de composants avec eux, mais juste assez pour que la tension délivrée soit insuffisante pour que les disques tournent normalement, mais assez puissante pour allumer la machine. Incroyable.
Du coup, j'ai racheté une alim. J'ai hésité à reprendre la même, une Antec TruePower 380, de peur que la nouvelle me refasse la même blague. Mais un article de Materiel.be m'a convaincu de reprendre l'Antec : C'est une des seules à avoir une stabilité de tension irréprochable. Et avec l'installation électrique humoristique de chez moi, il me faut ça. 🙂 (en même temps, vu mes compétences en électricité, qu'on me dise que ça ne change rien ne m'étonnerait pas ).
Donc je me suis galéré jusqu'à Montgallet acheter une nouvelle alim. Et ça m'a coûté 87 €, chez Ultra Medi@ (une boutique où je devrais aller plus souvent, les vendeurs sont sympas, ils se souviennent de moi alors que j'y suis allé il y a peut-être un an avant 🙂 - c'est pas les prix les moins chers, mais il y a peu d'attente, et mon expérience du SAV est bonne). Mon diagnostic était bon, la machine remarche. Mais j'ai encore un peu peur que ça regrille à nouveau. 🙂
- Détails
FreeBSD 5.3 est sorti, et j'ai bien évidemment mis à jour mon serveur, non sans mal...
Je n'ai pas eu de mal à mettre à jour le système en soi, grâce aux conseils du FreeBSD Project, et de FreeBSD Cheat Sheets. Je l'ai maintenant fait une bonne dizaine de fois, entre mon propre serveur et les serveurs du boulot. Rarement de problèmes. Et aucun problème qui ne soit réglé en moins de 30 min.
D'ailleurs, soit dit en passant, cette version de FreeBSD est importante, car c'est la première version de FreeBSD 5.x à avoir une branche STABLE. Ce qui veut dire qu'il a atteint un stade où il est considéré comme bon pour production. Oui, je faisais tourner toute ma vie sur le net avec une "beta". 🙂
La mise à jour du système s'est révélée plus importante qu'à ce quoi je m'attendais. Les modifications des fichiers de configuration et des scripts étaient moins nombreuses lors des mises à jour des précédents FreeBSD 5. Du coup, je me suis dit qu'il serait peut-être intéressant de mettre à jour certains ports. Les ports, c'est les logiciels de source tierce (et open source) pré-configurés pour se compiler et tourner sur FreeBSD. Ils sont généralement intercompatible entre les *BSD majeurs (FreeBSD, OpenBSD et NetBSD). C'est pratique, le port se débrouille pour résoudre les dépendances et récupérer les sources pour installer le logiciel. Presque rien à faire, si ce n'est adapter le fichier de configuration. 🙂
Donc je me dis que ça serait pas mal de mettre à jour Python, vu qu'il est le langage de base de Zope, sur lequel repose Plone, qui est le squelette de mon site. FreeBSD 5.3-STABLE est sensé être débarrassé des codes de debug, donc je me suis dit qu'en recompilant Python sur les nouvelles bibliothèques et avec le nouveau GCC, ça accélérerait l'exécution des programmes Python, comme Zope (en même temps, j'en sais trop rien, c'est peut-être des conneries, ce que je raconte 🙂).
Je me lance alors dans une mise à jour automatique de Python par l'utilitaire portupgrade
, qui permet de remplacer un port par une nouvelle version, tout seul comme un grand. L'installation finie, je relance Zope, et là, surprise, il ne démarre pas... Après un petit moment à me demander pourquoi, je me rends compte qu'il se plante au démarrage... 😕
En fait, Python se plante avec le message Fatal error 'Spinlock called when not threaded.' at line 83 in file /usr/src/lib/libpthread/thread/thr_spinlock.c
si je lance Zope. Si je lance un interprèteur Python tout seul, ça va... Mon ami Google m'explique en gros : c'est que le programme (Python) est rattaché à deux bibliothèques proposant des fonctions similaires, et qu'à l'appel d'une fonction particulière, la mauvaise bibliothèque répond et renvoie une erreur (l'explication est nulle, je sais, mais je suis pas assez calé en bibliothèque C et en threads pour tout comprendre... 😕).
La solution du problème réside à trouver le programme défectueux et de le recompiler proprement. Mais voilà, je ne sais pas comment. 🙂 Une solution simple est de recompiler tous les ports par portinstall -fa
. -f
pour forcer la réinstallation des ports (parce que portinstall
ne fait rien si un port est déjà à jour), et -a
, pour lui dire de traiter TOUS les ports installés. Et normalement ça se passe bien, parce que portinstall
vérifie les dépendances de chaque port et construit un arbre de dépendances pour le suivre pas à pas.
Inutile de dire que c'est long, ça m'a mis 6 heures environ à recompiler 190 ports (en même temps, ma pauvre Annis n'est pas un foudre de guerre...).
Le plus amusant, c'est qu'en fait, je n'avais pas besoin de faire tout ça : ce problème de bibliothèque doit être assez courant, parce qu'il existe un fichier de configuration, /etc/libmap.conf
, qui permet de spécifier et de forcer l'utilisation d'une certaine bibliothèque pour un certain programme, ou un groupe de programmes. En forçant donc mon Python à utiliser le libc_r
au lieu du libpthread
(me demandez pas, je ne sais pas, je crois que ça à voir avec si le programme est threadé ou pas), ça remarche nickel. 🙂
Néanmoins, je me suis tapé la mise à jour de tous mes ports, donc je suis super à jour, complètement bleeding edge. Je ne savais même pas qu'il y avait un Zope 2.7.3 de sorti. 🙂 (hé, je savais même pas qu'il y avait un Zope X3 !)
Enfin bon, je peux enfin aller me coucher l'esprit tranquille, mon serveur remarche.