<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Al'Blog - Essai</title>
    <link>http://www.thegiantball.com/~blog/</link>
    <description>Gotland, Visby, Suède, Roumanie, tranches de vie et tutti quanti</description>
    <dc:language>fr</dc:language>
    <generator>Serendipity 1.2.1 - http://www.s9y.org/</generator>
    <pubDate>Tue, 27 May 2008 18:17:03 GMT</pubDate>

    <image>
        <url>http://www.thegiantball.com/~blog/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: Al'Blog - Essai - Gotland, Visby, Suède, Roumanie, tranches de vie et tutti quanti</title>
        <link>http://www.thegiantball.com/~blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>L'affichage philosophiquement correct de &quot;Hello World&quot;</title>
    <link>http://www.thegiantball.com/~blog/index.php?/archives/44-Laffichage-philosophiquement-correct-de-Hello-World.html</link>
            <category>Essai</category>
    
    <comments>http://www.thegiantball.com/~blog/index.php?/archives/44-Laffichage-philosophiquement-correct-de-Hello-World.html#comments</comments>
    <wfw:comment>http://www.thegiantball.com/~blog/wfwcomment.php?cid=44</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.thegiantball.com/~blog/rss.php?version=2.0&amp;type=comments&amp;cid=44</wfw:commentRss>
    

    <author>nospam@example.com (Alain)</author>
    <content:encoded>
    
&lt;p&gt;&#039;H&#039; 
&lt;/p&gt;
&lt;pre&gt;   -&amp;gt; est_un Lettre&lt;br /&gt;   -&amp;gt; membre_de Alphabet&lt;br /&gt;   -&amp;gt; représente Information&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
Lettre 
&lt;/p&gt;
&lt;pre&gt;      -&amp;gt; est_un Objet_abstrait&lt;br /&gt;      -&amp;gt; spécialisation_de Symbol&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
...
&lt;/p&gt;&lt;p&gt;PixelAAfficher 
&lt;/p&gt;
&lt;pre&gt;              -&amp;gt; est_un Point&lt;br /&gt;              -&amp;gt; membre_de Ecran&lt;/pre&gt;
&lt;p&gt;...
&lt;/p&gt;&lt;p&gt;&#039;&amp;quot;&#039; 
&lt;/p&gt;
&lt;pre&gt;   -&amp;gt; est_un Englobeur&lt;br /&gt;   -&amp;gt; est_un Symbol&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
Symbol 
&lt;/p&gt;
&lt;pre&gt;     -&amp;gt; spécialisation_de NimporteQuoi&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
NimporteQuoi 
&lt;/p&gt;
&lt;pre&gt;     -&amp;gt; est_un trucmuch&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;
trucmuch : char ****** ;
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;Bon, mais malgré ça, le &amp;quot;Parsing&amp;quot; ne prend qu&#039;une petite demi-heure.
C&#039;est là qu&#039;intervient la répartition, le clustering et Java LRMI :
&lt;/p&gt;&lt;p&gt;Pour gagner du temps, et grâce à la connaissance du &amp;quot;Hello World&amp;quot; à
afficher (instance d&#039;Image qui est une représentation d&#039;un texte) au
niveau pixel, on décide d&#039;utiliser une machine pour chaque pixel, ce
sera &#039;achement plus efficace. Il faut d&#039;abord déterminer combien de
machines sont utiles (on ne calcule que les points à afficher) et leur
demander de calculer leur point noir (ben oui, immanquablement le point
sera noir, vu que les blancs ne nous intéressent pas (bon, on peut avoir
d&#039;autres couleurs, mais la base de connaissance rend la gestion
automatique (dans le cas d&#039;un simple anti-aliasing, on aura 256 machines
par point : une par niveau de gris. Pour un texte en couleur, on aura
3x256 voire 4x256 machines par point) ) ) . Ensuite, les points sont
renvoyés au serveur qui doit alors déterminer où vont les différents
points. Pour ceci, il doit générer une image d&#039;&amp;quot;Hello World&amp;quot; qu&#039;il va
remplir avec les points en retour.
&lt;/p&gt;&lt;p&gt;Comme nous voulons une sécurité absolue et être sûr que chaque machine
nous renvoie bien un pixel noir, et non un pixel noir pas super noir,
nous utilisons 6 machines par point au lieu d&#039;une. Ainsi nous sommes sûr
du résultat. Si les 6 résultats ne sont pas strictement égaux, nous ne
nous contentons pas de nous dire que la majorité a raison (on retrouve
toujours des pixels noirs, c&#039;est louche ! ), nous essayons de déterminer
l&#039;origine du problème à partir d&#039;une base de connaissance sur le système
puis nous relançons tout.
&lt;/p&gt;&lt;p&gt;Ce système est super au point, mais voilà, il est possible que les
pixels noirs ne soient pas du même type (philosophiquement, c&#039;est forcé,
la somme des erreurs quantiques et logiques finira par donner un pixel
d&#039;un type différent) ou s&#039;appliquent à un domaine sémantique vaguement
différent (quelle est l&#039;implication sémantique de la position dans le
mot ? ). Donc il faut adapter le pixel noir selon son type et sa
position sémantique. Pour cela, nous utilisons une base d&#039;ontologie
&amp;quot;Pixels noirs&amp;quot; et un système multi-agent.
&lt;/p&gt;&lt;p&gt;Finalement, il nous a fallu faire des choix techniques : la répartition
c&#039;est bien, mais sur une seule machine, c&#039;est moins bien. Heureusement,
nous avons les Java LRMI (Local as Remote Method Invocation), qui nous
permet d&#039;utiliser des objets locaux comme s&#039;ils étaient distants.
&lt;/p&gt;&lt;p&gt;Pour l&#039;instant, on obtient une espèce de tache noire mais d&#039;après notre
base de connaissance, la tache noire est une conceptualisation de &amp;quot;Hello
World&amp;quot;. Donc c&#039;est gagné !!!
&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Tue, 27 May 2008 18:22:21 +0200</pubDate>
    <guid isPermaLink="false">http://www.thegiantball.com/~blog/index.php?/archives/44-guid.html</guid>
    
</item>

</channel>
</rss>