fmaz fmaz a écrit 494 commentaires

  • [^] # Re: Quelques commentaires en passant.

    Posté par  . En réponse au journal Utroff est publié. Évalué à 2.

    Je regarderai donc de plus près demain.

    Pour ce qui est des listes de la section « Programming style », j'aime justement bien la solution de la biblio de la page 9 du document que tu pointes. « lastname, firstname » est inliné avec le reste de la référence mais celle-ci est indentée après le passage à la ligne.

    Je trouve que ça serait plus lisible. De plus, dans les listes par défaut de LaTeX, les différents item sont séparés par des espaces verticales fine ou moyenne, je ne sais plus. Et je trouve que ça aide à la lecture. Tout comme j'aime bien la convention -- anglo-saxonne je crois -- de séparer les paragraphes de la même façon.

  • # Quelques commentaires en passant.

    Posté par  . En réponse au journal Utroff est publié. Évalué à 4.

    Je vais faire des remarques typographique sur la version pdf du manuel de ugrind. Attention, j'ai fait attention à ne surtout pas lire le texte pour ne pas me laisser influencer. Pour moi, la typographie doit aider à la lecture et pas l'inverse.

    Page 3.

    Je trouve dommage que les sections « NAME », « SYNOPSIS »… soient entièrement en majuscule. Le cas échéant, elles auraient pu si être en petites majuscule.

    Dans la section « Description », je ne comprends pas le sens des tirets et du retrait important avant « In regular mode, ugrind only… »

    Dans la section « Programming style », je la mise en forme peu lisible: « C and C++ », « PASCAL » avec un retour à la ligne contrairement à « MODEL » et « TROFF ».

    Si j'ai bien compris l'intention, j'aurais:
    1. éviter d'aligner les débuts de textes—Functions names…—pour éviter de forcer le retour à la ligne. J'aurais mis des espaces verticales pour séparer clairement les paragraphes.

    J'arrête pour l'instant, je suis sûr que je pourrais trouver encore plein de trucs à critiquer.

  • [^] # Re: Rien de nouveau

    Posté par  . En réponse au journal Vendre de l'open source illégal??. Évalué à 3.

    Juste pour donner une idée de ce que peuvent faire des étudiants.

    Il y a quelques années, j'intervenais dans un module "outils de développement". On voyait svn, make et d'autres trucs plus ou moins utiles.

    Pour le premier TP, j'ai expliqué qu'il y aurait un TP noté. Que les notes étaient autorisées pour le TP noté et que j'allais donner les premières questions et les réponses du tp noté.

    Normalement, après ça, on pourrait se dire que les étudiants écouteraient.

    Les premières questions étaient:
    1. Créer un dépot svn dans le répertoire ~prof/glop/
    2. Créer un projet dans votre dépot.
    3. Faire un checkout.
    4. Ajouter au projet un fichier toto.txt et faire un commit.

    Pour la suite du TP noté, chaque question devrait correspondre à un commit dans le dépot.

    Résultat, 1/3 de 0/20 parce que les étudiants n'avaient pas su créer le dépot.

  • [^] # Re: Rien de nouveau

    Posté par  . En réponse au journal Vendre de l'open source illégal??. Évalué à 5.

    Ça c'est de la réflexion niveau collège/lycée (je parle bien d'un étudiant qui pense ainsi, pas ta réflexion). Je sais qu'il y a des étudiants qui procèdent ainsi, mais un étudiant dans le supérieur quelque soit sa section peut interroger les profs pour expliciter la notation, la comprendre et l'appliquer en sachant que ça a un sens réel. Pour moi les étudiants qui cherchent juste à avoir une bonne note pour faire plaisir au prof et à papa et maman manquent clairement de maturité pour évoluer dans le système éducatif supérieur. Malheureusement je sais que ça existe.

    Je crois que tu te fais beaucoup d'illusions sur les étudiants. Dans l'immense majorité, ils ne cherchent pas à apprendre. Il cherchent à valider les modules pour avoir leur année. Une fois un module validé, \rm module et tant pis si le module est un pré-requis pour un module après.

    Je ne te jettera pas la pierre, mais tu as expliqué l'intérêt de la chose avant ?

    Oui mais on m'a déjà clairement répondu que je n'étais qu'un universitaire, que mon langage à la con, c'était un langage à la con. La preuve, s'il était si bien, il serait utilisé dans l'industrie. Et pour un étudiant qui a le courage de dire ce qu'il pense, il y en a une palanquée qui le pensent mais qui ne disent rien. Plus généralement, beaucoup d'étudiants ont une idée préconçue de ce qui est utile et de ce qui n'est pas utile. Ce qui n'est pas utile, on fait semblant de l'apprendre pour l'examen et après, on oublie.

    Mon but est d'être pédagogique, pas d'être arbitraire. Je préfère mille fois une personne qui utilise du goto proprement qu'une personne qui n'en met pas car il considère comme interdit et doit le simuler avec du code plus crade.

    Tu remarqueras que j'ai pris soin de ne pas être dogmatique en disant qu'il était "pas plus mal d'éviter d'utiliser trop de goto".

  • [^] # Re: Rien de nouveau

    Posté par  . En réponse au journal Vendre de l'open source illégal??. Évalué à 4.

    Vas expliquer à un étudiant qui a passé des heures sur un projet et dont le code fonctionne (pour lui) qu'il va se prendre une taule.

    Si ça fait effectivement partie clairement de la notation, il va peut-être le faire « pour faire plaisir au prof » et pour avoir une bonne note mais il n'aura rien compris.

    C'est un peu comme des cours de programmation fonctionnelle (en lisp de préférence). En tant qu'enseignant, je pense qu'un informaticien qui connaît plusieurs paradigmes de programmation est un meilleur programmeur. Sauf que les étudiants considèrent tous que le cours de lisp, c'est de la merde inutile et après avoir validé le module, ils s'empressent de tout oublier.

    Quand j'étais étudiant, j'avais des amis qui faisaient de la bio. À un moment, ils passaient tout leur temps à un projet dans lequel ils manipulaient. Ils y passaient plus de 10 heures par jour week-end compris pendant 15 jours. À la fin, tous se plantaient lamentablement parce qu'ils avaient mal manipés. Leurs boites de pétri étaient polués et leurs résultats étaient inexploitables. Ils étaient tous complètement dégoûté mais bizarrement, ils étaient beaucoup plus réceptifs quand, après, on leur a expliqué comment faire une manip proprement.

    C'est avec ce genre de traumatisme qu'on apprend l'intérêt de règles qui semblent arbitraires. De ce point de vue, lire « Go To Statement Considered Harmful » de Dijkstra et les réponses de qui ont été faites, notamment par Knuth est très instructif. Ne pas utiliser de goto, c'est arbitraire. Certaines personnes très intelligentes n'ont jamais vu l'intérêt de se restreindre comme ça. Sauf que bon, c'est quand même pas plus mal d'éviter d'utiliser trop de goto.

    Il y a une chose que je n'ai jamais osé faire quand j'en ai eu l'occasion mais qui serait très formateur, c'est de faire un projet à étages. Je m'explique. On prend un projet avec 3 étapes claires comme un compilo (analyse syntaxique, création de l'arbre de 1/3 de semestre, chaque groupe laisse son code et continue avec le code d'un autre groupe. L'exemple du compilo est mauvais parce que c'est trop difficile à traiter comme ça en un semestre mais je pense que les étudiants apprendraient beaucoup de choses.

  • [^] # Re: Rien de nouveau

    Posté par  . En réponse au journal Vendre de l'open source illégal??. Évalué à 5.

    Je ne suis pas d'accord avec ce que tu dis sur les formations qui ne dispensent pas certaines notions essentielles.

    Le problème, c'est qu'un bon programmeur est quelqu'un qui s'est forgé des « best practices »: éviter les gotos, faire un code modulaire, avoir une indentation cohérente… Les étudiants ne comprennent pas l'intérêt. Ils prennent ça comme une règle arbitraire qui donc ne sert à rien. Il faut de l'expérience pour voir l'utilité de tout ça.

    Prenons un exemple: l'indentation. Partout à je suis passé (Lyon, Nantes, Marseille et Bordeaux), c'était abordé. Mais à chaque fois, les étudiants n'indentaient pas. Et quand en TP, ils m'appelaient parce que le compilo, ce grand méchant, refusait de compiler, j'utilisais l'indentation automatique pour montrer que visiblement, il manque une parenthèse à un endroit. J'indente toujours, même de l'assembleur et les étudiants ne le font jamais. Ils commencent à le faire en master et ceux qui le font avant son le plus souvent ceux qui ont une pratique de la programmation suffisante et qui ont compris en quoi c'est bien.

  • [^] # Re: récurrence transfinie.

    Posté par  . En réponse au journal Chantonnons en récursion . Évalué à 2.

    Tu te méprends.

    Ton code tourne « forever » et pas « forever and a day ».

    1+ω=ω mais ω+1>ω

    C'est l'une des joies des ordinaux. L'addition n'est pas commutative.

  • # récurrence transfinie.

    Posté par  . En réponse au journal Chantonnons en récursion . Évalué à 2.

    Moi c'est la chanson « Those were the days » qui m'a fait un effet assez bizarre.

    J'étais en pleine théorie des ordinaux, à me poser des questions d'ordinaux successeurs, d'ordinaux limites et de récurrences transfinies et en écoutant la radio, j'entends:«
    Those were the days my friend
    We thought they'd never end
    We'd sing and dance forever and a day »

    J'ai immédiatement pensé ω+1 et à chaque fois que je bossais mes ordinaux, j'entendais la chanson dans ma tête.

  • # Avis d'un théoricien

    Posté par  . En réponse au journal Du code propre, c'est quoi ?. Évalué à 10.

    Tout d'abord, je tiens à dire que je ne programme quasiment pas mais j'enseigne la programmation et je corrige des projets d'étudiants. En ce moment, j'enseigne un module de preuve de programme. Ce n'est pas un module de très haut niveau. C'est du L2 mais je le trouve très intéressant.

    En effet, même si au final, on ne prouve pas réellement son code, écrire comme si on allait le faire pousse à écrire plus proprement pour plusieurs raison.
    1. pour prouver un code, il faut savoir pourquoi il ne plante pas. On peut ainsi documenter les variants et invariants de boucles. On peut spécifier le comportement des fonctions qu'on écrit. Bref, on peut documenter le code et ça rend la relecture plus simple.
    2. prouver, c'est chiant et c'est long. Garder une structure globale simple simplifie beaucoup le boulot.

    Bref.

  • [^] # Re: Avantages de la programmation fonctionnelle?

    Posté par  . En réponse au journal Adopter un style de programmation fonctionnel. Évalué à 4.

    Oui mais à partir du moment où il est Turing puissant, tu peux écrire un interpréteur pour un langage pur.

  • [^] # Re: Quelqu'un pourrait m'expliquer ?

    Posté par  . En réponse à la dépêche DragonFlyBSD 3.2, la libellule s’envole toujours plus haut. Évalué à 1.

    On peut imaginer que C++ seul ou GPL seul sont acceptables mais pas les deux.

  • [^] # Re: KDE en retard ?

    Posté par  . En réponse à la dépêche OpenBSD 5.2. Évalué à 10.

    Oui enfin la politique d'openBSD est tjrs dernière version réellement stable + éprouvée et interdiction absolue de la dernière version même si dite stable si elle n'est pas éprouvée sur un temps suffisant, quel que soit le soft…

    C'est vrai que ça fait peur de proposer la dernière version d'un logiciel. À leur place, je n'oserais même pas proposer la dernière version d'openBSD.

  • [^] # Re: EEE

    Posté par  . En réponse au journal Nouveau projet OpenSource chez Microsoft: TypeScript. Évalué à 1.

    L'éducation nationale ?

  • [^] # Re: Irrémédiable

    Posté par  . En réponse au journal Gnome3 et systemd, c'est la fin des haricots!. Évalué à 10.

    De ce que j'ai compris, le principal intérêt n'est
    pas un boot plus rapide.

    Les init classiques sont bien adaptés pour des
    machines statiques. On hard-code quels sont les
    services démarrés et l'ordre dans lequel ils sont
    démarrés à coup de S47toto S85titi…

    Avec ce système, c'était déjà pénible de définir
    à la main l'ordre de lancement mais comme on ne le
    faisait qu'une fois, ce n'était pas trop grave.

    Le problème, c'est que de nos jours, beaucoup de
    machine sont dynamiques. On branche une imprimante,
    on la retire. Un portable va se retrouver un coup
    à pouvoir monter un système de fichier nfs et un
    coup non. Et comme le portable est mis en veille,
    l'init ne sert plus à rien pour gérer ces
    changements de configuration. Un serveur est sans
    doutes un peu plus statique.

    Le but de systemd est de gérer cet environnement
    dynamique. Pour cela, il est capable de lancer et
    d'arrêter dynamiquement des services. Or, à partir
    du moment où il peut faire ça, il devient un second
    système d'init lancé après l'init. C'est complètement
    débile. Autant virer l'init.

    Pour prendre l'exemple du thread. L'utilisateur a
    un problème avec l'heure. Il utilise init pour
    définir sa tranche horaire (GMT+148239) et gnome
    utilise systemd pour récupérer cette information.
    Pourquoi gnome préfère-t-il utiliser systemd. Une
    raison peut-être que certains utilisateurs nomades
    prennent l'avion et que sans reboot, il passent de
    GMT+3 à GMT+8 et ces utilisateurs aimeraient ne pas
    avoir à trifouiller leur fichiers de config à chaque
    fois. systemd le permet et pas l'init classique.

  • [^] # Re: Ergonomie

    Posté par  . En réponse à la dépêche Graphisme Libre et professionnalisme. Évalué à 5.

    Ceci dit, il y a aussi l'aspect « l'IHM n'est pas exactement celle à laquelle je suis habitué, donc l'IHM de ce logiciel est nulle. » J'ai vu cet argument dans windows/macOS vs kde/gnome, MS Office vs Openoffice, Photoshop vs gimp.

  • [^] # Re: boycotter … jusqu'où ?

    Posté par  . En réponse à la dépêche Le libre accès et l'appel au boycott contre Elsevier. Évalué à 0.

    En pratique, je fais déjà quelque chose de très proche.

    Normalement, j'ai accès à plein de journaux depuis ma machine. En pratique, pour une raison obsure que je n'ai pas cherché à comprendre, ce n'est pas le cas. Je bosse donc principalement en lisant des articles en accès libre. Dans un certain nombre de cas, c'est l'auteur qui les mets sur sa page web. Je ne cite presque que des articles que j'ai lu.

    Maintenant, si un auteur met sur sa page un article publié chez Elsevier, je le cite bien en donnant la référence Elsevier.

  • # blog blog

    Posté par  . En réponse à la dépêche La particule « boson de Higgs » en vue. Évalué à 5.

    J'ai trouvé l'article suivant très éclairant sur ces histoires de brisure de symétrie et de boson de Higgs: http://sciencetonnante.wordpress.com/2011/11/21/le-boson-de-higgs-explique-a-ma-fille/

  • [^] # Re: Gloire au Shell

    Posté par  . En réponse à la dépêche Autojump : nouvelle version et nouvelles fonctionnalités. Évalué à 2.

    Tu vas dire que je fais mon pointilleux mais :
    - tu as choisi vim et pas emacs => tu ne veux pas de raccourcis en Ctrl+qque chose ;
    - les solution Ctrl+flèche, c'est bien.

    J'ai du louper un passage.

  • [^] # Re: Docteur

    Posté par  . En réponse au journal De l'utilisation contemporaine des titres honorifiques.. Évalué à 3.

    Je ne dénigre pas le boulot de médecin. Comme je ne dénigre pas le boulot de magistrat. Les deux nécessitent une puissance de travail impressionnante et je ne pourrais certainement pas exercer ces métiers.

    En revanche, donner le titre de docteur aux médecins, c'est plus une reconnaissance du boulot qu'ils ont fait durant leur formation qu'une reconnaissance des avancées de la science qu'ils ont pu apporter lors de leur travail en tant que doctorant.

    Au passage, pour obtenir un poste universitaire (maitre de conférences ou de professeur des universités), il est nécessaire d'avoir une thèse (ou un diplôme équivalent). On pourrait donc ce dire que n'importe quel médecin peut se présenter à un concours de MCU/PH (maitre de conférences/praticien hospitalier). Mais ce n'est pas le cas. On exige qu'ils passent une thèse de science en plus.

  • [^] # Re: Docteur

    Posté par  . En réponse au journal De l'utilisation contemporaine des titres honorifiques.. Évalué à 5.

    Pour moi, une « vrai » thèse nécessite un travail de recherche créatif. Ça prend du temps au moins 3 ans, exceptionnellement 2 ans à temps plein. Quand ce n'est pas à temps plein, c'est plus 5 ans ou plus. J'ai une voisine qui vient d'envoyer son manuscript au bout de 8 ans.

    Devenir médecin, c'est énormément de boulot mais (surtout en première année) c'est plus du bourrage de crane. Il faut apprendre PLEIN de trucs.

    D'après ce que j'ai pu voir autour de moi, une thèse de médecine, c'est 6 mois de biblio en parallèle du boulot d'interne. C'est plus proche d'un stage de master 2 recherche.

  • # Docteur

    Posté par  . En réponse au journal De l'utilisation contemporaine des titres honorifiques.. Évalué à 10.

    Étant docteur (en science) et ayant dans mon entourage des médecins jeunes et moins jeunes, j'ai une petite idée de la différence de travail à fournir pour obtenir une thèse de médecine et une thèse de science. Je me refuse donc à parler d'un docteur pour un médecin. Merde, moi aussi, je suis docteur, et plus qu'eux.

  • [^] # Re: Un peu racoleur

    Posté par  . En réponse à la dépêche Une plainte d’un éditeur autour de l’astrologie menace la base de données tz / zoneinfo. Évalué à 2.

    Sauf erreur, on peut protéger une base de données.

  • [^] # Re: Arbre B et B+

    Posté par  . En réponse à la dépêche Le noyau Linux est disponible en version 3.0. Évalué à 10.

    Je vais faire mon pinailleur mais les arbres rouge/noir ne sont pas des b-tree.

    Dans un b-arbre, toutes les feuilles ont la même profondeur. En revanche, les nœuds ont un nombre variable de fils.

    Dans un arbre binaire de recherche, tous les nœuds internes ont exactement deux fils mais les feuilles n'ont pas la même profondeur.

    Les arbres rouge/noir sont des arbres binaires de recherche qui codent certaines classes de b-arbres (les 2-4 arbres).

    Pour répondre à patrickg, les arbres binaires de recherche et les b-arbres de base sont des _dictionnaires. On veut pouvoir chercher, ajouter et retirer des éléments identifiés par une clef. Dans ces implémentations, les feuilles ne sont pas liées entre elles.

    Mais on peut aussi vouloir faire des choses supplémentaires comme accéder efficacement
    - au k-ième élément ;
    - à un élément médiant ;
    - à l'élément immédiatement après ou avant un élément donné.

    Pour cela, on enrichi la structure et notamment pour accéder au prédécesseur ou au suivant, on relie les feuilles entre elles.

  • [^] # Re: Pourquoi C ?

    Posté par  . En réponse à la dépêche Veracity, un nouveau gestionnaire de versions décentralisé. Évalué à 0.

    De mon point de vue, tu ne réinventes pas la roue.

    Tu fais de la biblio pour voir ce qui existe (et ne pas réinventer la roue). J'imagine qu'au cours de ce processus, tu trouves plusieurs solutions algorithmiques possibles et tu choisis celle qui te semble la plus adaptée à ton problème.

    Réinventer la roue, c'est ne pas regarder ce qui existe déjà et implémenter une solution non optimale alors qu'avec un peu d'effort, on se serait rendu compte qu'il existe un truc plus efficace, pas plus compliqué, voir même simplement juste.

  • [^] # Re: Outil de transition

    Posté par  . En réponse à la dépêche LyX 1.6.10 et LyX 2.0.0 pour les 15 ans du projet. Évalué à 1.

    Effectivement.

    Ce qui était souhaité, c'est un utilitaire pour faire l'aller-retour entre LaTeX et un autre éditeur comme LyX.

    Vu le nombre de façon de faire les choses en LaTeX, un tel utilitaire ne me semble pas faisable.

    J'ai déjà trouvé
    \begin{enumerate}
    \item Ah
    \item Béh
    \end{enumerate}

    \begin{itemize}
    \item[1.] Ah
    \item[2.] Béh
    \end{itemize}

    \noindent \quad\llap{1.}~Ah

    \noindent \quad\llap{2.}~Béh

    Dans tous les cas, l'auteur voulait faire la même chose. Va faire un utilitaire qui s'en rend compte !