Michaël a écrit 2935 commentaires

  • [^] # Re: Un peu d'explications sur le bug introduit

    Posté par  (site web personnel) . En réponse au journal Merci aux développeurs de la GNU libc !. Évalué à 4.

    Je ne vais pas parler ici des considérations politiques mais j'ai trouvé que le bug introduit dans la glibc est particulièrement intéressant. Pour ceux qui n'ont épluché les liens du journal, voici une tentative d'explication.

    Bravo pour ton explication simple et claire!

    Une point cependant me taraude: apparemment le compilateur serait capable de déterminer automatiquement si une variable est leaf ou pas, il pourrait enregistrer cette information dans les fichiers objet, enregistrer aussi les prototypes des fonctions appellées dans chaque unité de compilation et vérifier les incohérences, le tout complètement automatiquement. Ou peut-être serait-il plus approprié de déplacer ce genre de tests dans un outil d'analyse de code.

  • [^] # Re: Interruption logicielle

    Posté par  (site web personnel) . En réponse au journal UEFI, à la découverte du nouveau BIOS…. Évalué à 3.

    > Une autre limitation du BIOS est la taille rikiki du secteur d'amorçage: moins de 512 octets pour écrire un véritable boot-loader… c'est peu!

    Limitation détournée depuis longtemps puisque le secteur 0 sert principalement à charger en mémoire le vrai bootloader qui est situé ailleurs sur un nombre plus important de secteurs.

    C'est ce que j'ai écrit une ligne plus bas (!):

    > La plupart des boot-loaders sont donc fragmentés, le secteur d'amorçage charge le véritable boot-loader, qu'il s'agise de GRUB, du boot-loader de FreeBSD (un client BTX, BTX est une sorte de mini-noyau à écrire des boot-loader) ou celui de Windows.

    > Mais de tous ces petits problèmes, il est possible de s'accomoder: ce n'est pas très élégant mais marche et préserve la compatibilité avec le vieux matériel.

  • [^] # Re: Maths

    Posté par  (site web personnel) . En réponse au journal Formation continue (ou pas). Évalué à 2.

    Tu as mis ce livre dans ta catégorie « facile »

    Ce n'est pas une catégorie facile mais une liste de livres que l'on peut aborder avec un bac et de la motivation: après il faut s'accrocher, c'est sûr, mais c'est vrai de tous les livres de maths! Ce qui est dur, c'est ce qui est nouveau, et s'il n'y avait pas de nouveauté, il n'y aurait pas à lire!

  • [^] # Re: Interruption logicielle

    Posté par  (site web personnel) . En réponse au journal UEFI, à la découverte du nouveau BIOS…. Évalué à 2.

    pendant longtemps le BIOS n'était programmable qu'en assembleur

    Qu'est-ce que tu veux dire? Qu'il fallait utiliser de l'assembleur pour programmer un BIOS ou pour programmer un client du BIOS? Les deux sont faux, même si dans chaque cas une petite partie du code doit être écrite en langage machine.

    Et puis même s'il fallait programmer en assembleur, je ne vois pas trop ce qu'il y a de crade: vu la tâche du BIOS, la portabilité ne fait pas vraiment partie du cahier des charges, et, portabilité mise à part, je ne vois pas vraiment de grosses différences entre le C et le langage machine.

  • # Interruption logicielle

    Posté par  (site web personnel) . En réponse au journal UEFI, à la découverte du nouveau BIOS…. Évalué à 10.

    Les interruptions que tu cites sont logicielles (0x10 et 0x13), des interruptions matérielles sont par exemple 0x01 -- 0x07 (CPU generated) puis 0x08 (timer), etc.

    Le BIOS est moche, clairement. Très basique, très crade… Mais il faisait son travail, il fournit une abstraction très primitive au matériel. On pouvait presque écrire un OS uniquement en faisant des appels au BIOS, comme DOS…

    Je ne vois pas très bien ce qu'il y a de moche et crade dans le BIOS… son travail est de tester l'intégrité de la machine au démarrage, puis de charger le secteur d'amorçage et de lui passer la main… il n'a pas vocation à être aussi sophistiqué ou performant qu'un véritable OS.

    À partir de l'éopque du 386, beaucoup de programmes utilisent un DOS-Extender, et à la rigueur, on pourrait presque considérer que le DOS-Extender est le véritable OS sous lequel tourne le programme!

    Mais avec l'évolution du matériel, les limites sont apparues : le BIOS utilise un mode 16 bits ne lui permettant pas d'adresser toute la RAM, le boot par le réseau ou par CD est apparu, l'USB est arrivé…

    Mon BIOS sait booter sur le réseau, sur un CD, sur une clef USB, et gère les périphériques USB (enfin, le clavier et la souris)… Pour la RAM, la limitation à 20 bits de l'adressage mémoire n'est pas un problème, le but du BIOS est de charger un démarreur d'OS.

    Une autre limitation du BIOS est la taille rikiki du secteur d'amorçage: moins de 512 octets pour écrire un véritable boot-loader… c'est peu!

    La plupart des boot-loaders sont donc fragmentés, le secteur d'amorçage charge le véritable boot-loader, qu'il s'agise de GRUB, du boot-loader de FreeBSD (un client BTX, BTX est une sorte de mini-noyau à écrire des boot-loader) ou celui de Windows.

    Mais de tous ces petits problèmes, il est possible de s'accomoder: ce n'est pas très élégant mais marche et préserve la compatibilité avec le vieux matériel.

    Les limitations induites par la table de partition sont véritablement celles qui vont déclencher le changement de norme.

    Le premier qui dit que ça ressemble à DOS gagne un cadeau bonux…

    Ça ressemble à DOS! :-)

  • # Maths

    Posté par  (site web personnel) . En réponse au journal Formation continue (ou pas). Évalué à 6.

    Pour ne pas perdre son niveau en math, orthographe, programmation, etc.. Comme dans le sport il faut s'entraîner. Réactiver les connexions du cerveau endormies, avant qu'elles ne sombrent dans le coma.

    C'est effectivement une très bonne idée. J'ai regardé deux minutes le site khanacademy, et j'ai déjà trouvé une faute dans les réponses des exercices! L'exercice incriminé est le suivant:

    http://www.khanacademy.org/exercises?exid=limits_1

    Si tu veux faire des maths, je peux te donner plusieurs conseils, cela dépend de ton niveau (tu as fais un peu de maths dans le supérieur ou pas?).

    Quelques livres en anglais:

    • Geometry: Euclid and Beyond; Robin Hartshorne: à propos de la géométrie, issu de cours du soir donnés à un groupe d'adultes, c'est très intéressant et devrait bien te convenir même si tu n'a pas fait de maths après le bac.

    • Problems and Theorems in Analysis; Polyà, Szegö: exercices d'analyse, parfaits pour les autodidactes (existe aussi en allemand).

    • Concrete Mathematics; Knuth, Patashnik: des mathématiques pour l'informatique, livre assez ludique!

    Si tu aimes bien l'algèbre un peu plus dure que ce qu'on peut faire au lycée:

    • Number Theory; Hardy, Wright: beaucoup d'exemples élémentaires, plutôt ludique.

    • Galois Theory, Ian Stewart: sur la résolution des équations par radicaux, l'un des plus beaux problèmes résolus au XIXème siècle.

    Quelques idées en français:

    • Géométrie projective; Pierre Samuel: court et élémentaire, sur un sujet pas abordé au lycée, très pédagogique et intéressant pour les matheux non professionnels.

    • Cours d'algèbre; Roger Godement: pour autodidactes très motivés (le livre lui-même n'étant pas très motivant).

    Je suis ces cours en période de chômage entre-deux jobs, ils sont très bien mais j'aurais voulu profiter de l'occasion pour faire une licence, seulement début octobre c'est trop tard pour s'inscrire...

    Si je me souviens bien, on ne peut pas être chômeur et étudiant…

    Je ne pense pas que les entreprises forment leurs développeurs en interne

    Oh que si, mais peut-être pas toutes.

    Pour finir, je pense que l'enseignement devrait apprendre aux élèves à se former par eux même.

    L'enseignement devrait beaucoup de choses, même si on s'en tient à des objectifs apparemment raisonnables (lire, écrire, compter et critiquer) ce n'est pas si facile que ça…

    Mais la plupart des gens ont besoin d'un professeur pour apprendre, pour quoi faire?

    L'essence de l'enseignement est la transmission orale, l'exemple et la culture: parceque le savoir est vivant, et cette vie existe au moins dans ce que partagent le prof et l'élève. En l'absence de vie, le savoir est inutile. Le texte, le discours où le film ne peuvent pas tout transporter, et beaucoup de livres de cours (même universitaires) n'ont pas vocation à remplacer le professeur mais à le compléter.

    Au contraire, on passe dans une phase d'abrutissement. On ne nourrit plus le cerveau on ne l'entraîne plus. Routine salariale, bière, conversation creuse entre collègues sur la pluie et le beau temps, série TV pour neuneu et raconter sa vie sur facebook.

    C'est pas interdit d'avoir des loisirs un peu plus enrichissants, comme particper à la politique locale, faire du soutien social, ou aller au théâtre!

  • # Je n'ai rien compris

    Posté par  (site web personnel) . En réponse au journal [Coup de gueule] Après le web illimité à 500Mo l'open-source en partie ouvert. Évalué à 7.

    Après une lecture patiente et pleine de bonne volonté je ne sais toujours pas ce qu'est un ALM ni ta croisade… vu la longueur de ton texte je m'attendais à ce qu'il contienne aussi des informations!

  • [^] # Re: man

    Posté par  (site web personnel) . En réponse au message Cherche aide-mémoire vi/vim et commandes Unix... en français. Évalué à 5.

    man le_logiciel_dont_tu_veux_le_manuel

    Quleques précision:

    1. Ce n'est en général pas un manuel mais une aide en ligne ou un aide-mémoire: un manuel peut avoir une portée didactique ou pédagogique, ce n'est en principe pas le cas des pages de man:

    2. Un logiciel peut être composé de plusieurs programmes, dans ce cas il peut arriver que le logiciel lui-même ait une page de man dont le nom n'est celui d'aucun programme, qu'une page de man document tous les programmes du logiciel, et sans doute, tous les cas de figure imaginables existent.

    3. L'exemple de `man firefox' ne fonctionne pas partout car la distribution ne contient pas de page de man, certaines distributions en ajoutent une.

    4. Les pages de man documentent aussi autre chose que les logiciels installés (cf. man man).

  • [^] # Re: Meilleure estimation de la mémoire utilisée

    Posté par  (site web personnel) . En réponse au message Mémoire consommée mais par quoi/qui ??? Incompréhensible. Évalué à 2.

    Sur Archlinux ça me raconte que les options de ps n'ont pas la bonne syntaxe.

    C'est que je suis sous FreeBSD, précision utile que j'oublie trop souvent d'ajouter … pour régler le problème il devrait suffir de jeter un coup d'œil à la page de man de ps.

  • [^] # Re: Meilleure estimation de la mémoire utilisée

    Posté par  (site web personnel) . En réponse au message Mémoire consommée mais par quoi/qui ??? Incompréhensible. Évalué à 2.

    Ah oui effectivement! :)

  • [^] # Re: Un "comme toujours" pas si vrai que ça.

    Posté par  (site web personnel) . En réponse au journal Einstein avait finalement raison! (comme toujours). Évalué à 4.

    Bref, c'était indéniablement un génie... mais parfois il s'est trompé, et dire qu'il a raison (comme toujours) me fait tiquer comme vous pouvez le constater ;)

    Les seules personnes qui ne se trompent jamais sont les politiciens et les psychanalystes! ;)

  • [^] # Re: Je devrais te moinser !

    Posté par  (site web personnel) . En réponse au journal Einstein avait finalement raison! (comme toujours). Évalué à 4.

    Et vendredi je t'expliquerai au sujet de Dieu et de la Création en 7jours, exprès pour te pourrir ton week-end! ;)

    Vu les approximations scientifiques que contient la parole révélée, on peut fortement douter que ce soit Dieu qui ait créé l'univers: à mon avis il se l'est juste approprié, de toutes façon tous ceux qui pourraient le contredire sont morts depuis longtemps!

  • [^] # Re: Je devrais te moinsser !

    Posté par  (site web personnel) . En réponse au journal Einstein avait finalement raison! (comme toujours). Évalué à 5.

    Désolé, ce n'est pas la question que je pose.

    Ben si: d'après Albert_ les deux affirmations dont vous parlez sont équivalentes, donc prendre l'une ou l'autre comme postulat est un choix complètement arbitraire qui ne change rien à la théorie.

  • # Meilleure estimation de la mémoire utilisée

    Posté par  (site web personnel) . En réponse au message Mémoire consommée mais par quoi/qui ??? Incompréhensible. Évalué à 4.

    En dehors du fait qu'il y a des méthodes plus adaptées pour estimer la mémoire totale utilisée, voilà une version améliorée de ta ligne de commande, qui a le défauts suivants:

    1. Les pourcentages ne sont pas assez précis (beaucoup de 0,0 pour les petits processus) pour faire cette estimation, j'utilise rss (resident size) au lieu de pmem.

    2. Beaucoup de petits processus peuvent manger la mémoire, il ne faut pas se contenter de regarder les plus grosses entrées. J'utilise AWK pour calculer le total et tronque comme toi le résultat pour avoir le total et les plus gros clients.

    ps -ax -o comm,rss | awk '{ t = t +$2; printf("%10d %s\n", $2, $1) } END {printf("%10d %s\n", t, "total")}' | sort -nrk2 | head
       1510468 total
        504184 seamonkey-bin
        355688 Xorg
        111772 mono
         48512 npviewer.bin
         37948 plugin-container
         37592 pidgin
         36676 emacs
         23312 Thunar
         21756 xfce4-panel
    
    
  • [^] # Re: Le cache...

    Posté par  (site web personnel) . En réponse au message Mémoire consommée mais par quoi/qui ??? Incompréhensible. Évalué à 7.

    Comme on peut le voir une bonne partie de la mémoire est bouffée... MAIS PAR QUOI ???
    Oui, elle est occupée à 98%. Par contre, si tu regardes bien, la majeure partie de cette utilisation est dans le cache (colonne cached).

    Je complète la réponse bien pertinente de ymorin par le slogan: mémoire inutilisée = mémoire gâchée! Même quand tu te contentes de travailler sous KDE[*], tes 4Go de RAM sont utilisés par ton OS préféré.

    [*] Ceci n'est pas un appeau à trolls, nous sommes lundi!

  • [^] # Re: but du cloud ?

    Posté par  (site web personnel) . En réponse au journal GTK/HTML5 & LibreOffice dans le Cloud. Évalué à 2.

    […] De la même manière que ce que tu as avec un logiciel natif.

    Une manière bien compliquée de dire qu'en fait, on n'est pas bien plus avancés…

  • [^] # Re: Javascript must die

    Posté par  (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 2.

    (Exemple qui m'a toujours fait rêver : avec les exceptions resumable de Lisp, quand un programme lance une exception qui n'est pas rattrapée il se fige, le programmeur peut inspecter le problème (explorer les valeurs etc.), corriger le code, et revenir au point du programme qui avait lancé l'exception, le tout sans arrêter le programme.)

    Par curiosité, il sait aussi remonter le temps du programme? (Comme le debugger de OCaml.)

  • [^] # Re: La question du choix

    Posté par  (site web personnel) . En réponse à la dépêche Est‐il démocratique, adapté et rentable que l’anglais soit la langue internationale ?. Évalué à 2.

    D'aucuns peuvent certes regretter qu'actuellement l'anglais soit la langue international par excellence. Mais la question du choix se pose-t-elle vraiment ?

    Le mot choix est complètement à côté de la plaque. Je me demande bien à l'issue de quelle réunion a-t'il été décidé que l'anglais soit la langue internationale! C'est juste un état des choses, qui un jour changera. La domination de l'anglais a à peine 60 ans, le français a auparavant dominé les échanges internationaux pendant peut-être plus d'un siècle et bien malin qui dira quelle sera la langue de demain.

    Je trouve dommage que l'étude omette complètement le corpus littéraire qu'ouvre l'apprentissage d'une langue: avec l'anglais, celui-ci est impressionnant! On y trouve des grands philosophes, politiciens, économistes, romanciers, mathématiciens, informaticiens, … L'accès à ce corpus a d'après-moi une grande valeur.

  • [^] # Re: JavaScript— Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?

    Posté par  (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 2.

    Dans un langage imaginaire si les instructions

    
    

    sont données il faut savoir si il s'agit de la fonction print avec quatre arguments ou bien deux appels de fonctions. C'est à dire qu'une fois l'analyse lexicale faite le découpage en phrases va devoir tenir compte des règles d'associavité du langage pour arriver à l'AST, ce qui est forcément plus long que si le programme contient la marque de fin des phrases!

    Pour prendre des cas extrèmes, on peut coder un assembleur qui travaille en temps et espace constant sur chaque phrase (sans labels!) alors que pour un langage plus complexe, on va avoir besoin d'une pile: on parle de complexités différentes.

  • [^] # Re: déçu aussi, mais confiant

    Posté par  (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 2.

    La facilité de la sérialisation dépend avant tout d'un choix d'implémentation du langage, celui de trimballer ou pas de l'information de typage au runtime. […]

    Ce que je voulais dire, c'est que dans les langages que j'ai cités, la sérialisation est facile à implémenter dans les termes du langage et n'a pas besoin d'être prise en charge directement par le langage.

    Pour les deux autres points, je ne voualais pas tant pointer des différences d'expressivité dans les familles de langages que les moyens mêmes de cette expressivité: par exemple dans le langage OCaml, les arguments optionnels sont un concept du langage et ont une notation syntaxique spéciale tandis qu'en Perl ou Scheme les arguments optionnels son un concept d'implémentation: c'est la fonction appellée qui va explicitement examiner la forme de son argument pour déterminer si des arguments optionnels sont là ou pas.

  • [^] # Re: JavaScript— Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?

    Posté par  (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 2.

    Ça me paraît absurde qu’un langage sortant en 2011, impose encore la présence de « ; » pour séparer les instructions se trouvant sur des lignes séparées.

    L'intérêt qu'on peut y voir, c'est d'éviter les lignes à rallonge qui, en Ruby ou en Python, ne peuvent être coupées qu'en terminant la ligne par « \ ». Et ça évite les ambiguïtés.

    À mon avis l'intérêt est surtout que ça simplifie l'analyse syntaxique: avant d'être éxécuté le programme va être analysé syntaxiquement et gagner du temps sur ce côté là rendra porbablement l'ensemble plus réactif. C'est probablement un bon choix pour un langage utilisé dans un contexte intéractif. Dans les langages sophistiqués (comme OCaml), le temps de compilation est très long!

  • [^] # Re: déçu aussi, mais confiant

    Posté par  (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 3.

    Je n'ai jamais compris l'intérêt du non typage...

    Un langage faiblement ou pas typé permet une forme de polymorphisme n'existant pas en tant que telle dans les autres langages: une fonction peut adapter son comportement à la structure de son argument.

    Des exemples typiques de langages faiblement typés permettant ce type de polymorphism sont Scheme (ou Lisp) et Perl, qui définissent des types simples (nombres, chaînes de caractères) et de types complexes (listes, dictionnaires) permettant de représenter des structures de données complexes: mais à la différence d'un langage fortement typé comme Caml, le langage range dans un même panier les listes de nombres, de caractères, les listes mixtes, etc.

    En pratique cela permet:

    1. La création de procédures de sérialisation et déserialisation particulièrement simples, ce point est modérément intéressant parceque de nombreux langages offrent des outils adaptés réalisant ces opérations.

    2. Coder une information de plusieurs façons différentes.
      Par exemple, imaginons un mail user agent codé en Scheme dont la procédure de tri des messages admet un paramètre qui peut être:

      1. une liste de paires mot-clef, dossier et le sujet de chaque message est comparé successivement aux mot-clef et en cas de succès, le message est déplacé dans le dossier correspondant.
      2. une structure plus complexe permettant de filtrer selon plusieurs en-têtes;
      3. une fonction quelconque prenant un message et renvoyant le dossier où il doit être placé. Dans un point de vue d'un langage objet objet, on a ici une classe trieur de message et trois constructeurs: la différence avec ce point de vue est qu'ici la bureaucratie est laissée au programmeur et l'utilisateur qui configure le tri de ses mails est confronté à une solution qui s'adapte à son niveau en programmation.
    3. Le non typage permet aussi d'écrire des procédures à nombre d'arguments variables ou avec des arguments optionnels, ce qui nécessite souvent dans les langages typés des mécanismes particuliers (on a souvent une syntaxe spéciale pour les arguments optionnels, par exemple).

    Mon goût personnel pour programmer va cependant aux langages fortement typés, mais pour un langage de configuration ou d'extension, un langage pas très typé (comme Scheme) me paraît un choix intéressant.

  • [^] # Re: rsync ?

    Posté par  (site web personnel) . En réponse au message Synchronisation de home entre plusieurs machines. Évalué à 1.

    un petit rsync+ssh quand tu quittes le boulot ou la maison ça ne ferait pas l'affaire ?

    RSYNC est plutôt adapter pour metre à jour des miroirs de sites. Dans le contexte du travail, les modifications peuvent être faites sur n'importe quelle machine et doivent être répercutées sur les autres. Si en principe RSYNC ou n'importe quel outil de copie pourrait faire l'affaire, il existe des solutions (comme unison) plus adapteés à cette situation particulière puisqu'elles fonctionnent sur un modèle plus fin que copie principale et miroir.

  • # Pour l'exhaustivité: AFS

    Posté par  (site web personnel) . En réponse au message Synchronisation de home entre plusieurs machines. Évalué à 2.

    Dans une situation analogue, j'ai utilisé et aimé unison (que je recomamnde), dont il a déjà été question dans un commentaire précédent.

    J'a entendu parler de ça:
    http://en.wikipedia.org/wiki/Andrew_File_System

    qui doit répondre à ton besoin, mais je ne l'ai jamais utilisé: je le cite car personne d'autre ne l'a encore fait.

  • [^] # Re: Lire la doc de phpmyadmin

    Posté par  (site web personnel) . En réponse au message Serveur phpmyadmin serveur mysql. Évalué à 1.

    • pas de faute d'orthographe

    Il manque la majuscule au début de la phrase! :-)