<?xml version="1.0"?>
<rss version="2.0"><channel id="users"><description>Les derniers billets des blogs des membres</description><link>http://www.nextgeneration.fr/</link><title>NextGeneration.fr - Billets</title><item><title>Hadopi, c'est fini ! Merci le CC !</title><link>http://users.nextgeneration.fr/nazztazz/blog/Hadopi-c-est-fini-Merci-le-CC</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Le Conseil constitutionnel a censur&#xE9;, mercredi 10 juin, la partie sanction de la loi Hadopi - la &amp;quot;riposte gradu&#xE9;e&amp;quot; - sur le t&#xE9;l&#xE9;chargement ill&#xE9;gal. Consid&#xE9;rant qu'&amp;quot;Internet est une composante de la libert&#xE9; d'expression et de consommation&amp;quot;, et qu'&amp;quot;en droit fran&#xE7;ais c'est la pr&#xE9;somption d'innocence qui prime&amp;quot;, le Conseil rappelle que &amp;quot;c'est &#xE0; la justice de prononcer une sanction lorsqu'il est &#xE9;tabli qu'il y a des t&#xE9;l&#xE9;chargements ill&#xE9;gaux&amp;quot;. &amp;quot;Le r&#xF4;le de la Haute autorit&#xE9; (Hadopi) est d'avertir le t&#xE9;l&#xE9;chargeur qu'il a &#xE9;t&#xE9; rep&#xE9;r&#xE9;, mais pas de le sanctionner&amp;quot;, conclut le Conseil.&#xD;
&#xD;
Les d&#xE9;put&#xE9;s socialistes avaient d&#xE9;pos&#xE9; le 19 mai un recours contre la loi Hadopi sanctionnant le t&#xE9;l&#xE9;chargement ill&#xE9;gal devant le Conseil constitutionnel. Adopt&#xE9; le 13 mai, le projet de loi pr&#xE9;voyait de sanctionner le t&#xE9;l&#xE9;chargement ill&#xE9;gal par une suspension de l'acc&#xE8;s Internet, apr&#xE8;s deux mises en garde. La sanction devait &#xEA;tre prononc&#xE9;e par une nouvelle Haute autorit&#xE9; de diffusion des oeuvres et protection des droits sur internet.&#xD;
&#xD;
&amp;quot;J'exulte&amp;quot; s'est exclam&#xE9; Patrick Bloche, d&#xE9;put&#xE9; PS de Paris et fervent opposant au projet de loi, contact&#xE9; par Le Monde.fr. &amp;quot;Cette d&#xE9;cision correspond exactement &#xE0; notre position qui est de dire qu'Internet est un droit fondamental&amp;quot;. Le minist&#xE8;re de la culture n'a pas pu &#xEA;tre joint pour le moment.&#xD;
&#xD;
Patrick Roger (avec Jean-Baptiste Chastand)&#xD;
&#xD;
Source le Monde.</description></item><item><title>Fluent Interfaces + Constructeurs en PHP: La solution</title><link>http://users.nextgeneration.fr/nazztazz/blog/Fluent-Interfaces-Constructeurs-en-PHP-La-solution</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Le tip du jour sera tr&#xE8;s court, mais tr&#xE8;s utile. C'est simple, mais il suffisait d'y penser.&#xD;
&#xD;
En PHP, il est impossible d'&#xE9;crire:&#xD;
&#xD;

$foo = new Bar&amp;#40;&amp;#41;-&amp;gt;method&amp;#40;&amp;#41;;
&amp;nbsp;&#xD;
&#xD;
Premier r&#xE9;flexe, tenter ceci:&#xD;
&#xD;

$foo = &amp;#40;new Bar&amp;#40;&amp;#41;&amp;#41;-&amp;gt;method&amp;#40;&amp;#41;;
&amp;nbsp;&#xD;
&#xD;
Fail. Le parser de PHP est d&#xE9;cid&#xE9;ment born&#xE9; (cela dit, c'est pas nouveau)&#xD;
&#xD;
Il suffit en fait de d&#xE9;clarer une fonction identit&#xE9; ( qui retourne simplement son parametre ) et le tour est jou&#xE9;:&#xD;
&#xD;

function take&amp;#40;$that&amp;#41; &amp;#123;
&amp;nbsp; &amp;nbsp; return $that;
&amp;#125;

$foo = take&amp;#40;new Bar&amp;#40;&amp;#41;&amp;#41;-&amp;gt;method&amp;#40;&amp;#41;;
&amp;nbsp;&#xD;
&#xD;
Win.&#xD;
&#xD;
Merci &#xE0; ratibus pour le tuyau  </description></item><item><title>Nouvelles fonctionnalit&#xE9;s de Juin</title><link>http://users.nextgeneration.fr/devteam/blog/Nouvelles-fonctionnalites-de-Juin</link><pubDate>01/01/1970 01:00</pubDate><author>DevTeam</author><description>Une grosse: Le gestionnaire de m&#xE9;dia \o/&#xD;
&#xD;
Partout ou vous pouvez en avoir besoin, vous trouvez cette petite barre.&#xD;
&#xD;
Elle vous permet d'uploader des fichiers:&#xD;
&#xD;
&#xD;
Ou encore d'explorer votre m&#xE9;diath&#xE8;que:&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
Pour finalement vous donner le BBcode &#xE0; utiliser pour inclure vos m&#xE9;dia: &#xD;
&#xD;
&#xD;
Une autre interface est accessible via le menu de droite, &amp;quot;Mes m&#xE9;dia&amp;quot;:&#xD;
C'est le gestionnaire de m&#xE9;dia proprement dit.&#xD;
Il vous permet de cr&#xE9;er des albums pour trier vos m&#xE9;dia:&#xD;
&#xD;
&#xD;
Et de d&#xE9;placer vos documents &#xE0; la souris:&#xD;
&#xD;
&#xD;
</description></item><item><title>Philippe Maltere, future victime n&#xB0;2 de l'HADOPI ?</title><link>http://users.nextgeneration.fr/nazztazz/blog/Philippe-Maltere-future-victime-n-2-de-l-HADOPI</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Information:Les explications d'Orange: http://www.pcinpact.com/actu/news/50884 &amp;hellip; lbanel.htm&#xD;
&#xD;
Sur le blog de Philippe Maltere ( h&#xE9;berg&#xE9; sur orange-business ), un billet tr&#xE8;s int&#xE9;ressant, publi&#xE9; hier, a miraculeusement disparu aujourd'hui.&#xD;
&#xD;
Pour m&#xE9;moire: (merci google et son cache)&#xD;
&#xD;
HADOPI le danger (bien) cach&#xE9;&#xD;
&#xD;
Citation externeApr&#xE8;s notre article sur certaines difficult&#xE9;s techniques un peu oubli&#xE9;es li&#xE9;es &#xE0; la mise en place de la nouvelle loi Cr&#xE9;ation et internet dite Hadopi, et puisque maintenant c'est (presque) fait, la loi &#xE9;tant vot&#xE9;e, nous pouvons donc vous dire en exclusivit&#xE9; quel sera le plus grand danger de cette loi. Loin de nous l'id&#xE9;e de rentrer dans la pol&#xE9;mique, ce n'est pas le genre de la maison. Il existe sur Internet &#xE0; l'heure actuelle pas mal de sc&#xE9;narios de politique fiction sur le futur d'Hadopi. De la loi, nous ne sommes pas devins, nous n'en parlerons pas, par contre de ses cons&#xE9;quences certaines &#xE0; moyen terme, oui.&#xD;
&#xD;
Commen&#xE7;ons par nous int&#xE9;resser aux diff&#xE9;rents protocoles circulant sur Internet. A l'heure actuelle, la plupart des communications circulent en clair utilisant un nombre impressionnant de protocoles. Les communications utilisant le chiffrement sont assez restreintes dans leur utilisation, pour les particuliers les sites e-marchands, bancaire ou &#xE9;ventuellement gouvernemental (imp&#xF4;ts par exemple), les entreprises utilisent de plus en plus elles aussi Internet pour communiquer via des VPN chiffr&#xE9;s entre agences. Le reste des communications chiffr&#xE9;es, et bien ceux qui ne veulent pas que leur communications soient &#xAB; &#xE9;cout&#xE9;s &#xBB; (pour diverses raisons, mais principalement aujourd'hui ill&#xE9;gales en majorit&#xE9;, ce qui peut les rendre &#xAB; simple &#xBB; &#xE0; rep&#xE9;rer) ou simplement veulent rester anonymes. Voici le macro paysage d'Internet, qui comme nous le voyons est difficilement contr&#xF4;lable, mais le contr&#xF4;le des flux pour soit reconnaitre le terrorisme, la p&#xE9;dophilie, ou le t&#xE9;l&#xE9;chargement ill&#xE9;gal reste possible techniquement.&#xD;
&#xD;
Que va-t-il se passer apr&#xE8;s le passage de la loi ?&#xD;
&#xD;
Inutile d'avoir une boule de cristal... La mutation est en cours... D'un nombre important de protocoles utilis&#xE9;s, nous allons tomber &#xE0; environ ... deux (ou presque). Le http standard et sa version SSL. Le premier servant rapidement &#xE0; passer au second pour que le contenu reste non connu de tous. Vous allez donc me dire le P2P va disparaitre, et c'est le but de loi, donc la loi est bonne. Oui, vous avez raison, le P2P tel que nous le connaissons aujourd'hui va progressivement disparaitre, mais pas l'&#xE9;change de fichiers ill&#xE9;gaux, la nuance est importante. Le fait de chiffrer ses communications va favoriser l'explosion (pour les puristes cela existe d&#xE9;j&#xE0;)de nouvelles (ou anciennes)formes de communications. En ce qui concerne, par exemple l'&#xE9;change de fichier, des logiciels d'&#xE9;change travaillant sur SSL, des serveurs de fichiers centraux type rapidshare ou megaupload offrant une option HTTPS &#xE0; leurs clients, des fournisseurs de news offrant une connexion SSL (pour la plupart c'est d&#xE9;j&#xE0; fait). Le bon p&#xE8;re de famille va prendre l'habitude de chiffrer toutes ces donn&#xE9;es m&#xEA;me de messagerie gr&#xE2;ce &#xE0; des logiciels toujours plus puissants et de plus en plus faciles &#xE0; utiliser, avec en plus un recherche d'anonymisation plus forte gr&#xE2;ce &#xE0; des r&#xE9;seaux de type TOR ou I2P encore plus faciles d'acc&#xE8;s.&#xD;
&#xD;
Mais vous parliez de danger dans votre titre encore un en trompe l'?il ?&#xD;
&#xD;
Peut &#xEA;tre pas, le danger, en fait sera pour ... le gouvernement lui m&#xEA;me, et dans une moindre mesure pour les fournisseurs d'acc&#xE8;s Internet, et les entreprises. Pourquoi cela ? les communications tr&#xE8;s majoritairement chiffr&#xE9;es vont faire passer l'&#xE9;tat d'Internet de difficilement contr&#xF4;lable &#xE0; totalement incontr&#xF4;lable, appr&#xE9;cier la nuance. Tous les sp&#xE9;cialistes de contre terrorisme cybern&#xE9;tique ou contre p&#xE9;dophilie cybern&#xE9;tique peuvent commencer &#xE0; chercher un nouveau travail, ils ne servent plus &#xE0; rien. Avant, comme nous l'avons vu seuls certains chiffraient leur communication, apr&#xE8;s que l'on est &#xE9;cart&#xE9; les entreprises, les sites bancaires et e-marchand, il ne restait pas &#xAB;grand monde &#xBB; &#xE0; v&#xE9;rifier, maintenant que toutes les communications sont crypt&#xE9;es, comment s&#xE9;parer le bon grain de l'ivraie ? Impossible. D'ailleurs, comme vous le savez, chaque pays a en projet une loi similaire &#xE0; Hadopi. Les Etats-Unis en sont un exemple, mais &#xE0; cet instant ce type de projet est &#xE9;cart&#xE9;, ni par des associations de consommateurs en furie, ni par les artistes.... Non, non.... Par la NSA tout simplement, qui a tout de suite vu le danger de d&#xE9;rapage du tout chiffr&#xE9; (ils avaient d&#xE9;j&#xE0; des probl&#xE8;mes avec Skype pour la m&#xEA;me raison, alors g&#xE9;n&#xE9;raliser le chiffrement pas question) pour les probl&#xE8;mes de s&#xE9;curit&#xE9; int&#xE9;rieure non maitris&#xE9;e. A m&#xE9;diter. L'impact sur les entreprises pourrait &#xEA;tre un peu plus insidieux, en effet, ne pouvant plus rien contr&#xF4;ler les FAI devront tout laisser passer, adieu la qualit&#xE9; de service sur Internet maintenant balbutiante et bient&#xF4;t lettre morte.&#xD;
&#xD;
</description></item><item><title>Nouvelles fonctionnalit&#xE9;s de Mai</title><link>http://users.nextgeneration.fr/devteam/blog/Nouvelles-fonctionnalites-de-Mai</link><pubDate>01/01/1970 01:00</pubDate><author>DevTeam</author><description>Les administrateurs peuvent ajouter des champs dans les profils utilisateurs ( de 4 types: nombre, texte, liste &#xE0; choix, oui/non ) pour personnaliser au maximum la plate-forme en fonction de la th&#xE9;matique.&#xD;
&#xD;
Ici, ce sera &amp;quot;Secteur d'activit&#xE9;&amp;quot; (liste &#xE0; choix multiple), sur 6cordes.net c'est &amp;quot;Niveau, Ann&#xE9;es de guitare, et prend des cours&amp;quot;. Sur un site ax&#xE9; rencontres, ce pourrait etre le statut matrimonial &#xD;
&#xD;
L'aide en ligne a &#xE9;t&#xE9; refondue: D&#xE9;sormais un faux popup s'ouvre sans d&#xE9;lai, l'aide est hautement contextuelle ( cherchez cette icone:  )&#xD;
&#xD;
L'upload de contenu est disponible nativement, partout ou vous pouvez en avoir besoin ( forums, blogs.. ). Une aide contextuelle est disponible pour ce widget.</description></item><item><title>Clusters pour le web: Une solution 2x2</title><link>http://users.nextgeneration.fr/nazztazz/blog/Clusters-pour-le-web-Une-solution-2x2</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Solution soft:&#xD;
&#xD;
PHP + Framework (+orm): http://trac.ngnetworks.fr/&#xD;
MySQL (innodb)&#xD;
Apache pour le dynamique&#xD;
Nginx pour le statique (css, images, etc)&#xD;
&#xD;
PHP/MySQL en cluster, ca se fait finger-in-the-nose si on le pr&#xE9;voit d&#xE8;s le d&#xE9;but:&#xD;
&#xD;
Le plus simple pour Mysql est d'utiliser la r&#xE9;plication built-in en master-master ( = on peut &#xE9;crire/lire indistinctement sur chacun des serveurs, y'a pas de maitre ou d'esclave, les serveurs sont mutuellement esclaves l'un de l'autre ). Si on veut eviter de mettre en place une r&#xE9;partition de charge sql ( applicative ou middleware d'ailleurs ) on d&#xE9;finit que X nodes web vont taper sur chaque node SQL ( avec un failover quand meme, voir plus bas )&#xD;
&#xD;
Le loadbalancing front, on le fait &amp;quot;gratuitement&amp;quot; avec ipvadm ( et 1 ou 2 ip flottantes, et 1 ip par node ). Il faut penser &#xE0; un sharing de session ( chacun &#xE0; sa sauce, session via mysql ou cookie pour recr&#xE9;er la session, suivant les besoins ) histoire que les visiteurs se d&#xE9;loggent pas quand ils sautent de serveur en serveur.&#xD;
&#xD;
Question cache, sur de la HA, &#xE9;vite le &amp;quot;bete&amp;quot; cache par fichiers: pr&#xE9;f&#xE9;rer APC ( cache local a chaque node ) ou memcached ( cache r&#xE9;parti sur une machine d&#xE9;di&#xE9;e ).&#xD;
&#xD;
Solution hard:&#xD;
&#xD;
Hypothese:&#xD;
&#xD;
2 frontaux ( apache / php / nginx, data en local ) qu'on appellera WEB 1 et WEB 2&#xD;
2 sql qu'on appellera SQL 1 et SQL 2&#xD;
&#xD;
C'est une bonne infra si on a peu de donn&#xE9;es statiques ( sinon, ajouter 2 machines pour avoir un filer redond&#xE9; en N+N, raid5 ou raid10 )&#xD;
&#xD;
On part sur de bonnes bases:&#xD;
&#xD;
Chaque machine a son ip fixe&#xD;
Chaque &amp;quot;service sql&amp;quot; a une ip flottante par machine:&#xD;
&#xD;
mettons 192.168.0.1 et .2 pour les frontaux web ( ip fixes )&#xD;
192.168.0.11 et .22 pour les sql ( ip fixes )&#xD;
&#xD;
On attache une ip flottante 192.168.0.31 a la node sql 1 en temps normal, et sql 2 vole l'ip si sql 1 tombe&#xD;
&#xD;
192.168.0.32, meme chose a l'envers (pour les 2 du fond qui dorment, sql2 en temps normal, sql1 si sql2 est down)&#xD;
&#xD;
web 1 tape sur .32 pour son sql&#xD;
web 2 tape sur .31.&#xD;
&#xD;
-&amp;gt; En fonctionnement&#xD;
&#xD;
Cas favorable:&#xD;
&#xD;
Tout roule. Le LB web dispatche 50% des requetes vers web 1, 50% vers web 2.&#xD;
Les 2 serv sql tournent bien, r&#xE9;pliqu&#xE9;s en temps r&#xE9;el.&#xD;
Les deux frontaux synchronisent leurs fichiers statiques avec unison ( cron )&#xD;
&#xD;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &#x25C2; sql &#x25B8; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 2 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2502; &amp;nbsp; SQL 1 &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2571; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250A;
&amp;nbsp; LB WEB &amp;nbsp;&#x27E8; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250A;&#x25C3;&#x2500; sync via unison &amp;nbsp; &#x250A;&#x25C3;&#x2500; replication M-M mysql
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250A;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2572; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &#x25C2; sql &#x25B8; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 1 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2502; &amp;nbsp; SQL 2 &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;&#xD;
&#xD;
Cas d&#xE9;favorable 1:&#xD;
&#xD;
Un serveur sql par terre.&#xD;
FLOATING IP TO THE RESCUE \o/ : les requetes de web2 sont rout&#xE9;es vers sql 2 sans intervention humaine.&#xD;
Le cluster tourne.&#xD;
&#xD;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 2 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; SQL 1 &amp;nbsp;&#x2502; &#x25C2;&#x2500; DOWN
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2571; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A;
&amp;nbsp; LB WEB &amp;nbsp;&#x27E8; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250A; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2573;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2572; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 1 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2534;&#x2500;&#x2500;&#x2500;&#x2500;&#x2502; &amp;nbsp; SQL 2 &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;&#xD;
&#xD;
Cas d&#xE9;favorable 2:&#xD;
&#xD;
Une node web par terre.&#xD;
Le LB le sait, pas de souci, toutes les requetes web sont rout&#xE9;es vers Web 1.&#xD;
&#xD;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOWN &#x2500;&#x25B8; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 2 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2573;&#x2500;&#x2500;&#x2500;&#x2500;&#x2502; &amp;nbsp; SQL 1 &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2573; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2571; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A;
&amp;nbsp; LB WEB &amp;nbsp;&#x27E8; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250A;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x250A;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2572; &amp;nbsp;&#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x250C;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2510;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2572; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp;WEB 1 &amp;nbsp; &#x2502;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2502; &amp;nbsp; SQL 2 &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2502; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2502;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#x2514;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2518;&#xD;
&#xD;
Reprise apres erreur: sans intervention.&#xD;
Le cron red&#xE9;marre tout seul, et resync les fichiers statiques.&#xD;
Mysql au boot va se synchroniser avec son copain, sans perte de donn&#xE9;es.&#xD;
&#xD;
On a une architecture N+N: sur 4 serveurs, 2 peuvent tomber, on garde une &amp;quot;haute disponibilit&#xE9;&amp;quot; sans intervention humaine (c'est le but), une reprise sur erreur sans intervention humaine.&#xD;
Une node tombe ? pas de panique, l'admin a le temps de regarder ce qui se passe, rien n'est coup&#xE9;.&#xD;
</description></item><item><title>Ouverture d'un nouveau r&#xE9;seau: 6 cordes.net</title><link>http://users.nextgeneration.fr/nazztazz/blog/Ouverture-d-un-nouveau-reseau-6-cordes-net</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Enti&#xE8;rement d&#xE9;di&#xE9; aux guitaristes, 6cordes.net vous propose d'apprendre et progresser en participant aux battles (improvisations sur une bande son pr&#xE9;enregistr&#xE9;e), en discutant sur le forum...&#xD;
&#xD;
&#xD;
&#xD;
On vous y attend   </description></item><item><title>Ubuntu 8.10: Le pointeur se d&#xE9;place mais impossible de cliquer ?</title><link>http://users.nextgeneration.fr/nazztazz/blog/Ubuntu-8-10-Le-pointeur-se-deplace-mais-impossible-de-cliquer</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Le probl&#xE8;me semble venir de la mise &#xE0; jour de Xorg ( cf https://bugs.launchpad.net/ubuntu/+bug/296167 )&#xD;
&#xD;
Une solution est de downgrader Xorg pour r&#xE9;installer la version de Hardy:&#xD;
&#xD;
1/ Ouvrir une session dans un terminal texte (Ctrl-alt-F1 par exemple)&#xD;
&#xD;
Terminer la session graphique:&#xD;
&#xD;

sudo /etc/init.d/gdm stop
&amp;nbsp;&#xD;
&#xD;
2/ Dans /etc/apt/sources.list&#xD;
&#xD;
Rajouter:&#xD;
&#xD;
deb http://us.archive.ubuntu.com/ubuntu hardy main
deb http://us.archive.ubuntu.com/ubuntu hardy-updates main
deb http://us.archive.ubuntu.com/ubuntu hardy-security main&#xD;
&#xD;
Puis purger les paquets xorg:&#xD;
&#xD;
cd /var/lib/dpkg/info/
sudo dpkg --purge `ls *xorg*.list | sed s/.list// `&#xD;
&#xD;
(quelques warnings pour cause de d&#xE9;pendances)&#xD;
&#xD;
3/ R&#xE9;installer xorg via les d&#xE9;pots d'hardy&#xD;
&#xD;
sudo apt-get --reinstall install x11-common/hardy xorg/hardy xserver-xorg/hardy xserver-xorg-core/hardy xserver-xorg-input-kbd/hardy xserver-xorg-input-mouse/hardy&#xD;
&#xD;
Et c'est tout.&#xD;
&#xD;
Un petit:&#xD;
&#xD;
sudo /etc/init.d/gdm start&#xD;
&#xD;
Et la gal&#xE8;re est finie, la souris ne sera plus bloqu&#xE9;e. </description></item><item><title>Hadopi</title><link>http://users.nextgeneration.fr/nazztazz/blog/Hadopi</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>&#xD;
&#xD;
http://www.laquadrature.net/fr/hadopi-a &amp;hellip; -lhistoire&#xD;
&#xD;
http://pastie.org/414035</description></item><item><title>A voir absolument: Evolution de l'internet par Serge Soudoplatoff</title><link>http://users.nextgeneration.fr/nazztazz/blog/A-voir-absolument-Evolution-de-l-internet-par-Serge-Soudoplatoff</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>
    
    
    
</description></item><item><title>Peps</title><link>http://users.nextgeneration.fr/steph/blog/Peps</link><pubDate>01/01/1970 01:00</pubDate><author>Steph</author><description>&#xD;
&#xD;
25 ans d'experience dans la sonorisation et l'&#xE9;clairage&#xD;
&#xD;
PEPS (Pour Eclairer Pour Sonoriser) Prestataire Sonorisation Eclairage, Vente, Location mat&#xE9;riel, Backline... Cholet 49 Maine-et-Loire France&#xD;
&#xD;
www.peps-sono.com&#xD;
contact</description></item><item><title>hfrRehost: Ouverture a l'interweb mondial (c)</title><link>http://users.nextgeneration.fr/nazztazz/blog/hfrRehost-Ouverture-a-l-interweb-mondial-c</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>&#xD;
&#xD;
D&#xE9;sormais, le service hfr-rehost ( http://hfr-rehost.net/ ) n'est plus limit&#xE9; au forum hardware.fr&#xD;
&#xD;
De plus, les 2 sites pr&#xE9;c&#xE9;demment filtr&#xE9;s ( 4chan et 7chan ) ne le sont plus.</description></item><item><title>Impact des E_NOTICE sur les performances d'une appli web</title><link>http://users.nextgeneration.fr/nazztazz/blog/Impact-des-E-NOTICE-sur-les-performances-d-une-appli-web</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>C'est un fait, beaucoup de d&#xE9;veloppeurs PHP ( dont moi, shame on me ) pr&#xE9;ferent passer la directive error_reporting &#xE0; une valeur qui cache les E_NOTICE.&#xD;
&#xD;
Pourtant, un benchmark tr&#xE8;s simple d&#xE9;montre qu'il est important d'&#xE9;viter ces fameuses &amp;quot;erreurs non fatales&amp;quot;.&#xD;
&#xD;
Test 1: Script de base&#xD;
&#xD;
&amp;lt;?php

error_reporting&amp;#40;E_ALL | E_NOTICE&amp;#41;;

$__begin_time = microtime&amp;#40;true&amp;#41;;

for &amp;#40;$i = 0; $i &amp;lt; 1000; ++$i&amp;#41;
&amp;#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $b = $a;
&amp;#125;

$__end_time = microtime&amp;#40;true&amp;#41;;

$__total_time = round&amp;#40;1000*&amp;#40;$__end_time - $__begin_time&amp;#41;, 2&amp;#41;;

print &amp;quot;1000 it&#xE9;rations sans controle d'erreur: $__total_time ms\n&amp;quot;;

?&amp;gt;&#xD;
&#xD;
Test 2: Script avec error_reporting a 0&#xD;
&#xD;
&amp;lt;?php

error_reporting&amp;#40;0&amp;#41;;

$__begin_time = microtime&amp;#40;true&amp;#41;;

for &amp;#40;$i = 0; $i &amp;lt; 1000; ++$i&amp;#41;
&amp;#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $b = $a;
&amp;#125;

$__end_time = microtime&amp;#40;true&amp;#41;;

$__total_time = round&amp;#40;1000*&amp;#40;$__end_time - $__begin_time&amp;#41;, 2&amp;#41;;

print &amp;quot;1000 it&#xE9;rations avec error_reporting a 0: $__total_time ms\n&amp;quot;;
?&amp;gt;&#xD;
&#xD;
Test 3: Script utilisant l'op&#xE9;rateur @&#xD;
&#xD;
&amp;lt;?php

error_reporting&amp;#40;E_ALL | E_NOTICE&amp;#41;;

$__begin_time = microtime&amp;#40;true&amp;#41;;

for &amp;#40;$i = 0; $i &amp;lt; 1000; ++$i&amp;#41;
&amp;#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @$b = $a;
&amp;#125;

$__end_time = microtime&amp;#40;true&amp;#41;;

$__total_time = round&amp;#40;1000*&amp;#40;$__end_time - $__begin_time&amp;#41;, 2&amp;#41;;

print &amp;quot;1000 it&#xE9;rations avec @ pour cacher les erreurs: $__total_time ms\n&amp;quot;;
?&amp;gt;&#xD;
&#xD;
Test 4: Script sans erreurs &#xD;
&#xD;
&amp;lt;?php

error_reporting&amp;#40;E_ALL | E_NOTICE&amp;#41;;

$__begin_time = microtime&amp;#40;true&amp;#41;;

$i = 0;
$a = 0;

for &amp;#40;$i = 0; $i &amp;lt; 1000; ++$i&amp;#41;
&amp;#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $b = $a;
&amp;#125;

$__end_time = microtime&amp;#40;true&amp;#41;;

$__total_time = round&amp;#40;1000*&amp;#40;$__end_time - $__begin_time&amp;#41;, 2&amp;#41;;

print &amp;quot;1000 it&#xE9;rations avec variables initialis&#xE9;es pour eviter toute erreur: $__total_time ms\n&amp;quot;;
?&amp;gt;&#xD;
&#xD;
Benchmark&#xD;
&#xD;

$ php test1 &amp;amp;&amp;amp; php test2 &amp;amp;&amp;amp; php test3 &amp;amp;&amp;amp; php test4
Notice: Undefined variable: a in /home/devbox/tests/erreur-php/test1 on line 9 &amp;#40; 1000 fois &amp;#41;
1000 it&#xE9;rations sans controle d'erreur: 750.63 ms
1000 it&#xE9;rations avec error_reporting a 0: 0.54 ms
1000 it&#xE9;rations avec @ pour cacher les erreurs: 1.23 ms
1000 it&#xE9;rations avec variables initialis&#xE9;es pour eviter toute erreur: 0.11 ms
&amp;nbsp;&#xD;
&#xD;
La version &amp;quot;brute&amp;quot; affichant les erreurs prend 3/4 de seconde &#xE0; l'&#xE9;x&#xE9;cution.&#xD;
La version &amp;quot;bourrin&amp;quot; avec l'op&#xE9;rateur @ prend 1.23 ms.&#xD;
La version &amp;quot;presque propre&amp;quot; &#xE0; base d'error_reporting 0 prend 0.54 ms.&#xD;
Et... la version correcte ne prend que 0.11 ms.&#xD;
&#xD;
Certes, il est hautement improbable de retrouver un tel cas dans une appli concrete ( une boucle sur 1000 &#xE9;l&#xE9;ments avec 1000 notices ), mais le gain de performances entre une version sans erreur et une version avec erreurs cach&#xE9;es par la config de php est quasiment de 5.&#xD;
&#xD;
&#xD;
&#xD;
</description></item><item><title>Une histoire de gilet jaune et de siege automobile...</title><link>http://users.nextgeneration.fr/nazztazz/blog/Une-histoire-de-gilet-jaune-et-de-siege-automobile</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>En cette p&#xE9;riode d'&#xE9;lections Am&#xE9;ricaines, j'en profite pour vous rappeller que le gilet jaune, c'est: ( au choix )&#xD;
&#xD;
Sous le siege&#xD;
Dans la boite a gants&#xD;
Dans le vide-poches de la portiere&#xD;
&#xD;
Mais pas sur le siege &#xD;
&#xD;
&#xD;
&#xD;
</description></item><item><title>God Save The Dev'</title><link>http://users.nextgeneration.fr/godsavethegeek/blog/God-Save-The-Dev</link><pubDate>01/01/1970 01:00</pubDate><author>GodSaveTheGeek</author><description>God Save The Dev'- Tutoriels Dotnet, JAVA, ASP, AJAX&#xD;
http://www.godsavethegeek.com/tuto</description></item><item><title>God Save The Blog</title><link>http://users.nextgeneration.fr/godsavethegeek/blog/God-Save-The-Blog</link><pubDate>01/01/1970 01:00</pubDate><author>GodSaveTheGeek</author><description>Blog actualit&#xE9; Web&#xD;
http://www.godsavethegeek.com/blog</description></item><item><title>Ouverture du blog</title><link>http://users.nextgeneration.fr/devteam/blog/Ouverture-du-blog</link><pubDate>01/01/1970 01:00</pubDate><author>DevTeam</author><description>Les commentaires sont ouverts par d&#xE9;faut sur tous les billets de ce blog.&#xD;
&#xD;
On r&#xE9;pondra </description></item><item><title>D&#xE9;veloppement du forum</title><link>http://users.nextgeneration.fr/nazztazz/blog/Developpement-du-forum</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>&#xD;
&#xD;
&#xD;
A venir:&#xD;
&#xD;
Tagguer ses propres topics&#xD;
Accorder le droit a un autre membre, d'editer un de ses posts ( pour les topics uniques )&#xD;
Inviter un membre a participer sur un topic&#xD;
</description></item><item><title>Les DAO de ngFramework</title><link>http://users.nextgeneration.fr/nazztazz/blog/Les-DAO-de-ngFramework</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Juste un memo pour les DAO associ&#xE9;s aux modeles de ngfw:&#xD;
&#xD;
D&#xE9;claration:&#xD;

&amp;lt;?php

class Blog extends ngModel
&amp;#123;
&amp;nbsp; &amp;nbsp; protected function setDefinition&amp;#40;&amp;#41;
&amp;nbsp; &amp;nbsp; &amp;#123;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;hasField&amp;#40;'owner_id'&amp;#41;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;hasField&amp;#40;'title'&amp;#41;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;hasField&amp;#40;'description'&amp;#41;;

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;setTableName&amp;#40;'blogs'&amp;#41;;
&amp;nbsp; &amp;nbsp; &amp;#125;
&amp;#125;
&amp;nbsp;&#xD;
&#xD;
L'id est sous-entendu ( et obligatoire ).&#xD;
&#xD;
Acces aux donn&#xE9;es:&#xD;

&amp;lt;?php

// tous les blogs
$blogs = ngModel::getPeer&amp;#40;'Blog'&amp;#41;-&amp;gt;select&amp;#40;&amp;#41;;

// Le blog de l'utilisateur Toto
$blog = ngModel::getPeer&amp;#40;'Blog'&amp;#41;-&amp;gt;selectOne&amp;#40;&amp;quot;LEFT JOIN users ON u.id=b.owner WHERE u.username='%s'&amp;quot;, 'Toto'&amp;#41;;
&amp;nbsp;&#xD;
&#xD;
Crud:&#xD;

&amp;lt;?php

&amp;nbsp; &amp;nbsp; $myBlog = new Blog&amp;#40;&amp;#41;;

&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;owner_id = 4; // Arbitraire \o/
&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;title = 'Titre du blog';

&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;save&amp;#40;&amp;#41;;

&amp;nbsp; &amp;nbsp; echo $myBlog-&amp;gt;id&amp;#40;&amp;#41;; // Renvoie l'id de l'enregistrement cr&#xE9;e :)

&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;title = 'Un autre titre';
&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;save&amp;#40;&amp;#41;;

&amp;nbsp; &amp;nbsp; $myBlog-&amp;gt;delete&amp;#40;&amp;#41;; // Hop. apu.
&amp;nbsp; &amp;nbsp; 
&amp;nbsp;</description></item><item><title>OVH et la demi-mesure: Une histoire d'amour</title><link>http://users.nextgeneration.fr/nazztazz/blog/OVH-et-la-demi-mesure-Une-histoire-d-amour</link><pubDate>01/01/1970 01:00</pubDate><author>NazzTazz</author><description>Les faits&#xD;
&#xD;
La soci&#xE9;t&#xE9; OVH a r&#xE9;cemment coup&#xE9; le transit vers l'h&#xE9;bergeur Sivit, pour une simple page phishing h&#xE9;berg&#xE9;e chez ce dernier.&#xD;
&#xD;
En fait, la page phishing n'est meme pas h&#xE9;berg&#xE9;e sur l'infrastructure Sivit, c'est un client &amp;quot;baie&amp;quot; ( donc en colocation ) qui propose cette page.&#xD;
&#xD;
OVH, avec son discernement l&#xE9;gendaire, a d&#xE9;cid&#xE9; de blacklister l'AS ( ensemble de la plateforme technique, pour simplifier ) Sivit ( Chose qu'on ne fait pas, normalement, a part en chine  )&#xD;
&#xD;
Quelles cons&#xE9;quences ?&#xD;
&#xD;
Imaginons un client OVH qui aurait aussi des serveurs chez SIVIT, qui maintiendrait entre les deux un lien quelconque ( backup, montage nfs, whatever ) : Infrastructure Plant&#xE9;e !&#xD;
&#xD;
Imaginons maintenant un autre client, qui aurait des boutiques e-commerce sur des mutualis&#xE9;s Ovh, et un serveur chez Sivit pour centraliser la facturation: Infrastructure Plant&#xE9;e !&#xD;
&#xD;
Conclusion&#xD;
&#xD;
Pour ceux qui doutaient encore du manque d'impartialit&#xE9; d'OVH ( Ovh, nous-memes, maitres de l'interweb mondial ), on espere vous ouvrir les yeux.&#xD;
&#xD;
Ps: les deux &amp;quot;clients&amp;quot; d'exemple dans les cons&#xE9;quences ne sont pas imaginaires.</description></item></channel></rss>
