<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bux Blog</title>
	<atom:link href="http://blog.bux.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bux.fr</link>
	<description>code, systems, geek and life</description>
	<lastBuildDate>Fri, 14 Jun 2019 09:12:51 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4.16</generator>
	<item>
		<title>Déconnectons-nous, re-connectons-nous</title>
		<link>http://blog.bux.fr/deconnectons-nous/</link>
					<comments>http://blog.bux.fr/deconnectons-nous/#respond</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Fri, 14 Jun 2019 09:12:18 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=829</guid>

					<description><![CDATA[Ils acceptent parce que nous rêvons tous d’un monde bienveillant, attentif à nous. Un monde qui prenne soin de nos esprits et de nos corps stressés, qui nous protège et nous choie, nous aide et corrige nos erreurs, qui nous filtre l’environnement et ses dangers. Un monde qui s’efforce d’aménager un technococon pour notre bien-être. &#8230; <a href="http://blog.bux.fr/deconnectons-nous/" class="more-link">Continuer la lecture de <span class="screen-reader-text">Déconnectons-nous, re-connectons-nous</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-block-quote">
<p> Ils acceptent parce que nous rêvons tous d’un monde bienveillant,  attentif à nous. Un monde qui prenne soin de nos esprits et de nos corps  stressés, qui nous protège et nous choie, nous aide et corrige nos  erreurs, qui nous filtre l’environnement et ses dangers. Un monde qui  s’efforce d’aménager un technococon pour notre bien-être. L’intelligence  ambiante pourvoit à ça. Elle nous écoute et elle nous répond. Elle  courbe cette bulle autour de nos solitudes. Elle la tapisse d’objets et  d’interfaces cools. Bien sûr, elle en profite pour nous espionner  jusqu’au slip et pour nous manipuler jusqu’à la moelle ! Mais au moins,  elle s’occupe de nous, ce que plus personne ne fait vraiment… C’est un  cercle vicieux. Plus nos rapports au monde sont interfacés, plus nos  corps sont des îlots dans un océan de données et plus nos esprits  éprouvent, inconsciemment, cette coupure, qu’ils tentent de compenser.  Et ils la compensent en se reliant à des objets, en touchant et en  parlant à des dispositifs qui nous rassurent – et nous distancent en  même temps. Un réseau social est un tissu de solitudes reliées. Pas une  communauté. </p>
<p><cite>Alain Damasio</cite></p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/deconnectons-nous/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Déboires avec le site internet de l&#8217;ANTS: quelques solutions</title>
		<link>http://blog.bux.fr/deboires-avec-le-site-internet-de-lants-quelques-solutions/</link>
					<comments>http://blog.bux.fr/deboires-avec-le-site-internet-de-lants-quelques-solutions/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Fri, 24 Nov 2017 18:33:24 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=813</guid>

					<description><![CDATA[Depuis récemment, il est obligatoire d&#8217;utiliser le service en ligne de l&#8217;ANTS afin d&#8217;effectuer la déclaration de cession de son véhicule, voir ici: Il n&#8217;est désormais plus possible d&#8217;effectuer la démarche en se rendant à la préfecture (ou sous-préfecture) ou par courrier : la démarche s&#8217;effectue à présent en ligne. Cependant, lorsque l&#8217;on démarre la procédure &#8230; <a href="http://blog.bux.fr/deboires-avec-le-site-internet-de-lants-quelques-solutions/" class="more-link">Continuer la lecture de <span class="screen-reader-text">Déboires avec le site internet de l&#8217;ANTS: quelques solutions</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Depuis récemment, il est obligatoire d&rsquo;utiliser le service en ligne de l&rsquo;ANTS afin d&rsquo;effectuer la déclaration de cession de son véhicule, voir <a href="https://www.service-public.fr/particuliers/vosdroits/F1707">ici</a>:</p>
<blockquote><p>Il n&rsquo;est désormais plus possible d&rsquo;effectuer la démarche en se rendant à la préfecture (ou sous-préfecture) ou par courrier : la démarche s&rsquo;effectue à présent <strong>en ligne</strong>.</p></blockquote>
<p>Cependant, lorsque l&rsquo;on démarre la procédure après avoir créé son compte sur le site de l&rsquo;ANTS plusieurs problèmes peuvent survenir &#8230;</p>
<h2>La situation administrative de votre dossier ne permet pas de poursuivre votre démarche</h2>
<p>Si vous obtenez ce message lorsque vous demandez l&rsquo;obtention du « code de cession », il semble alors que les données associé au compte que vous venez de créer sont incomplètes. La seule solution connu à ce problème &#8211; information que j&rsquo;ai pu obtenir auprès d&rsquo;un interlocuteur d&rsquo;une préfecture: Accéder à votre compte ANTS par le biais de « France connect ». Pour cela il vous faudra utiliser ou créer un compte sur ameli.fr ou le service des impôts en ligne.</p>
<p>Une fois l&rsquo;accès au site de l&rsquo;ANTS par le biais de « France connect », le « code de cession » ne vous sera plus demandé. On peux supposer ici que les information associé à votre compte ameli.fr ou du service des impôts en ligne permette à l&rsquo;ANTS de sauter cette étape.</p>
<h2>Les informations renseignées n&rsquo;ont pas permis de trouver votre dossier</h2>
<p>Si lorsque vous entrez le numéro d&rsquo;immatriculation et que ce message d&rsquo;erreur apparaît, le problème viens très probablement de la façon dont à été entré le numéro. Entrez spécifiquement ce qui est indiqué sur la carte grise, du moins, essayez sans les tirets mais avec des espaces contrairement à ce que peux laisser penser la petite image.</p>
<h2>Les données G et G1 issues de l&rsquo;ancien dossier sont invalides ; l&rsquo;opération de conversion n&rsquo;est pas possible</h2>
<p>Je n&rsquo;es malheureusement pas encore réussis à dépasser cette étape &#8230; Seule solution pour obtenir le changement de titulaire de carte grise : passer par un professionnel (garage par exemple).</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/deboires-avec-le-site-internet-de-lants-quelques-solutions/feed/</wfw:commentRss>
			<slash:comments>68</slash:comments>
		
		
			</item>
		<item>
		<title>Charles Darwin ou la lutte pour une théorie</title>
		<link>http://blog.bux.fr/charles-darwin-ou-la-lutte-pour-une-theorie/</link>
					<comments>http://blog.bux.fr/charles-darwin-ou-la-lutte-pour-une-theorie/#respond</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Mon, 15 Feb 2016 09:51:17 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=799</guid>

					<description><![CDATA[C&#8217;était sur France culture à 16h dans « Une vie, une œuvre » et c&#8217;est aussi encore là: http://www.franceculture.fr/emissions/une-vie-une-oeuvre/charles-darwin-ou-la-lutte-pour-une-theorie-1809-1882]]></description>
										<content:encoded><![CDATA[<p>C&rsquo;était sur France culture à 16h dans « Une vie, une œuvre » et c&rsquo;est aussi encore là: <a href="http://www.franceculture.fr/emissions/une-vie-une-oeuvre/charles-darwin-ou-la-lutte-pour-une-theorie-1809-1882">http://www.franceculture.fr/emissions/une-vie-une-oeuvre/charles-darwin-ou-la-lutte-pour-une-theorie-1809-1882</a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/charles-darwin-ou-la-lutte-pour-une-theorie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>France culture: Politique et numérique : les connexions dangereuses ?</title>
		<link>http://blog.bux.fr/france-culture-politique-et-numerique-les-connexions-dangereuses/</link>
					<comments>http://blog.bux.fr/france-culture-politique-et-numerique-les-connexions-dangereuses/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Fri, 29 Jan 2016 08:24:46 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=796</guid>

					<description><![CDATA[Émission sur le numérique, vie privée et algorithmes, a partir de 1:05, ici avec les invités Benjamin Bayard porte-parole de French Data Network, co-fondateur quadrature du net. et Benoît Thieulin, Fondateur et directeur de l’agence d’innovation numérique, La Netscouade.]]></description>
										<content:encoded><![CDATA[<p>Émission sur le numérique, vie privée et algorithmes, a partir de 1:05, <a href="http://www.franceculture.fr/emissions/linvite-des-matins-2eme-partie/hassan-rohani-accords-et-desaccords-politique-et-numerique">ici</a> avec les invités Benjamin Bayard porte-parole de French Data Network, co-fondateur quadrature du net. et Benoît Thieulin, Fondateur et directeur de l’agence d’innovation numérique, La Netscouade.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/france-culture-politique-et-numerique-les-connexions-dangereuses/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>PHP : Industrialisation et bonnes pratiques</title>
		<link>http://blog.bux.fr/php-industrialisation-et-bonnes-pratiques/</link>
					<comments>http://blog.bux.fr/php-industrialisation-et-bonnes-pratiques/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Wed, 09 Sep 2015 14:02:02 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=764</guid>

					<description><![CDATA[Note: Une version plus abouti de cet article est disponible ici. PHP est un langage à qui on peut faire beaucoup de reproches. Cependant, sa grande popularité à permis de doter son univers d&#8217;un large panel d&#8217;outils et de pratiques permettant de l&#8217;utiliser avec efficacité. Contrôler sa dette technique, ses temps de développement ou assurer &#8230; <a href="http://blog.bux.fr/php-industrialisation-et-bonnes-pratiques/" class="more-link">Continuer la lecture de <span class="screen-reader-text">PHP : Industrialisation et bonnes pratiques</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><strong>Note: Une version plus abouti de cet article est disponible <a href="http://bux.developpez.com/tutoriels/php/industrialisation-et-bonnes-pratiques/" target="_blank">ici</a>.</strong></p>
<p>PHP est un langage à qui on peut faire beaucoup de reproches. Cependant, sa grande popularité à permis de doter son univers d&rsquo;un large panel d&rsquo;outils et de pratiques permettant de l&rsquo;utiliser avec efficacité.</p>
<p>Contrôler sa dette technique, ses temps de développement ou assurer une qualité logicielle suffisante exigent de respecter certains processus et bonne pratiques que nous allons aborder ici. Chaque thème sera accompagné d&rsquo;une brève description, de ses intérêts et d&rsquo;une liste d&rsquo;outils non exhaustive permettant son utilisation.</p>
<p>Notez que la plupart des éléments de cette liste sont valables pour n&rsquo;importe quel langage dès lors que ce ne sont pas des outils spécifiques à PHP.</p>
<h2 class="western">Gestionnaire de version</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/5488984404_4f693eec32_b.jpg"><img class="alignright size-medium wp-image-768" src="http://blog.bux.fr/wp-content/uploads/2015/09/5488984404_4f693eec32_b-225x300.jpg" alt="5488984404_4f693eec32_b" width="225" height="300" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/5488984404_4f693eec32_b-225x300.jpg 225w, http://blog.bux.fr/wp-content/uploads/2015/09/5488984404_4f693eec32_b.jpg 611w" sizes="(max-width: 225px) 100vw, 225px" /></a>Que le développement soit effectué par une équipe ou un développeur unique, la gestion de votre code source est essentielle.</p>
<p>Intérêts :</p>
<ul>
<li>historisation de l&rsquo;évolution du code</li>
<li>identification des modifications apportées au code</li>
<li>parallélisation des évolutions</li>
<li>simplification de la gestion des versions de développement, de préproduction, etc.</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="https://git-scm.com/">Git</a></li>
<li><a href="https://subversion.apache.org/">Svn</a></li>
<li><a href="https://mercurial.selenic.com/">Mercurical</a></li>
<li><a href="https://en.wikipedia.org/wiki/List_of_version_control_software">Et plein d&rsquo;autres</a></li>
</ul>
<h2 class="western">Tests automatisés</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/iNKyh.png"><img class="alignright size-medium wp-image-770" src="http://blog.bux.fr/wp-content/uploads/2015/09/iNKyh-300x223.png" alt="iNKyh" width="300" height="223" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/iNKyh-300x223.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/iNKyh-1024x760.png 1024w, http://blog.bux.fr/wp-content/uploads/2015/09/iNKyh.png 1133w" sizes="(max-width: 300px) 100vw, 300px" /></a>Rédiger des tests automatisés est l&rsquo;unique garantie de maîtriser les régressions. Cela peut aussi être  une stratégie de rédaction de spécifications fonctionnelles.</p>
<p>Intérêts :</p>
<ul>
<li>empêcher les régressions</li>
<li>piloter la rédaction du code (si le développement est piloté par les tests)</li>
<li>débusquer des malfaçons (si la rédaction des tests est faite après le développement)</li>
<li>être au plus proche des spécifications exprimées par le client (si utilisation des tests de spécifications)</li>
</ul>
<p>Stratégies :</p>
<ul>
<li><a href="https://fr.wikipedia.org/wiki/Test_driven_development">TDD</a> : Développement piloté par les tests</li>
<li><a href="https://fr.wikipedia.org/wiki/Behavior_driven_development">BDD</a> : Développement piloté par le comportement</li>
<li><a href="https://en.wikipedia.org/wiki/Mutation_testing">Tests de mutations</a></li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="https://phpunit.de/">PHPUnit</a> : Tests unitaires</li>
<li><a href="http://docs.behat.org/en/v2.5/">Behat</a> : Tests de spécifications</li>
<li><a href="http://docs.atoum.org/fr/latest/">Atoum</a> : Tests unitaires</li>
<li><a href="http://www.seleniumhq.org/">Selenium</a> : Tests fonctionnels</li>
<li><a href="http://www.phpspec.net/en/latest/">PHPSpec</a> : Tests de spécifications</li>
<li><a href="https://github.com/Halleck45/MutaTesting/">MutaTesting</a>: Tests de mutations</li>
</ul>
<h2 class="western">Audits</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/Sonarqube-nemo-dashboard.png"><img class="alignright size-medium wp-image-771" src="http://blog.bux.fr/wp-content/uploads/2015/09/Sonarqube-nemo-dashboard-300x148.png" alt="Sonarqube-nemo-dashboard" width="300" height="148" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/Sonarqube-nemo-dashboard-300x148.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/Sonarqube-nemo-dashboard-1024x506.png 1024w, http://blog.bux.fr/wp-content/uploads/2015/09/Sonarqube-nemo-dashboard.png 1341w" sizes="(max-width: 300px) 100vw, 300px" /></a>Analyser le code source permet de repérer ses points faibles : Morceaux de code complexes, non respectueux des standards, ouvrant des trous de sécurité &#8230;</p>
<p>Intérêts :</p>
<ul>
<li>travailler des portions de code avant d&rsquo;y être confronté dans un contexte moins propice</li>
<li>connaître l&rsquo;état de santé du code de son projet</li>
</ul>
<p>Il est possible d&rsquo;auditer :</p>
<ul>
<li>la qualité du code (code complexe, variables inutilisées, code mort, duplications, etc)</li>
<li>la sécurité (injections sql, pratiques à risque, etc)</li>
<li>le respects des standards</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://pear.php.net/package/PHP_CodeSniffer/redirected">PHP Code Sniffer</a> : Standards</li>
<li><a href="https://github.com/sebastianbergmann/phpcpd">PHPCpd</a> : Duplications</li>
<li><a href="http://pdepend.org/">PHPDepend</a> : <a href="http://www-igm.univ-mlv.fr/~dr/XPOSE2008/Mesure%20de%20la%20qualite%20du%20code%20source%20-%20Algorithmes%20et%20outils/complexite-cyclomatique.html">Complexité cyclomatique</a></li>
<li><a href="http://phpmd.org/">PHP Mess Detector</a> : Complexité, code mort, code non optimisé, etc</li>
<li><a href="http://www.sonarqube.org/">Sonar</a> : Plate-forme d&rsquo;audit et de suivi</li>
<li><a href="https://code.google.com/p/rough-auditing-tool-for-security/">RATS</a> : Sécurité</li>
<li><a href="https://cirt.net/Nikto2">Nikto</a> : Sécurité</li>
<li><a href="https://github.com/Halleck45/PhpMetrics">PHP Metrics</a>: Compléxité</li>
<li><a href="https://github.com/sebastianbergmann/phploc">PHPloc</a>: Taille du projet</li>
</ul>
<h2 class="western">Monitoring</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/travis.png"><img class="alignright size-medium wp-image-772" src="http://blog.bux.fr/wp-content/uploads/2015/09/travis-300x172.png" alt="travis" width="300" height="172" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/travis-300x172.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/travis.png 600w" sizes="(max-width: 300px) 100vw, 300px" /></a>Suivre l&rsquo;évolution des différentes métriques mises en place durant la vie du code source comme la réussite des tests automatisés, les différents audits , etc.</p>
<p>Intérêts :</p>
<ul>
<li>visualiser immédiatement une dégradation</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://www.sonarqube.org/">Sonar</a> : Plate-forme d&rsquo;audit et de suivi</li>
<li><a href="http://hudson-ci.org/">Hudson</a> : Suivis de la réussite des tests</li>
<li><a href="https://jenkins-ci.org/">Jenkins</a>: Suivis de la réussite de tests (<a href="http://jenkins-php.org/">PHP template</a>)</li>
<li><a href="https://travis-ci.org/">Travis-ci</a> : Suivis de la réussite des tests</li>
<li><a href="https://scrutinizer-ci.com/">Scrutinizer</a> : Suivis de la qualité du code</li>
<li><a href="https://www.joedog.org/siege-home/">Siege</a> : Temps de réponses</li>
<li><a href="http://httpd.apache.org/docs/2.2/programs/ab.html">Apache Bench</a> : Temps de réponse</li>
<li>etc</li>
</ul>
<h2 class="western">Profilage</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/django-runprofileserver-kcachegrind-full.jpg"><img class="alignright size-medium wp-image-773" src="http://blog.bux.fr/wp-content/uploads/2015/09/django-runprofileserver-kcachegrind-full-300x228.jpg" alt="django-runprofileserver-kcachegrind-full" width="300" height="228" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/django-runprofileserver-kcachegrind-full-300x228.jpg 300w, http://blog.bux.fr/wp-content/uploads/2015/09/django-runprofileserver-kcachegrind-full-1024x779.jpg 1024w, http://blog.bux.fr/wp-content/uploads/2015/09/django-runprofileserver-kcachegrind-full.jpg 1280w" sizes="(max-width: 300px) 100vw, 300px" /></a>Décortiquer l’exécution du programme et repérer les goulots d&rsquo;étranglements.</p>
<p>Intérêts :</p>
<ul>
<li>repérer les goulots d&rsquo;étranglements, les fonctions à optimiser</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://xdebug.org/">xDebug</a>: Profilage (phase de développement)</li>
<li><a href="http://kcachegrind.sourceforge.net/html/Home.html">KcacheGrind</a> : Visualisation des profilages de xDebug</li>
<li><a href="http://php.net/manual/fr/book.xhprof.php">Xhprof</a> : (phase de production)</li>
<li><a href="https://blackfire.io/">Blackfire</a> (phase et développement et de production)</li>
</ul>
<h2 class="western">Documentation</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/figure001.jpg"><img class="alignright size-medium wp-image-774" src="http://blog.bux.fr/wp-content/uploads/2015/09/figure001-300x274.jpg" alt="figure001" width="300" height="274" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/figure001-300x274.jpg 300w, http://blog.bux.fr/wp-content/uploads/2015/09/figure001.jpg 502w" sizes="(max-width: 300px) 100vw, 300px" /></a>Réduction du temps nécessaire aux développeurs pour s&rsquo;approprier l&rsquo;existant, maintien d&rsquo;une connaissance sur la nature et l&rsquo;usage du code. La documentation est une part essentielle de la conception logicielle.</p>
<p>Intérêts :</p>
<ul>
<li>permettre d&rsquo;exploiter tout le potentiel du code (souvent du code non documenté est peu utilisé)</li>
<li>ne plus consommer le temps des développeurs (qui auront déjà dû passer de temps à comprendre le rôle du code concerné s&rsquo;ils n&rsquo;en sont pas l&rsquo;auteur)</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://www.phpdoc.org/">PHPDocumentor</a></li>
<li><a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a></li>
<li><a href="http://sphinx-doc.org/">Sphinx</a></li>
<li><a href="https://fr.wikipedia.org/wiki/Générateur_de_documentation#Logiciels">etc</a></li>
</ul>
<h2 class="western">Gestion des dépendances</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/successful-installation.png"><img class="alignright size-medium wp-image-775" src="http://blog.bux.fr/wp-content/uploads/2015/09/successful-installation-300x219.png" alt="successful-installation" width="300" height="219" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/successful-installation-300x219.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/successful-installation.png 580w" sizes="(max-width: 300px) 100vw, 300px" /></a>Gérer ses dépendances manuellement expose à différentes problématiques telles telles que la maintenance des mises à jour, l&rsquo;inclusion des fichiers, etc.</p>
<p>Intérêts :</p>
<ul>
<li>simplification de la gestion/installation de celles-ci</li>
<li>simplification du déploiement</li>
</ul>
<p>Outil :</p>
<ul>
<li><a href="https://getcomposer.org/">Composer</a></li>
</ul>
<h2 class="western">Déploiement</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221527.png"><img class="alignright size-medium wp-image-776" src="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221527-300x145.png" alt="Capture du 2015-09-08 22:15:27" width="300" height="145" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221527-300x145.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221527.png 516w" sizes="(max-width: 300px) 100vw, 300px" /></a>Déployer rapidement votre application/librairie c&rsquo;est gagner du temps, mais aussi normaliser un processus supplémentaire. Au-delà des « scripts maison » il vous est également possible d&rsquo;utiliser composer afin de créer un paquet gérable comme une dépendance.</p>
<p>Intérêt :</p>
<ul>
<li>normalisation</li>
<li>simplification</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="https://getcomposer.org/doc/05-repositories.md">Composer</a></li>
<li><a href="https://www.docker.com/">Docker</a></li>
<li><a href="http://deployer.org/">Deployer</a></li>
<li><a href="http://magephp.com/">Magallanes</a></li>
</ul>
<h2 class="western">Gestionnaire de taches</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/Redmine_2_159858_i0.png"><img class="alignright size-medium wp-image-777" src="http://blog.bux.fr/wp-content/uploads/2015/09/Redmine_2_159858_i0-300x212.png" alt="Redmine_2_159858_i0" width="300" height="212" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/Redmine_2_159858_i0-300x212.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/Redmine_2_159858_i0.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a>Un planning de développement est mieux maîtrisé lorsque les différentes évolutions et rapports de bugs sont listés, attribués et versionnés.</p>
<p>Intérêts :</p>
<ul>
<li>avoir une vision d&rsquo;ensemble du planning</li>
<li>historiser l&rsquo;avancement</li>
<li>faciliter l&rsquo;estimation de charge</li>
<li>disposer de données pour optimiser ses processus</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://www.redmine.org/">Redmine</a></li>
<li><a href="http://trac.edgewall.org/">Trac</a></li>
<li>etc</li>
</ul>
<h2 class="western">Standards</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221833.png"><img class="alignright size-medium wp-image-778" src="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221833-300x157.png" alt="Capture du 2015-09-08 22:18:33" width="300" height="157" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221833-300x157.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/Capture-du-2015-09-08-221833.png 592w" sizes="(max-width: 300px) 100vw, 300px" /></a>S&rsquo;entendre sur des standards c&rsquo;est maintenir un code plus lisible dans lequel se cacheront moins de petites erreurs.</p>
<p>Intérêts :</p>
<ul>
<li>éviter de se réadapter systématiquement aux différents styles de code</li>
<li>normalisation des espaces de noms, de l&rsquo;inclusion automatique, etc.</li>
</ul>
<p>Standards :</p>
<ul>
<li><a href="http://www.php-fig.org/">PSR</a></li>
<li><a href="https://pear.php.net/manual/fr/standards.php">Pear</a></li>
<li><a href="http://framework.zend.com/manual/1.12/fr/coding-standard.html">Zend</a></li>
<li><a href="http://symfony.com/fr/doc/current/contributing/code/standards.html">Symfony</a></li>
</ul>
<h2 class="western">Performance</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/apc.php_.png"><img class="alignright size-medium wp-image-779" src="http://blog.bux.fr/wp-content/uploads/2015/09/apc.php_-300x240.png" alt="apc.php_" width="300" height="240" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/apc.php_-300x240.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/apc.php_-1024x819.png 1024w, http://blog.bux.fr/wp-content/uploads/2015/09/apc.php_.png 1280w" sizes="(max-width: 300px) 100vw, 300px" /></a>La lecture et compilation du code à chaque exécution de scripts, ou le calcul d&rsquo;une réponse identique à la précédente coûte cher en ressources et temps d’exécution. Il existe naturellement des solutions pour pallier ces problématiques.</p>
<p>Intérêts :</p>
<ul>
<li>améliorer les temps de réponse</li>
<li>réduire la charge serveur</li>
</ul>
<p>Outils :</p>
<ul>
<li><a href="http://php.net/manual/fr/book.apc.php">APC</a></li>
<li><a href="http://php.net/manual/fr/book.memcache.php">MemCache</a></li>
<li><a href="https://www.varnish-cache.org/">Varnish</a></li>
<li>…</li>
</ul>
<h2 class="western">Architecture</h2>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/09/Bridge_design_pattern.png"><img class="alignright size-medium wp-image-780" src="http://blog.bux.fr/wp-content/uploads/2015/09/Bridge_design_pattern-300x126.png" alt="Bridge_design_pattern" width="300" height="126" srcset="http://blog.bux.fr/wp-content/uploads/2015/09/Bridge_design_pattern-300x126.png 300w, http://blog.bux.fr/wp-content/uploads/2015/09/Bridge_design_pattern.png 700w" sizes="(max-width: 300px) 100vw, 300px" /></a>Les conséquences d&rsquo;une mauvaise architecture se font souvent ressentir tardivement. Lorsque le code source est suffisamment avancé pour que la restructuration représente alors un coût trop élevé. Il est donc important de bien s&rsquo;attarder sur ce sujet au commencement du projet.</p>
<p>Les frameworks sont d&rsquo;une aide extrêmement précieuse concernant ce point bien que l&rsquo;on puisse nous-mêmes construire une architecture et implémenter des <a href="https://fr.wikipedia.org/wiki/Patron_de_conception">patrons de conceptions</a>.</p>
<p>Intérêts :</p>
<ul>
<li>réduire la charge que représente l&rsquo;introduction de développeurs à votre projet</li>
<li>adopter une architecture c&rsquo;est éviter d&rsquo;en expérimenter une</li>
<li>forme vos développeurs à de bonne pratiques</li>
<li>gains de temps</li>
<li>robustesse</li>
<li>maintenabilité</li>
<li>sécurité</li>
</ul>
<p>Frameworks :</p>
<ul>
<li><a href="https://symfony.com/">Symfony</a></li>
<li><a href="http://framework.zend.com/">Zend Framework</a></li>
<li><a href="http://cakephp.org/">Cake</a></li>
<li><a href="https://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP">Et plein d&rsquo;autres</a></li>
</ul>
<p>Principes:</p>
<ul>
<li><a href="https://fr.wikipedia.org/wiki/SOLID_%28informatique%29">SOLID</a></li>
<li><a href="https://fr.wikipedia.org/wiki/Principe_KISS">KISS</a></li>
<li><a href="https://fr.wikipedia.org/wiki/Ne_vous_r%C3%A9p%C3%A9tez_pas">DRY</a></li>
<li><a href="https://fr.wikipedia.org/wiki/Abstraction_%28informatique%29">Abstraction</a></li>
<li><a href="https://fr.wikipedia.org/wiki/M%C3%A9thode_MoSCoW">MoSCoW</a></li>
<li><a href="https://fr.wikipedia.org/wiki/YAGNI">YAGNI</a></li>
</ul>
<p>Exemple:</p>
<ul>
<li><a href="https://github.com/domnikl/DesignPatternsPHP">DesignPatternsPHP</a>: Exemples d&rsquo;implémentations</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/php-industrialisation-et-bonnes-pratiques/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title></title>
		<link>http://blog.bux.fr/759/</link>
					<comments>http://blog.bux.fr/759/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Thu, 21 May 2015 20:04:07 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=759</guid>

					<description><![CDATA[L&#8217;aventure des sciences modernes n&#8217;a évidemment jamais fait la preuve &#8211; et la question d&#8217;une telle preuve sortirait de son champ, le champ des hypothèses testables &#8211; d&#8217;une absence de tout projet, de toute finalité, de toute intentionnalité à l’œuvre dans l&#8217;univers. Elle a simplement fait la preuve de l&#8217;extraordinaire efficacité et de l&#8217;extraordinaire fécondité &#8230; <a href="http://blog.bux.fr/759/" class="more-link">Continuer la lecture de <span class="screen-reader-text"></span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<blockquote><p>L&rsquo;aventure des sciences modernes n&rsquo;a évidemment jamais fait la preuve &#8211; et la question d&rsquo;une telle preuve sortirait de son champ, le champ des hypothèses testables &#8211; d&rsquo;une absence de tout projet, de toute finalité, de toute intentionnalité à l’œuvre dans l&rsquo;univers.</p>
<p>Elle a simplement fait la preuve de l&rsquo;extraordinaire efficacité et de l&rsquo;extraordinaire fécondité &#8211; en terme de compréhension et de manipulation de ce que nous appelons la réalité &#8211; d&rsquo;une démarche théorique et expérimentale qui a volontairement exclu de son champ toute explication de l&rsquo;univers fondée sur les notions de projet, d&rsquo;intentionnalité et de finalité.</p>
<p>Une démarche qui a laissé à la métaphysique la question : <em>Pourquoi</em> ? &#8211; <em>pour </em>quoi ? Dans quel but ?</p>
<p>Et qui s&rsquo;est consacré à une question beaucoup plus modeste: <em>Comment ?</em></p></blockquote>
<p style="text-align: right;">Jean Claude Ameisen dans « Sur les épaules de Darwin: Je t&rsquo;offrirai des spectacles admirables ».</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/759/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Intelligine : Simulateur d&#8217;intelligence collective</title>
		<link>http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/</link>
					<comments>http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Thu, 23 Apr 2015 07:27:44 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=711</guid>

					<description><![CDATA[Voilà maintenant quelques années que j&#8217;ai entamé le projet de créer un simulateur d&#8217;intelligence collective. Plus précisément d&#8217;insectes sociaux tels que les fourmis, les termites ou encore les abeilles. Ce projet commence désormais à être assez avancé pour en faire une présentation et peut-être susciter l’intérêt de personnes souhaitant y participer. Les insectes sociaux ? Les &#8230; <a href="http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/" class="more-link">Continuer la lecture de <span class="screen-reader-text">Intelligine : Simulateur d&#8217;intelligence collective</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Voilà maintenant quelques années que j&rsquo;ai entamé le projet de créer un simulateur d&rsquo;<a href="https://fr.wikipedia.org/wiki/Intelligence_collective">intelligence collective</a>. Plus précisément d&rsquo;<a href="https://fr.wikipedia.org/wiki/Insecte_social">insectes sociaux</a> tels que les fourmis, les termites ou encore les abeilles<span id='easy-footnote-1-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-1-711' title='Liste complète disponible ici: &lt;a href=&quot;http://fr.wikipedia.org/wiki/Insecte_social&quot;&gt;http://fr.wikipedia.org/wiki/Insecte_social&lt;/a&gt;'><sup>1</sup></a></span>.</p>
<p style="text-align: justify;">Ce projet commence désormais à être assez avancé pour en faire une présentation et peut-être susciter l’intérêt de personnes souhaitant y participer.</p>
<h2>Les insectes sociaux ?</h2>
<p style="text-align: justify;">Les colonies d&rsquo;insectes sociaux sont des systèmes extrêmement complexe et évoluées. Il est commun de penser que seul les êtres Humains pratiquent l&rsquo;élevage et l&rsquo;agriculture. Il n&rsquo;en n&rsquo;est rien. Les fourmis pratique l&rsquo;élevage de pucerons <span id='easy-footnote-2-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-2-711' title='Voir &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fourmi&quot;&gt;http://fr.wikipedia.org/wiki/Fourmi&lt;/a&gt;'><sup>2</sup></a></span> et la culture de champignons<span id='easy-footnote-3-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-3-711' title='Voir &lt;a href=&quot;http://fr.wikipedia.org/wiki/Atta&quot;&gt;http://fr.wikipedia.org/wiki/Atta&lt;/a&gt;'><sup>3</sup></a></span>. Les termites pratiquent eux aussi la culture de champignons<span id='easy-footnote-4-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-4-711' title='Voir &lt;a href=&quot;http://fr.wikipedia.org/wiki/Termite&quot;&gt;http://fr.wikipedia.org/wiki/Termite&lt;/a&gt;'><sup>4</sup></a></span>.</p>
<p style="text-align: justify;"><a href="http://blog.bux.fr/wp-content/uploads/2015/04/termite-hill-695209_640.jpg"><img class="aligncenter size-full wp-image-741" src="http://blog.bux.fr/wp-content/uploads/2015/04/termite-hill-695209_640.jpg" alt="Ter" width="640" height="426" srcset="http://blog.bux.fr/wp-content/uploads/2015/04/termite-hill-695209_640.jpg 640w, http://blog.bux.fr/wp-content/uploads/2015/04/termite-hill-695209_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a>Les termites parviennent à pratiquer cette agriculture sous le soleil Africain. Leur forteresses  peuvent être composées de galeries atteignant 70 mètre de profondeur, puisant la fraîcheur des nappes phréatiques. Cela afin que, par un système complexe d&rsquo;aérations digne d&rsquo;un architecte en thermodynamique, la zone de culture des champignons soit maintenue à 27°C. Alors que la température extérieure dépasse généralement les 35°C<span id='easy-footnote-5-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-5-711' title='Voir l&amp;rsquo;article de Laurent Brasier, dans la revue « Le génie des animaux », p.18'><sup>5</sup></a></span>.</p>
<p style="text-align: justify;">Cependant les individus qui composent ces sociétés ne jouent chacun qu&rsquo;un rôle limité et guidé par leur instinct. Une idée reçu voudrait que ce soit la ou les reines qui dirige la colonie. Ordonnant ou oriantant le comportement de ses sujets. Mais la non plus il n&rsquo;en n&rsquo;est rien <span id='easy-footnote-6-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-6-711' title='Voir &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fourmi#Comportement_collectif&quot;&gt;http://fr.wikipedia.org/wiki/Fourmi#Comportement_collectif&lt;/a&gt;'><sup>6</sup></a></span>. Le fonctionnement d&rsquo;une colonie est le résultat d&rsquo;un merveilleux comportement d&rsquo;intelligence collective. Une collaboration où chaque individus ne possède qu&rsquo;une vision limité de son environnement.</p>
<p>Pour citer <a href="http://fr.wikipedia.org/wiki/Intelligence_collective">Wikipédia</a> à propos de l&rsquo;intelligence collective:</p>
<p style="text-align: justify;">« La connaissance des membres de la communauté est limitée à une perception partielle de l&rsquo;environnement, ils n&rsquo;ont pas conscience de la totalité des éléments qui influencent le groupe. Des agents au comportement très simple peuvent ainsi accomplir des tâches apparemment très complexes grâce à un mécanisme fondamental appelé synergie ou stigmergie »</p>
<h2>Quel lien avec l&rsquo;algorithmique?</h2>
<p style="text-align: justify;">Si nous devions simplifier le fonctionnement de ces sociétés nous pourrions dire qu&rsquo;elles sont l&rsquo;effet de la répétition de l&rsquo;action de chaque individus qui la compose. Individus, qui, inlassablement effectues leur petites tâches durant toute leur existence.</p>
<p style="text-align: justify;">Il s&rsquo;avère que nos processeurs et langages informatique sont tout à fait adapté lorsqu&rsquo;il s&rsquo;agit de répéter l’exécution de modèles définis. On peux donc imaginer construire une colonie virtuelle sur ces modèles.</p>
<p style="text-align: justify;">Déjà aujourd&rsquo;hui la nature (et les insectes sociaux) inspire des modèles informatique. Algorithmes génétiques, Algorithmes de colonies de fourmis, etc. Et avouons le, en tant que concepteur logiciel, les insectes sociaux sont une parfaite inspiration lorsqu&rsquo;il s&rsquo;agit d&rsquo;intelligence artificielle !</p>
<h2>Le projet intelligine</h2>
<p style="text-align: justify;">Le projet intelligine n&rsquo;a pas pour but de révolutionner les <a href="http://fr.wikipedia.org/wiki/M%C3%A9taheuristique">Métaheuristique</a> ou les <a href="http://fr.wikipedia.org/wiki/Algorithme_de_colonies_de_fourmis">algorithme de colonies de fourmis</a>  mais simplement de tenter de créer une société virtuelle capable de s&rsquo;auto-organiser et de s&rsquo;adapter à une environnement évolutif. Tout en s’inspirant du comportement d&rsquo;insectes réels.</p>
<p style="text-align: justify;">Bien sur, cela dans une moindre mesure. Premièrement, il est difficile de rivaliser avec des millions d&rsquo;années dévolutions. Deuxièmement, ce que nous appelons un comportement « simple » de la part d&rsquo;un individu reste tout de même extrêmement difficile à interpréter avec certitude.</p>
<h3>En quoi ça consiste ?</h3>
<h4>Algorithmiquement</h4>
<p style="text-align: justify;">La réalisation du logiciel doit s&rsquo;accompagner de restrictions. Dans la nature, les individus n&rsquo;ont qu&rsquo;un accès limité à leur environnement. Les algorithmes représentant les individus et permettant leur prise de décision doivent donc se cantonner à ne pouvoir lire qu&rsquo;une partie des données de l&rsquo;environnement.</p>
<p style="text-align: justify;">Un effort de malléabilité doit être effectué sur l’organisation des différentes briques du logiciel. De manière à pouvoir modifier, remplacer et retirer des parties de code en fonction de l&rsquo;évolution de nos connaissances à propos de ces insectes.</p>
<h4>Entomologie</h4>
<p><a href="http://blog.bux.fr/wp-content/uploads/2015/04/Ant_head_closeup.jpg"><img class="aligncenter size-full wp-image-740" src="http://blog.bux.fr/wp-content/uploads/2015/04/Ant_head_closeup.jpg" alt="Ant_head_closeup" width="660" height="523" srcset="http://blog.bux.fr/wp-content/uploads/2015/04/Ant_head_closeup.jpg 660w, http://blog.bux.fr/wp-content/uploads/2015/04/Ant_head_closeup-300x238.jpg 300w" sizes="(max-width: 660px) 100vw, 660px" /></a></p>
<p style="text-align: justify;">Il faut faire confiance à la nature. Il n&rsquo;y as pas meilleur architecte que la sélection naturelle pour façonner des comportements optimisés. D&rsquo;autant que les espèces qui nous intéressent sont extrêmement anciennes. Il faut donc comprendre ces mécanismes au lieu d&rsquo;en inventer de nouveaux.</p>
<p style="text-align: justify;">Une grande partie du travail concerne alors l&rsquo;étude des insectes sociaux: Consulter le résultat des travaux déjà réalisés,  interroger des spécialistes, des passionnés, mener des expériences &#8230; Cela afin d&rsquo;écrire des algorithmes aussi proche que possible de leurs inspiration naturelles.</p>
<h4>Première version: SimTermites</h4>
<p style="text-align: justify;">La première réalisation concrète de ce grand projet à été le programme « <a href="]https://github.com/buxx/simtermites">SimTermites</a>« . Ce fût l&rsquo;occasion de me confronter concrètement à différents aspects d&rsquo;un tel projet:</p>
<ul>
<li style="text-align: justify;">Les performances jouent un grand rôle. Simuler le comportement de milliers d&rsquo;individus au sein d&rsquo;un environnement déterminant dans leurs action nécessite beaucoup de calculs !</li>
<li style="text-align: justify;">L&rsquo;organisation du programme. Une simulation de la sorte atteint rapidement un niveau de complexité effrayant. Ce qui oblige à être très attentif à la manière d&rsquo;organiser le code source de l&rsquo;application et à respecter des principes robustes et éprouvés <span id='easy-footnote-7-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-7-711' title='Voir par exemple SOLID: &lt;a href=&quot;http://fr.wikipedia.org/wiki/SOLID_%28informatique%29&quot;&gt;http://fr.wikipedia.org/wiki/SOLID_%28informatique%29&lt;/a&gt;'><sup>7</sup></a></span>.</li>
</ul>
<p><figure id="attachment_721" aria-describedby="caption-attachment-721" style="width: 600px" class="wp-caption alignnone"><a href="http://blog.bux.fr/wp-content/uploads/2015/04/68747470733a2f2f7261772e6769746875622e636f6d2f627578782f73696d7465726d697465732f6d61737465722f646f632f73696d7465726d697465732e676966.gif"><img class="wp-image-721 size-full" title="Capture vidéo de SimTermites" src="http://blog.bux.fr/wp-content/uploads/2015/04/68747470733a2f2f7261772e6769746875622e636f6d2f627578782f73696d7465726d697465732f6d61737465722f646f632f73696d7465726d697465732e676966.gif" alt="simtermites" width="600" height="300" /></a><figcaption id="caption-attachment-721" class="wp-caption-text">Capture vidéo du programme SimTermites. Des individus suivent une route de phéromone et transporte des ressources (cercle vert) vers une zone de stockage (cercle jaune). Tandis que d&rsquo;autre entretiennent des œufs pondu par la reine (cercle rose).</figcaption></figure></p>
<p style="text-align: justify;">Ces différents aspect étant devenus évident pendant la réalisation de ce programme il sembla alors nécessaire de reprendre le programme depuis le début.</p>
<p style="text-align: justify;">Car si vous êtes néophyte de la conception logicielle, un programme est composés de millions d&rsquo;instructions (tel qu&rsquo;un très longue recette de cuisine). Où chaque morceau qui la compose est reliés à d&rsquo;autres. Il est donc très difficile de modifier profondément un logiciel. C&rsquo;est pourquoi il est vital que durant sa réalisation des précautions soit prisent pour le rédiger correctement. Autrement sa modification, son évolution ou corrections devient extrêmement chronophage.</p>
<p style="text-align: justify;">J&rsquo;ai donc décidé que <a href="]https://github.com/buxx/simtermites">SimTermites</a> resterait ce qu&rsquo;il est. Et qu&rsquo;un nouveau chantier devait commencer.</p>
<h4>Synergine + Intelligine</h4>
<p style="text-align: justify;">J&rsquo;ai donc commencé par réaliser un <a href="https://fr.wikipedia.org/wiki/Framework">framework</a> <span id='easy-footnote-8-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-8-711' title='Depuis Wikipédia: En &lt;a title=&quot;Programmation informatique&quot; href=&quot;https://fr.wikipedia.org/wiki/Programmation_informatique&quot;&gt;programmation informatique&lt;/a&gt;, un &lt;i&gt;&lt;b&gt;&lt;span class=&quot;lang-en&quot; lang=&quot;en&quot; xml:lang=&quot;en&quot;&gt;framework&lt;/span&gt;&lt;/b&gt;&lt;/i&gt; ou &lt;i&gt;&lt;b&gt;structure logicielle&lt;/b&gt;&lt;/i&gt; est un ensemble cohérent de &lt;a title=&quot;Composant logiciel&quot; href=&quot;https://fr.wikipedia.org/wiki/Composant_logiciel&quot;&gt;composants logiciels&lt;/a&gt; structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d&amp;rsquo;un &lt;a title=&quot;Logiciel&quot; href=&quot;https://fr.wikipedia.org/wiki/Logiciel&quot;&gt;logiciel&lt;/a&gt; (&lt;a class=&quot;mw-redirect&quot; title=&quot;Architecture informatique&quot; href=&quot;https://fr.wikipedia.org/wiki/Architecture_informatique&quot;&gt;architecture&lt;/a&gt;)'><sup>8</sup></a></span> dédié à la réalisation de programmes dont la nature serait de faire évoluer des entités indépendantes (représentées par des algorithmes) au sein d&rsquo;un environnement. Ensuite, développer le logiciel censé prendre la relève de SimTermites.</p>
<p style="text-align: justify;">Aujourd&rsquo;hui, l&rsquo;un et l&rsquo;autre sont développé. Le framework: <a href="https://github.com/buxx/synergine">Synergine</a>, suffisamment stable pour l&rsquo;utiliser. Le simulateur d&rsquo;intelligence collective: <a href="https://github.com/buxx/intelligine">Intelligine</a>, jeune mais assez avancé pour commencer le travail sur les aspects comportementaux des individus.</p>
<p><figure id="attachment_751" aria-describedby="caption-attachment-751" style="width: 502px" class="wp-caption aligncenter"><a href="http://blog.bux.fr/wp-content/uploads/2015/04/synergine_lifegame.gif"><img class="wp-image-751 size-full" src="http://blog.bux.fr/wp-content/uploads/2015/04/synergine_lifegame.gif" alt="synergine_lifegame" width="502" height="426" /></a><figcaption id="caption-attachment-751" class="wp-caption-text">Capture vidéo d&rsquo;une simulation du « <a href="https://fr.wikipedia.org/wiki/Jeu_de_la_vie">jeu de la vie</a> » créée avec le framework Synergine.</figcaption></figure></p>
<h5>Intelligine: Quelques visuels de la version courante</h5>
<p style="text-align: justify;"><em>Note: Le framework <a href="https://github.com/buxx/synergine">Synergine</a> permet de créer la sortie graphique que l&rsquo;on souhaite indépendamment du programme. Les visuels ci-dessous ne sont qu&rsquo;une implémentation « rapide » que j&rsquo;ai réalisé moi-même pou les besoins du développement.</em></p>
<p><strong>Déplacement d’œufs</strong></p>
<p><figure id="attachment_730" aria-describedby="caption-attachment-730" style="width: 506px" class="wp-caption aligncenter"><a href="http://blog.bux.fr/wp-content/uploads/2015/04/intelligine_eggs_20150421.gif"><img class="wp-image-730 size-full" src="http://blog.bux.fr/wp-content/uploads/2015/04/intelligine_eggs_20150421.gif" alt="intelligine_eggs_20150421" width="506" height="508" /></a><figcaption id="caption-attachment-730" class="wp-caption-text">Capture du programme Intelligine. Fourmis en train de ranger des œufs. L&rsquo;action étant « prendre un œuf si je ne transporte rien » et « poser l’œuf que je transporte a coté d&rsquo;un autre œuf ». Ce qui par synergie réduit le nombre de tas d’œufs.</figcaption></figure></p>
<p><strong>Récupération de ressources</strong></p>
<p><figure id="attachment_732" aria-describedby="caption-attachment-732" style="width: 506px" class="wp-caption aligncenter"><a href="http://blog.bux.fr/wp-content/uploads/2015/04/intelligine_ressource_20150421_r.gif"><img class="wp-image-732 size-full" src="http://blog.bux.fr/wp-content/uploads/2015/04/intelligine_ressource_20150421_r.gif" alt="intelligine_ressource_20150421_r" width="506" height="381" /></a><figcaption id="caption-attachment-732" class="wp-caption-text">Capture vidéo du programme Intelligine. Des fourmis exploite une route de phéromone pour trouver et ramener des ressources.</figcaption></figure></p>
<h2>Et maintenant ?</h2>
<p style="text-align: justify;">Différentes étapes sont encore à franchir avant d&rsquo;atteindre une version stable est plus convenable du simulateur. La liste est établis dans le tracker<span id='easy-footnote-9-711' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/#easy-footnote-bottom-9-711' title='Outil de suivis des évolutions, bugs, &amp;#8230;'><sup>9</sup></a></span> du projet disponible ici:<br />
<a href="http://work.bux.fr/projects/intelligine/issues">http://work.bux.fr/projects/intelligine/issues</a></p>
<p style="text-align: justify;">De nombreux questions restent encore à éclaircir et à débattre sur le comportement des insectes sociaux et leur équivalent algorithmique. Quelques débat sont déjà ouvert par ici:<br />
<a href="http://work.bux.fr/projects/intelligine/boards">http://work.bux.fr/projects/intelligine/boards</a>.</p>
<p style="text-align: justify;"><strong>Si vous êtes développeur, myrmécologue, intéressé par les insectes, l&rsquo;intelligence artificielle ou simplement pris d&rsquo;enthousiasme pour le projet, nous serions heureux de collaborer avec vous !</strong> Il y a beaucoup de choses qui peuvent être faite: Faire des recherches, documenter, partager ses connaissances, concevoir le programme &#8230;</p>
<h3>Les différentes adresses intéressantes:</h3>
<ul>
<li>Forum de discussion (comportement des insectes, algorithmique, &#8230;): <a href="http://work.bux.fr/projects/intelligine/boards">http://work.bux.fr/projects/intelligine/boards</a></li>
<li>Développements prévus: <a href="http://work.bux.fr/projects/intelligine/roadmap">http://work.bux.fr/projects/intelligine/roadmap</a></li>
<li>Code source du simulateur: <a href="https://github.com/buxx/intelligine">https://github.com/buxx/intelligine</a></li>
<li>Code source du framework: <a href="https://github.com/buxx/synergine">https://github.com/buxx/synergine</a></li>
<li>D&rsquo;autres projets similaires: <a href="http://work.bux.fr/projects/intelligine/wiki/Autre_projets_similaires">http://work.bux.fr/projects/intelligine/wiki/Autre_projets_similaires</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/intelligine-simulateur-dintelligence-collective/feed/</wfw:commentRss>
			<slash:comments>2831</slash:comments>
		
		
			</item>
		<item>
		<title>Veille: Python, PHP, POO</title>
		<link>http://blog.bux.fr/veille-python-php-poo/</link>
					<comments>http://blog.bux.fr/veille-python-php-poo/#respond</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Fri, 09 May 2014 14:12:40 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=547</guid>

					<description><![CDATA[Quelques articles orientés programmation intéressants: 10 erreurs courantes en python: Si vous utilisez plusieurs langages c&#8217;est l&#8217;occasion de constater de subtiles différences. Quelques usages et trucs intéressants en PHP: Appel dynamique de constructeur Appel dynamique de fonctions Les callbacks Les closures Simplification des conditions Les objets et leurs références Mise en pratique des principes SOLID: &#8230; <a href="http://blog.bux.fr/veille-python-php-poo/" class="more-link">Continuer la lecture de <span class="screen-reader-text">Veille: Python, PHP, POO</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Quelques articles orientés programmation intéressants:</p>
<ul>
<li><a href="http://www.toptal.com/python/top-10-mistakes-that-python-programmers-make" target="_blank">10 erreurs courantes en python</a>: Si vous utilisez plusieurs langages c&rsquo;est l&rsquo;occasion de constater de subtiles différences.</li>
<li>Quelques usages et trucs intéressants en PHP:
<ul>
<li><a href="http://www.thedarksideofthewebblog.com/appel-dynamique-de-constructeur-en-php/" target="_blank" rel="bookmark">Appel dynamique de constructeur</a></li>
<li><a href="http://www.thedarksideofthewebblog.com/appel-dynamique-de-fonctions-en-php/" target="_blank">Appel dynamique de fonctions</a></li>
<li><a href="http://www.thedarksideofthewebblog.com/les-callback-en-php/" target="_blank">Les callbacks</a></li>
<li><a href="http://www.thedarksideofthewebblog.com/les-closure-en-php/" target="_blank">Les closures</a></li>
<li><a href="http://www.thedarksideofthewebblog.com/simplifiez-vos-conditions/" target="_blank">Simplification des conditions</a></li>
<li><a href="http://www.mechantblog.com/2013/04/php5-les-objets-ne-sont-pas-des-detestables-references/" target="_blank">Les objets et leurs références</a></li>
</ul>
</li>
<li>Mise en pratique des principes <a title="SOLID est un acronyme représentant 5 principes de bases pour la programmation orientée objet" href="https://fr.wikipedia.org/wiki/SOLID_%28informatique%29" target="_blank">SOLID</a>:
<ul>
<li><strong>S</strong>: <a href="http://www.mechantblog.com/2013/12/solid-single-responsability/" target="_blank">Responsabilité unique (Single responsibility principle)</a></li>
<li><strong><strong>O: </strong></strong><a href="http://www.mechantblog.com/2013/12/solid-o-open-closed/" target="_blank">Ouvert/fermé (Open/closed principle)</a></li>
<li><strong>L</strong>: <a href="http://www.mechantblog.com/2013/12/solid-l-liskov-substitution/" target="_blank">Substitution de Liskov (Liskov Substitution Principle)</a></li>
<li><strong>I</strong>: <a href="http://www.mechantblog.com/2014/02/solid-i-interface-segregation/" target="_blank">Ségrégation des interfaces (Interface Segregation Principle)</a></li>
<li><strong>D: </strong><a href="http://www.mechantblog.com/2014/05/solid-d-dependency-inversion/" target="_blank">Inversion des dépendances (Dependency Inversion Principle)</a></li>
</ul>
</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/veille-python-php-poo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>L&#8217;information</title>
		<link>http://blog.bux.fr/linformation/</link>
					<comments>http://blog.bux.fr/linformation/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Wed, 02 Apr 2014 10:39:19 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=538</guid>

					<description><![CDATA[J&#8217;avais il y a quelques temps parlé du buzz frelaté a propos de Thunderbird et Mozilla. Klaire qui fait grr publie un article sur le récent buzz de la NASA et de fin du monde (bouh!). Notons l&#8217;échelle mondiale de cet exemple &#8230; L&#8217;article: http://www.klaire.fr/2014/04/02/nasa/]]></description>
										<content:encoded><![CDATA[<p><!--:fr-->J&rsquo;avais il y a quelques temps parlé du buzz frelaté a propos de <a title="Mozilla arrête le développement de Thunderbird" href="http://blog.bux.fr/mozilla-arrete-le-developpement-de-thunderbird/">Thunderbird et Mozilla</a>. <strong>Klaire qui fait grr</strong> publie un <a href="http://www.klaire.fr/2014/04/02/nasa/">article</a> sur le récent buzz de la NASA et de fin du monde (<strong>bouh</strong>!). Notons l&rsquo;échelle mondiale de cet exemple &#8230;</p>
<p>L&rsquo;article: <a href="http://www.klaire.fr/2014/04/02/nasa/">http://www.klaire.fr/2014/04/02/nasa/</a><!--:--></p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/linformation/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>La nature n&#8217;a pas de morale</title>
		<link>http://blog.bux.fr/la-nature-na-pas-de-morale/</link>
					<comments>http://blog.bux.fr/la-nature-na-pas-de-morale/#comments</comments>
		
		<dc:creator><![CDATA[bux]]></dc:creator>
		<pubDate>Tue, 28 Jan 2014 11:58:32 +0000</pubDate>
				<guid isPermaLink="false">http://blog.bux.fr/?p=493</guid>

					<description><![CDATA[La nature ne fixe aucune morale. Tout ce que la nature nous impose ce sont ses lois fondamentales qui n&#8217;incluent aucune définissions de bien ou le mal. Le juste et l&#8217;injuste est une affaire d&#8217;Homme. Notre conscience est le fruit de notre environnement qui lui-même est le résultat de ce qui l&#8217;a précédé. Qu&#8217;est-ce qui &#8230; <a href="http://blog.bux.fr/la-nature-na-pas-de-morale/" class="more-link">Continuer la lecture de <span class="screen-reader-text">La nature n&#8217;a pas de morale</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><!--:fr-->La nature ne fixe aucune morale. Tout ce que la nature nous impose ce sont <a title="Science_de_la_nature" href="https://fr.wikipedia.org/wiki/Science_de_la_nature" target="_blank">ses lois fondamentales</a> qui n&rsquo;incluent aucune définissions de bien ou le mal. Le juste et l&rsquo;injuste est une affaire d&rsquo;Homme.</p>
<p>Notre conscience est le fruit de notre environnement qui lui-même est le résultat de ce qui l&rsquo;a précédé. Qu&rsquo;est-ce qui façonne alors le sens de la justice au sein de notre espèce  ?  Je pense que l&rsquo;on peut pour cela s&rsquo;intéresser aux principes de l&rsquo;évolution des espèces. A l&rsquo;instinct de préservation de sa vie, de sa « meute » et donc de souhaiter évoluer dans un milieu le moins hostile possible.</p>
<p><a href="http://blog.bux.fr/wp-content/uploads/2014/01/Declaration_of_the_Rights_of_Man_and_of_the_Citizen_in_1789.jpg"><img class="alignleft size-thumbnail wp-image-517" alt="Declaration_of_the_Rights_of_Man_and_of_the_Citizen_in_1789" src="http://blog.bux.fr/wp-content/uploads/2014/01/Declaration_of_the_Rights_of_Man_and_of_the_Citizen_in_1789-150x150.jpg" width="150" height="150" /></a>Protéger ses proches et se protéger soi-même c&rsquo;est s&rsquo;émanciper des lois de la nature et se protéger de nos semblables. Mais c&rsquo;est également vivre en symbioses avec son environnement et en paix avec ses semblables . Je pense que ces ces deux principes expliquent à eux seuls les chemins qu&rsquo;a pus prendre notre histoire, les plus noirs comme les plus nobles.<a href="http://blog.bux.fr/wp-content/uploads/2014/01/MortDebarquement.jpg"><img class="alignright size-thumbnail wp-image-518" alt="MortDebarquement" src="http://blog.bux.fr/wp-content/uploads/2014/01/MortDebarquement-150x150.jpg" width="150" height="150" /></a></p>
<p>Ces deux points mettent d&rsquo;après moi en évidences aux moins une chose qui sera peut-être toujours impalpable pour chaque individus à l&rsquo;échelle de son existence: Notre bien-être dépend aussi de celui des autres.<!--:--><!--:en-->La nature ne nous impose aucune règle morale ou éthique. Les seuls règles auxquelles elle nous soumet sont les lois de la physique. Il n&rsquo;y as pas de raison fondamentale ou absolue qui définisse le bien ou le mal dans nos actions. Ce qui nous permet d&rsquo;esquisser des règles, une éthique ou de juger en bien ou mal une action ce sont les règles morale et de fonctionnement que nous ou notre espèce (héritage culturel, &#8230;) s&rsquo;impose à elle même ainsi que les conséquences directes du dit acte. J&rsquo;hésiterais même a penser que ce sont uniquement les conséquences tangible sur la qualité de vie, le bien-être et l&rsquo;assurance de sa survie [ou celle de sa progéniture/espèce] qui formate notre morale avant le principe même de morale.<!--:--></p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.bux.fr/la-nature-na-pas-de-morale/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
