<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUUFSHs9cSp7ImA9WhRaFEg.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394</id><updated>2012-02-17T05:33:39.569+01:00</updated><title>Chapeau Noir</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.chapeaunoir.info/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.chapeaunoir.info/" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ChapeauNoir" /><feedburner:info uri="chapeaunoir" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkEMRXs4cCp7ImA9WhZTFUk.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-7164908373725439399</id><published>2011-03-19T16:31:00.000+01:00</published><updated>2011-03-19T16:31:24.538+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-19T16:31:24.538+01:00</app:edited><title>Les optimisations arithmétiques</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2011/03/les-optimisations-arithmetiques.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/7164908373725439399?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/7164908373725439399?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/0t9YqzbJQv0/les-optimisations-arithmetiques.html" title="Les optimisations arithmétiques" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">À la question, lesquelles de ces fonctions sont optimisées par le compilateur ?

#define SIZE 16
int const Size = SIZE;

int withMacro(int x)
{
    return x * SIZE;
}

int withConstant(int x)
{
    return x * Size;
}

int withDecal(int x)
{
    return x &amp;lt;&amp;lt; 4;
}

int withMacro3(int x)
{
    return x * SIZE * SIZE * SIZE;
}

int withConstant3(int x)
{
    return x * Size * Size * Size;
}

int 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p2ZOKcEtf_Fu7e6cYWrjq2-jeXo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p2ZOKcEtf_Fu7e6cYWrjq2-jeXo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p2ZOKcEtf_Fu7e6cYWrjq2-jeXo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p2ZOKcEtf_Fu7e6cYWrjq2-jeXo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/0t9YqzbJQv0" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2011/03/les-optimisations-arithmetiques.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4EQ3o5fCp7ImA9WhZTFUk.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-349446410687374698</id><published>2010-09-22T12:55:00.001+02:00</published><updated>2011-03-19T16:18:22.424+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-19T16:18:22.424+01:00</app:edited><title>De la conception d'un server muti thread</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/09/de-la-conception-dun-server-muti-thread.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/349446410687374698?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/349446410687374698?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/tKxQUQYKhYw/de-la-conception-dun-server-muti-thread.html" title="De la conception d'un server muti thread" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Dernière ce titre pompeux se cache une prise de conscience. La vérité est parfois dure à admettre, mais en informatique, les choses sont souvent simple à mesurer, à comparer, en particulier lorsqu'il s'agit des performances.

J'ai récemment écrit un serveur http en C++, et c'est à la lecture de plusieurs articles, dont celui qui ma motivé à écrire cet article : http://pl.atyp.us/content/tech/
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dGIvCHfkzq68GZHKEn3VmK4HRvM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dGIvCHfkzq68GZHKEn3VmK4HRvM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dGIvCHfkzq68GZHKEn3VmK4HRvM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dGIvCHfkzq68GZHKEn3VmK4HRvM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/tKxQUQYKhYw" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/09/de-la-conception-dun-server-muti-thread.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04CRH0yeCp7ImA9WxFaFU4.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-4060186532416945159</id><published>2010-07-19T10:27:00.000+02:00</published><updated>2010-07-19T11:32:45.390+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-19T11:32:45.390+02:00</app:edited><title>Un glouton web en sh :)</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/07/un-glouton-web-en-sh.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/4060186532416945159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/4060186532416945159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/dSFscjfOxUE/un-glouton-web-en-sh.html" title="Un glouton web en sh :)" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Ça faisait longtemps que l'idée me trottait dans la tête, surtout que j'avais déjà codé un certain nombre de mini scripts répondant parfaitement aux besoins du moment. Mais cette fois-ci, je me suis forcé a rendre la chose un peu plus générale. J'ai donc fait un jeu de quatre scripts permettant d'automatiser la recherche, le téléchargement et le nettoyage. Je vais détailler le travail de chacun 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9tO9ZHAk64FIg8jTK-nrRz7g304/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9tO9ZHAk64FIg8jTK-nrRz7g304/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9tO9ZHAk64FIg8jTK-nrRz7g304/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9tO9ZHAk64FIg8jTK-nrRz7g304/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/dSFscjfOxUE" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/07/un-glouton-web-en-sh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EHR3o9fSp7ImA9WxBVGE4.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-7600405074505135589</id><published>2010-02-22T12:25:00.000+01:00</published><updated>2010-02-22T12:53:56.465+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-22T12:53:56.465+01:00</app:edited><title>Regarder une video loin de chez soi...</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/02/regarder-une-video-loin-de-chez-soi.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/7600405074505135589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/7600405074505135589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/DQGnSV5Iem4/regarder-une-video-loin-de-chez-soi.html" title="Regarder une video loin de chez soi..." /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Vous avez sûrement déjà été confronté à ce problème si vous possédez un serveur perso, sur une connection ADSL standard...Des solutions ? Pleins ! La plus simple consiste a installer un serveur HTTP, comme lighttpd, et lire une jolie URL avec VLC par ou autre.Mais ce post est là puisque je me suis confronté à la lenteur désespérante de ma connection. voici une méthode qui économise chaque bit de 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0A3dFFL8xdJcrkdMeAPmA1EZX04/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0A3dFFL8xdJcrkdMeAPmA1EZX04/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0A3dFFL8xdJcrkdMeAPmA1EZX04/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0A3dFFL8xdJcrkdMeAPmA1EZX04/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/DQGnSV5Iem4" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/02/regarder-une-video-loin-de-chez-soi.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FQ386fip7ImA9WxBUFU8.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-320311264100568058</id><published>2010-02-20T21:17:00.000+01:00</published><updated>2010-03-02T11:13:32.116+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-02T11:13:32.116+01:00</app:edited><title>De l'AJAX non intrusif avec PyJS</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/02/de-lajax-non-intrusif-avec-pyjs.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/320311264100568058?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/320311264100568058?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/qLAdUc_9vlM/de-lajax-non-intrusif-avec-pyjs.html" title="De l'AJAX non intrusif avec PyJS" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Quand on passe un site web en ajax, on doit faire face à au moins deux problèmes par rapport à un site normal. Tout d'abord, si les liens n'existent pas vraiment, c'est a dire au sens WEB1.0, le référencement ne sera pas optimal, et même si les moteurs de recherche analysent de plus en plus notre Javascript, il vaut mieux montrer à ces moteurs la page la plus simple à analyser. Le deuxième 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-UW3c1STDcmQAPNiV06fglEnMIc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UW3c1STDcmQAPNiV06fglEnMIc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-UW3c1STDcmQAPNiV06fglEnMIc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-UW3c1STDcmQAPNiV06fglEnMIc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/qLAdUc_9vlM" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/02/de-lajax-non-intrusif-avec-pyjs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4EQHY-eyp7ImA9WxBVFk0.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-8499635699497629913</id><published>2010-02-19T18:39:00.000+01:00</published><updated>2010-02-19T19:41:41.853+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-19T19:41:41.853+01:00</app:edited><title>Internet Explorer Element prototyping dans PyJS</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/02/internet-explorer-element-prototyping.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/8499635699497629913?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/8499635699497629913?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/LNNWC8ZITgQ/internet-explorer-element-prototyping.html" title="Internet Explorer Element prototyping dans PyJS" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Non, ceci n'est pas une nouvelle complainte sur les bugs d'IE, même si ça concerne un problème qui lui est spécifique. En effet, lors du développement de ma petite librairie PyJS, j'ai été confronté à ce problème.Piqûre de rappelLe prototypage des éléments du DOM se fait simplement sur la plupart des navigateurs, il suffit de modifier le prototype de l'objet ElementElement.prototype.myMethod = 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DVU4GZmfT74w-Ry457dXgQfyuB4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DVU4GZmfT74w-Ry457dXgQfyuB4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DVU4GZmfT74w-Ry457dXgQfyuB4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DVU4GZmfT74w-Ry457dXgQfyuB4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/LNNWC8ZITgQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/02/internet-explorer-element-prototyping.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcDRn44fCp7ImA9WxBVFUQ.&quot;"><id>tag:blogger.com,1999:blog-3839296396356053394.post-8622517490164841706</id><published>2010-02-19T17:18:00.000+01:00</published><updated>2010-02-19T17:31:17.034+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-19T17:31:17.034+01:00</app:edited><title>MusiKissCool.Org ça arrive !</title><link rel="replies" type="text/html" href="http://blog.chapeaunoir.info/2010/02/musikisscoolorg-ca-arrive.html#comment-form" title="0 commentaires" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/8622517490164841706?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3839296396356053394/posts/default/8622517490164841706?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChapeauNoir/~3/-KJu4yjjiqo/musikisscoolorg-ca-arrive.html" title="MusiKissCool.Org ça arrive !" /><author><name>Raphaël Londeix</name><uri>http://www.blogger.com/profile/13291275786582030725</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><content type="html">Voilà, j'ai craqué, j'ai finalement acheté les noms de domaine  musikisscool.org et musikisscool.info. Ils serviront à présenter mon petit serveur de musique à travers le ninternet. Pour l'instant, je n'ai mis aucune source en téléchargement puisque je procède en ce moment à une refonte complète du serveur de média. En particulier, j'ajoute une notion de source, qui permettra de brancher diverse 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KP7Enr82mhrbmOs1pAohM7w_PFU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KP7Enr82mhrbmOs1pAohM7w_PFU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KP7Enr82mhrbmOs1pAohM7w_PFU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KP7Enr82mhrbmOs1pAohM7w_PFU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ChapeauNoir/~4/-KJu4yjjiqo" height="1" width="1"/&gt;</content><feedburner:origLink>http://blog.chapeaunoir.info/2010/02/musikisscoolorg-ca-arrive.html</feedburner:origLink></entry></feed>

