Ou sinon, t'as la solution plus polie : "désolé, M. Machin est décédé avant-hier. Je dois vous laisser : on nous attend à la morgue". AMHA, ça doit jeter un froid tel qu'ils vont pas rappeler de suite...
Tu parles ! Ça ne les arrête pas ! Le démarchage par téléphone, c'est exactement la même chose que le spam. Il est établi à la base que c'est dérangeant pour la plupart des gens ciblés, mais il reste l'espoir que les quelques pigeons qui tomberont dedans compenseront la gêne occasionnée. Ceci posé, quand on s'est fait raccrocher au nez cent fois de suite, on considère que les suivants ont toujours l'option de faire la même chose et que, s'ils restent en ligne, c'est qu'ils le souhaitent.
J'ai perdu mon père il y a trois ans et repris la ligne de téléphone, qui est donc resté un moment à son nom. La ligne n'était pas sur liste orange à ce moment et cela devenait insupportable (jusqu'à cinq appels par jour). Au bout d'un moment je me suis servi du fait que la personne qu'ils appelaient était décédée pour couper court aux conversations. J4ai effectivement eu quelques condoléances mais globalement, c'était :
« — Bonjour, je suis xxx de la société yyyy…
— Vous souhaitez parler à M. xxxx ?
— Oui…
— Je suis désolé, il est décédé.
— Ah ? Bien. Puis-je parler au chef de famille, alors ? ».
Raccrochage immédiat, bien sûr.
Après deux ou trois conversations du même acabit, j'ai repris les choses en main. Liste orange immédiate qui a eu pour effet d'éliminer 80 % des appels (quand même). Lorsque l'interlocuteur est aimable (et parle français), j'explique poliment mon cas en demandant explicitement à être retiré de leur liste et en m'assurant que ma requête a bien été comprise.
Après m'être battu contre les vendeurs de fenêtres, et autres… l'une des rares grandes compagnies à me démarcher encore est… SFR.
Je pense que ça mérite au moins au moins le prix Ig nobel, si l'on considère son plus récent objectif, soit récompenser les initiatives qui ont faire rire d'abord puis réfléchir juste après.
Qu'en pensez-vous ? (On pourrait même dire « Quand pensez-vous ? », ce serait approprié ici).
Je m'en fous ségolènement de la manière utilisé pour produire notre électricité chérie, mais d'une force dont tu ne peux imaginer la puissance phénoménale
Ah ben c'est intéressant, ça : penses-tu que l'on puisse utiliser cette force pour produire de l'électricité ? :-)
Je pense que le terme « méthode » ne doit pas avoir la même signification dans les deux langages (de toutes façons, en C++, ce sont des « fonctions membres »).
Sinon, l'intérêt du template est justement de ne pas avoir à réécrire le code correspondant. Les types génériques dans le code sont remplacés par celui que tu spécifies et, seulement alors, la fonction est compilée dans cette version, ce qui, généralement, produit du code machine complètement différent selon l'objet manipulé alors que l'algorithme reste rigoureusement identique.
Ensuite, le programmeur peut ensuite écrire lui-même certaines versions de la fonction template pour certains types explicitement. C'est utile, par exemple, si tu fais un container à objet. La plupart du temps, tu stockeras des pointeurs ou des références vers tes (gros) objets. Mais si ce sont des caractères individuels que tu comptes stocker, alors il vaut mieux les enregistrer directement puisque les pointeurs qui les référencent seront entre 4 et 8 fois plus gros que les caractères eux-mêmes.
Mais les templates ne sont pas liés en eux-mêmes à la surcharge des opérateurs, ni à celle des fonctions membres, d'ailleurs.
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.
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…
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).
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…
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.
À 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.
À 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.
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.
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.
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: Forcement...
Posté par Obsidian . En réponse au journal Comment refuser la fibre optique. Évalué à 6.
Tu parles ! Ça ne les arrête pas ! Le démarchage par téléphone, c'est exactement la même chose que le spam. Il est établi à la base que c'est dérangeant pour la plupart des gens ciblés, mais il reste l'espoir que les quelques pigeons qui tomberont dedans compenseront la gêne occasionnée. Ceci posé, quand on s'est fait raccrocher au nez cent fois de suite, on considère que les suivants ont toujours l'option de faire la même chose et que, s'ils restent en ligne, c'est qu'ils le souhaitent.
J'ai perdu mon père il y a trois ans et repris la ligne de téléphone, qui est donc resté un moment à son nom. La ligne n'était pas sur liste orange à ce moment et cela devenait insupportable (jusqu'à cinq appels par jour). Au bout d'un moment je me suis servi du fait que la personne qu'ils appelaient était décédée pour couper court aux conversations. J4ai effectivement eu quelques condoléances mais globalement, c'était :
« — Bonjour, je suis xxx de la société yyyy…
— Vous souhaitez parler à M. xxxx ?
— Oui…
— Je suis désolé, il est décédé.
— Ah ? Bien. Puis-je parler au chef de famille, alors ? ».
Raccrochage immédiat, bien sûr.
Après deux ou trois conversations du même acabit, j'ai repris les choses en main. Liste orange immédiate qui a eu pour effet d'éliminer 80 % des appels (quand même). Lorsque l'interlocuteur est aimable (et parle français), j'explique poliment mon cas en demandant explicitement à être retiré de leur liste et en m'assurant que ma requête a bien été comprise.
Après m'être battu contre les vendeurs de fenêtres, et autres… l'une des rares grandes compagnies à me démarcher encore est… SFR.
# IGNobel
Posté par Obsidian . En réponse au journal Une autre excuse pour ne pas bosser…. Évalué à 10.
Je pense que ça mérite au moins au moins le prix Ig nobel, si l'on considère son plus récent objectif, soit récompenser les initiatives qui ont faire rire d'abord puis réfléchir juste après.
Qu'en pensez-vous ? (On pourrait même dire « Quand pensez-vous ? », ce serait approprié ici).
[^] # Re: Bon sens...
Posté par Obsidian . En réponse au journal Énergie nucléaire et bon sens. Évalué à 4.
C'est clair. C'est comme ça que certains ont essayé de nous faire croire que le monoxyde de dihydrogène était bon pour la santé… :-)
[^] # Re: Allemagne
Posté par Obsidian . En réponse au journal Énergie nucléaire et bon sens. Évalué à 3.
« Who needs oil ? I ride the bus ! »
[^] # Re: Énergie nucléaire et bon sens
Posté par Obsidian . En réponse au journal Énergie nucléaire et bon sens. Évalué à 10.
Ah ben c'est intéressant, ça : penses-tu que l'on puisse utiliser cette force pour produire de l'électricité ? :-)
[^] # Re: Salut à toi..
Posté par Obsidian . En réponse à la dépêche Salut à Toi (GNU/)LinuxFr.org !. Évalué à 6.
L'avantage, c'est que ça se factorise assez facilement…
[^] # Re: Real Programmers use Fortran
Posté par Obsidian . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 2.
C'est le bon moment pour replacer ça, aussi :
http://thedailywtf.com/Comments/Perseverance-in-the-Face-of-Change-Requests.aspx#163800
[^] # Re: Les Fonctions Génériques
Posté par Obsidian . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.
Je pense que le terme « méthode » ne doit pas avoir la même signification dans les deux langages (de toutes façons, en C++, ce sont des « fonctions membres »).
Sinon, l'intérêt du template est justement de ne pas avoir à réécrire le code correspondant. Les types génériques dans le code sont remplacés par celui que tu spécifies et, seulement alors, la fonction est compilée dans cette version, ce qui, généralement, produit du code machine complètement différent selon l'objet manipulé alors que l'algorithme reste rigoureusement identique.
Ensuite, le programmeur peut ensuite écrire lui-même certaines versions de la fonction template pour certains types explicitement. C'est utile, par exemple, si tu fais un container à objet. La plupart du temps, tu stockeras des pointeurs ou des références vers tes (gros) objets. Mais si ce sont des caractères individuels que tu comptes stocker, alors il vaut mieux les enregistrer directement puisque les pointeurs qui les référencent seront entre 4 et 8 fois plus gros que les caractères eux-mêmes.
Mais les templates ne sont pas liés en eux-mêmes à la surcharge des opérateurs, ni à celle des fonctions membres, d'ailleurs.
[^] # Re: Duck typing
Posté par Obsidian . 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 Obsidian . 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 Obsidian . 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 Obsidian . 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 Obsidian . 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 Obsidian . 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 Obsidian . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.
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.
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 Obsidian . 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 Obsidian . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 4.
Non, ce n'est pas tout-à-fait exact. Ça, ce serait plutôt le « array » du PHP.
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).
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 Obsidian . 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.
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 Obsidian . 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 Obsidian . En réponse au journal L'adulescence, quelle plaie !. Évalué à 2.
Mort à lui. :-)
[^] # Re: On en a gros !!!
Posté par Obsidian . 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 Obsidian . 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 Obsidian . 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 Obsidian . En réponse au journal Les SSII, précurseurs d'un modèle social. Évalué à 8.
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 Obsidian . En réponse au journal 50 000 € atteints en seulement 8 jours.. Évalué à 2.
Tu arrives à presser tes papier avec un CD ?