What You Don’t Know About Ted Hughes’ Life

The original name of Ted Hughes is Edward James Ted Hughes. He was born in the western part of Yorkshire, more specifically in Mytholmroyd, in 1930. As the region which he inhabited as a child suggests, his young years were spent in a rural area. When Ted was around seven years old, his family decided to move to the southern part of Yorkshire.  It is believed that it was the landscapes of this region that inspired Ted Hughes for his poetry.

The Royal Air Force and College

After graduating from high school, Ted had to join the Royal Air Force. He spent two years as a mechanic. After leaving the Royal Air Force, Ted made the decision to go to Cambridge in order to study at Pembroke College. He managed to do so thanks to obtaining a scholarship. The area in which he studied more extensively in college was mythologies. Probably this was the reason because of which his first poems published at that time were devoted to archaeology and anthropology.

Interesting Facts about Ted Hughes’ Career

The Literary Magazine ‘Botolph’s Review’

After graduating from Cambridge, Ted Hughes became the co-founder of St. Botolph’s Review, a literary magazine. Interestingly enough, it was during the inaugural reception when he crossed paths with Sylvia Plath, who became his wife very soon afterward. Plath appeared to have played an essential role in Hughes' career.

‘The Hawk in the Rain’

It was Plath who made him take part in the Poetry Center’s book contest with his manuscript ‘The Hawk in the Rain.' The judges of this contest were very prominent poets of that time, namely Marianne Moore, Stephen Spender, and others, so it was a massive success for Ted Hughes when they awarded his work first prize. ‘The Hawk in the Rain' was published both in America and in England in 1957.

Hard Times for Hughes

During the first years of their marriage, Hughes and Plath moved to Massachusetts, where Hughes taught at the university. In 1959 they went back to England where their daughter was born. They called her Freida. In 1962, their son, Nickolas, was born. It was the same year in which Hughes left his wife because of Assia Wevill. Probably this was the reason for Plath to commit suicide during the following year. Several years after Plath’s suicide, Hughes didn’t write anything as he devoted all his time to edit Plath’s poems.

A Recurrent Nightmare

Hughes was criticized because people regarded him as being responsible for Plath’s suicide. Even his editorial work on Plath’s poems led to controversy. In 1965, his third child, Shura, was born, and only four years after that, Wevill also committed suicide. What was even worse is that she also killed Shura. In 1970, Ted Hughes got involved with Carol Orchard, who became his wife for the rest of his life.

Hughes’ Works

Hughes’ works consisted of poetry books, translations, children's books, and non-fiction. Some of his most popular books include:

  • ‘The Iron Man’ (1968) – his most popular children’s book;
  • ‘Wolfwatching’ (1990);
  • ‘Selected Poems’ 1957-1981 (1982);
  • ‘Flowers and Insects’ (1986);
  • ‘Cave Birds’ (1979);
  • ‘Moortown’ (1980);
  • ‘Lupercal’ (1960);
  • ‘Crow’ (1971);
  • ‘The Birthday Letters’ (Farrar, Straus & Giroux, 1998) – This is his final collection. ‘The Birthday Letters' was devoted to the relationship between Sylvia Plath and Hughes.

The Themes in Hughes’ Works

Influenced by his years in Pembroke College, where he studied mythologies, Hughes frequently uses a such framework for his works. His poems often include dramatic monologues that depict an essential topic. The reader can also encounter a lot of animals in Hughes' poetry. They appear as icons, deities, and metaphors. Undoubtedly, the most frequently recurrent character is the ‘Crow,' which in his works is a mixture of bird, man, and god. The appearance of this crow is related to the image of evil and good.

Awards

Thanks to his indisputable talent, Ted Hughes was rewarded with a number of literary honors. In 1984, he was announced to be Poet Laureate of England, and he held this post until the moment he died in 1998.

Hughes Influence on Poetry Continues Even After His Death

An Award in Honor of Ted Hughes

The Ted Hughes Award was established in 2009. The Poetry Book Society and the Poetry Society nominated one of the living UK poets who had just finished an innovative poetry project that year. He won a prize of 5,000 pounds.

Ted Hughes Society

Shortly after the establishment of the Ted Hughes Award, the Ted Hughes Society was founded. This society published an online journal and also news and articles on most of Hughes' works. Access to these materials is free, so everyone interested can use them. It was this society that started staging Hughes conferences, and they promise that they will continue doing this in the future.

 

STLFilt: déchiffreur de message d’erreur STL pour C ++

STLFilt simplifie et / ou reformate les messages d’avertissement et d’erreur C ++ longs, en mettant l’accent sur les diagnostics liés à STL (et pour MSVC 6, il élimine totalement les avertissements C4786 et leurs détritus). Le résultat rend compréhensibles bon nombre des diagnostics les plus cryptiques.

L'ingrédient actif de chaque distribution est un script Perl. Vous devez donc installer un interpréteur Perl. ActivePerl fonctionne mieux, et c'est gratuit.

Les téléchargements suivent, organisés par plate-forme:

Microsoft Visual C ++ 6/7/8/9: stlfilt.zip (484 Ko, mise à jour le 22/10/2007). Inclut le compilateur CL “Proxy”, l'utilitaire de contrôle résidant dans le plateau STLTask compatible avec les plates-formes multiples (capture d'écran) et la prise en charge du retour à la ligne des noms de types longs (voir la section gcc ci-dessous). La démo fonctionne: VC6 VC7 + noms de types longs. Prend en charge les environnements IDE et de ligne de commande, conjointement avec l'une ou toutes les bibliothèques C ++ suivantes:
MSVC natif 6
MSVC 7.x, 8.x, 9.x natif (le déchiffrement basé sur l'IDE dans VS2005 / 2008 fonctionne maintenant. Voir README-VC.txt)
STLport 4.x
Dinkum 3.08
Bibliothèque Dinkum Unabridged
gcc 2.9x / 3.x / 4.x (testé sous MinGW jusqu'à 4.1.1 et sous TDM gcc 4.2.2) Pour Windows: gstlfilt.zip (409K, mis à jour le 16/06/2008). Pour Unix, Linux, etc.: gstlfilt.tar (180K, mise à jour le 2/3/2008). Démo Run. Prend en charge l’habillage intelligent de noms de types très longs (tels que ceux apparaissant dans les applications de métaprogrammation de modèles) avec un ensemble de règles personnalisables suggérées par David Abrahams (Demo). La distribution gcc Decryptor basée sur Windows inclut désormais un compilateur Proxy c ++ (assure la compatibilité Dev-C ++ et compense également le manque de redirection stderr de l'invite de commande Win9X) et un utilitaire STLTask compatible avec plusieurs plates-formes. [Pour une jolie distribution sous Windows de MinGW gcc 3.x auto-installable, cliquez ici et téléchargez le programme d’installation automatique (nommé MinGW-x.x.x-x.exe dans la section Current / MinGW). Vous voudrez peut-être aussi lire ces notes si vous utilisez des conteneurs étendus (basés sur le hachage et slist)].
Comeau C ++: Pour Windows: comofilt.zip (35 Ko, mise à jour le 28/11/2003). Pour Unix, Linux, etc.: comofilt.tar (110K, mise à jour le 28/11/2003). Démo Run. Comeau Decryptor prend désormais en charge les bibliothèques libcomo et Dinkum. Un grand merci à Greg Comeau pour avoir intégré à son compilateur une prise en charge de STLFilt par ligne de commande intrinsèque, ainsi que pour son soutien assidu à tous les aspects de C ++ C ++ de Comeau, sans commune mesure avec le prix de vente microscopique de ce package!
EDG C ++ “Démo” Front End: Pour Windows: edgfilt.zip (32K, mise à jour le 25/11/2003). Pour Unix, Linux, etc.: edgfilt.tar (110K, mise à jour le 25/11/2003). Si vous utilisez Comeau ou Intel C ++, utilisez l’une de ces distributions spécifiques à la plate-forme ci-dessus. Cette version du compilateur de démonstration EDG a été testée uniquement avec la bibliothèque Dinkum.
Metrowerks CodeWarrior Pro 7/8: Pour Windows: cwfilt.zip (29 Ko, mise à jour le 24/11/2003). Pour OS X, Unix, Linux, etc.: cwfilt.tar (100K, mise à jour le 24/11/2003). Démo Run.
Digital Mars C ++: Prise en charge des outils de ligne de commande (jusqu'à présent, uniquement avec STLport): Pour Windows: dmcfilt.zip (31 Ko, mise à jour le 20/03/2004). Démo Run. Pour Unix / Linux, etc.: dmcfilt.tar (100K, mise à jour le 20/03/2004).
Vous trouverez ci-dessous des informations sur la version spécifique à un composant. Cliquez sur un numéro de version pour afficher le journal des modifications chronologiques inversées du composant associé:

STLFilt in Print

Un article du journal des utilisateurs C / C ++ de Leor Zolman, Un décrypteur de message d'erreur STL pour Visual C ++, apparaît dans le numéro de juillet 2001. Il est disponible pour la visualisation en ligne.

Dans leur livre C ++ Template Metaprogramming, David Abrahams et Aleksey Gurtovoy décrivent l'utilisation de STLFilt pour aider à la mise en forme et à la réorganisation des erreurs de métaprogrammation. Voir la section 8.2 (“Utilisation des outils pour l’analyse de diagnostic”), pages 156-158.

Bruce Eckel et Chuck Allison mentionnent STLFilt à la page 320 de Penser en C ++, volume deux: Programmation pratique

Nicolai Josuttis et Daveed Vandevoorde citent STLFilt dans la section 6.6.1 de leur livre C ++ Templates (2e impression et plus).

Scott Meyers mentionne STLFilt dans l'article n ° 49 de Effective STL. Remarque: la page de téléchargement officielle des archives du code source de Effective STL se trouve ici.

Donner et obtenir de l'aide

STLFilt est fourni en tant que logiciel libre open source dans l’intérêt de promouvoir l’apprentissage et l’utilisation du C ++. Si vous trouvez ce logiciel utile et souhaitez un moyen de renvoyer la faveur autrement que par des moyens financiers, veuillez noter que: l'auteur de STLFilt, Leor Zolman, propose une formation pratique sur site en langage C / C ++, Perl, Unix / Linux. et script Korn Shell. Faites connaître les offres de cours de BD Software aux personnes de votre département de formation informatique.

Un grand merci!” à Bjarne Stroustrup, Comeau Computing, Dinkumware et Metrowerks pour avoir aidé à faire passer le message via leurs sites Web et tous les autres participants.

STLFilt est un logiciel gratuit: open source, totalement gratuit, sans engagement de votre part … si vous trouvez le logiciel utile, veuillez cependant informer quelqu'un de la formation en C ++ sur site de BD Software.

Le langage de programmation le plus mal compris au monde est devenu le langage de programmation le plus populaire au monde

Jean Sammet a écrit Computer Languages: History and Fundamentals en 1969. Il s'agissait d'une enquête sur 120 langages de programmation, dont certains très détaillés. Le livre de Sammet faisait la chronique de langages conçus avant la révolution de la programmation structurée et le développement ultérieur de l'orientation objet. La couverture du livre comportait une image de la tour de Babel. La plupart des briques de la structure de la tour portent les noms de langages de programmation.

Ceci, bien sûr, fait référence à Genèse [11: 1-9], dans laquelle un excellent talent en ingénierie a été appliqué à la tâche de construire une ville et une tour permettant d'unifier le monde.

Mais l'Éternel descendit pour voir la ville et la tour que les fils de l'homme avaient bâties. Et l'Eternel dit: “En effet, le peuple ne fait qu'un et tous parlent une seule langue. C'est ce qu'ils commencent à faire. maintenant, rien de ce qu'ils proposent de faire ne leur sera caché. Venez, laissez-nous descendre et confondez leur langue, afin qu’ils ne se comprennent pas mutuellement. »Et l’Éternel les dispersa de là-bas à la face de toute la terre et ils cessèrent de bâtir la ville. C'est pourquoi son nom s'appelle Babel, car c'est là que l'Éternel a confondu le langage de toute la terre. et de là l'Eternel les dispersa sur toute la surface de la terre.

Parfois, cela est lu comme un avertissement contre l'hubris. Parfois, ceci est lu comme une histoire juste expliquant pourquoi les gens parlent tant de langues: Le Seigneur créa le Problème d'I18N pour empêcher l'humanité d'atteindre son potentiel. Mais je pense que son interprétation la plus fidèle est une métaphore de la conception de langage de programmation. Le principal problème de la programmation est la gestion de la complexité. Si un langage ne nous aide pas à gérer des systèmes très complexes face aux exigences changeantes, il en résulte une confusion et un échec.

Pourquoi y a-t-il tant de langages de programmation? Au-delà de l'ensemble Sammet, de nombreux nouveaux dialectes et langues ont été développés au cours des 40 dernières années. Nous programmons à un niveau élevé depuis très longtemps. Ne devrions-nous pas avoir convergé sur la bonne façon de le faire maintenant? La conception et l’adoption d’un langage unique et parfait permettraient d’obtenir des gains d’efficacité évidents. Nous pourrions concentrer nos ressources plus efficacement sur la formation et le développement d'outils. Pourquoi n'avons-nous pas fait cela?

Nous avons essayé. Il y a eu plusieurs tentatives pour construire des langages universels massifs. Ils ont tous échoué. Au fur et à mesure que le design d'un langage grandit et augmente son applicabilité, il devient de plus en plus complexe. Les concepteurs qui rendent leur langage trop complexe brouilleront la langue, dit le Seigneur.

Nous voyons donc un grand nombre de langues plus spécialisées. Un langage spécialisé sera très efficace pour certaines tâches. Et ça suffit. Pour les personnes qui doivent accomplir ces tâches, avoir le bon langage peut être une bonne aubaine.

Un langage de programmation bricole un modèle de calcul avec une sorte de syntaxe expressive. La plupart des langues auront un ensemble de valeurs utiles telles que des nombres et des textes (qui, étrangement, des chaînes d'appel), et des opérations qui muent et synthétisent des valeurs et une forme de variation ou de répétition, ainsi qu'un moyen d'encapsuler les opérations en idiomes plus pratiques . Les variations possibles sont infinies, tout comme les variations possibles dans la préparation d’un bon repas ou d’une œuvre musicale. L'art de la conception linguistique consiste à savoir ce qu'il faut laisser de côté. Les caractéristiques d'une bonne langue fonctionnent ensemble harmonieusement. Un bon langage nous aide à mieux comprendre un problème et à trouver la meilleure expression de sa solution.

Un bon langage est composé d'un ensemble limité de fonctionnalités. Mais il y a peu d'accord sur les fonctionnalités qui conviennent le mieux. Les programmeurs peuvent se disputer sans fin sur les fonctionnalités et sur la question de savoir si elles améliorent une langue plutôt qu'une autre. Cela ne signifie pas que les fonctionnalités importent peu. Ils comptent beaucoup. Nous ne comprenons pas encore à quel point ils comptent.

Le design linguistique a plus à voir avec la mode qu'avec la technologie. Il peut sembler étrange que la mode soit un facteur important dans le plus nerd des arts, mais c'est vrai. Un langage dont la syntaxe est radicalement différente, par exemple, ne peut espérer être adopté à grande échelle, quel que soit le brio de sa conception. Cela tend à limiter le rythme d'évolution des langues.

Comme la musique et la nourriture, un langage de programmation peut être un produit de son temps. Le problème profond de la conception linguistique n’est pas technologique, mais psychologique. Un langage de programmation devrait nous doter de structures nous permettant de raisonner plus efficacement.

Les langages de programmation sont comme des chats. Il est plus facile de trouver un nouveau chat que de réparer un vieux chat. La plupart des langues qui ont réussi sont finalement remplacées par des parvenues. Les langues remodelées correspondent rarement à la gloire de l'original. Fortran était autrefois le roi des langues. Il a été révisé à plusieurs reprises au fil des ans, mais les dialectes modernisés ont fait l'expérience d'une fraction du prestige de Fortran IV. De même, Pascal était un langage de programmation structuré populaire, mais aucun des dialectes orientés objet n'avait jamais approché la gloire de Pascal. Au lieu de cela, les langues ont tendance à être remplacées.

Les langues spécialisées sont amusantes à créer, ce qui explique en partie pourquoi elles sont si nombreuses. Si une langue ne devient pas trop grande, elle peut être gérée par un seul concepteur. La plupart des langues peuvent être identifiées avec un seul concepteur. Pascal: Wirth. C: Ritchie. C ++: Stroustrup. Java: Gosling. C #: Hejlsberg. Rebol: Sassenrath. Python: van Rossum. PHP: Lerdorf. Perl: mur. Ruby: Matsumoto. Lua: Ierusalimschy. E: Miller. JavaScript: Eich.

La plupart des langues meurent dans l'obscurité. Seuls quelques-uns sont capables de créer une suite au-delà d'un projet ou d'une entreprise. Et seul un très petit nombre de langues devient important.

Une langue devient importante de deux manières. Le premier est une source ou un terrain d’essai pour des idées importantes. Cela inclut des langues comme Smalltalk et Scheme. Ces langues ne sont pas largement utilisées, mais sont généralement reconnues comme brillantes, mais démodées. Ils ont une influence puissante sur les concepteurs de langage.

La deuxième façon dont une langue devient importante est de devenir populaire.

Un programmeur doit prendre en compte de nombreux éléments lors de la sélection d'un langage de programme, sauf si ce programmeur écrit pour des navigateurs Web où le seul choix est actuellement JavaScript.

JavaScript est un langage étonnant, au pire sens du terme. Sa nature étonnante a conduit à une très mauvaise réputation. JavaScript est également associé à The DOM, une API épouvantable. Il y a beaucoup de confusion quant à l'endroit où JavaScript se termine et où commence le DOM. Il y a beaucoup de discussions sur l'amélioration de JavaScript, mais cela en soi ne contribuerait guère à améliorer la vie des développeurs Web. Le langage est surchargé de fonctionnalités, y compris de nombreuses fonctionnalités qui interagissent mal ou qui ont été mal conçues. C'est un langage qui a, comme dirait l'empereur Joseph, trop de notes.

Comment un langage présentant des lacunes aussi évidentes est-il devenu le langage de programmation unique du Web? Brendan Eich a convaincu son patron aux cheveux pointus chez Netscape que le navigateur Navigator devrait avoir son propre langage de script et que seul un nouveau langage suffirait, un nouveau langage conçu et implémenté avec une grande rapidité, et qu'aucun langage existant ne devrait être pris en compte pour cela. rôle. L’équipe Internet Explorer de Microsoft souhaitant conquérir la part de marché de Netscape, elle a donc soigneusement procédé au reverse engineering de la langue de Netscape, d’énormes verrues poilues, etc. Les autres fabricants de navigateurs ont suivi l'exemple de Microsoft. Il n'existe pas de norme indiquant qu'un navigateur Web doit implémenter JavaScript. JavaScript est le seul langage implémenté dans tous les navigateurs Web populaires. Il n'y a pas eu d'examen attentif de la langue ou de son domaine problématique. Il n'y a pas eu d'examen de sa pertinence ni de la solidité de sa conception. Il a été giflé à Netscape, puis copié ailleurs. Compte tenu du processus qui a créé JavaScript et en a fait un standard de facto, nous méritons quelque chose de bien pire.

Mais malgré les étonnantes lacunes de JavaScript, au fond de lui, il a obtenu quelque chose de très juste. Lorsque vous élevez le bazar, il existe un langage de programmation puissant et expressif. Ce langage est bien utilisé dans de nombreuses bibliothèques Ajax pour gérer et étendre le DOM, produisant ainsi une plate-forme d’applications pour applications interactives livrées sous forme de pages Web. Ajax est devenu populaire parce que JavaScript fonctionne. Cela fonctionne étonnamment bien.

JavaScript était le langage de programmation le plus mal compris du monde. Ses défauts évidents, son modèle de programmation démodé, son positionnement incorrect lors de son introduction et son nom ridicule l'ont fait rejeter comme indigne par la plupart des programmeurs avertis. Mais Ajax a donné à JavaScript une seconde chance.

Parce que JavaScript est la langue du navigateur Web, et que le navigateur Web est devenu le système dominant de diffusion d'applications, et que JavaScript n'est pas si mauvais, JavaScript est devenu le langage de programmation le plus populaire au monde. Sa popularité augmente. Il est maintenant intégré dans d'autres applications et contextes. JavaScript est devenu important.

Votre rôle en tant qu’ami

Si vous travaillez dans une équipe agile, vous avez peut-être été impliqué dans trois discussions amigos, également connues plus sournoisement sous le nom de coup d'envoi d'une histoire.

L’idée de base de trois discussions amigos est d’apporter des perspectives commerciales, de développement et de test lorsqu’il faut décider quand une fonctionnalité ou une histoire est «finie», et comment vous le saurez plus facilement.

Surtout, ces discussions fonctionnent mieux lorsqu'elles se tiennent juste à temps – juste avant que le travail ne commence sur une carte, de sorte que vous ne vous concentriez que sur le travail nécessaire pour réussir.

Vous savez probablement ce qui peut arriver si vous n’avez pas ce genre de discussion à l’avance.

Un représentant de l’entreprise peut rédiger des critères d’acceptation très normatifs fixant la solution technique.

Un développeur peut prélever une carte et se lancer sans consulter le représentant commercial ou un testeur. Le travail prend du retard car on ne sait pas vraiment quelle est son étendue.

Un testeur peut commencer à tester lorsque le travail de développement est terminé et s’aperçoit qu’il ne peut pas tester ce dont il a besoin, il doit alors demander l’aide du développeur, qui découvre alors qu’il est nécessaire de modifier son implémentation pour la rendre plus testable.

Et ce n’est que la pointe de l’iceberg. Malheureusement, de nombreuses équipes rencontrent ces problèmes et ne cessent de s’en sortir.

L’une de mes armes secrètes en tant que développeur principal a été de faire en sorte que trois discussions amigos aient lieu pour chaque petit travail, au début. C’est facile à faire, car l’impact sur la qualité des sorties et le bonheur des équipes est immédiat.

En tant que développeur front-end principal, trois discussions amigos sont une excellente occasion d’avoir un impact et une influence importants.

Vous devez faciliter la collaboration entre les entreprises, l'UX, la conception et les problèmes liés au système. Vous devez aider à traduire les histoires d'utilisateurs en solutions techniques créatives en utilisant votre compréhension du Web. Vous devez équilibrer la livraison d'une user story avec la testabilité, la facilité d'utilisation, la maintenabilité, les performances et tous les autres critères non fonctionnels.

Même si vous ne faites pas le travail directement vous-même, vous pouvez aider à définir l’orientation générale du produit par incréments. D'autres développeurs ont besoin d'un leadership technique et le recherchent, et trois discussions amigos constituent un excellent endroit pour le fournir sans microgestion ni trop normatif.

Plus important encore, rappelez-vous la partie amigos. Ces discussions sont censées être menées en tant que partenaires égaux, avec une certaine tension naturelle et saine entre différentes perspectives.

Avez-vous déjà quelque chose comme une discussion de lancement pour trois amigos pour tout le travail que vous faites? Quels avantages ou inconvénients avez-vous rencontrés?

Degradazione graduale

“Degrado progressivo” è un principio importante del web design. Ciò significa che quando si incorporano funzionalità progettate per sfruttare le funzionalità più recenti e di maggior successo dei browser più recenti, si deve fare in modo che i browser più vecchi, e browser consentendo agli utenti di disabilitare caratteristiche speciali, può passare a un metodo. questo ancora consente l'accesso ai contenuti di base del sito, ma potrebbe non essere elegante nell'aspetto.

Quasi tutte le nuove funzionalità aggiunte al web sono stati creati per consentire a un degrado progressivo, iniziando con l'aggiunta del tag <IMG> per aggiungere immagini a un sito web, mentre l'ex di testo, che contiene un attributo ALT per fornire un'alternativa testuale per i browser non grafici.

NOTA: Sarebbe stato ancora più grazioso se il tag IMG fosse stato definito come un elemento contenitore, con il contenuto alternativo tra <IMG> e </ IMG>. Ciò avrebbe causato l'utilizzo automatico del contenuto alternativo nei browser più vecchi che non includevano IMG, pur consentendo a questo contenuto di includere tag di markup, cosa che non è possibile nell'attributo ALT. Ma ora è acqua sotto il ponte.

Le versioni più recenti come <APPLET> e <OBJECT> consentono di fornire un degrado graduale utilizzando contenuti alternativi tra i tag di apertura e chiusura dell'elemento. Nulla tra <APPLET> e </ APPLET> (diversi dai parametri di applet stessa) saranno ignorati da un browser che supporti Java con Java abilitato, ma saranno utilizzati al posto del applet un browser che non capisce. Java o disabilitato. Ciò consente allo sviluppatore del sito di fornire immagini statiche, testo o collegamenti alternativi per sostituire le informazioni presentate come applet agli utenti che la supportano.

Ecco un esempio di applet codificata per il progressivo degrado:

<APPLET CODE = “WaveEffect” align = center border = 0 codebase = “http://www.example.net/applets/” width = 200 height = 200 “>
<PARAM NAME = image VALUE = “enternow.gif”>
<PARAM NAME = HREF VALUE = “home.html”>
<A HREF=”home.html”> <IMG SRC = “enternow.gif” width = 200 height = 200 alt = “Entrez maintenant sur mon site.”> </A>
</ APPLET>

Un utente che supporti Java vedere il risultato di un applet “WaveEffect”, che probabilmente mostrerà un grafico con effetti delle onde animati e di fornire un modo per accedere all'URL fornito nel relativo parametro “href”. Ma un utente non-Java non avrebbe modo di vedere ciò che avrebbe dovuto essere lì o avanzare sul sito se fosse l'unica tecnica di navigazione ad eccezione del contenuto alternativo. Questo contenuto consiste in un normale tag IMG statico che presenta lo stesso grafico in modo non animato, con un collegamento ipertestuale alla stessa pagina a cui l'applet lascerebbe andare l'utente. E, nel caso di browser di testo, il testo ALT con l'immagine offre un altro livello di progressivo degrado.

In alcuni casi, quando esistono diversi modi per ottenere lo stesso effetto e l'insieme di browser che supportano l'uno o l'altro è leggermente diverso, è possibile ottenere la massima compatibilità disponendo di più livelli di strutture nidificate che possono essere degradato con eleganza. come un APPLET in un EMBED in un OGGETTO.

Esistono anche alcuni tag speciali che consentono di includere il contenuto utilizzato solo quando le funzionalità specifiche non sono disponibili o sono disabilitate. Ad esempio, gli oggetti NOSCRIPT appaiono solo quando JavaScript non è supportato o disabilitato. Questo può essere utile per fornire una navigazione alternativa nei siti in cui i controlli principali sono implementati in JavaScript. Allo stesso modo, gli elementi NOEMBED vengono utilizzati solo quando EMBED non è supportato.

Ci vuole solo un po ‘più di lavoro per farlo correttamente, e aggiunge molto all'accessibilità, flessibilità e indicizzazione dei motori di ricerca delle tue pagine.

Popup JavaScript con grazia degradante
Un effetto comune utilizzato su molte pagine è un documento collegato che appare come una piccola finestra pop-up creata da JavaScript. Se si utilizza questo effetto, dovrebbe essere moderato, se non del tutto, perché può essere fastidioso per molti utenti. Tuttavia, ci sono casi in cui ciò è utile, ad esempio per far apparire dei documenti di riferimento che aiutano qualcuno a compilare un modulo web, senza dover lasciare la pagina con il modulo (e magari non essere in grado di restituire se scade perdendo i dati che hanno inserito parzialmente).

Gli sviluppatori spesso lo fanno con un URL javascript:. Questo lascia molto a desiderare in termini di degrado progressivo, perché i browser non-JavaScript non sanno cosa fare con un tale collegamento e non fare nulla o non genera un errore. Inoltre, javascript: gli URL non sono realmente conformi agli standard. Non conosco alcuna specifica formale per questa build e spesso contiene caratteri che sono illegali da includere (non sfuggiti) negli URL a seconda delle specifiche (come gli spazi).

Fortunatamente, c'è un modo migliore. Invece <A HREF=”javascript:YourPopupFunction(‘somefile.html')”>, utilizzare <A HREF=”somefile.html” onClick=”YourPopupFunction(‘somefile.html'); tornare false”>. (Suppongo si è impostata la funzione di YourPopupFunction JavaScript da qualche parte nel documento.) L'attributo onclick contiene il codice che viene eseguito (sui browser supportati) quando il link viene cliccato, e il ritorno finale risultati falsi nella interrompere il browser dopo questa operazione (invece di seguire il normale collegamento ipertestuale). Quindi, ha esattamente lo stesso effetto del link javascript: (Si noti che il codice in onClick non inizia con “javascript:”. Perché non è nella forma di un URL) Ma per i browser non JavaScript, onclick viene ignorato e il monitoraggio di collegamento normale. Pertanto, tutti gli utenti possono vedere il documento a cui si sta collegando.

NOTA: Dopo aver scritto quanto sopra, ho scoperto che alcuni browser più anziani con implementazioni JavaScript prime non supportano il ritorno corretto falso e, infine, creare sia il collegamento di scelta rapida, e la “ordinaria” . È possibile evitare questo utilizzando <a href = target “somefile.html” = “nomeacaso” onclick = “window.open newwin = ( ”, ‘nomeacaso', ‘width = 150, height = 150, ridimensionabile = 1') ; “>, che apre una finestra vuota denominata” qualcosa “e quindi consente al link regolare di puntarlo. I browser diversi da JavaScript aprono semplicemente una nuova finestra regolare denominata “qualcosa” o ignorano la destinazione e aprono la nuova pagina nella finestra originale. Tuttavia, più di recente, ho scoperto che il browser Mozilla, quando è impostato per ignorare le nuove finestre si aprono i tentativi in ​​questo caso si aprirà la finestra pop-up, quindi aprire la destinazione del link nella finestra origine, lasciando la finestra inutilmente aperta. . Quindi, tutto sommato, l'esempio di codice precedente è probabilmente il migliore.

Queste tecniche possono essere utilizzate anche in altri casi in cui si desidera che un collegamento esegua codice JavaScript, ad esempio un collegamento che imita il pulsante “Indietro” del browser con history.back (). Ma pensa attentamente se hai davvero bisogno di usare una funzione del genere. I collegamenti potrebbero rendere più difficile per gli utenti, ad esempio, tornare nella cronologia anziché spostarsi su un'altra pagina come normalmente avviene con i collegamenti.

SUGGERIMENTO: utilizzare sempre un attributo HREF significativo nei tuoi link, e non un attributo “fittizio”, anche se lo scopo principale del collegamento è quello di innescare uno script.

Ovviamente, non utilizzare la tecnica purtroppo diffusa di garantire che i collegamenti ipertestuali sono associati con il valore fittizio HREF “#”; Non so chi ha inventato questo, ma sembra che sia stato implementato in questo modo, in alcuni strumenti di creazione che generano legami con sofisticate JavaScript e imitato in tutti i tipi di siti, anche codificati a mano. Questa è una cattiva idea – come ho mostrato sopra, si dovrebbe dare il riferimento un collegamento ipertestuale qualcosa di significativo che funziona anche se JavaScript è disabilitato – e, inoltre, dal momento che “#” non è non definita come un riferimento URL, viene interpretato da diverse versioni del browser in modo incoerente e può causare un salto nella parte superiore o inferiore della pagina corrente, o aggiungere un riferimento inutili pagina in più alla storia della sessione browser. Almeno se si deve utilizzare un file HREF fittizio, assicuratevi di terminare la stringa di comando JavaScript con “return false” per scoraggiare il browser a seguire il link fittizi.

Rollover Menu degradanti con grazia
Un altro effetto popolare è che un menu grafico rende la navigazione sul “rollover”, quando l'utente sposta il suo mouse sugli elementi, come “light” o il pulsante “inferiore” attualmente evidenziato o visualizzate più informazioni. sulla voce selezionata per aiutare l'utente a decidere se seguire il link.

Ci sono modi “graziosi” e “no grazia” per farlo. Metodi “no gentile” può portare al fallimento completo di navigazione per gli utenti che non supportano (o che hanno disabili) oggetti come Java, JavaScript e Shockwave (a seconda di come viene attuato il rollover) . D'altra parte, un'implementazione “elegante” lascia sito completamente navigabile, anche per i browser “minimo comune denominatore”, mentre l'aggiunta di ulteriori miglioramenti per coloro che li sostengono.

Qui di seguito troverete un codice di esempio per un effetto rollover degradante con grazia. Tuttavia, più che imparare codice specifico, è necessario conoscere l'atteggiamento generale dietro a questa tecnica e di altre tecniche degradanti nello sviluppo Web. Questo è quello di utilizzare una struttura solida e logica con semplici costrutti HTML e ampiamente supportato, quindi aggiungere le opzioni “fischiano”, come optional cura add-on che può essere ignorato dai browser non preso di . L'atteggiamento opposto, che crea siti non accessibili è quello di saltare il punto “del suono, logico, semplice” e realizzare gli effetti desiderati direttamente in un linguaggio avanzato (Java, Shockwave, ecc), che porta a un codice che non contiene neppure un collegamento HTML “normale” che i browser possono seguire senza eseguire “applet”, lo “script” o “in plug-“. Quindi, se gli autori decidono poi devono sostenere i browser “semplice”, finiscono per attaccare una serie di link di testo “alternativo” in navigazione “sofisticato”, che non sarebbe necessario se concepito il sito. un primo modo elegante.

Ecco il codice rollover “grazioso”: (Nota: in questo esempio, le versioni “normali” dei pulsanti di navigazione dovrebbero essere posizionate in item1_reg.gif, item2_reg.gif, ecc., Mentre le versioni “rollover” sono item1_over. gif, ecc. Tutte le immagini devono essere collocate in una sottodirectory denominata gfx / situata sotto la directory in cui si trova la pagina, e tutte le immagini hanno una dimensione di 250 x 50 pixel. Naturalmente è possibile modificare queste informazioni se necessario per il tuo sito.

<html>
<head>
<title>Sample Rollover Page</title>
<script language="JavaScript" type="text/javascript">
<!-- hide this script from non-javascript-enabled browsers
if (document.images) {
item1_reg = new Image(250, 50); item1_reg.src = 'gfx/item1_reg.gif';
item1_over = new Image(250, 50); item1_over.src = 'gfx/item1_over.gif';
item2_reg = new Image(250, 50); item2_reg.src = 'gfx/item2_reg.gif';
item2_over = new Image(250, 50); item2_over.src = 'gfx/item2_over.gif';
item3_reg = new Image(250, 50); item3_reg.src = 'gfx/item3_reg.gif';
item3_over = new Image(250, 50); item3_over.src = 'gfx/item3_over.gif';
item4_reg = new Image(250, 50); item4_reg.src = 'gfx/item4_reg.gif';
item4_over = new Image(250, 50); item4_over.src = 'gfx/item4_over.gif';
}
function rollover(id,name){
if (document.images) {document.images[id].src=eval(name+".src"); }
}
// stop hiding -->
</script>
<META http-equiv="Content-Script-Type" content="text/javascript">
</head>

<body>

<P ALIGN=CENTER>
<a href=”item1/” onmouseout=”rollover(‘item1′,'item1_reg');return false;” onmouseover=”rollover(‘item1′,'item1_over');return false;”><img name=”item1″ src=”gfx/item1_reg.gif” width=”250″ height=”50″ border=”0″ alt=”[Item 1]”></a>
<a href=”item2/” onmouseout=”rollover(‘item2′,'item2_reg');return false;” onmouseover=”rollover(‘item2′,'item2_over');return false;”><img name=”item2″ src=”gfx/item2_reg.gif” width=”250″ height=”50″ border=”0″ alt=”[Item 2]”></a>
<a href=”item3/” onmouseout=”rollover(‘item3′,'item3_reg');return false;” onmouseover=”rollover(‘item3′,'item3_over');return false;”><img name=”item3″ src=”gfx/item3_reg.gif” width=”250″ height=”50″ border=”0″ alt=”[Item 3]”></a>
<a href=”item4/” onmouseout=”rollover(‘item4′,'item4_reg');return false;” onmouseover=”rollover(‘item4′,'item4_over');return false;”><img name=”item4″ src=”gfx/item4_reg.gif” width=”250″ height=”50″ border=”0″ alt=”[Item 4]”></a>
</P>

</body>
</html>

Notare “if (document.images)”, che garantisce che solo i browser che utilizzano versioni JavaScript in grado di gestire le immagini (le prime implementazioni non potrebbero) lo proveranno, evitando così errori. E notare che le immagini di navigazione hanno attributi alt contenenti il ​​testo voce di menu (sostituire “Element 1”, “voce 2”, ecc dai nomi più significativi sulla base di sezioni del sito), in modo da che anche nei browser di testo l'utente può ancora navigare. E sì, lo so, puoi creare effetti al passaggio del mouse ancora più elegantemente usando fogli di stile a cascata, ma questa pagina è piuttosto vecchia. finché non ho riscritto in modo massivo tutto questo sito, conterrà elementi piuttosto obsoleti.

Se si lascia un editor o un programma di utilità di generare “rollover”, assicurarsi che utilizza una tecnica come questa, così come gli attributi del caso ALT nelle immagini (a mano, se necessario, se il programma non ti dà un modo per farlo).

Moduli lato client e lato server
Se si dispone di una forma che è cose utili che utilizzano funzioni JavaScript, è sempre possibile lasciare il degrado con garbo per gli utenti senza JavaScript, se si assicurarsi che sia soggetto ad una forma sul lato server di eseguire le stesse funzioni . ma non così efficiente come può essere fatto dal lato del cliente. Ad esempio, una pagina web in cui l'utente può inserire la quantità di risparmi l'anno e il tasso di interesse o cedere i dividendi attesi, e la quantità di risparmi sui costi delle pensioni possono essere realizzati in JavaScript, questo che consente un rapido calcolo. senza chiedere nulla da un server, ma non funziona affatto per gli utenti con JavaScript disabilitato. Questo può essere facilmente risolto avendo l'azione di invio (in assenza di JavaScript) diretta a uno script del server che esegue gli stessi calcoli. La funzione JavaScript “onsubmit” può terminare con “return false” per impedire l'attivazione dello script del server quando non è in uso.

Se il modulo deve essere inviato a un server, ma si desidera comunque utilizzare le funzioni JavaScript, ad esempio per convalidare o correggere la voce prima che venga inviata, è necessario duplicare gli stessi passaggi di convalida e correzione nel script del server in modo che non vengano riempiti. non saltato se JavaScript non è abilitato o disponibile. Ciò è importante per motivi di sicurezza, tuttavia, poiché un hacker malintenzionato potrebbe creare una versione del modulo che ignora la convalida JavaScript per tentare di immettere dati errati nel programma. Deve essere pronto a filtrare questi elementi. Alcune persone nei newsgroup fanno la domanda sbagliata e dicono “Come forzare il mio modulo a non mostrare o non inviare, per gli utenti il ​​cui JavaScript è disabilitato, perché la mia convalida JavaScript è essenziale per il loro bene operazione? ” Puoi provare a farlo assicurando che il pulsante di invio, o l'intero modulo, sia generato da JavaScript invece del normale HTML, in modo che non venga visualizzato affatto senza uno script sul lato client. Questo può essere facilmente sconfitto da hacker malintenzionati che possono visualizzare la fonte e ricostruire un modulo con un pulsante di invio non JavaScript, ma porre un problema di accessibilità a utenti più normali. È meglio progettare gli script del server in modo che funzionino bene con o senza JavaScript.

False idee
Se ti occupi di discussioni HTML sui newsgroup, probabilmente vedrai qualcuno dire che il “progressivo degrado” significa davvero rendere i siti chiari, noiosi e “il minimo comune denominatore”. È lontano dalla verità. Coloro che dicono di non capire veramente il degrado aggraziato o semplicemente cercano di cacciare i cosiddetti “puristi” piuttosto che discutere razionalmente della creazione del web. In effetti, il progressivo degrado non richiede l'uso di qualcosa di straordinario o bello, o di “scrivere per browser obsoleti”. Devi solo capire la struttura di tutti gli elementi che usi e conoscere e utilizzare correttamente le funzionalità integrate che consentono l'inserimento di contenuti alternativi accessibili agli utenti che non possono o non vogliono usare le fantasie. roba.

Degrado aggraziato vs. miglioramento graduale
I siti di sviluppo Web hanno recentemente discusso la distinzione tra “degrado progressivo” e “miglioramento incrementale”, che sono in realtà concetti abbastanza simili, ma esaminati da diversi punti di vista. Wikipedia ha pubblicato un articolo sul miglioramento progressivo e saggi sull'argomento sono stati pubblicati. La differenza fondamentale è che in “miglioramento progressivo” si inizia con un insieme di contenuti annotati semplice, logico e compatibile, quindi si sovrappongono funzionalità migliorate per i browser moderni, mentre inizia il “degrado progressivo”. da una completa funzionalità. , sito avanzato, un sacco di campane e fischietti, e assicurarsi che abbia anche contenuti a cui è possibile accedere se le funzionalità sofisticate non funzionano per un particolare utente. Secondo questo standard, lo stato mentale che ho sostenuto corrisponde più all'educazione fisica che a GD, anche se ho usato la terminologia GD perché l'altro termine non è stato inventato in quel momento. tempo. In ogni caso, se sono abilmente, pensosamente e ponderate, entrambe le tecniche dovrebbero portare a siti molto simili.

Sala della vergogna
Migliora il tuo sito consultando altri siti che mostrano, ad esempio, cosa non fare!

NOTA: l'inclusione di un sito nei miei collegamenti “Hall of Shame” non deve essere interpretata come un attacco personale al creatore del sito, che potrebbe essere una persona davvero eccezionale, o addirittura come un attacco al sito Web collegato il suo intero , che può essere una fonte di informazione e / o intrattenimento davvero grandiosa. Piuttosto, enfatizza le caratteristiche specifiche (intenzionali o accidentali) dei siti collegati che pongono problemi che potrebbero essere evitati attraverso un design migliore. Se trovi che uno dei tuoi siti è collegato qui, non essere offeso; migliorare il tuo sito in modo che devo rimuovere il link!

La Leicestershire & Rutland Chess Association ha implementato il suo sito in modo tale che la pagina principale sia sepolta più in profondità rispetto all'indice predefinito, che reindirizza alla posizione effettiva della homepage. Precedentemente, hanno usato un meta reindirizzamento e un link HTML di fallback, ma dopo una riprogettazione (perché i rimpasti quasi sempre degradano l'accessibilità rispetto a quello che è successo prima?), Usano un indice predefinito costituito da solo un reindirizzamento JavaScript, in modo che gli utenti non Javascript possano ricevere solo una pagina vuota.
Hira aveva una versione “Flash” e “Non Flash”, ma la versione “Non Flash” aveva ancora Flash! Ha appena saltato una “intro” di pagina in più che contiene ancora più Flash. Ora, non rende questo idiota, ma ha ancora un'introduzione Flash in cui l'opzione per ignorarlo è incorporato nella stessa Flash, il che significa che i browser che non supportano Flash avranno semplicemente una pagina vuota senza alcun modo di andare avanti. il sito. L'intro suona continuamente un tema musicale fastidioso, senza alcun modo di fermarlo.

Refraction

Erhus1n 1690, Ole Rømer construisit son premier instrument de transit chez lui, à St. Kannikestræde. La raison pour laquelle il ne l'a pas placé dans l'Observatoire de la Tour Ronde est qu'il tremblait trop, ex. quand une voiture passait dans la rue, il était impossible de localiser les étoiles.
Dans les dix années suivantes, il utilisa cet instrument et il fut amélioré. Cependant, certaines erreurs dans sa construction ont exigé une nouvelle construction; En dehors de quelques distorsions, la température de l’influen sur son arc gradué posait problème. De plus, ses nombreuses tâches non astronomiques à Copenhague l'ont empêché d'observer les étoiles.
À l'été de 1704, il construisit un petit observatoire près de la maison de campagne de son beau-père, Erasmus Bartholin, app. A 17 km de Copenhague, près du lieu où se trouve aujourd'hui le musée Ole Rømer. Les troubles ont été corrigés et son problème de température a été résolu en utilisant un cercle complet en arc gradué. Cela se dilaterait radialement pour que les graduations ne s'éloignent pas de la position appropriée lorsque la température a changé. C'était le cercle méridien.
Il s’occupa des distorsions restantes dans son cahier1), et il ne restait plus que toutes les mesures terrestres du grand problème de la position de l’étoile, la réfraction.
Autrefois, différentes tables de réfraction avaient été utilisées, mais vers 1700, une nouvelle façon de penser apparut, dans laquelle un modèle ou une théorie de la réfraction devait être élaboré. Le modèle physique qu'il a utilisé se trouve dans “Adversaria” 2) et est:
refrakLa vraie distance zénithale est z ’+ v.
La distance zénithale observée est z.
Rj est le rayon de la terre
h est l'épaisseur de l'atmosphère.refrak
La loi de la réfraction: sin z ’= n * sin z1
Ici, n est l'indice de réfraction de l'air.
La relation sinusoïdale utilisée dans le triangle OAB donne:
sin (180-z) / (Rj + h) = sin z1 / Rj
sin z1 = (Rj / (Rj + h)) * sin z
De cela, nous obtenons z1
z ’se trouve dans la loi de la réfraction
v = z-z1: distance zénithale vraie = z ’+ z-z1
Réfraction = distance zénithale vraie-z = z’-z1

Une théorie sur la densité décroissante et donc la réfraction décroissante lorsque vous vous déplacez dans l'atmosphère n'était pas connue. Il pensait qu'il y avait une ligne de démarcation nette entre l'air et l'éther (ce que l'on appelle aujourd'hui l'espace vide).
Il y a deux variables dans les calculs, l'indice de réfraction pour l'air et l'épaisseur relative de l'atmosphère (comparée au rayon de la terre).
Il a essayé avec différents index et différentes épaisseurs de trouver une combinaison conforme à ses observations. Cela a conduit à une mesure de l'épaisseur de l'atmosphère, qui est comparée à une autre façon de mesurer la même chose, avec un baromètre3). Il a également écrit dans une remarque4) que la réfraction est supérieure le matin, mais cela ne lui a pas donné l’idée que la réfraction dépend de la température.

Les calculs
Celles-ci commencent par une référence aux calculs effectués à Paris. Ici, ils utilisaient 1 000 285 comme indice de réfraction de l’air et 6/10000 comme épaisseur relative de l’atmosphère (par rapport au rayon de la Terre). Ensuite, à partir de la réfraction observée, il a trouvé que l’indice est 1,00027; cet indice est utilisé pour calculer la réfraction d'une étoile à une latitude observée de 1 ° sous deux épaisseurs différentes (6/10000 et 18/10000). Maintenant, en comparant avec les observations de Cassini et de La’Hire, il a constaté que l’épaisseur devait être proche de 6/10000. En comparant avec les observations d'une étoile à 32 °, il a constaté que les valeurs avec lesquelles on pourrait le mieux comparer les observations devaient utiliser un indice de 1 00032 et une épaisseur de 7/10000.
Il a ensuite essayé avec une épaisseur de 9/10000 et le même indice. Le résultat est comparé à une observation de la’Hire. Des calculs avec différentes épaisseurs ont suivi et il a trouvé que 18/10000 était trop, peut-être pensait-il à des lectures barométriques.
Il a ensuite calculé un tableau pour les étoiles aux latitudes 0 °, 4 ° et 20 ° et en a conclu qu’au-delà de 20 ° l’épaisseur de l’atmosphère n’avait aucune influence. Il a ensuite comparé l’épaisseur 6/10000 à des lectures barométriques et a constaté qu’elles concordaient. En outre, il a écrit une remarque selon laquelle l’éther situé entre l’atmosphère et la lune devait être léger (poids de l’air: éther = 200 000: 1) et présenter une très faible réfraction.
Il a terminé ses calculs sur la réfraction avec une recette pour calculer la réfraction. Nous pouvons comparer la méthode de Rømer avec les valeurs moyennes de réfraction observées de F. W. Bessel. Les valeurs de Rømers sont calculées avec 1 000276 comme indice de réfraction et 6/10000 comme épaisseur relative de l’atmosphère, c’est les valeurs qu’il a finalement préférées. Les valeurs de Bessel sont tirées de «Norton Star Atlas», 17 éd., P. 35; et ils sont pour 10 ° C et 752 mmHg.
Latitude 90 -z 0 ° 1 ° 5 ° 10 ° 20 ° 30 ° 40 ° 50 ° 80 °
Rømer 31’37 ”27’16” 10’15 ”5’18” 2’36 ”1’39” 1’08 ”0’48” 0’10 ”
Bessel 34’54 ”24’25” 9’47 ”5’16” 2’37 ”1’40” 1’09 ”0’48” 0’10 ”

Original : rundetaarn.dk

Caféine et SMSN (Syndrome de mort subite du nourrisson)

Chers amis,

L'article suivant a fait les nouvelles ce matin. Nous avons reçu de nombreux courriels demandant plus d’informations. Le public a assisté à une montagne russe d’informations, résultat d’une explosion de rapports médicaux, annonçant chacun une «avancée décisive dans la recherche sur les PEID». Nous devons aider les gens à distinguer le mythe des faits et le facteur de risque de la cause.

Nous recueillons actuellement plus d'informations sur cette recherche spécifique et vous tiendrons au courant.

Veuillez garder ceci à l'esprit:

– En ce qui concerne la couverture médiatique des PEID, nous éprouvons souvent un sentiment de frustration face aux titres trompeurs, aux annonces de soi-disant percées et aux déclarations sorties de leur contexte.

– Veuillez lire l'article sur le rôle des “médias de masse” dans l'éducation des PEID à l'adresse <http://sids-network.org/media.htm>.

– Cet article ne prétend pas que la caféine cause le SMSN.

– La déclaration de l'article selon laquelle “… l'étude néo-zélandaise est la première à suggérer un lien avec les PEID” semble être fausse. Une recherche “caféine ET sids” du service MEDLINE de la National Library of Medicine à l’adresse <http://www.nlm.nih.gov/> révèle une entrée du début de 1997 suggérant un lien similaire (Nurse Pract, 1997 fév. 22 (2). ): 66-67 “Mélatonine: battage médiatique ou percée thérapeutique?” De Kendler BS).


Forte consommation de caféine pendant la grossesse et syndrome de mort subite du nourrisson

R P K Ford, a P J Schluter, a E A Mitchell, b B J Taylor, c R Scragg, d A W Stewart, e Groupe d’étude de la mort du cotonnier néo-zélandais

une unité de pédiatrie communautaire, Christchurch, b département de pédiatrie, université d’Auckland, c département de pédiatrie, université d’Otago, d département d’épidémiologie, université d’Auckland, département de biostatistique, université d’Auckland

Correspondance à: Dr R P K Ford, Unité de pédiatrie communautaire, Services communautaires à l’enfance et à la famille, PO Box 25-265, Christchurch, Nouvelle-Zélande.

OBJECTIFS: Examiner le lien entre la consommation de caféine de la mère pendant la grossesse et le risque de syndrome de mort subite du nourrisson (SMSN).

MÉTHODES: Une étude cas-contrôle nationale portant sur les parents de 393 victimes du SMSN et sur les parents de 1592 nourrissons témoins. La consommation de caféine aux premier et troisième trimestres a été estimée par questionnaire. La consommation de caféine lourde a été définie à 400 mg / jour ou plus (équivalant à quatre tasses de café ou plus par jour).

RÉSULTATS: Les nourrissons dont les mères avaient consommé beaucoup de caféine tout au long de leur grossesse présentaient un risque significativement accru de SMSN (odds ratio de 1,65; intervalle de confiance à 95% de 1,15 à 2,35) après ajustement en fonction des facteurs de confusion probables.

CONCLUSION: La consommation de caféine a été associée à des effets néfastes sur le fœtus et maintenant sur le SMSN. Réduire la consommation excessive de caféine pendant la grossesse pourrait être un autre moyen de réduire le risque de SMSN. Cela nécessite une confirmation par d'autres.

Messages clé

  • Une forte consommation de caféine chez la mère pendant la grossesse était significativement associée à un risque relatif accru de SMSN (OR 1,65) après ajustement pour tenir compte des facteurs de confusion.
  • Une consommation de caféine de 400 mg / jour (équivalente à quatre tasses de café ou plus par jour) était définie comme étant lourde
  • La consommation de caféine est un comportement modifiable
  • La réduction de la consommation excessive de caféine pendant la grossesse peut réduire le risque de SMSN.

Nous recueillons actuellement plus d'informations sur cette recherche spécifique et vous tiendrons au courant.

Merci!

Chuck Mihalko

Directeur exécutif

Réseau des PEID

Date: mercredi 28 janvier 1998

Cela semble préliminaire mais plausible. Cependant, je pense qu'il est très prématuré pour eux de suggérer que cet effet est dû à un émoussement de la motivation respiratoire, etc. Les rapports sur les effets de la caféine sur le contrôle respiratoire sont contradictoires. Il a été rapporté que la caféine diminue la réponse ventilatoire à l'hypoxie (aiguë). D'autre part, il a également été signalé que la caféine abolit chez la porcelaine le déclin tardif de la VE (phase 2) de la réponse dite «biphasique» de la VE à l'hypoxie. Quelqu'un a signalé que les effets excitateurs de la caféine sur l'EV étaient causés par les corps carotides des agneaux … quelqu'un d'autre a dit que la caféine n'avait aucun effet sur les pertes carotidiennes chez le chat, etc. La littérature est un peu la pagaille. Je ne suis au courant d'aucun article traitant spécifiquement des effets de l'exposition prénatale à la caféine sur le développement postnatal de la sensibilité à l'O2 (ou au CO2 ou à tout autre aspect de la maturation du contrôle respiratoire).

D'autres effets de la caféine pendant la grossesse semblent compliqués et certains effets ne sont significatifs que chez les mères qui fument, par exemple. Il peut y avoir des interactions compliquées. La consommation de caféine pendant la grossesse peut affecter * le sommeil * de la progéniture et avoir d'autres effets neurologiques qui pourraient être pertinents pour le SMSN

Par contre, il est vrai que réduire la consommation de caféine est un comportement relativement facile à modifier.

Date: mercredi 28 janvier 1998


C'est une très bonne étude préliminaire, mais la première à suggérer que le café lourd (> 4 tasses / jour) est associée à un risque accru de SMSN. Les auteurs, y compris Ed Mitchell, un épidémiologiste des PEID très respecté et compétent, soulignent que la confirmation de leurs résultats est nécessaire. Leurs preuves qui rendent cette constatation raisonnable, y compris les conséquences connues d'un poids inférieur à la naissance chez l'homme et des anomalies des récepteurs à l'adénosine survenant après une ingestion chronique de caféine chez les animaux. Il semblerait prudent de limiter la consommation de café pendant la grossesse, non seulement pour réduire les risques de SMSN, mais aussi pour réduire les autres complications potentielles telles que l’insuffisance pondérale à la naissance, qui est associée à d’autres complications.

Henry Krous

[email protected]

Hôpital pour enfants – San Diego

Avis aux médias de l'Alliance des PEID sur la caféine et les PEID (29/01/98)

(6/11/96)

Un pédiatre et une mère de SMSN avec lesquels j'ai parlé ont récemment fait tester son bébé (père différent) et ont découvert un problème de respiration traité avec de la caféine. Il est maintenant âgé de 16 mois et prospère. Que pensez-vous de la caféine ou de tout autre stimulant pour les bébés à risque de SMSN (en supposant que nous puissions les identifier à l’avance).

Le Dr Carl Hunt du Medical College of Ohio, Toledo a examiné cette question il y a des années. La caféine n’empêche pas le SMSN. C'est un neurostimulant qui fonctionne bien pour l'apnée du prématuré, problème de respiration commun chez les prématurés et facilement diagnostiqué par “test” (pneumogramme ou enregistrement d'événement). Beaucoup de nos nouveau-nés prématurés sont traités à la caféine pour l'apnée des prématurés et sont renvoyés chez eux avec de la caféine (> 200 au cours des 4 dernières années). La caféine normalisera également les habitudes respiratoires des nourrissons nés à terme souffrant d’apnée, comme l’ont indiqué les Drs. Kelly et Shannon de Boston

J'espère que ça aide.

JDDeCristofaro, MD

Centre médical universitaire

Stony Brook, NY

Programme d'apnée infantile

Mars 1999


La caféine et l'alcool comme facteurs de risque du syndrome de mort subite du nourrisson

  1. Alma, G. Wennergrena, G. Norveniusa, R. Skjærvenb, N. Øyenb, K. Helweg-Larsenc, H. Lagercrantzd, L. M Irgensb, pour le compte de l'étude nordique sur l'épidémiologie des PEID.

a Service de pédiatrie, hôpital universitaire Sahlgrenska / Östra, S-416 85 Göteborg, Suède, b Registre des naissances médicales de Norvège, N-5021 Bergen, Norvège, c Institut danois d'épidémiologie clinique, 2100 Copenhague, Danemark d. Pédiatrie, hôpital Karolinska, S-17176 Stockholm, Suède

Correspondance à: Dr Alm.

OBJECTIF; Déterminer si l'alcool et la caféine sont des facteurs de risque indépendants du syndrome de mort subite du nourrisson (SMSN).

MATÉRIAUX ET MÉTHODES; Analyses fondées sur les données de l’étude épidémiologique nordique sur les PEID, une étude cas-témoins dans laquelle tous les parents de victimes des PEID vivant dans les pays nordiques ont été invités du 1er septembre 1992 au 31 août 1995 à participer avec des parents de quatre témoins, appariés pour le sexe et l’âge au décès. Les odds ratios (OR) ont été calculés par analyse de régression logistique conditionnelle.

RÉSULTATS; Les RUP bruts pour une consommation de caféine> 800 mg / 24 heures pendant et après la grossesse étaient significativement élevés: 3,9 (intervalle de confiance à 95%, de 1,9 à 8,1) et 3,1 (IC à 95%, de 1,5 à 6,3), respectivement. Cependant, après ajustement pour tenir compte du tabagisme maternel au 1er trimestre, de l'âge maternel, de l'éducation et de la parité, aucun effet significatif de la caféine pendant ou après la grossesse n'a persisté. En ce qui concerne la consommation d'alcool par la mère ou le père, aucune augmentation significative du risque n'a été constatée après ajustement pour les variables sociales, à l'exception d'une consommation d'alcool postnatale importante de la part de la mère, où le risque était significativement accru.

CONCLUSIONS La caféine pendant ou après la grossesse ne constituait pas un facteur de risque indépendant du SMSN après ajustement en fonction de l'âge de la mère, de son niveau d'instruction, de sa parité et de son tabagisme pendant la grossesse. Une consommation importante d'alcool par la mère après la naissance, mais non avant la naissance, augmentait le risque.

 

Source : SIDN Network

Présentation de DMDScript

  • Vue d'ensemble
  • Téléchargements
  • Extension
  • Histoire de la source
  • Changer le journal
  • DMDScript en C ++
  • Licence DMDScript en C ++
  • Les forums
  • Rapports de bogues
  • Remerciements

Exemples

  • Tamis
  • Calculateur d'hypothèque

DMDScript
Qu'est-ce que DMDScript?
DMDScript est l'implémentation par Digital Mars du langage de script ECMA 262. L'implémentation de Netscape s'appelle JavaScript, l'implémentation de Microsoft s'appelle JScript. DMDScript est très rapide comparé à d’autres implémentations, que vous pouvez vérifier avec le benchmark inclus.
DMDScript est implémenté dans le langage de programmation D. (Une implémentation C ++ est également disponible.)

Remarque: DMDScript n'est pas le langage de programmation D, ni Java.

Voici la FAQ ECMAscript.

Principaux avantages de DMDScript en D
Mise en œuvre de l'ECMA 262 v3.
Idéal pour les navigateurs, les clients de messagerie et toutes les applications nécessitant un langage de script, ECMAscript.
Le code source est disponible sous la licence Boost.
Installation de DMDScript
Téléchargez DMDScript.
Version autonome de la console DMDScript
ds sans argument compilera et exécutera le fichier dscript test.ds. Avec un argument, il va compiler et exécuter ce fichier:
ds tamis
va compiler et exécuter sieve.ds. Le .ds est l'extension par défaut.
La version console a quelques fonctions intégrées supplémentaires disponibles:

getenv (string)
Récupère et renvoie la valeur de la variable d'environnement string.
print (string)
Imprimer string sur la sortie standard.
println (string)
Chaîne d'impression sur la sortie standard suivie d'une nouvelle ligne.
readln ()
Lit et retourne une ligne d'entrée à partir de stdin, n'incluant pas la nouvelle ligne.
Différences entre DMDScript (Digital Mars), Jscript (Microsoft) et Javascript (Netscape)
goto Statement
DMDScript implémente l'étiquette goto; comme dans C. goto ne fait pas partie de la norme ECMA 262 v3.
assert() Function
DMDScript implémente la propriété de la fonction assert () de l'objet global. assert () lève une exception RuntimeError. S'il existe un argument pour assert (), cet argument est converti en une valeur booléenne et une exception RuntimeError est levée si l'argument est false.
__proto__ Property
Javascript supporte la propriété __proto__. Ni ECMA, ni Jscript, ni DMDScript ne le prennent en charge.
Compilation conditionnelle
Les instructions de compilation conditionnelle de JScript ne sont pas prises en charge par DMDScript, Javascript et ECMA.

Source : Digitalmars

Bugzero

Le système de suivi des problèmes de gestion des modifications de Bugzero est une application logicielle qui permet à une entreprise d’enregistrer et de suivre l’évolution de chaque problème identifié par un utilisateur jusqu’à ce que le problème soit résolu. Dans Bugzero, un “problème” peut aller de la simple question d'un client à un rapport technique détaillé sur une erreur ou un problème. En interne ou en externe, intranet ou Internet, ce logiciel peut être utilisé par les développeurs et testeurs de logiciels pour le suivi des bogues, les fabricants pour le suivi des clients et des ventes, les centres d'assistance informatique et autres fournisseurs de services pour la résolution de problèmes (ActiveLog).
Bugzero fournit une solution évolutive, rentable et de niveau entreprise, basée sur le Web, pour accroître l'efficacité du travail en équipe. Il permet à l'utilisateur de signaler un problème, de suivre sa progression et de déterminer qui est responsable de la résolution du problème. Il est facile à utiliser, tout en restant flexible et adaptable, et peut être configuré pour s'adapter au processus métier et au flux de travail uniques d'une organisation. Ça fonctionne.

Nous utilisons Bugzero pour tous nos problèmes de développement et de production, améliorations et modifications de la documentation. Nous avons 4 sites en haut et en bas de la côte Est et tous les sites utilisent Bugzero. – John Higgins, Banque Wachovia (2003)

Nouveau: pour notre hébergement SaaS, nous pouvons maintenant configurer une instance de transfert juste pour que vous puissiez utiliser l'outil pendant une courte période. Si vous l'aimez, vos données peuvent être migrées vers votre installation finale sur nos serveurs. Bugzero peut également être installé dans un environnement d’hôte virtuel prenant en charge les servlets / jsp Java et l’accès à la base de données.

Caractéristiques

La configuration ne nécessite aucune connaissance en programmation et peut être réalisée rapidement et facilement en quelques clics de souris:

  • Un clic pour ajouter ou supprimer des champs, prendre en charge plus de 100 champs de types de données variés, notamment la date, le nombre, les utilisateurs, l'URL et l'ID de lien entre projets.
  • Ajoutez ou supprimez facilement des options de menu déroulant et des dépendances de champ parent-enfant. Ajoutez ou modifiez les valeurs de champ par défaut à tout moment.
  • Quelques clics pour configurer les autorisations et les contrôles d'accès au niveau du champ, notamment les fonctions masquées et en lecture seule basées sur les rôles d'utilisateur.
  • Flux de travail flexible pour s'adapter à votre processus unique, facilement configurable et personnalisable par projet.
  • Un clic pour copier et déplacer des problèmes au sein de projets ou entre projets.
  • Relations bidirectionnelles entre projets, par exemple, un rapport de bogue peut être lié à une entrée de scénario de test dans scénario de test.
  • Prise en charge de l'interface Web et de l'interface de courrier électronique (en particulier pour le support client) pour les utilisateurs internes et externes. Gestion intelligente des envois d'email.
  • Sécurisé, passé des examens approfondis de la sécurité des applications menées par diverses entreprises.
  • Plus qu'un simple suivi de bogues, vous pouvez gérer la gestion des exigences, des cas d'utilisation et des cas de test.
  • Fonctionne aussi bien pour le suivi des clients et des ventes que pour le système de support client
  • Aidez les clients externes à soumettre des demandes de service et à un clic pour un suivi ultérieur
  • Conforme à la norme ISO / IEC 20000 pour la gestion des services informatiques.
  • Mise en page personnalisable, logo de votre entreprise, apparence
  • Fonctionne dans toutes les langues utilisant UTF-8, y compris le chinois, le japonais et le coréen.
  • Prise en charge de plusieurs projets, contrôle d'accès configurable et enregistrement automatique
  • Modèle de contrôle d'accès configurable avancé au niveau du groupe et du champ (sécurité)
  • Affectation de bogues automatique et manuelle configurable
  • Fichier joint (peut joindre plusieurs fichiers et tous types de fichiers à la fois)
  • Affectation à un groupe d'utilisateurs.
  • Prise en charge de la capture d'écran directe pour la pièce jointe (disponible en tant qu'add-on)
  • Notification par courrier électronique, accusé de réception et courrier électronique cc (par projet, basé sur un modèle)
  • Déclencheurs ou écouteurs de notification configurables par courrier électronique (par projet, par utilisateur)
  • Intégration du contrôle de version source CVS, Subversion et Perforce par courrier électronique
  • Rapports de métriques, recherche avancée et requêtes stockées réutilisables
  • Calendrier pour la sélection de date
  • Historique complet et facile à lire du journal d'audit et des modifications
  • Tri rapide et exportation de fichiers CSV prenant en charge les langues asiatiques en Unicode
  • Projets publics et auto-inscription pour des projets open source
  • Prise en charge de l'authentification utilisateur LDAP / Active Directory (disponible en tant que complément)
  • actions personnalisées de rappel par courrier électronique, d'escalade progressive et de déclenchement (disponibles en tant qu'add-on)
  • Installation facile (côté serveur uniquement) et maintenance minimale requise
  • Sauvegarde et restauration faciles en cas de panne matérielle ou logicielle
  • Administration système basée sur le Web facile à utiliser (aucune courbe d'apprentissage)
  • Fonctionnalités exceptionnelles de dépannage et de débogage à distance
  • Et les fonctionnalités que le client veut vraiment …
  • Technologies standard, basées sur le Web, légères, riches en fonctionnalités, robustes, fiables, rapides comme l'éclair et d'une convivialité exceptionnelle
  • Systèmes d'exploitation croisés, base de code unique écrite en Java ™ et J2EE ™, fonctionne vraiment partout et partout
  • Systèmes de bases de données croisées, schéma de base de données SQL standard, évolutif et modulaire
  • Pas de logiciel client, pas de problème de pare-feu, et accessible de partout sur Internet via HTTP, HTTPS ou SMTP

Pourquoi Bugzero?

Toute équipe de projet logiciel sérieuse aura besoin d’une véritable base de données de suivi des bogues. La question est, parmi tant de programmes de suivi de bugs que vous pouvez acheter ou même utiliser gratuitement, pourquoi choisir Bugzero? Si la liste des fonctionnalités ci-dessus ne vous a toujours pas convaincu, voici la suite:
Les outils de suivi de bogues open-source gratuits tels que le système de suivi des bogues Bugzilla, la base de données de rapports d'incidents GNATS ou le système de suivi des défauts Debian prennent généralement beaucoup de temps à configurer. Ils ne sont pas facilement personnalisables (même pour des tâches simples comme ajouter ou supprimer un champ), et ne sont pas entièrement pris en charge. Le logiciel de suivi des défauts Shareware ne coûte pas cher, mais peut même ne pas avoir les fonctions de base pour être utile. Les systèmes de suivi des défauts onéreux peuvent avoir un million de “fonctionnalités” mal écrites, mais elles n'en valent certainement pas le coût (300 $ – 600 $ par licence d'utilisation et frais de maintenance élevés). Ils sont trop complexes, rarement configurés correctement, déroutants et encombrants pour être utilisés efficacement.

Bugzero parle pour lui-même. Il est convivial et puissant. Il offre toutes les fonctions pratiques d'un programme professionnel de suivi des problèmes, tout en offrant une interface utilisateur intuitive, simple et directe ne nécessitant aucune formation de l'utilisateur final (simplicité). Vous êtes en plein contrôle de l'outil. Bugzero est également très abordable, minimise vos coûts globaux en utilisant vos systèmes matériels et logiciels existants et en s'intégrant de manière transparente (intégration).

Et plus important encore, Bugzero est fourni avec un support technique opportun au niveau de l’entreprise. Vous pouvez compter sur nous pour vos besoins spécifiques et pouvez vous attendre à une réponse irréprochable de notre part dans les minutes ou les heures qui suivent. Bugzero est exempt de bugs connus. tous les bugs trouvés sont corrigés en quelques jours.

Configuration requise
Serveur matériel PC (CPU 500 MHz / 256 Mo de RAM / 20 Go HD), serveurs Mac, Sun ou IBM …
Système d'exploitation serveur Windows, Unix, Linux ou Mac OS …
Base de données serveur Oracle, DB2, SQL Server, Sybase, MySQL, PosgreSQL ou Access …
Logiciel serveur Java 1.3+ et un serveur d'applications Java ™ tel que Tomcat, WebLogic, WebSphere …
Logiciel client MSIE, Mozilla, FireFox, Google Chrome, Opera, Netscape ou iPhone / iPod / iPad …

Sauvegarde et récupération

La sauvegarde et la récupération des données de Bugzero sont simples. Vous n'avez besoin de sauvegarder le dossier complet de bugzero qu'une seule fois, car il ne change jamais après l'installation. Toutes les données sont stockées dans la base de données uniquement. Vous devez donc les sauvegarder périodiquement. Dans le cas d'une panne matérielle ou logicielle, vous devez simplement restaurer le dossier bugzero si le serveur d'applications s'est écrasé ou la base de données si le serveur de bases de données s'est écrasé, ou les deux s'ils étaient installés sur le même ordinateur.

Démo / Télécharger / Installer

Pour votre commodité, nous avons configuré des sites de démonstration pour vous permettre d’essayer le logiciel sans le télécharger ni l’installer. Vous pouvez vous connecter en tant que dev, qa ou guest (le mot de passe est le même que le nom d'utilisateur). Notez que l’utilisateur invité a un accès limité et que des incohérences peuvent survenir lorsque plusieurs utilisateurs sont connectés avec le même nom d’utilisateur. Pour voir comment l'administration système de Bugzero (configuration du projet et gestion des comptes utilisateurs) fonctionne, envoyez-nous un e-mail ou enregistrez-vous en ligne (indiquez explicitement ce que vous souhaitez, à savoir, voir l'administrateur) et nous vous enverrons l'administrateur. url. Vous verrez à quel point il est flexible et configurable.
Pour télécharger une version d'essai gratuite ou acheter une licence, allez à la page Tarification.

Pour des instructions d'installation détaillées, veuillez vous rendre sur la page d'installation.

Communiqués

Bugzero publie très souvent. Un script de mise à niveau est fourni et le processus est simple et facile. C'est principalement un processus automatique et devrait être indolore. Vous pouvez trouver les notes de version complètes dans le téléchargement ou les lire ici. Vous pouvez également voir les futurs changements à venir. Si vous avez trouvé un bogue, dites-le-nous et nous le corrigerons immédiatement (heures ou au plus souvent). Vous n'aurez jamais besoin d'attendre des mois ou des années pour la prochaine version.

Ressources: le suivi des bogues expliqué

Un bon système de suivi des problèmes est essentiellement un référentiel central pour les rapports de problèmes, qui peuvent être des bogues logiciels, des défauts matériels, les commentaires des clients, des tickets d'incidents ou toute autre collection d'incidents et de problèmes. L’importance d’un tel système tient à sa nature collaborative et à ses capacités de suivi et de gestion du changement. Il est donc préférable d’être utilisé par un groupe de personnes dans un environnement géophysiquement distribué. Suivez le lien pour en savoir plus sur l'outil de suivi des bogues, défauts, incidents et incidents collaboratif et le logiciel de gestion des

Introduction au langage de modélisation unifié (LMU)

Les applications d'entreprise de grande taille – celles qui exécutent les applications métier essentielles et permettent à une entreprise de continuer à fonctionner – doivent constituer plus qu'un groupe de modules de code. Ils doivent être structurés de manière à permettre l'évolutivité, la sécurité et une exécution robuste dans des conditions difficiles, et leur structure – souvent désignée par leur architecture – doit être définie suffisamment clairement pour que les programmeurs de maintenance puissent (rapidement!) Trouver et corriger un bogue apparaît bien après que les auteurs originaux se soient tournés vers d'autres projets. Autrement dit, ces programmes doivent être conçus pour fonctionner parfaitement dans de nombreux domaines, et la fonctionnalité métier n’est pas la seule (bien qu’il s’agisse du noyau essentiel). Bien entendu, une architecture bien conçue profite à tous les programmes, et pas seulement aux plus grands, comme nous l’avons indiqué ici. Nous avons d'abord mentionné les applications volumineuses, car la structure permet de gérer la complexité. Par conséquent, les avantages de la structure (et de la modélisation et de la conception, comme nous le montrerons) sont complexes à mesure que la taille de l'application augmente. Un autre avantage de la structure est qu'elle permet la réutilisation du code: le temps de conception est le moment le plus facile pour structurer une application en tant que collection de modules ou de composants autonomes. Finalement, les entreprises créent une bibliothèque de modèles de composants, chacun représentant une implémentation stockée dans une bibliothèque de modules de code. Lorsqu'une autre application a besoin des mêmes fonctionnalités, le concepteur peut importer rapidement son module à partir de la bibliothèque. Au moment du codage, le développeur peut tout aussi rapidement importer le module de code dans l'application.

La modélisation est la conception d'applications logicielles avant le codage. La modélisation est un élément essentiel des grands projets logiciels et est également utile pour les projets de taille moyenne et même petite. Un modèle joue un rôle analogue dans le développement logiciel que les plans et autres plans (cartes de site, élévations, modèles physiques) jouent dans la construction d'un gratte-ciel. À l'aide d'un modèle, les personnes responsables du succès d'un projet de développement logiciel peuvent s'assurer que la fonctionnalité métier est complète et correcte, que les besoins des utilisateurs finaux sont satisfaits et que la conception du programme prend en charge les exigences d'évolutivité, de robustesse, de sécurité, d'extensibilité et autres, avant la mise en œuvre. dans le code rend les changements difficiles et coûteux à faire. Les enquêtes montrent que les grands projets logiciels ont une très grande probabilité d'échec – en fait, il est plus probable qu'une grande application logicielle ne satisfera pas à toutes ses exigences dans les délais et dans les limites du budget qu'elle sera couronnée de succès. Si vous exécutez l'un de ces projets, vous devez faire tout ce qui est en votre pouvoir pour augmenter les chances de succès. La modélisation est le seul moyen de visualiser votre conception et de la comparer aux exigences avant que votre équipe ne commence à coder.

RELEVER LE NIVEAU D'ABSTRACTION

Les modèles nous aident en nous permettant de travailler à un niveau d'abstraction supérieur. Un modèle peut le faire en masquant ou en masquant des détails, en donnant une vue d'ensemble ou en mettant l'accent sur différents aspects du prototype. Dans UML 2.0, vous pouvez effectuer un zoom arrière sur une vue détaillée d'une application vers l'environnement dans lequel elle s'exécute, en visualisant les connexions à d'autres applications ou, encore plus loin, vers d'autres sites. Vous pouvez également vous concentrer sur différents aspects de l'application, tels que le processus métier qu'elle automatise ou la vue des règles métier. La nouvelle capacité à imbriquer des éléments de modèle, ajoutée à UML 2.0, supporte directement ce concept.

Le langage UML® (Unified Modeling Language ™) d'OMG vous aide à spécifier, visualiser et documenter des modèles de systèmes logiciels, y compris leur structure et leur conception, de manière à répondre à toutes ces exigences. (Vous pouvez également utiliser UML pour la modélisation métier et la modélisation d'autres systèmes non logiciels.) À l'aide de l'un des nombreux outils UML du marché, vous pouvez analyser les besoins de votre future application et concevoir une solution qui réponde à ces besoins. représentant les résultats à l'aide des treize types de diagrammes standard d'UML 2.0.

Vous pouvez modéliser à peu près n'importe quel type d'application, fonctionnant sur n'importe quel type et combinaison de matériel, système d'exploitation, langage de programmation et réseau, en UML. Sa flexibilité vous permet de modéliser des applications distribuées qui utilisent à peu près n'importe quel middleware sur le marché. Construit sur des concepts OO fondamentaux, y compris classe et opération, il convient parfaitement aux langages et environnements orientés objet tels que C ++, Java et le C # récent, mais vous pouvez également l'utiliser pour modéliser des applications non-OO, par exemple, Fortran, VB ou COBOL. Les profils UML (c’est-à-dire des sous-ensembles d’UML adaptés à des objectifs spécifiques) vous aident à modéliser les systèmes transactionnels, en temps réel et à tolérance de pannes de manière naturelle.

VOUS POUVEZ FAIRE D'AUTRES OBJETS UTILES AVEC UML TOO

Par exemple, certains outils analysent le code source existant (ou, selon certains, le code objet!) Et le désossent dans un ensemble de diagrammes UML. Autre exemple: certains outils du marché exécutent les modèles UML, généralement de l’une des deux manières suivantes: Certains outils exécutent votre modèle de manière interprétative de manière à vous permettre de confirmer qu’il fait vraiment ce que vous voulez, mais sans l’évolutivité et la rapidité besoin dans votre application déployée. D'autres outils (généralement conçus pour fonctionner uniquement dans un domaine d'application restreint, tel que les télécommunications ou la finance) génèrent du code de langage de programme à partir d'UML, produisant la plupart des applications déployables sans bugs qui s'exécutent rapidement si le générateur de code incorpore des modèles évolutifs conformes aux meilleures pratiques. , par exemple, opérations de base de données transactionnelles ou autres tâches courantes du programme. (Les membres d'OMG travaillent actuellement sur une spécification pour l'exécutable UML.) Notre dernière entrée dans cette catégorie: Un certain nombre d'outils sur le marché génèrent des suites de test et de vérification à partir de modèles UML.

ARCHITECTURE® CONÇUE PAR LES MODÈLES UML ET OMG (MDA®)

Il y a quelques années (en fait, étonnamment peu!), Le plus gros problème rencontré par un développeur lors du démarrage d'un projet de programmation distribuée était de trouver un middleware doté des fonctionnalités dont il avait besoin, fonctionnant sur le matériel et les systèmes d'exploitation exécutés dans son magasin. Aujourd'hui, confronté à une gamme de plates-formes middleware extrêmement riche et embarrassante, le développeur rencontre trois problèmes de middleware différents: premièrement, en sélectionner un; deuxièmement, le faire fonctionner avec les autres plates-formes déjà déployées non seulement dans son propre magasin, mais également dans celui de ses clients et de ses fournisseurs; et troisièmement, interagir avec (ou, pire encore, migrer vers) une nouvelle “Meilleure chose à faire” lorsqu'une nouvelle plate-forme se présente et attire l'imagination des analystes et, nécessairement, des DSI partout.

Grâce à sa riche palette et à son indépendance en termes de middleware, UML constitue l'un des fondements de Model Driven Architecture® (MDA®) d'OMG. En fait, un modèle UML peut être indépendant de la plate-forme ou spécifique à une plate-forme, et le processus de développement de la MDA utilise les deux formes suivantes: Chaque norme ou application MDA est basée, de manière normative, sur un modèle indépendant de la plate-forme (PIM). ), qui représente très précisément la fonctionnalité et le comportement de l'entreprise, mais n'inclut pas les aspects techniques. Depuis le PIM, les outils de développement compatibles MDA suivent les mappages standardisés par OMG pour produire un ou plusieurs modèles spécifiques à la plate-forme, également en UML, un pour chaque plate-forme cible choisie par le développeur. (Cette étape de conversion est hautement automatisée, mais pas magique: avant que l'outil ne produise un PSM, le développeur doit annoter le PIM de base afin de produire un PIM plus spécifique, mais indépendant de la plate-forme, qui inclut des détails sur la sémantique souhaitée et guide les choix que l'outil En raison des similitudes existant entre les plates-formes de middleware d’un genre donné – à base de composants ou de messagerie, par exemple – ce guide peut être inclus dans un PIM sans le rendre spécifique à une plate-forme. affinez les PSM produits dans une certaine mesure, plus au début de MDA mais de moins en moins à mesure que les outils et les algorithmes progressent.)

Le PSM contient les mêmes informations qu'une implémentation, mais sous la forme d'un modèle UML au lieu d'un code en cours d'exécution. À l'étape suivante, l'outil génère le code en cours d'exécution à partir du PSM, ainsi que les autres fichiers nécessaires (notamment les fichiers de définition d'interface, les fichiers de configuration, les fichiers Make et d'autres types de fichiers). Après avoir donné au développeur la possibilité d’ajuster à la main le code généré, l’outil exécute les makefiles pour produire une application finale déployable.

Les applications MDA sont composables: si vous importez des PIM pour des modules, des services ou d'autres applications MDA dans votre outil de développement, vous pouvez lui demander de générer des appels à l'aide des interfaces et des protocoles requis, même s'ils sont multi-plateformes. Et les applications MDA sont à l'épreuve du temps: lorsqu'un nouveau “Next Best Thing” est disponible sur le marché, les membres d'OMG génèrent et standardisent un mappage, et votre fournisseur met à niveau son outil compatible MDA pour l'inclure. Tirant parti de ces développements, vous serez en mesure de générer des invocations multiplates-formes vers la nouvelle plate-forme et même de lui transférer automatiquement vos applications MDA existantes, à l'aide de vos PIM existants.

MODELES VS. METHODOLOGIES

Le processus de collecte et d'analyse des exigences d'une application, et de leur intégration dans une conception de programme, est complexe et l'industrie prend actuellement en charge de nombreuses méthodologies qui définissent des procédures formelles spécifiant la marche à suivre. Une des caractéristiques d'UML – en fait, celui qui permet au secteur de bénéficier d'un large soutien dont bénéficie le langage – est qu'il est indépendant de la méthodologie. Quelle que soit la méthodologie que vous utilisez pour effectuer votre analyse et votre conception, vous pouvez utiliser UML pour exprimer les résultats. Et, à l'aide de XMI® (XML ™ Metadata Interchange, une autre norme OMG), vous pouvez transférer votre modèle UML d'un outil à un référentiel ou à un autre outil afin de l'affiner ou de passer à l'étape suivante du processus de développement que vous avez choisi. Ce sont les avantages de la normalisation!

QUE POUVEZ-VOUS MODELER AVEC UML?

UML 2.0 définit treize types de diagrammes, répartis en trois catégories: six types de diagrammes représentent la structure d'application statique; trois représentent des types généraux de comportement; et quatre représentent différents aspects des interactions:

  • Les diagrammes de structure incluent le diagramme de classes, le diagramme d'objets, le diagramme de composants, le diagramme de structures composites, le diagramme de packages et le diagramme de déploiement.
  • Les diagrammes de comportement incluent le diagramme de cas d'utilisation (utilisé par certaines méthodologies lors de la collecte des exigences); Diagramme d'activité et diagramme de la machine d'état.
  • Les diagrammes d'interaction, tous dérivés du diagramme de comportement plus général, comprennent le diagramme de séquence, le diagramme de communication, le diagramme de temps et le diagramme de vue d'ensemble des interactions.

Nous ne souhaitons pas que cette page Web d'introduction soit un didacticiel UML complet. Nous n'allons donc pas répertorier ici les détails des différents types de diagramme. Pour en savoir plus, vous pouvez consulter l'un des nombreux tutoriels en ligne ou acheter un livre. (La dernière fois que nous avons vérifié, taper “UML” dans la boîte de recherche des principaux libraires en ligne avait renvoyé une liste de plus de 100 titres!). Ou, si vous êtes technique et que vous souhaitez l'histoire complète, vous pouvez télécharger le format UML. spécification du site Web OMG. C'est gratuit, bien sûr, mais c'est aussi très technique, concis et très difficile à comprendre pour les débutants. (Pour quelques autres paragraphes expliquant pourquoi les spécifications sont difficiles à lire, regardez ici.)

Je suis sur le point de démarrer mon premier projet de développement basé sur UML. QU'EST-CE QUE JE DOIS FAIRE?
Trois choses, probablement (mais pas nécessairement) dans cet ordre:

  1. Sélectionnez une méthodologie: une méthodologie définit formellement le processus que vous utilisez pour rassembler les exigences, les analyser et concevoir une application qui les respecte à tous les égards. Il existe de nombreuses méthodologies, chacune différant d'une manière ou d'une autre des autres. Il existe de nombreuses raisons pour lesquelles une méthodologie peut être meilleure qu'une autre pour votre projet particulier: par exemple, certaines sont mieux adaptées aux grandes applications d'entreprise, tandis que d'autres sont conçues pour concevoir de petits systèmes intégrés ou à sécurité critique. Sur un autre axe, certaines méthodes prennent mieux en charge un grand nombre d'architectes et de concepteurs travaillant sur le même projet, tandis que d'autres fonctionnent mieux lorsqu'elles sont utilisées par une seule personne ou un petit groupeOMG, en tant qu'organisation indépendante du fournisseur, qui n'a pas d'opinion sur une méthodologie.
  2. Sélectionnez un outil de développement UML: étant donné que la plupart (bien que pas tous) des outils basés sur UML implémentent une méthodologie particulière, dans certains cas, il peut ne pas être pratique de choisir un outil, puis d'essayer de l'utiliser avec une méthodologie pour laquelle il n'a pas été construit. . (Pour d'autres combinaisons outil / méthodologie, cela peut ne pas être un problème, ou il peut être facile de contourner le problème.) Cependant, certaines méthodologies ont été mises en œuvre sur plusieurs outils, de sorte qu'il ne s'agit pas d'un environnement à choix unique. Vous pouvez trouver un outil si bien adapté à votre application ou à votre organisation que vous êtes prêt à changer de méthodologie pour l'utiliser. Si tel est le cas, continuez – notre conseil de choisir une méthodologie est d’abord général et peut ne pas s’appliquer à un projet spécifique. Autre possibilité: vous pouvez trouver une méthodologie que vous aimez, qui n'est pas implémentée dans un outil qui convient à la taille de votre projet ou à votre budget, vous devez donc basculer. Si vous rencontrez l'un de ces cas, essayez de choisir une autre méthodologie qui ne diffère pas trop de celle que vous aviez préférée à l'origine. Comme pour les méthodologies, OMG n'a pas d'opinion ni d'évaluation des outils de modélisation basés sur UML, mais nous avons des liens vers un certain nombre de listes ici. Cela vous aidera à commencer à faire votre choix.
  3. Formation: vous et votre personnel (sauf si vous avez la chance d'engager des architectes expérimentés en langage UML) aurez besoin d'une formation en langage UML. Il est préférable de suivre une formation qui explique comment utiliser l'outil choisi avec la méthodologie choisie, généralement fournie par le fournisseur de l'outil ou le méthodologiste. Si vous décidez de ne pas suivre cette voie, consultez la page de formation d'OMG pour un cours qui répond à vos besoins. Une fois que vous avez appris le langage UML, vous pouvez devenir un professionnel UML certifié OMG – consultez ici pour plus de détails.

UML 2.0 – UNE MISE À NIVEAU IMPORTANTE
La version “disponible” de la spécification UML 2.0 Superstructure (c'est-à-dire la version qui a terminé sa première version de maintenance et qui a été intégrée aux produits du fournisseur) est terminée et peut être téléchargée gratuitement à tout le monde. Trois parties distinctes d'UML 2.0 – l'infrastructure (c'est-à-dire le méta-métamodèle), le langage de contrainte d'objet et l'échange de diagrammes – font toujours l'objet de leur première maintenance et deviendront des spécifications disponibles une fois cette opération terminée. Vous trouverez une description de l'état actuel des quatre spécifications et des liens vers chacune d'elles, ici.

QUOI DE NEUF DANS UML 2.0
Nous avons déjà intégré les nouvelles fonctionnalités dans cet article, mais voici un résumé:

Classificateurs imbriqués: C'est un concept extrêmement puissant. En UML, presque tous les blocs de construction de modèle avec lesquels vous travaillez (classes, objets, composants, comportements tels que les activités et les machines d'état, etc.) constituent un classificateur. En UML 2.0, vous pouvez imbriquer un ensemble de classes dans le composant qui les gère ou incorporer un comportement (tel qu'une machine à états) dans la classe ou le composant qui l'implémente. Cette fonctionnalité vous permet également de créer des comportements complexes à partir de comportements plus simples, la fonctionnalité qui définit le diagramme de synthèse d'interaction. Vous pouvez superposer différents niveaux d'abstraction de différentes manières: par exemple, vous pouvez créer un modèle de votre entreprise et effectuer un zoom avant sur les vues de site incorporées, puis sur les vues départementales du site, puis sur les applications d'un département. Vous pouvez également imbriquer des modèles de calcul dans un modèle de processus métier. Le groupe de travail sur le domaine d’intégration des entreprises d’OMG (BEI DTF) travaille actuellement sur plusieurs nouvelles normes intéressantes en matière de processus et de règles d’activité.
Modélisation comportementale améliorée: dans UML 1.X, les différents modèles comportementaux étaient indépendants, mais dans UML 2.0, ils découlent tous d'une définition fondamentale d'un comportement (à l'exception du cas d'utilisation, légèrement différent mais qui participe toujours à la nouvelle organisation. ).
Amélioration de la relation entre les modèles structurels et comportementaux: comme nous l'avons souligné sous Classificateurs imbriqués, UML 2.0 vous permet d'indiquer qu'un comportement représenté par (par exemple) une machine à états ou un diagramme de séquence est le comportement d'une classe ou d'un composant.
Autrement dit, le nouveau langage va bien au-delà des classes et des objets bien modélisés par UML 1.X et permet de représenter non seulement les modèles comportementaux, mais également les modèles architecturaux, les processus et règles métier, ainsi que d'autres modèles utilisés dans de nombreuses parties différentes. des disciplines informatiques et même non informatiques.

Au cours du processus de mise à niveau, plusieurs ajouts au langage y ont été incorporés, notamment le langage OCL (Object Constraint Language) et la sémantique d'action.

 

Source : http://www.uml.org/what-is-uml.htm