An application directory is a directory which contains an entire application - its documentation, binaries, source code and so on
Comme avec GNUstep quoi. Une appli GNUstep est dans un répertoire spécial (qu'on appelle un bundle); ça supporte l'internationalisation automatiquement, on peut même mettre des binaires multiplateformes ...
D'ailleurs les bundles ne sont pas réservés aux applications, par exemple les .help sont des bundles, donc toute la doc est contenue dedans (images, différentes langues, etc.)
bah je connais pas eiffel non plus :-)
Il est possible qu'il intègre plus ou moins un mécanisme qui peut s'apparenter à l'AOP.
C'est pour ça que je citais Objective-C, histoire de montrer que l'AOP existait (plus ou moins) sous d'autres formes, et que ces caractèristiques étaient appréciés. C'est souvent la même chose, un langage propose des solutions intéressantes, et quelques années après on conceptualise ça de façon plus étendue.
Est-ce que le concept d'agent que l'on trouve dans certains langages est proche ?
A priori, non... Si on parle d'agents logiciels, c'est encore autre chose ... bon après ça dépends du sens que donnent ces lanages au terme d'agent :-) (quels langages ?)
Pour revenir sur l'AOP... Le but des méthodes de programmation comme la programmation procédurale (séparer et factoriser du code dans des procédures) ou la programmation orientée objet est d'améliorer la structuration des programmes, de façon à simplifier leur programmation, leur maintenance, et accessoirement de pouvoir factoriser du code quand c'est possible.
La programmation par aspects propose une façon de factoriser du code qui ne pouvait pas l'être auparavant (du moins, plus difficilement), car faisant *partie* d'un code déja structuré. Reprenons l'exemple des traces. Tu as un programme qui au cours de son exécution, affiche différentes traces (printf) te permettant de savoir ou en est son fonctionnement.
Tu n'as pas de moyen simple d'isoler cet "aspect" de ton programme dans une procédure ou un objet; que l'affichage soit fait par un printf ou une autre fonction ou objet, de toute façon tu auras du aller mettre toutes les traces "à la main" dans ton source. Problème donc, si tu veux modifier ça, il faut le faire à la main. Si tu veux modifier tes printf pour envoyer ça sur le réseau dans une socket, tu est obligé de tout modifier à la main. Eventuellement tu peux encapsuler ça dans une fonction chargée de "tracer" (envoyer à l'écran, envoyer sur le réseau, etc.), mais le problème est le même: tous tes appels sont disséminés partout.
Avec AspectJ par exemple, il te suffit de définir un aspect "Trace" qui fera ce qui t'intéresse (par exemple, un printf), et ensuite tu indique à quel endroit de ton code cet aspect Trace va s'intégrer (par exemple, dans toutes les méthodes de la classe "Toto", avant et après chaque appel) !
Avantage : l'aspect "Trace" de ton programme est défini à un seul endroit, tu peux alors très simplement décider d'étendre son domaine d'application comme tu le souhaites (voir le virer).
En fait grâce à la programmation par aspects, tu isoles des parties de code qui ne pouvaient pas l'être simplement avant, ou qui pouvaient l'être mais qui nécessitaient un travail de conception préalable : encapsulation, utilisation de design patterns, etc. Hors on ne peut *pas* avoir pensé à toutes les possibilitées d'évolution et tout définir, le logiciel deviendrait bien trop énorme et difficile à programmer.
L'autre gros intérêt de la programmation par aspect, c'est la possibilité de "composer" des morceaux de code, par exemple une équipe travaille sur un logiciel, et une deuxième équipe travaille sur un autre "aspect" qui sera ensuite composé pour former le logiciel final.
Le langage Objective-C permets quelque chose d'un peu similaire, avec l'utilisation des categories (possibilité de rajouter des méthodes à une classe au runtime, sans même avoir besoin du code source de la classe), de la méthode poseAs: (qui permets d'insérer une classe dans un arbre d'héritage), ou l'usage des bundles (possibilité de charger à la volée du code).
L'AOP va en général plus loin (cf AspectJ et ses définitions de "pointcuts" très élaborées), mais une chose est sure, c'est que cette approche permets une conception plutôt propre et surtout, évolutive, d'un programme.
Ca n'a RIEN à voir ... j'ai l'impression que tu vois le vrml comme une sorte de truc à la flash ... c'est absolument pas ça ! c'est un format standard pour la visualisation 3D sur le web. Tu m'expliqueras comment ta page web te permet de te balader dans un batiment ...
Rajoutons les bouquins cyberpunk, et les bouquins de Neal Stephenson ! (L'age de cristal, cryptonomicon, samourai virtuel, zodiac, et au début était la ligne de commande ...)
Y'a aussi le cycle d'ender qu'est pas mal ..
Bon tout le reste a déja été cité, Asimov, Van Vogt (ah tiens non pas van vogt, ben alors ?), Philip K. Dick, Clifford D. Simack, Arthur C. Clark, etc.
Non ça ne sert pas qu'à ça, c'est juste l'exemple type, qui montre bien le problème que résouds la POA. Tu peux imaginer bien d'autres types d'utilisations (consulte les liens sur JAC de la news), par exemple rajouter un aspect "distribué" à ton application, etc.
Prenons un autre exemple : imaginons que tu programmes un soft de gestion du personnel. Tu en fait une belle modélisation orienté objet : tu organises ça en classes (genre une classe manager, une classe employé, etc.) et ta préoccupation est ainsi de modéliser les informations et les liens entre les personnes de la boite. Ton modèle peut servir également pour stocker les infos concernant les salaires. Il peut aussi servir à définir et garantir certaines règles de gestion, comme "un employé doit avoir au moins un manager", ou "le salaire doit être supérieur ou égal au smic".
En fait, si tu réfléchis en terme d'aspects, ton modèle mixe un aspect "'stockage' du personnel" avec un aspect "organisation du personnel", ainsi qu'un aspect "comptabilité" et un aspect "règles de gestion". La modélisation objet capture l'aspect "données" ('stockage' du personnel), mais ne capture pas de façon pratique les autres aspects. Avec l'AOP tu peux exprimer ces différents aspects de façon claire, et définir la façon dont ils doivent se combiner pour former ton programme final.
Si on pousse plus loin, on peut imaginer recombiner complètement les différents aspects d'un programme de façon à coller avec l'orientation voulue à un moment. En effet, on modifie très souvent un programme au cours de sa "vie" car les besoins évoluent, et le design de départ ne colle plus forcèment avec ce qui est attendu à un moment donné; non pas que le design de départ soit forcèment mauvais, mais il ne réponds plus exactement à ce qui est finalement demandé. Si le design de base est vraiment trop éloigné, on finit généralement par réécrire complètement le soft. Et bien, l'AOP peut être une réponse à ce genre de problèmatique, en autorisant la recombinaison des différents aspects.
A ce sujet, on peut consulter le projet Hyper/J, qui traite de la séparation des préoccupations ("Separation of concerns") de façon multi-dimensionnelle, et qui personnellement me parait une approche particulièrement intéressante de l'AOP (le projet semble un peu au point mort malheureusement) :
Bon en gros, c'est le paradigme de programmation à la mode en ce moment. Pour replacer le truc, on pourrait dire "procédural -> orienté objet -> orienté aspect" ...
En quoi ça consiste ? et bien, l'idée est que dans un programme, on structure d'une certaine façon (imagine que par exemple tu as défini un certain nombre de classes d'objets pour ton programme, qui sont donc représentés grosso-modo sous forme d'un ou de plusieurs arbres d'héritage).
Mais en fait cette structuration "fige" ton programme dans une représentation donnée.
C'est à dire que tu peux très bien avoir des morceaux de code, qui pourraient être structurés, mais qui ne le peuvent pas car avec la structuration que tu as choisie pour ton programme, ces bouts de codes sont disséminés à divers endroits de tes classes. Du coup, tu ne peux pas structurer ces bouts de code là -- ce qui est un peu dommage, non ?
Tu as en fait différents "aspects" de ton programme qui sont combinés dans tes classes, et en programmation objet classique, tu n'as pas de moyens pour structurer ces "aspects". La réutilisation et la factorisation de ces aspects est donc impossible.
La programmation par aspects te permets de les structurer et de les factoriser, et propose pour cela différentes solutions pour mixer ces aspects avec ton code. Par exemple, AspectJ, un préprocesseur pour java, propose de rajouter les aspects à des endroits que tu définis (avant l'appel à une fonction donnée, après la fonction, avant chaque écriture disque, etc.).
L'exemple ultra-classique avec les aspects : rajouter des traces à du code. Imagine que tu veuille logger tous les accès à une variable. Tu risques de devoir te taper les modifs dans tout ton programme, et en plus, faudra virer tout ça une fois les tests finis. Plutôt chiant. Là avec les aspects, tu te crée un aspect "TraceDeMaVariable" et ton source reste clean. Le jour ou tu veux plus de cet aspect, tu le vire.
Et encore, avec une variable, on peut encapsuler ça avec un setter/getter et donc centraliser tes traces. Mais bon cet exemple montre un peu l'intérêt des aspects je pense ... et puis, tu peux vouloir logger tous les appels d'une fonction d'un objet, ou tous les accès I/O ...
Tu peux le faire en programmation classique, mais ça va être une plaie et surtout l'ensemble de l'aspect "trace de mon programme" sera disséminé dans tout ton programme. Alors qu'avec un aspect tout reste nickel, bien séparé.
Il y a un excellent numéro d'ACM qui traite de tout ça (octobre 2001).
En gros la plupart des développements sur les aspects ont lieu autour de java (mais il y a quelques travaux pour C/C++, SmallTalk, etc.), et honnêtement, la programmation par aspect (AOP) est quelque chose de pas mal intéressant ... si vous êtes sur lyon, allez à cette conférence, ça doit être sympa.
Ouaip, Festival est plutôt sympa ... et il existe des petits projets qui l'utilisent, par exemple http://www.digital-bushido.org/opensource/files/SpeechService.tgz (tgz) , qui rajoute un "SpeechService" aux applications gnustep : sélectionnez un bout de texte dans une appli, cliquez sur "SpeechService" dans le menu Services, et ô miracle, ça parle ! :-))
Festival est pas mal rigolo... je me souviens de l'avoir branché en sortie d'un moteur de système expert que j'avais du faire pour l'école ;-) ça le faisait bien !
En même temps, si tu candidate pour une boite d'info qui ne sait pas se dépatouiller avec un pdf (format très courant quand même) ... moi je me poserais la question de savoir si ça vaut la peine :-)
Heu ben pour net bsd, j'ai simplement consulté un guide d'install pour sparc, téléchargé les deux images de disquettes, suivis les instructions et installé le tout :-)
le seul problème que j'ai eu c'est donc avec le nouveau disque, car le firmware ne voulait pas aller chercher le boot au dela de 1go ... mais ça passe en créant une partition /boot.
Tu es parent d'élève, ou comme d'habitude tu ne sais pas de quoi tu parles ?
Excuse moi ?
non je ne suis pas parent d'élève, ce n'est pas pour autant que je mets mon sens critique dans ma poche. Soyons clair : j'ai l'impression que les parents d'élèves sont pour une fois plutôt d'accord avec le mouvement des profs. Je peux me tromper; mais du coup, quand je constate à la télévision un traitement de l'information qui mets l'emphase sur 3 parents qui ralent devant une école et qui passe par contre très rapidement sur des manifs de parents de la fcpe, j'ai là encore l'impression qu'on me prends pour un con.
De plus, je parlais en général du traitement des médias; l'exemple cité est juste ça, un exemple. Montrer une dizaine de gosses avec des pancartes qui "manifestent" contre leurs profs, je ressent ça comme une grossière manipulation médiatique.
J'ai donc effectivement l'impression que les médias essaient de minimiser les mouvements sociaux en ce moment. C'est juste mon sentiment, je ne dit pas détenir la vérité absolue, et c'était pour rebondir sur le commentaire précédent parlant d'une consigne de minimiser ce qui se passe.
Maintenant j'aimerais que tu explicite un peu ton "ou comme d'habitude tu ne sais pas de quoi tu parles ? ".
Un groupe de Presse qui vend des armes est aussi scandaleux qu'un vendeur d'arme qui possède un groupe de Presse.
Ah ? pourquoi au fait ?
La collusion d'intérêt, peut être ? la non-indépendance des médias ? Retourner le problème (groupe presse marchand d'arme ou marchand d'arme groupe de presse) reviens exactement à la même chose (mais bon j'imagine que tu le sais bien et que tu as donc une argumentation brillante que nous attendons tous impatiemment).
une ss5 à 85mhz, 256mo de ram ... elle en avait que 96 mais bon vu ce que ça coute je l'ai un peu boosté ;-)
le 170 n'est pas le même proc que sur les 85/110, et j'ai lu sur le net qu'il y avait des incompatibilitées avec certains linux (redhat); je ne sais pas si le problème est le même avec d'autres distrib ... par contre j'ai lu qq part que ce qui avait l'air de poser problème était l'install, et qu'en installant sur une ss5 85 le disque puis en le remettant sur un 170 ça marchait ... c'est donc peut être à tester !
Ce qui fait le plus de bruit est généralement le disque dur; les ss5 étaient souvent livrés avec un seagate noir de 1go, qui a mal vieilli et qui fait un sacré raffut (enfin il marche bien, mais il fait du bruit). Déja mettre un HD plus récent ça ira beaucoup mieux !! et sinon, tu peux aussi changer les deux ventilos sur l'alim (je crois que sur ton modèle, tu as *aussi* un ventilo sur le proc, non ?) comme ce que je décrit.
Sinon comme OS, j'avais installé un net bsd, et là j'ai collé une debian (les deux en install réseau, vu que je n'ai pas de cdrom sur la ss5). D'ailleurs, il peut y avoir un gag, suivant la version du firwmare, il n'accepte pas d'aller chercher le boot au dela de 1go ! donc tu installes tranquillement ta debian, mais à la fin tu ne peux pas installer le boot loader (silo). La solution est de faire (par exemple) 4 partitions :
* /boot de 50 mo disons
* / de la taille que tu veux
* (en 3eme position, la partoche spéciale pour sun que tu crée avec 's' dans fdisk)
* la swap
Comme /boot sera inférieur à 1go, silo s'installera sans problèmes. C'est con, mais vaut mieux le savoir :-)
Pour infos les média on reçu l'ordre de minimiser l'impact réel des grèves pour ne pas faire boule de neige (source interne à F3).
Honnêtement, je ne sais pas si c'est vrai. Par contre, j'ai vraiment l'impression depuis le début des grèves, en regardant le journal sur F2, qu'on se fout totalement de notre gueule. C'est assez incroyable, les commentaires sont très souvent orientés, on montre bien évidemment les quelques cas qui peuvent choquer le bon peuple, en les mettant au même niveau que le reste de ce qu'il se passe, etc.
Je me souviens par exemple d'un reportage sur des parents d'élèves, ils ont fait une tartine sur 3-4 parents devant une école qui ralaient, et 1min en disant que, oui, les parents d'élèves étaient en général plutôt du côté des profs. Dans le même genre, ils ont montrés en long large et en travers des gosses qui "faisaient grêves contre leurs profs" ... pff ...
Donc je sais pas vous, mais ça fait quelques temps que j'ai une sacré impression d'être allègrement manipulé par la télé (déja que c'est le cas en général, là, comment dire, c'est remarquable).
Donc, je doute très fortement de la croissance continue.
Sauf que, si tu n'inclue pas la croissance, la retraite par capitalisation tu l'as également dans l'os ... (cf http://linuxfr.org/~JLF3/2905.html(...) "et arrêtez de sortir des âneries du genre "oui mais quand la bourse chute, les fonds de pension trinquent" parce que ça c'est stupide : la bourse progresse toujours, s'il y a des crises c'est passager, ça dure maximum deux ans")
[^] # Re: ROX-Filer 2.0.0 est sorti.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche ROX-Filer 2.0.0 est sorti.. Évalué à 1.
C'est juste que le concept d'Apps wrapper est pas neuf et qu'il existe en dehors de RiscOS !
[^] # Re: ROX-Filer 2.0.0 est sorti.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche ROX-Filer 2.0.0 est sorti.. Évalué à 1.
Comme avec GNUstep quoi. Une appli GNUstep est dans un répertoire spécial (qu'on appelle un bundle); ça supporte l'internationalisation automatiquement, on peut même mettre des binaires multiplateformes ...
D'ailleurs les bundles ne sont pas réservés aux applications, par exemple les .help sont des bundles, donc toute la doc est contenue dedans (images, différentes langues, etc.)
GNUstep ça rox :)
[^] # Re: Conférence sur la programmation orientée aspect et JAC, à Toulouse.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Conférence sur la programmation orientée aspect et JAC, à Toulouse.. Évalué à 1.
Il est possible qu'il intègre plus ou moins un mécanisme qui peut s'apparenter à l'AOP.
C'est pour ça que je citais Objective-C, histoire de montrer que l'AOP existait (plus ou moins) sous d'autres formes, et que ces caractèristiques étaient appréciés. C'est souvent la même chose, un langage propose des solutions intéressantes, et quelques années après on conceptualise ça de façon plus étendue.
[^] # Re: Conférence sur la programmation orientée aspect et JAC, à Toulouse.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Conférence sur la programmation orientée aspect et JAC, à Toulouse.. Évalué à 2.
A priori, non... Si on parle d'agents logiciels, c'est encore autre chose ... bon après ça dépends du sens que donnent ces lanages au terme d'agent :-) (quels langages ?)
Pour revenir sur l'AOP... Le but des méthodes de programmation comme la programmation procédurale (séparer et factoriser du code dans des procédures) ou la programmation orientée objet est d'améliorer la structuration des programmes, de façon à simplifier leur programmation, leur maintenance, et accessoirement de pouvoir factoriser du code quand c'est possible.
La programmation par aspects propose une façon de factoriser du code qui ne pouvait pas l'être auparavant (du moins, plus difficilement), car faisant *partie* d'un code déja structuré. Reprenons l'exemple des traces. Tu as un programme qui au cours de son exécution, affiche différentes traces (printf) te permettant de savoir ou en est son fonctionnement.
Tu n'as pas de moyen simple d'isoler cet "aspect" de ton programme dans une procédure ou un objet; que l'affichage soit fait par un printf ou une autre fonction ou objet, de toute façon tu auras du aller mettre toutes les traces "à la main" dans ton source. Problème donc, si tu veux modifier ça, il faut le faire à la main. Si tu veux modifier tes printf pour envoyer ça sur le réseau dans une socket, tu est obligé de tout modifier à la main. Eventuellement tu peux encapsuler ça dans une fonction chargée de "tracer" (envoyer à l'écran, envoyer sur le réseau, etc.), mais le problème est le même: tous tes appels sont disséminés partout.
Avec AspectJ par exemple, il te suffit de définir un aspect "Trace" qui fera ce qui t'intéresse (par exemple, un printf), et ensuite tu indique à quel endroit de ton code cet aspect Trace va s'intégrer (par exemple, dans toutes les méthodes de la classe "Toto", avant et après chaque appel) !
Avantage : l'aspect "Trace" de ton programme est défini à un seul endroit, tu peux alors très simplement décider d'étendre son domaine d'application comme tu le souhaites (voir le virer).
En fait grâce à la programmation par aspects, tu isoles des parties de code qui ne pouvaient pas l'être simplement avant, ou qui pouvaient l'être mais qui nécessitaient un travail de conception préalable : encapsulation, utilisation de design patterns, etc. Hors on ne peut *pas* avoir pensé à toutes les possibilitées d'évolution et tout définir, le logiciel deviendrait bien trop énorme et difficile à programmer.
L'autre gros intérêt de la programmation par aspect, c'est la possibilité de "composer" des morceaux de code, par exemple une équipe travaille sur un logiciel, et une deuxième équipe travaille sur un autre "aspect" qui sera ensuite composé pour former le logiciel final.
Le langage Objective-C permets quelque chose d'un peu similaire, avec l'utilisation des categories (possibilité de rajouter des méthodes à une classe au runtime, sans même avoir besoin du code source de la classe), de la méthode poseAs: (qui permets d'insérer une classe dans un arbre d'héritage), ou l'usage des bundles (possibilité de charger à la volée du code).
L'AOP va en général plus loin (cf AspectJ et ses définitions de "pointcuts" très élaborées), mais une chose est sure, c'est que cette approche permets une conception plutôt propre et surtout, évolutive, d'un programme.
[^] # Re: Pourquoi
Posté par Nicolas Roard (site web personnel) . En réponse au journal Pourquoi "DA". Évalué à 2.
[^] # Re: Un petit pas dans l'univers
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Un petit pas dans l'univers. Évalué à 1.
#VRML V2.0 utf8
Background
{
skyColor 0 .66 .71
}
Effectivement là l'intérêt de vrml est assez limité ;-)
[^] # Re: Un petit pas dans l'univers
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Un petit pas dans l'univers. Évalué à 1.
Ca n'a RIEN à voir ... j'ai l'impression que tu vois le vrml comme une sorte de truc à la flash ... c'est absolument pas ça ! c'est un format standard pour la visualisation 3D sur le web. Tu m'expliqueras comment ta page web te permet de te balader dans un batiment ...
[^] # Re: Un petit pas dans l'univers
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Un petit pas dans l'univers. Évalué à 6.
oui, ça s'appelle X3D...
pour plus d'infos, consulter http://www.web3d.org/(...)
la faq : http://www.web3d.org/fs_faq.htm(...)
les groupes de recherches : http://www.web3d.org/fs_workinggroups.htm(...)
# Re: Biblio Geek indispensable...
Posté par Nicolas Roard (site web personnel) . En réponse au journal Biblio Geek indispensable.... Évalué à 1.
Y'a aussi le cycle d'ender qu'est pas mal ..
Bon tout le reste a déja été cité, Asimov, Van Vogt (ah tiens non pas van vogt, ben alors ?), Philip K. Dick, Clifford D. Simack, Arthur C. Clark, etc.
[^] # Re: Conférence sur la programmation orientée aspect et JAC, à Toulouse.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Conférence sur la programmation orientée aspect et JAC, à Toulouse.. Évalué à 6.
Prenons un autre exemple : imaginons que tu programmes un soft de gestion du personnel. Tu en fait une belle modélisation orienté objet : tu organises ça en classes (genre une classe manager, une classe employé, etc.) et ta préoccupation est ainsi de modéliser les informations et les liens entre les personnes de la boite. Ton modèle peut servir également pour stocker les infos concernant les salaires. Il peut aussi servir à définir et garantir certaines règles de gestion, comme "un employé doit avoir au moins un manager", ou "le salaire doit être supérieur ou égal au smic".
En fait, si tu réfléchis en terme d'aspects, ton modèle mixe un aspect "'stockage' du personnel" avec un aspect "organisation du personnel", ainsi qu'un aspect "comptabilité" et un aspect "règles de gestion". La modélisation objet capture l'aspect "données" ('stockage' du personnel), mais ne capture pas de façon pratique les autres aspects. Avec l'AOP tu peux exprimer ces différents aspects de façon claire, et définir la façon dont ils doivent se combiner pour former ton programme final.
Si on pousse plus loin, on peut imaginer recombiner complètement les différents aspects d'un programme de façon à coller avec l'orientation voulue à un moment. En effet, on modifie très souvent un programme au cours de sa "vie" car les besoins évoluent, et le design de départ ne colle plus forcèment avec ce qui est attendu à un moment donné; non pas que le design de départ soit forcèment mauvais, mais il ne réponds plus exactement à ce qui est finalement demandé. Si le design de base est vraiment trop éloigné, on finit généralement par réécrire complètement le soft. Et bien, l'AOP peut être une réponse à ce genre de problèmatique, en autorisant la recombinaison des différents aspects.
A ce sujet, on peut consulter le projet Hyper/J, qui traite de la séparation des préoccupations ("Separation of concerns") de façon multi-dimensionnelle, et qui personnellement me parait une approche particulièrement intéressante de l'AOP (le projet semble un peu au point mort malheureusement) :
http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm(...)
http://www.alphaworks.ibm.com/tech/hyperj(...)
[^] # Re: Conférence sur la programmation orientée aspect et JAC, à Toulouse.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Conférence sur la programmation orientée aspect et JAC, à Toulouse.. Évalué à 1.
[^] # Re: Conférence sur la programmation orientée aspect et JAC, à Toulouse.
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Conférence sur la programmation orientée aspect et JAC, à Toulouse.. Évalué à 7.
En quoi ça consiste ? et bien, l'idée est que dans un programme, on structure d'une certaine façon (imagine que par exemple tu as défini un certain nombre de classes d'objets pour ton programme, qui sont donc représentés grosso-modo sous forme d'un ou de plusieurs arbres d'héritage).
Mais en fait cette structuration "fige" ton programme dans une représentation donnée.
C'est à dire que tu peux très bien avoir des morceaux de code, qui pourraient être structurés, mais qui ne le peuvent pas car avec la structuration que tu as choisie pour ton programme, ces bouts de codes sont disséminés à divers endroits de tes classes. Du coup, tu ne peux pas structurer ces bouts de code là -- ce qui est un peu dommage, non ?
Tu as en fait différents "aspects" de ton programme qui sont combinés dans tes classes, et en programmation objet classique, tu n'as pas de moyens pour structurer ces "aspects". La réutilisation et la factorisation de ces aspects est donc impossible.
La programmation par aspects te permets de les structurer et de les factoriser, et propose pour cela différentes solutions pour mixer ces aspects avec ton code. Par exemple, AspectJ, un préprocesseur pour java, propose de rajouter les aspects à des endroits que tu définis (avant l'appel à une fonction donnée, après la fonction, avant chaque écriture disque, etc.).
L'exemple ultra-classique avec les aspects : rajouter des traces à du code. Imagine que tu veuille logger tous les accès à une variable. Tu risques de devoir te taper les modifs dans tout ton programme, et en plus, faudra virer tout ça une fois les tests finis. Plutôt chiant. Là avec les aspects, tu te crée un aspect "TraceDeMaVariable" et ton source reste clean. Le jour ou tu veux plus de cet aspect, tu le vire.
Et encore, avec une variable, on peut encapsuler ça avec un setter/getter et donc centraliser tes traces. Mais bon cet exemple montre un peu l'intérêt des aspects je pense ... et puis, tu peux vouloir logger tous les appels d'une fonction d'un objet, ou tous les accès I/O ...
Tu peux le faire en programmation classique, mais ça va être une plaie et surtout l'ensemble de l'aspect "trace de mon programme" sera disséminé dans tout ton programme. Alors qu'avec un aspect tout reste nickel, bien séparé.
Il y a un excellent numéro d'ACM qui traite de tout ça (octobre 2001).
sinon le site aosd : http://aosd.net/(...) et le site d'aspectj : http://www.eclipse.org/aspectj/(...)
En gros la plupart des développements sur les aspects ont lieu autour de java (mais il y a quelques travaux pour C/C++, SmallTalk, etc.), et honnêtement, la programmation par aspect (AOP) est quelque chose de pas mal intéressant ... si vous êtes sur lyon, allez à cette conférence, ça doit être sympa.
[^] # Re: Csound désormais en LGPL
Posté par Nicolas Roard (site web personnel) . En réponse à la dépêche Csound désormais en LGPL. Évalué à 1.
[^] # Re: Pourquoi utilisez-vous _encore_ Windows ?
Posté par Nicolas Roard (site web personnel) . En réponse au journal Pourquoi utilisez-vous _encore_ Windows ?. Évalué à 2.
# Re: www.brevets-logiciels.info : ouf...ça me calme.
Posté par Nicolas Roard (site web personnel) . En réponse au journal www.brevets-logiciels.info : ouf...ça me calme.. Évalué à 3.
[^] # Re: SparcStation 5 silencieuse ?
Posté par Nicolas Roard (site web personnel) . En réponse au journal SparcStation 5 silencieuse ?. Évalué à 1.
le seul problème que j'ai eu c'est donc avec le nouveau disque, car le firmware ne voulait pas aller chercher le boot au dela de 1go ... mais ça passe en créant une partition /boot.
[^] # Re: Le service public
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 1.
Excuse moi ?
non je ne suis pas parent d'élève, ce n'est pas pour autant que je mets mon sens critique dans ma poche. Soyons clair : j'ai l'impression que les parents d'élèves sont pour une fois plutôt d'accord avec le mouvement des profs. Je peux me tromper; mais du coup, quand je constate à la télévision un traitement de l'information qui mets l'emphase sur 3 parents qui ralent devant une école et qui passe par contre très rapidement sur des manifs de parents de la fcpe, j'ai là encore l'impression qu'on me prends pour un con.
De plus, je parlais en général du traitement des médias; l'exemple cité est juste ça, un exemple. Montrer une dizaine de gosses avec des pancartes qui "manifestent" contre leurs profs, je ressent ça comme une grossière manipulation médiatique.
J'ai donc effectivement l'impression que les médias essaient de minimiser les mouvements sociaux en ce moment. C'est juste mon sentiment, je ne dit pas détenir la vérité absolue, et c'était pour rebondir sur le commentaire précédent parlant d'une consigne de minimiser ce qui se passe.
Maintenant j'aimerais que tu explicite un peu ton "ou comme d'habitude tu ne sais pas de quoi tu parles ? ".
[^] # Re: Mon vote, aspiré par le vide...
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 0.
Ah ? pourquoi au fait ?
La collusion d'intérêt, peut être ? la non-indépendance des médias ? Retourner le problème (groupe presse marchand d'arme ou marchand d'arme groupe de presse) reviens exactement à la même chose (mais bon j'imagine que tu le sais bien et que tu as donc une argumentation brillante que nous attendons tous impatiemment).
# Re: Registre national belge...
Posté par Nicolas Roard (site web personnel) . En réponse au journal Registre national belge.... Évalué à 4.
[^] # Re: SparcStation 5 silencieuse ?
Posté par Nicolas Roard (site web personnel) . En réponse au journal SparcStation 5 silencieuse ?. Évalué à 1.
le 170 n'est pas le même proc que sur les 85/110, et j'ai lu sur le net qu'il y avait des incompatibilitées avec certains linux (redhat); je ne sais pas si le problème est le même avec d'autres distrib ... par contre j'ai lu qq part que ce qui avait l'air de poser problème était l'install, et qu'en installant sur une ss5 85 le disque puis en le remettant sur un 170 ça marchait ... c'est donc peut être à tester !
Ce qui fait le plus de bruit est généralement le disque dur; les ss5 étaient souvent livrés avec un seagate noir de 1go, qui a mal vieilli et qui fait un sacré raffut (enfin il marche bien, mais il fait du bruit). Déja mettre un HD plus récent ça ira beaucoup mieux !! et sinon, tu peux aussi changer les deux ventilos sur l'alim (je crois que sur ton modèle, tu as *aussi* un ventilo sur le proc, non ?) comme ce que je décrit.
Sinon comme OS, j'avais installé un net bsd, et là j'ai collé une debian (les deux en install réseau, vu que je n'ai pas de cdrom sur la ss5). D'ailleurs, il peut y avoir un gag, suivant la version du firwmare, il n'accepte pas d'aller chercher le boot au dela de 1go ! donc tu installes tranquillement ta debian, mais à la fin tu ne peux pas installer le boot loader (silo). La solution est de faire (par exemple) 4 partitions :
* /boot de 50 mo disons
* / de la taille que tu veux
* (en 3eme position, la partoche spéciale pour sun que tu crée avec 's' dans fdisk)
* la swap
Comme /boot sera inférieur à 1go, silo s'installera sans problèmes. C'est con, mais vaut mieux le savoir :-)
[^] # Re: Le service public
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 1.
-> [-1]
[^] # Re: Le service public
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 1.
Honnêtement, je ne sais pas si c'est vrai. Par contre, j'ai vraiment l'impression depuis le début des grèves, en regardant le journal sur F2, qu'on se fout totalement de notre gueule. C'est assez incroyable, les commentaires sont très souvent orientés, on montre bien évidemment les quelques cas qui peuvent choquer le bon peuple, en les mettant au même niveau que le reste de ce qu'il se passe, etc.
Je me souviens par exemple d'un reportage sur des parents d'élèves, ils ont fait une tartine sur 3-4 parents devant une école qui ralaient, et 1min en disant que, oui, les parents d'élèves étaient en général plutôt du côté des profs. Dans le même genre, ils ont montrés en long large et en travers des gosses qui "faisaient grêves contre leurs profs" ... pff ...
Donc je sais pas vous, mais ça fait quelques temps que j'ai une sacré impression d'être allègrement manipulé par la télé (déja que c'est le cas en général, là, comment dire, c'est remarquable).
[^] # Re: Do the math
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 1.
Ouaip. De même que la recherche. Et la santé. Non, franchement, on ferait mieux de stopper tous ces financement qui ne rapportent pas d'argent !
Tu te relis, des fois ?
[^] # Re: Les chiffres
Posté par Nicolas Roard (site web personnel) . En réponse au journal Le service public. Évalué à 1.
Sauf que, si tu n'inclue pas la croissance, la retraite par capitalisation tu l'as également dans l'os ... (cf http://linuxfr.org/~JLF3/2905.html(...)
"et arrêtez de sortir des âneries du genre "oui mais quand la bourse chute, les fonds de pension trinquent" parce que ça c'est stupide : la bourse progresse toujours, s'il y a des crises c'est passager, ça dure maximum deux ans")
Faut savoir.
[^] # Re: SparcStation 5 silencieuse ?
Posté par Nicolas Roard (site web personnel) . En réponse au journal SparcStation 5 silencieuse ?. Évalué à 2.