<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Imaginations</title>
	<link>http://imagina.ti0n.net/</link>
	<description>Ce qu'il y a de plus beau r&#233;side dans le pouvoir d'imaginer quelque chose, et de le rendre r&#233;el</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="fr">
		<title>L'apocalypse climatique : p&#233;nurie de bi&#232;re </title>
		<link>http://imagina.ti0n.net/spip.php?article45</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article45</guid>
		<dc:date>2010-08-11T11:02:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>science</dc:subject>
		<dc:subject>j'aime</dc:subject>

		<description>Quand vous pensez r&#233;chauffement climatique, vous vous d&#238;tes c'est pas grave, je pourrais toujours rester &#224; l'ombre avec une bi&#232;re fraiche &#224; la main. Que nenni, le r&#233;chauffement climatique nous menace, depuis 2005 les p&#233;nuries partielles de bi&#232;res &#224; travers le monde se multiplient. En cause : Chinois &amp; Indiens, r&#233;chauffement climatique, et production. Parce que la bi&#232;re qui nous viens d'Inde et de Perse fait parti de notre patrimoine mondiale, nous devons lutter contre ce fl&#233;au. L'offre augmente (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique4" rel="directory"&gt;science&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot3" rel="tag"&gt;science&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot14" rel="tag"&gt;j'aime&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L150xH113/arton45-c2210.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='113' class='spip_logos' style='height:113px;width:150px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Quand vous pensez r&#233;chauffement climatique, vous vous d&#238;tes c'est pas grave, je pourrais toujours rester &#224; l'ombre avec une bi&#232;re fraiche &#224; la main. Que nenni, le r&#233;chauffement climatique nous menace, depuis 2005 les p&#233;nuries partielles de bi&#232;res &#224; travers le monde se multiplient.&lt;/p&gt; &lt;p&gt;En cause : Chinois &amp; Indiens, r&#233;chauffement climatique, et production.&lt;/p&gt; &lt;p&gt;Parce que la bi&#232;re qui nous viens d'Inde et de Perse fait parti de notre patrimoine mondiale, nous devons lutter contre ce fl&#233;au.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;L'offre augmente&lt;/h3&gt;
&lt;p&gt;Comme il est fait plus chaud, et que le monde veut aussi sa bi&#232;re &#224; l'ombre, la demande en bi&#232;re augmente aussi. Et l'Inde ainsi que la Chine (plus de 2 milliards d'individus) ont un march&#233; en expansion (entre 5-10% par an depuis 8 ans) [&lt;a href='#nb1' class='spip_note' rel='footnote' title='D&#233;sol&#233;, j'ai pas 1100$ &#224; d&#233;penser pour avoir les chiffres exacts)' id='nh1'&gt;1&lt;/a&gt;].&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Les surfaces cultiv&#233;es et la qualit&#233; diminuent&lt;/h3&gt;
&lt;p&gt;Les alarmes suite &#224; des p&#233;nuries de mati&#232;re premi&#232;re augmentent : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.toytowngermany.com/lofi/index.php/t53259.html' class='spip_out'&gt;en Allemagne&lt;/a&gt; ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.radio-canada.ca/nouvelles/Economie-Affaires/2007/11/23/003-Houblon-penurie-microbrasserie.shtml' class='spip_out'&gt;au Qu&#233;bec&lt;/a&gt; ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.treehugger.com/files/2009/09/global-warming-affecting-beer-production-saaz-hops-pilsner-beer.php' class='spip_out'&gt;en Tch&#233;coslovaquie&lt;/a&gt; ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://blog.seattlepi.com/whatsontap/archives/123826.asp' class='spip_out'&gt;aux US&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Notre ami le houblon est tr&#232;s sensible &#224; la chaleur pour ses qualit&#233;s organoleptiques, or, il se trouve que le changement de climat est suffisant pour que cela soit notable, notamment en Tch&#233;coslovaquie. Qu'il y ait moins de houblon c'est d&#233;j&#224; dur, qu'ils deviennent moins bon, encore plus.&lt;/p&gt; &lt;p&gt;Vous allez me dire : c'est pas grave, si il fait plus chaud les plantations n'ont qu'&#224; migrer vers le nord !&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Le houblon : une plante et des Hommes&lt;/h3&gt;
&lt;p&gt;Que nenni le houblon c'est aussi un &lt;a href='http://yserhouck.free.fr/Textes/houblon2.htm' class='spip_out'&gt;savoir faire et beaucoup de travail&lt;/a&gt; : il faut non seulement avoir la bonne zone g&#233;ographique, mais aussi le savoir faire, et cela prend du temps.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Premi&#232;re victime les micro-brasseurs&lt;/h3&gt;
&lt;p&gt;&lt;span class='spip_document_65 spip_documents spip_documents_left' style='float:left; width:500px;'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH301/houblon2-36baa.jpg' width='500' height='301' alt=&quot;&quot; style='height:301px;width:500px;' /&gt;&lt;/span&gt;&lt;span class='spip_document_66 spip_documents spip_documents_right' style='float:right; width:500px;'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH379/orge2-b0541.jpg' width='500' height='379' alt=&quot;&quot; style='height:379px;width:500px;' /&gt;&lt;/span&gt;
(source : &lt;a href='http://www.bieresetplaisirs.com/nouvelle.php?ID=317' class='spip_out' rel='nofollow'&gt;http://www.bieresetplaisirs.com/nou...&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;M&#234;me si l'&#233;conomiste ayant r&#233;dig&#233; cette article montre que la tendance sur un si&#232;cle est &#224; la baisse, on ne peut que constater la mont&#233;e des prix significative depuis 2006 o&#249; les premi&#232;res annonces de p&#233;nuries ont &#233;t&#233; faites chez les brasseurs.&lt;/p&gt; &lt;p&gt;En plus, l'orge brassicole et le houblon ne sont pas des mati&#232;res premi&#232;res sur lequel les hedge fund peuvent sp&#233;culer. &lt;strong&gt;Il semble donc que ce ne soit pas une conjoncture li&#233;e &#224; de la sp&#233;culation, mais bien une tendance structurelle.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Ce qui est le plus triste c'est que ce sont les micro brasseurs qui sont touch&#233;s :( Les bi&#232;res de caract&#232;res paient laissent du fait des co&#251;ts la place aux pisses innommables.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;L'Europe au secours ?&lt;/h3&gt;
&lt;p&gt;&lt;a href='http://marchedescereales.over-blog.com/article-orge-de-printemps-les-semis-d-orge-en-plein-effervescence-46045335.html' class='spip_out'&gt;Si le monde r&#232;glementaire &#233;volue&lt;/a&gt;, il faut aussi prendre en compte que par exemple pour l'orge brassicole, les besoins en eau sont &#233;lev&#233;s. La culture intensive du ma&#239;s &#233;tant tr&#232;s p&#233;nalisante pour les nappes phr&#233;atiques (elle sont vid&#233;es plus qu'elles ne sont remplies ces derni&#232;res ann&#233;es), il est &#224; craindre que l'Europe n'encouragera pas d'aider des cultures qui p&#233;nalisent notre ind&#233;pendance en ressource naturelles. Entre nourrir les vaches, et saouler les foules que va choisir l'Europe ?&lt;/p&gt; &lt;p&gt;Il semble raisonnable de dire que la bi&#232;re symbole de convivialit&#233; de par son prix, son gout et sa diversit&#233; puisse devenir un produit de luxe fade r&#233;serv&#233; au plus riches.&lt;/p&gt; &lt;p&gt;Pour me consoler, je vais finir par me prendre un bon verre de vin&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;[&lt;a href='#nh1' id='nb1' class='spip_note' title='Notes 1' rev='footnote'&gt;1&lt;/a&gt;] D&#233;sol&#233;, j'ai pas 1100$ &#224; d&#233;penser pour avoir les chiffres exacts)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Facturations : banque contre op&#233;rateurs t&#233;l&#233;com la futur bataille du web</title>
		<link>http://imagina.ti0n.net/spip.php?article44</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article44</guid>
		<dc:date>2010-06-29T13:28:27Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>



		<description>En informatique deux tenants de la s&#233;curit&#233; s'affrontent, les tenants du secrets (technique dite de l'obfuscation) et les tenants des protocoles ouverts. Bizarrement, la futur bataille de la facturation que je vais vous exposer se r&#233;duit &#224; cela. Le e-commerce et le m-commerce, et leur convergence Pour ceux qui ont travailler sur des sites de e-commerces, la partie la plus chiante est d'exp&#233;rience l'int&#233;gration des moyens de paiements (plus ou moins s&#233;curis&#233;s). C'est bien beau et facile de (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique6" rel="directory"&gt;un peu de technique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;En informatique deux tenants de la s&#233;curit&#233; s'affrontent, les tenants du secrets (technique dite de l'obfuscation) et les tenants des protocoles ouverts.&lt;/p&gt; &lt;p&gt;Bizarrement, la futur bataille de la facturation que je vais vous exposer se r&#233;duit &#224; cela.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Le e-commerce et le m-commerce, et leur convergence&lt;/h3&gt;
&lt;p&gt;Pour ceux qui ont travailler sur des sites de e-commerces, la partie la plus chiante est d'exp&#233;rience l'int&#233;gration des moyens de paiements (plus ou moins s&#233;curis&#233;s).&lt;/p&gt; &lt;p&gt;C'est bien beau et facile de pr&#233;senter un catalogue de produit, mais l'essentiel est de vendre et pour vendre, il faut proposer des moyens de paiements : paypal, banques, google checkout (mon pr&#233;f&#233;r&#233; malgr&#233; la communication en soap).&lt;/p&gt; &lt;p&gt;Le probl&#232;me est le suivant : chacun de ces moyens de paiements a :
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; un protocole ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; un cheminement ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; une s&#233;curit&#233; diff&#233;rente.&lt;/p&gt; &lt;p&gt;On se retrouve &#224; tenter d'imaginer une classe g&#233;n&#233;rique pour pouvoir faire ces deux op&#233;rations : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; la pr&#233;sentation du panier &#233;lectronique et sa transmission &#224; l'interm&#233;diaire de paiement (le checkout) ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; la confirmation de la transaction (le billing).&lt;/p&gt; &lt;p&gt;Ces deux op&#233;rations qui semblent simples impliquent g&#233;n&#233;ralement d'installer des kits pseudo-s&#233;curis&#233;s, qui quand on regarde le code source (en tout cas pour les fran&#231;ais) r&#233;v&#232;le chez les entit&#233;s de facturations : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; l'abus d'embauche de d&#233;veloppeurs sous hallucinog&#232;nes red&#233;veloppant les roues hyper cubique ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; la m&#233;connaissance de la crypto de base ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; une m&#233;connaissance de l'int&#233;gration syst&#232;me.&lt;/p&gt; &lt;p&gt;Pour avoir travailler chez un acteur de la fourniture de contenu payant sur t&#233;l&#233;phone mobile, les technos pr&#233;-3G ressemblent comme deux gouttes d'eau &#224; cette probl&#233;matique.&lt;/p&gt; &lt;p&gt;Mais elles offrent un avantage de taille le m-commerce (ou commerce sur les technos des op&#233;rateurs telco) permettent de diminuer d'un nombre significatifs d'&#233;tapes le paiement et sa validit&#233; : vous avez juste &#224; valider la transaction et elle se retrouve sur votre facture t&#233;l&#233;coms.&lt;/p&gt; &lt;p&gt;Comparons le e-commerce et le m-commerce en nombres d'&#233;tapes :&lt;/p&gt; &lt;p&gt;E-commernce : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; checkout ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; rentrez son identifiant (num&#233;ro de carte bleu, identifiant paypal, google..) ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; valider (mot de passe, cryptogramme / date) ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; communication / validation (billing) ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; penser &#224; g&#233;rer les contentieux juridiques.&lt;/p&gt; &lt;p&gt;M-commerce ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; checkout ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; validation ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; facturation ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; contentieux avec moins d'interlocuteurs.&lt;/p&gt; &lt;p&gt;Comment dire : le nombre de clicks diminuant, on gagne plus de r&#233;alisations de paiements. De plus les facturations telco sont tr&#232;s adapt&#233;es au micro paiement.&lt;/p&gt; &lt;p&gt;Messieurs les marketteux : en pouvant facturer plus vite pour moins cher on augmente le taux de transformation : allelu&#239;a. Oui c'est le fameux one-click-purchase d'amazon.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Les telco peuvent-ils vraiment concurrencer les banques ? &lt;/h3&gt;
&lt;p&gt;Oui. Ce qui co&#251;te le plus cher pour ce genre d'entreprise, ce n'est pas les routeurs : le vrai coeur de m&#233;tier, la vraie force est la capacit&#233; de g&#233;rer des milliers de factures, et d'options de paiements. Itou pour la banque. Si on regarde de plus pr&#232;s de m&#234;me que EDF, GDF sait le fer et auraient du logiquement se lancer comme op&#233;rateur t&#233;l&#233;coms (ils poss&#232;dent des infras BTP en dur ou mettre des cables en plus).&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La force des telco, la faiblesse des banques&lt;/h3&gt;
&lt;p&gt;Les cartes bleues sont prot&#233;g&#233;es par des proc&#233;d&#233;s &#233;labor&#233;s dans le secret des alc&#244;ves ; ils esp&#232;rent que cela emp&#234;che de casser leurs s&#233;curit&#233;, c'est faux cela les ralenti.&lt;/p&gt; &lt;p&gt;Les op&#233;rateurs t&#233;l&#233;coms traditionnels sont des tenants du fils. Ils ont absorb&#233;s des op&#233;rateurs internet, et la culture internet ce sont des protocoles ouverts.&lt;/p&gt; &lt;p&gt;Dans leur besaces, les op&#233;rateurs internet ont apport&#233; le AAA : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; votre acc&#232;s mail ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; votre acc&#232;s internet ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; vos options ;
sont prot&#233;g&#233;es par un protocole capable de faire 4 000 000 de facturations en parall&#232;les aussi bien &#224; l'acte que dans la dur&#233;e. Ce protocole s'appelle radius.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt; AAA : Authentique Andouille Auvergnate ? &lt;/h3&gt;
&lt;p&gt;Que nenni AAA veut dire : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Authentification : s&#233;curiser la reconnaissance de l'utilisateur ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Authorization : permettre &#224; une personne en fonction de son profil d'acc&#233;ser &#224; certaine ressources ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; Accounting : g&#233;n&#233;rer des &#233;v&#232;nements cl&#233;s permettant la facturation de mani&#232;re fiable. C'est un concept. radius est un des protocole impl&#233;mentant cette id&#233;e &#224; la base pour que les op&#233;rateurs puissent vous authentifier, vous donner un profil de connexion correspondant &#224; votre facture (on peut booster la bande passante si vous avez choisi l'option), et vous facturer (par exemple au temps).&lt;/p&gt; &lt;p&gt;Il est d&#233;fini par une RFC IETF faites en protocole ouvert : contrairement aux banques tout le monde peut y participer.&lt;/p&gt; &lt;p&gt;&lt;a href='http://tools.ietf.org/html/rfc2903' class='spip_out' rel='nofollow'&gt;http://tools.ietf.org/html/rfc2903&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt; 3GPP et l'&#233;volution de radius en deux fois mieux&lt;/h3&gt;
&lt;p&gt;Quand les op&#233;rateurs telecoms ont absorb&#233;s ou converg&#233; vers les FAI [&lt;a href='#nb1' class='spip_note' rel='footnote' title='Fournisseurs d'Acc&#232;s Internet' id='nh1'&gt;1&lt;/a&gt;] ils ont commenc&#233; &#224; se dire tient : le AAA existe, biller/authentifier est n&#233;cessaire nous co&#251;te cher, et si on utilisait tous le m&#234;me protocole. En plus en Europe avec l'arriv&#233;e de l'UMTS les op&#233;rateurs &#233;taient d&#233;sireux de se faire un max de thune avec le roaming (t&#233;l&#233;phoner chez un op&#233;rateur &#233;tranger comme &#224; la maison en se faisant hyper factur&#233;s).&lt;/p&gt; &lt;p&gt;Ils se sont donc r&#233;unis &#224; l'image des banques pour d&#233;velopper une architecture d'interfacturation/livraison : ceci s'appelle &lt;a href='http://fr.wikipedia.org/wiki/IP_Multimedia_System' class='spip_glossaire'&gt;IP Multimedia System&lt;/a&gt;. Dans cette architecture se trouve &lt;a href='http://fr.wikipedia.org/wiki/diameter' class='spip_glossaire'&gt;diameter&lt;/a&gt; : un protocole (blague de geek) deux fois mieux que radius, permettant de s'adapter aux r&#233;seaux des t&#233;l&#233;phones mobile.&lt;/p&gt; &lt;p&gt;&lt;a href='http://tools.ietf.org/html/rfc3588' class='spip_out' rel='nofollow'&gt;http://tools.ietf.org/html/rfc3588&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt; Quand le t&#233;l&#233;phone devint un ordinateur &lt;/h3&gt;
&lt;p&gt;Depuis quelques ann&#233;es les plateformes de pr&#233;sentation des pages (WAP, WML ...) pour t&#233;l&#233;phones portables ont commenc&#233; &#224; migrer vers le HTML. Nous avons maintenant l'acc&#232;s &#224; IP sur tous les t&#233;l&#233;phones r&#233;cents.&lt;/p&gt; &lt;p&gt;Il n'y a plus vraiment rien qui distingue un ordinateur d'un t&#233;l&#233;phone et r&#233;ciproquement : les m&#233;thodes de paiements sur les t&#233;l&#233;phone portables sont utilis&#233;es aussi sur les ordis fixes de maison. C'est ce qu'en France on appelle internet + : vous allez sur un site de commerce, et vous pouvez facturer directement sur votre facture de FAI en lieu et place de votre banque.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt; Banque Telco : le fight !!! &lt;/h3&gt;
&lt;p&gt;Maintenant reprenons : &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; on a d'un cot&#233; les banques qui vous offre chacune un kit de facturation ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; de l'autre les telco qui peuvent/veulent standardiser leurs moyens de paiements au moyen et une plus grande richesse de sc&#233;nario de paiements (soit &#224; l'acte comme les banques, soit au temps, soit au &#171; poids &#187;).&lt;/p&gt; &lt;p&gt;La seule chose, c'est que les technos telco sont hyper lourdes (SIP pour signaliser les sessions est space) et les d&#233;veloppeurs ne s'int&#233;ressent pas vraiment aux protocoles.&lt;/p&gt; &lt;p&gt;Cependant ils ont le potentiel.&lt;/p&gt; &lt;p&gt;De plus la facturation telco est en mode connect&#233;e, et le web est en mode d&#233;connect&#233;, seulement il semble que cela est en passe d'&#234;tre r&#233;solu.&lt;/p&gt; &lt;p&gt;En ce qui me concerne, je veux participer &#224; cette bataille car elle &#224; l'air fun :) et le parie sur les telco.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt; Conclusion &lt;/h3&gt;
&lt;p&gt;Si vous vous demandez pourquoi les banques commencent &#224; devenir op&#233;rateur de t&#233;l&#233;phonie mobile : oubliez la guerre commence. Peut &#234;tre m&#234;me que dans 10 ans les banques vous vendrons aussi internet, ou que les op&#233;rateurs internet seront votre banque de d&#233;p&#244;t.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;R&#233;ferences &lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.net.informatik.uni-goettingen.de/.../GLOBECOM08_Diameter_WebAuth.pdf' class='spip_out'&gt;Authentification AAA par diameter sur le WEB&lt;/a&gt; ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.ibm.com/developerworks/library/wi-diameter/index.html' class='spip_out'&gt;Diameter overview&lt;/a&gt; ; &lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.rennes.enst-bretagne.fr/~gbertran/files/IMS_an_overview.pdf' class='spip_out'&gt;IMS overview&lt;/a&gt;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.open.com.au/radiator/' class='spip_out'&gt;un proxy radius pas cher et performant impl&#233;mentant partiellement diameter et offrant d&#233;j&#224; des offres de billing&lt;/a&gt;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://diameter.sourceforge.net/' class='spip_out'&gt;open diameter documentation forge&lt;/a&gt;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.freediameter.net/trac/' class='spip_out'&gt;free diamater an opensource implementation&lt;/a&gt;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://traffixsystems.blogspot.com/' class='spip_out'&gt;blog on diameter&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;[&lt;a href='#nh1' id='nb1' class='spip_note' title='Notes 1' rev='footnote'&gt;1&lt;/a&gt;] Fournisseurs d'Acc&#232;s Internet&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Catcher les erreurs en PHP v2</title>
		<link>http://imagina.ti0n.net/spip.php?article43</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article43</guid>
		<dc:date>2010-05-24T16:19:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>programmation</dc:subject>
		<dc:subject>un peu de technque</dc:subject>
		<dc:subject>langages</dc:subject>

		<description>Le PHP est un langage para&#238;t-il aux yeux de ses d&#233;fenseurs, pour moi c'est une aberration. M'enfin, je suis toujours sur le sujet de refactoriser du code taquin. Et je suis toujours aussi emb&#234;t&#233; par le PHP. Avec un beaucoup d'efforts on retrouve les solutions qui existent dans les autres langages par d&#233;faut. C'est chiant de r&#233;inventer la roue... Mais bon, le d&#233;veloppeur PHP co&#251;te pas cher, il est en profusion sur le march&#233;, donc il est rationnel de confier ses syst&#232;mes informatiques &#224; des gens qui ont (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique6" rel="directory"&gt;un peu de technique&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot4" rel="tag"&gt;programmation&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot20" rel="tag"&gt;un peu de technque&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot22" rel="tag"&gt;langages&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L113xH150/arton43-3627e.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='113' height='150' class='spip_logos' style='height:150px;width:113px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Le PHP est un langage para&#238;t-il aux yeux de ses d&#233;fenseurs, pour moi c'est une aberration. M'enfin, je suis toujours sur le sujet de refactoriser du code taquin. Et je suis toujours aussi emb&#234;t&#233; par le PHP. Avec un beaucoup d'efforts on retrouve les solutions qui existent dans les autres langages par d&#233;faut.&lt;/p&gt; &lt;p&gt;C'est chiant de r&#233;inventer la roue... Mais bon, le d&#233;veloppeur PHP co&#251;te pas cher, il est en profusion sur le march&#233;, donc il est rationnel de confier ses syst&#232;mes informatiques &#224; des gens qui ont choisi un langage permettant de toucher un bon salaire sans apprendre l'informatique pour des entreprises qui consid&#232;re que l'informatique &#233;tant un centre de co&#251;t, multiplier le co&#251;t de maintenance par deux n'est pas un probl&#232;me ...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Le probl&#232;me&lt;/h3&gt;
&lt;p&gt;&lt;span class='spip_document_63 spip_documents spip_documents_left' style='float:left; width:450px;'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L450xH600/iphone_z-5a328.jpg' width='450' height='600' alt=&quot;&quot; style='height:600px;width:450px;' /&gt;&lt;/span&gt;Imaginez une fonction transactionnelle dans un syst&#232;me informatique, et imaginer que vous n'avez pas le droit d'utiliser une base de donn&#233;es mais un jouet appel&#233; MySQL qui au grosse charge du fait de choix d'algorithme NP vous rend votre machine impr&#233;dictible vu le temps des requ&#234;tes, des locks et autres.&lt;/p&gt; &lt;p&gt;Imaginez pour corser le tout, que le d&#233;veloppeur a copi&#233; les mimiques du REST sans en reprendre les principes parce que juste &#231;a faisait bien sur son CV.&lt;/p&gt; &lt;p&gt;Me voil&#224; donc avec une appli qui a une transaction &#224; faire, qui au milieu fait une requ&#234;te web qui peut ne pas aboutir, et qui va ins&#233;rer de la merde dans mes bases. C'est le cas o&#249; je pr&#233;f&#232;re que mon code meurt dignement. Non parce que je suis un gothique, ou un sataniste qui aime envoyer le code au paradis, mais plut&#244;t parce que je pr&#233;f&#232;re une belle erreur maintenant qui fait perdre une transaction qu'une base perdant son int&#233;grit&#233;, un syst&#232;me qui tangue pouvant g&#233;n&#233;rer plus de bugs encore.&lt;/p&gt; &lt;p&gt;Bref je suis une fain&#233;asse.&lt;/p&gt; &lt;p&gt;Dans le code donc j'ai des morceaux de PHP ressemblant &#224;&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$important=file_get_contents(&quot;htttp://important/my_account/1&quot;);&lt;br /&gt; credit_account($important, $previous);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Evidemment comme le PHP est anti d&#233;veloppeur friendly juste scriptomane friendly qui font du code comme d'autres sont managers pour avoir une bonne paie et les femmes, ils ne voient pas le mal.&lt;/p&gt; &lt;p&gt;Le probl&#232;me avec PHP qui se veut objet c'est que tout devrait &#234;tre object. Les erreurs appartiennent au paradigme des langages proc&#233;duraux : on a des fonctions et des erreurs, mais pour &#234;tre buzz friendly on a du pseudo objet par-dessus, seulement, PHP est et restera toujours une glue inf&#226;me sans coh&#233;rence sur des librairies C &#233;parses avec chacune leur convention.&lt;/p&gt; &lt;p&gt;Ainsi donc, on r&#233;cup&#232;re des codes C coller entre eux &#224; la thrombine informatique qui quand ils se plantent renvoient des cha&#238;nes de caract&#232;res et des erreurs, qui dieu du ciel, ne sont jamais document&#233;s :(&lt;/p&gt; &lt;p&gt;On a parfois du code qui jette des exceptions.&lt;/p&gt; &lt;p&gt;Et on doit aider le code &#224; choisir l'euthanasie avant qu'il arrive comme un psychopathe &#224; polluer nos bases.&lt;/p&gt; &lt;p&gt;D'o&#249; la seule bonne utilisation des Exceptions : mourir dignement en ayant le temps de relacher les ressources ouvertes. Oui les Exceptions servent fondamentalement &#224; faire le m&#234;me boulot que des goto bien utilis&#233;s : &#224; lib&#233;rer toutes les ressources quand on meurt.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La solution &lt;/h3&gt;
&lt;p&gt;[&lt;a href='http://fr2.php.net/manual/fr/function.set-error-handler.php#98051' class='spip_out' rel='nofollow'&gt;http://fr2.php.net/manual/fr/functi...&lt;/a&gt;]&lt;/p&gt; &lt;p&gt;Tiens c'est dr&#244;le &#231;a d&#233;crit exactement mon probl&#232;me et la solution.&lt;/p&gt; &lt;p&gt;A croire que c'est mon code.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; ini_set('error_reporting',E_ALL^E_NOTICE);&lt;br /&gt; &lt;br /&gt; ## first 10 bits reserved for the initial error number&lt;br /&gt; define('EMASK',(~0)&lt;&lt;10);&lt;br /&gt; define('ECODEMASK',~EMASK);&lt;br /&gt; ## categories&lt;br /&gt; define('IOERROR', 1&lt;&lt;10);&lt;br /&gt; define('EMPTYPARMS', 1&lt;&lt;11);&lt;br /&gt; define('FAILURE', 1&lt;&lt;12);&lt;br /&gt; ## string error patterns =&gt; code&lt;br /&gt; &lt;br /&gt; ###Pas bien cette variable globale en read-write &lt;br /&gt; $catch_me=array(&lt;br /&gt; #### aaah une regexp, les d&#233;veloppeurs PHP cont pas comprendre&lt;br /&gt; &quot;/^(file_get_contents)\((.*)\).*failed to open stream: (.*)/ &quot; =&gt;&lt;br /&gt; array ( 'mesg' =&gt; &quot;IO::Failed to open stream with&quot;,&lt;br /&gt; ### tiens on croirait que j'ai tout fait pour les emmerder en utilisant &lt;br /&gt; ### des manipulations de bits. &lt;br /&gt; 'code' =&gt; IOERROR | FAILURE&lt;br /&gt; ),&lt;br /&gt; &quot;/^fopen\(.*\): Filename cannot be empty/&quot; =&gt;&lt;br /&gt; array( 'msg' =&gt; &quot;Parameters::empty&quot;,&lt;br /&gt; 'code' =&gt; EMPTYPARMS&lt;br /&gt; )&lt;br /&gt; );&lt;br /&gt; function error_2_exception($errno, $errstr, $errfile, $errline,$context) {&lt;br /&gt; ## C'est sur un attribut d'une variable statique &#231;a a plus la classe&lt;br /&gt; ##m&#234;me si &#231;a fait le boulot&lt;br /&gt; global $catch_me;&lt;br /&gt; foreach ($catch_me as $regexp =&gt; $res) {&lt;br /&gt; if(preg_match($regexp,$errstr,$match)){&lt;br /&gt; ##code sp&#233;cial anti d&#233;veloppeur PHP qui travaillent en informatique&lt;br /&gt; ## mais connaissent rien &#224; la logique num&#233;rique&lt;br /&gt; throw new Exception($res['mesg'],$res['code']|( $errno &amp; EMASK ) );&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; /* switch back to PHP internal error handler */&lt;br /&gt; return false;&lt;br /&gt; }&lt;br /&gt; ## =&gt; want to catch this one&lt;br /&gt; $f=file_get_contents(&quot;mlsdkfm&quot;);&lt;br /&gt; ## dont want to break existing wrong behaviour yet (so not caught)&lt;br /&gt; $f=file_get_contents('');&lt;br /&gt; ## magic&lt;br /&gt; set_error_handler(&quot;error_2_exception&quot;);&lt;br /&gt; ## behaviour remains the same&lt;br /&gt; $f=file_get_contents('');&lt;br /&gt; try {&lt;br /&gt; ## web services that dont work now raise an exception \o/&lt;br /&gt; $f=file_get_contents(&quot;mlsdkfm&quot;);&lt;br /&gt; } catch(Exception $e) {&lt;br /&gt; ## and I can group my exception by category&lt;br /&gt; echo ( $e-&gt;getCode() &amp; FAILURE ) ? &quot;\nEPIC FAIL\n&quot; : &quot;\nbegnine&quot;;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;On peut gloser sur le faites que je maquille pas le cot&#233; proc&#233;durale du code en d&#233;clarant une fonction globale (error_2_exception) et un tableau global qui n'est pas en lecture uniquement (catch_me), et c'est justement pour que le code soit simple et robuste, libre &#224; n'importe qui de se triturer les neurones pour le transformer en classe statique.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Le deuxi&#232;me probl&#232;me avec PHP : les scriptomanes nombriliques&lt;/h3&gt;
&lt;p&gt;Dans ma bagarre contre les erreurs j'ai parcouru le web. Autant php.net contient quelques infos autant la premi&#232;re passion du d&#233;veloppeur PHP est de poster sur son blogue des informations &#233;parses non r&#233;utilisables.&lt;/p&gt; &lt;p&gt;Pourtant ils ont php.net, je suis d&#233;sol&#233; mais c'est un bon outil, am&#233;liorable. Le probl&#232;me de PHP c'est que les d&#233;veloppeurs ne se sentent pas contribuer aux langages, ils passent leur temps soit &#224; installer d'indigestes frameworks pour ne pas avoir &#224; apprendre &#224; coder, soit &#224; r&#233;inventer la roue. Mais jamais au grand jamais ils ne pensent &#224; contribuer.&lt;/p&gt; &lt;p&gt;Copier coller du code dans le site o&#249; tout le monde va, surtout si c'est du code perso ou un probl&#232;me non trivial &#231;a oblige &#224; r&#233;fl&#233;chir. M&#234;me si mon code marche chez moi, j'ai un peu le trouillom&#232;tre &#224; z&#233;ro d'avoir laisser passer une connerie, mais, au moins &#231;a me fait travailler ces 10 lignes pendant une journ&#233;e. Et c'est l&#224; la deuxi&#232;me diff&#233;rence que les d&#233;veloppeurs PHP ont avec les codeurs : ils ont peur d'&#234;tre incomp&#233;tents parce qu'ils font des erreurs. Ils ont tort : un programmeur qui publie et livre du code m&#234;me avec des erreurs et collabore a plus d'int&#233;r&#234;t qu'un codeur qui fait du code parfait jamais publi&#233;.&lt;/p&gt; &lt;p&gt;Car nous vivons dans un monde d'&#233;change.&lt;/p&gt; &lt;p&gt;Et un scriptomane qui polluent le web de toutes ces merdes n'est pas non plus int&#233;ressant, il faut essayer de se livrer &#224; la critique de ses pairs.&lt;/p&gt; &lt;p&gt;Comme en toute chose l'&#233;quilibre importe plus que la bonne voie. Le probl&#232;me de PHP c'est que les voies les plus emprunt&#233;es sont les plus extr&#234;mes.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Catcher les erreurs fatales en PHP</title>
		<link>http://imagina.ti0n.net/spip.php?article40</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article40</guid>
		<dc:date>2010-02-06T18:29:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>programmation</dc:subject>
		<dc:subject>langages</dc:subject>

		<description>Le cot&#233; chiant de PHP qui se veut objet est qu'une partie des functions sont proc&#233;durales et se terminent par des erreurs, et l'autre est objet avec des trys catchs possibles, mais que certains objets utilisant des fonctions dans leur coeurs g&#233;n&#232;rent des erreurs non interceptables (ex PDO qui d&#233;faille quand il y a trop de connexions &#224; la base de donn&#233;es). La grande question est peut-on catcher les erreurs non catchables, et profitons-en pour faire un tour de PHP et de ce qui est non dit. Le (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique6" rel="directory"&gt;un peu de technique&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot4" rel="tag"&gt;programmation&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot22" rel="tag"&gt;langages&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L150xH113/arton40-d1397.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='113' class='spip_logos' style='height:113px;width:150px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Le cot&#233; chiant de PHP qui se veut objet est qu'une partie des functions sont proc&#233;durales et se terminent par des erreurs, et l'autre est objet avec des trys catchs possibles, mais que certains objets utilisant des fonctions dans leur coeurs g&#233;n&#232;rent des erreurs non interceptables (ex PDO qui d&#233;faille quand il y a trop de connexions &#224; la base de donn&#233;es).&lt;/p&gt; &lt;p&gt;La grande question est peut-on catcher les erreurs non catchables, et profitons-en pour faire un tour de PHP et de ce qui est non dit.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Le probl&#232;me&lt;/h3&gt;
&lt;p&gt;Quand on fait un eval, contrairement &#224; perl (on utilise le eval pour faire du try catch), on meurt. Le script suivant teste toutes mes r&#233;ussites pour catcher les erreurs fatals . Une erreur fatale dans un eval est fatale au script l'appelant.&lt;/p&gt; &lt;p&gt;Le probl&#232;me c'est que l'on aimerait bien les intercepter.&lt;/p&gt; &lt;p&gt;Ceci est &#224; &#233;x&#233;cuter avec une version r&#233;cente de PHP (5.x.y) de la date d'aujourd'hui&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?&lt;br /&gt; $index=1;&lt;br /&gt; function sig_handler($signo) {&lt;br /&gt; static $index;&lt;br /&gt; print &quot;hello you $signo:${errno}x$index&quot;;&lt;br /&gt; $index++;&lt;br /&gt; $signo==17 and print(&quot;oh a sigchild! would a Child have died ?\n&quot;);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; foreach (array(SIGALRM, SIGHUP,SIGKILL, SIGCHLD, SIGTERM, SIGCHLD, SIGSTOP) as $signal) {&lt;br /&gt; pcntl_signal($signal, &quot;sig_handler&quot;);&lt;br /&gt; }&lt;br /&gt; declare(ticks = 1);&lt;br /&gt; echo &quot;bourrin&lt;br /&gt; &quot;;&lt;br /&gt; $code = &lt;&lt;&lt;EOF&lt;br /&gt; &lt;?&lt;br /&gt; print &quot;ici on va mourrir bravement\n&quot;;&lt;br /&gt; exit(-1);&lt;br /&gt; print &quot;on passe pas ici\n*************************&quot;;&lt;br /&gt; ?&gt;&lt;br /&gt; EOF;&lt;br /&gt; &lt;br /&gt; system(&quot;echo '$code' | php&quot;);&lt;br /&gt; print &quot;encore en vie ???****\n&quot;;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; print(&quot; alive ! &quot;);&lt;br /&gt; $i=3;&lt;br /&gt; while ($i--) {&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; print &quot;YOU kill me with kill -SIGHUP/SIGINT/SIGTERM\n&quot;;&lt;br /&gt; sleep(1);&lt;br /&gt; print &quot;$i sec left\n&quot;;&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt; print(&quot;Do I stay alive ? \n&quot;);&lt;br /&gt; sleep(1);&lt;br /&gt; &lt;br /&gt; $pid = pcntl_fork();&lt;br /&gt; if($pid == -1) {&lt;br /&gt; print(&quot;not expecting to go there in normal situation&quot;);&lt;br /&gt; die('could not fork');&lt;br /&gt; }&lt;br /&gt; else if ($pid) {&lt;br /&gt; // positive value means we're in the parent.&lt;br /&gt; // do whatever parents do&lt;br /&gt; print &quot;&lt;$pid&gt;Forking one time&lt;br /&gt; &quot;;&lt;br /&gt; $status=false;&lt;br /&gt; pcntl_wait($status);&lt;br /&gt; print(&quot;DV::status::$status\n&quot;);&lt;br /&gt; print_r($status);&lt;br /&gt; } else {&lt;br /&gt; print (&quot;luke&lt;$pid&gt;: I am young and trying\n&quot;);&lt;br /&gt; sleep(1);&lt;br /&gt; return;&lt;br /&gt; // zero value means we're in the child.&lt;br /&gt; // do whatever children do&lt;br /&gt; // (e.g. download the files, then exit)&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; $pid = pcntl_fork();&lt;br /&gt; &lt;br /&gt; if($pid == -1) {&lt;br /&gt; print(&quot;not expecting to go there in normal situation&quot;);&lt;br /&gt; print(&quot;not expecting to go there in normal situation&quot;);&lt;br /&gt; die('could not fork');&lt;br /&gt; }&lt;br /&gt; else if ($pid) {&lt;br /&gt; // positive value means we're in the parent.&lt;br /&gt; // do whatever parents do&lt;br /&gt; print &quot;&lt;$pid&gt;DarkVader: we wait 10 seconds&lt;br /&gt; DV:I protected myself using SIGCHLD&lt;br /&gt; &quot;;&lt;br /&gt; $status=false;&lt;br /&gt; pcntl_wait($status);&lt;br /&gt; print(&quot;DV::status::$status\n&quot;);&lt;br /&gt; print_r($status);&lt;br /&gt; } else {&lt;br /&gt; print (&quot;luke&lt;$pid&gt;: I am young and gonna crash\n&quot;);&lt;br /&gt; sleep(1);&lt;br /&gt; print &quot;\nnow I kill me with exit -1 \n&quot;;&lt;br /&gt; exit(-1);&lt;br /&gt; // zero value means we're in the child.&lt;br /&gt; // do whatever children do&lt;br /&gt; // (e.g. download the files, then exit)&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; echo &quot;\n${pid}I SURVIVED THE DARK SIDE OF THE FORCE WON!!!&quot;;&lt;br /&gt; &lt;br /&gt; eval (&quot;die(1);&quot;);&lt;br /&gt; print(&quot;staying alive !&quot;);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;(Merci Ben)&lt;/p&gt; &lt;p&gt;Maintenant cherchons une solution g&#233;n&#233;rique :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?&lt;br /&gt; class Catcher{&lt;br /&gt; public static $mongrel=&quot;Aucun&quot;;&lt;br /&gt; private $tag;&lt;br /&gt; public function __construct($args=array(&quot;explain&quot; =&gt; false)){&lt;br /&gt; foreach ($args as $k =&gt; $v) {&lt;br /&gt; $this-&gt;$k=$v;&lt;br /&gt; }&lt;br /&gt; $this-&gt;tag=get_class($this) . &quot;::&quot;;&lt;br /&gt; $this-&gt;tell(&quot;Creating Catcher&quot;);&lt;br /&gt; }&lt;br /&gt; public $explain=false;&lt;br /&gt; private $safe_sex=false;&lt;br /&gt; private $son=false;&lt;br /&gt; public function son() { return $this-&gt;son; }&lt;br /&gt; public function masturbation(){&lt;br /&gt; print($this-&gt;tag.&quot;playing with myself\n&quot;);&lt;br /&gt; }&lt;br /&gt; public $grand_son=0;&lt;br /&gt; public function back_room() {&lt;br /&gt; print($this-&gt;tag.&quot;playing with others\n&quot;);&lt;br /&gt; $from_a_contaminated_partner=-1;&lt;br /&gt; $this-&gt;grand_son=1;&lt;br /&gt; self::$mongrel=&quot;Weired&quot;;&lt;br /&gt; print self::$mongrel . &quot;\n&quot;;&lt;br /&gt; exit($from_a_contaminated_partner);&lt;br /&gt; }&lt;br /&gt; private function condom() {&lt;br /&gt; $explain=$this-&gt;explain;&lt;br /&gt; $err_is_human;&lt;br /&gt; $referer=$this;&lt;br /&gt; function sig_handler($signo) {&lt;br /&gt; global $referer,$explain;&lt;br /&gt; $err_is_human=error_get_last();&lt;br /&gt; $errno=$err_is_human[&quot;type&quot;];&lt;br /&gt; $explain and print(&quot;SH::hello you $signo:${errno}\n&quot;);&lt;br /&gt; if( $signo==SIGCHLD) {&lt;br /&gt; $explain and print(&quot;SH::oh a Child have died ? Always use condoms!\n&quot;);&lt;br /&gt; }&lt;br /&gt; print_r($err_is_human);&lt;br /&gt; }&lt;br /&gt; pcntl_signal(SIGCHLD, &quot;sig_handler&quot;);&lt;br /&gt; declare(ticks = 1);&lt;br /&gt; $this-&gt;tell(&quot;We protect ourselves against kids&quot;);&lt;br /&gt; $this-&gt;safe_sex=true;&lt;br /&gt; }&lt;br /&gt; public function tell($story) {&lt;br /&gt; $this-&gt;explain and print $this-&gt;tag .&quot;$story\n&quot;;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public function __call($name, $args) {&lt;br /&gt; $this-&gt;safe_sex or $this-&gt;condom();&lt;br /&gt; &lt;br /&gt; $pid = pcntl_fork();&lt;br /&gt; if($pid == -1) {&lt;br /&gt; $this-&gt;tell(&quot;not explainecting to go there in normal situation&quot;);&lt;br /&gt; throw(new Exception( $this-&gt;tag .&quot;cant fork&quot;));&lt;br /&gt; }&lt;br /&gt; if ($pid) {&lt;br /&gt; $this-&gt;tell(&quot;&lt;$pid&gt;::I am DarkVador::watching my dangerous child&quot;);&lt;br /&gt; $this-&gt;tell(&quot;&lt;$pid&gt;::DV::$name is called with&quot;);&lt;br /&gt; $this-&gt;tell(&quot;&lt;$pid&gt;::DV::&quot; . print_r($args,true));&lt;br /&gt; $status=0;&lt;br /&gt; pcntl_wait($status);&lt;br /&gt; $this-&gt;tell(&quot;&lt;$pid&gt;::DV::status of my son is &lt;&lt;$status&gt;&gt;&quot;);&lt;br /&gt; if($status!=0) {&lt;br /&gt; throw new Exception($this-&gt;tag . &quot;FatalErrorCaught::$name&quot; );&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; } else {&lt;br /&gt; $sontext=&quot;&lt;$pid&gt;::Luke&quot;;&lt;br /&gt; $this-&gt;tell(&quot;$sontext::I am young and intrepid\n&quot;);&lt;br /&gt; $this-&gt;tell(&quot;$sontext::I DO call $name now!&quot;);&lt;br /&gt; $matches=array();&lt;br /&gt; preg_match(&quot;/safer_(.*)/&quot;,$name, $matches)&lt;br /&gt; and call_user_func_array(array($this,$matches[1]), $args)&lt;br /&gt; or call_user_func_array($name, $args);&lt;br /&gt; $this-&gt;tell(&quot;&lt;$pid&gt;::Luke::my child life is over&quot;);&lt;br /&gt; die($this-&gt;explain ? ($this-&gt;tag . &quot;let me die in peace, may the force be with you\n&quot;) : &quot;&quot;);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Et maintenant testons la solution :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?&lt;br /&gt; include(&quot;catcher.php&quot;);&lt;br /&gt; $c = new Catcher(array(&quot;explain&quot; =&gt; true));&lt;br /&gt; $val=0;&lt;br /&gt; function user_f(&amp;$ret_val,$args) {&lt;br /&gt; global $val;&lt;br /&gt; print &quot;\nHarmless called by luke (normaly)\n&quot;;&lt;br /&gt; $val=0;&lt;br /&gt; $val=$ret_val=count($args);&lt;br /&gt; return 42;&lt;br /&gt; }&lt;br /&gt; function user_die(&amp;$ret_val,$args,$die=false) {&lt;br /&gt; global $val;&lt;br /&gt; $val=0;&lt;br /&gt; print &quot;\nHarmfull should be called by luke\n&quot;;&lt;br /&gt; $val=$ret_val=count($args);&lt;br /&gt; $die and exit(1);&lt;br /&gt; }&lt;br /&gt; $i=0;&lt;br /&gt; &lt;br /&gt; $r=0;&lt;br /&gt; $res=0;&lt;br /&gt; try {&lt;br /&gt; $res=$c-&gt;user_f(&amp;$r, array( 1 , 2 , 3));&lt;br /&gt; }&lt;br /&gt; catch(Exception $e) {&lt;br /&gt; print &quot;$e\nIMPOSSIBLE\n&quot;;&lt;br /&gt; }&lt;br /&gt; $c-&gt;son() and die(&quot;arg Que fous le fils ici Mais VRAIMENT ????\n&quot;);&lt;br /&gt; print &quot;caught res : $res\n&quot;;&lt;br /&gt; $r=0;&lt;br /&gt; print &quot;\n1:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;$val??$r&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;$i\n&quot;;&lt;br /&gt; $i++;&lt;br /&gt; try {&lt;br /&gt; print($c-&gt;user_die(&amp;$r, array( 1 , 2 , 3),true));&lt;br /&gt; }&lt;br /&gt; catch (Exception $e) {&lt;br /&gt; print &quot;$e\nA new Victory of the DARK SIDE\n&quot;;&lt;br /&gt; }&lt;br /&gt; $c-&gt;son() and die(&quot;arg WTF!!!!!!&quot;);&lt;br /&gt; $c-&gt;masturbation();&lt;br /&gt; &lt;br /&gt; try {&lt;br /&gt; $c-&gt;safer_back_room();&lt;br /&gt; }&lt;br /&gt; catch (Exception $e) {&lt;br /&gt; print &quot;$e\nAnother Victory of the DARK SIDE my son dies, not me\n&quot;;&lt;br /&gt; }&lt;br /&gt; print &quot;DONT expect return un less we share memory&quot; . $c-&gt;grand_son . &quot;\n&quot;;&lt;br /&gt; print &quot;unless you are strong hearted enough to play unsafe &quot; . Catcher::$mongrel .&quot;\n&quot;;&lt;br /&gt; &lt;br /&gt; print &quot;\n2:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;$val??$r&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;$i\n&quot;;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;On s'aper&#231;oit que :&lt;/p&gt; &lt;ol class=&quot;spip&quot;&gt;&lt;li&gt; on peut catcher les erreurs syst&#232;mes ; &lt;/li&gt;&lt;li&gt; que cela &#224; 2 co&#251;ts.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Premi&#232;rement un fork &#231;a co&#251;te cher en m&#233;moire et syst&#232;me, deuxi&#232;mement on ne peut pas r&#233;cup&#233;rer de valeurs.&lt;/p&gt; &lt;p&gt;N&#233;anmoins, je crois que cela peut m'&#234;tre utile ...&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La poussi&#232;re sous le tapis de PHP&lt;/h3&gt;
&lt;p&gt;Rien ne vous a &#233;tonn&#233; si vous avez essay&#233; la m&#234;me chose ?&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;declare(ticks=1)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;La page de manuel de PHP est tr&#232;s &#233;lusive sur le sujet. On dirait un flag modifiant le comportement internet de l'interpr&#233;teur. Il est peut &#234;tre utiliser pour par exemple utiliser un d&#233;bogueur.&lt;/p&gt; &lt;p&gt;Sans cette ligne, l'interception de signal ne marche pas. Et bizzarement, on peut se prot&#233;ger des signaux que l'on re&#231;oit, mais pas de ceux que l'on &#233;met.&lt;/p&gt; &lt;p&gt;un &lt;i&gt;strace -f php premier_script.php&lt;/i&gt; vous montrera les forks, c'est tr&#232;s instructif.&lt;/p&gt; &lt;p&gt;Voil&#224;, amusez vous bien, le code et son execution devrait suffire :)&lt;/p&gt; &lt;p&gt;La classe permet d'ex&#233;cuter toute fonction arbitraire qui est appel&#233;e comme une m&#233;thode de la classe Catcher. (Il faut quand m&#234;me qu'elle existe dans le user space).&lt;/p&gt; &lt;p&gt;Et si on veut prot&#233;ger ses m&#233;thodes internes il suffit de les pr&#233;fixer avec &lt;i&gt;safer_&lt;/i&gt; et la classe appelle alors sa m&#233;thode.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Execution du script de test de la classe&lt;/h3&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; &lt;br /&gt; Catcher::Creating Catcher&lt;br /&gt; Catcher::We protect ourselves against kids&lt;br /&gt; Catcher::&lt;3726&gt;::I am DarkVador::watching my dangerous child&lt;br /&gt; Catcher::&lt;3726&gt;::DV::user_f is called with&lt;br /&gt; Catcher::&lt;3726&gt;::DV::Array&lt;br /&gt; (&lt;br /&gt; [0] =&gt; 0&lt;br /&gt; [1] =&gt; Array&lt;br /&gt; (&lt;br /&gt; [0] =&gt; 1&lt;br /&gt; [1] =&gt; 2&lt;br /&gt; [2] =&gt; 3&lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; Catcher::&lt;0&gt;::Luke::I am young and intrepid&lt;br /&gt; &lt;br /&gt; Catcher::&lt;0&gt;::Luke::I DO call user_f now!&lt;br /&gt; &lt;br /&gt; Harmless called by luke (normaly)&lt;br /&gt; Catcher::&lt;0&gt;::Luke::my child life is over&lt;br /&gt; Catcher::let me die in peace, may the force be with you&lt;br /&gt; Catcher::&lt;3726&gt;::DV::status of my son is &lt;&lt;0&gt;&gt;&lt;br /&gt; caught res : &lt;br /&gt; &lt;br /&gt; 1:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;0??0&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;0&lt;br /&gt; Catcher::&lt;3727&gt;::I am DarkVador::watching my dangerous child&lt;br /&gt; Catcher::&lt;3727&gt;::DV::user_die is called with&lt;br /&gt; Catcher::&lt;3727&gt;::DV::Array&lt;br /&gt; (&lt;br /&gt; [0] =&gt; 0&lt;br /&gt; [1] =&gt; Array&lt;br /&gt; (&lt;br /&gt; [0] =&gt; 1&lt;br /&gt; [1] =&gt; 2&lt;br /&gt; [2] =&gt; 3&lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; [2] =&gt; 1&lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; Catcher::&lt;0&gt;::Luke::I am young and intrepid&lt;br /&gt; &lt;br /&gt; Catcher::&lt;0&gt;::Luke::I DO call user_die now!&lt;br /&gt; &lt;br /&gt; Harmfull should be called by luke&lt;br /&gt; Catcher::&lt;3727&gt;::DV::status of my son is &lt;&lt;256&gt;&gt;&lt;br /&gt; exception 'Exception' with message 'Catcher::FatalErrorCaught::user_die' in /home/jul/src/php_exp/fatal/catcher.php:67&lt;br /&gt; Stack trace:&lt;br /&gt; #0 [internal function]: Catcher-&gt;__call('user_die', Array)&lt;br /&gt; #1 /home/jul/src/php_exp/fatal/proof.php(35): Catcher-&gt;user_die(0, Array, true)&lt;br /&gt; #2 {main}&lt;br /&gt; A new Victory of the DARK SIDE&lt;br /&gt; Catcher::playing with myself&lt;br /&gt; Catcher::&lt;0&gt;::Luke::I am young and intrepid&lt;br /&gt; &lt;br /&gt; Catcher::&lt;0&gt;::Luke::I DO call safer_back_room now!&lt;br /&gt; Catcher::playing with others&lt;br /&gt; Weired&lt;br /&gt; Catcher::&lt;3728&gt;::I am DarkVador::watching my dangerous child&lt;br /&gt; Catcher::&lt;3728&gt;::DV::safer_back_room is called with&lt;br /&gt; Catcher::&lt;3728&gt;::DV::Array&lt;br /&gt; (&lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; Catcher::&lt;3728&gt;::DV::status of my son is &lt;&lt;65280&gt;&gt;&lt;br /&gt; exception 'Exception' with message 'Catcher::FatalErrorCaught::safer_back_room' in /home/jul/src/php_exp/fatal/catcher.php:67&lt;br /&gt; Stack trace:&lt;br /&gt; #0 [internal function]: Catcher-&gt;__call('safer_back_room', Array)&lt;br /&gt; #1 /home/jul/src/php_exp/fatal/proof.php(44): Catcher-&gt;safer_back_room()&lt;br /&gt; #2 {main}&lt;br /&gt; Another Victory of the DARK SIDE my son dies, not me&lt;br /&gt; DONT expect return un less we share memory0&lt;br /&gt; unless you are strong hearted enough to play unsafe Aucun&lt;br /&gt; &lt;br /&gt; 2:&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;0??0&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;1&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>&#201;dito ou pas &#233;dito ?</title>
		<link>http://imagina.ti0n.net/spip.php?article39</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article39</guid>
		<dc:date>2010-01-21T10:03:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>edito</dc:subject>
		<dc:subject>j'aime pas</dc:subject>
		<dc:subject>un peu de technque</dc:subject>

		<description>Sur ce site, je me permet de mettre un article en une en entier. Mais est-ce une bonne id&#233;e ? Le probl&#232;me est que ceux qui veulent retrouver l'article en une/&#233;dito ne voient pas le lien de l'article. L'&#233;dito casse donc la logique d'internet comme quoi un lien doit &#234;tre immuable. Si j'ai vu tel article qui m'a bien plu, alors, il faut que je puisse le retrouver en rappelant directement le lien initial. L'&#233;dito tel que je le pratique est donc sans am&#233;nagement stupide :) car le lien pour l'article est (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique1" rel="directory"&gt;Nombrilisme&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot11" rel="tag"&gt;edito&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot17" rel="tag"&gt;j'aime pas&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot20" rel="tag"&gt;un peu de technque&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Sur ce site, je me permet de mettre un article en une en entier. Mais est-ce une bonne id&#233;e ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le probl&#232;me est que ceux qui veulent retrouver l'article en une/&#233;dito ne voient pas le lien de l'article. L'&#233;dito casse donc la logique d'internet comme quoi un lien doit &#234;tre immuable. Si j'ai vu tel article qui m'a bien plu, alors, il faut que je puisse le retrouver en rappelant directement le lien initial.&lt;/p&gt; &lt;p&gt;L'&#233;dito tel que je le pratique est donc sans am&#233;nagement stupide :) car le lien pour l'article est la page de garde. Il va donc dispara&#238;tre dans cette forme.&lt;/p&gt; &lt;p&gt;Et il reviendra quand j'aurais suffisamment d'articles pour faire un condens&#233; de choses int&#233;ressantes et ou pour faire une revue de presse, ainsi qu'un lien explicite vers icelui. Il sera court avec juste des liens.&lt;/p&gt; &lt;p&gt;&#192; titre de rappel : &lt;a href='http://www.w3.org/Provider/Style/URI' class='spip_out'&gt;cools URI dont change par Tim Berners Lee&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;L'informatique est une formation continue o&#249; l'on doit sans cesse essayer de nouvelle chose, en apprendre, mais aussi r&#233;viser les bases.&lt;/p&gt; &lt;p&gt;Honte &#224; moi, lancez moi des pierres pour avoir oubli&#233; ce fondamental :)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Du snobisme et des iphones</title>
		<link>http://imagina.ti0n.net/spip.php?article38</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article38</guid>
		<dc:date>2010-01-20T14:50:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>edito</dc:subject>
		<dc:subject>j'aime pas</dc:subject>
		<dc:subject>&#233;lectronique</dc:subject>

		<description>Vous savez comment on appelle un mec dans un bar &#224; Bruxelles qui parle si fort que l'on est oblig&#233; de tout savoir de sa vie ? Un parisien. Il en va de m&#234;me avec les gadjos qui sortent leur iphone &#224; tout bout de champs pour vous en mettre plein la vue, et qui &#233;talent en m&#234;me temps leur ignorance crasse. Je suis un m&#233;lomane j'encode mes morceaux en AAC si un caque apple est bon ceci est la fontaine de jouvence Wtf ! Le gars se p&#232;te la discute avec ses poteaux sur la sup&#233;riorit&#233; de l'iPhone et de (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique6" rel="directory"&gt;un peu de technique&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot11" rel="tag"&gt;edito&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot17" rel="tag"&gt;j'aime pas&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot23" rel="tag"&gt;&#233;lectronique&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L113xH150/arton38-31368.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='113' height='150' class='spip_logos' style='height:150px;width:113px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Vous savez comment on appelle un mec dans un bar &#224; Bruxelles qui parle si fort que l'on est oblig&#233; de tout savoir de sa vie ?&lt;/p&gt; &lt;p&gt;Un parisien.&lt;/p&gt; &lt;p&gt;Il en va de m&#234;me avec les gadjos qui sortent leur iphone &#224; tout bout de champs pour vous en mettre plein la vue, et qui &#233;talent en m&#234;me temps leur ignorance crasse.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Je suis un m&#233;lomane j'encode mes morceaux en AAC&lt;/h3&gt;
&lt;dl class='spip_document_61 spip_documents spip_documents_left' style='float:left;'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH375/pic2-63e67.jpg' width='500' height='375' alt='JPEG - 44.9 ko' style='height:375px;width:500px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;si un caque apple est bon ceci est la fontaine de jouvence&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;Wtf ! Le gars se p&#232;te la discute avec ses poteaux sur la sup&#233;riorit&#233; de l'iPhone et de ses codecs AAC ! Mais tes codecs loseless compression de la mort qui tuent sont du pipi de chat si :&lt;/p&gt; &lt;ol class=&quot;spip&quot;&gt;&lt;li&gt; ta carte son est pourrie ; &lt;/li&gt;&lt;li&gt; ton CDA de ta carte son est pourri (convertisseur digital analogique) ; &lt;/li&gt;&lt;li&gt; ton ampli est pourri ; &lt;/li&gt;&lt;li&gt; TON CASQUE EST POURRI. &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Comme ils disent &#224; tous bouts de champs sans comprendre : la force d'une chaine c'est celle de son maillon le plus faible.&lt;/p&gt; &lt;p&gt;Ben vi regardez bien, et surtout &#233;coutez bien : un iphone avec le casque de base : il sharcle les basses. La musique n'a pas de relief.&lt;/p&gt; &lt;p&gt;Branchez votre iphone sur un vrai ampli (un DENON par exemple) et l&#224; encore compar&#233; &#224; un b&#234;te player MP3 vous serez encore d&#233;&#231;u par la platitude du son. Mais c'est d&#233;j&#224; mieux.&lt;/p&gt; &lt;p&gt;Changer le casque et rien qu'avec &#231;a vous avez un semblant de musique.&lt;/p&gt; &lt;p&gt;Si tout calcul fait on s'aper&#231;oit qu'un iphone co&#251;te (abonnement compris) entre 500 et 1000&#8364; par an alors, pourquoi ne pas investir dans un casque &#224; 30&#8364; ? (au lieu du casque iphone &#224; ... 30&#8364;).&lt;/p&gt; &lt;p&gt;Ben non ils ne le font pas : la pomme dessin&#233;e sur le casque leur tourne le cerveau, et avec un sort implant&#233; par de puissants sorciers marketeux, d'un seul coup le son c'est mieux dans leur t&#234;te.&lt;/p&gt; &lt;p&gt;Alors c'est s&#251;r, on voit les taquins pseudo geeks acheter du skull candy ou du sensenheiser &#224; 70-120 &#8364;.&lt;/p&gt; &lt;p&gt;Mais entre nous rien ne vaut un bon casque KOSS &#224; 30&#8364;.&lt;/p&gt; &lt;p&gt;Son secret ?&lt;/p&gt; &lt;p&gt;Un long tuyau fin de 2 cm qui agit &#224; la fois comme guide d'onde et caisse de r&#233;sonance pour les basses. Puis les mousses &#224; m&#233;moire de forme qui isolent et permette d'obtenir un sentiment de son puissant &#224; faible niveau.&lt;/p&gt; &lt;p&gt;Le plaisir des basses sans se bousiller les oreilles.&lt;/p&gt; &lt;p&gt;Les audioka que j'ai essay&#233; sont bons aussi comme de nombreuses autres marques pas si ch&#232;res, et &lt;i&gt;rien ne vaut votre propre oreille pour savoir quel est le meilleur casque&lt;/i&gt;. Mais de gr&#226;ce me faites pas croire que le casque apple est bon. C'est une merde inf&#226;me.&lt;/p&gt; &lt;p&gt;Demain si vous voyez un cr&#233;tin vous snober avec son ipod ou son iphone, si il a un casque apple m&#233;prisez le : il paie cher pour avoir moins bon que votre player mp3.&lt;/p&gt; &lt;dl class='spip_document_62 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH375/pic3-0d7ac.jpg' width='500' height='375' alt='JPEG - 68.9 ko' style='height:375px;width:500px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;une vision claire et non distordue &lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;h3 class=&quot;spip&quot;&gt;Je suis un m&#233;lomane j'ach&#232;te les enceintes &#224; 150&#8364; !&lt;/h3&gt;
&lt;p&gt;Je suis pass&#233; &#224; la fnac pensant trouver des syst&#232;mes st&#233;r&#233;o pour iphone avec le pod. WTF ! Des prix variant de 150 &#224; 700&#8364; pour de la merde sans nom.&lt;/p&gt; &lt;p&gt;On reprend : ST&#201;R&#201;O vous savez ce que cela implique ?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Que l'on peut distinguer le son qui vient de droite et de gauche&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Et vous croyez vraiment que l'on obtient &#231;a avec deux enceintes distantes de 10 cm alors que vous &#234;tes &#224; 10 m ?&lt;/p&gt; &lt;p&gt;S&#233;rieux ? Ce qui m'&#233;pate c'est pas les vendeurs, c'est la connerie des acheteurs !&lt;/p&gt; &lt;p&gt;Les enceintes iphones test&#233;es sont correctes pour les basses, mais pour la st&#233;r&#233;o &#231;a vaut que dalle !&lt;/p&gt; &lt;p&gt;Mon conseil : achetez simplement des Altec Lancing pour PC avec caissons de basses vous vous-y retrouverez s&#251;rement mieux. Et aussi : Disposez vos enceintes &#224; &#233;qui-distance de votre point d'&#233;coute avec une orientation directe vers vos oreilles. 10 cm pour de la st&#233;r&#233;o ? Pourquoi pas aussi remplacer l'iphone par deux pots de yaourts et un fil tendu, quand on est aussi con ?&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Qu'est-ce que c'est b&#234;tises anecdotiques nous racontent ?&lt;/h3&gt;
&lt;p&gt;Quand je vois les d&#233;bats des techno-enthousiastes qui se piquent de comprendre le num&#233;rique mieux que les autres et qui sont tellement cons qu'ils ne voient pas l'&#233;vidence quand il s'agit du son (domaine sens&#233; &#234;tre technique), je dis que leur cr&#233;dibilit&#233; est nulle.&lt;/p&gt; &lt;p&gt;La geekicit&#233; est la doudoune chevignon moderne. Juste un truc pour un mettre plein la vue et dire j'ai plus de thunes que toi, et je comprend ce que tu ne comprends pas.&lt;/p&gt; &lt;p&gt;Ne vous laissez pas impressionner, la plupart sont juste des poseurs sans jugeottes : &#231;a se voit rien qu'&#224; leurs casques.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>D&#233;baptiser la rue Cuvier.</title>
		<link>http://imagina.ti0n.net/spip.php?article37</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article37</guid>
		<dc:date>2009-12-14T15:26:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>science</dc:subject>
		<dc:subject>edito</dc:subject>
		<dc:subject>j'aime pas</dc:subject>

		<description>Pour me rendre aux bureaux apr&#232;s ma vaccination, je suis pass&#233; dans la rue Cuvier [1]. C'est comme la statue du Gal d'empire Leclerc &#231;a me met mal &#224; l'aise que l'on respecte de tels gens. Cuvier &#224; certes contribu&#233; de mani&#232;re positive &#224; la classification des esp&#232;ces, mais aussi de mani&#232;re tr&#232;s naus&#233;abonde. Et cela ne d&#233;range aucun des doctorants, ma&#238;tres et licenci&#233;s en sciences, en lettre et en histoire qui passent par l&#224; (on est pr&#232;s du campus de Jussieu). Cependant, c'est scandaleux &#224; deux titres. Si ceux (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique4" rel="directory"&gt;science&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot3" rel="tag"&gt;science&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot11" rel="tag"&gt;edito&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot17" rel="tag"&gt;j'aime pas&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Pour me rendre aux bureaux apr&#232;s ma vaccination, je suis pass&#233; dans la rue Cuvier [&lt;a href='#nb1' class='spip_note' rel='footnote' title='&#192; mon &#233;poque il y avait aussi un amphi Cuvier &#224; la fac' id='nh1'&gt;1&lt;/a&gt;]. C'est comme la statue du Gal d'empire Leclerc &#231;a me met mal &#224; l'aise que l'on respecte de tels gens. Cuvier &#224; certes contribu&#233; de mani&#232;re positive &#224; la classification des esp&#232;ces, mais aussi de mani&#232;re tr&#232;s naus&#233;abonde. Et cela ne d&#233;range aucun des doctorants, ma&#238;tres et licenci&#233;s en sciences, en lettre et en histoire qui passent par l&#224; (on est pr&#232;s du campus de Jussieu). Cependant, c'est scandaleux &#224; deux titres.&lt;/p&gt; &lt;p&gt;Si ceux qui sont sens&#233;s conna&#238;tre notre culture et notre histoire n'ont pas de probl&#232;mes avec Cuvier qui en aura ? Est-ce que les scientifiques modernes r&#233;prouvent vraiment l'h&#233;ritage de Cuvier ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Cuvier pionnier d'un racisme scientifique&lt;/h3&gt;
&lt;dl class='spip_document_58 spip_documents spip_documents_left' style='float:left;'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH375/logo1-8cba6.jpg' width='500' height='375' alt='JPEG - 87.4 ko' style='height:375px;width:500px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;amphi Cuvier&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;a href='http://terresdefemmes.blogs.com/mon_weblog/2005/04/la_nbspvnus_hot.html' class='spip_out'&gt;Pour r&#233;sumer&lt;/a&gt;, il participe &#224; la classification des esp&#232;ces animales (sous Napol&#233;on), il voit une n&#232;gre ayant des malformations physiques et l'&#233;tudie et en tant que mauvais scientifique fait du cas particulier de cette femme une g&#233;n&#233;ralit&#233; stipulant que les noirs sont inf&#233;rieurs.&lt;/p&gt; &lt;p&gt;Si je cite Napol&#233;on ce n'est pas un hasard. Nos hommes politique l'adorent, je l'honnis (sauf pour le code Napol&#233;on).&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La R&#233;publique, Napol&#233;on et l'esclavage&lt;/h3&gt;
&lt;p&gt;Un cahier de dol&#233;ance sur 5 &#233;voque le sujet en 1789, le peuple est concern&#233; certes mais la r&#233;sistance de la Bourgeoisie est forte Condrocet dira m&#234;me&lt;/p&gt;
&lt;blockquote class=&quot;spip_poesie&quot;&gt;
&lt;div&gt;Tous les hommes blancs naissent&lt;/div&gt;
&lt;div&gt;libres et &#233;gaux en droits,&lt;/div&gt;
&lt;div&gt;donner une m&#233;thode pour d&#233;terminer&lt;/div&gt;
&lt;div&gt;le degr&#233; de blancheur n&#233;cessaire&lt;/div&gt;
&lt;div&gt;Boutade am&#232;re de Condorcet (1791)&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;N&#233;anmoins, le sujet est maintes fois rabattu, et 5 ans plus tard la R&#233;publique abolie l'esclavage (1794).&lt;/p&gt; &lt;p&gt;Seulement, Napol&#233;on mari&#233; &#224; Jos&#233;phine de Beauharnais fille d'esclavagistes martiniquais, va geler dans un premier temps [&lt;a href='#nb2' class='spip_note' rel='footnote' title='google peut aider' id='nh2'&gt;2&lt;/a&gt;] l'application de l'esclavage puis r&#233;primer dans le sang les r&#233;voltes.&lt;/p&gt; &lt;p&gt;&#192; Pontoise nous avons ainsi une belle statue du G&#233;n&#233;ral Leclerc pontoisien gendre de Jos&#233;phine et mateur de r&#233;voltes dans le sang dans les &#238;les.&lt;/p&gt; &lt;p&gt;Napol&#233;on qui est aussi le premier &#224; encourager une certaine recherche scientifique et sociologique voire id&#233;ologique. Le positivisme d'Auguste Comte ne fait que d&#233;crire une syst&#232;me d'organisation de la soci&#233;t&#233; par caste qui se veut rationnellement et scientifiquement structur&#233;. Le positivisme n'est ni plus ni moins que la justification aux grandes &#233;coles et &#224; leur supr&#233;matie sociale. Il s'accompagne du d&#233;terminisme qui abouti &#224; dire que si un pauvre et pauvre c'est parce qu'il est peut &#234;tre n&#233; pour l'&#234;tre.&lt;/p&gt; &lt;p&gt;Bref, apr&#232;s une r&#233;volution fran&#231;aise altruiste et lib&#233;rale (chacun doit avoir sa chance), Napol&#233;on pose une France faite de sa grandeur, h&#233;g&#233;monique, et de castes. Il r&#233;tablit quand m&#234;me le principe de la noblesse. Une fausse noblesse pour les vrais nobles para&#238;t-il. Nobles qui n'ont au final qu'une particule de plus que les 10^26 [&lt;a href='#nb3' class='spip_note' rel='footnote' title='&#231;a se compte en milliard de milliard de milliard et encore je suis gentil je (...)' id='nh3'&gt;3&lt;/a&gt;] qu'en compte nos corps. Une mani&#232;re subtile de remettre en question la R&#233;volution Fran&#231;aise.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La science sans conscience n'est que ruine de l'&#226;me&lt;/h3&gt;
&lt;dl class='spip_document_59 spip_documents spip_documents_right' style='float:right;'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L450xH600/logo2-2-29f32.jpg' width='450' height='600' alt='JPEG - 99.3 ko' style='height:600px;width:450px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;Gal Leclerc&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;Je sais c'est la tarte &#224; la cr&#232;me que nous devions sortir dans nos dissertes au lyc&#233;e en terminale scientifique. Mais parfois c'est vrai.&lt;/p&gt; &lt;p&gt;Mon probl&#232;me avec Cuvier, c'est que les anarchistes &#224; la fac &#224; Jussieu, la CNT, les intellos nous cassent les pieds avec le devoir de m&#233;moire. Mais si ils veulent avoir de la m&#233;moire, qu'ils commencent d&#233;j&#224; par rendre hommage &#224; la I&#232;re R&#233;publique et qu'ils villipendent Napol&#233;on et certains scientifiques, en d&#233;baptisant la rue et l'amphi Cuvier.&lt;/p&gt; &lt;p&gt;Mon deuxi&#232;me probl&#232;me c'est les scientifiques.&lt;/p&gt; &lt;p&gt;Par deux fois, que ce soit &#224; destination de la recherche ou de l'AFIS, j'ai pos&#233; une question &#233;crite pour leur demander les m&#233;canismes li&#233;s aux meilleures performances en sport des black.&lt;/p&gt; &lt;p&gt;Sujet glissant par excellence.&lt;/p&gt; &lt;p&gt;Quand mon voisin et moi m&#234;me fr&#233;quentions l'ENS, o&#249; il y avait beucoup de chercheurs brillants (l'&#233;lite de la recherche semblerait-il), interroger les jeunes th&#233;sards en science sur la sup&#233;riorit&#233; des black en sports, ils ont &#224; chaque fois sans se poser de questions sorti des th&#233;ories g&#233;n&#233;tiques.&lt;/p&gt; &lt;p&gt;Je suis profond&#233;ment et r&#233;publicain et scientifique, et cela me choque deux fois :
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; le r&#233;publicain pense que la libert&#233; accorde le choix et que la performance n'est pas tant une question de g&#233;n&#233;tique mais de choix de vie et de travail ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; le scientifique se demande d'o&#249; ils sortent leur th&#232;se g&#233;n&#233;tique si ce n'est d'un chapeau de magicien.&lt;/p&gt; &lt;p&gt;Je peux faire une contre-hypoth&#232;se face &#224; la th&#233;orie g&#233;n&#233;tique : la diversit&#233; de population caucasienne est la m&#234;me qu'en Afrique (on a des foyers g&#233;n&#233;tiques &#224; faibles diversit&#233;s isol&#233;s (alpins vs kenyans, basques vs kanaks...), donc si on aurait des adaptations &#224; l'environnement du m&#234;me ordre alors on devrait avoir des caucasiens g&#233;n&#233;tiquement aussi concurrentiel. Il n'y a pas de raison que les alpins ou les n&#233;palais ne soient pas aussi bon en 10 000 m que les kenyans.&lt;/p&gt; &lt;p&gt;Je peux proposer une th&#233;orie alternative : les noirs en Europe sont meilleurs en sport parce qu'ils s'entrainent plus. Parce que l'incitation et la pression sociale est plus forte pour eux vers le sport que vers la poursuite des &#233;tudes. De la m&#234;me mani&#232;re un &#171; blanc &#187; prometteur en sport aura une pression sociale forte (surtout si il a un haut niveau en &#233;tude) &#224; poursuivre ses &#233;tudes.&lt;/p&gt; &lt;p&gt;Ma th&#233;orie pas plus que la th&#233;orie g&#233;n&#233;tique n'est bonne car aucune des deux n'est pass&#233;e &#224; ma connaissance (et celle de google) &#224; l'&#233;preuve de l'observation.&lt;/p&gt; &lt;p&gt;Par contre une th&#233;orie n'est pas une r&#233;alit&#233;. Et j'aimerais que mes amis scientifiques s'en souviennent. Peut-&#234;tre serait-ce ouvrir la bo&#238;te de Pandore, mais j'ai confiance dans mon hypoth&#232;se, et je pense qu'il serait sain que les scientifiques, les intellectuels au lieu de cacher le pass&#233; raciste d'une certaine France et de vivre cet acquis dissipent les a priori au moyen de l'&#233;tude scientifique du sujet.&lt;/p&gt; &lt;p&gt;Je suis peut &#234;tre pas aller loin en science, je suis peut &#234;tre pas brillant, mais j'applique la seule chose que l'on m'ait apprise : douter des th&#233;ories, les confronter, et les accepter quand elles sont conformes au fait.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Pour moi d&#233;baptiser la rue et l'amphi Cuvier serait une mani&#232;re de rappeler aux scientifiques fran&#231;ais que nous ne sommes pas oblig&#233;s de vivre avec l'h&#233;ritage du d&#233;but XX&#233; : les d&#233;buts de l'expertise m&#233;dico l&#233;gale et toutes ses d&#233;rives.&lt;/p&gt; &lt;p&gt;Ce serait aussi une mani&#232;re de d&#233;noncer un racisme rampant qui se planque derri&#232;re des th&#233;ories qui ont l'air scientifique, mais qui tant qu'elles n'ont pas pass&#233; l'&#233;preuve des faits n'existent pas.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;[&lt;a href='#nh1' id='nb1' class='spip_note' title='Notes 1' rev='footnote'&gt;1&lt;/a&gt;] &#192; mon &#233;poque il y avait aussi un amphi Cuvier &#224; la fac&lt;/p&gt;&lt;p&gt;[&lt;a href='#nh2' id='nb2' class='spip_note' title='Notes 2' rev='footnote'&gt;2&lt;/a&gt;] google peut aider&lt;/p&gt; &lt;p&gt;[&lt;a href='#nh3' id='nb3' class='spip_note' title='Notes 3' rev='footnote'&gt;3&lt;/a&gt;] &#231;a se compte en milliard de milliard de milliard et encore je suis gentil je compte une particule par mol&#233;cule&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Pourquoi les cr&#233;ationistes auront-ils toujours raison, m&#234;me si ils ont tort ? </title>
		<link>http://imagina.ti0n.net/spip.php?article36</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article36</guid>
		<dc:date>2009-11-11T14:43:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>edito</dc:subject>
		<dc:subject>j'aime pas</dc:subject>
		<dc:subject>sophisme et philosophie</dc:subject>

		<description>Epicure disait Celui qui dit que tout arrive par n&#233;cessit&#233; a forc&#233;ment raison. Normalement je pourrais m'arr&#234;ter l&#224; : ce que d&#233;crit Epicure est un argument qui est toujours vrai quelque soit la v&#233;rit&#233; intrins&#232;que de votre point de vue. On appelle cela une tautologie. Le cr&#233;ationisme est une tautologie : qu'ils aient tort ou raison leur assertion sur un plan formel/logique est toujours vrai. Mais ce qui est formellement vrai ne l'est pas toujours. Exemple La lumi&#232;re est onde (faux car elle se (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique5" rel="directory"&gt;point de vue image du monde&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot11" rel="tag"&gt;edito&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot17" rel="tag"&gt;j'aime pas&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot25" rel="tag"&gt;sophisme et philosophie&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;a href='http://fr.wikipedia.org/wiki/Epicure' class='spip_glossaire'&gt;Epicure&lt;/a&gt; disait&lt;/p&gt;
&lt;blockquote class=&quot;spip&quot;&gt;
&lt;p&gt;Celui qui dit que tout arrive par n&#233;cessit&#233; a forc&#233;ment raison.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt; Normalement je pourrais m'arr&#234;ter l&#224; : ce que d&#233;crit Epicure est un argument qui est toujours vrai quelque soit la v&#233;rit&#233; intrins&#232;que de votre point de vue. On appelle cela une &lt;a href='http://fr.wikipedia.org/wiki/tautologie' class='spip_glossaire'&gt;tautologie&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Le cr&#233;ationisme est une tautologie : qu'ils aient tort ou raison leur assertion sur un plan formel/logique est toujours vrai. Mais ce qui est formellement vrai ne l'est pas toujours. Exemple La lumi&#232;re est onde (faux car elle se comporte comme un corpuscule) , la lumi&#232;re est corpuscule (faux aussi). Deux assertions fausses forment pourtant une v&#233;rit&#233; scientifique.&lt;/p&gt; &lt;p&gt;Ce qui m'int&#233;resse en l'occurrence c'est surtout au travers d'un exemple r&#233;cent essayer d'expliquer le foss&#233; entre les sophistes honnis mais que j'appr&#233;cie et les philosophes appr&#233;ci&#233;s que j'ex&#232;cre, ainsi que le danger de leur pens&#233;e.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;dl class='spip_document_54 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L384xH599/science-73256.png' width='384' height='599' alt='PNG - 39.8 ko' style='height:599px;width:384px;' /&gt;&lt;/dt&gt;
&lt;dd class='spip_doc_descriptif' style='width:350px;'&gt;&lt;a href='http://www.wellingtongrey.net/miscellanea/' class='spip_out'&gt;http://www.wellingtongrey.net/misce...&lt;/a&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 class=&quot;spip&quot;&gt;Cr&#233;ationiste versus Scientifique&lt;/h3&gt;
&lt;p&gt;Les cr&#233;ationistes affirment que si le monde est ainsi, et qu'il y a des r&#232;gles strictes, cela est forc&#233;ment parce qu'un architecte a con&#231;u les r&#232;gles. Donc si il y a des r&#232;gles de la physique et que le vivant para&#238;t si improbable (il faut un ajustement serr&#233; de beaucoup de param&#232;tres pour que nous existions) alors c'est que le dessein de la science est l'existence humain. &lt;strong&gt;Pourquoi&lt;/strong&gt;, dans quelles finalit&#233;s sont faites l'ensemble des r&#232;gles que d&#233;crivent la science : c'est pour que l'&#234;tre humain puisse exister... Tout ce qui arrive arrive par n&#233;cessit&#233; .... et derri&#232;re ce but se trouve un architecte car le hasard seul n'aurait pu permettre un tel agencement. On se retrouve donc avec le raisonnement d&#233;crit par Epicure.&lt;/p&gt; &lt;p&gt;Il se trouve que j'&#233;nervais passablement un prof de physique qui disait que j'&#233;tais un cancre en lui demandant syst&#233;matiquement &lt;i&gt;&#171; pourquoi les choses sont-elles ainsi ? &#187;&lt;/i&gt;. Un jour il a trouv&#233; la meilleure r&#233;ponse qui soit, et je l'en rermercie il m'a dit :&lt;/p&gt;
&lt;blockquote class=&quot;spip&quot;&gt;
&lt;p&gt;&#171; la science n'a pas pour but de r&#233;pondre &#224; la question pourquoi mais comment, la question du pourquoi appartient &#224; la m&#233;taphysique et aux religions &#187; (dixit Mr Mahet)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ce premier point nous fait faire un changement de point de vue opportun similaire au &lt;a href='http://fr.wikipedia.org/wiki/th%C3%A9or%C3%A8me_d%27incompl%C3%A9tude' class='spip_glossaire'&gt;th&#233;or&#232;me d'incompl&#233;tude&lt;/a&gt; de G&#246;del qui rappelle que certains probl&#232;mes pour &#234;tre r&#233;solus ne doivent pas &#234;tre trait&#233;s au niveau o&#249; ils sont pos&#233;s : le cr&#233;ationisme ne se traite pas sur le plan scientifique mais sur le plan du sophisme [&lt;a href='#nb1-1' class='spip_note' rel='footnote' title='le plan philosophique appartient aux poseux de la sagesse appel&#233;s (...)' id='nh1-1'&gt;1&lt;/a&gt;].&lt;/p&gt; &lt;p&gt;Le cr&#233;ationisme fait une assertion de l'ordre de la conviction profonde affirm&#233;e non r&#233;futable, la science part du doute. Comme nous doutons de tout, nous pouvons accepter le cr&#233;ationisme, donc un scientifique en son &#226;me et conscience ne peut r&#233;futer une tautologie imparable.&lt;/p&gt; &lt;dl class='spip_document_55 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L373xH599/foi-c090b.png' width='373' height='599' alt='PNG - 20.1 ko' style='height:599px;width:373px;' /&gt;&lt;/dt&gt;
&lt;dd class='spip_doc_descriptif' style='width:350px;'&gt;&lt;a href='http://www.wellingtongrey.net/miscellanea/' class='spip_out'&gt;http://www.wellingtongrey.net/misce...&lt;/a&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 class=&quot;spip&quot;&gt;Philosophes versus Sophistes&lt;/h3&gt;
&lt;p&gt;En tant que sophiste qui recherche la v&#233;rit&#233;, on peut faire deux remarques : la v&#233;rit&#233; logique n'est pas la v&#233;rit&#233; : &#171; on peut dire je suis un menteur &#187; ce qui est un paradoxe. La v&#233;rit&#233; de nos mots n'est pas la v&#233;rit&#233; des Hommes, et vice versa.&lt;/p&gt; &lt;p&gt;De l'autre cot&#233; de le dernier des sophistes F. Nietzsche disait : la v&#233;rit&#233; est comme un diamant car on peut la voir jaune, vert, rose transparente ... chaque affirmation prise s&#233;par&#233;ment est fausse, pourtant toutes ces affirmations regroup&#233;es sont vraies. Le sophiste ne cherche pas donc pas la v&#233;rit&#233; absolue, car l'absolu est un confort de la pens&#233;e qui nous &#233;loigne de la recherche d'une v&#233;rit&#233; et de sa d&#233;couverte, mais c'est un processus. En ceci on pourrait dire une tautologie est trop confortable pour &#234;tre vraie mais dire que toute v&#233;rit&#233; est simple n'est ce pas l&#224; doublement un mensonge ?&lt;/p&gt; &lt;p&gt;Voil&#224; o&#249; les sophistes sont emp&#234;tr&#233;s : la recherche du point de vue &#233;quilibr&#233;, celui de l'humain, en proie &#224; la recherche des lois de notre univers mais aussi &#224; sa propre faillibilit&#233;. Nos sens nous trompe, notre esprit nous trompe, mais la seule chose qui nous sauve c'est le raisonnement et sa confrontation aux opinions des autres.&lt;/p&gt; &lt;p&gt;Il serait donc de mauvais aloi au nom de l'&#233;quilibre de discr&#233;diter un argument fallacieux (issu de la foi) au pr&#233;texte qu'il ne respecterait pas le dogme de l'&#233;quilibre.&lt;/p&gt; &lt;p&gt;Cependant Epicure ne disait-il pas :&lt;/p&gt;
&lt;blockquote class=&quot;spip&quot;&gt;
&lt;p&gt;&#171; La n&#233;cessit&#233; est un mal, mais il n'existe aucune n&#233;cessite de vivre sous l'empire du mal &#187;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;dl class='spip_document_56 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L465xH700/pseudoscience-d8b1c.jpg' width='465' height='700' alt='JPEG - 47 ko' style='height:700px;width:465px;' /&gt;&lt;/dt&gt;
&lt;dd class='spip_doc_descriptif' style='width:350px;'&gt;&lt;a href='http://www.talkingsquid.net/blogpix/pseudoscience.jpg' class='spip_out'&gt;http://www.talkingsquid.net/blogpix...&lt;/a&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h3 class=&quot;spip&quot;&gt;Le retour au science&lt;/h3&gt;
&lt;p&gt;Je ne serais jamais un religieux car mis &#224; part ce que je sais &#234;tre mes croyances (la capacit&#233; de tout humain &#224; devenir qui il est), je pense qu'une v&#233;rit&#233; ne peut &#234;tre acceptable que si et seulement si on peut la tester, la d&#233;montrer et la remettre en question.&lt;/p&gt; &lt;p&gt;En ceci le cr&#233;ationisme n'est pas une v&#233;rit&#233; scientifique, mais une d&#233;claration de foi. La foi n'est pas la science. Elle est certes confortable, respectable, mais elle ne m&#233;rite pas d'&#234;tre appel&#233;e scientifique.&lt;/p&gt; &lt;p&gt;En conclusion le cr&#233;ationisme peut dire ce qu'il veut, je trouve juste que c'est un bel exemple de tautologie formel, un acte de foi. Comme je ne vis pas sous l'empire du mal, je me permet de faire ce que l'on peut faire avec toute foi : la rejeter car elle ne peut &#234;tre d&#233;montr&#233;e. Par contre, une chose me choque et je lutte contre elle : l'&#233;l&#233;vation du cr&#233;ationisme au m&#234;me rang que le darwinisme scientifique, car Darwin est parti de l'observation pour b&#226;tir une th&#233;orie objectable et exp&#233;rimentable. Ce qui manque clairement au cr&#233;ationisme pour &#234;tre consid&#233;r&#233; comme scientifique.&lt;/p&gt; &lt;p&gt;Et enfin &#224; ceux qui pensent que le jargon scientifique qui habille le cr&#233;ationisme et les experts invoqu&#233;s reconnus en science suffisent &#224; valider une th&#233;orie comme scientifique, je r&#233;pondrais qu'en science les apparences du discours comptent moins que le discours : ce n'est pas en mettant une blouse blanche &#224; un pr&#234;tre qu'on transforme ce qu'il dit en v&#233;rit&#233; scientifique.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;[&lt;a href='#nh1-1' id='nb1-1' class='spip_note' title='Notes 1-1' rev='footnote'&gt;1&lt;/a&gt;] le plan philosophique appartient aux poseux de la sagesse appel&#233;s philosophes, le sophisme appartient &#224; ceux qui veulent chercher une r&#233;ponse sans pr&#233;jug&#233;s&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Ce qui ne va pas dans PHP5</title>
		<link>http://imagina.ti0n.net/spip.php?article31</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article31</guid>
		<dc:date>2009-11-04T15:37:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>programmation</dc:subject>
		<dc:subject>productivit&#233;</dc:subject>
		<dc:subject>langages</dc:subject>

		<description>En ce moment la demande est beaucoup sur PHP5 notamment parce que l'on d&#233;veloppe plus vite qu'en java, et qu'en plus les d&#233;veloppeurs sont moins chers. Pourtant parfois PHP peut comme beaucoup d'outil devenir le probl&#232;me. Faisons un rapide tour d'horizon de ce qui peut mal tourner. Espace de nommage de base prolixe et confus + de 3000 fonctions d'espace de nommage de base (contre quelques centaines pour ruby ou python ou perl), et un humain travail au mieux avec 300 mots. Ce qui est vrai en (...)

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique6" rel="directory"&gt;un peu de technique&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot4" rel="tag"&gt;programmation&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot18" rel="tag"&gt;productivit&#233;&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot22" rel="tag"&gt;langages&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;En ce moment la demande est beaucoup sur PHP5 notamment parce que l'on d&#233;veloppe plus vite qu'en java, et qu'en plus les d&#233;veloppeurs sont moins chers. Pourtant parfois PHP peut comme beaucoup d'outil devenir le probl&#232;me. Faisons un rapide tour d'horizon de ce qui peut mal tourner.
&lt;span class='spip_document_52 spip_documents spip_documents_center'&gt;
&lt;img src='http://imagina.ti0n.net/IMG/jpg/00213.jpg' width=&quot;600&quot; height=&quot;450&quot; alt=&quot;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Espace de nommage de base prolixe et confus&lt;/h3&gt;
&lt;p&gt;+ de 3000 fonctions d'espace de nommage de base (contre quelques centaines pour ruby ou python ou perl), et un humain travail au mieux avec 300 mots. Ce qui est vrai en langage courant, et aussi vrai en informatique...&lt;/p&gt; &lt;p&gt;et l'on trouve dans le corps de PHP5 des fonctions comme
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://php.net/manual/fr/function.mysql-real-escape-string.php' class='spip_out'&gt;mysql-real-escape-string&lt;/a&gt; ;
&lt;br /&gt;&lt;img src=&quot;http://imagina.ti0n.net/local/cache-vignettes/L8xH11/puce-8130d.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;a href='http://www.php.net/manual/fr/function.mysql-escape-string.php' class='spip_out'&gt;mysql-escape-string.php&lt;/a&gt; ;&lt;/p&gt; &lt;p&gt;... dont on a du mal &#224; voir l'int&#233;r&#234;t.&lt;/p&gt; &lt;p&gt;Les fonctions contiennent parfois des &quot;_&quot; parfois pas, parfois commencent par get, ou se termine par get .... (isset vs is_object par exemple) ,&lt;/p&gt; &lt;p&gt;Et enfin, au lieu d'avoir une fonction de recherche de regexp/split, ou en a une douzaine en fonction de param&#232;tres tel que l'insensibilit&#233; &#224; la casse, la gestion d'UTF8...&lt;/p&gt; &lt;p&gt;Pourquoi avoir 10 fonctions l&#224; o&#249; les autres langages en ont une, avec des syntaxes incoh&#233;rentes ?&lt;/p&gt; &lt;p&gt;&lt;a href='http://www.tnx.nl/php.html' class='spip_out'&gt;lire ici pour une version plus d&#233;taill&#233;e&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;PHP est impr&#233;dictible quand on utilise UTF8&lt;/h3&gt;
&lt;p&gt;L'esprit PHP est d'offrir des bindings sur moults librairies C avec de bonnes performances. PHP ne fait pas dans la dentelle, il y a un espace m&#233;moire avec ce qui est suppos&#233; &#234;tre une cha&#238;ne de caract&#232;re, et c'est pass&#233; au fonctions.&lt;/p&gt; &lt;p&gt;PHP contrairement aux autres langages modernes ne travaille pas avec une repr&#233;sentation interne des cha&#238;nes de caract&#232;re en unicode 16. Ce que l'on a en m&#233;moire est ce que la pr&#233;c&#233;dente fonction &#224; bien voulu rentrer, ou ce qui est donn&#233; par le serveur de page web en fonction des r&#233;glages syst&#232;mes ou autres. Bref, la cha&#238;ne est pr&#233;sente en m&#233;moire avec des repr&#233;sentations potentiellement non homog&#232;ne.&lt;/p&gt; &lt;p&gt;Pour un langage web o&#249; l'on travaille avec les cha&#238;nes de caract&#232;res, qui sont nos interfaces, l'ins&#233;curit&#233; sur les cha&#238;nes de caract&#232;res est un probl&#232;me majeur : on contr&#244;le peu ou mal nos entr&#233;es, ce qui est la porte ouverte &#224; tous les trous de s&#233;curit&#233;.&lt;/p&gt; &lt;p&gt;&lt;a href='http://www.phpwact.org/php/i18n/utf-8' class='spip_out'&gt;Liste des fonctions non s&#251;res avec UTF8&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_51 spip_documents spip_documents_center'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH375/00166-5741b.jpg' width='500' height='375' alt=&quot;&quot; style='height:375px;width:500px;' /&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Symfony la solution ?&lt;/h3&gt;
&lt;p&gt;Je suis perplexe sur symfony. C'est une copie fonctionnelle du framework MVC Ruby'On Rails avec des morceaux d'emprunt &#224; java (propel ressemble &#224; hibernate et le framework a une syntaxe &#224; la java). Je ne pense que du bien de ces technologies a priori.&lt;/p&gt; &lt;p&gt;Prenons doctrine (l'&lt;a href='http://fr.wikipedia.org/wiki/ORM' class='spip_glossaire'&gt;ORM&lt;/a&gt; montant) et regardons leur &lt;a href='http://www.symfony-project.org/doctrine/1_2/en/06-Working-With-Data' class='spip_out'&gt;documentation&lt;/a&gt;. &#199;a semble bien.&lt;/p&gt; &lt;p&gt;Et, on voit para&#238;tre le prepare execute (requ&#234;te SQL pr&#233;par&#233;e) avec les arguments optionnels qui prot&#232;gent contre pas mal d'injections SQL.&lt;/p&gt; &lt;p&gt;Malheureusement on voit aussi qu'il tient qu'au d&#233;veloppeur de passer au requ&#234;tes pr&#233;par&#233;es des arguments de leur jus comme :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$injectionable =&quot;u.secure LIKE = \'%$arg%\'&quot;&lt;br /&gt; $q = Doctrine_Query::create()&lt;br /&gt; -&gt;from('User u')&lt;br /&gt; -&gt;where($injectionable);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Par exp&#233;rience par ce que cela est faisable, certains malheureusement le feront.&lt;/p&gt; &lt;p&gt;De plus, symfony est hyper verbeux :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;sfContext::getInstance()-&gt;getRequest()-&gt;getScriptName());&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;s'&#233;crit en PHP normal&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$_SERVER['SCRIPT_FILENAME']&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Et c'est l&#224; o&#249; l'on touche au d&#233;faut de symfony : symfony ne s'appuie pas sur le PHP, il impose une nouvelle syntaxe. De fait symfony c'est du PHP5 qui mime java dans son hyperverbosit&#233;, ce qui fait justement perdre tous les int&#233;r&#234;ts de PHP5. Symfony c'est une centaine de nouvelles classes, et une dizaines de nouveaux attributs m&#233;thodes par classe. Une espace de nommage contenant 4000 mots c'est du d&#233;lire ! Aucun humain ne peut possiblement tous les connaitre et voir comment bien les utiliser.&lt;/p&gt; &lt;p&gt;Pourquoi code-t'on plus vite en php qu'en java ?&lt;/p&gt; &lt;p&gt;Pour cela il faut s'int&#233;resser aux donn&#233;es &lt;a href='http://fr.wikipedia.org/wiki/COCOMO' class='spip_glossaire'&gt;COCOMO&lt;/a&gt; II (COnstructive COst MOdel) : le java est plus verbeux que le PHP d'un facteur 2. Or la productivit&#233; des d&#233;veloppeurs est ind&#233;pendante d'un langage, donc &#224; comp&#233;tence &#233;gale un d&#233;veloppement co&#251;ter deux fois moins en PHP.&lt;/p&gt; &lt;p&gt;Sauf si le framework est hyper verbeux.
Or une instruction (COCOMO) n'est pas une ligne de code, et dans l'exemple ci dessus, chaque call () est une op&#233;ration. Donc, dans ce cas l&#224; symfony est 4 fois plus verbeux que PHP.&lt;/p&gt; &lt;p&gt;Autrement dit, symfony a les d&#233;fauts de PHP (typage faible et cha&#238;ne de caract&#232;res explosives) et ceux de java (hyper verbosit&#233;).&lt;/p&gt; &lt;p&gt;Symfony est pour moi l'exemple type de professionalisation du libre : une application qui donne l'air s&#233;rieuse car elle ressemble &#224; ce que l'on attend d'une application s&#233;rieuse, mais elle n'est pas s&#233;rieuse.&lt;/p&gt; &lt;p&gt;On se retrouve avec l'apparence de la qualit&#233;. Pourtant ce n'est pas en mettant une blouse blanche &#224; un singe cela le transforme en g&#233;nial savant.&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_53 spip_documents spip_documents_center'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L450xH600/00220-2000b.jpg' width='450' height='600' alt=&quot;&quot; style='height:600px;width:450px;' /&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;La communaut&#233; PHP &lt;/h3&gt;
&lt;p&gt;Le PHP est un langage que j'aime bien pour le d&#233;veloppement rapide web. Plus simple &#224; d&#233;ployer que d'autres il a beaucoup d'int&#233;r&#234;t pour faire un prototype, et il peut parfois m&#234;me tenir la charge. J'y reste attach&#233; malgr&#233; ses d&#233;fauts.&lt;/p&gt; &lt;p&gt;Cependant, ce qui fait la puissance d'un langage c'est le codeur derri&#232;re. Un langage puissant permet autant de faire des prouesses que des horreurs. PHP, ruby et Perl sont dans cette famille de langage.&lt;/p&gt; &lt;p&gt;Entre vieux dinosaures nos pires cauchemars sont rarement li&#233;s &#224; PHP, mais souvent &#224; l'id&#233;e g&#233;niale qu'on encore trouv&#233; les nouveaux d&#233;veloppeurs.&lt;/p&gt; &lt;p&gt;Un site contient un syst&#232;me de limitation des visites par date s'appuie sur le champs date de postgresql (qui contient aussi le temps), on demande de rajouter une limitation sur l'heure, et voil&#224; qu'apparait dans symfony un nouvel objet qui au final consiste &#224; stocker l'heure dans une chaine de caract&#232;re et &#224; comparer cette chaine &#224; l'heure syst&#232;me. &#224; chaque chargement page, qui s'ajoute &#224; l'ex&#233;cution de la pr&#233;c&#233;dente limitation.&lt;/p&gt; &lt;p&gt;Diantre, que de contorsion pour faire quelque chose qui existait d&#233;j&#224;.&lt;/p&gt; &lt;p&gt;Je ne compte plus les fois o&#249; la solution couramment utilis&#233;e dans le m&#233;tier est discr&#233;dit&#233;e parce que &#171; trop compliqu&#233;e &#187;. Avoir un site en plusieurs langue : on utilise gettext ? Que nenni, on duplique le site autant de fois qu'il y a de langues.&lt;/p&gt; &lt;p&gt;G&#233;rer la date : utilise-t'on l'une des 3000 les fonction PHP qui est correcte ? Non on recode sa fonction &#224; base de parcours de cha&#238;ne de caract&#232;res ....&lt;/p&gt; &lt;p&gt;Si un d&#233;faut existe dans PHP c'est la m&#233;connaissance d'une certaine culture informatique et la r&#233;invention permanente. Pour preuve PHP ne dispose pas m&#234;me avec PEAR de l'&#233;quivalent d'un Pypi ou d'un CPAN ou d'un GEM.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Un langage a parfois des d&#233;fauts, il a aussi des qualit&#233;s. Je crois que les d&#233;fauts de PHP sont surtout les d&#233;veloppeurs ; les codeurs exp&#233;riment&#233;s qui encore il y a 5 ans &#233;taient sur PHP ont presque tous migr&#233; pour perl, python ruby. D'une part parce que ces langages &#233;taient un progr&#232;s, d'autre part aussi parce que l'arriv&#233;e de nouveaux entrants attir&#233;s par la promesse d'un emploi facile plus que par le plaisir du travail bien fait ont transform&#233; le travail en environnement PHP en roulette russe : sur le papier tout le monde met en oeuvre les meilleures techniques possibles, par contre dans le code on trouve des erreurs que l'on croyait disparues depuis 10 ans.&lt;/p&gt; &lt;p&gt;Depuis 1968, il est prouv&#233;, reprouv&#233; et rabattu que le d&#233;veloppement est marginalement une question d'outils. Les vrais gains se font avec le cerveau.&lt;/p&gt; &lt;p&gt;C'est pour &#231;a que mieux que symfony je peux vous donner une recette appel&#233;e le Tao de python qui marche bien aussi en PHP :&lt;/p&gt; &lt;blockquote class=&quot;spip_poesie&quot;&gt;
&lt;div&gt;1. Beautiful is better than ugly.&lt;/div&gt;
&lt;div&gt; 2. Explicit is better than implicit.&lt;/div&gt;
&lt;div&gt; 3. Simple is better than complex.&lt;/div&gt;
&lt;div&gt; 4. Complex is better than complicated.&lt;/div&gt;
&lt;div&gt; 5. Flat is better than nested.&lt;/div&gt;
&lt;div&gt; 6. Sparse is better than dense.&lt;/div&gt;
&lt;div&gt; 7. Readability counts.&lt;/div&gt;
&lt;div&gt; 8. Special cases aren't special enough to break the rules.&lt;/div&gt;
&lt;div&gt; 9. Although practicality beats purity.&lt;/div&gt;
&lt;div&gt; 10. Errors should never pass silently.&lt;/div&gt;
&lt;div&gt; 11. Unless explicitly silenced.&lt;/div&gt;
&lt;div&gt; 12. In the face of ambiguity, refuse the temptation to guess.&lt;/div&gt;
&lt;div&gt; 13. There should be one&#8212; and preferably only one &#8212;obvious way to do it.&lt;/div&gt;
&lt;div&gt; 14. Although that way may not be obvious at first unless you're Dutch.&lt;/div&gt;
&lt;div&gt; 15. Now is better than never.&lt;/div&gt;
&lt;div&gt; 16. Although never is often better than *right* now.&lt;/div&gt;
&lt;div&gt; 17. If the implementation is hard to explain, it's a bad idea.&lt;/div&gt;
&lt;div&gt; 18. If the implementation is easy to explain, it may be a good idea.&lt;/div&gt;
&lt;div&gt; 19. Namespaces are one honking great idea &#8212; let's do more of those !&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Boulogne on fire</title>
		<link>http://imagina.ti0n.net/spip.php?article34</link>
		<guid isPermaLink="true">http://imagina.ti0n.net/spip.php?article34</guid>
		<dc:date>2009-10-26T17:14:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>julien</dc:creator>


		<dc:subject>fun</dc:subject>
		<dc:subject>photo</dc:subject>
		<dc:subject>j'aime</dc:subject>

		<description>

-
&lt;a href="http://imagina.ti0n.net/spip.php?rubrique5" rel="directory"&gt;point de vue image du monde&lt;/a&gt;

/ 
&lt;a href="http://imagina.ti0n.net/spip.php?mot6" rel="tag"&gt;fun&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot12" rel="tag"&gt;photo&lt;/a&gt;, 
&lt;a href="http://imagina.ti0n.net/spip.php?mot14" rel="tag"&gt;j'aime&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;span class='spip_document_50 spip_documents spip_documents_center'&gt;
&lt;img src='http://imagina.ti0n.net/local/cache-vignettes/L500xH375/00130-8e8d9.jpg' width='500' height='375' alt=&quot;&quot; style='height:375px;width:500px;' /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
