Obsidian a écrit 5291 commentaires

  • [^] # Re: Duck typing

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 6.

    Ça, c'est l'implémentation du destructeur, en particulier.

  • [^] # Re: Quelqu'un dans l'assemblée saurait "vendre" le concept de POO ?

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.

    Je n'ai pas dit le contraire.

    J'ai dit que, d'une part, la programmation orientée objet était avant tout une histoire de conception avant d'utiliser un langage lui-même orienté objet et que, d'autre part, quand on commençait à utiliser les structures pour réunir sous une même égide les différents attributs d'une entité donnée (ex : complexe), c'était un embryon de programmation orientée objet.

    C'est bien ça que l'on a dit dès le départ.

  • [^] # Re: Quelques explications

    Posté par  . En réponse au journal Impossible de commenter un contenu vieux de plus de 3 mois. Évalué à 9.

    Je pense que ça peut être intéressant de donner d'ores et déjà la possibilité de le faire aux utilisateurs dépassant un certain niveau de karma. Étant donné le nombre de journaux concernés et les utilisateurs en question, ça ne devrait pas être ingérable…

  • [^] # Re: lftp

    Posté par  . En réponse au message Quel client FTP pour synchroniser un site web ?. Évalué à 2.

    Formidable, c'est exactement ce que je cherche ! Ça a l'air de fonctionner.
    Du coup, je vais peut-être moi-même ajouter des Makefile, également.

    Un grand merci !

  • [^] # Re: lftp

    Posté par  . En réponse au message Quel client FTP pour synchroniser un site web ?. Évalué à 2.

    Effectivement, merci (voir commentaire ci-dessous).

  • [^] # Re: rsync --exclude ...

    Posté par  . En réponse au message Quel client FTP pour synchroniser un site web ?. Évalué à 1.

    Bonsoir,

    Pour le man ncftp, je n'ai rien trouvé. C'est pour cela que je demande ici.
    Pour rsync, j'y avais pensé, mais je n'ai qu'un accès ftp.

    Merci à tous les deux.

  • [^] # Re: Quelqu'un dans l'assemblée saurait "vendre" le concept de POO ?

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.

    ah bon????? C'est pourtant à ça que serve les cast (ahhh les joies du void* ); ce qui est quand même pratique car s'il le compilo râlait dès qu'on faisait un malloc, y aurait un bon paquet de truc inutile à chaque compile ^^

    C'est bien ce que je dis : tu es obligé de faire un cast explicite pour convertir un type dans un autre avant de le passer à ta fonction. Dans ce cas, tu ne pourras pas dire que le compilateur ne t'as pas prévenu. C'est bien toi qui lui dit alors « Non, mais c'est bon, je sais ce que je fais ». Et encore, ça passe quand tu fais un cast sur un pointeur de structure. Si tu passes la structure elle-même, tu ne peux pas la transtyper directement vers une autre, et ça ne compilera pas du tout.

    A contrario, tu peux caster de la même façon les instances de variables d'un langage orienté objet. Donc l'argument ne tient pas, ici.

    Mon petit doigt me dit que union vient foutre la merde dans ce souhait pieux :D

    Absolument pas.

    « union » permet de passer une instance de quelque chose dont le type est l'un de ceux énumérés par « union ». Un exemple assez parlant de combinaison struct/union sont les XEvent de X-Window. XEvent est une union de structures plus spécialisées comme XKeyEvent, XButtonEvent, XMotionEvent, XExposeEvent, etc. et qui partagent toutes un membre commun initial en début de déclaration , «int type », qui en plus est lui-même inclus par l'union. Et comme le C garantit que les adresses des membres d'une structure progressent dans l'ordre où ils ont été déclarés et que le padding ne peut se trouver qu'après un membre (C99 6.7.2.1§13), alors on est sûr que ce membre sera bien commun à XEvent et toutes les autres structures unies en dessous, quel que soit le compilateur.

    À ce stade,

    — la totalité de l'objet est donc transmis lorsque X-Window émet un événement ;
    — il contient la totalité des informations qui le décrivent (comprendre : ce n'est pas un message qui invite le programme à aller se renseigner) ;
    — « XEvent » contiendra toujours l'événement en entier même si la norme évolue (il faudra recompiler le programme mais pas le réécrire) ;
    — même s'il faut consulter « type », le programme peut savoir de façon déterministe quel objet il a reçu ;
    — Une fonction faite pour traiter un événement en particulier aura besoin que tu lui passes, non pas XEvent, mais l'un de ses membres explicitement, qui lui a le type qui correspond à la signature de la fonction. Donc, tout le contrôle peut être fait à la compilation, et il n'y aucun magic cast qui entre en jeu pour faire fonctionner le modèle.

    À lire un autre de tes commentaires, il semblerait que, pour toi, un objet est une classe qui dérive de Object, par opposition, donc, aux types natifs. Si c'est bien le cas et que c'est là, pour toi, le dogme central de la programmation orientée objet, alors il faudrait au moins que tu pratiques d'autres langages de manière sérieuse pour te faire une idée objective… (sans mauvais jeu de mot).

  • [^] # Re: Quelqu'un dans l'assemblée saurait "vendre" le concept de POO ?

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 5.

    Et ça change quoi ?

    Les types en C existent et sont reconnus par le compilateur, qui se plaint s'ils ne correspondent pas. Le fait que tu puisses explicitement demander à écrire dans une zone mémoire ne regarde que toi, ensuite. Le compilo et le langage qu'il traite n'ont rien à voir dans l'affaire…

  • [^] # Re: Quelqu'un dans l'assemblée saurait "vendre" le concept de POO ?

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 4.

    les structures sont juste une structure de donnée qui permet, à l’instar d’un tableau, de regrouper plusieurs variables de types différents (contrairement à un tableau).les structures sont juste une structure de donnée qui permet, à l’instar d’un tableau, de regrouper plusieurs variables de types différents (contrairement à un tableau).

    Non, ce n'est pas tout-à-fait exact. Ça, ce serait plutôt le « array » du PHP.

    Mais elles n’ont rien à voir avec la programmation objet : pas de lien particulier entre code et structure de donnée, …

    Eh si, justement : le type. En C, en tout cas. Une structure définie en C correspond à un nouveau nom de type, et le compilateur ne te laissera pas passer un autre type de donnée ou une structure différente sans se plaindre. Ceci garantit à la fonction qui utilise l'instance de cette structure que toutes les variables sous-jacentes sont disponibles (après, qu'elles aient été initialisées correctement, c'est une autre histoire).

    pas de restriction d’accès aux membres de la structures, encore moins tout ce qui peut faire la force de la programmation objet…

    Oui, mais justement : la « programmation orientée objet », c'est le fait d'orienter la conception de son code et l'organisation de ses données autour d'une notion. Et toutes les facilités dont tu parles ont émergées d'elles-mêmes une fois les choses présentées de cette façon.

  • [^] # Re: Quelqu'un dans l'assemblée saurait "vendre" le concept de POO ?

    Posté par  . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 9.

    À l'usage, je pense qu'il n'y a pas de « meilleur style de programmation » et qu'en fait, le paradigme à adopter est celui qui se rapproche le plus des données que tu souhaites manipuler.

    Bof, c'est juste une organisation différente du code. Je vous fait la même chose sans objets"

    Ah, mais tout est là : la programmation orientée objet est avant tout une histoire de conception et même si un langage orienté objet en lui-même est quand même préférable au quotidien, un modèle bien conçu peut virtuellement être implémenté ensuite dans n'importe quel langage. C'est ce que tente GTK, par exemple, même si ses casts incessants finissent par devenir lourdingues à force. Tu es donc peut-être le M. Jourdain de la POO.

    Pour le reste, tu peux essayer le raisonnement par l'absurde. Je ne sais pas quels langages tu utilises, mais essaie par exemple de programmer en C sans jamais recourir aux structures, par exemple. On se rend compte alors que ces structures sont en fait un embryon de programmation orientée objet, dans le sens où l'on réunit sous une même entité tous les attributs d'une chose identifiée et délimitée.

    L'exemple par lequel on commence souvent sont les nombres complexes. On peut passer sur le fait que tu ne puisses pas directement, en C, utiliser les opérateurs habituels -,+,*,/ dont tu fais un usage quotidien sur les nombres ordinaires. Mais même en définissant une bête fonction AddComplex (a_real,a_imag,b_real,b_imag), comment fais-tu pour renvoyer à la fois la partie réelle et la partie imaginaire ? Tu te retrouves à devoir ajouter deux pointeurs de variables dans tes arguments pour stocker le résultat.
    Imagine un programme scientifique entier écrit de cette façon, toujours sans structure. C'est faisable, mais c'est très lourd, et cela nécessite une grande rigueur en amont, à cause d'une raison simple : le langage en lui-même n'étant pas adapté, la conception se fait en amont en suivant une méthode qui s'y substitue.

  • [^] # Re: dans les definitions

    Posté par  . En réponse au message Cette licence me plombe-t-elle la possibilité de créer une alternative ?. Évalué à 3.

    On peut regarder le code de la propriété intellectuelle ici : - http://www.celog.fr/cpi - http://www.celog.fr/cpi/lv1_tt1.htm - http://www.celog.fr/cpi/livre2.htm - http://www.celog.fr/cpi/lv3_tt3.htm

    Et spécialement ces articles : - http://www.celog.fr/cpi/lv3_tt3.htm#331-5 - http://www.celog.fr/cpi/lv3_tt3.htm#335-3-1 - http://www.celog.fr/cpi/lv3_tt3.htm#335-3-2

    À chaque fois, l'exception pour fins de recherche et d'interopérabilité est maintenue.

    Maintenant, c'est devenu très flou. Que ceux qui, comme moi, avaient parcouru ce texte jadis et ont des difficultés à retrouver le paragraphe exact se rassurent : il a subi les affres de la loi DADVSI qui a rendu le truc beaucoup plus obscur qu'il ne l'était.

  • [^] # Re: On en a gros !!!

    Posté par  . En réponse au journal L'adulescence, quelle plaie !. Évalué à 2.

    Mort à lui. :-)

  • [^] # Re: On en a gros !!!

    Posté par  . En réponse au journal L'adulescence, quelle plaie !. Évalué à 2.

    Tu préfères le lapin Quicky ?

  • [^] # Re: JAMAIS de multifonctions (tout en un)

    Posté par  . En réponse au message Imprimante : "5%" vs "ISO/IEC 19798". Évalué à 1.

    Il faut savoir aussi que le modèle juste en dessous, qui permet également de faire des économies notables à l'achat, est la CLX-3175-FW, et qu'elle s'est vendue comme des petits pains à Noël. On en a offert une à mes parents, et elle fonctionne bien sous Linux. Impression CUPS ok, quoi que j'ai galéré un peu avec le *.PPD car je l'ai mis sur une vieille Ubuntu, mais tout a fini par rentrer dans l'ordre. Scanner avec Sane OK, également, et comme elle est capable de faire tout le traitement et t'envoyer le résultat par mail, ça fonctionne aussi.

    Évidemment, ça ne répond toujours pas à ta question initiale, mais côté retour d'expérience, les premiers points sont positifs.

  • [^] # Re: Le danger guette

    Posté par  . En réponse au journal Les SSII, précurseurs d'un modèle social. Évalué à 2.

    Tu remarqueras que ce n'est pas ce que j'ai dit.

    Une révolution, ce n'est pas improbable en soi, mais dire que faire de la merde finit toujours par retomber sur l'auteur un jour ou l'autre, si ce jour, c'est trente ans plus tard, ça reste rentable. Spécialement si le principal intéressé a le temps de tirer profit de son système avant de se tirer dans les îles le jour ou celui-ci touche à sa fin.

  • # Le danger guette

    Posté par  . En réponse au journal Les SSII, précurseurs d'un modèle social. Évalué à 8.

    Toutes les révolutions ont été le produit d'une communauté d'intérêt entre les couches basses de la société et leur cadres. Quand une toute petite lite s'arroge le pouvoir, le danger guette. L'exemple Arabe est parlant.

    Mouais, ce n'est peut-être pas l'exemple que j'aurais choisi : ça reste exceptionnel et les dictateurs qui sont tombés récemment ont eu en moyenne 30 ans de règne avant d'en arriver là. Ça laisse largement le temps à ceux qui suivraient leur modèle de partir en retraite (et à leurs esclaves de mourir de faim :-) ).

  • [^] # Re: Ship it?

    Posté par  . En réponse au journal 50 000 € atteints en seulement 8 jours.. Évalué à 2.

    Tu arrives à presser tes papier avec un CD ?

  • # Quelques coquilles

    Posté par  . En réponse à la dépêche Firefox 4 est sorti. Évalué à 2.

    Bonjour,

    Quelques remarques sur la forme :

    • « Cette sortie marque aussi une volonté de changement dans les cycles sortie en voulant les rendre plus courts » : Les « cycles des sorties », peut-être ?
    • « la technologie qui permet d'utiliser OpenGL? dans une page web, est désormais inclut. » : « incluse » (et « inclus » au masculin. Par opposition à « exclu » et « exclue », piège classique).

    Voila, voila. J'ai bien un lien « modifier », mais il me renvoie directement en page d'accueil.

    Bon courage.

  • [^] # Re: merci

    Posté par  . En réponse au message Forcer un programme à utiliser une interface réseau. Évalué à 2.

    Déjà, iptables n'est pas « coupé ». Netfilter fait partie intégrante du noyau et, donc, de la gestion du trafic réseau en général. « iptables » est le logiciel qui te permet de paramétrer le filtre. Tu n'as pas besoin de lancer un processus qui surveillerait le trafic en temps réel et se chargerait d'intercepter les paquets au vol. Et heureusement !

    Ensuite, si tu travailles en IP et que tu as un tunnel VPN, alors celui-ci a forcément un sous-réseau dédié et sur ce sous-réseau, il doit y avoir une passerelle vers Internet qui, elle, se trouve de l'autre côté du tunnel.

    Si tu veux être sûr que ton trafic vers Internet passe par ton VPN, il faut définir ta passerelle par défaut comme étant celle-ci et supprimer les autres si elles existent et référencent un réseau qui n'est pas celui du VPN.

    Si tu veux que seul Firefox ou un logiciel de ton choix soit soumis à ces règles, effectivement tu utilises iptables. Celui-ci propose entre autres une option "--gid-owner" qui te permettra de faire une exception pour les paquets dont le processus initiateur appartient à un groupe donné. Tu peux t'en servir pour autoriser ces privilégiés à utiliser certaines voies.

    Mais dans tous les cas, il faut d'abord raisonner en terme de routage avant de considérer les interfaces par lesquelles ces routes transitent.

  • [^] # Re: ?

    Posté par  . En réponse au message Forcer un programme à utiliser une interface réseau. Évalué à 10.

    Raison de plus pour nous expliquer ce que tu veux faire en particulier.

    D'abord, parce que l'entraide va dans les deux sens, et que celle qu'on peut t'apporter doit pouvoir profiter aux autres aussi. Pas la peine, donc, de demander de l'aide en disant « ne cherchez pas à comprendre pourquoi, c'est confidentiel. ».

    Ensuite, parce que ce genre de problématique est fréquente et que si tu ne connais pas la solution, c'est que ne connais pas assez bien le système. Ce n'est pas un tort en soi, mais il y a neuf chances sur dix pour ce que tu cherches à faire soit la mauvaise solution à ton problème.

    Enfin, et surtout, parce qu'il y a bel et bien moyen d'exploiter directement une carte réseau définie, mais probablement pas de la manière que tu crois. Et d'ailleurs, même en temps normal, un programme « n'utilise » jamais de carte réseau. Il envoie des données qui sont ensuite routées là où il faut par les différents équipements qu'il rencontre, comme une capsule dans un pneumatique. Et le noyau de ta machine n'est que le premier d'entre eux.

    Vide ton sac, maintenant.
  • [^] # Re: Direction artistique

    Posté par  . En réponse au journal Un peu d'histoire : Tron l'Héritage. Évalué à 1.

    Je crois qu'en ce qui concerne Star Wars, c'est la quantité invraissemblable de travail qu'a fourni Georges Lucas quand il était sous pression (voir le making-of) qui a apporté une si grande valeur à ces premiers films.

    Mais il y a aussi qu'il le voyait d'emblée comme un space opera et qu'il lui manquait alors tout ce qu'il a trouvé, depuis, dans l'image de synthèse. C'est pour cela qu'il a retravaillé les films originaux, ce que certains (moi le premier) considèrent comme un sacrilège.

    En fait, ce n'était pas bien grave si on n'avait pas toutes les images spéctaculaires auxquelles il pensait : le fait d'avoir fait des maquettes très travaillées donnait à son monde un aspect très réaliste et c'est en grande partie de cela que vient l'esprit de la première trilogie : on pouvait réellement s'identifier à ces mondes et à ces personnages, et non pas simplement les contempler. Et c'est parce qu'on avait vraiment l'impression de baigner dedans qu'on s'en souvient tant. Dans les derniers opus, on est redevenu simple spectateurs.
  • # Tâtillon

    Posté par  . En réponse au journal "casse-toi" identifié comme du SPAM par le postmaster de Free!. Évalué à 3.

    Effectivement, l'anti-spam de Free est un peu trop tâtillon, mais je ne pense pas qu'il faille y voir un quelconque rapport de cause à effet. L'autre jour, j'avais essayé d'envoyer l'adresse d'un article ( http://www.rtlinfo.be/info/magazine/insolite/756577/le-copil(...) ) à un proche, et il a été bloqué de la même façon. J'ai fini par faire une tinyurl (çaimal) pour qu'il passe.

    J'ai fait le signalement du faux positif, également.
  • [^] # Re: Direction artistique

    Posté par  . En réponse au journal Un peu d'histoire : Tron l'Héritage. Évalué à 3.

    Je ne trouve pas, justement. Ça donne au contraire un style « Tron » reconnaissable au premier coup d'œil et qui a été repris dans le dernier film, bien que mis au goût du jour.

    Ç'aurait été kitch si ça avait été du jaune et du rose fluo avec un bandeau sur le front et des boucles d'oreilles en plastiques, certes, mais pour le reste, déguiser un acteur en « programme informatique », c'est en soi une gageure. Et pour cela, le style Tron est une réussite.
  • [^] # Re: c'est voulu toutes les fautes dans le post ?

    Posté par  . En réponse au message correcteur grammaticale..... Évalué à 2.

    4°) il faut conjuguer le verbe apprendre
    afin qu'il apprenne


    J'imagine qu'il l'a fait exprès. Enfin, j'ose le croire…
  • [^] # Re: No comment?

    Posté par  . En réponse au journal HS un substitut de sang humain. Évalué à 2.