<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="fr-FR"><title>Jb in a nutshell</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/default.aspx" /><tagline type="text/html" /><id>http://forums.labo-dotnet.com/blogs/jbevain/default.aspx</id><author><url>http://forums.labo-dotnet.com/blogs/jbevain/default.aspx</url></author><generator url="http://communityserver.org" version="1.1.0.50615">Community Server</generator><modified>2004-10-27T11:13:00Z</modified><entry><title>Romeo ne s'est pas fait en un jour</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2005/03/13/18204.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:18204</id><created>2005-03-13T12:57:00Z</created><content type="text/html" mode="escaped">&lt;br&gt;
A toutes mes groupies, l'url de ce blog a été changée en :&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.labo-dotnet.com/blogs/jbevain"&gt;http://blogs.labo-dotnet.com/blogs/jbevain&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Et les feeds :&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.labo-dotnet.com/blogs/jbevain/rss.aspx"&gt;http://blogs.labo-dotnet.com/blogs/jbevain/rss.aspx&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Mon blog sérieux, lui, est toujours ici :&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.dotnetguru2.org/jbevain/"&gt;http://www.dotnetguru2.org/jbevain/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Bonne fin de week-end!&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=18204" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=18204</wfw:commentRss></entry><entry><title>DevDays &amp; Evangelisme</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2005/03/02/18160.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:18160</id><created>2005-03-02T09:58:00Z</created><content type="text/html" mode="escaped">Je serais si tout va bien aux DevDays de, dans l'ordre, Strasbourg, Lille, Lyon et Paris.&lt;br /&gt;
Certains le savent, j'ai rejoins la petite équipe des développeurs Mono il y a quelques mois.&lt;br /&gt;
Donc si le sujet de &lt;b&gt;Mono&lt;/b&gt; vous passionne ou vous intrigue, bref, si vous avez la moindre question, n'hésitez pas à venir me la poser.&lt;br /&gt;
&lt;br /&gt;
Je devrais tourner aux alentours du stand Laboratoire .net, et si par hasard je n'y suis pas, hurlez mon nom, je viendrais !&lt;br /&gt;
&lt;br /&gt;
A bientôt.&lt;br /&gt;
&lt;br /&gt;
PS: Hé, les gentils organisateurs, si avez des questions sur Mono pendant les Q&amp;R, je serais bien sur ravi de venir répondre. Voir faire en sorte de dire aux gens qu'ils peuvent poser des questions sur Mono, ça pourrait rendre le truc encore plus intéressant non ?&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=18160" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=18160</wfw:commentRss></entry><entry><title>Antitrust, le film, les sources</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2005/02/13/18104.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:18104</id><created>2005-02-13T01:40:00Z</created><content type="text/html" mode="escaped">Ce soir, j'ai re-revu ce film qui s'appelle &lt;a href="http://www.allocine.fr/pub/interstitiel/zefilm.html?Redir=%2Ffilm%2Ffichefilm%2Ehtml%3Fcfilm%3D27062&amp;cpg=3677"&gt;Antitrust&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Le genre de film qu'on va voir pendant la fête du cinéma, en été, et qui laisse un petit souvenir sympa. Surtout que ça parle de petits génies de l'informatique, de grosses boites, d'open source. Bref c'est marrant, surtout si on veut pas se prendre la tête. Et puis c'est toujours sympa dans un film où on voit ne serait-ce qu'un tout petit bout de votre métier. Oui parce que je ne compte plus les films où les gens programment en manipulant des figures géométriques, pondent du code à la vitesse de la pensée, où trouvent des mots de passe par petits bouts... Donc dans, ce film, on peut voir à plusieurs moments du code, du vrai, si si... Et puis comme j'avais que ça à faire (je ments effrontément), j'ai cherché sur Google si le code qu'on voyait, correspondait bien à quelque chose. Et la, surprise, pas mal de code provient de vrais projets, allez comme, je suis sympa, je vous passe tout ça :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Un serveur HTTP minimaliste en Java : &lt;a href="http://www.sources.ru/java/Webserver.java"&gt;http://www.sources.ru/java/Webserver.java&lt;/a&gt; (0:23:25) L'acteur s'écrit "Ouah, la compression est super" en regardant la ligne 149, ou visiblement, il n'y a pas de compression hein...&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Linux4Win : &lt;a href="http://mandrake.binarycompass.org/Mandrake-old/7.2/i586/lnx4win/src/lnx4win.c"&gt;http://mandrake.binarycompass.org/Mandrake-old/7.2/i586/lnx4win/src/lnx4win.c&lt;/a&gt; (0:52:47) Là les méchants récuperent ce code en faisant de l'OCR sur un écran...&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Jigsaw : &lt;a href="http://dev.w3.org/cvsweb/~checkout~/java/classes/org/w3c/jigsaw/servlet/JigsawHttpServletResponse.java?rev=1.53&amp;content-type=text/plain"&gt;http://dev.w3.org/cvsweb/~checkout~/java/classes/org/w3c/jigsaw/servlet/JigsawHttpServletResponse.java?rev=1.53&amp;content-type=text/plain&lt;/a&gt; (1:14:42)  Le gentil fait semblant de travailler chez le méchant alors qu'il note les adresses IP des satellites, adresse de classe A de type 10.xxx.xxx.xxx, et après il s'étonne de pas communiquer avec de l'extérieur...&lt;/li&gt;
&lt;/ul&gt;
Il y a deux autres moments où on voit du C++, la première fois ça ressemble à une appli Qt, et la seconde, on dirait l'implémentation d'une décompression Zip, mais pas moyen de retrouver la source.&lt;br /&gt;
Bon allez, si on retournait bosser sérieusement !&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=18104" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=18104</wfw:commentRss></entry><entry><title>IE l'invincible</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2005/02/10/18089.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:18089</id><created>2005-02-09T23:52:00Z</created><content type="text/html" mode="escaped">Purée,&lt;br /&gt;
&lt;br /&gt;
Le buzz fait rage. Une faille de sécurité dans le nouveau naviguateur à la mode, c'est la panique, heureusement, notre bon vieux bastion des butineurs n'est pas touché par la dite faille. Pour en avoir lu des tartines, je vais donc prendre mon pot de culture informatique, et en étaler une bonne tranche (et oui, un, il en reste qu'un fond).&lt;br /&gt;
&lt;br /&gt;
Donc du coup, posons nous la question, qu'est ce que c'est que cette faille tant déclamée ? Cette dernière permet de faire croire à l'utilisateur qu'il clique sur un lien x, tout en le dirigeant sur y. Mais comment cela se faisse (droite ou gauche, à vous de choisir, bien que les deux soit une option) ? C'est très simple. Les gens qui utilisent un navigateur tapent leurs adresses en ASCII, oui, cette bonne vieille table des symboles. Cela ce n'est pas suffisant, pour bien des gens, alors les gens bien pensant de ce monde on fait l'IDN, pour international domain name, qui permet tout simplement d'écrire des URL en UTF-8. Simple non ? Le problème, c'est dans la conception même de l'engin, il peut y avoir des parties qui ont la même représentation, sans avoir la même valeur (code dans la table en fait). Et donc du coup (deuxième), on clique sur un lien, en ayant l'impression de butiner X, tout en butinant Y. C'est un peu comme sortir avec des jumelles vous voyez ?&lt;br /&gt;
&lt;br /&gt;
Alors ce qui fait crier haut et fort les gens, c'est que IE n'est pas touché par cette faille, tandis que le browser tant déclamé, et grignotant des parts de marché l'est. Etonnant non. Cela dit, FireFox est sujet à cette faille, tout comme tous les navigateurs implémentant l'IDN, comme Opera, Konqueror, etc. Oui, nous l'avons vu, c'est un problème de conception au niveau même du protocole. Alors pourquoi ce bon vieux IE n'est pas sensible ? Tout simplement parce qu'il n'implémente pas IDN. Pour ce faire, téléchargez un plugin IDN pour IE, et vous aurez, comme pour le reste des gens, un naviguateur sensible à cette faille.&lt;br /&gt;
&lt;br /&gt;
Pour la petite comparaison, c'est comme dire qu'un navigateur est sécure, car il n'est pas connecté à une JVM, ne lit pas les CSS, ne comprend pas l'ECMAScript, et si possible, préfere afficher seulement du texte. J'exagère ? Bien sur, cependant, comparons, s'il vous plait, les choses avec leurs équivalent.&lt;br /&gt;
&lt;br /&gt;
Alors pourquoi ce buzz ? Parce que beaucoup de gens ont annoncés que FireFox était très sécurisé, et à la moindre faille, les gens déchantent. Et les pro IE de se frotter les mains.  Prenons par exemple un site que Mr Kimmerlin aime à présenter, Secunia, vous y trouverez le détail des failles pour IE et pour FireFox, voir d'autres navigateurs, et vous pourrez comparez de vous même le nombre de failles et la gravités de celles-ci. Bien sur qu'il y a des failles dans FireFox, et plus il sera utilisé, plus on en trouvera, nulle part il n'y a de code parfait. Allez Messieurs Dames, un peu de bonne foi et d'objectivité, ça ne ferait pas de mal.&lt;br /&gt;
&lt;br /&gt;
Allons, utilisez donc le navigateur qui a votre préférence, mais ne criez pas au feu à la moindre étincelle chez le voisin... Libre à vous d'utiliser un browser en paille par contre.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EDIT:&lt;/b&gt; Ce n'est pas vérifié, mais il semblerait que le &lt;a href="http://evain.net/gbrowser"&gt;GBrowser&lt;/a&gt;, le navigateur du futur, soit aussi sensible à cette faille.&lt;br /&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=18089" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=18089</wfw:commentRss></entry><entry><title>Il me pousse des poils</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2005/01/08/17992.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17992</id><created>2005-01-08T13:06:00Z</created><content type="text/html" mode="escaped">&lt;a href="http://blogs.dotnetguru.org/jbevain/index.php?title=dotnetguru_contributes_to_mono&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1"&gt;&lt;img border="0" src="http://evain.net/public/mono_contributor.gif" border="0"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17992" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17992</wfw:commentRss></entry><entry><title>Fonctions anonymes, Pointeurs de fonctions, Closures, JavaScript</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/12/29/17957.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17957</id><created>2004-12-29T13:45:00Z</created><content type="text/html" mode="escaped">&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;style type="text/css"&gt;
.csharpcode
{
	font-size: 10pt;
	color: black;
	font-family: Courier New , Courier, Monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0px; }
.rem { color: #008000; }
.kwrd { color: #0000ff; }
.str { color: #006080; }
.op { color: #0000c0; }
.preproc { color: #cc6633; }
.asp { background-color: #ffff00; }
.html { color: #800000; }
.attr { color: #ff0000; }
.alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0px;
}
.lnum { color: #606060; }
&lt;/style&gt;
Etant donné l'actualité mouvementée, un petit post pour se reveiller.&lt;br /&gt;
&lt;br /&gt;
J'ai mis à jour ma petite librairie JavaScript, toujours &lt;a href="http://www.evain.net/public/script.js.html"&gt;disponible ici&lt;/a&gt;.&lt;br /&gt;
Les petites nouveautés, c'est des petites fonctions inspirées du monde ruby, qui permettent de travailler avec ce que l'on pourrait appeller des closures. Un petit exemple :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="preproc"&gt;var&lt;/span&gt; ppj = &lt;span class="preproc"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;"Pierre"&lt;/span&gt;, &lt;span class="str"&gt;"Paul"&lt;/span&gt;, &lt;span class="str"&gt;"Jacques"&lt;/span&gt;);
ppj.each(&lt;span class="preproc"&gt;function&lt;/span&gt;(elem) {
    document.write(elem + &lt;span class="str"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;);
});
&lt;/pre&gt;
&lt;br /&gt;
Très simple à implémenter en JavaScript cette fonction each, surtout quand on sait qu'en JavaScript une fonction est un type comme un autre :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="rem"&gt;/**&lt;/span&gt;
&lt;span class="rem"&gt;* Appelle une fonction pour chaque element&lt;/span&gt;
&lt;span class="rem"&gt;* du tableau&lt;/span&gt;
&lt;span class="rem"&gt;*/&lt;/span&gt;
Array.prototype.each = &lt;span class="preproc"&gt;function&lt;/span&gt;(functor) {
    &lt;span class="preproc"&gt;for&lt;/span&gt; (&lt;span class="preproc"&gt;var&lt;/span&gt; i = 0 ; i &amp;lt; &lt;span class="preproc"&gt;this&lt;/span&gt;.length ; i++) {
        functor(&lt;span class="preproc"&gt;this&lt;/span&gt;[i]);
    }
}
&lt;/pre&gt;
&lt;br /&gt;
Franchement, c'est classe non ? Si on a besoin de travailler impérativement avec les index, on peut utiliser cette fonction :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="preproc"&gt;var&lt;/span&gt; ppj = &lt;span class="preproc"&gt;new&lt;/span&gt; Array(&lt;span class="str"&gt;"Pierre"&lt;/span&gt;, &lt;span class="str"&gt;"Paul"&lt;/span&gt;, &lt;span class="str"&gt;"Jacques"&lt;/span&gt;);
ppj.eachWithIndex(&lt;span class="preproc"&gt;function&lt;/span&gt;(elem, i) {
    document.write(&lt;span class="str"&gt;"at "&lt;/span&gt; + i + &lt;span class="str"&gt;" : "&lt;/span&gt; + elem + &lt;span class="str"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;);
});
&lt;/pre&gt;
&lt;br /&gt;
Bien pratique, j'ai rajouté cette fonctionnalité sur ma Hashtable, du coup, ça donne ça : &lt;br /&gt;
&lt;br /&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="preproc"&gt;var&lt;/span&gt; ht = &lt;span class="preproc"&gt;new&lt;/span&gt; Hashtable();
ht.put(&lt;span class="str"&gt;"jbe"&lt;/span&gt;, 21);
ht.put(&lt;span class="str"&gt;"pvb"&lt;/span&gt;, 24); &lt;span class="rem"&gt;// et toujours pas marié&lt;/span&gt;

ht.each(&lt;span class="preproc"&gt;function&lt;/span&gt;(key, value) {
    document.write(key + &lt;span class="str"&gt;" is "&lt;/span&gt; + value + &lt;span class="str"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;);
});
&lt;/pre&gt;
&lt;br /&gt;
Alors, qui a dit que le JavaScript était un "sous" langage. C'est d'autant plus appréciable qu'on le retrouve un petit peu partout, bref, comment professionaliser le développement XUL par exemple hein ?&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17957" width="1" height="1"&gt;</content><slash:comments>4</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17957</wfw:commentRss></entry><entry><title>Un nouvel IDE a vu le jour !</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/12/20/17929.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17929</id><created>2004-12-20T13:15:00Z</created><content type="text/html" mode="escaped">Il y a peu je me plaignais du manque de caractère de SharpDevelop.&lt;br/&gt;
Ce matin, Hans Fratz sur la liste de Mono a annoncé la preview d'un nouvel IDE très prometteur : x-develop.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://blogs.dotnetguru.org/jbevain/index.php?title=new_dotnetide_x_develop&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1"&gt;Voir mon annonce sur les blogs DotNetGuru&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://blogs.dotnetguru.org/jbevain/index.php?title=sharpdevelop_manque_d_ambition&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1"&gt;La où je me plains de SharpDevelop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://lists.ximian.com/archives/public/mono-devel-list/2004-December/009476.html"&gt;Le mail de Hans Fratz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://evain.net/public/xdevelop_first.png"&gt;Un screen shot de X-develop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.x-develop.com/"&gt;La page de X-develop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Hey, good work !&lt;br /&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17929" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17929</wfw:commentRss></entry><entry><title>Google &amp; IntelliSense</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/12/10/17899.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17899</id><created>2004-12-10T16:01:00Z</created><content type="text/html" mode="escaped">Google, des gens qui n'ont pas fini de nous surprendre.&lt;br /&gt;
Tout droit sorti des labs, la dernière petite nouveauté, c'est la complétion de votre requête.&lt;br /&gt;
C'est assez impressionnant, petit exemple :&lt;br /&gt;
&lt;img src="http://evain.net/public/google_aspect_complete.png"&gt;&lt;br /&gt;
&lt;br /&gt;
Pour essayer vous même :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.google.fr/webhp?hl=en&amp;complete=1"&gt;http://www.google.fr/webhp?hl=en&amp;complete=1&lt;/a&gt;&lt;/li
&lt;/ul&gt;
&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17899" width="1" height="1"&gt;</content><slash:comments>6</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17899</wfw:commentRss></entry><entry><title>Ubuntu</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/22/17850.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17850</id><created>2004-11-22T06:24:00Z</created><content type="text/html" mode="escaped">Pour des raisons que le monde entier découvrira un jour, je viens d'installer un Linux sur mon ordinateur. J'ai choisi comme distribution Ubuntu, car la philosophie du produit est sympa, et tout tourne à merveille. Ubuntu pour les gens qui ne connaissent pas, c'est une Debian un petit peu retouchée, je vous invite à aller voir le lien que vous trouverez ci-dessous. Deuxième lien bien pratique, un LiveCD Linux, basé sur une Gentoo, qui m'a permis de resizer mes partoches NTFS, sans rien perdre, sans douleur, sans chemise, ni pantalon. Et puis vu le nom je suis sur que ça peut servire à des tas d'autres trucs.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.ubuntu.com" target="ext"&gt;Ubuntu Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sysresccd.org/" target="ext"&gt;SystemRescueCD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17850" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17850</wfw:commentRss></entry><entry><title>Un jour, oui un jour le ferai !</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/22/17849.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17849</id><created>2004-11-21T23:09:00Z</created><content type="text/html" mode="escaped">Je suis tombé amoureux d'un nouveau projet, oui, un de plus.&lt;br /&gt;
&lt;br /&gt;
Ca fait un tiers d'année que je suis au labo.net, et le Java me manque. Ce soir, au lieu de bosser comme je devrais le faire, et suite à un post sur la ML développeur de Mono, je me suis a butiner frénétiquement l'Internet multimédia, jusqu'à tomber la dessus : &lt;a href="http://jnode.sourceforge.net/" target="jnode"&gt;JNode&lt;/a&gt;. Qu'est ce que JNode, c'est tout simplement un OS écrit à plus de 90% en Java. Seule la couche basse est écrite spécifiquement pour la plateforme (seul les x86 sont supportés pour le moment). Et tout le reste est écrit en Java, et mes amis, quel Java. Tout est très propre, très bien écris, avec une magnifique architecture ouverte, où l'on peut se brancher un peu partout. Mon rêve en fait. Ca n'utilise que du bon, Ant, Eclipse, Jakarta-commons, et tous plein de projets tous aussi géniaux les un que les autres.&lt;br /&gt;
&lt;br /&gt;
Imaginez un peu un OS où l'on pourrait choisir ses composants très facilement, se brancher de manière sécurisée n'importe où ou presque dans l'OS, que ce dernier soit portable partout, qu'il bénéficie d'un formidable existant. C'est tout ça JNode. C'est quand même impressionant. Je dois avouer je suis bluffé quand même. C'est triste je n'ai pas réussi à le faire fonctionner sur Virtual PC, même avec le SP1, qui malgré deux erreurs, s'est installé (il est quand même fort ce SP1), il va falloir que je retrouve où j'ai mis ma licence VMWare...&lt;br /&gt;
&lt;b&gt;EDIT : &lt;/b&gt;J'ai quand même réussi à le faire tourner avec QEMU, après avoir compilé le machin, c'est marrant, pas très rapide, mais c'est quand même fort, mais pas très rapide.&lt;br /&gt;
&lt;br /&gt;
Quand je pense à toutes les possibilitées que ça ouvre, c'est dingue. Imaginez une FS type Unix où l'on pourrait accrocher ses propres méta données, oui, comme pour WinFS (un beau jour peut-être), ou comme BeOS le faisait si bien. Dans vos programmes vous les retrouvez ni une ni deux.  Ensuite imaginez ça combiner avec tous les petits plus du langage en 5.0, comme ils refont une VM, on peut très bien espérer un support des générics pour de vrai. Ca rentre tout à fait dans mes fantasmes technologiques, il y a des millions de choses à faire. &lt;br /&gt;
&lt;br /&gt;
Un jour, il faudra le faire en C# quand même, on va pas laisser ces c*ns d'intellos nous empêcher de devenir CRS !!!&lt;br /&gt;
&lt;br /&gt;
Je redonne le lien, au cas ou j'ai réussi à vous donner (au moins) envie d'aller voir :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jnode.sourceforge.net/" target="jnode"&gt;JNode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17849" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17849</wfw:commentRss></entry><entry><title>Ruby, état du lard</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/14/17830.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17830</id><created>2004-11-14T03:16:00Z</created><content type="text/html" mode="escaped">De bon matin, et parce que j'ai été ammené il y a peu à utiliser un de mes langages favoris, le &lt;a href="http://www.ruby-lang.org/en"&gt;Ruby&lt;/a&gt;, je vais me fendre au fil de quelques articlets à venir de divers points comme :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;La découverte du Ruby&lt;/li&gt;
&lt;li&gt;Tous ces petits plus qui vous changent la vie en Ruby&lt;/li&gt;
&lt;li&gt;LE framework ultime pour le développement web en Ruby&lt;/li&gt;
&lt;li&gt;Et surement d'autres choses...&lt;/li&gt;
&lt;/ul&gt;
En attendant, et comme il serait dommage de ne pas vous appater avec un petit peu de code, voila un lien fort sympathique :
&lt;ul&gt;
&lt;li&gt;&lt;h3&gt;&lt;a href="http://florilien.sample4.net"&gt;Le florilien&lt;/a&gt;&lt;/h3&gt;&lt;/li&gt;
&lt;/ul&gt;
Comme vous pouvez le constater en rafraichissant la page, la liste de lien est aléatoire.&lt;br /&gt;
Vous pouvez par exemple regarder sa source première (qui n'est pas de mon fait), ici :&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:12px; font-family:monospace; "&gt;&lt;span style="color:#7d00ff;"&gt;require&lt;/span&gt; &lt;span style="color:#8c8c8c;"&gt;'sqlite'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
db = SQLite::Database.new ( &lt;span style="color:#8c8c8c;"&gt;"../sample4.db"&lt;/span&gt;, &lt;span style="color:#03b514;"&gt;0&lt;/span&gt; )&lt;br /&gt;
rs = db.execute ( &lt;span style="color:#8c8c8c;"&gt;"SELECT id FROM sample4;"&lt;/span&gt; )&lt;br /&gt;

&lt;br /&gt;
na = []&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0000cc;"&gt;def&lt;/span&gt; rebuild ( arr )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr2 = []&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr.each { |row|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;if&lt;/span&gt; ( !row.&lt;span style="color:#0000cc;"&gt;nil&lt;/span&gt;? )&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr2.push ( row )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;end&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;return&lt;/span&gt; arr2&lt;br /&gt;
&lt;span style="color:#0000cc;"&gt;end&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color:#0000cc;"&gt;def&lt;/span&gt; setValue ( arr, arr2 )&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;if&lt;/span&gt; ( arr.size &amp;gt; &lt;span style="color:#03b514;"&gt;0&lt;/span&gt; )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r = &lt;span style="color:#7d00ff;"&gt;rand&lt;/span&gt; ( arr.size )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr2.push ( arr[ r ] )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr[ r ] = &lt;span style="color:#0000cc;"&gt;nil&lt;/span&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;arr = rebuild ( arr )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;return&lt;/span&gt; setValue ( arr, arr2 )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;end&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;return&lt;/span&gt; arr2&lt;br /&gt;
&lt;span style="color:#0000cc;"&gt;end&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
na = setValue ( rs, na )&lt;br /&gt;

&lt;br /&gt;
na.each { |id|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;db.execute ( &lt;span style="color:#8c8c8c;"&gt;"SELECT title, url FROM sample4 WHERE id=&lt;/span&gt;&lt;span style="color:#669999;"&gt;#{id['id']}&lt;/span&gt;&lt;span style="color:#8c8c8c;"&gt;;"&lt;/span&gt; ) { |lien|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#7d00ff;"&gt;puts&lt;/span&gt; &lt;span style="color:#8c8c8c;"&gt;"&amp;lt;a href=\"&lt;/span&gt;&lt;span style="color:#669999;"&gt;#{lien['url']}&lt;/span&gt;&lt;span style="color:#8c8c8c;"&gt;\"&amp;gt;&lt;/span&gt;&lt;span style="color:#669999;"&gt;#{lien['title']}&lt;/span&gt;&lt;span style="color:#8c8c8c;"&gt;&amp;lt;/a&amp;gt;"&lt;/span&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;if&lt;/span&gt; ( id != na.last )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#7d00ff;"&gt;puts&lt;/span&gt; &lt;span style="color:#8c8c8c;"&gt;"&amp;lt;span class=\"separator\"&amp;gt; | &amp;lt;/span&amp;gt;\n"&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000cc;"&gt;end&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;

}&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Et la version actuelle (que j'ai écrite) : &lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align:left;color:#000000; background-color:#ffffff; border:solid black 1px; padding:0.5em 1em 0.5em 1em; overflow:auto;font-size:12px; font-family:monospace; "&gt;&lt;span style="color:#7d00ff;"&gt;require&lt;/span&gt; &lt;span style="color:#8c8c8c;"&gt;'sqlite'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
db = SQLite::Database.new( &lt;span style="color:#8c8c8c;"&gt;"../sample4.db"&lt;/span&gt;, &lt;span style="color:#03b514;"&gt;0&lt;/span&gt; )&lt;br /&gt;
rs = db.execute( &lt;span style="color:#8c8c8c;"&gt;"select title, url from sample4;"&lt;/span&gt; )&lt;br /&gt;

ar = [ &lt;span style="color:#03b514;"&gt;-1&lt;/span&gt;, &lt;span style="color:#03b514;"&gt;1&lt;/span&gt; ]&lt;br /&gt;
res = rs.sort { |x,y|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ar[ &lt;span style="color:#7d00ff;"&gt;rand&lt;/span&gt;( &lt;span style="color:#03b514;"&gt;2&lt;/span&gt; ) ]&lt;br /&gt;
}&lt;br /&gt;

&lt;br /&gt;
res.each { |record|&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#7d00ff;"&gt;puts&lt;/span&gt;( &lt;span style="color:#8c8c8c;"&gt;"&amp;lt;a href=\"&lt;/span&gt;&lt;span style="color:#669999;"&gt;#{record[ 'url' ]}&lt;/span&gt;&lt;span style="color:#8c8c8c;"&gt;\"&amp;gt;&lt;/span&gt;&lt;span style="color:#669999;"&gt;#{record[ 'title' ]}&lt;/span&gt;&lt;span style="color:#8c8c8c;"&gt;&amp;lt;/a&amp;gt;"&lt;/span&gt; )&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#7d00ff;"&gt;puts&lt;/span&gt;( &lt;span style="color:#8c8c8c;"&gt;"&amp;lt;span class=\"separator\"&amp;gt; | &amp;lt;/span&amp;gt;"&lt;/span&gt; ) &lt;span style="color:#0000cc;"&gt;if&lt;/span&gt;( record != res.last )&lt;br /&gt;

}&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Comme vous pouvez le constater, le SGBD utilisé est &lt;a href="http://www.sqlite.org"&gt;sqlite&lt;/a&gt;.&lt;br /&gt;
Oui, les ruby-istes n'ont pas attendu php5 pour découvrir sqlite.&lt;br /&gt;
&lt;br /&gt;
puts("Stay tuned !")&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17830" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17830</wfw:commentRss></entry><entry><title>Maître Renard</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/09/17739.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17739</id><created>2004-11-09T09:11:00Z</created><content type="text/html" mode="escaped">&lt;a href="http://www.mozilla.org/"&gt;&lt;img src="http://www.evain.net/public/firefox.png" style="border : 0px solid white" /&gt;&lt;/a&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17739" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17739</wfw:commentRss></entry><entry><title>The Daily WTF !</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/06/17710.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17710</id><created>2004-11-06T15:52:00Z</created><content type="text/html" mode="escaped">Après avoir modifié un peu Rail, et bien pesté, je suis tombé sur un site magique : &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://thedailywtf.com/"&gt;The Daily WTF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Les archives, c'est là qu'il faut aller !&lt;br /&gt;
Mon dieu, mais je connais tellement de &lt;b&gt;développeurs&lt;/b&gt; dont le code pourrait être ainsi mis en valeur...&lt;br /&gt;
&lt;br /&gt;
Oui, moi, compris...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[EDIT]&lt;/b&gt;  Un que j'adore : &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://thedailywtf.com/archive/2004/08/27/1428.aspx"&gt;Daphne&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17710" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17710</wfw:commentRss></entry><entry><title>AspectDNG on Mono step 1</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/11/05/17675.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17675</id><created>2004-11-04T23:29:00Z</created><content type="text/html" mode="escaped">Grand petit pas pour AspectDNG ce soir, j'ai réussi à bidouiller Rail pour passer outre certains bugs de Mono. Du coup, premier round-trip réussi sous Mono.&lt;br /&gt;
Qu'est ce qu'un round-trip ? C'est tout simplement le fait de passer une assembly à la moulinette ILML, et ré-assembler l'assembly à partir de l'ILML.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;
D:\temporary\ilml&gt;hello.exe
Hello World !

D:\temporary\ilml&gt;il2ilml hello.exe hello.exe.xml
D:\temporary\ilml&gt;ilml2il hello.exe.xml hello.new.exe
D:\temporary\ilml&gt;hello.new.exe
Hello World !

D:\temporary\ilml&gt;mono il2ilml.exe hello.exe hello.exe.xml
D:\temporary\ilml&gt;mono ilml2il.exe hello.exe.xml hello.new.exe
D:\temporary\ilml&gt;mono hello.new.exe
Hello World !

D:\temporary\ilml&gt;
&lt;/pre&gt;
&lt;br /&gt;
On va y arriver !&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17675" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17675</wfw:commentRss></entry><entry><title>Mono Summit</title><link rel="alternate" type="text/html" href="http://forums.labo-dotnet.com/blogs/jbevain/archive/2004/10/27/17436.aspx" /><id>33325cf9-4335-432a-b7b4-cf02bc424355:17436</id><created>2004-10-27T09:13:00Z</created><content type="text/html" mode="escaped">Les gens qui font Mono se sont réunis autour d'une table, le compte rendu est disponible ici : &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.go-mono.com/summit-notes.html"&gt;Summit Notes&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Important, si vous voulez savoir de quoi sera fait le futur proche de Mono.&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://forums.labo-dotnet.com/aggbug.aspx?PostID=17436" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://forums.labo-dotnet.com/blogs/jbevain/commentrss.aspx?PostID=17436</wfw:commentRss></entry></feed>