<?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>Do as i say, not as i do</title>
	<atom:link href="http://www.do-as-i-say.com/notes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.do-as-i-say.com/notes</link>
	<description>Car dire ça n&#039;est pas toujours faire, mais ça ne coûte rien</description>
	<lastBuildDate>Thu, 08 Dec 2011 21:25:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Non, tu n&#8217;es pas intelligent parce que tu te couches tard</title>
		<link>http://www.do-as-i-say.com/notes/2010/11/non-tu-nes-pas-intelligent-parce-que-tu-te-couches-tard/</link>
		<comments>http://www.do-as-i-say.com/notes/2010/11/non-tu-nes-pas-intelligent-parce-que-tu-te-couches-tard/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 08:28:04 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[4. Notes pour plus tard]]></category>
		<category><![CDATA[intelligence]]></category>
		<category><![CDATA[logique]]></category>
		<category><![CDATA[sommeil]]></category>
		<category><![CDATA[sophisme]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=1171</guid>
		<description><![CDATA[Une étude à la con publiée ces derniers jours, combinée à l&#8217;application du sophisme le plus vieux de l&#8217;histoire de la logique, et voilà que tous les glandus qui se couchent tard sont fiers d&#8217;annoncer qu&#8217;ils sont intelligents.
Je vous la refais rapidos : ça n&#8217;est pas parce que les gens &#171;&#160;intelligents&#160;&#187; (comprenez : au QI [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1175" style="border: 1px solid black;" title="Illustration littérale" src="http://www.do-as-i-say.com/notes/wp-content/uploads/gland.jpg" alt="Illustration littérale" width="101" height="115" />Une étude à la con publiée ces derniers jours, combinée à l&#8217;application du sophisme le plus vieux de l&#8217;histoire de la logique, et voilà que tous les glandus qui se couchent tard sont fiers d&#8217;annoncer qu&#8217;ils sont intelligents.</p>
<p>Je vous la refais rapidos : ça n&#8217;est pas parce que les gens &laquo;&nbsp;intelligents&nbsp;&raquo; (comprenez : au QI élevé) se couchent majoritairement tard que le fait de se coucher tard implique qu&#8217;on est intelligent.</p>
<p>Pas plus que le fait de posséder un Steinway de 2 mètres 80 ne fera de vous un grand pianiste. Ou pas plus que, <a href="http://www.alalettre.com/ionesco-oeuvres-rhinoceros.php" target="_blank">comme dirait Eugène</a>, le fait d&#8217;être mortel n&#8217;implique que Socrate est un chat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2010/11/non-tu-nes-pas-intelligent-parce-que-tu-te-couches-tard/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mes doutes sur les &#171;&#160;consultants fonctionnels&#160;&#187;</title>
		<link>http://www.do-as-i-say.com/notes/2010/11/mes-doutes-1-consultants-fonctionnels/</link>
		<comments>http://www.do-as-i-say.com/notes/2010/11/mes-doutes-1-consultants-fonctionnels/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 08:52:44 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[4. Notes pour plus tard]]></category>
		<category><![CDATA[consultant]]></category>
		<category><![CDATA[MOA]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=1149</guid>
		<description><![CDATA[Pour changer, une note brève (mais si ; si j&#8217;y arrive, je vais peut-être même réussir à ressusciter partiellement ce blog).
Dans le métier, il y a des intervenants qu&#8217;on croise souvent, ils sont &#171;&#160;consultants fonctionnels&#160;&#187; (ou un titre approchant). Parfois, ils sont efficaces. Parfois moins.
Ça n&#8217;est pas pas toujours de leur fait, c&#8217;est toute la [...]]]></description>
			<content:encoded><![CDATA[<p><em>Pour changer, une note brève (mais si ; si j&#8217;y arrive, je vais peut-être même réussir à ressusciter partiellement ce blog).</em></p>
<p><img class="alignleft size-full wp-image-1161" style="border: 1px solid black;" title="Je consulte, tu consultes, il consulte, nous consultons" src="http://www.do-as-i-say.com/notes/wp-content/uploads/consulting.jpg" alt="Consulting" width="132" height="87" />Dans le métier, il y a des intervenants qu&#8217;on croise souvent, ils sont &laquo;&nbsp;consultants fonctionnels&nbsp;&raquo; (ou un titre approchant). Parfois, ils sont efficaces. Parfois moins.</p>
<p>Ça n&#8217;est pas pas toujours de leur fait, c&#8217;est toute la chaîne de l&#8217;<a title="Si cette abréviation te laisse perplexe, cliquette" href="http://fr.wikipedia.org/wiki/AMOA" target="_blank">AMOA</a> qui est concernée (et en général, le client au premier chef). Mais c&#8217;est un autre sujet.</p>
<p>D&#8217;une manière générale, j&#8217;ai des réserves, non pas tant sur le rôle que sur le fait d&#8217;en faire un métier à temps plein.</p>
<p>Pour le dire autrement,<strong> un consultant fonctionnel de profession, ça me fait penser à quelqu&#8217;un qui n&#8217;aurait pas d&#8217;enfant, mais qui viendrait raconter par le menu comment on doit s&#8217;y prendre pour en élever</strong> — et accessoirement, se ferait payer pour ça.</p>
<p>Voilà pour mes <em>two cents</em> du jour.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2010/11/mes-doutes-1-consultants-fonctionnels/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Symfony expliqué à ma maman, 4ème partie : le MVC</title>
		<link>http://www.do-as-i-say.com/notes/2010/03/mvc-symfony-explique-a-ma-maman-4/</link>
		<comments>http://www.do-as-i-say.com/notes/2010/03/mvc-symfony-explique-a-ma-maman-4/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 08:52:59 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[2. Des trucs expliqués à ma maman]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=607</guid>
		<description><![CDATA[Suite aux posts un peu laborieux sur les design patterns et le découplage, il est temps d&#8217;être (un peu plus) concret et de raconter la vie d&#8217;un ami qui vous veut du bien : le MVC.
Le MVC est un design pattern qui est l&#8217;abréviation de Modèle-Vue-Contrôleur, et pour une fois, en anglais ou en français, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-618" style="border: 1px solid black;" title="L'homme et la machine" src="http://www.do-as-i-say.com/notes/wp-content/uploads/man_machine-150x150.png" alt="L'homme et le machine" width="128" height="128" />Suite aux posts un peu laborieux sur les <a href="/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/">design patterns</a> et le <a href="/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/" target="_blank">découplage</a>, il est temps d&#8217;être (un peu plus) concret et de raconter la vie d&#8217;un ami qui vous veut du bien : <strong>le MVC</strong>.</p>
<p>Le MVC est un design pattern qui est l&#8217;abréviation de Modèle-Vue-Contrôleur, et pour une fois, en anglais ou en français, ça fait les mêmes initiales (<em>Model-View-Controller</em>), donc y aura pas de débat sur comment qu&#8217;on doit causer. On raconte que son créateur se nomme Trygve Reenskaug, me demandez pas comment ça se prononce — son créateur, ou disons son théoricien, car comme souvent, on ne l&#8217;avait pas forcément attendu pour opérer de cette façon, mais il a mis des mots dessus (ce qui ne diminue pas l&#8217;importance de son travail).</p>
<p><span id="more-607"></span>Pour tout dire, quiconque a fait seul dans son coin des sites web dynamiques en mettant un peu (beaucoup) les mains dans le cambouis des langages/bases de données/exploitations multiples des mêmes informations, etc, a de fortes chances d&#8217;avoir à un certain niveau commencé à appréhender plus ou moins consciemment le MVC &#8211; ou alors, il a vraiment beaucoup galéré, et il est un petit peu décédé à l&#8217;heure qu&#8217;il est.<br />
Moi qui vous parle, enfin vous écrit, avant de lire quelques livres intéressants sur le sujet et de découvrir des frameworks, j&#8217;en étais arrivé à travailler systématiquement avec d&#8217;un côté des méthodes d&#8217;accès aux informations (à peu près bien abstraites du système de base de données), de l&#8217;autre des fichiers traitant les sorties (pour le web, pour le XML, pour des usages internes&#8230;), et au milieu un ou plusieurs points traitant les actions des utilisateurs et décidant ce qui devait être mis en œuvre.</p>
<p>Bien sûr, n&#8217;ayant pas conscience clairement des enjeux de cette division (faute entre autres d&#8217;avoir mis des mots dessus ; d&#8217;où l&#8217;importance de nommer), il traînait de nombreuses erreurs d&#8217;organisation affaiblissant souvent pas mal l&#8217;ensemble. Mais le fond était là : porté par la <strong>nécessité interne </strong>des traitements récurrents nécessaires pour une application web, j&#8217;avais fait un premier pas sans même le savoir, tel le Monsieur Jourdain des design patterns, dans le monde merveilleux du MVC.</p>
<h3>Le MVC, ou comment diviser pour mieux régner</h3>
<p>Précisons avant d&#8217;aller plus loin que comme tout design pattern, MVC n&#8217;est pas spécifiquement dédié à une technologie, un langage ou quoique ce soit.<br />
Il concerne de droit toute application avec une interface Homme-Machine, comme on dit (enfin, on dit IHM si on veut avoir l&#8217;air au courant), et consiste en une sorte de paradigme de l&#8217;organisation de l&#8217;application, séparant les données et leur vie (modèle), leur présentation (vue), et la gestion des événements (contrôleur).</p>
<p>Séparer le modèle et la vue repose sur une exigence au fond assez simple, qu&#8217;on pourra schématiser comme suit : il faut traiter d&#8217;un côté le &laquo;&nbsp;fond&nbsp;&raquo;, de l&#8217;autre la &laquo;&nbsp;forme&nbsp;&raquo;. Je recours aux guillemets, non pas pour pourrir la lecture, mais parce que l&#8217;utilisation de ces deux termes et leur séparation semblent aller de soi, or comme tout ce qui &laquo;&nbsp;va de soi&nbsp;&raquo;, elles méritent d&#8217;être questionnées. Il est illusoire de croire qu&#8217;il y aurait d&#8217;un côté du &laquo;&nbsp;fond&nbsp;&raquo; (du contenu, de la pensée&#8230;) et de l&#8217;autre de la &laquo;&nbsp;forme&nbsp;&raquo; (l&#8217;expression, qu&#8217;elle soit écrite, orale, artistique&#8230;)<br />
Autant supposer qu&#8217;on peut sans autre forme de procès séparer la musique du son, ou l&#8217;objet de sa manifestation — ce fantasme de séparation n&#8217;est en fait qu&#8217;une autre version de l&#8217;illusion platonicienne de la chose en soi, &laquo;&nbsp;vraie&nbsp;&raquo; chose dont le phénomène serait une version dégradée dans notre pauvre monde d&#8217;apparences.<br />
Non pas qu&#8217;il n&#8217;y ait pas un intérêt théorique capital à pouvoir <em>considérer</em> séparément ces aspects ; mais dans la réalité, je vous le dis, croyez-moi sur parole, le phénomène épuise tout ce qu&#8217;il y a à être de la chose, et la forme, comme je l&#8217;ai déjà formulé dans une note précédente, et exactement <strong>forme de son fond et réciproquement</strong>. Bref. J&#8217;ai clairement entamé un autre post ici, qui verra peut-être le jour une autre fois. Revenons à nos moutons.</p>
<p>Nos moutons sont le M, le V, et le C. Il n&#8217;aura échappé à personne, du moins à personne qui aura lu avec un minimum de concentration le <a href="/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/">billet précédent sur les prises électriques et les grille-pain</a> (mais je reconnais qu&#8217;il faut du courage), qu&#8217;une organisation isolant bien ces trois aspects d&#8217;un programme est comme l&#8217;archétype du découplage.<br />
Votre modèle (en gros, les données) peut changer de principe de stockage, de nature même si ça vous chante, pour peu qu&#8217;il soit correctement <em>interfacé</em> avec les autres couches du MVC, elles n&#8217;y verront que du feu. Le centre nerveux de votre application (le contrôleur, qui réagit aux actions de l&#8217;utilisateur et distribue les réponses) peut de son côté traiter n&#8217;importe quel type d&#8217;entrées et rediriger les sorties vers n&#8217;importe quel affichage, i.e. les vues. Vues qui de leur côté se contentent de mettre en forme (grosso modo) des informations, indépendamment de leur origine. J&#8217;ai failli dire &laquo;&nbsp;se contentent d&#8217;<em>afficher&nbsp;&raquo;</em>, mais en fait, contrairement à ce que son nom laisse croire, une &laquo;&nbsp;vue&nbsp;&raquo; au sens du MVC ne résulte pas nécessairement en quelque chose de&#8230; visuel. Une vue peut-être par exemple un fichier XML, qui vivra sa vie ensuite selon le client (au sens informatique) qui l&#8217;a requis.</p>
<h3>Quand l&#8217;intelligence gagne la matière</h3>
<p>L&#8217;intérêt très concret de l&#8217;application du MVC est qu&#8217;il isole les opérations, donc que chacun n&#8217;a à s&#8217;occuper que de sa partie. Et comme dans la vie, c&#8217;est toujours mieux quand chacun ne s&#8217;occupe que de ce qui le regarde. Dans ma Normandie natale, on dit &laquo;&nbsp;<em>Chacun son champ, les vaches sont bien gardées</em>&laquo;&nbsp;. Eh bien on ne peut mieux formuler le principe du MVC.<br />
En termes de développement, cette division conceptuelle vise à organiser les rôles par fonction, et à <strong>traduire les différences de nature en séparations opérationnelles</strong>. Comme si on faisait rentrer dans la chair du code, qui a priori n&#8217;en a que faire, un peu du sens des objets qu&#8217;on manipule. En contre-partie, dans un effet de résonance sémantique, j&#8217;irais bien jusqu&#8217;à dire : de récompense sémantique, le code, initialement &laquo;&nbsp;bête&nbsp;&raquo;, gagne en intelligence d&#8217;organisation et d&#8217;évolution. Risquons la formule : <em>bien utiliser le MVC, c&#8217;est insuffler de l&#8217;âme dans la matière. </em>Ouaip. Pas moins.</p>
<p>L&#8217;ultime intérêt, non des moindres, est pédagogique : en s&#8217;efforçant d&#8217;appliquer cette discipline de conception et d&#8217;implémentation, on s&#8217;oblige à bien comprendre ce qui fait quoi dans son application. Et croyez-moi, c&#8217;est pas de la tarte.<br />
Mais, une fois encore, une bonne méthode appliquée avec constance finit par insuffler plus que du mécanisme, et crée de l&#8217;intelligence. Et pas que dans le code. Dans le codeur également. C&#8217;est toute la puissance de la <em>méthodologie</em> : des idées régulatrices qui <em>dirigent vers </em>un endroit. Et même si on ne sait pas précisément où est l&#8217;endroit, on peut travailler à avancer dans la bonne direction, et à bien arpenter le <strong>chemin</strong>.<br />
Car pour finir sur une touche étymologique du meilleur aloi, c&#8217;est précisément de là que vient le mot <em>méthode</em> : μέθα (<em>méta</em>, qui suit) οδός (<em>odos</em>, le chemin).</p>
<p>___________________________________</p>
<p><em>Image empruntée ici : <a href="http://www.marriedtothesea.com/archives/2007/Aug/" target="_blank">http://www.marriedtothesea.com/archives/2007/Aug/</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2010/03/mvc-symfony-explique-a-ma-maman-4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Réinventer la roue</title>
		<link>http://www.do-as-i-say.com/notes/2010/01/reinventer-la-roue/</link>
		<comments>http://www.do-as-i-say.com/notes/2010/01/reinventer-la-roue/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 07:57:18 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[antipatterns]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[roue]]></category>
		<category><![CDATA[tradition]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=1047</guid>
		<description><![CDATA[L&#8217;un des arguments principaux justifiant le recours à un framework (par exemple, au hasard, Symfony), contrebalançant le fait qu&#8217;il est un peu &#171;&#160;lourd&#160;&#187;, est que puisqu&#8217;il prend en charge un grand nombre des tâches répétitives de bas niveau, il évite au développeur d&#8217;avoir, selon l&#8217;expression consacrée, à réinventer la roue à chaque fois qu&#8217;il entame [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1065" style="border: 1px solid black;" title="La roue" src="http://www.do-as-i-say.com/notes/wp-content/uploads/roue.jpg" alt="La roue" width="128" height="128" />L&#8217;un des arguments principaux justifiant le recours à un framework (par exemple, au hasard, <a href="http://www.symfony-project.org" target="_blank">Symfony</a>), contrebalançant le fait qu&#8217;il est un peu &laquo;&nbsp;lourd&nbsp;&raquo;, est que puisqu&#8217;il prend en charge un grand nombre des tâches répétitives de bas niveau, il évite au développeur d&#8217;avoir, selon l&#8217;expression consacrée, à réinventer la roue à chaque fois qu&#8217;il entame une nouvelle application ou une nouvelle interface.</p>
<p><span id="more-1047"></span>&laquo;&nbsp;Réinventer la roue&nbsp;&raquo; (ou &laquo;&nbsp;rihinveinte zeu ouhile&nbsp;&raquo;, pour les bilingues), c&#8217;est perdre du temps sur quelque chose qui a déjà été fait, bien fait, mieux fait, bref, faire un travail inutile. En programmation, c&#8217;est même un <a href="/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/">antipattern</a> célèbre. Si on peut lui reconnaitre dans une certaine mesure un intérêt pédagogique (l&#8217;impétrant développeur, en passant du temps sur une fonctionnalité déjà réalisée, s&#8217;initie au code et à sa logique &#8211; pour peu qu&#8217;il soit guidé), il est clair qu&#8217;on déconseille fortement de réinventer la roue. Si ça a déjà été inventé, coco, pourquoi perdre du temps à le refaire, d&#8217;autant qu&#8217;il y a fort à parier que tu le referas moins bien. En effet, non seulement la roue a déjà été inventée, mais depuis le temps, elle a été perfectionnée.</p>
<p>La bonne pratique est donc de capitaliser, comme on dit, sur ce que les autres ont déjà fait, testé et éprouvé.<br />
En programmation, où l&#8217;Histoire est encore fraiche et où tout va très vite, ces &laquo;&nbsp;autres&nbsp;&raquo; sont parfois des contemporains (voire sont plus jeunes que vous ; sales jeunes), mais pour généraliser on peut dire que cette bonne pratique consiste à apprendre de ce qui a été fait, donc apprendre du passé, des générations précédentes, en d&#8217;autres termes : de ses aînés. Ce passé qu&#8217;on peut plus ou moins consciemment faire fructifier a un nom : <strong>la tradition</strong>.</p>
<p>L&#8217;Histoire se répétant, chaque nouvelle génération a une tendance plus ou moins forte à vouloir se défaire de la tradition, comme une transposition à l&#8217;échelle socio-culturelle de la crise d&#8217;adolescence, où le besoin de conquérir son individualité se traduit parfois par des chocs violents (tant il est évident que pour chaque jeune, les vieux n&#8217;ont vraiment rien compris, et ne peuvent de toutes façons pas le comprendre lui).</p>
<p>Il y a pourtant une réalité douloureuse, c&#8217;est que globalement, vu que l&#8217;Histoire n&#8217;a pas exactement commencé hier, ni même à la naissance de Bill Kaulitz/Brian Molko/Kurt Cobain/Robert Smith/John Lennon (choisissez pour votre génération ou celle qui vous suit), vu que l&#8217;humanité, donc, a quelques heures de vol derrière elle, excusez du peu, <strong>il y a de fortes chances que <em>tout ait déjà été fait</em>.</strong></p>
<h3>Connais tes classiques</h3>
<p>Bien sûr, l&#8217;accélération (on va appeler ça comme ça) de l&#8217;Histoire dûe à la technologie au sens très large, donc depuis la fin du XIXème siècle, fait que dans pas mal de domaines, le passé est bref. Ça a un côté assez sympathique, on peut croire un peu qu&#8217;on défriche des choses — et ça n&#8217;est en partie pas faux —, mais il ne faut pas non plus se faire avoir par une courante <strong>illusion d&#8217;optique</strong> : même si concrètement le contenu du savoir/de la technologie en question est &laquo;&nbsp;différent&nbsp;&raquo;, dans l&#8217;histoire du savoir, on n&#8217;<em>invente</em> que très rarement quelque chose. Pour ne pas dire jamais. La plupart du temps, on repasse en fait par des chemins qui ont déjà été empruntés, même si on ne le sait pas (et dans ce cas, en un sens, on peut se retrouver à réinventer la roue).</p>
<p>Cette illusion repose principalement sur un aveuglement, dû à un manque de connaissance du passé, et la bonne pratique qui préconise de ne pas réinventer la roue exhorte donc à ouvrir les yeux. Mais pour ça, comme on dit, il faut <em>connaître ses classiques</em>. Lire, écouter. Plus tu connais le passé, plus tu maîtrises le présent, plus tu façonnes le futur comme tu le veux (je devrais écrire des slogans pour ERDF, moi).</p>
<p>Ça peut avoir l&#8217;air déprimant comme ça, mais ça ne l&#8217;est que si l&#8217;on se berce de l&#8217;illusion (une autre) qu&#8217;on est le premier de l&#8217;espèce humaine et que tout nous a attendu. Il faut se réveiller. Personne ne nous a attendu, et <strong>les morts sont plus forts que les vivants</strong>.<br />
Mais en fait, c&#8217;est très bien, et ça laisse quand même de la place. Parce que l&#8217;histoire est une perpétuelle redigestion, qu&#8217;elle engendre quand même du nouveau, et qu&#8217;emprunter un chemin qui a déjà été foulé est toujours un nouveau périple.</p>
<p>La morale de cette histoire (qui n&#8217;en est pas une), c&#8217;est que quand l&#8217;ego a réussi à faire le deuil de sa toute-puissance, à entrer dans son humilité, et pas au sens chrétien du terme, alors les choses intéressantes peuvent éventuellement commencer.<br />
J&#8217;aborderai probablement une autre fois le rapport à la tradition, qui n&#8217;est évidemment pas univoque et ne doit pas consister en une soumission absolue (car, <a href="/notes/2009/09/si-a-50-ans-tas-pas-ecoute-du-mahler/">comme disait l&#8217;autre</a>, la tradition ça peut aussi être de la paresse ou de la négligence. Mais pour contester ou dépasser, il faut connaître ce qu&#8217;on prétend dépasser.</p>
<p>__________________________</p>
<p><em>Illustration fort à propos trouvée fortuitement ici : </em><a href="http://plennevaux.be/alexandre/general/monocycle-par-ben-wilson/" target="_blank">http://plennevaux.be/alexandre/general/monocycle-par-ben-wilson/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2010/01/reinventer-la-roue/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>L&#8217;appel au bon sens</title>
		<link>http://www.do-as-i-say.com/notes/2010/01/l-appel-au-bon-sens/</link>
		<comments>http://www.do-as-i-say.com/notes/2010/01/l-appel-au-bon-sens/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 07:47:14 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[argumentation]]></category>
		<category><![CDATA[bon sens]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[rationalité]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=1018</guid>
		<description><![CDATA[
Ça fait quelque temps que je fomente cette note. A force d&#8217;entendre répéter ça et là que telle ou telle chose n&#8217;est qu&#8217;une question de bon sens, et malgré des années de sommeil (pas si dogmatique), j&#8217;ai fini par remâcher quelques vieilles dispositions anti-cartésiennes dont je vais vous abreuver pas plus tard que tout de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1025" style="border: 1px solid black;" title="Le discours de la thodemé" src="http://www.do-as-i-say.com/notes/wp-content/uploads/200px-Descartes_Discours_de_la_Methode1.jpg" alt="Le discours de la thodemé" width="128" height="128" /></p>
<p>Ça fait quelque temps que je fomente cette note. A force d&#8217;entendre répéter ça et là que telle ou telle chose n&#8217;est qu&#8217;une <em>question de bon sens</em>, et malgré des années de sommeil (pas si dogmatique), j&#8217;ai fini par remâcher quelques vieilles dispositions anti-cartésiennes dont je vais vous abreuver pas plus tard que tout de suite.</p>
<p>Car oui, s&#8217;il n&#8217;a bien évidemment pas inventé le <em>bona mens</em>, c&#8217;est notre ami Descartes qui installe le &laquo;&nbsp;bon sens&nbsp;&raquo; comme le fourre-tout le plus prospère de l&#8217;histoire de la pensée (occidentale) moderne.</p>
<p><span id="more-1018"></span>La première phrase du premier chapitre de la première partie du fameux/fumeux <em>Discours de la méthode</em> assène anéfé sans autre forme de procès que, selon la formule que chacun connait sans la connaitre :</p>
<blockquote><p><span>Le bon sens est la chose du monde la mieux partagée </p></blockquote>
<p><span>Il ne faut pas cela dit prendre Descartes pour plus bête qu&#8217;il n&#8217;est ; son bon sens n&#8217;est pas le pur et mou &laquo;&nbsp;sens commun&nbsp;&raquo;, mais une disposition de l&#8217;esprit que chacun peut trouver, une sorte de sagesse de l&#8217;évidence (et sans mauvaise blague, Dieu sait que c&#8217;est son truc, à René, l&#8217;<em>évidence</em>).<br />
Tout comme <em>faire simple</em> est parfois plus <strong>complexe</strong> que <em>faire compliqué</em>, faire comme on dit &laquo;&nbsp;preuve de bon sens&nbsp;&raquo; n&#8217;est pas si aisé. C&#8217;est que l&#8217;évidence cartésienne est une sorte de préfiguration du résultat de la réduction phénoménologique (enfin, soyons honnêtes, ce sont les phénoménologues qui réinvestissent Descartes un peu moins de trois siècles après).<br />
Il y a le &laquo;&nbsp;bien connu&nbsp;&raquo;, trop connu, qui camoufle, comme le gros drap poilu et poussiéreux d&#8217;années de sensations non questionnées, la phénoménitude du phénomène (Ségo, sors de ce corps).</span></p>
<p><span>Mais quand même, le bon sens selon Descartes est bien à la portée de tout le monde. C&#8217;est <em>la chose du monde la mieux partagée</em>. En une phrase Descartes signe l&#8217;ouverture de la modernité, faisant d&#8217;une &laquo;&nbsp;qualité&nbsp;&raquo; inhérente à tout être humain le butoir à la régression à l&#8217;infini du questionnement philosophique : au bout d&#8217;un moment, il ne faut plus se demander pourquoi, car c&#8217;est <em>bien évident que ça n&#8217;est qu&#8217;une question de bon sens</em>. Jvous la fait à l&#8217;arrache des grands jours, bien sûr, mais l&#8217;argument ontologique<span> (qui sert de base à une preuve de l&#8217;existence de Dieu) ne vaut pas deux cacahuètes de plus.</span></p>
<h3><span>Un coup de poing sur la table</span></h3>
<p><span>Eh oui. Songes-y, toi le voyageur mystérieux (ouaip, j&#8217;ai envie de vous apostropher comme ça), si enfin il <em>suffit</em> de <em>faire preuve</em> de bon sens, il n&#8217;y a plus rien à discuter. Et si tu ne comprends pas, c&#8217;est que tu n&#8217;as pas, ou pas assez, de bon sens. Prends-toi ça dans ta face. Et si tu critiques ou te révoltes, c&#8217;est que tu ratiocines, que tu coupes les cheveux en un multiple de deux, bref, que tu es du côté de la non-clarté (oui, le &laquo;&nbsp;côté obscur&nbsp;&raquo;, ça a des sortes de connotations dont je vais me passer pour ce soir), donc ferme ta mouille.<br />
En quoi le recours à l&#8217;argument, que dis-je, le coup de poing sur la table de l&#8217;invocation du bon sens, est un double geste démagogique — le bon sens est la sagesse des humbles, de la France d&#8217;en bas, pas des intellos parisiens </span><span>— </span><span>et autoritariste : c&#8217;est en fait un ordre impératif de se taire.</span></p>
<p><span>Comprenons-nous bien : je force le trait, comme souvent, pour donner de la chair au propos. Je reconnais tout à fait, je l&#8217;ai évoqué plus haut, la difficulté de la simplicité, et j&#8217;admets qu&#8217;on a souvent tendance à faire d&#8217;emblée compliqué. Je suis assez d&#8217;accord pour mettre la sagesse du côté du <em>moins</em>, ou plutôt du <em>kairos</em>, de la juste mesure, quoi (à strictement parler, le saisissement du bon moment, qui est un art délicat). Et je sais bien que Descartes n&#8217;aurait pas complètement dit le contraire, mais j&#8217;aime bien l&#8217;avoiner, car sous maint aspect il nous a bien plombé. Enfin ça n&#8217;est pas l&#8217;objet.</span></p>
<p><span>Et le <em>bon sens</em>, alors ? Je n&#8217;ai rien contre le bon sens. Quelque soit ce qu&#8217;on entend par là, presque. C&#8217;est plus son invocation, utilisée comme stratagème rhétorique, qui a tendance à me rendre un tantinet suspicieux. </span></p>
<p><span>Ce sera donc le conseil du jour : tout comme quand vous entendez parler de <a href="/notes/2009/08/le-carreleur-et-le-developpeur/" target="_self">carreleur</a>, chaque fois que soudain un <em>appel au bon sens</em> surgit, entendez-le bien, mais ne vous faites pas moucher. <strong><br />
Le bon sens n&#8217;est pas un argument en soi.</strong> Et surtout : il ne va pas de soi (normal, sinon on n&#8217;aurait d&#8217;ailleurs pas à y faire appel&#8230;), donc son irruption dans un discours ne doit pas mettre fin à toutes les questions.<br />
En fait, il ne vaut pas plus qu&#8217;un coup de poing sur la table. Alors ok, un coup de poing sur la table, des fois c&#8217;est utile, mais il faut savoir où on est et ne pas prendre ça pour un argument.<br />
Or, on peut être intimidé par les coups de poing, mais on a toujours le droit de demander des arguments.<br />
</span></p>
<p><span><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2010/01/l-appel-au-bon-sens/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>La beauty de la poetry dans Symfony</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:24:05 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[langage]]></category>
		<category><![CDATA[métaphore]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=947</guid>
		<description><![CDATA[Dans le développement web comme dans la programmation en général, on utilise  beaucoup de termes empruntés à l&#8217;anglais, dans des versions plus ou moins traduites ou transposées. Comme dans tout langage technique où on utilise, à plus ou moins bon escient, des termes d&#8217;origine étrangère, ça donne lieu dans les échanges oraux ou écrits à [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-971" style="border: 1px solid black;" title="La poésie, cbeautiful" src="http://www.do-as-i-say.com/notes/wp-content/uploads/poetry.jpg" alt="La poésie, cbeautiful" width="128" height="128" />Dans le développement web comme dans la programmation en général, on utilise  beaucoup de termes empruntés à l&#8217;anglais, dans des versions plus ou moins traduites ou transposées. Comme dans tout langage technique où on utilise, à plus ou moins bon escient, des termes d&#8217;origine étrangère, ça donne lieu dans les échanges oraux ou écrits à des phrases mélangeant allègrement des mots d&#8217;origines diverses, dans un melting-pot qui souvent frise le ridicule, mais parfois recèle une bonne dose de poésie (oui, bon, moi ça me parle, cette poésie, je sais bien que ça n&#8217;est pas forcément le cas de tout le monde, mais c&#8217;est comme ça).<br />
<span id="more-947"></span></p>
<p>Je n&#8217;aborderai pas ici le débat, en partie stérile, consistant à se demander s&#8217;il faut traduire ou non tous ces termes et/ou créer des équivalents en français quand il n&#8217;y a pas de mot existant. Une langue vivante est, comme son nom l&#8217;indique, <em>vivante</em> (eh ouaip, ne me remerciez pas), comme tout organisme elle mue, agrège des éléments, transforme de la matière en d&#8217;autres choses, et c&#8217;est très bien (mieux : c&#8217;est vital — une langue que ne bouge plus est, comme on le dit fort bien, une <em>langue morte</em>).</p>
<p>Non, je vais juste ici évoquer quelques uns des mots qu&#8217;on pratique beaucoup en <a href="http://www.sensiolabs.com" target="_blank">environnement professionnel</a>, ceux qui ont pour mon oreille un peu bizarre des résonances particulièrement drôles ou poétiques. Ça me donnera au passage l&#8217;occasion de parler un peu d&#8217;un framework que j&#8217;aime bien (voir <a href="http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/" target="_blank">ici</a>, <a href="http://www.do-as-i-say.com/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/" target="_blank">ici</a>, ou <a href="http://www.do-as-i-say.com/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/" target="_blank">ici</a>). On pourrait appeler cette liste &laquo;&nbsp;les 10 termes à connaître pour <em>speaker</em> fluemment le Symfony <em>in </em>le texte&nbsp;&raquo;.</p>
<ul>
<li><strong>autoload </strong>: ne me demandez pas pourquoi celui-là me plait, il y a des chances que ça ait à voir avec Goldorak (autolargue, quoi).  En ce qui nous concerne, l&#8217;autoload est une fonctionnalité un petit peu magique qui dispense le développeur d&#8217;inclure explicitement chacun des fichiers définissant les classes dont il a besoin, le framework (chez nous, c&#8217;est <a href="http://www.symfony-project.org">Symfony</a>, des fois que je ne l&#8217;aurais pas dit) se chargeant à chaque nouvelle instanciation d&#8217;objet de fouiller les répertoires qui vont bien à la recherche du fichier nécessaire et de l&#8217;inclure dans votre dos sans que vous ayiez à vous en soucier.</li>
<li><strong>bootstraping </strong>: souvent utilisé dans un <a href="http://www.do-as-i-say.com/notes/2009/09/les-10-termes-a-connaitre-pour-etre-un-bon-chef-de-projet/" target="_blank">discours de vérité</a> pour en jeter un max, le <em>bootstraping</em> est littéralement laçage de chaussure (ou serrage de sangle de botte&#8230;) Les <em>bootstrap</em>s sont concrètement des anneaux cousus sur le rebord des bottes, qu&#8217;on utilise pour s&#8217;aider à les chausser. En anglais courant, le verbe <em>bootstrap</em> signifie d&#8217;ailleurs &laquo;&nbsp;se débrouiller tout seul&nbsp;&raquo;. Pour la fine bouche, signalons que dans la littérature anglaise le verbe est également une référence aux aventures du baron de Münchhausen qui, embourbé dans un marécage, s&#8217;en sort en se tirant lui-même par ses bottes pour se propulser dans les airs&#8230;<br />
&laquo;&nbsp;Bootstraper&nbsp;&raquo;, puisqu&#8217;on l&#8217;utilise bien entendu comme verbe francisé, consiste à démarrer le boulot en en prémâchant l&#8217;essentiel, pour obtenir rapidement une base pouvant servir au développement d&#8217;une application plus puissante par la suite.</li>
<li><strong>cécé </strong>: ou &laquo;&nbsp;cici&nbsp;&raquo;, si on le fait à l&#8217;anglaise ; abbréviation et alias de la commande Symfony clear-cache (puis plus récemment cache:clear) utilisée pour <em>clearer</em> le cache (le vider, quoi). On doit entendre chez Sensiolabs environ 167 fois par jour &laquo;&nbsp;t&#8217;as fait un cécé ?&nbsp;&raquo;.</li>
<li><strong>crud </strong>: à prononcer &laquo;&nbsp;crude&nbsp;&raquo;, ou &laquo;&nbsp;creude&nbsp;&raquo;, bien sûr. Acronyme de Create-Retrieve-Update-Delete, qui sont les quatre fonctions de base d&#8217;une interface simple d&#8217;administration de données.</li>
<li><strong>fixtures : </strong>toujours un peu difficile à dire pour les français, les <em>fikstcheurzes</em> sont des données servant à tester et/ou initialiser une application, stockées dans un format simple à éditer et à utiliser pour des injections automatiques (voir <em>populate</em> plus bas).</li>
<li><strong>helper </strong>: j&#8217;aime bien l&#8217;idée d&#8217; &laquo;&nbsp;aideurs&nbsp;&raquo; (j&#8217;imagine que l&#8217;administration nous ferait dire &laquo;&nbsp;aidants&nbsp;&raquo;) qui avec leur petits bras muskés font des trucs pour toi. Un <em>helper</em> est en effet une petite fonction destinée en général à retourner du code HTML répétitif, construit avec des paramètres ou propriétés d&#8217;un objet qu&#8217;on lui passe.</li>
<li><strong>hydrate : </strong>liquide et poétique image qui touche au sublime : &laquo;&nbsp;hydrater un objet&nbsp;&raquo; consiste à lui attribuer des valeurs qu&#8217;on a récupérées en vrac par ailleurs (pour faire très simple), cette attribution devant être &laquo;&nbsp;intelligente&nbsp;&raquo;, c&#8217;est-à-dire qu&#8217;elle doit faire correspondre à la bonne propriété la bonne valeur. On peut &laquo;&nbsp;hydrater à la main&nbsp;&raquo;, ce qui n&#8217;a rien à voir avec une crème de jour, ou recourir à des fonctions qui <a href="http://www.symfony-project.org/cookbook/1_2/en/retrieving_data_with_doctrine#chapter_f6fc97d827760d5157133eaf9798ddaf_array_hydration" target="_blank">mâchent le travail</a>.</li>
<li><strong>populate </strong>: autre métaphore que j&#8217;affectionne particulièrement, qu&#8217;on emploie un peu indifféremment en anglais ou dans sa version française ( &laquo;&nbsp;peupler&nbsp;&raquo;, ou le néologique &laquo;&nbsp;populer&nbsp;&raquo;). <em>Peupler </em>une base de données consiste à lui injecter des données de tests ou des données initiales nécessaires à l&#8217;application (utilisateurs, contenus de départ&#8230;) ; pour faciliter la vie des développeurs, il existe dans Symfony des façons d&#8217;automatiser cette action pour pouvoir la répéter en deux coups de cuiller à pot et insérer des <em>fixtures</em> en une seule commande.<br />
Il existe aussi la variante &laquo;&nbsp;<strong>repeupler</strong>&laquo;&nbsp;, qui désigne le fait de réafficher les données saisies par l&#8217;utilisateur dans un formulaire s&#8217;il contient des erreurs ou doit être complété. On a tous un jour expérimenté la douleur de l&#8217;absence de repopulation, quand on a passé du temps à remplir un formulaire, qu&#8217;on valide, qu&#8217;il est refusé pour une quelconque raison, mais est réaffiché tout vide, et qu&#8217;on doit tout ressaisir&#8230; Vous pourrez maintenant hurler &laquo;&nbsp;IL N&#8217;A PAS ÉTÉ REPEUPLÉ, BORDEL DE M&#8230; !&nbsp;&raquo;</li>
<li><strong>routing </strong>: celui-là aussi on le traduit peu (le &laquo;&nbsp;routage&nbsp;&raquo; gardera quoiqu&#8217;on en dise toujours une connotation de service postal). Le routing est le mécanisme qui réécrit et/ou traduit les urls (selon le sens où on le regarde) pour permettre de paramétrer des adresses, comme on dit, plus sympathiques pour les utilisateurs et les moteurs de recherche (respectivement : <em>user-friendly</em>, et <em>search-engine-friendly</em> ; ouéééé, copaaaing !) Il est lié à ce qu&#8217;on appelle la réécriture d&#8217;url, qu&#8217;on dit très souvent à l&#8217;anglaise aussi : l&#8217;<em>iouharelle riraïtingue</em>.</li>
<li><strong>sandbox </strong>: littéralement &laquo;&nbsp;bac à sable&nbsp;&raquo;, désigne une mode autonome de distribution d&#8217;une application, pour faciliter son installation et permettre des tests où les risques d&#8217;impact pour le reste du serveur sont limités sinon nuls. En d&#8217;autres termes : pour faire joujou dans son bac à sable où on peut tout crader sans gêner personne.</li>
<li><strong>scaffolding </strong>: image très sympathique, qu&#8217;on pourrait traduire par &laquo;&nbsp;échaufadage&nbsp;&raquo;. Assez proche du <em>bootstraping</em>, le <em>scaffolding</em> est plus spécifiquement lié à la façon d&#8217;exploiter la structure d&#8217;une base de données. Il se base sur une description formalisée de cette structure (dans <a href="http://www.symfony-project.org/book/1_2/08-Inside-the-Model-Layer#chapter_08_sub_beyond_the_schema_yml_the_schema_xml" target="_blank">Symfony, par exemple</a>, dans un fichier <em>schema.yml</em>) pour générer automatiquement une interface d&#8217;administration <em>crud </em>(voir plus haut). C&#8217;est ce que fait le bien nommé <em>admin generator</em>,  affectueusement appelé <em>admin gen </em>(prononcez &laquo;&nbsp;admine jène&nbsp;&raquo;), dans Symfony. En quoi on peut dire : &laquo;&nbsp;l&#8217;<em>admin gen</em>, ça consiste à <em>bootstraper </em>ton <em>backoffice </em>en faisant du <em>scaffolding</em> avec des interfaces <em>crud&nbsp;&raquo;</em>. <em><br />
</em>Cpas <em>beautiful</em>, ça ?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/symfony-poetry/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Twitter est-il pour tout le monde ?</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/twitter-est-il-pour-tout-le-monde/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/twitter-est-il-pour-tout-le-monde/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 12:03:59 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=892</guid>
		<description><![CDATA[Comme l&#8217;harmonie des sphères a l&#8217;air parfaitement réglée, il se trouve qu&#8217;hier un article a été posté sur slate.fr (http://www.slate.fr/story/11825/twitter-facebook-journalistes-ego), illustrant de manière assez frappante mon propre propos du vendredi précédent :  http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/.

Titiou Lecoq nous y explique pourquoi le &#171;&#160;réseau social&#160;&#187; Twitter &#171;&#160;ne va pas conquérir le monde&#160;&#187;, en reprenant l&#8217;argument (fort juste au demeurant, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-913" style="border: 1px solid black;" title="Mais heu" src="http://www.do-as-i-say.com/notes/wp-content/uploads/qui-qua-la-plus-grosse_th.jpg" alt="Mais heu" width="128" height="128" />Comme l&#8217;harmonie des sphères a l&#8217;air parfaitement réglée, il se trouve qu&#8217;hier un article a été posté sur slate.fr (<a href="http://www.slate.fr/story/11825/twitter-facebook-journalistes-ego" target="_blank">http://www.slate.fr/story/11825/twitter-facebook-journalistes-ego</a>), illustrant de manière assez frappante mon propre propos du vendredi précédent :  <a href="http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/" target="_blank">http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/</a>.</p>
<p><span id="more-892"></span></p>
<p>Titiou Lecoq nous y explique pourquoi le &laquo;&nbsp;réseau social&nbsp;&raquo; Twitter &laquo;&nbsp;ne va pas conquérir le monde&nbsp;&raquo;, en reprenant l&#8217;argument (fort juste au demeurant, et déjà développé notamment ici <a href="http://www.ecrans.fr/Sur-Twitter-on-se-suit-sans-trop,7483.html" target="_blank">http://www.ecrans.fr/Sur-Twitter-on-se-suit-sans-trop,7483.html</a>) selon lequel il ne faut pas se laisser avoir par l&#8217;illusion d&#8217;optique qui cache qu&#8217;en partie que le <em>phénomène Twitter</em> est créé et entretenu par une toute petite frange de la population internetesque, celle qui l&#8217;utilise, et qui en parle, et qui est la population qui parle sur internet, et qui parle de son utilisation dans une sorte de cercle sans aucun doute égocentré (quelle surprise) se nourrissant lui-même à l&#8217;infini ou presque.</p>
<p>L&#8217;article de slate.fr est bien étayé par ailleurs ; il rappelle, s&#8217;il en est besoin, que la majorité des internautes n&#8217;utilise pas Twitter, n&#8217;est pas drogué de l&#8217;info en continu, et que si vous n&#8217;avez pas des infos capitales à y poster, ça n&#8217;est effectivement pas d&#8217;un grand intérêt (mais j&#8217;ai comme l&#8217;impression qu&#8217;on dit là &laquo;&nbsp;si tu ne dis rien d&#8217;intéressant, ça n&#8217;est pas intéressant&nbsp;&raquo;, ce que je ne me risquerai pas à contredire malgré mon goût pour la rhétorique).</p>
<p>Il pointe aussi le fait que tout ce qui relève de l&#8217;info pratique peut tout à fait être répandu par d&#8217;autres biais (Facebook par exemple), ce que personne n&#8217;a cherché à nier non plus &#8211; heureusement que les infos peuvent être diffusées par plusieurs médias, sinon on serait quand même dans la mouise.</p>
<p>Il pilonne enfin — c&#8217;est sa thèse de fond, confer l&#8217;image d&#8217;illustration choisie — la sphère webjournalistique/blogueuse et sa propension souvent ridicule à gonfler son égo jusqu&#8217;à l&#8217;explosion, ou à chercher à montrer qu&#8217;on a bien la plus grosse, point sur lequel il n&#8217;y pas grand chose à redire non plus.</p>
<h3>Un mauvais procès</h3>
<p>Bref, je suis d&#8217;accord avec l&#8217;essentiel de ce qui y est écrit.</p>
<p>Mais l&#8217;article me semble tout de même trahir une incompréhension de la <em>chose Twitter</em>, souvent entretenue par ses propres défenseurs d&#8217;ailleurs. <strong>Non, Twitter n&#8217;est pas un réseau social.</strong> Il n&#8217;est pas destiné à concurrencer ou remplacer Facebook, MSN, l&#8217;email ou les blogs — ou alors, c&#8217;est une erreur stratégique qui frôle la débilité.<br />
Si Twitter ambitionne d&#8217;être un réseau social, on peut dire en effet qu&#8217;il est mal barré : il faut rapidement supprimer la limitation de caractères, probablement rendre bijective la connexion entre les utilisateurs , rajouter plein de gadgets susceptibles d&#8217;attirer et de faire rester tout ce qui relève du ROFLMAO ou du MER IL ET FOU (désolé, il fallait que je le fasse)&#8230;</p>
<p>Mais non. Twitter est un outil polymorphe qui, comme j&#8217;essayais de le pointer <a href="http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/" target="_blank">l&#8217;autre jour ici</a>, <strong>sert à ce qu&#8217;on en fait</strong>, ni plus, ni moins. Rien d&#8217;étonnant donc à ce que les &laquo;&nbsp;professionnels du web&nbsp;&raquo;, qui sont en effet les premiers utilisateurs, aient pour l&#8217;instant surtout développé, à leur corps défendant ou non, le côté info en temps réel, promotion et branding, et clash deupoinzéro. Pour paraphraser une sentence que j&#8217;aime bien : <em>on a le Twitter qu&#8217;on mérite</em>.</p>
<p>Enfin, comme annoncé en début de post, L&#8217;article de slate.fr illustre le phénomène que je décrivais, et qu&#8217;on peut (re)formuler comme suit : si on ne prend pas  un peu, voire beaucoup, de temps pour expérimenter Twitter, on pourra difficilement avoir compris à quoi ça pouvait servir.<br />
Cela dit, je tiens à ajouter, si ça n&#8217;est pas assez clair, qu&#8217;il n&#8217;y a aucune obligation à se mettre à Twitter ni même, pour peu qu&#8217;on l&#8217;ait expérimenté suffisamment, à y rester, à trouver ça intéressant ou génial.<br />
Sans même parler de l&#8217;ambiance facilement rebutante qui peut y régner quand nos grands blogeurs hexagonaux ou autres se démontent verbalement la tête ou exhibent leurs parties (en même temps, personne ne vous oblige à suivre des boulets infatués, hein&#8230;), je peux tout à fait concevoir qu&#8217;on ne trouve, pour le dire ainsi, <strong>rien à en faire</strong>, après tout. Pour répondre à la question du titre : non, Twitter n&#8217;est pas forcément pour tout le monde. Si ça ne vous intéresse pas, ça n&#8217;est ni un crime ni une tare.</p>
<p>En revanche, annoncer que Twitter ne peut servir à &laquo;&nbsp;créer du fond&nbsp;&raquo; et que &laquo;&nbsp;la limite de signes interdit la création de contenu&nbsp;&raquo;, c&#8217;est montrer qu&#8217;on n&#8217;est pas rentré dedans (une fois encore, ça n&#8217;a rien d&#8217;obligatoire ou d&#8217;indispensable), et qu&#8217;on rate quelque chose sur la création (oui, c&#8217;est un gros mot) d&#8217;une façon générale.<br />
Que la limitation à 140 caractères soit une sacré contrainte, c&#8217;est évident, mais c&#8217;est aussi un défi intéressant.<br />
Cela étant, dire qu&#8217;on ne peut pas <em>créer du fond </em>(j&#8217;adore cette expression, ça me fait penser à une valise à double-fond) c&#8217;est faire un mauvais procès à Twitter, et lui reprocher de ne pas être ce qu&#8217;il n&#8217;a pas à être : il ne remplacera jamais le cadre d&#8217;un blog ou d&#8217;autre chose pour une certaine forme d&#8217;écriture. Le fond est toujours fond de sa forme, donc les contraintes d&#8217;un mode d&#8217;expression influent sur ce qu&#8217;on en peut faire, voire le structurent fondamentalement.</p>
<p>Nous sommes donc bien d&#8217;accord, je crois, sur le fait que penser que Twitter ou le &laquo;&nbsp;web de flux&nbsp;&raquo; sont supérieurs au web tout court, voire destinés à le remplacer, n&#8217;a pas vraiment de sens, car les modes et les niveaux d&#8217;expression s&#8217;additionnent, ils ne se remplacent jamais vraiment. Mais je ne sais pas trop qui a ce discours sur Twitter — pas moi en tout cas. Et ceux qui l&#8217;ont éventuellement sont de bien piètres avocats.</p>
<p>Toutes ces considérations, enfin, ne contredisent en rien le fait que le &laquo;&nbsp;niveau&nbsp;&raquo;, sur Twitter, est bien inégal, voire pas terrible la plupart du temps. Mais ça n&#8217;est pas parce que les romans de gare pullulent qu&#8217;on doit jeter ou déprécier toute la littérature.</p>
<p>__________________________</p>
<p><em>La jolie illustration a été subtilisée <a href="http://soisbelleetparle.fr/tag/classement-wikio/" target="_blank">ici</a>.<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/twitter-est-il-pour-tout-le-monde/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Artistes et artisans</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/artistes-et-artisans/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/artistes-et-artisans/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 12:10:23 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[artisanat]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[pragmatique]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=348</guid>
		<description><![CDATA[Il y a de cela quelque temps, un certain Fabien Potencier a commis un fort inspirant article de blog : http://fabien.potencier.org/article/32/developers-should-be-artists (en anglais, désolé pour ceux qui seraient réfractaires à la langue de Shakespeare). Je ne ferai pas un résumé de ce post brillant et édifiant (le premier qui me traite de fayot je le [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-869" style="border: 1px solid black;" title="Art et artisanat" src="http://www.do-as-i-say.com/notes/wp-content/uploads/artisanat.png" alt="Art et artisanat" width="128" height="128" />Il y a de cela quelque temps, un certain Fabien Potencier a commis un fort inspirant article de blog : <a href="http://fabien.potencier.org/article/32/developers-should-be-artists" target="_blank">http://fabien.potencier.org/article/32/developers-should-be-artists</a> (en anglais, désolé pour ceux qui seraient réfractaires à la langue de Shakespeare). Je ne ferai pas un résumé de ce post brillant et édifiant (le premier qui me traite de fayot je le vire), zavez qu&#8217;à le lire.</p>
<p><span id="more-348"></span></p>
<p>Disons que mon point est le suivant : dans le développement d&#8217;applications, comme dans tous les métiers où il y a une part de &laquo;&nbsp;création&nbsp;&raquo; — ou disons de <em>poïesis,</em> pour se la jouer à la Aristote —, règne une sorte de flou, entretenu en général inconsciemment par les acteurs de ces métiers, sur le statut de ceux qui &laquo;&nbsp;produisent&nbsp;&raquo;.</p>
<p>Tantôt ils sont traités comme de simples <em>exécutants, </em>tantôt comme plus, voire bien plus, que cela, et on a conscience de leur rôle de créateur au sens large, voire d&#8217;artiste ; on retrouve par exemple clairement cette séparation  en graphisme, où on distingue la <em>créa </em>de l&#8217;<em>exé</em>.<br />
Ne parlons pas de susceptibilités individuelles plus ou moins mal placées qui s&#8217;additionnent à ces considérations, ça nous évitera d&#8217;y passer la nuit. Nommons en revanche tout de suite (mieux) le couple qui fonde cette histoire : <strong>l&#8217;art et l&#8217;artisanat.</strong></p>
<p>Pour une fois, le français est plus près de l&#8217;ambiguïté intrinsèque du réel que l&#8217;anglais, qui sépare très violemment, dans un geste presque germanique, <em>art</em> et <em>craftwork</em>, sans qu&#8217;on entende un quelconque lien de famille entre les deux — et en plaçant clairement le second du côté du travail.</p>
<p>En français, les deux mots sont très proches ; ils portent assez bien toute la problématique dans son non-dit, ou son peu-dit. Il y a d&#8217;un côté l&#8217;artiste, de l&#8217;autre l&#8217;artisan. Bien évidemment, rien n&#8217;empêche l&#8217;artisan d&#8217;agir par moments comme un artiste, ni l&#8217;artiste de mettre de temps à autres un costume d&#8217;artisan (c&#8217;est même fréquent, spécialement dans les arts dits plastiques). Mais socialement, la distinction est capitale.</p>
<p>Sans rentrer dans des considérations sociologico-historiques interminables, et sans faire du Norbert Elias à la petite semaine, notons que le concept d&#8217;<em>artiste</em> n&#8217;existe pas vraiment chez nous autres occidentaux avant l&#8217;époque romantique, disons à la hache le début du XIXème siècle. Il y a évidemment (l&#8217;histoire réelle ne marche pas avec des dates couperets toute simples et bien découpées) des précursions, pour inventer un mot, dans les siècles qui précèdent (il suffit de penser à Dürer ou Poussin), mais globalement, avant le XIXème siècle, la <strong>conscience d&#8217;agir comme artiste</strong><em> </em>n&#8217;existe pas.</p>
<p>Aucun des maîtres qu&#8217;on reconnait actuellement ne se serait défini comme <em>artiste</em>, ou aurait dit que son &laquo;&nbsp;métier&nbsp;&raquo; était d&#8217;être artiste. Ce qu&#8217;ils faisaient était certes un métier, mais pas très valorisé, et dépendant de mécènes de niveaux divers, et en tous les cas, de <em>commandes</em>. Car c&#8217;est le fond de la question : c&#8217;est bien d&#8217;être un artiste, peu importe ce que cela veut dire, mais il faut comme dirait l&#8217;autre mettre du beurre dans les épinards.</p>
<h3>L&#8217;œuvre sur commande</h3>
<p>Sauf à être rentier, donc, avant l&#8217;époque moderne, celui qui œuvre dans un domaine qu&#8217;on dirait aujourd&#8217;hui artistique (musicien, peintre, sculpteur&#8230;) travaille sur commande. Michel-Ange et ses potes dans la chapelle Sixtine, Mozart pour toutes ses œuvres (pas seulement son Requiem, à peine commencé), tous exécutent une <em>commande</em>, se font payer (plus ou moins bien, à 365 jours fin de mois parfois), et pour aussi inspirés et géniaux qu&#8217;ils soient, sont à peine mieux considérés que des valets de chambre dans l&#8217;échelle sociale, et il ne leur vient pas à l&#8217;esprit de peindre ou composer hors de ce cadre.</p>
<p>Même si je force un poil le trait, et s&#8217;il n&#8217;est pas du tout question de dire que ce qui a été produit dans ce contexte ne peut pas être parfois de l&#8217;ordre du chef-d&#8217;œuvre, ce qui importe c&#8217;est la conscience de soi qu&#8217;ont ces gaillards. Si le larron Mozart a des  tourments existentiels, jamais il ne prend la pose d&#8217;un &laquo;&nbsp;artiste&nbsp;&raquo;, encore moins incompris ou malheureux.<br />
Cette <em>posture </em>n&#8217;éclot qu&#8217;au siècle suivant, avec entre autres des allemands (tiens donc) comme Beethoven, et surtout Schubert. Dans le Massin, il est dit que Schubert est le premier musicien à écrire symptomatiquement &laquo;&nbsp;pour lui&nbsp;&raquo;. L&#8217;histoire dit qu&#8217;il commença un opéra (<em>Le comte de Gleichen</em>), sans commande et que, bien que la partition en cours soit refusée par la censure, il le termina, affirmant ainsi une individualité et une incarnation de la création comme telle, hors de tout métier.</p>
<p>Si historiquement ça n&#8217;est peut-être pas complètement exact, le geste est tout de même fondateur, et signe d&#8217;un virage : celui de l&#8217;apparition d&#8217;une conscience d&#8217;<em>être-artiste</em>, qui n&#8217;a pas à souffrir les contingences pécuniaires d&#8217;un mécène plus ou moins cultivé, et doit s&#8217;exprimer quoiqu&#8217;il advienne, car elle procède d&#8217;une nécessité qui transcende le trivial et le quotidien.</p>
<p>D&#8217;où le personnage de <em>l&#8217;artiste maudit</em>, pauvre slash malade slash méconnu-de-son-vivant, emblématique de ce nouveau <em>type</em> social.<br />
Difficile d&#8217;imaginer qu&#8217;il pourrait exister un &laquo;&nbsp;artisan maudit&nbsp;&raquo;&#8230; Dans notre partition, l&#8217;artisan c&#8217;est l&#8217;exécutant, le technicien, le laborieux, qui répète des gestes appris, parfois jusqu&#8217;à un certain degré de beauté, mais jamais hors de l&#8217;immanence du travail. En tant qu&#8217;artiste, en revanche, on se doit d&#8217;être affranchi de ces contraintes.</p>
<p>Je ne m&#8217;attarderai pas non plus aujourd&#8217;hui sur l&#8217;évolution historique et culturelle qui a voulu qu&#8217;on institutionnalise et qu&#8217;on étatise l&#8217;art, et qui contribue à une sorte, sinon de perversion, du moins de torsion assez ambivalente de concept, ça sera peut-être pour une autre fois.</p>
<p>Toujours est-il, pour en revenir au sujet de départ, qu&#8217;il est de toute évidence difficile, voire impossible car antinomique, de concilier art et métier, c&#8217;est-à-dire art et artisanat.<br />
Non pas, une fois encore, que les deux ne se mélangent pas via de nombreux points de contact, mais parce que le pragmatique va toujours très rapidement supplanter le poïétique, pour des raisons simples qu&#8217;on déplorera peut-être mais qui veulent que votre patron, sauf exception étrange, ne vous paiera pas pour faire de l&#8217;art.</p>
<p>Et quand bien même il le ferait, au fond, cela invaliderait d&#8217;emblée votre &laquo;&nbsp;œuvre&nbsp;&raquo;, parce que d&#8217;une certaine manière, pour que l&#8217;art soit art, il ne faut pas que cela soit payé et que, pour céder à la formule facile, on ne fait pas d&#8217;art <em>à la commande</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/artistes-et-artisans/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter expliqué à ma maman</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 09:29:59 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[2. Des trucs expliqués à ma maman]]></category>
		<category><![CDATA[kamoulox]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=787</guid>
		<description><![CDATA[
Comme je ne suis pas mécontent du début de la série consacrée à Symfony et à ma chère mère, et qu&#8217;il ne se passe pas une semaine, que dis-je, un jour sans qu&#8217;ici et là, y compris au bureau, la question d&#8217;expliquer Twitter ne vienne sur le tapis, jme suis dit comme ça, en mon [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-797 alignleft" style="border: 1px solid black;" title="Oops" src="http://www.do-as-i-say.com/notes/wp-content/uploads/twitter_whale.png" alt="Oops" width="128" height="128" /></p>
<p>Comme je ne suis pas mécontent du début de la <a href="http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/" target="_blank">série consacrée à Symfony</a> et à ma chère mère, et qu&#8217;il ne se passe pas une semaine, que dis-je, un jour sans qu&#8217;ici et là, y compris au bureau, la question d&#8217;<em>expliquer Twitter</em> ne vienne sur le tapis, jme suis dit comme ça, en mon for intérieur où je me parle beaucoup (en me tutoyant, ce qui parfois me laisse perplexe), que j&#8217;avais bien matière à noircir quelques <em>div </em>de considérations puissantes et péremptoires sur le sujet.<br />
<span id="more-787"></span></p>
<p>Entendons-nous bien : en octobre 2009, il n&#8217;est plus question de prétendre <em>faire découvrir </em>Twitter, la fréquence d&#8217;évocation du site de gazouilling étant à peu près quotidienne sur tous les médias, y compris les plus grand public, nul doute qu&#8217;à ce jour à peu près tout le monde sait que Twitter existe, du moins toute personne qui a un rapport fréquent à notre ami l&#8217;internet. Mais bon, tout le monde <em>sait</em> aussi que e=mc<sup>2</sup>, ça ne veut pas dire que chacun sache expliquer vraiment ce que ça signifie pour autant (et je vous rassure, à part traduire les signes e, m, c, et le petit deux en l&#8217;air, je n&#8217;en sais pas des masses plus).</p>
<p>Après une comparaison aussi pertinente, négocions le virage pour revenir au milieu du chemin (encore trois métaphores de ce type et je suis le nouveau Heidegger).<br />
On pourra aligner les &laquo;&nbsp;définitions&nbsp;&raquo; qui circulent ça et là ( &laquo;&nbsp;site de mini-messages&nbsp;&raquo;, &laquo;&nbsp;service de micro-blogging&nbsp;&raquo;&#8230;), on n&#8217;aura éclairé personne qui ne sait déjà ce que c&#8217;est. Et c&#8217;est un premier indice de la spécificité de ce qu&#8217;on appellera <em>la chose Twitter</em> : il est d&#8217;une part impossible de la définir entre trois mots, et pire, il est d&#8217;autre part quasi-impossible d&#8217;expliquer &laquo;&nbsp;à quoi ça sert&nbsp;&raquo; à quelqu&#8217;un qui ne connait pas, qui n&#8217;a pas <em>fait son expérience</em> de Twitter.</p>
<p>C&#8217;est là le drame. Et en même temps le sublime (mais oui, rien que ça — si vous pratiquez un peu ce blog, vous aurez pu remarquer que je n&#8217;ai pas peur d&#8217;<em>élever le débat</em> comme on <em>élève son verre</em>, ou pas loin). Allez, lâchons les chiens de la formule qui tue :</p>
<blockquote><p>Expliquer Twitter à quelqu&#8217;un qui ne l&#8217;a jamais utilisé, c&#8217;est comme expliquer les couleurs à un aveugle.</p></blockquote>
<p>On pourrait, on devrait, même aller plus loin : non seulement il faut l&#8217;avoir déjà utilisé, mais il faut <em>être rentré dedans</em>, comme on rentre dans un livre un peu rebutant. Ça prend du temps, et la probabilité qu&#8217;on abandonne dans les premières heures ou les premiers jours est très élevée.<br />
Dans le cas de Twitter, le &laquo;&nbsp;verdict&nbsp;&raquo; est au choix : &laquo;&nbsp;Twitter, c&#8217;est nul, c&#8217;est juste MSN en moins bien&nbsp;&raquo;,  &laquo;&nbsp;Twitter, c&#8217;est chiant, c&#8217;est pas ça qui va me faire quitter Facebook&nbsp;&raquo;, ou autre &laquo;&nbsp;Dans Twitter c&#8217;est vraiment débile cette limitation à 140 caractères&nbsp;&raquo;.</p>
<h3>Twitter, ça ne sert à rien</h3>
<p>Tiens, parlons-en, des 140 caractères. L&#8217;explication historique, pour ceux qui auraient dormi ces trois dernières années, est que l&#8217;une des premières contraintes auto-imposée par les créateurs de Twitter était d&#8217;envoyer et de recevoir les messages, les <em>tweets</em>, aussi par SMS. D&#8217;ailleurs ça a marché partiellement au départ en france, en 2007 et jusque début 2008 et votre serviteur s&#8217;était pas mal amusé à bricoler quelques bots psychopathes qui pouvaient lui envoyer des SMS intéressants, notamment sur l&#8217;état du trafic RATP. Mais c&#8217;est un autre sujet.<br />
Ces considérations autobiographiques de haute volée mises à part, je vois mal qui aurait en 2006 parié trois carambars sur l&#8217;avenir d&#8217;un service Internet contraignant ses utilisateurs à &laquo;&nbsp;s&#8217;exprimer&nbsp;&raquo; avec une limitation de caractères, qui plus est assez vite atteinte. A l&#8217;heure où le bit se négocie au milliard de kilos comme un vulgaire poste à l&#8217;EPAD, quelle hérésie&#8230; Eh bien non seulement ça a marché, mais ça a permis de montrer, s&#8217;il en était besoin, qu&#8217;abondance de caractères nuit parfois, et qu&#8217;au fond, si on a quelque chose à dire, on peut toujours le dire plus simplement. Ou sinon, c&#8217;est qu&#8217;on se trompe de medium.</p>
<p>Cette contrainte génétique est une chose ; elle n&#8217;explique pas pour autant en quoi définir Twitter est un exercice particulier, ni en quoi comprendre et surtout expérimenter l&#8217;intérêt de Twitter prend du temps.<br />
La raison principale est simple : <strong>Twitter, en tant que tel, ça ne fait rien</strong>. Même si on peut accéder en pur spectateur à une partie des &laquo;&nbsp;messages&nbsp;&raquo; mondiaux, le cœur de Twitter n&#8217;est pas un site mais un service (au sens informatique), dont le rôle se borne, pour résumer, à permettre aux gens de s&#8217;inscrire, de poster des messages ou <em>tweets</em>, de &laquo;&nbsp;suivre&nbsp;&raquo; d&#8217;autres utilisateurs et d&#8217;être suivis (l&#8217;un ne nécessitant pas l&#8217;autre), le principe étant de regrouper et de visualiser en un seul &laquo;&nbsp;fil de message&nbsp;&raquo; tous les <em>tweets </em>des utilisateurs qu&#8217;on suit.<br />
Comme ça, je vous l&#8217;accorde, ça a l&#8217;air et trivial et pas très intéressant.<br />
C&#8217;est parce que <strong>tout reste à faire</strong> : une fois inscrit, il faut suivre des utilisateurs (un certain nombre d&#8217;entre eux vous suivra en retour, surtout si vous commencez à poster des messages). Lesquels ? Ben justement, tout est là : ça dépend de ce que vous recherchez. La difficulté étant que d&#8217;une part rien n&#8217;oblige à savoir exactement ce qu&#8217;on cherche (bah oué, c&#8217;est la vie, quoi), et que d&#8217;autre part, on peut chercher plusieurs sortes de choses.</p>
<h3>Twitter, ça sert à tout</h3>
<p>Voilà l&#8217;essence de la <em>chose Twitter</em>, qui traduit la difficulté qu&#8217;on aura toujours à l&#8217;expliquer : <strong>Twitter, ça sert à ce qu&#8217;on en fait.</strong> Encore faut-il donc s&#8217;y mettre activement, définir et inventer ses usages — qui peuvent être mêlés, et changer au fil du temps, ce qui concourt à la complexité de compréhension de la bête. Utiliser passivement Twitter, c&#8217;est vraiment s&#8217;embêter avec un remplaçant de lecteur de flux RSS peu performant .</p>
<p>Twitter, ça peut servir, dans l&#8217;ordre et le désordre, de manière absolument pas exclusive et parfois complémentaire, à :</p>
<ul>
<li>faire de la veille, en suivant des gens qui postent beaucoup de liens, et/ou des flux RSS repostés</li>
<li>discuter de manière plus ou moins impromptue et décousue avec des gens qu&#8217;on connait</li>
<li>discuter de manière plus ou moins impromptue avec des gens qu&#8217;on ne connait pas, voire les rencontrer ensuite dans la vraie vie</li>
<li>raconter sa vie, qu&#8217;il s&#8217;agisse de détails insignifiants ou d&#8217;épisodes cruciaux</li>
<li>promouvoir des choses qu&#8217;on aime, des sites intéressants, des services et pourquoi pas des choses qu&#8217;on vend</li>
<li>taper sur des choses qu&#8217;on n&#8217;aime pas, râler sur la RATP ou la SNCF</li>
<li>faire des recherches sur ce qui se dit sur tous les sujets imaginables</li>
<li>suivre en direct des émissions de télé palpitantes (ou du moins les commentaires avisés qu&#8217;en font les partisans ou les détracteurs)</li>
<li>participer à des sortes de cadavres exquis ou le multilinguisme le dispute à la variété des sujets</li>
<li>jouer au kamoulox</li>
<li>savoir quel temps il fait à Dunkerque ou New-York&#8230;</li>
</ul>
<p>Et ce qui est vraiment très bien, et intellectuellement excitant, c&#8217;est que ça peut être tout ça, un peu de ça, d&#8217;autre chose, dépendre des jours, dépendre du vent, de votre humeur et de ce qui se passe dans le monde. Bien sûr, cet aspect polymorphe demande une certaine <strong>disponibilité</strong>, en termes de temps et de présence d&#8217;esprit au sens strict.<br />
Il y a peu d&#8217;intérêt à venir sur Twitter (quelle que soit la façon dont on consulte son flux) une fois par mois, tout se passe vite, parfois dans l&#8217;immédiateté et la fugacité, ce qui n&#8217;équivaut pas nécessairement à de l&#8217;inutilité.<br />
Mais on peut aussi laisser filer un, deux, dix jours, et revenir comme un fleur sans que ça soit rédhibitoire ; ça n&#8217;est ni un blog, ni un forum, ni irc, ni msn, ni facebook, ni la pierre philosophale, et pourtant éventuellement un peu de tout ça en même temps.</p>
<p>En résumé, Twitter, comme Internet à sa façon, ne peut être défini et surtout expliqué en une phrase, parce qu&#8217;il y a autant d&#8217;usages de Twitter que d&#8217;utilisateurs.</p>
<p>Le nerf de la guerre, c&#8217;est le choix des gens qu&#8217;on va suivre ; une bonne méthode, c&#8217;est d&#8217;y aller à la pelle au départ, de regarder qui suit qui, qui &laquo;&nbsp;répond&nbsp;&raquo; à qui (avec le signe magique @), et de <em>désuivre</em> rapidement, surtout dans les premières semaines. Comme pas mal de choses, la suite se fait&#8230; en se faisant, et le résultat ne sera pas forcément celui qu&#8217;on avait prévu.<br />
En tout cas, pour peu qu&#8217;on fasse quelques efforts (mais c&#8217;est peut-être là une exigence trop forte), l&#8217;inhabituel et la surprise sont vite au rendez-vous ; le banal et le quotidien aussi, mais il ne faudrait pas non plus demander à la réalité d&#8217;être immédiatement plus géniale que les gens qui la font. Et rien n&#8217;oblige personne à utiliser Twitter, encore moins à suivre des utilisateurs prétentieux ou analphabètes (et je vous le donne en mille : ça fourmille).</p>
<p>Une autre fois, on détaillera peut-être les us et coutumes qui régissent plus ou moins la twittosphère, comme on dit.</p>
<p>______________________________________</p>
<p>Si le sujet vous intéresse, il continue ici : <a href="http://www.do-as-i-say.com/notes/2009/10/twitter-est-il-pour-tout-le-monde/" target="_self"><strong>Twitter est-il pour tout le monde ?</strong></a><br />
______________________________________</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/twitter-explique-a-ma-maman/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>L&#8217;informatique et bibi, 1ère partie</title>
		<link>http://www.do-as-i-say.com/notes/2009/10/linformatique-et-bibi-1ere-partie/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/10/linformatique-et-bibi-1ere-partie/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 11:31:25 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[alice]]></category>
		<category><![CDATA[amstrad]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[informatique]]></category>
		<category><![CDATA[micral]]></category>
		<category><![CDATA[turbo pascal]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=302</guid>
		<description><![CDATA[
Je suis né l&#8217;année que l&#8217;on désigne comme celle du début de la micro-informatique, en raison de la commercialisation du premier micro-ordinateur, le Micral , machine vendue toute assemblée et basée sur le micro-processeur 8008 d&#8217;Intel. Mais malgré cet augure, et quoique j&#8217;aimerais bien me la raconter en clamant que j&#8217;ai touché un clavier avant [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-322" style="border: 1px solid black;" title="print a$" src="http://www.do-as-i-say.com/notes/wp-content/uploads/cpc6128.png" alt="print a$" width="128" height="128" /></p>
<p>Je suis né l&#8217;année que l&#8217;on désigne comme celle du début de la micro-informatique, en raison de la commercialisation du premier micro-ordinateur, le Micral , machine vendue toute assemblée et basée sur le micro-processeur 8008 d&#8217;Intel. Mais malgré cet augure, et quoique j&#8217;aimerais bien me la raconter en clamant que j&#8217;ai touché un clavier avant de savoir marcher, mes premiers contacts avec les ordinateurs n&#8217;ont eu lieu qu&#8217;une dizaine d&#8217;années plus tard.</p>
<p><span id="more-302"></span> Sans bien savoir pourquoi exactement, je me souviens avoir à l&#8217;époque souvent rêvé d&#8217;Alice. Nan, pas la blonde transparente qui accourt quand on fait &laquo;&nbsp;ouh ouh&nbsp;&raquo;. Alice, un superbe ordinateur 8 bits à 1 Mhz, <a href="http://www.mo5.com/musee/fiche.php?id=alice" target="_blank">tout rouge</a>, avec 4 Ko de RAM, dont les boîtes et manuels étaient ornés de <a href="http://mo5.com/commun/images/ordinateurs/matrahachette/boite_alice32.jpg" target="_blank">dessins de Moëbius</a>, rien que ça.<br />
Malgré ces premières geekeries oniriques, ça n&#8217;est pas un produit Matra-Hachette qui m&#8217;a initié à l&#8217;informatique mais le clavier QWERTYUIOP grisâtre d&#8217;un Amstrad CPC 6128, au moment où par ailleurs (bien sûr je l&#8217;ignorais) Microsoft sortait la version 1.0 d&#8217;un certain OS à fenêtres.<br />
Le CPC 6128, son Basic intégré de chez Locomotive Software avec les dollars après les noms de variable, l&#8217;éditeur ligne à ligne, les listings de programmes d&#8217;Amstrad Magazine tapés au mépris de mon avenir oculaire et, entre autres, Macadam Bumper et Jet Set Willy. Comme <a href="http://www.bouletcorp.com/blog/index.php?date=20041009" target="_blank">Boulet</a>, on avait avec mes frangins fait une carte détaillée de toutes les pièces, mais on n&#8217;a jamais réussi à ramasser suffisamment de verres pour ne pas nous faire rembarrer par Maria . Saleté.<br />
Côté programmation, mon premier chef-d&#8217;œuvre a dû ressembler à un truc comme ça :</p>
<pre>10 CLS:MODE 1
20 INPUT "QUEL EST TON NOM :",A$
30 CLS
40 PRINT "BONJOUR ",A$
50 END</pre>
<p>Ça s&#8217;améliora au fil des mois, bien sûr, et le Turbo Pascal succéda au Basic. Maintenant que j&#8217;y pense, j&#8217;avais aussi écrit en Basic un programme de boîtes aux lettres (à la mode Minitel, on disait &laquo;&nbsp;BAL&nbsp;&raquo;, pas encore &laquo;&nbsp;mail&nbsp;&raquo;), qui permettait de créer un compte et d&#8217;envoyer des messages à d&#8217;autres utilisateurs. Messages sauvegardés sur une disquette 3 pouces double face de 178 Ko, of course. Bé ouaip.<br />
Torride&#8230; à condition d&#8217;avoir la bonne disquette sous le coude, évidemment. Les RFC <a href="http://www.normes-internet.com/normes.php?rfc=rfc821" target="_blank">821</a> et <a href="http://www.normes-internet.com/normes.php?rfc=rfc1939" target="_blank">1939</a> m&#8217;auraient été d&#8217;un grand secours mais, comment dire, on n&#8217;avait pas encore internet à la maison. Et pour cause. Le web n&#8217;existait même pas, ou était tout juste en train d&#8217;être conçu par Caillau et Berners-Lee.</p>
<p>Fin 80-début 90, donc, bien qu&#8217;en section littéraire, j&#8217;avais pris l&#8217;option informatique au lycée. On travaillait sur des PC sous DOS &#8211; probablement la version 4 &#8211; avec des <a href="http://www.do-as-i-say.com/notes/2009/08/spec-de-comptoir/" target="_blank">disquettes 5 pouces 1/4</a>, et c&#8217;était encore du Turbo Pascal. Évidemment, toujours pas d&#8217;internet ou de web, il faudra attendre encore quelques années pour que ça arrive en France. Pas de Windows non plus, la version 3.1 sortira l&#8217;année suivant mon Bac, et je ne la découvrirai que lorsque j&#8217;aurai à saisir mon mémoire de maîtrise sous Word 6 (livré sur sa demi-douzaine de disquettes).<br />
<img class="size-full wp-image-306 alignright" style="border: 1px solid black;" title="Sans déc', ça marche" src="http://www.do-as-i-say.com/notes/wp-content/uploads/dactylogiciel.png" alt="Sans déc', ça marche" width="100" height="100" />On est alors en 1995, et le PC 486SX2 de mes parents (la dernière génération avant le Pentium) surmonté de son écran 14 pouces encaisse surtout des heures de Démineur. Mais c&#8217;est quand même sur ce clavier que j&#8217;apprends à me défaire des habitudes du QWERTY et à taper à plus de trois doigts, grâce à Dactylogiciel 3 de chez Micro Application (mais si, ça marche).<br />
A l&#8217;époque, j&#8217;ai un peu laissé tomber la programmation. Si j&#8217;ai bien abordé le Prolog en Licence de Logique, ça n&#8217;a pas dépassé les salles de cours et les carnets de notes. L&#8217;arrivée de la première connexion internet changerera la donne.</p>
<p><strong>&#8230;Tou bi continioude</strong> (suspens insoutenable)</p>
<p><em>Dans le prochain épisode, on découvrira comment avec une applet java et 100Ko de javascript on peut en 1998 écrire un crawler utilisé pour faire de la recherche full-text dans les pages HTML d&#8217;un site&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/10/linformatique-et-bibi-1ere-partie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Si à 50 ans t&#8217;as pas écouté du Mahler, t&#8217;as raté ta vie</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/si-a-50-ans-tas-pas-ecoute-du-mahler/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/si-a-50-ans-tas-pas-ecoute-du-mahler/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 12:45:21 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[3. Sagesse et parts de flan]]></category>
		<category><![CDATA[mahler]]></category>
		<category><![CDATA[mélodie]]></category>
		<category><![CDATA[musique]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=663</guid>
		<description><![CDATA[
Une fois n&#8217;est pas coutume, on ne parlera ici ni de frèmeouorque, ni de design pattern, ni de champ lexical. L&#8217;un de mes nombreux vices, au-delà de la bière, des tournures improbables et de l&#8217;affèterie syntaxique, consiste en un rapport viscéral avec musique.
Pas uniquement classique, mais pour aujourd&#8217;hui, ça sera le sujet — encore que [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-686" style="border: 1px solid black;" title="Mahler en pleine action" src="http://www.do-as-i-say.com/notes/wp-content/uploads/mahler.jpg" alt="Mahler en pleine action" width="128" height="128" /></p>
<p>Une fois n&#8217;est pas coutume, on ne parlera ici ni de <a href="/notes/2009/08/framework-symfony-explique-a-ma-maman-1/">frèmeouorque</a>, ni de design pattern, ni de champ lexical. L&#8217;un de mes nombreux vices, au-delà de la bière, des tournures improbables et de l&#8217;affèterie syntaxique, consiste en un rapport viscéral avec musique.</p>
<p>Pas uniquement classique, mais pour aujourd&#8217;hui, ça sera le sujet — encore que je doute de parler d&#8217;électro ou de minimale allemande sur ces pages un jour, mais bon, on ne sait jamais.</p>
<p><span id="more-663"></span></p>
<p>Comme j&#8217;aime bien aussi, outre l&#8217;affèterie, les sentences définitives, voilà ce par quoi je vais commencer : dans l&#8217;histoire de la musique classique (rien que ça), il y a trois gars qui font l&#8217;entrée, le plat de résistance et le dessert, ce sont respectivement Bach, Mozart, et Mahler. La métaphore culinaire étant un peu molle comme de la gelée, disons plutôt qu&#8217;ils font l&#8217;aube, la journée et le crépuscule — tout de suite ça claque bien mieux.</p>
<p>Je ne vous ferai pas aujourd&#8217;hui de chapitre sur Bach ou Mozart, ce que vous aurez compris vu le titre. Disons pour faire <span style="text-decoration: line-through;">extrêmement</span> atrocement schématique que le premier est la charnière entre le baroque et le classique, qui s&#8217;articule d&#8217;un point de vue (un poil) technique autour de l&#8217;avènement du <em>tempérament égal</em>, que le second déploie en réalisant la synthèse du galant et du savant, comme on dit — synthèse qui, comme de juste en dialectique, dépasse les deux. Et puis bien sûr, pour parler quand même d&#8217;un épisode interne pas inintéressant, il y a Beethoven, qui en torturant maladroitement un style assez héroïque, nettoie la place pour le romantisme qu&#8217;il porte un peu comme un alien en lui (je suis content de pas être prof de musico, soudain). Ainsi que d&#8217;autres grands malades au XIXème siècle, malheureux (Schubert), fous (Schumman) ou mégalos (Wagner), qui entament une réelle sape de l&#8217;édifice classique.</p>
<p>Et au bout de tout ça il y a Gustav Mahler. Pour tenter une analogie qui ne jettera pas forcément beaucoup plus de clarté mais que j&#8217;aime bien, disons que Mahler est à la musique classique ce qu&#8217;Heidegger est à la philosophie moderne : une déconstruction par l&#8217;intérieur après laquelle, du point de vue historique, il faut faire autre chose.</p>
<h2>La fin de la musique</h2>
<p>Bien sûr, l&#8217;Histoire ça ne marche pas comme ça, et il y a toujours des gens qui continuent à faire de la philosophie comme du temps de Descartes ou Spinoza (en pire, par exemple des individus dont le nom commence par Comte et se termine par Sponville).<br />
De même il y a toujours des gens qui continuent à faire de la musique comme du temps de Mozart (en pire, par exemple des individus dont le nom commence par André et se termine par Rieu), comme il y a et y aura toujours des peintres du dimanche faisant des natures mortes ou immortalisant leurs chatons.<br />
Qui plus est, les &laquo;&nbsp;tournants&nbsp;&raquo; de l&#8217;Histoire dont je parle ne sont en fait pas des moments univoques et homogènes, et ils engendrent des conséquences multiples et sèment dans différentes directions. Il serait assez naïf de dire qu&#8217;après Heidegger il n&#8217;y a plus de problème de l&#8217;être, ou qu&#8217;après Mahler il n&#8217;y a plus de tonalité.</p>
<p>Toujours est-il que Mahler est l&#8217;<strong>aboutissement de la musique classique</strong>, autrement dit ce en quoi il fallait qu&#8217;elle se résolve, et en quoi elle dit son <em>dernier mot</em>. Au sens hégélien, c&#8217;est la fin (la <em>finalité</em>, quoi) de l&#8217;Histoire.<br />
Symptomatique en est le fait d&#8217;une musique quasi-exclusivement destinée à l&#8217;orchestre accompagné de voix, dans une tension vers une formation épuisant l&#8217;intégralité des instruments possibles.<br />
Symptomatique également sa première conséquence,  l&#8217;utilisation de la <em>symphonie</em>, genre englobant dont la forme se disloque (le nombre de mouvements montant jusqu&#8217;à 6) et le format explose (jusqu&#8217;à 200 musiciens)&#8230;</p>
<p>Mais Mahler n&#8217;est pas un simple Berlioz, et le gigantisme finit par être anecdotique, spécialement dans les dernières œuvres. Sans faire d&#8217;exégèse détaillée, on ne peut nier un côté souvent excessif, très beethovénien ou wagnérien, dans la première moitié des symphonies (et la huitième bien entendu). On comprend sans mal l&#8217;accueil fait par nos délicates oreilles françaises au début du XXème siècle, et le jugement sans appel de Debussy sur la 2ème symphonie ( &laquo;&nbsp;<em>Le goût français n’admettra jamais ces géants pneumatiques à d’autre honneur que de servir de réclame à Bibendum</em>&nbsp;&raquo; ).<br />
Le jeune Mahler, qui comme tout le monde est aussi le fils de son temps, commence par tomber dans la prétention post-romantique de la musique à programme. Mais plus il réalise son acte, i.e. plus il avance dans son exécution (pas plus il en prend conscience, car il en prend forcément peu conscience), plus tous les éléments de la déconstruction s&#8217;affinent et se solidifient.</p>
<h2>L&#8217;implosion de la mélodie et de la tonalité</h2>
<p>En premier lieu, un <strong>coup porté à la mélodie</strong>, qui achève — au sens où on achève un mourant — le mouvement lancé par Mozart. Plus rien de galant dans ces thèmes à plusieurs têtes, ces intervalles qui dépassent l&#8217;octave, ces brusques sauts harmoniques à répétition. Et pourtant, l&#8217;ensemble est toujours fluide, l&#8217;orchestration rééquilibrant systématiquement les cassures.</p>
<p>On a dit ça et là que Mahler est le premier compositeur de musique de film.  Si ça n&#8217;est pas forcément pour lui faire un compliment, et si on n&#8217;a pas à l&#8217;esprit que l&#8217;Adagietto de la 5ème utilisé par Visconti, il faut reconnaître qu&#8217;il utilise l&#8217;orchestre sur un mode pictural où les thèmes sont le plus souvent partagés et noyés dans plusieurs couches de la formation : soit dans un océan de cordes, soit dans une foule hétérogène qui fait plus penser à un marché populaire qu&#8217;à un parterre d&#8217;opéra. Et c&#8217;est aussi une dimension de la transformation de la mélodie, qui quitte parfois complètement la ligne claire d&#8217;un ou plusieurs instruments pour se trouver dans la respiration macroscopique de plusieurs minutes d&#8217;affilée où l&#8217;on ne trouve parfois que quelques notes.</p>
<p>La fin de la 9ème symphonie en est l&#8217;illustration parfaite :</p>
<p style="text-align: center;"><a href="http://www.do-as-i-say.com/notes/wp-content/uploads/Mahler-9-a.png" target="_blank"><img class="size-full wp-image-762 aligncenter" style="border: 1px solid black;" title="Dernier mouvement de la 9ème Mahler – 1" src="http://www.do-as-i-say.com/notes/wp-content/uploads/Mahler-9-a.png" alt="Dernier mouvement de la 9ème Mahler – 1" width="609" height="232" /></a></p>
<p style="text-align: left;">Jugez donc. Une fin qui dure plus de quatre minutes au bas mot (les deux dernières lignes insérées ici en prennent presque deux). Un decrescendo qui emmène jusqu&#8217;à pianissississimo (quatre <em>p</em>, quoi), où seules les cordes échangent, de manière de plus en plus espacée, quatre notes (fa, sol, la bémol, si bémol). La respiration ralentit. Il ne reste plus qu&#8217;un fa en suspension.</p>
<p style="text-align: center;"><a href="http://www.do-as-i-say.com/notes/wp-content/uploads/Mahler-9-b.png" target="_blank"><img class="size-full wp-image-763 aligncenter" style="border: 1px solid black;" title="Dernier mouvement de la 9ème Mahler – 2" src="http://www.do-as-i-say.com/notes/wp-content/uploads/Mahler-9-b.png" alt="Dernier mouvement de la 9ème Mahler – 2" width="590" height="188" /></a></p>
<p style="text-align: left;">Et une seule indication, &laquo;&nbsp;<em>Ersterbend</em>&nbsp;&raquo; : &laquo;&nbsp;En mourant&nbsp;&raquo;. Difficile de symboliser plus littéralement la fin de la musique classique, même si le final du <em>Chant de la Terre</em> peut également être vu comme jouant ce rôle, pour d&#8217;autres raisons, à commencer par les paroles.</p>
<p>En second lieu, l&#8217;un n&#8217;allant pas sans l&#8217;autre, on assiste chez Mahler à l&#8217;<strong>érosion de la tonalité</strong>. Dès ses premières œuvres, les dissonances s&#8217;installent et ne sont pas résolues ou filent vers une autre dissonance, et la tonalité au sens où on l&#8217;entend dans la musique classique s&#8217;estompe. Non qu&#8217;il soit le premier, du simple point de vue de la datation, à changer fréquemment de tonalité ou à flirter avec l&#8217;atonalité (car on peut déjà se référer à Lizst), il n&#8217;est peut-être même pas celui qui va le plus loin, mais ainsi va l&#8217;Histoire.<br />
Il met en revanche sur partition exactement l&#8217;expression de la façon dont le classique épuise ses possibilités modales et doit se transformer en autre chose, avec une nécessité qui exsude à chaque mesure, à la fois trop à l&#8217;étroit donc poussant vers une mue, et dans le même temps exactement à l&#8217;aise et à sa place, dans une sorte de réconciliation des tensions, comme après une bataille psychique qui serait enfin terminée.</p>
<p>Osons une (superbe) formule :<strong> Mahler, c&#8217;est Beethoven après thérapie.</strong> Plus besoin de taper 30 fois dominante/tonique en fin de mouvement (ok, Mahler fait ça aussi dans la 3ème, qui n&#8217;est pas la plus fine). Plus besoin de se référer à une tonalité ou à ses relatives, elles sont toutes là. Pour en revenir à la 9ème, notons qu&#8217;elle commence en ré majeur, et finit en ré bémol majeur, dans une sorte de glissement de terrain imperceptible qui transforme la couleur d&#8217;ensemble.<br />
Mais à la différence de ce qui deviendra l&#8217;atonalité en tant que telle, Mahler reste un tonal. S&#8217;il dissout et nie en un sens la tonalité, il ne l&#8217;oublie pas. Négation ne signifie pas absence — car il faut bien quelque chose à nier&#8230;<br />
Le pas suivant de l&#8217;Histoire de la musique est donc en toute logique l&#8217;assomption de cette absence (par Schönberg et Berg, entre autres), de ce vidage de la tonalité, longuement écopée par Mahler. On rentre alors dans la musique &laquo;&nbsp;moderne&nbsp;&raquo;, le stade classique a touché son but et fini son déploiement.</p>
<p>En d&#8217;autres termes, la musique de Mahler conclut le classique. Mais cette conclusion porte en elle les retournements et les suites possibles. Pas étonnant de la part de quelqu&#8217;un qui disait &laquo;&nbsp;la tradition c&#8217;est de la paresse ou de la négligence&nbsp;&raquo;, même si finalement c&#8217;est la destination de la tradition de s&#8217;annuler elle-même et d&#8217;engendrer des nouvelles traditions. En quoi la paresse n&#8217;est pas de connaître ou de suivre la tradition, mais de le faire sans le savoir et de s&#8217;y tenir. Évidemment, encore faut-il avoir quelque chose à dire.</p>
<p><em>Au risque de me répéter, en ce qui concerne la 9ème, la version de Boulez (avec l&#8217;orchestre symphonique de San Fransisco, 1998, Deutsche Grammophon) est exceptionnellement juste, je vous la recommande chaudement. Celle de Bernstein (chez Deutsche Gramophon également, mais attention, l&#8217;enregistrement avec le philarmonique de New-York, pas celui de Berlin) ne démérite pas non plus. Evitez Abaddo, il est très bien sur les opéras de Mozart, beaucoup moins bien avec Mahler.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/si-a-50-ans-tas-pas-ecoute-du-mahler/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Symfony expliqué à ma maman, 3ème partie : le découplage</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 09:53:19 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[2. Des trucs expliqués à ma maman]]></category>
		<category><![CDATA[découplage]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[principe]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=624</guid>
		<description><![CDATA[Alors que j&#8217;avais presque fini l&#8217;épisode sur le MVC, j&#8217;en suis venu à réaliser qu&#8217;il manquait une étape. Un concept capital dans toutes nos histoires de framework, de boîte à outils et de méthodologie. Je ne vous fait pas languir plus longtemps : il porte le nom de découplage.
Pour une fois, le champ lexical auquel [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-632" style="border: 1px solid black;" title="Une prise verte. Dingue." src="http://www.do-as-i-say.com/notes/wp-content/uploads/prise_electrique-150x150.jpg" alt="Une prise verte. Dingue." width="128" height="128" />Alors que j&#8217;avais presque fini l&#8217;épisode sur le MVC, j&#8217;en suis venu à réaliser qu&#8217;il manquait une étape. Un concept capital dans toutes nos histoires de framework, de boîte à outils et de méthodologie. Je ne vous fait pas languir plus longtemps : il porte le nom de <strong>découplage</strong>.</p>
<p>Pour une fois, le champ lexical auquel le concept est emprunté n&#8217;est pas celui du BTP, même si on n&#8217;en est pas loin : c&#8217;est celui de l&#8217;électricité. Découpler y signifie supprimer le couplage entre deux circuits (ok, on est proche de la lapalissade, mais bon).</p>
<p><span id="more-624"></span></p>
<p>L&#8217;exemple le plus parlant sera celui de la prise électrique. Si on n&#8217;avait pas défini de standard ni  un principe de prises mâles et femelles, on vivrait dans un monde où les appareils électriques ne pourraient être vendus prêts à être branchés, où il faudrait  faire intervenir un électricien pour les raccorder au réseau, et où une fois installés on ne pourrait plus les déplacer ni les brancher ailleurs (sauf à répéter l&#8217;intervention). Assombrissons le tableau, et imaginons que dans ce même monde le réseau électrique n&#8217;aie pas de tension standard, mais distribue du 230 volts ici, 110 là, 3.14 ailleurs, etc. Non seulement il faudrait une manipulation technique pour connecter le grille-pain, mais aussi pour l&#8217;adapter à la tension. Manip&#8217; à répéter à chaque déplacement de la bête&#8230;</p>
<p>Le problème que l&#8217;on aurait dans un tel monde serait celui d&#8217;un très fort <strong>couplage </strong>entre les appareils et le réseau électrique. Inutile de vous faire un dessin pour expliquer à quel point ça ne serait pas commode. Pour rester poli et ne pas dire chiant. Ah mince je l&#8217;ai dit.</p>
<p>En informatique, on s&#8217;est rapidement soucié du couplage, que ce soit du point de vue matériel comme pour les prises électriques en définissant des standards plus ou moins universels (PCI, RS232, USB, firewire&#8230;), ou logiciel (dans les programmes, ou dans les couches inférieures, par exemple le modèle adopté pour l&#8217;interconnexion des réseaux, OSI, mais c&#8217;est un autre sujet).</p>
<p>En ce qui concerne le sujet qui nous intéresse, le développement d&#8217;applications web via les frameworks en général et Symfony en particulier, le découplage est une notion critique.<br />
Elle fonde l&#8217;organisation du framework lui-même, et sous-tend toutes les bonnes pratiques qui vont avec et doivent être appliquées dans le code spécifique à l&#8217;application.</p>
<h2>Interfacer pour mieux découpler</h2>
<p>Pour le formuler autrement, le<strong> découplage consiste en l&#8217;indépendance maximale </strong>de toutes les &laquo;&nbsp;briques&nbsp;&raquo; entre elles. Mais comme ces briques doivent communiquer, leurs <strong>interfaces, c&#8217;est-à-dire leur frontières de communication</strong>, doivent être codifiées.<br />
C&#8217;est pourquoi en électricité on a réduit les nombres de connecteurs et définit des standards. C&#8217;est pourquoi en informatique on a défini des <em>protocoles</em>, autrement dit des règles d&#8217;échange. Car pour permettre le découplage, il faut se concentrer sur l&#8217;endroit — si je puis me permettre — où ça s&#8217;accouple, et l&#8217;abstraire des contingences et des spécificités (amen).</p>
<p><img class="alignright size-full wp-image-649" style="border: 1px solid black;" title="sfToasterPlugin" src="http://www.do-as-i-say.com/notes/wp-content/uploads/grille-pain.jpg" alt="sfToasterPlugin" width="128" height="128" />De la même manière qu&#8217;on ne souhaite pas avoir à changer de grille-pain si on change les prises ou si on déménage, on veut pouvoir faire abstraction, en développant une application web, de la façon dont l&#8217;accès aux données est géré (il nous suffit de savoir qu&#8217;il l&#8217;est), du type de serveur de base de données (on veut idéalement pouvoir utiliser n&#8217;importe lequel). Bref, on veut pouvoir se brancher dessus sans avoir à se demander comment. Aussi simplement qu&#8217;en branchant une prise mâle dans une prise femelle.<br />
D&#8217;une manière générale, les fonctionnalités du framework doivent pouvoir être<strong> utilisées les unes indépendamment des autres</strong>, sans quoi leur mise en œuvre reviendra la plupart du temps à écraser une mouche avec un marteau-piqueur, ou pour rester sur notre champ lexical du jour, à faire construire une maison entière pour pouvoir brancher notre grille-pain.</p>
<p>Cette indépendance des &laquo;&nbsp;éléments&nbsp;&raquo; a un deuxième intérêt, non des moindres : il rend possible l&#8217;évolution ou la réparation des uns sans avoir à intervenir sur les autres.<br />
Dans la vie bien découplée, vous pouvez acheter une cafetière neuve (ouaip, changeons d&#8217;objet électroménager, ça commence à devenir saoulant le grille-pain) sans avoir à refaire toute votre installation électrique, non ?  Et bien si votre code et votre application sont eux aussi <em>correctement découplés </em>vous devez pouvoir modifier, mettons, votre logiciel d&#8217;envoi de mail sans avoir à retoucher à tous les endroits où vous envoyez des mails.</p>
<p>En résumé, si vous voulez briller en société (ou en lan party, encore que..) pensez à caser &laquo;&nbsp;découplage&nbsp;&raquo; au détour d&#8217;une saillie, ça fait toujours son effet. Si vous voulez briller en tests unitaires, c&#8217;est bien aussi, mais ça sera l&#8217;objet d&#8217;un épisode de la saison 2.</p>
<p><em>Dans le prochain épisode, cette fois c&#8217;est juré-craché-si-je-mens-je-vais-à-Denfert, on parlera de MVC…</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/decouplage-symfony-explique-a-ma-maman-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Les ordinateurs sont des êtres humains commes les autres</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/les-ordinateurs-sont-des-etres-humains-commes-les-autres/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/les-ordinateurs-sont-des-etres-humains-commes-les-autres/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 14:37:47 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[altérité]]></category>
		<category><![CDATA[application web]]></category>
		<category><![CDATA[complexité]]></category>
		<category><![CDATA[volonté]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=223</guid>
		<description><![CDATA[Quand vous travaillez dans un domaine qui met en jeu de près ou de loin des ordinateurs au quotidien, vous vivez rapidement des situations où vos amis/collègues/voisins/supérieurs/stagiaires/rayez-les-mentions-inutiles finissent par pousser un râle de désespoir accompagné d&#8217;une question en forme de supplique du type &#171;&#160;Mais pourquoi il fait çaaaa..?&#160;&#187;
&#171;&#160;IL&#160;&#187;, c&#8217;est l&#8217;ordinateur, bien sûr. Tentative ultime de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-527" style="border: 1px solid black;" title="Les machines aussi font n'importe quoi" src="http://www.do-as-i-say.com/notes/wp-content/uploads/robot-150x150.jpg" alt="Les machines aussi font n'importe quoi" width="128" height="128" />Quand vous travaillez dans un domaine qui met en jeu de près ou de loin des ordinateurs au quotidien, vous vivez rapidement des situations où vos amis/collègues/voisins/supérieurs/stagiaires/rayez-les-mentions-inutiles finissent par pousser un râle de désespoir accompagné d&#8217;une question en forme de supplique du type &laquo;&nbsp;<em>Mais pourquoi il fait çaaaa..?</em>&nbsp;&raquo;</p>
<p>&laquo;&nbsp;IL&nbsp;&raquo;, c&#8217;est l&#8217;ordinateur, bien sûr. Tentative ultime de raccrocher à une figure un peu anthropomorphisée ce qui se passe en fait <em>dans</em> la machine, autrement dit les programmes qui font des machins. Parce qu&#8217;évidemment, tout le monde le sait, l&#8217;ordinateur ne <em>fait</em> rien lui-même. Il n&#8217;est ni intelligent, ni bête, il fait ce pour quoi on l&#8217;a programmé.</p>
<p><span id="more-223"></span> Alors pourquoi, pourquoi cette impression si facilement partagée qu&#8217;il y a quand même là-dedans <strong>une sorte de volonté</strong> propre, ou pire, aléatoire (ou encore pire quand vraiment tout va mal, machiavélique)..?</p>
<p>Passons sur notre tendance à l&#8217;anthropomorphisme, assez récurrente, réflexe ancestral face à l&#8217;inconnu et l&#8217;incompris. S&#8217;il n&#8217;y avait que ça, il suffirait de se moquer et ça serait plié. Non non non. Il y a forcément plus.</p>
<p>Ce qu&#8217;il y a, c&#8217;est que les programmes qu&#8217;on utilise ont depuis longtemps dépassé le stade des micro-routines. Ils représentent parfois des millions de ligne de code, et même s&#8217;ils ont été élaborés en suivant les règles de l&#8217;art (respect des bonnes pratiques, design patterns, pizza, <em>versionning </em>des sources, etc), leur niveau de <em>complexité</em> excède grandement nos capacités d&#8217;appréhension en un seul coup d&#8217;œil, pour le dire comme ça.<br />
En d&#8217;autres termes, ils ont franchi le seuil au-delà duquel il n&#8217;est plus possible pour quiconque de savoir ce qui va <strong>exactement</strong> se passer dans tous les cas possibles (notamment parce que ces &laquo;&nbsp;cas&nbsp;&raquo; sont trop nombreux, donc qu&#8217;on peut difficilement assurer qu&#8217;on les a tous envisagés).</p>
<p>Si on veut recourir à une analogie (tu es nouveau ? <a href="/notes/2009/08/le-carreleur-et-le-developpeur/">Cliquette ici</a>), disons que tout programme dépasse rapidement le stade où on peut croire qu&#8217;il est un ensemble fini prévisible, pour devenir un système probabiliste gazeux.</p>
<p>La principale conséquence en est que l&#8217;utilisateur (et même le créateur) n&#8217;est jamais complètement certain de ce qu&#8217;il va faire. Et de quoi est-ce que c&#8217;est la caractéristique, au fond, je vous le donne en mille ? De l&#8217;<strong>altérité</strong>.</p>
<p>L&#8217;autre. Ce truc qui n&#8217;agit pas comme dans ma tête. Bref, sans imaginer bien sûr qu&#8217;il ait une volonté propre, le programme a suffisamment d&#8217; &laquo;&nbsp;indépendance&nbsp;&raquo; pour se comporter comme quelque chose d&#8217;aussi imprévisible qu&#8217;un être humain, et c&#8217;est assez génial (en tout cas à titre personnel je trouve ça exaltant, mais les clients ne partagent pas toujours cet avis, bizarre&#8230;)</p>
<p>D&#8217;où cette belle formule, qui me sert à briller à la cafeteria ou à clore certains débats stériles : oui, les ordinateurs (en fait : les applications) sont des êtres humains comme les autres.</p>
<p>Et c&#8217;est pourquoi <em>bien programmer</em> passe principalement par l&#8217;application de bonnes pratiques qui visent à <strong>réduire au maximum les interstices</strong> où va se fourrer l&#8217;imprévisibilité, et à tester au maximum toutes les éventualités qui peuvent se présenter — ce d&#8217;autant plus que, en face de l&#8217;ordinateur, il y a un utilisateur, qui lui aussi est imprévisible, et qui comme vous l&#8217;aurez appris si vous développez, fera toujours exactement le truc que vous n&#8217;aviez pas prévu.</p>
<p>_________________________________</p>
<p><em>Illustration : Marvin le robot dépressif, dans H2G2 &#8211; </em><em>The Hitchhiker&#8217;s Guide to the Galaxy</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/les-ordinateurs-sont-des-etres-humains-commes-les-autres/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les 10 termes à connaître pour être un bon chef de projet</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/les-10-termes-a-connaitre-pour-etre-un-bon-chef-de-projet/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/les-10-termes-a-connaitre-pour-etre-un-bon-chef-de-projet/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 12:52:59 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[chef de projet]]></category>
		<category><![CDATA[langage]]></category>
		<category><![CDATA[levier]]></category>
		<category><![CDATA[parallélisation]]></category>
		<category><![CDATA[pragmatique]]></category>
		<category><![CDATA[proactivité]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=540</guid>
		<description><![CDATA[Que vous soyez de l&#8217;engeance annonceur ou prestataire, il est vital de posséder un vocabulaire minimal pour pouvoir briller en réunion, spécialement en avant-vente, mais aussi en comité de pilotage, voire au restaurant si vous avez de la chance.
Là où je sévis actuellement, un document interne secret à visée caustique recense ces termes et d&#8217;autres [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-546" style="border: 1px solid black;" title="Tous les tips pour être proactif" src="http://www.do-as-i-say.com/notes/wp-content/uploads/meeting-150x150.png" alt="Vous êtes un winner" width="128" height="128" />Que vous soyez de l&#8217;engeance annonceur ou prestataire, il est vital de posséder un vocabulaire minimal pour pouvoir briller en réunion, spécialement en avant-vente, mais aussi en comité de pilotage, voire au restaurant si vous avez de la chance.</p>
<p>Là où je sévis actuellement, un document interne secret à visée caustique recense ces termes et d&#8217;autres ; la liste qui suit s&#8217;en inspire librement, avec d&#8217;autant moins de scrupules que je suis à l&#8217;origine des deux tiers d&#8217;entre eux.</p>
<p><span id="more-540"></span></p>
<p>- <strong>Levier </strong>: solution en général fictive mais rhétoriquement commode pour faire croire ou se persuader qu&#8217;on a des moyens d&#8217;action. <em>Nous avons identifié les leviers à notre disposition pour raccourcir les délais.</em></p>
<p>- <strong>Paralléliser </strong>: recours ultime lors d&#8217;une négociation de planning, dont le but &#8211; fantasque &#8211; est de diviser linéairement les temps de production par le nombre de ressources affectées. Voir le <a href="/notes/2009/09/le-mythe-de-la-parallelisation/">post consacré au sujet</a>.</p>
<p>- <strong>Pragmatique </strong>(ou sa variante <em>réaliste</em>) : attitude consistant à sacrifier la qualité tout en se défendant de le faire.</p>
<p>- <strong>Proactivité </strong>: technique de management pragmatique consistant à demander au collaborateur de résoudre les problèmes à venir sans les connaître à l&#8217;avance.</p>
<p><img class="size-thumbnail wp-image-552 alignright" style="border: 1px solid black;" title="Bravo, vous avez levé une alerte et décidé de temporiser" src="http://www.do-as-i-say.com/notes/wp-content/uploads/meeting2-150x150.png" alt="Bravo, vous avez levé une alerte orthogonale" width="128" height="128" />- <strong>Proposition<em> </em></strong><em>(force de) </em>: <em>Nous attendons que vous soyez force de proposition</em>. Façon aimable qu&#8217;a le client de demander au prestataire de faire son travail à sa place.</p>
<p>- <strong>Temporiser </strong>: pour le client, indique qu&#8217;il n&#8217;a pas encore pris le temps de trancher les choses dont vous avez absolument besoin pour avancer sur un livrable qu&#8217;il exige pour demain. Pour le prestataire, signifie que les développements qui devaient commencer hier avec trois ressources commenceront la semaine prochaine avec une demie. Doit toujours cependant être utilisé dans une phrase qui laisse penser que tout cela est parfaitement volontaire. <em>Nous avons décidé de temporiser</em>.</p>
<p>- <strong>Tiroir</strong> : dans la vraie vie, élément coulissant d&#8217;un meuble ; dans une proposition commerciale, élément coulissant du devis exigé par le client pour se donner les moyen de faire baisser le montant total. <em>Pouvez-vous  me faire une proposition à tiroirs ?</em> Attention : dans la pratique, le client choisit toujours de conserver des tiroirs qui ne peuvent être réalisés sans ceux qu&#8217;il a retirés.</p>
<p>- <strong>Transverse : </strong>notion à utiliser en biais ; bien commode pour camoufler son ignorance du contenu exact d&#8217;une intervention. <em>Nous avons mobilisé des compétences transverses<strong>. </strong></em></p>
<p>- <strong>Valeur ajoutée : </strong>concept à utiliser sans parcimonie dans tout discours de vérité (voir ci-dessous). <em>Cette fonctionnalité n&#8217;a pas de valeur ajoutée</em>.</p>
<p>- <strong>Vérité<em> </em></strong><em>(discours de)</em> : stratagème circonlocutif, destiné à obscurcir le sens de ce qui est dit sous couvert de transparence (on dit également : <em>&laquo;&nbsp;enfumer&nbsp;&raquo;</em>). Fonctionne également comme prétérition, pour tenter de rester poli : <em>je vais te tenir un discours de vérité, ton code c&#8217;est vraiment de la merde.</em></p>
<p>Bien entendu, toute ressemblance avec des phrases ayant été prononcées dans la vraie vie serait étonnamment fortuite, etc, pardon aux familles tout ça.</p>
<p>__________________________</p>
<p><em>Superbes illustrations trouvées fortuitement chez Getty Images.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/les-10-termes-a-connaitre-pour-etre-un-bon-chef-de-projet/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Symfony expliqué à ma maman, 2ème partie : les design patterns</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 14:36:32 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[2. Des trucs expliqués à ma maman]]></category>
		<category><![CDATA[antipatterns]]></category>
		<category><![CDATA[complexité]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=354</guid>
		<description><![CDATA[
Résumé de l&#8217;épisode précédent : un framework, c&#8217;est une boîte à outils, des briques de base, et une méthodologie pour développer mieux, plus vite, et de manière plus sûre (un peu comme ça, quoi). Mais si ça peut fortement aider, ça n&#8217;est pas magique, et ça demande de suivre les principes du framework lui-même.
Une partie [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-491 alignleft" style="border: 1px solid black;" title="Prendre la quatrième à gauche et tourner à droite après la fontaine" src="http://www.do-as-i-say.com/notes/wp-content/uploads/design_pattern-150x150.jpg" alt="Prendre la quatrième à gauche et tourner à droite après la fontaine" width="128" height="128" /></p>
<p><em>Résumé de l&#8217;<a href="/notes/2009/08/framework-symfony-explique-a-ma-maman-1/">épisode précédent</a> : un </em><em>framework, c&#8217;est une boîte à outils, des briques de base, et une méthodologie pour développer mieux, plus vite, et de manière plus sûre (un peu <a title="Plus dur, meilleur, plus rapide, plus fort" href="http://jiwa.fr/track/La-Pompe-Moderne-101321/Plus-dur-meilleur-plus-rapide-plus-fort-159007/Plus-dur-meilleur-plus-rapide-plus-fort-1207858.html" target="_blank">comme ça, quoi</a>). Mais si ça peut fortement aider, ça n&#8217;est pas magique, et ça demande de suivre les principes du framework lui-même.</em></p>
<p>Une partie des principes méthodologiques qui va avec un framework est  couramment regroupée sous le nom de <em><strong>design patterns</strong></em>. Une fois encore, on s&#8217;abstiendra de traduire l&#8217;expression (la version française préconisée étant <em>patrons de conception</em>, et ça sonne un peu Bergère de France&#8230;)</p>
<p><span id="more-354"></span></p>
<p>Pour faire court (dans un premier temps), disons qu&#8217;<strong>un design pattern est une façon de résoudre un problème type.</strong> Il ne s&#8217;agit donc pas d&#8217;une solution en tant que telle, mais plutôt d&#8217;une recette, c&#8217;est-à-dire la description d&#8217;une manière d&#8217;opérer face à un certain type de problème.</p>
<p>Historiquement, la théorisation des design patterns fait beaucoup référence, et c&#8217;est une <a href="/notes/2009/08/le-carreleur-et-le-developpeur/">chose qui ne nous étonnera pas</a>, au domaine de l&#8217;architecture, de l&#8217;urbanisme et de la construction, notamment suite au travaux de <a href="http://fr.wikipedia.org/wiki/Christopher_Alexander" target="_blank">Christopher Alexander</a> dans les années 70.<br />
Constatant que la conception en architecture en particulier, mais aussi en ingénierie en général, conduisait à affronter des problèmes récurrents (isolation, solidité des structures, communication entre l&#8217;intérieur et l&#8217;extérieur&#8230;) il abstrait des archétypes destinés à couvrir tous ces aspects.</p>
<p>Un <em>pattern</em> est ainsi à comprendre comme un <strong>&laquo;&nbsp;modèle&nbsp;&raquo; éprouvé reliant une solution à un problème dans un certain contexte</strong>.</p>
<p>Tout problème de conception, dirait Alexander, met en jeu un seul individu face à une immensité. Ce problème contient un certain nombre de variables qui, combinées en sous-ensembles, représentent un nombre de cas débordant rapidement les capacités limitées de son cerveau.<br />
D&#8217;où l&#8217;intérêt de diviser et de hiérarchiser ces sous-ensembles pour les étudier à part, et recourir à ce qu&#8217;on pourrait nommer le bon sens collectif de l&#8217;histoire (capitaliser sur les solutions qui ont prouvé qu&#8217;elles marchaient).<br />
Dès ses premiers travaux Alexander met l&#8217;accent sur la nécessité de comprendre les rapports entre les parties et le tout, et de savoir comment s&#8217;y prendre pour traiter ce tout. Ce que nous avons appelé dans l&#8217;épisode précédent <strong><em>faire face à la complexité</em></strong>.</p>
<h3>De l&#8217;urbanisme à la POO</h3>
<p>En 1995, les quatre mousquetaires du pattern, le bien nommé &laquo;&nbsp;Gang Of Four&nbsp;&raquo;, s&#8217;inspirent d&#8217;une partie de ces travaux et transposent la méthode dans la programmation orientée objet. Comme Alexander, même si la démarche est, disons, moins empreinte d&#8217;une sourde angoisse métaphysique quant à l&#8217;appréhension de l&#8217;infini, leur but est de proposer des outils conceptuels pour gérer la complexité, en l&#8217;occurrence, posée par certains problèmes récurrents en programmation.<br />
Ils sont issus des bonnes trouvailles et des bonnes pratiques de générations de développeurs et dispensent ainsi, comme on dit souvent, de réinventer le fil à couper la roue.</p>
<p>J&#8217;avais commencé un paragraphe complet donnant un exemple (en choisissant le pattern <em>bridge</em>, un modèle assez &laquo;&nbsp;simple&nbsp;&raquo;), et j&#8217;ai renoncé, car on ne peut pas en dire grand chose sans évoquer la programmation orientée objet, que ma chère maman n&#8217;est pas censée connaître, donc qui déborde le cadre de cette page.<br />
Je tâcherai de présenter en revanche dans un épisode prochain le <strong>MVC</strong>, un design pattern assez connu — qui est en fait, pour être rigoureux, une combinaison de patterns. Retenons juste ceci en attendant, et au risque de me répéter : il ne s&#8217;agit pas de classes ou de bouts de programme, mais de façons de structurer son modèle de données, son architecture, son application, et ultimement son code (quelque soit le langage objet).</p>
<p>En guise de conclusion, et pour s&#8217;éloigner définitivement d&#8217;Alexander, signalons qu&#8217;on parle aussi de temps en temps du négatif des patterns, les <strong>antipatterns</strong>.</p>
<p>Comme leur nom l&#8217;indique, il s&#8217;agit des façons de faire qui sont exactement ce qu&#8217;il faut éviter. On regroupe sous ce nom des pratiques hétérogènes aux noms parfois sympatoches, comme <em>la coulée de lave</em> (mise en production d&#8217;un code non stabilisé qui de fait devient de moins en moins modifiable, se &laquo;&nbsp;solidifiant&nbsp;&raquo; comme de la lave), <em>l&#8217;ancre de bateau</em> (code conservé pour des raisons &laquo;&nbsp;politiques&nbsp;&raquo;, pour ne pas fâcher un développeur et/ou en se disant qu&#8217;il servira plus tard&#8230;), ou <em>l&#8217;objet divin</em> (méthode ou fonction servant à trop de choses, et dont on finit par ne plus trop savoir comment elle marche).<br />
Elles sont évidemment, presque autant que les autres, utiles au développeur — qui aura toujours au début de son existence mis en œuvre, même à son corps défendant, au moins l&#8217;un d&#8217;eux, sinon presque tous.</p>
<p><em>Dans le prochain épisode, cette fois, on parlera de MVC&#8230;</em></p>
<p>___________________________________</p>
<p><em>Image du Schéma empruntée ici : <a href="http://www.simonwhatley.co.uk/coldfusion-and-design-patterns" target="_blank">http://www.simonwhatley.co.uk/coldfusion-and-design-patterns</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/design-patterns-symfony-explique-a-ma-maman-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Le mythe de la parallélisation</title>
		<link>http://www.do-as-i-say.com/notes/2009/09/le-mythe-de-la-parallelisation/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/09/le-mythe-de-la-parallelisation/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 08:36:40 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[analogie]]></category>
		<category><![CDATA[application web]]></category>
		<category><![CDATA[jour-homme]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[parallélisation]]></category>
		<category><![CDATA[réalité]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=394</guid>
		<description><![CDATA[Le monde du travail et du service est depuis des temps immémoriaux divisé en deux catégories distinctes,  structurantes mais non exclusives : les clients et les prestataires. Dans la pub, et souvent le web par extension, on dit les annonceurs et les agences, et ça revient à peu près au même.
Quand vous faites partie [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-442" style="border: 1px solid black;" title="Les parallèles ça peut se croiser" src="http://www.do-as-i-say.com/notes/wp-content/uploads/courbure-150x150.jpg" alt="Les parallèles ça peut se croiser" width="128" height="128" />Le monde du travail et du service est depuis des temps immémoriaux divisé en deux catégories distinctes,  structurantes mais non exclusives : les <em>clients</em> et les <em>prestataires</em>. Dans la pub, et souvent le web par extension, on dit les <em>annonceurs</em> et les <em>agences</em>, et ça revient à peu près au même.</p>
<p>Quand vous faites partie du second groupe, ou quand vous travaillez dans le développement d&#8217;applications, vous apprenez rapidement qu&#8217;il existe, au-delà de l&#8217;heure, du jour, de la semaine, une unité de mesure capitale : le <strong>jour-homme. </strong></p>
<p><strong><span id="more-394"></span></strong></p>
<p>Je me dis depuis quelque temps qu&#8217;on pourrait même entériner un nouveau mot : le &laquo;&nbsp;jourhomme&nbsp;&raquo;, que la réforme de l&#8217;ortografe transformerait en &laquo;&nbsp;jourome&nbsp;&raquo;, et ça serait sympa. Sans parler bien sûr du <em>jourfemme </em>qui devra exister impérativement. Mais je m&#8217;égare.</p>
<p>Comme son nom l&#8217;indique presque, le jour-homme correspond au travail d&#8217;une personne pendant une journée. Ca fait beaucoup rire nos amis anglo-saxons de nous voir utiliser une telle mesure qui passe sous silence toute discussion éventuelle sur la valeur du référent&#8230; Il nous faut alors leur expliquer  que par chez nous, la durée &laquo;&nbsp;officielle&nbsp;&raquo; d&#8217;une journée de travail est de 8 heures, même s&#8217;il s&#8217;agit en fait d&#8217;une durée admise comme standard &#8211; avec toutes les élasticités bien commodes que ça implique, et qui permettent de faire au besoin rentrer deux &laquo;&nbsp;jours&nbsp;&raquo; en une journée (ben oui, il suffit de travailler de 8h à minuit, fastoche).</p>
<p>Quand on estime une charge de travail, on la chiffre donc en jours-homme.<br />
En général, on colle ça après dans un calendrier (avec ou sans l&#8217;aide de certains logiciels pas lourds du tout dont le nom commence par &laquo;&nbsp;pro&nbsp;&raquo; et se termine par &laquo;&nbsp;ject&nbsp;&raquo;), et ça nous donne un planning, autrement dit une représentation dans le temps de la vie des vraies gens, week-end et autres jours chômés inutiles pris en compte.<br />
Il est étonnant de remarquer à quelle vitesse on finit à force de faire cet exercice par penser en multiples de 5, et par assimiler 1 mois au chiffre 20 (ce qui est par ailleurs souvent inexact, mais bon, à la louchasse, c&#8217;est ça). On met en général plus de temps à intégrer comme un réflexe le calcul inconscient de marges de sécurité conséquentes (de 20 à 50%).</p>
<p>Toujours est-il qu&#8217;à l&#8217;arrivée, on présente au client un planning, dans lequel il ne regarde en général qu&#8217;une seule date, celle de la <em>livraison. </em>C&#8217;est le moment où il fait des grands yeux, voire devient livide, voire s&#8217;énerve, voire tout ça en même temps ou dans un ordre aléatoire.</p>
<p>Mais, tenez-vous bien, <em>ça n&#8217;est pas grave</em>. Pourquoi ? Tout simplement parce qu&#8217;on va pouvoir <strong>optimiser</strong> le planning. Et c&#8217;est quoi la solution magique pour <em>optimiser le planning</em> ?</p>
<p>Oui, vous avez trouvé : <strong>la parallélisation</strong>.</p>
<p>La parallélisation, c&#8217;est cette bonne idée qui consiste à dire qu&#8217;on va mettre plusieurs gars sur le coup (ou filles, hein, enfin si seulement on en avait dans l&#8217;équipe de développement), et que paf par magie ça va linéairement diviser le temps de production par le nombre de ressources affectées. En gros (si vous êtes un peu malcomprenant), s&#8217;il y a 60 jours-homme, en mettant deux développeurs, ça va être fait en 30 jours.</p>
<p>Jusque là, je n&#8217;aurais presque rien à dire. C&#8217;est presque vrai, c&#8217;est même presque malin, voire presque réaliste. Sauf que vous connaissez les gens : il leur en faut toujours plus (les coquins). Donc vas-y que jte mets 4 développeurs et c&#8217;est <span style="text-decoration: line-through;">torché</span> fait en 15 jours ! Vous voyez venir l&#8217;écueil (enfin, j&#8217;espère, c&#8217;est pas faute d&#8217;être lourdement didactique) : tant qu&#8217;on y est, mettons 60 développeurs, et ce soir c&#8217;est plié.</p>
<p>Sans parler de l&#8217;incongruité en termes d&#8217;écosystème (essayez de regrouper 60 développeurs et vous comprendrez), on a évidemment oublié un détail dans cette équation, trois fois rien, un mot innocent : <strong>la ré-a-li-té.</strong></p>
<p>Eh oui. <em>Dans la réalité</em>, répartir la charge induit très vite des &laquo;&nbsp;coûts&nbsp;&raquo; collatéraux, notamment en coordination du travail. S&#8217;il est souvent envisageable de séparer les tâches en plusieurs lots, il n&#8217;est pas dit qu&#8217;ils puissent être, d&#8217;un point de vue logique, tous réalisés en parallèle.</p>
<p>C&#8217;est chiant, la réalité, ça marche pas toujours comme les maths ; par exemple, un lapin plus un lapin, pour peu qu&#8217;ils soient de sexe différent, ça a vite des chances de faire plus de deux lapins. Vous me direz : ah mais il s&#8217;est passé quelque chose.  Mais justement, ce qui est caractéristique de la réalité, c&#8217;est qu&#8217;il s&#8217;y <em>passe des choses</em>, et qu&#8217;il y a des <em>contraintes </em>qu&#8217;on ne peut pas réduire, même si on est très bon en maths.</p>
<p>J&#8217;aime bien recourir à une image qui fait en général son petit effet. Elle n&#8217;est pas de moi, je crois l&#8217;avoir trouvée quelque part dans un machin imprimé, un livre, là, mais je ne retrouve pas la référence, et Google est curieusement un peu muet sur le sujet. En la sortant au bon moment, le résultat est garanti :</p>
<blockquote><p>Si on met 9 femmes enceintes en parallèle, on n&#8217;aura pas un enfant en 1 mois.</p></blockquote>
<p>Si vous <a href="/notes/2009/08/le-carreleur-et-le-developpeur/">faites bien vos devoirs</a>, vous ne devez toutefois pas prendre cette superbe saillie pour argent comptant, et <strong>questionner l&#8217;analogie</strong> (n&#8217;est-ce pas). En d&#8217;autres termes, demander si développer une application, c&#8217;est comme faire un bébé (je vous passerai toutes les bonnes blagues auxquelles ça peut me faire penser, sinon on va y passer l&#8217;hiver).</p>
<p>Soyons prudent sans faire de la langue de bois : oui, il y a dans les processus de développement des <em>étapes</em>, qui ne peuvent que s&#8217;enchaîner et donc pas avoir lieu en même temps. Il faut pour cette raison ne pas hésiter à affirmer que :</p>
<ul>
<li>le temps nécessaire n&#8217;est pas linéairement divisible par le nombre de ressources affectées ;</li>
<li>l&#8217;augmentation du nombre de ressources accroit de manière exponentielle les tâches de coordination, et tend pour cette raison très  rapidement à annuler le gain de temps nominal (voire à l&#8217;inverser, c&#8217;est-à-dire à faire perdre plus de temps qu&#8217;on en gagne).</li>
</ul>
<p>Selon les métiers et les projets, le point de la courbe où la tendance s&#8217;inverse est plus ou moins vite atteint, mais d&#8217;expérience on constate qu&#8217;il l&#8217;est toujours plus vite que ce qui serait nécessaire pour satisfaire des plannings irréalistes. Et le plus difficile, c&#8217;est de le faire comprendre aux &laquo;&nbsp;décideurs&nbsp;&raquo; (car les coupables ne sont pas toujours les clients, si si&#8230;)</p>
<p>D&#8217;où les 9 femmes. Ça n&#8217;est pas magique, mais ça peut avoir son poids dans une argumentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/09/le-mythe-de-la-parallelisation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Spéc de comptoir</title>
		<link>http://www.do-as-i-say.com/notes/2009/08/spec-de-comptoir/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/08/spec-de-comptoir/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 06:56:48 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[bistrot]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[disquette]]></category>
		<category><![CDATA[spécifications]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=316</guid>
		<description><![CDATA[Cette année on fête les 30 ans de l&#8217;invention du CD. Au précédent anniversaire, je me souviens que la plupart des commentateurs avait comme de juste évoqué l&#8217;anecdote (légende ?) qui voudrait que Karajan lui-même ait insisté pour qu&#8217;on augmente la durée du support, de 60 minutes dans son premier prototype, à 74 minutes, pour [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-326" style="border: 1px solid black;" title="Une serviette, une disquette" src="http://www.do-as-i-say.com/notes/wp-content/uploads/serviettedetable.jpg" alt="Une serviette, une disquette" width="128" height="128" />Cette année on fête les 30 ans de l&#8217;invention du CD. Au précédent anniversaire, je me souviens que la plupart des commentateurs avait comme de juste évoqué l&#8217;anecdote (légende ?) qui voudrait que Karajan lui-même ait insisté pour qu&#8217;on augmente la durée du support, de 60 minutes dans son premier prototype, à 74 minutes, pour que sa version de la neuvième de Beethoven, qu&#8217;il faisait jouer particulièrement lentement, puisse tenir en un seul CD .</p>
<p><span id="more-316"></span> Il aurait alors fallu agrandir légèrement l&#8217;objet, de 115 mm de diamètre aux 120 actuels. Mais comme au pays des légendes on ne peut jamais s&#8217;endormir tranquille après une bonne bière et une bonne histoire, une explication concurrente (probablement fantaisiste, n&#8217;ayons pas peur de le dire) voudrait que cette taille soit en fait celle des dessous de verre à bière standard des Pays-Bas.</p>
<p>Fantaisie ou pas, ça ne serait pas la première fois qu&#8217;un objet du quotidien sert de base arbitraire à une décision engageant ensuite tout un secteur.<br />
Dans un genre proche des verres à bière, et probablement plus crédible, on raconte que les disquettes 5 pouces 1/4 (que certains, y compris moi, ont connu ; c&#8217;était il n&#8217;y a pas si longtemps encore, sales jeunes) devaient leur taille à un autre objet célèbre dans les bars et restaurants. Si si.</p>
<p>Voilà l&#8217;histoire : alors que les disquettes 8 pouces, le premier standard de l&#8217;histoire, commençaient à encombrer franchement les utilisateurs (20 centimètres de large, pas simple à ranger dans son sac à main, jvous raconte pas), les laboratoires Wang demandèrent à l&#8217;un des associés du créateur de ladite disquette de travailler à un modèle plus réduit.<br />
Lui :  &laquo;&nbsp;quelle taille elle doit faire ?&nbsp;&raquo;<br />
Eux : <em> (en montrant une serviette de table)</em> &laquo;&nbsp;oh, genre ça&nbsp;&raquo;.<br />
(Je sais, j&#8217;ai un grand talent de conteur).<br />
Il n&#8217;en aurait pas fallu plus pour que les disquettes, pendant près de 20 ans, fassent 5 pouces 1/4 . La taille d&#8217;une serviette de table.<br />
On raconte également que le successeur, la disquette 3 pouces 1/2, fut conçue de façon à tenir dans une poche de chemisette américaine standard. Je n&#8217;ose pas imaginer ce qu&#8217;on pourrait trouver comme légende pour l&#8217;invention de la clef USB&#8230; Rhem.</p>
<p>Ainsi en va-t-il souvent des spécifications (<em>voix caverneuse</em>). Il n&#8217;est pas toujours question de nombre d&#8217;or ou de grands desseins galactiques mais, comme dans les meilleures traditions de création littéraire, c&#8217;est souvent au bistrot que ça commence.<br />
C&#8217;est souvent là que ça finit aussi, mais c&#8217;est une autre histoire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/08/spec-de-comptoir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfony expliqué à ma maman, 1ère partie : qu&#8217;est-ce qu&#8217;un framework ?</title>
		<link>http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 06:59:00 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[2. Des trucs expliqués à ma maman]]></category>
		<category><![CDATA[complexité]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[grammaire]]></category>
		<category><![CDATA[langage]]></category>
		<category><![CDATA[méthodologie]]></category>
		<category><![CDATA[orthographe]]></category>
		<category><![CDATA[pensée]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=103</guid>
		<description><![CDATA[A mes heures pas perdues je travaille dans l&#8217;agence qui est à l&#8217;origine d&#8217;une fort belle chose : un framework PHP 5 qui jouit d&#8217;une assez bonne presse, ce qui n&#8217;est pas complètement un hasard parce qu&#8217;il est vraiment très bien.
Ce framework porte le nom de Symfony, pour des raisons expliquées ici. Jusque là, fastoche. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-205" style="border: 1px solid black;" title="Maman je t'aime" src="http://www.do-as-i-say.com/notes/wp-content/uploads/symfony_me-150x150.png" alt="Maman je t'aime" width="128" height="128" />A mes heures pas perdues je travaille dans l&#8217;<a href="http://www.sensiolabs.com" target="_blank">agence</a> qui est à l&#8217;origine d&#8217;une fort belle chose : un framework PHP 5 qui jouit d&#8217;une assez bonne presse, ce qui n&#8217;est pas complètement un hasard parce qu&#8217;il est vraiment très bien.</p>
<p>Ce framework porte le nom de<a href="http://www.symfony-project.org" target="_blank"> Symfony</a>, pour des raisons expliquées <a href="http://www.symfony-project.org/book/1_2/01-Introducing-Symfony#chapter_01_sub_who_made_symfony_and_why" target="_blank">ici</a>. Jusque là, fastoche. C&#8217;est ensuite que ça se complique. Déjà, rien que le premier mot : <em>framework</em>. Littéralement, cadre ou structure ; dans la programmation en général, on le traduit plus précisément par &laquo;&nbsp;cadre d&#8217;applications&nbsp;&raquo;. Enfin, on le tradui<em>rait</em>, parce qu&#8217;on ne le fait jamais, on dit toujours <em>frèmeouorque</em>. A compter de cette phrase, je dirai d&#8217;ailleurs &laquo;&nbsp;framework&nbsp;&raquo; sans autre forme de procès, et même sans italiques (je suis comme ça, jsuis un gueudin).</p>
<p><span id="more-103"></span></p>
<p>Pour commencer, donc, qu&#8217;est-ce qu&#8217;un framework ? S&#8217;il y avait une réponse simple, on se passerait de ces lignes. La difficulté majeure tient à ce qu&#8217;il y a en fait dans la définition deux dimensions principales, complémentaires mais en partie indépendantes : <strong>un framework c&#8217;est à la fois une boîte à outils et une méthodologie. </strong>Ou, si on n&#8217;a pas peur des envolées lyriques : une boîte à outils fournie avec une philosophie.</p>
<h3>Une boîte à outils</h3>
<p>On a l&#8217;habitude de comparer  un framework à un ensemble des &laquo;&nbsp;briques&nbsp;&raquo; toutes faites qu&#8217;on peut utiliser pour son application .<br />
Si l&#8217;analogie n&#8217;est pas trop mauvaise, elle est insuffisante, parce qu&#8217;un framework c&#8217;est plus que ça. Cela dit, l&#8217;image de &laquo;&nbsp;brique&nbsp;&raquo; convient assez bien à ce qui circule çà et là sous le nom de <em>composants </em>(et d&#8217;ailleurs, le monde est bien fait, car certaines parties de Symfony sont justement mises à disposition comme composants : <a href="http://components.symfony-project.org" target="_blank">http://components.symfony-project.org</a> ; dingue, hein ?)</p>
<p>Mais revenons à l&#8217;analogie de départ, même si elle est un peu faible ; elle  dit qu&#8217;<strong>un framework est à un développeur ce qu&#8217;une boîte à outils est à un bricoleur</strong>.</p>
<p>Sous plusieurs aspects, un framework peut effectivement fonctionner comme une boîte à outils, en ce sens qu&#8217;il propose, dans le cas de Symfony du moins, un certain nombre de <em>trucs </em>pour faciliter le travail, l&#8217;accélérer, voire automatiser tout ou partie des tâches qu&#8217;on rencontre lors du développement d&#8217;une application web. C&#8217;est le côté <strong>work</strong> du framework, si l&#8217;on veut.<br />
Enfoncer un clou, à la main, c&#8217;est douloureux et très long ; avec une pierre, moins douloureux, mais pas très précis. Avec un marteau, l&#8217;outil est assez optimal &#8211; même s&#8217;il ne dispense toutefois pas de taper. En plus, ce marteau a été testé industriellement, donc a de bonnes garanties de solidité .</p>
<p>Dans le développement web, on ne plante pas des clous, mais il y a des tâches équivalentes qui sont répétitives, peu gratifiantes, et d&#8217;autant plus sujettes à erreur qu&#8217;elles sont répétitives et peu gratifiantes : construction de bases de données à partir de leur schéma, import de données de test, initialisation d&#8217;interfaces d&#8217;administration, exécution de tests, gestion du cache, des urls&#8230;</p>
<p>Pour tout ça, le framework offre marteaux et tournevis, voire dans certains cas pistolets à clous. Ces &laquo;&nbsp;utilitaires&nbsp;&raquo;,  testés et mis à l&#8217;épreuve du feu par de nombreux développeurs, ont bénéficié de leurs retours d&#8217;expérience, leur efficacité et stabilité sont assurées par ce processus. Mais pas plus qu&#8217;un marteau ils ne dispensent pas de taper. Vous pouvez vous procurer une belle boîte à outils, ça ne fixera pas pour autant vos étagères au mur &#8230;</p>
<p>A un niveau un peu plus complexe, le framework (du moins Symfony) favorise  l&#8217;intégration en deux coups de cuiller à pot de <strong><em>plug-ins</em></strong>, qui sont un peu comme les briques évoquées plus haut. Il en existe un grand nombre, pour des fonctionnalités plus ou moins évoluées (authentification, gestion de médias, de contenu&#8230;). On dépasse là le cadre de la &laquo;&nbsp;boîte à outils&nbsp;&raquo;, et on est plutôt sur des objets de base qui font gagner du temps. C&#8217;est comme acheter des planches déjà découpées plutôt que de les scier soi-même. Mais ces objets conviennent rarement tels quels . Il faut les adapter à ses besoins. Par exemple peindre ses planches de la couleur qui va bien, choisir combien on en pose, à quelle distance les unes des autres&#8230;</p>
<p>Point crucial : dans le cas du framework, l&#8217;adaptation sera grandement facilitée par la <em>méthodologie</em> qui doit avoir été respectée par les créateurs des plug-ins. C&#8217;est-à-dire : <em>si </em>elle a été respectée.</p>
<p>Ce qui nous fait une transition toute trouvée pour le second aspect, non des moindres, de la définition d&#8217;un framework : en plus d&#8217;être une boîte à outils, un framework, c&#8217;est une façon de travailler.</p>
<h3>Une méthodologie</h3>
<p>Pour tenter une analogie, disons qu&#8217;<strong>un framework est à la programmation ce que grammaire et orthographe sont à la pensée</strong>.</p>
<p>On quitte là le champ lexical du bricolage pour celui de la linguistique, ou plutôt de l&#8217;apprentissage du langage . Glissement qui semble tout indiqué, puisqu&#8217;on parle de <em>langage</em> de programmation. Si on fouille un peu, on verra même que la nécessité de changer de champ répond en fait à une exigence interne, dictée par le caractère spécial des  langages artificiels : un croisement génétique, pour ainsi dire, entre de la logique (qui se veut mécanique et déterministe) et de la pensée (qui reste inductive et poétique par nature, mais c&#8217;est une autre histoire).</p>
<p>Filons la métaphore.<strong> </strong>Quand on se met à programmer, on apprend une syntaxe, des fonctions, des mots-clés&#8230; ; bref, une sorte de grammaire et de dictionnaire .<br />
Mais connaître par cœur l&#8217;intégral de la phpdoc ou autre n&#8217;a jamais fait un bon développeur, pas plus que réciter le Bescherelle n&#8217;a fait un grand auteur.</p>
<p>C&#8217;est là que, tel un cavalier qui surgit hors de la nuit (mince, ça y est maintenant j&#8217;ai la musique de Zorro dans la tête), intervient le framework. Il joue un rôle à la croisée de la rhétorique, de la littérature et de la logique :</p>
<ul>
<li> il énonce des conventions d&#8217;écriture et d&#8217;organisation destinées à rendre plus efficace, en homogénéisant et clarifiant</li>
<li>il s&#8217;inspire des bonnes pratiques déjà existantes, notamment en termes de style </li>
<li>il structure et favorise la discipline du code produit, et son indépendance à l&#8217;égard de toute solution logicielle ou matérielle.</li>
</ul>
<p>En gros, il joue son rôle de &laquo;&nbsp;cadre&nbsp;&raquo; et de structure. C&#8217;est le côté <strong>frame<strong> </strong> </strong>du framework : il <strong>contraint</strong> à un certain nombre de choses, mais pour mieux <strong>libérer</strong> le processus intellectuel, en particulier en l&#8217;affranchissant des routines chronophages, et en aidant, par la clarté exigée, à faire face à l&#8217;augmentation de la <em>complexité </em>.</p>
<p>Si tout développeur qui connait un tant soit peu un langage (PHP en particulier, qui est plus facile d&#8217;accès que d&#8217;autres) est capable, même en tâtonnant, de mettre au point une application plus ou moins évoluée, l&#8217;expérience montre toutefois que son degré d&#8217;instabilité croît alors exponentiellement à la mesure de sa complexité, et que son code a tendance à devenir incompréhensible (et donc instable, indébuggable, non maintenable, etc&#8230;)</p>
<p>Pour<strong> faire face à la complexité</strong>, il faut être équipé de certains outils, intellectuels cette fois. Un framework a pour but de fournir de tels outils facilitant la modélisation des objets, de leurs relations, et des solutions aux problèmes posés. Il est à la fois une extension du vocabulaire du développeur et un perfectionnement de ses capacités grammaticales.<br />
Du moins, il <strong>peut </strong>l&#8217;être. Car comme le marteau ne tape pas tout seul, le framework ne pense à la place de personne. Pire, comme un marteau, mal utilisé, il peut faire mal. Et s&#8217;il tend à structurer, il n&#8217;oblige ultimement personne à suivre sa méthodologie ; s&#8217;il peut aider à discipliner, il ne remplace pas l&#8217;auto-discipline qui est du ressort de ceux qui conçoivent et écrivent le code. Bref : un framework ça n&#8217;est pas la pierre philosophale qui changera votre code de plomb en or.</p>
<p>On se résume : côté pile, le <em><strong>frame</strong></em>work est un cadre structurant, côté face, le frame<em><strong>work</strong></em> est un outil facilitant le travail.<br />
Finalement, on avait bien raison de garder le mot anglais.</p>
<p><em>Dans le prochain épisode, on parlera de design patterns&#8230;<br />
</em></p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/08/framework-symfony-explique-a-ma-maman-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Le carreleur et le développeur</title>
		<link>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 05:45:21 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[analogie]]></category>
		<category><![CDATA[application web]]></category>
		<category><![CDATA[BTP]]></category>
		<category><![CDATA[carrelage]]></category>
		<category><![CDATA[comparaison]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[idée régulatrice]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[métaphore]]></category>
		<category><![CDATA[MOA]]></category>
		<category><![CDATA[MOE]]></category>
		<category><![CDATA[Platon]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.do-as-i-say.com/notes/?p=65</guid>
		<description><![CDATA[Pour des raisons dont le fin mot m&#8217;échappe en partie, mais dont les causes sont vraisemblablement historiques , on a recourt pour ce qui est informatique et systèmes d&#8217;information, à un champ lexical lourdement emprunté à la construction et au BTP : chantier, architecture, maîtrise d&#8217;ouvrage, maîtrise d&#8217;œuvre&#8230;

Divers livres et endroits du web m&#8217;ont indiqué [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-87" style="border: 1px solid black;" title="Encore des spécs mal ficelées" src="http://www.do-as-i-say.com/notes/wp-content/uploads/immeuble-150x150.png" alt="Encore des spécs mal ficelées" width="128" height="126" />Pour des raisons dont le fin mot m&#8217;échappe en partie, mais dont les causes sont vraisemblablement historiques , on a recourt pour ce qui est informatique et systèmes d&#8217;information, à un champ lexical lourdement emprunté à la construction et au BTP : chantier, architecture, maîtrise d&#8217;ouvrage, maîtrise d&#8217;œuvre&#8230;</p>
<p><span id="more-65"></span></p>
<p>Divers livres et endroits du web m&#8217;ont indiqué que cette tradition était typiquement française , je ne sais pas s&#8217;il y a de quoi s&#8217;en réjouir. Sans parler du fait que la distinction MOA/MOE, notamment, impose une séparation assez artificielle entre le métier (client) et la technique (prestataire), qui finit par opposer politiquement les savoir-faire plutôt que de viser à les faire se rencontrer, sans parler non plus du fait que si dans l&#8217;informatique ou les applications web tout se passait comme lors de la construction d&#8217;un bâtiment, on perdrait sans doute moins de cheveux , sans parler de tout ça donc, même si maintenant c&#8217;est un peu fait, je voudrais <span style="text-decoration: line-through;">élever</span> rediriger le débat (ben tiens) jusqu&#8217;à la question de l&#8217;opportunité et de la pertinence de certaines métaphores fréquemment utilisées dans notre beau métier (les applications web).</p>
<p>Sans grande surprise, quand quelqu&#8217;un dans ledit métier, client ou prestataire, se lance dans une métaphore filée , il puise dans le champ lexical du bâtiment. Déduction (maintenant possible) : il est français ; bon, en général, on le sait déjà.<br />
De manière un peu plus surprenante, quand ça se produit, ne me demandez pas pourquoi mais neuf fois sur dix il ou elle prend l&#8217;exemple d&#8217;un carreleur. Celui qui pose le carrelage, quoi, vous savez le truc par terre, là. Pourquoi le carrelage ? <em>No sé</em> ; on demandera à Freud de se pencher sur la question. Bref.<br />
La suite de l&#8217;histoire, car il s&#8217;agit toujours d&#8217;une histoire personnelle, se résume dans les grandes lignes à :</p>
<ol>
<li>le carreleur a fait un devis précis sur le nombre de mètres carrés à couvrir, voire dans les meilleurs versions, sur le nombre carreaux</li>
<li>il l&#8217;a fait signer avec le sang et il a demandé un acompte</li>
<li>il a réalisé le travail, et toute demande supplémentaire a été facturée</li>
</ol>
<p>Cette narration édifiante (rappelez-vous l&#8217;étymologie d&#8217;<em>édifiant</em>) se termine par une conclusion en forme d&#8217;exhortation : si un carreleur peut le faire, il n&#8217;y a pas de raison qu&#8217;on ne puisse pas y arriver également, et appliquer cette façon de travailler !</p>
<p>C&#8217;est là que je dis : attention, Maurice (mettons que la personne qui a raconté son histoire s&#8217;appelle Maurice). Les raisons, s&#8217;il s&#8217;agit d&#8217;en trouver, il peut y en avoir plein. Je dirais surtout trois choses :</p>
<ol>
<li>Ça n&#8217;est pas parce qu&#8217;une histoire est imagée, avec un exemple de la vie quotidienne (comprenez : concret et qui va parler à tout le monde), moult détail et foult anecdote dont l&#8217;authenticité le dispute à la théâtralité, qu&#8217;elle impose nécessairement comme une conséquence irrévocable et pour ainsi dire congénitale sa vérité, et, encore moins, son caractère de preuve.<br />
Pour le dire avec moins de mots :<strong> fezez gaffe aux images !</strong> Rien ne va de soi, et surtout pas le choix d&#8217;une analogie (le mot est lâché ). D&#8217;une manière générale, l&#8217;image a tendance à endormir l&#8217;intelligence, parce qu&#8217;elle s&#8217;impose aux yeux en un seul morceau .</li>
<li>Conséquence du point précédent : quand il y a une métaphore filée, <strong>questionnez l&#8217;analogie</strong>. Nétadire ? Nétadire qu&#8217;avant de prendre pour argent comptant la conclusion de Maurice, demandez-vous si la relation qui est établie entre, dans notre cas, le fait de poser des carrelages et celui de développer une application web, est effectivement pertinente. Les analogies, c&#8217;est bien, mais on n&#8217;est pas obligé d&#8217;être d&#8217;accord avec les choses qu&#8217;elles présupposent, par exemple que carreler c&#8217;est la même chose que faire un site web.<br />
Déjà, dans la réalité, je connais peu de clients qui demandent l&#8217;équivalent de <em>&laquo;&nbsp;mettez-moi tel carrelage sur ces 12 mètres carrés&nbsp;&raquo;</em> ; au quotidien, ça donne plutôt quelque chose comme <em>&laquo;&nbsp;j&#8217;ai une pièce à refaire, je ne sais pas trop sa surface, mais il faut que ça soit moins salissant&nbsp;&raquo;</em>, suivi après livraison de <em>&laquo;&nbsp;ah mais il allait de soi qu&#8217;il fallait aussi faire les murs, enfin&nbsp;&raquo;</em>.</li>
<li> Ensuite, et c&#8217;est surtout ça le point important, faire une appli web, ça n&#8217;est pas poser du carrelage ; s&#8217;il fallait tenter d&#8217;induire quelque analogie dans le domaine du BTP, ça nous donnerait plutôt :<em> &laquo;&nbsp;en général, faire une appli web, c&#8217;est comme  construire une maison avec un nombre de pièces qui évolue en fonction des actions des habitants, dont la porte les reconnait et leur propose une salle à manger différente selon l&#8217;heure de la journée, avec des escaliers dont le design doit pouvoir être revu toutes les trois semaines sans empêcher les gens de les utiliser, un toit qui protège des intempéries existantes mais aussi non connues à ce jour, une pièce qui fait les déclarations de revenus, déclenche automatiquement le paiement des factures, engage ponctuellement du personnel de ménage&#8230; Tout ça avec une maison de backup qui chaque nuit sauvegarde tout ce qui a été dit ou pensé par les habitants. Ah oui, c&#8217;est pour dans six semaines.&nbsp;&raquo;</em></li>
</ol>
<p>Évidemment, tout de suite, l&#8217;histoire de carrelage tombe un peu à plat.<br />
Mais, pour finir sur une note optimiste, disons qu&#8217;elle n&#8217;est pas complètement inutile, spécialement si on la considère pour ce qu&#8217;elle peut être : une <strong>idée régulatrice</strong>, autrement dit quelque chose qu&#8217;il faut viser.<br />
L&#8217;intérêt éventuel de ce que nous a raconté Maurice, c&#8217;est de dire : les enfants, pour éviter les débordements, il faut toujours garder à l&#8217;esprit que le projet doit tendre le plus possible vers le carrelage. Ça ne sera jamais aussi &laquo;&nbsp;simple&nbsp;&raquo;, mais il faut <em>viser </em>la simplification, l&#8217;explicitation des besoins, et les cadrer pour qu&#8217;ils soient <em>réalistes </em>et <em>raisonnables</em>. Personne ne demanderait à un carreleur de poser trois niveaux de carrelage, et en or massif, et puis aussi de refaire les peintures au passage (pour le même prix, il va de soi). Ben voilà. Pour nous, ça doit être pareil.</p>
<p>Moralité : la prochaine fois que vous entendez parler de carrelage, soyez attentifs à ce qu&#8217;on essaie de vous refourguer comme théorie, il y a de fortes chances pour que ça ne soit pas vraiment approprié.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/08/le-carreleur-et-le-developpeur/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Le sage montre le doigt, l&#8217;imbécile regarde la lune</title>
		<link>http://www.do-as-i-say.com/notes/2009/08/le-sage-montre-le-doigt/</link>
		<comments>http://www.do-as-i-say.com/notes/2009/08/le-sage-montre-le-doigt/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 07:51:25 +0000</pubDate>
		<dc:creator>LaurentLC</dc:creator>
				<category><![CDATA[1. La vie c'est comme de la gestion de projet]]></category>
		<category><![CDATA[imbécile]]></category>
		<category><![CDATA[principe]]></category>
		<category><![CDATA[sage]]></category>

		<guid isPermaLink="false">http://www.blablafactory.com/notes/?p=1</guid>
		<description><![CDATA[Depuis que j&#8217;ai passé le quart de siècle, puis le tiers, j&#8217;aime bien raconter que les quelques cheveux gris que j&#8217;ai (depuis mes sucrés 16 ans , cela dit) sont le signe d&#8217;une grande sagesse, et que le fruit de mon expérience mérite d&#8217;être partagé.
L&#8217;un des grands principes que cette déjà longue et enrichissante vie [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-18" style="border: 1px solid black;" title="Si à 50 ans t'as pas montré du doigt la lune..." src="http://www.do-as-i-say.com/notes/wp-content/uploads/doigt.jpg" alt="" width="128" height="128" />Depuis que j&#8217;ai passé le quart de siècle, puis le tiers, j&#8217;aime bien raconter que les quelques cheveux gris que j&#8217;ai (depuis mes sucrés 16 ans , cela dit) sont le signe d&#8217;une grande sagesse, et que le fruit de mon expérience mérite d&#8217;être partagé.</p>
<p>L&#8217;un des grands principes que cette déjà longue et enrichissante vie m&#8217;a permis de dégager est le suivant :</p>
<blockquote><p>Ne pas prendre les gens pour des imbéciles, mais ne jamais oublier qu&#8217;ils le sont.</p></blockquote>
<p><span id="more-1"></span></p>
<p><em>Les gens</em>, ça vaut pour moi aussi, bien sûr ; ça ne veut pas juste dire <em>les-autres-alors-que-moi-je-suis-génial </em>. La base phizolophique de ce précepte est donc toute empreinte de misanthropie (à mes heures perdues, je suis assez misanthrope) ou, pour être plus sympa &#8211; et après tout, pourquoi ne serais-je pas plus sympa avec moi-même, se veut un appel à l&#8217;humilité. Il aurait pu s&#8217;énoncer &laquo;&nbsp;si tu trouves que les autres sont cons, dis-toi bien que tu es au moins aussi con qu&#8217;eux&nbsp;&raquo;, mais ça claquait moins, il faut le dire.</p>
<p>Dans la vie de tous les jours (ouvrés), où mes attributions professionnelles m&#8217;amènent à côtoyer toutes sortes d&#8217;individus qu&#8217;on regroupe sous le vocable aussi générique que flou de &laquo;&nbsp;client&nbsp;&raquo;, ce principe a une moultitude d&#8217;intérêts et d&#8217;applications pratiques.<br />
Il aidera ainsi à éviter de formuler des questions comme si on s&#8217;adressait à un demeuré.<br />
Par exemple, ne pas dire &laquo;&nbsp;Mais vous êtes sûrs que quand on clique sur <em>Sauvegarder</em>, ça sauvegarde ?&nbsp;&raquo; (= vous le prenez pour un abruti, MAL), mais préférer &laquo;&nbsp;Que se passe-t-il quand on valide le formulaire ?&nbsp;&raquo; (= vous parlez à son intelligence, BIEN). Si le client a effectivement tendance à vouloir inconsciemment réinventer les principes de l&#8217;ergonomie, quand ça n&#8217;est pas de la mécanique générale, à chaque étape d&#8217;un projet, on a aussi une fâcheuse propension à vouloir faire systématiquement le contraire de ce dont il a besoin (ou, au mieux, quelque chose dont il n&#8217;a pas <em>vraiment </em>besoin).</p>
<p>En bref, ce principe relève d&#8217;une méthodologie simple mais de bon aloi, que la sagesse populaire sait partiellement déjà formuler à sa façon (la paille dans l&#8217;œil du voisin et la poutre  dans le chien, ou un truc approchant). Quand je vous dis que je suis sage, hein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.do-as-i-say.com/notes/2009/08/le-sage-montre-le-doigt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

