Sébastien Koechlin a écrit 854 commentaires

  • [^] # Re: Quelle solution pour un particulier ?

    Posté par  . En réponse au journal Plus c'est gros, plus ça fait mal. Évalué à 10.

    Il y a deux choses, Les deux points ne sont pas mutuellements exclusifs, le plus sécurisé étant de faire les deux.

    1- Assurer le fonctionnement de la machine; ne pas être privé de la machine lorsqu'un disque lache, qu'il faut tout réinstaller, ressortir les sauvegardes... S'il faut 15 jours pour tout ré-installer et que l'on estime que l'on a une meilleur façon de dépenser son temps, alors on peut dépenser 100 ou 200 ¤ pour de la redondance.

    Pour assurer de la sécurité de fonctionnement, le Raid 1 est une bonne solution. J'ai deux recommandations:

    - Toujours acheter des disques de constructeurs différents, pour éviter d'avoir un défaut de série sur les deux disques.

    - Faire du Raid logiciel; on peut récupérer les données même si la carte controleur lache; parce que le Raid hardware impose pratiquement toujours un format de matrice propriétaire que l'on ne peut pas utiliser si on change de matériel.


    2- Assurer que les données ne sont pas perdues, s'assurer qu'une commande saisie un peu rapidement, qu'un hackeur mécontent, qu'un cambriolage ou qu'un incendie ne marque pas la fin de nos données. A nouveau, il faut estimer le prix et les contrainte en fonction de la valeur des données.

    Pour cela, il faut faire des sauvegarde, il faut généralement conserver au moins deux jeux, parce qu'on ne se rends pas forcément compte tout de suite de la disparition. Je donne trois recommandations :

    - Eviter tout système manuel, c'est très très rapidement lassant et la fréquence des sauvegardes décroit exponentiellement avec le temps.

    - S'assurer que les sauvegardes fonctionnent bien, que les données sont effectivement enregistrées et récupérables.

    - Préférer tout les mécanismes hors-site. Avec la généralisation de l'ADSL et de l'hébergement, il est facile de faire un mécanisme de sauvegarde croisé avec un ami. Un coup de rsync via ssh dans une crontab toutes les nuits est simple à mettre en place.
  • # Raid 5 ?

    Posté par  . En réponse au journal Plus c'est gros, plus ça fait mal. Évalué à 10.

    Je suis étonné de voir un particulier faire du Raid 5. Contrairement au Raid 1, pour être fiable dans le genre de situation que tu as rencontré (plusieurs coupures de courant pendant des écritures), il est nécessaire d'avoir une carte haut de gamme avec de la NVRAM qui garantie une écriture atomique sur tous les disques en même temps.

    Pour rappel, en Raid 1, on fait un mirroir exact des données sur les deux disques. La matrice enregistre dans le superblock un compteur d'evenement pour être capable de retrouver le mirroir le plus récent en cas de coupure sauvage. Au pire, on a une série de blocs qui est partiellement écrite. Si c'est dans les méta-données, le journal sait gérer les transactions terminées et en cours, si c'est dans les données, on a un fichier qui est partiellement écrit.

    En Raid 5, les secteurs sont répartis sur plusieurs disques et on doit en permanence maintenir le bloc de parité à jour. Si on a une coupure de courant sauvage, on ne sait plus trop quels sont les blocs de parités écrits ou non et il est impossible de les utiliser sans quoi on risque de corrompre les données, il faut tous les recalculer.

    Si on perd un disque avant d'avoir tout recalculé; on est mort, parce qu'on ne sait pas si nos blocs de parité sont utilisables pour reconstruire le disque manquant. Comme généralement, les disques meurts plutot lorsqu'on coupe ou redémarre le courant, cette situation a d'autant plus de chances de se produire.

    La couteuse NVRAM embarquée sur les cartes controleur haut de gamme conserve en mémoire, même en cas de coupure de courant, les blocs de parité qui restent à écrire, permettant de court-circuiter les phases de ré-écriture.

    Cette solution n'est quand même pas parfaite; ces cartes on un schéma de matrice Raid qui est propriétaire. Si jamais la carte lache; il faut installer la même carte avec le même firmware pour pouvoir accéder à la matrice en mode dégradé; et la reconstruction des blocs de parité est alors obligatoire.

    La documentation du kernel Linux dit au sujet du Raid 5 et 6:

    "If a raid5 or raid6 array is both dirty and degraded, it could have
    undetectable data corruption. This is because the fact that it is
    'dirty' means that the parity cannot be trusted, and the fact that it
    is degraded means that some datablocks are missing and cannot reliably be reconstructed (due to no parity)."
  • # Par rapport aux autres ?

    Posté par  . En réponse à la dépêche Magrathea Online, le routard du système solaire !. Évalué à 3.

    Serait-il possible de donner les différences avec les autres projets existants comme Celestia ou OpenUniverse ?

    Si les projets sont semblables, pourquoi ne pas avoir contribué à l'un ou à l'autre ?
  • # Partitions

    Posté par  . En réponse au journal Des clés usb 1 et usb 2. Évalué à 3.

    Regarde le résultat de la commande dmesg.

    Normalement a chaque insertion, tu dois avoir des évenements correspondants sans avoir à supprimer des modules.

    La définition des partitions d'une clef USB n'est pas normaliée. On rencontre régulièrement au moins trois cas:

    - Aucune partition, il faut monter directement /dev/sda ou autre. Cela évite de perdre le premier cylindre virtuel, et donc de gagner un peu de place.

    - Un mécanisme de partition connu sous Linux sous le nom "PC BIOS (MSDOS partition tables)", le truc effroyable limitant la géométrie et avec des artifices de partitions étendues avec une seule partition en première position; il faut alors utiliser /dev/sda1, c'est le cas le plus courant, et de loin je pense.

    - Même mécanisme de partition, mais en utilisant la quatrième partition /dev/sda4; je n'ai aucune idée du pourquoi; mais j'ai vu plusieurs fois des clefs livrées avec ce partitionnement.

    Rien n'interdit de supprimer ou de refaire le partitionnement des clefs pour simplifier son usage.
  • # date

    Posté par  . En réponse au message Aide synthax shell pourle "case". Évalué à 3.

    - Une base de donnée est faite pour traiter des données, ce traitement coté script n'a pas de sens, ça fait une seconde techno et un second code à maintenir. En prime, le shell est une plaie pour la gestion des erreurs.

    - L'utilisation de "date | cut" sans même régler la locale est suicidaire, d'ailleurs c'est ton problème. En prime, les versions évoluées de date permettent de préciser le format.

    - L'utilisation des dates oracle sans formattage est une grosse source de problème, toutes les dates doivent passer par "TO_CHAR". Ca permet d'avoir un format connu et maitrisé.
  • [^] # Re: Commencons par..

    Posté par  . En réponse au journal Les geeks vont il participer à cet élan d'écologisme. Évalué à 10.

    Bon, alors calculons la conso de l'affichage de l'heure dans la FreeBox.

    C'est un mécanisme à LED, dans lequel il faut faire passer 10 mA en moyenne (dans le cas du multiplexage, on fait passer plus, mais pas tout le temps). C'est du vert, donc la tension de chute est de 2,2 V. Comme il n'y a probablement pas de générateur de courant, on va partir d'une alimentation 3,3 V et considérer que la chute est perdue en chaleur (donc compté dans la consommation).

    Disons qu'il y a en moyenne 18 segments allumés, la loi d'Ohms nous dit que P = U x I.

    18 x 3,3 x 0.01 = 0,6 W

    Si la Freebox reste allumée toute l'année, cela fait une consommation de 0,6 x 24 x 365 = 5256 W.h = 5.2 kW.h

    D'après http://particuliers.edf.fr/article493.html le kW.h coute 0.1074, ce qui nous donne 0,56 ¤ par an.

    Bon, avec la transformation, les pertes de toute part, on peut arrondir à 1¤. En utilisant un afficheur basse consommation, on peut réduire le coût énergétique de l'afficheur de moitié.

    Elle fait combien votre facture électrique par an ?
  • [^] # Re: Débilité sans nom

    Posté par  . En réponse au journal Les geeks vont il participer à cet élan d'écologisme. Évalué à 7.

    En fait, ça existe.

    Une partie des centrales hydroliques sont équipés de pompes. Lorsqu'on a trop de courant, on peut pomper de l'eau vers la réserve en hauteur; cette eau pourra à nouveau être utilisée pour produire de l'électricité lorsque cela sera nécessaire.

    A ma connaissance le premier site équipé ainsi a été le Lac Blanc/Lac Noir en Alsace ( http://fr.wikipedia.org/wiki/Lac_Blanc_%28Vosges%29 http://fr.wikipedia.org/wiki/Lac_Noir_%28Vosges%29 ) en 1928.

    Le problème est que le rendement d'une telle opération n'est franchement pas terrible.
  • [^] # Re: Débilité sans nom

    Posté par  . En réponse au journal Les geeks vont il participer à cet élan d'écologisme. Évalué à 10.

    C'est a peu près ce qu'il s'est passé le 4 novembre 2006.

    L'électricité ne se stoque pas. Il faut en permanence adapter la production à la consommation. C'est une loi physique incontournable. Les tolérances d'écart entre les deux sont faibles.

    La page de http://www.rte-france.com/htm/fr/accueil/coupure.jsp donne plus de détails.

    Les seules centrales qui sont capables de s'adapter à un brusque changement de la demande sont les centrales hydroliques, en France elles ne représentent que 8% de la production électrique.

    Si en moins de 2 minutes, la consommation électrique chute de 12%, EDF n'est pas capable de modifier sa production, des centrales nucléaires vont se mettre en sécurité, rejetant probablement plein de vapeur d'eau dans la nature pour évacuer la chaleur. Il va y avoir des coupures de courant un peu partout pour tenter d'adapter au plus vite production et consommation.

    Le rétablissement de la production doit se faire sous controle, prends des heures; entrainant le déplacement de nombreuses personnes (pétrole), des coupures d'électricité entrainant des coûts importants dans l'industrie (matière gachée), du matériel électronique poluant à fabriquer claque à chaque coupure..

    Le bilan écologique est probablement très négatif; l'impact de la coupure sur la population est loin d'être positif, le bilan économique pour les entreprises est largement négatif.

    La seule prise de conscience qu'il risque d'y avoir de la part de la population, c'est que notre confort est finalement très lié à la disponibilité électrique et qu'il faudrait peut être augmenter notre capacité de production.
  • # Débilité sans nom

    Posté par  . En réponse au journal Les geeks vont il participer à cet élan d'écologisme. Évalué à 10.

    Tout couper pendant 5 minutes, c'est pas 5 minutes de répit pour la planête, c'est le meilleur moyen de faire exploser tout le réseau électrique.
  • # Performances, redondance

    Posté par  . En réponse au journal Centralisation des sessions PHP: mysql, mcache, sharedance, etc .... Évalué à 5.

    Tous les mécanismes qui nécessitent de se passer la session sur un serveur centralisé ont plusieurs problèmes

    Le premier est la performance. Si on veut enregistrer les données sur disque à chaque requête, il va sans dire qu'il faut mettre le minimum de données en session, c'est pourtant rarement l'objectif des développeurs lorsqu'ils écrivent une application, ils utilisent plutot la session comme cache des données utilisateur.

    Lorsque les données sont en plus enregistré dans une base de donnée, particulièrement MySQL qui verrouille souvent au niveau de la table. L'enregistrement de plusieurs Ko de données est catastrophique.

    Le partage NFS est aussi souvent utilisé; mais le verrouillage des fichiers n'est alors généralement pas géré.

    Le second problème est la redondance. Si le serveur de session tombe, parce qu'il est trop chargé, ou parce qu'il y a un problème matériel sur la machine; le service est complètement coupé. On souhaite souvent avoir un mécanisme de secours, même si les sessions sont perdues, les gens doivent pouvoir en ouvrir une nouvelle. Les mécanismes à serveur unique fonctionnent mal dans ce cas. Les serveurs SQL peuvent être souvent installés en clusters, mais dans ce cas, le temps de traitement des requêtes est également augmenté; ce qui augmente les risques d'écroulement sous la charge.

    La technique que j'utilise est le proxy avec affinité de session. Cela permet de distribuer en amont, avec un logiciel ou un équipement dédié, le routage de toutes les requêtes d'un même client vers le même serveur. Ainsi la session peu rester locale à l'application.

    Un logiciel qui permet de faire cela est Pound http://www.apsis.ch/pound
  • [^] # Re: Mais ca m'enerve ca ... Ptin ...

    Posté par  . En réponse au journal Au secours ! Site défacé !. Évalué à 2.

    Mais tu te crois vraiment plus fort qu'une équipe de développeurs, qui passent leurs temps à relire le code, le corriger, sortir des patchs, passer des tests ?


    Ce n'est absolument pas les propos de l'auteur. La lecture des commentaires montre d'ailleurs qu'il est tombé dans un piège plutot simple. Ton commentaire à l'emporte pièce peut aussi énerver.

    Ce que dit l'auteur, c'est simplement qu'il n'a pas installé de CMS pour des raisons de sécurité; pas qu'il est capable de faire mieux.

    Lorsqu'on développe son propre code, on sait précisement comment il fonctionne, et lorsqu'il y a un trou, on est capable de le corriger.
    Lorsqu'on installe un CMS, on se contente d'espérer que les correctifs de sécurité ne trainent pas trop après la découverte d'une faille.

    J'ai utilisé et j'utilise plusieurs logiciels tout fait en PHP, et je n'ai pas encore trouvé le CMS sérieux dont tu parles. A chaque fois que je me plonge dans l'un d'eux, et que je regarde la liste des alertes de sécurité, je suis comme l'auteur de ce journal, encouragé à écrire moi même le plus possible de ce qui m'est nécessaire. Non pas parce ce que je pense qu'il y aura moins de trous de sécurité, mais parce que je serai capable de les corriger.

    En prime, conscient du problème de sécurité, je m'astreints à respecter tout un tas de règles de codages et de paramétrage de PHP afin d'essayer de produire du code plus fiable, règle qui sont rarement utilisés dans les logiciels disponibles sur le net.
  • [^] # Re: tabulations

    Posté par  . En réponse au journal Bonnes pratique pour le développement. Évalué à 4.

    Ca dépends, normalement les cas anormaux sont éliminés par un lancer de trolld'exception.
    Pour le reste, oui, ça oblige a faire quelque chose comme
    
    fonction f(...) {
    	entier resultat
    	si( situation1 ) {
    		resultat = 1
    	} sinon si( situation2 ) {
    		resultat = calcul compliqué
    	}
    	retourne resultat
    }
    
    Dans plusieurs cas, on trouve des solutions plus claires; mais le but est surtout d'éviter du code effroyable avec des sorties de boucle, des variables pas trop bien initialisées...
    Plusieurs des règles que l'on peut imposer résultent d'un compromis. Comme tu l'as visiblement bien compris en rédigeant ce journal, on a besoin de bonnes pratiques, et lorsqu'on est une entreprise, on essaye de les imposer aux fournisseurs. Les bonnes pratiques sont rarement universelles; mais dans l'ensemble, on essaye de les choisir afin d'avoir le code le moins buggé et le plus maintenable possible.
    En général, le jeune développeur qui débarque est complètement focalisé sur les performances; ensuite il y a un long travail pour lui faire comprendre que ce que l'on veut, c'est un code clair, simple et non buggé. S'il faut mettre un second serveur à coté à cause des performances, ça coûte toujours moins cher que coller trois hommes.mois pour résoudre les problèmes.
    
  • [^] # Re: tabulations

    Posté par  . En réponse au journal Bonnes pratique pour le développement. Évalué à 2.

    Oui, en faite, cette recommandation n'est pas à sa place pour deux raisons:

    - L'idée derrière est qu'il faut imposer un certain nombre de règles de codage, cela ne se limite pas à l'indentation.

    - La règle est discutable. D'après Linus par exemple, le code doit être indenté avec des tabulations, si vous ne pouvez pas voir correctement votre code dans un éditeur tout bête (ceux qui place les tabulations tous les 8 caractères), c'est que votre code est mal fichu et que vous ne maitrisez pas le découpage fonctionnel du code.

    Au boulot, les normes de développement impose la tabulation; ainsi que pratiquement une centaines d'autres règles de bonne conduite (pas de catch d'exception vide, un seul return par fonction, pas de membre d'objet qui soit publique...)
  • [^] # Pas de soucis avec le PCI

    Posté par  . En réponse à la dépêche Projet Open Graphics : 1ère étape terminée. Évalué à 8.

    Il n'y a pas de soucis avec le PCI, c'est une étape qui est en fait obligatoire.

    Le bus AGP est en perte de vitesse, il va bientôt avoir disparu. En plus, si je me souviens bien, c'est en fait un bus PCI avec quelques améliorations ce qui fait que l'adaptation de l'interface n'est probablement pas très compliquée. Le plus gros avantage de l'AGP est qu'il permet d'adresser la RAM de l'ordinateur en passant par le MMU pour aller chercher des textures, une chose qui tue les performances et dont il vaut mieux se passer.

    Le bus PCI Express est le bus que l'on trouve maintenant sur toute les cartes mères, et lui, est terriblement proche PCI. Le connecteur est différent; les données sont transmises en série par les couches basses; mais par contre, tout le fonctionnement de l'interface est exactement le même que le PCI. Il existe des circuits "ponts" qui sont vendu pour permettre la connexion rapide d'une puce PCI à un bus PCIe; si on a plus de temps, il suffit de modifier la partie interface de la puce, toute la logique peut être conservée.
  • [^] # Re: Content de voir que ce projet abouti

    Posté par  . En réponse à la dépêche Projet Open Graphics : 1ère étape terminée. Évalué à 6.

    L'ISA a été abandonné, et c'est tant mieux. Cet ancien bus est un cauchemar qui ne permet d'adresser qu'un unique méga-octet de mémoire, toutes les cartes doivent être configurées manuellement à l'aide de jumpers ou de programmes spécifiques pour ne pas se marcher dans les ports. Bref, on ne va pas loin.

    La norme PCI est bien plus universelle et pratique. D'une part il y a un protocole qui permet aux cartes de se présenter et de réserver des ressources; ce qui fait que l'on se pose très peu de questions lorsqu'on branche une carte, le BIOS ou son équivalent se charge de faire une distribution dynamique des ressources nécessaires. D'autre part, les connecteurs sont bien plus dense et évitent d'avoir des cartes de 2 km de long comme c'était le cas avec le VLB.

    En prime le PCI n'est pas limité au 8086 et ses descendants compatibles, cela permet d'utiliser les cartes sur les machines ayant une architecture différente.
  • # La référence ?

    Posté par  . En réponse au journal [HS] Axiomatique. Évalué à 1.

    Ca serait bien, lorsqu'on parle d'un bouquin, de donner son identifiant, à savoir, le numéro ISBN. C'est la clef qui est utilisé par tout le monde pour identifier un livre.
  • # Des choses stupide

    Posté par  . En réponse au journal freetorrent : pour une culture libre !. Évalué à 7.

    Je ne vois vraiment pas l'intérêt de re-héberger des choses comme l'iso ubuntu-6.10-desktop-i386.iso alors qu'il existe déjà un flux officiel fourni par Ubuntu sur lequel il y a bien évidement plus de monde ( http://releases.ubuntu.com/6.10/ )

    Ceci est un exemple, je n'ai pas fais tout le tour de tous les fichiers fournis; mais diviser les trackers bittorrent est vraiment VRAIMENT une mauvaise idée.
  • [^] # Re: On passe a coté des vraies nouveautés !

    Posté par  . En réponse à la dépêche OpenOffice.org 2.1. Évalué à 1.


    Pourtant la cohabitation 32 - 64 bits ne pose en général aucun problème (en tout cas pas que j'ai rencontré).


    C'est bien, je suis content pour toi.

    La cohabitation pose des problèmes, j'ai même listé les principaux.

    Comme les machines 64 bits sont maintenant devenues très courantes et que toutes les distributions sont obligées de tourner dessus, les développeurs et les packageurs ont fait ce qu'il fallait pour que cela se fasse sans douleur pour les utilisateurs.

    Donc je répète: La solution du chroot était la solution qui me permettait de faire cohabiter les applications un peu lourdes à déployer au moment où j'ai installé la machine.
  • [^] # Re: On passe a coté des vraies nouveautés !

    Posté par  . En réponse à la dépêche OpenOffice.org 2.1. Évalué à 4.

    C'est généralement ce que l'on fait en environnement 64 bits; mais cela pose parfois des problèmes, en particulier avec les applications qui chargent des modules dynamiques.

    Lorsque j'ai installé la machine, OpenOffice.org 2.0 ne tournait pas en environnement 64bits, c'était également le cas pour Firefox avec le plugin flash et le JDK.

    Les erreurs classiques sont les grosses applis qui chargent des modules dynamiquement; les modules vont charger eux mêmes des bibliothèques... et parfois quelque part un nom de fichier est un peu trop codé en dur, et on se retrouvait avec des bouts de code en 64 bits.

    Un autre problème est qu'il faut avoir toutes les bibliothèques 32 bits nécessaires, images, vidéo, son... une application comme OOo contient énormément de dépendances; et toutes ces dépendances ne sont pas forcément packagées ou conçues pour être déployées en environnement 64 bits, en cohabitation avec les version 64 bits.

    Enfin il faut avoir un packet pour sa distribution ou alors se lancer dans la recompilation.

    Pour l'instant j'ai installé ces trois logiciels en chroot. Quand j'aurai un OOo 64 bits, j'irai sur place pour l'installer et le tester; en attendant je ne peux pas me permettre de bloquer la dizaine d'utilisateurs qui l'utilisent tous les jours pour une durée indéterminée si je casse quelque chose, chose dont je risque de ne pas me rendre compte à distance.
  • [^] # Re: On passe a coté des vraies nouveautés !

    Posté par  . En réponse à la dépêche OpenOffice.org 2.1. Évalué à 5.

    C'est intéressant, parce que actuellement, j'ai une vingtaine d'utilisateurs qui font tourner OOo 2.0 dans une sous-machine i386, ce qui oblige à faire un chroot.

    Par contre, je ne trouve pas de référence à cette version 64 bits, le site me renvoit vers http://wiki.services.openoffice.org/wiki/Porting_to_x86-64_%(...)
    qui explique au début de la page qu'on en est encore à essayer de tout compiler:

    "The x86-64 port is work in progress. It is not ready for use yet, but it compiles (with quite large set of patches), and performs basic operations. It is of no use for non-developers."
  • # Le ministre a un autre avis

    Posté par  . En réponse au journal Des députés méritants. Évalué à -2.

    Dans le second lien Yahoo que tu donnes, on peut lire

    "Je préférerais que l'on s'intéresse à l'apprentissage de bons réflexes et des effets néfastes d'une consommation excessive de vin sur la santé", a commenté le ministre de la Santé dans son discours de clôture.
  • # Le ministre a un autre avis

    Posté par  . En réponse au journal Des députés méritants. Évalué à 7.

    Dans le second lien Yahoo que tu donnes, on peut lire

    "Je préférerais que l'on s'intéresse à l'apprentissage de bons réflexes et des effets néfastes d'une consommation excessive de vin sur la santé", a commenté le ministre de la Santé dans son discours de clôture.
  • [^] # Re: sinon...

    Posté par  . En réponse au journal Bittorent, une bonne résolution. Évalué à 1.

    Ca tombe bien, y'a un site fait exprès pour les films qui sont tombés dans le domaine public et qui sont diffusés par bittorrent:

    http://www.publicdomaintorrents.com/

    Beaucoup de films ne sont pratiquement pas diffusés, si tu as un peu de place sur le disque, ça aidera pas mal.
  • [^] # Re: quelques liens

    Posté par  . En réponse au journal Bittorent, une bonne résolution. Évalué à 1.

    Sinon, pour pas saisir les torrent un a un, j'utilise rTorrent qui scrute un repertoire et telecharge tous les torrents qui s'y trouvent.

    C'est aussi le mode de fonctionnement du client historique bittornado.

    btlaunchmany et btlaunchmanycurses scrutent un répertoire.
  • [^] # Re: ramdisk

    Posté par  . En réponse au message Copie de fichier sur n clé USB. Évalué à 3.

    Si la machine dispose de suffisement de RAM et ne fait pas trop de choses par ailleurs, le cache disque de Linux fera exactement la même chose sans qu'il soit nécessaire de manipuler quoi que ce soit.