Matthieu Moy a écrit 3249 commentaires

  • # répertoires

    Posté par  (site web personnel) . En réponse au journal Sources et arborescence des fichiers. Évalué à 4.

    Souvent, on sépare les .h et les .cc, en un répertoire src/ et un répertoire include/. En fait, je le fais souvent plus ou moins machinalement, mais ce n'est pas forcément une bonne idée.

    Par contre, faire un sous répertoire par "module" de ton projet, c'est clairement une bonne chose. Ce qui est intéressant, c'est de repérer suffisament bien les dépendances de chaque répertoire, et ensuite, de ne donner que les chemins d'include (là ou le compilo va chercher les .h) nécessaires dans chaque sous répertoire pour te forcer à les respecter. Le résultat, c'est que tu évites de faire un projet "plat de nouilles", tu as du code réutilisable. Si tu veux réutiliser un module dans un autre projet, tu récupère ce sous répertoire et ses dépendances, et hop !

    La couche d'après, c'est de compiler chaque sous répertoire en une bibliothèque (en général statique), d'avoir un beau système de Makefiles récursifs, et tu gagneras en performances à l'édition de liens.

    Un autre avantage du système, c'est que ton gestionnaire de versions te permet surement de travailler sur un seul répertoire à la fois (CVS, subversion, arch si tu utilise des configurations). Sur un gros projet, ça évite de reparcourire tout l'arbre des sources à la moindre opération, c'est plutôt appréciable !
  • [^] # Re: Lisez-bien...

    Posté par  (site web personnel) . En réponse à la dépêche Le brevet de Microsoft sur le double-clic sur PDA est accepté !. Évalué à 5.

    !!!

    C'est une blague ce brevet ?!?

    En cliquant sur le bouton "dessin", la figure montre clairement la patte de gnome en bas à gauche (le bouton 106)... Doit y'avoir un truc qui m'échappe, parce que Microsoft qui brevete un bout de Gnome, ça colle pas ...
  • [^] # Re: Et la recherche d'anteriorité ?

    Posté par  (site web personnel) . En réponse à la dépêche Le brevet de Microsoft sur le double-clic sur PDA est accepté !. Évalué à 2.

    Ce n'est pas ce que disait la bonne femme de l'INPI dont j'ai vu un exposé il y a quelques semaines. J'ai pas d'URL sous la main et je ne me souviens pas des détails non plus...

    D'ailleurs, il y a déjà un bon paquet de brevets sur des logiciels à l'OEB, alors que ce n'est pas valable jusqu'à nouvel ordre.
  • [^] # Re: Un tab, ça ne change pas de largeur.

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 3.

    Ils connaissent a2ps.

    Mais quand ils en sont encore à "a2ps *" qui imprime aussi les binaires, leur demander de rajouter une option ... ;-)

    Sinon, pour l'indentation du python, on est d'accord que c'est à considérer comme un cas particulier !

    (si tu vas par là, montres-moi l'intérêt d'indenter avec des tabs pour du code en lisp ...)
  • [^] # Re: Un tab, ça ne change pas de largeur.

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 4.

    Ben, la plupart des éditeurs te permettent de changer la largeur d'une tabulation, mais pas par exemple un simple "cat fichier.c". Résultat: Si tu modifie la largeur d'une tab dans ton editeur, tu peux être sur que tu vas avoir des problèmes un jour.

    La principale utilisation des tabs dans du source que je connais, c'est les étudiants qui indentent comme des porcs avec nedit, qui mettent une largeur de tab à 2, et qui impriment leur code pour le joindre au rapport de TP avec la largeur de tabs par défaut, et qui se retrouvent avec un truc illisible.
  • [^] # Re: Les tabs, c'est mal.

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 2.

    Otes-moi d'un doute:

    * Tu indente à la main ?!?

    * Ou tu as configuré ton éditeur pour configurer tantôt avec des tabs et tantôt avec des espaces ?

    Si tu es dans le premier cas, tu devrait te renseigner sur les éditeurs qui font l'indentation tout seuls, tu gagnerais _vraiment_ du temps. Si c'est le second, ça me parait bien compliqué pour pas grand chose.
  • [^] # Re: editeur...

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 2.

    C-q TAB
  • [^] # Re: tab, splus simple

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 5.

    Toi, tu n'as jamais utilisé de gestionnaire de version.

    Parce que quand tu travaille à plusieurs, si chacun s'amuse à reformatter le code des autres, bonjour les conflits !!
  • [^] # Re: Et la recherche d'anteriorité ?

    Posté par  (site web personnel) . En réponse à la dépêche Le brevet de Microsoft sur le double-clic sur PDA est accepté !. Évalué à 2.

    Ben en fait, c'est un peu le principe des brevets.

    Les offices des brevets des différents pays rejettent un brevet quand le brevet est grossièrement non valide.

    Sinon, pour faire invalider un brevet, il faut que quelqu'un dépose une sorte de pleinte contre ce brevet, et qu'il montre qu'il est invalide.

    C'est bien là le problème PME Vs Grosses boites. Si MS ou autre grosse boite pose un brevet sur le double-clic (un vrai, pas comme celui-là qui est bien plus spécifique), et qu'une startup de 5 personnes veut utiliser la technologie, il faut qu'elle paye un avocat, aille en justice pour faire invalider le brevet. Les petites entreprises n'en ont en général pas les moyens ...
  • [^] # Re: Lisez-bien...

    Posté par  (site web personnel) . En réponse à la dépêche Le brevet de Microsoft sur le double-clic sur PDA est accepté !. Évalué à 4.

    Tu parles de l'existant parce que tu es aux USA. En Europe, on n'a pas (encore) de brevets sur les logiciels. Est-ce que ça a déjà vraiment posé problème? Est-ce vraiment un frein à l'inovation? Bof bof ...
  • # Les tabs, c'est mal.

    Posté par  (site web personnel) . En réponse au journal Espaces ou tabulation ?. Évalué à 4.

    Les tabulations, c'est mal parce que

    * Les gens qui utilisent des tabs ont la mauvaise habitude de configurer leur editeur avec une largeur de tab non standard. Résultat, le même code est affiché différemment sur différents éditeurs, et je ne parle pas du jour ou tu veux imprimer un code indenté avec une longueur de tab de 2.

    * Ca ne supporte pas l'ajout d'un prefix.

    Exemple:


    ma_fonction(x,
    y);


    (bien aligné)

    Va donner


    +ma_fonction(x,
    + y);


    (mal aligné) dans un diff, et


    > ma_fonction(x,
    > y);


    (encore pire) dans une réponse à un mail citant un bout de code.

    * Ca fait sauter le curseur de façon inattendue quand on se ballade dans la partie indentation.

    * ...
  • [^] # Re: Avant de hurler, il y en a un qui a lu le brevet ?

    Posté par  (site web personnel) . En réponse au journal Microsoft a breveté le double clic. Évalué à 2.

    > 1) d'un appareil a ressources limitees (comprendre : PAS un PC)

    Ca, c'est super puissant. Tu me donne l'adresse ou je peux trouver un PC avec ressources illimitées ?

    Pour le 2), effectivement, c'est plus spécifique que le double clic.
  • [^] # Re: command rm + startx

    Posté par  (site web personnel) . En réponse au message command rm + startx???. Évalué à 3.

    > rm -r <répertoire>

    En général, c'est plutôt rm -rf qu'il faut tapper pour ne pas avoir a valider pour chaque fichier. (Attention, il ne faut pas se tromper de répertoire, hein !)
  • [^] # Re: XPDF

    Posté par  (site web personnel) . En réponse au journal Customiser l'interface d'Acrobat Reader. Évalué à 2.

    > Je vois que tu n'as même pas pris la peine d'aller voir sur le site dont j'ai donné l'URL...

    Ou bien alors, il est allé voir, et il a lu :

    x86, DOS/Win32 -- pdftops, pdftotext, pdfimages, pdfinfo, and pdffonts only:
  • [^] # Re: Ben !

    Posté par  (site web personnel) . En réponse au journal ssh inverse. Évalué à 3.

    Cf. le premier commentaire : Fait un forwarding de port via ssh. Pas besoin de modem :-)
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 3.

    > Moi je préfere l'interface faites avec GTK2 (pas de troll svp),
    > que se passera t'il si au final les wigets de Y ressemble plus à Qt ?

    GTK et Qt étant tous les deux thémables à souhait, si tu préfères GTK à Qt, je pense que c'est simplement parce que le thème que tu as installé pour GTK et plus joli que celui de Qt, mais que tu aurais pu faire la même chose avec Qt.

    Et puis à la limite, rien n'empêche d'avoir plusieurs moteurs de rendu pour Y, du moment que le protocole est respecté. (Dans le même ordre d'idée, une application Win3.11 avec un look&feel Win3.11 s'execute sans recompilation sur un Win95 avec un look&feel Win95 par exemple)

    Sachant qu'il y a déjà des ponts entre GTK et Qt niveau moteur de rendu, bah, pas d'inquiétude à ce niveau là !
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 2.

    > Mais honnetement, est-ce que c'est les boutons a afficher qui font peiner X ?

    Toi, tu n'as jamais utilisé une appli X sur une liaison bas débit ! ;-)

    Si on prends l'exemple d'Emacs, c'est carrément flagrant. Il y a juste une barre de menu, les barres de défilement, vraiment pas grand chose ! Et pourtant, sur une connexion ou il tourne nickel en mode texte, ça rââââme en mode graphique ;-( On s'en rends bien compte avec un observateur de trafic : Le simple fait de passer la souris sur la fenêtre génère un trafic énorme, même aux endroits où ça ne fait rien.
  • [^] # Re: avantages

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 9.

    Oui, mais faut voir comment c'est implémenté : Un screenshot de la partie concernée, le client fait le calcul de l'ombre et envoie le résultat au serveur. Résultat, si tu bouge ce qui est en dessous, c'est le merdier. Et niveau perfs, c'est pas ce qu'on peut faire de mieux. Bref, c'est un bidouillage en attendant mieux dans le serveur lui-même.
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 3.

    Non, c'est bien le serveur qui fait l'affichage. Le piège, c'est que le serveur X tourne en général sur le poste "client", et les clients X tournent sur une machine qui est en général "serveur" par ailleurs.

    Mais

    $ hostname
    client
    $ setenv DISPLAY server:0
    $ xterm

    C'est bien la machine "client" qui contacte la machine "server", et c'est bien "server" qui fait l'affichage.

    Dans ton exemple, "serveur" est serveur SSH et s'apprète a faire tourner des clients X. Qui d'ailleurs vont s'executer dans un serveur X virtuel créé par le serveur SSH, qui va forwarder ça a ta commande "ssh" qui est elle même un client X sur ta machine et qui va afficher l'application qu'elle a recue sur ton serveur X local. Pfiouuu !
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 3.

    > On pourrait très bien imaginer d'étendre le protocole X (de même qu'il existe plein d'autres extensions comme Render, etc...) avec des appels de haut niveau (à la GTK)

    Oui, il y a déjà pleins d'extensions du genre (Mémoire partagée & cie) pour résoudre les problèmes de perfs de X. C'est une solution, et elle a des avantages. Mais le gros inconveinient, c'est qu'on se retrouve avec une énorme uzine a gaz, un amas d'extensions avec un noyau de base qui n'est prèsque plus utilisé. Niveau compatibilité, les applis qui utilisent cette extension ne tourneront plus correctement sur un "vieux" serveur X. (C'est déjà souvent le cas. J'utilise souvent des applis de Debian affichées sur un serveur X de Sun, et les applis modernes - KDE, GNOME, ... - ont très souvent des problèmes ou refusent carrément de se lancer)

    Quand on arrive à ce niveau là, il faut sérieusement se poser la question de tout reprendre à zero sur de bonnes bases.

    Et ça ne veut pas forcément dire casser completement la compatibilité. Mon rève, c'est que quelqu'un écrive un équivalent de Xwin32 pour Y. Ca permettrait d'ouvrir toutes les applications X sous Y, et c'est clair que c'est un pas crucial dans la migration. Réciproquement, il me semble que l'un des back-ends de Y est justement X, donc, qu'on peut lancer un serveur Y sous X.
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 4.

    J'ai vu la news ici, oui, mais j'ai la flemme de m'y mettre (Je suppose qu'il faut un truc coté serveur et un autre coté client ...)

    Mais bon, c'est difficile de prétendre que X est la solution parfaite d'un coté et de dire que si ça va pas assez vite, il faut passer par nomachine ;-) Un truc mieux foutu à la base me semble être une meilleur idée.

    (Enfin, "mieux foutu", ça veut pas dire grand chose dans l'absolu. X était la solution parfaite du temps ou les applications ressemblaient toutes à Xfig, avec un look&feel très dépouillé. Ca permettait au moins de faire tourner un serveur X sur une toute petite config, tout juste capables de tracer un trait et un rectangle)
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 5.

    Ca n'est pas un problème dans la xlib, c'est un problème dans la conception du protocole X lui-même. Tant que les widgets sont gérés coté client, pour dessiner un joli bouton avec un gros thème pixmap, l'algo ressemble forcément à

    Client:
    1) Tiens, il faut dessiner un bouton
    2) Quelle tête doit avoir le bouton. Ah, ce pixel doit être rouge, celui-là vert, ...
    3) Envoyer l'image complete du bouton

    Serveur:
    1) recevoir l'image complete du bouton
    2) Le dessiner.

    Avec un rendu coté serveur, ça ressemble plutôt à:

    Client:
    1) Tiens, il faut dessiner un bouton
    2) Envoyer les coordonnées et la taille du bouton au serveur (Ca prends moins de place que l'image)

    Serveur:
    1) Recevoir les coordonnées du bouton
    2) Calculer l'image
    3) L'afficher à l'écran (ici, 2 et 3 peuvent interagir pour utiliser au max les possibilités de la carte graphique)

    Tu peux comparer ça a une page web. En général, le rendu des widgets est fait coté navigateur, qui correspond au coté serveur pour X. Résultat, une page web avec 42 boutons et 14 barres de défilement tiens en quelques lignes d'HTML. Bande passante économisée ! On peut aussi faire une sorte de rendu coté serveur Web : Tu calcules une image, et tu envoies un au navigateur. La, bonjour la bande passante.

    Aujourd'hui, ça ne nous viendrait pas trop à l'idée de faire du rendu coté serveur web par défaut, ben ça devrait être pareil pour X.

    Idem pour le rendu du texte. Heureusement qu'on n'envoie pas les lettres pixel par pixel au serveur, mais que le rendu des polices est géré coté serveur X, sinon, imaginez la bande passante pour afficher un xterm !!
  • [^] # Re: Y.org

    Posté par  (site web personnel) . En réponse à la dépêche XFree86 a de moins en moins la côte. Évalué à 7.

    Rien que le rendu des widgets coté serveur de Y permettrait de lancer une application sur une liaison réseau pas trop rapide. (Et de délester considérablement les réseaux locaux des organisations qui utilisent X massivement)

    Même avec l'ADSL en dégroupé, et même les applications simples rament quand elles sont affichées à distance. Par contre, même avec un débit beaucoup plus faible, une application en mode texte s'ouvre parfaitement.

    Pourquoi ? Parce que pour afficher un bouton, le client X explique au serveur *comment* le dessiner, pixel par pixel s'il le faut (avec un thème bien chargé, il n'a pas le choix). Il pourrait très bien lui dire "Dessine un bouton à tel endroit et préviens-moi quand quelqu'un clique dessus", et le laisser se démerder.
  • [^] # Re: Keep cool

    Posté par  (site web personnel) . En réponse au journal Palladium ?! REVOLTANT !!. Évalué à 4.

    Palladium a été renomé Next Generation of Secure Computing Base pour des raisons de marque déposée ...
  • [^] # Re: Qu'est-ce donc ?

    Posté par  (site web personnel) . En réponse au journal Espace insécable dans les noms de fichiers.... Évalué à 5.

    Non, c'est un caractère du jeu de caractère iso-latin-1 (entre autres) qui s'affiche comme une espace, et qui n'est pas coupée par les éditeurs/traitements de textes en cas de retour à la ligne. A utiliser par exemple devant un `:'.