<?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>technique @PMSIpilot</title>
	<atom:link href="http://www.pmsipilot.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pmsipilot.org</link>
	<description>Blog du service technique de PMSIpilot</description>
	<lastBuildDate>Mon, 14 May 2012 13:19:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Jenkins Khan : faciliter la validation par branche via Jenkins</title>
		<link>http://www.pmsipilot.org/2012/05/14/jenkins-khan-faciliter-la-validation-par-branche-via-jenkins/</link>
		<comments>http://www.pmsipilot.org/2012/05/14/jenkins-khan-faciliter-la-validation-par-branche-via-jenkins/#comments</comments>
		<pubDate>Mon, 14 May 2012 13:19:59 +0000</pubDate>
		<dc:creator>Sébastien Rogier</dc:creator>
				<category><![CDATA[développement informatique]]></category>
		<category><![CDATA[intégration continue]]></category>
		<category><![CDATA[jenkins]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=910</guid>
		<description><![CDATA[Avant de rentrer plus dans les détails de Jenkins Khan, voici notre workflow lorsque nous travaillons sur une nouvelle fonctionnalité / un correctif : création d’une branche de travail à partir de la branche stable, réalisation du développement, validation du développement en exécutant les tests sur la branche de travail, merge de la branche de [...]]]></description>
			<content:encoded><![CDATA[<p>Avant de rentrer plus dans les détails de Jenkins Khan, voici notre workflow lorsque nous travaillons sur une nouvelle fonctionnalité / un correctif :</p>
<ul>
<li>création d’une branche de travail à partir de la branche stable,</li>
<li>réalisation du développement,</li>
<li>validation du développement en exécutant les tests sur la branche de travail,</li>
<li>merge de la branche de travail sur la branche stable.</li>
</ul>
<p>À PMSIpilot, nous utilisons Jenkins pour notre intégration continue et l’exécution des tests de validation techniques. Chaque développeur a, sur son poste, une instance de Jenkins branchée sur son dépôt.</p>
<p>Il est vite apparu que le rendu de Jenkins, dont l’interface est plus orientée vue “par job”, ne convenait pas dans le cadre de la validation de nos développements. C’est là où Jenkins Khan intervient, en nous fournissant une interface orientée vue par branche afin de suivre la validation.</p>
<p>En cumulant les branches à valider, avec, pour chacune, différents tests à valider, il est vite devenu difficile de suivre quels étaient les jobs lancés pour chaque branche et l’état de ces différents jobs au fur et à mesure du développement.</p>
<p>Les développeurs se trouvaient en manque d’outil pour faire ce suivi de validation. Chacun faisait alors avec sa propre méthode (papier, feuille de calcul, etc.).</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/jenkins_khan_v0.jpg"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/jenkins_khan_v0-225x300.jpg" alt="enkins Khan v0" width="225" height="300" class="aligncenter size-medium wp-image-912" /></a></p>
<p>Une version plus synthétique correspondrait au tableau ci-dessous :</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/Untitled-Page.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/Untitled-Page-300x161.png" alt="Matrice JK" width="300" height="161" class="aligncenter size-medium wp-image-914" /></a></p>
<p>Le maintien d’une telle feuille est vite devenu fastidieux, un correctif entraînant, la plupart de temps, la relance d’un nouveau build Jenkins. De plus, Jenkins ne nous facilite pas la tâche pour suivre l’état d’un même job s’il est lancé sur plusieurs branches : aucune vue n’affiche la liste des builds avec ses paramètres utilisés. Il faut donc aller sur la page d’affichage des paramètres transmis de chacun des builds pour visualiser la branche concernée par le build.</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/jk-paramètres.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/jk-paramètres-300x104.png" alt="" width="300" height="104" class="aligncenter size-medium wp-image-915" /></a></p>
<p>C’est pourquoi nous avons développé Jenkins Khan. L’objectif principal de cet outil est de visualiser l’état global de chacune des branches testées et l’état de ses différents jobs. Contrairement à Jenkins qui offre une vue orientée par job, Jenkins Khan a une vue orientée branche.</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/dashboard.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/dashboard-300x192.png" alt="Jenkins Khan" width="300" height="192" class="aligncenter size-medium wp-image-917" /></a></p>
<p>La partie de gauche permet de visualiser les différentes branches en cours de validation, la couleur indiquant l’état (succès, échec, en cours de traitement, en attente, etc.). La partie de droite liste pour chaque job de cette branche :</p>
<ul>
<li>son état,</li>
<li>sa progression,</li>
<li>sa date de lancement,</li>
<li>sa durée,</li>
<li>un lien pour le relancer,</li>
<li>des liens d’accès aux pages Jenkins (résultats, console, etc.).</li>
</ul>
<p>Désormais, lors de la validation technique d’une branche, nous saisissons le nom de la branche de travail, choisissons la liste des jobs à lancer, et voilà : il ne reste plus qu’à attendre que tous les jobs soient terminés.</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/create_build_branch.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/create_build_branch-300x107.png" alt="Testing d&#039;une branche de travail" width="300" height="107" class="aligncenter size-medium wp-image-920" /></a></p>
<p>Basé sur l’API de Jenkins, Jenkins Khan nécessite peu de configuration :</p>
<ul>
<li>l’url du Jenkins,</li>
<li>un paramètre BRANCH dans les jobs.</li>
</ul>
<p>Le reste de la configuration (vues, paramètres des jobs) est fourni par Jenkins.</p>
<p>Nous avons également ajouté la possibilité de planifier des jobs pour qu’ils puissent être lancés à une heure donnée. On peut ainsi lancer les jobs coûteux en ressource machine hors horaire de travail.</p>
<p>Jenkins Khan possède une API permettant de créer et lancer des jobs pour une branche donnée. Nous l’avons ainsi intégré dans notre dashboard qui monitore les tickets sur lesquels nous sommes en train de travailler pour indiquer l’état de la validation.</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/05/qa-monitor21.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2012/05/qa-monitor21-300x129.png" alt="Qa-monitor : monitoring des tâches en cours" width="300" height="129" class="aligncenter size-medium wp-image-928" /></a></p>
<p>Si vous voulez en savoir plus sur cet outil, vous pouvez consulter le dépôt Github qui héberge les sources <a href="https://github.com/pmsipilot/Jenkins-Khan">https://github.com/pmsipilot/Jenkins-Khan</a>. Le wiki du projet <a href="https://github.com/pmsipilot/Jenkins-Khan/wiki">https://github.com/pmsipilot/Jenkins-Khan/wiki</a> contient la documentation sur l’installation, l’API fournie, branchement sur un LDAP, etc. sur. Vous trouverez également sur le dépôt <a href="https://github.com/pmsipilot/jenkins-php-api">https://github.com/pmsipilot/jenkins-php-api</a> les classes PHP nous permettant de manipuler les serveurs Jenkins grâce à leur API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2012/05/14/jenkins-khan-faciliter-la-validation-par-branche-via-jenkins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barcamp sur les méthodes agiles à Lyon le 3 mars 2012</title>
		<link>http://www.pmsipilot.org/2012/01/20/barcamp-sur-les-methodes-agiles-a-lyon-le-3-mars-2012/</link>
		<comments>http://www.pmsipilot.org/2012/01/20/barcamp-sur-les-methodes-agiles-a-lyon-le-3-mars-2012/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 09:07:13 +0000</pubDate>
		<dc:creator>Sarah Haïm-Lubczanski</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[PMSIpilot (meet the team)]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=877</guid>
		<description><![CDATA[Nous utilisons des méthodes agiles inspirées de SCRUM au sein de nos équipes de travail, et nous aimons améliorer nos connaissances et apprendre. Du coup, nous proposons un Barcamp d&#8217;une journée. Nous espérons voir arriver des personnes de l&#8217;agglomération lyonnaise et alentours. Un Bar Camp est une « non-conférence » ouverte qui prend la forme [...]]]></description>
			<content:encoded><![CDATA[<p>Nous utilisons des méthodes agiles inspirées de SCRUM au sein de nos équipes de travail, et nous aimons améliorer nos connaissances et apprendre. Du coup, nous proposons un Barcamp d&#8217;une journée. Nous espérons voir arriver des personnes de l&#8217;agglomération lyonnaise et alentours.</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2012/01/log_barcamp.png"><img class="aligncenter size-medium wp-image-884" src="http://www.pmsipilot.org/wp-content/uploads/2012/01/log_barcamp-300x100.png" alt="" width="300" height="100" /></a></p>
<p>Un Bar Camp est une « non-conférence » ouverte qui prend la forme d&#8217;ateliers-événements participatifs où le contenu est fourni par les participants qui doivent tous, à un titre ou à un autre, apporter quelque chose au Barcamp, l&#8217;objectif est avant tout de partager des idées.</p>
<p>Tous les participants sont invités à parler du Barcamp autant avant leur participation, qu&#8217;après, pour rendre compte de leurs échanges.</p>
<blockquote><p>  1ère règle: Tu parleras du BarCamp.</p>
<p>2ème règle: Tu blogueras à propos du BarCamp.</p>
<p>3ème règle: Si tu veux faire une présentation, tu dois inscrire ton sujet et ton nom dans un slot de présentation.</p>
<p>4ème règle: Des intros de 3 mots seulement.</p>
<p>5ème règle: Autant de présentations à la fois que l&#8217;infrastructure le permet.</p>
<p>6ème règle: Pas de présentations réservées à l&#8217;avance, pas de touristes.</p>
<p>7ème règle: Les présentations iront tant et aussi longtemps qu&#8217;elles le doivent, où jusqu&#8217;à ce qu&#8217;elles se heurtent à l&#8217;heure de début de la présentation suivante.</p>
<p>8ème règle: Si c&#8217;est votre première fois au BarCamp, vous DEVEZ présenter. (Bon, on ne va pas vous forcer, mais essayez de trouver quelqu&#8217;un avec qui présenter, ou posez des questions et soyez un participant actif.)</p></blockquote>
<p><em>par Tantek Çelik, en parodie des Règles de Fight Club.</em></p>
<p>L&#8217;accès se fait via <a href="http://agilebarcamplyon2012.eventbrite.com/">une inscription préalable</a> et est limité à 40 participants, pour des raisons légales. Au delà de 40, vous serez en liste d&#8217;attente.</p>
<p>Nous vous attendons samedi 3 mars de 10h à 18h dans les locaux de PMSIpilot, 61 r Sully, Lyon 6ème.</p>
<p><a href="http://barcamp.org/w/page/49671102/AgileBarcampLyon2012">Plus de détails sur la page Barcamp de l&#8217;événement.</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2012/01/20/barcamp-sur-les-methodes-agiles-a-lyon-le-3-mars-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PMSIpilot recrute dans son équipe technique</title>
		<link>http://www.pmsipilot.org/2011/09/21/pmsipilot-recrute-dans-son-equipe-technique/</link>
		<comments>http://www.pmsipilot.org/2011/09/21/pmsipilot-recrute-dans-son-equipe-technique/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 07:35:48 +0000</pubDate>
		<dc:creator>pmsiadmin</dc:creator>
				<category><![CDATA[Recrutement]]></category>
		<category><![CDATA[emploi]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[recrutement]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=849</guid>
		<description><![CDATA[Nous accompagnons les établissements de santé dans la gestion et le pilotage de leur activité avec une offre logicielle étendue. Afin de maintenir les nombreux produits en place et à venir, nous recrutons de nouveaux développeurs PHP en CDI sur Lyon. Le but est d&#8217;intégrer les personnes progressivement dans les équipes de nos managers techniques : Eric, William [...]]]></description>
			<content:encoded><![CDATA[<p>Nous accompagnons les établissements de santé dans la gestion et le pilotage de leur activité avec une offre logicielle étendue. Afin de maintenir les nombreux produits en place et à venir, nous recrutons de nouveaux développeurs PHP en CDI sur Lyon.</p>
<p>Le but est d&#8217;intégrer les personnes progressivement dans les équipes de nos managers techniques : <a href="https://twitter.com/#!/ratibus">Eric</a>, <a href="https://twitter.com/#!/wooshell">William</a> et Denis (<a href="http://team-fusion.pmsipilot.com/">blog de son équipe</a>) (qui sont tout de même des types supers).</p>
<p>Vous rejoindrez l&#8217;une de nos 3 équipes, qui sont chaque jour confrontées à des problématiques métier complexes. Pour ce faire ces équipes structurées agissent en mode agile, avec des outils qualitatifs (git, redmine, jenkins).</p>
<p>Nous rechercons tout type de profil, motivé par le developpement web, désirant intégrer un editeur reconnu dans son domaine.</p>
<p>Voici les technos utilisés chez nous :</p>
<ul>
<li>PHP5, symfony 1.4 et 2</li>
<li>html/css, ajax</li>
<li>Jenkins</li>
<li>Linux</li>
<li>MySQL</li>
</ul>
<div>Vous trouverez un aperçu des conditions de travail sur <a title="Locaux de PMSIpilot - Lyon 6eme" href="http://www.flickr.com/photos/pmsipilot/collections/72157624147909433/">le compte Flickr de l&#8217;entreprise</a>. Un petit tour sur ce blog peut vous en apprendre plus. Pour postuler par email, écrivez à recrutement-dev AT pmsipilot.com et n&#8217;hésitez pas à solliciter un entretien.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/09/21/pmsipilot-recrute-dans-son-equipe-technique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Répartition par navigateurs</title>
		<link>http://www.pmsipilot.org/2011/09/02/repartition-par-navigateurs/</link>
		<comments>http://www.pmsipilot.org/2011/09/02/repartition-par-navigateurs/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 13:19:06 +0000</pubDate>
		<dc:creator>William Garcia</dc:creator>
				<category><![CDATA[développement informatique]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=840</guid>
		<description><![CDATA[Voici la répartition des navigateurs utilisés au sein des établissements de santé pour accéder à la gamme de logiciels PMSIpilot.]]></description>
			<content:encoded><![CDATA[<p>Voici la répartition des navigateurs utilisés au sein des établissements de santé pour accéder à la gamme de logiciels PMSIpilot.</p>
<div id="attachment_842" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.pmsipilot.org/wp-content/uploads/2011/09/Screenshot.png"><img class="size-medium wp-image-842" title="répartition par navigateurs" src="http://www.pmsipilot.org/wp-content/uploads/2011/09/Screenshot-300x189.png" alt="répartition par navigateurs" width="300" height="189" /></a><p class="wp-caption-text">répartition par navigateurs</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/09/02/repartition-par-navigateurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nous avons intégré les technologies open sources OpenLayers et OpenStreetmap à nos logiciels</title>
		<link>http://www.pmsipilot.org/2011/07/21/nous-avons-integre-les-technologies-open-sources-openlayers-et-openstreetmap-a-nos-logiciels/</link>
		<comments>http://www.pmsipilot.org/2011/07/21/nous-avons-integre-les-technologies-open-sources-openlayers-et-openstreetmap-a-nos-logiciels/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:19:52 +0000</pubDate>
		<dc:creator>pmsiadmin</dc:creator>
				<category><![CDATA[développement informatique]]></category>
		<category><![CDATA[carto]]></category>
		<category><![CDATA[openlayers]]></category>
		<category><![CDATA[openstreetmap]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=814</guid>
		<description><![CDATA[L&#8217;objectif du projet était de pouvoir projeter l&#8217;effectif (RSS ou patient) défini par le filtrage PMSIpilot sur une carte interactive. Le mécanisme de filtrage existant dans PMSIpilot permet de visualiser les aire de recrutement selon tous les axes d&#8217;analyses présents : GHM, DMS, âge, actes, diagnostics … et toutes leurs combinaisons. Voici un petit aperçu [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;objectif du projet était de pouvoir projeter l&#8217;effectif (RSS ou patient) défini par le filtrage PMSIpilot sur une carte interactive.</p>
<p>Le mécanisme de filtrage existant dans PMSIpilot permet de visualiser les aire de recrutement selon tous les axes d&#8217;analyses présents  : GHM, DMS, âge, actes, diagnostics … et toutes leurs combinaisons.</p>
<p>Voici un petit aperçu des résultats. </p>
<div id="attachment_820" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.pmsipilot.org/wp-content/uploads/2011/07/2011-07-18_1555.png"><img src="http://www.pmsipilot.org/wp-content/uploads/2011/07/2011-07-18_1555-300x215.png" alt="Répartition de la chirurgie ambulatoire en Bretagne" title="Répartition de la chirurgie ambulatoire en Bretagne" width="300" height="215" class="size-medium wp-image-820" /></a><p class="wp-caption-text">Répartition de la chirurgie ambulatoire en Bretagne</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/07/21/nous-avons-integre-les-technologies-open-sources-openlayers-et-openstreetmap-a-nos-logiciels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La CNIL donne un avis favorable à nos dispositifs</title>
		<link>http://www.pmsipilot.org/2011/07/20/la-cnil-donne-un-avis-favorable-a-nos-dispositifs/</link>
		<comments>http://www.pmsipilot.org/2011/07/20/la-cnil-donne-un-avis-favorable-a-nos-dispositifs/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 14:36:30 +0000</pubDate>
		<dc:creator>William Garcia</dc:creator>
				<category><![CDATA[Actualités]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=816</guid>
		<description><![CDATA[Le 21 Juin 2011, trois inspecteurs de la CNIL ont procédé à une revue complète des systèmes d’informations et des procédures informatiques liées à l’activité de PMSIpilot. Ils se sont assurés : - des modalités de gestion des produits PMSIpilot (maintenance, mises à jour) - que PMSIpilot ne disposait d’aucun accès à des données non [...]]]></description>
			<content:encoded><![CDATA[<p>Le 21 Juin 2011, trois inspecteurs de la CNIL ont procédé à une revue complète des systèmes d’informations et des procédures informatiques liées à l’activité de PMSIpilot.</p>
<p>Ils se sont assurés :<br />
- des modalités de gestion des produits PMSIpilot (maintenance, mises à jour)<br />
- que PMSIpilot ne disposait d’aucun accès à des données non anonymes contrôlées, optimisées et analysées aujourd’hui par plus de 550 hôpitaux grâce aux logiciels PMSIpilot.<br />
- de l’usage fait des données d’activités médicales anonymes faites par PMSIpilot dans le cadre de notre produit <a href="http://links.pmsipilot.com/BRN">BRN Bases RégioNales</a>.</p>
<p>Suite au contrôle, un avis favorable de la CNIL a été émis précisant que les différentes activités contrôlées étaient conforme aux lois en vigueur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/07/20/la-cnil-donne-un-avis-favorable-a-nos-dispositifs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les valeurs par défaut dans les sfForms</title>
		<link>http://www.pmsipilot.org/2011/05/12/les-valeurs-par-defaut-dans-les-sfforms/</link>
		<comments>http://www.pmsipilot.org/2011/05/12/les-valeurs-par-defaut-dans-les-sfforms/#comments</comments>
		<pubDate>Thu, 12 May 2011 08:09:23 +0000</pubDate>
		<dc:creator>Olivier Balais</dc:creator>
				<category><![CDATA[développement informatique]]></category>
		<category><![CDATA[default values]]></category>
		<category><![CDATA[sfForms]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=783</guid>
		<description><![CDATA[Aujourd&#8217;hui chez PMSIpilot, je suis tombé sur le problème suivant : après avoir passé une valeur par défaut à un des widgets de mon formulaire, je ne parvenais pas à la récupérer dans mon action ni dans mon template. L&#8217;appel à la méthode getDefault du sfForm me renvoyait systématiquement null,. Le code en question : [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui chez PMSIpilot, je suis tombé sur le problème suivant : après avoir passé une valeur par défaut à un des widgets de mon formulaire, je ne parvenais pas à la récupérer dans mon action ni dans mon template.<br />
L&#8217;appel à la méthode getDefault du sfForm me renvoyait systématiquement <em>null,</em>.</p>
<p>Le code en question :</p>
<p><code>// Dans le code de mon formulaire :<br />
$this-&gt;setWidgets(array(<br />
  ...<br />
  'my_field' =&gt; new sfMyWidget(array('default' =&gt; 'my_value')),<br />
));<br />
</code><br />
<code>// Dans le code de mon action :<br />
if ($my_form-&gt;getDefault('my_field') == 'some_value')<br />
{<br />
  ...<br />
}</code></p>
<p>Dans ce cas, la méthode getDefault() appelée sur mon formulaire me renvoie null alors que j&#8217;ai explicitement donné une valeur par défaut à mon widget. Pourtant, en lisant la doc de symfony sur le sujet je retiens ceci :</p>
<blockquote><p>The setDefault(), getDefault(), setDefaults(), and getDefaults() methods manages the default values for the embedded widgets. <span style="text-decoration: underline">They are proxy methods </span>for the getDefault() and setDefault() widget methods.</p></blockquote>
<p>Les méthodes setDefault() et getDefault() au niveau de la classe sfForm sont censées êtres des raccourcis pour les méthodes setDefault() et getDefault() de la classe sfWidgetForm().</p>
<p>En fait il s&#8217;avère que ce n&#8217;est absolument pas le cas et que la méthode getDefault() du formulaire ne fait jamais appel à la méthode getDefault() du widget associé.</p>
<p>L&#8217;appel à <strong>$my_form-&gt;getDefault(&#8216;my_field&#8217;)</strong> n&#8217;est donc pas équivalent à <strong>$my_form['my_field']-&gt;getWidget()-&gt;getDefault()</strong>.</p>
<p>Par conséquent, il est important de bien comprendre quelle méthode appeler et dans quel cas.</p>
<p>A savoir, <strong>$my_form-&gt;getDefault(&#8216;my_field&#8217;)</strong> quand le setDefault a été utilisé<strong> au niveau du formulaire</strong>. Exemple :</p>
<p><code>// Valeurs passées dans mon formulaire :<br />
$this-&gt;setWidgets(array(<br />
  ...<br />
  'my_field' =&gt; new sfMyWidget(),<br />
));<br />
$this-&gt;setDefault('my_field', 'my_value');<br />
</code><br />
<code>// Ou alors valeurs passées dans mon action :<br />
$my_form = new myFormClass(array(<br />
  ...<br />
  'my_field' =&gt; 'my_value',<br />
));<br />
</code></p>
<p>Et, <strong>$my_form['my_field']-&gt;getWidget()-&gt;getDefault()</strong> quand le setDefault() a été utilisé <strong>au niveau du widget</strong>. Exemple :</p>
<p><code>// Dans le code de mon formulaire :<br />
$this-&gt;setWidgets(array(<br />
  ...<br />
  'my_field' =&gt; new sfMyWidget(array('default' =&gt; 'my_value')),<br />
));<br />
</code></p>
<p>Voilà, désormais vous êtes prévenus&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/05/12/les-valeurs-par-defaut-dans-les-sfforms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Astuces PHPStorm</title>
		<link>http://www.pmsipilot.org/2011/05/03/astuces-phpstorm/</link>
		<comments>http://www.pmsipilot.org/2011/05/03/astuces-phpstorm/#comments</comments>
		<pubDate>Tue, 03 May 2011 10:26:56 +0000</pubDate>
		<dc:creator>Sarah Haïm-Lubczanski</dc:creator>
				<category><![CDATA[développement informatique]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=748</guid>
		<description><![CDATA[Pour coder, nous utilisons majoritairement l&#8217;IDE PHPStorm. PHPStorm est vraiment agréable à l&#8217;utilisation, et plutôt riche en fonctionnalités, tout en gardant une personnalisation fine. La personnalisation nous permet d&#8217;avoir chacun les raccourcis-clavier de notre choix, du coup, quand on souhaite intervenir sur un autre poste de travail, c&#8217;est souvent suprenant. Mais c&#8217;est également l&#8217;occasion de [...]]]></description>
			<content:encoded><![CDATA[<p>Pour coder, nous utilisons majoritairement l&#8217;IDE PHPStorm. PHPStorm est vraiment agréable à l&#8217;utilisation, et plutôt riche en fonctionnalités, tout en gardant une personnalisation fine. La personnalisation nous permet d&#8217;avoir chacun les raccourcis-clavier de notre choix, du coup, quand on souhaite intervenir sur un autre poste de travail, c&#8217;est souvent suprenant.</p>
<p>Mais c&#8217;est également l&#8217;occasion de découvrir et d&#8217;échanger sur le logiciel, voilà des astuces pour PHPStorm que j’ai découvertes  petit à petit, par hasard ou par transmission directe de la part des  collègues.</p>
<h2>Connexion avec SCM (Git)</h2>
<p>PHPStorm implémente les fonctions du SCM dans des menus contextuels, mais parmi mes collègues, je crois que nous utilisons majoritairement la ligne de commande pour interagir avec Git.</p>
<h3>Rollback dans la marge</h3>
<p style="text-align: center"><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/image03.png"><img class="aligncenter size-medium wp-image-749" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/image03-300x178.png" alt="" width="565" height="334" /></a></p>
<p>Les marges affichent les modifications faites sur le  fichiers par une barre de couleur dans la marge, et en cliquant sur la barre, il est proposé de  faire un rollback de nos modifs. Pratique pour supprimer les lignes vides ajoutées  en plus (et éviter des modifications sur un fichier qui n&#8217;a pas été réellement amélioré au final).</p>
<h3>Je soupçonne le Colonel Moutarde avec une Regex dans la lib</h3>
<p style="text-align: center"><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/image02.png"><img class="aligncenter size-medium wp-image-751" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/image02-300x178.png" alt="" width="565" height="334" /></a></p>
<p>Un clic-droit dans la marge du fichier propose  “Annotate”, cela revient à utiliser le Blame de Git. On a donc un  affichage sur le dernier commit (hash et auteur) pour chaque ligne du  fichier.</p>
<h2>Configuration du panneau TODO</h2>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/image00.png"><img class="aligncenter size-medium wp-image-752" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/image00-282x300.png" alt="" width="282" height="300" /></a></p>
<p>Tout comme Eclipse, PHPStorm propose des panneaux pour les différentes fonctionnalités. Un des ces panneaux (numéro <a href="http://fr.wikipedia.org/wiki/Num%C3%A9ro_6">6</a>) se  nomme TODO. Par défaut, il présente une liste de fichiers indexés parce  qu’ils ont un TODO dans leur contenu.</p>
<p>Le plus ?</p>
<p>On peut configurer des filtres, pour indexer n’importe quel autre contenu.<br />
Par exemple, on peut imaginer indexer le mot-clef DEBUG, et laisser dans notre code des DEBUG pour signifier qu&#8217;il faudra repasser à cet endroit avant publication des fichiers, pour ôter le code spécial Debug Mode.</p>
<p>Le petit défaut est que le panneau garde son nom de TODO, quelle que soit la configuration.</p>
<h2>Rechercher dans vos fichiers modifiés</h2>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/image01.png"><img class="aligncenter size-medium wp-image-753" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/image01-300x156.png" alt="" width="300" height="156" /></a></p>
<p>Un choix de scope de recherche intéressant se trouve  dans la boîte de dialogue de recherche : “Changed Files” au sens Git du  terme. Cela permet de chercher dans les fichiers modifiés et pas encore commités.<br />
Quel intérêt ?<br />
La recherche sur tout le projet s&#8217;avère assez longue, pour nous qui avons une énorme base de code.</p>
<h2>Find Usage&#8230;</h2>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/found-usages.png"><img class="aligncenter size-full wp-image-764" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/found-usages.png" alt="" width="372" height="409" /></a></p>
<p>En menu contextuel sur  le nom d’une méthode ou d’une fonction, on peut lancer une recherche  “Find Usage&#8230;” et PHPStorm recherche tous les fichiers contenant cette  méthode.<br />
La liste des éléments est filtrée sur : usage en lecture, appel de la méthode, nommage uniquement (en commentaire par exemple).</p>
<p>Bémol  : cela fonctionne parfaitement pour des méthodes nommées et moins pour  tout ce qui est système de Factory  (construction selon le nom des méthodes/objets).</p>
<h2>Zoom à la molette</h2>
<p>Comme  dans beaucoup de logiciels, cette manipulation agrandit la police du  texte (zoom).</p>
<p><a href="http://www.pmsipilot.org/wp-content/uploads/2011/04/split-zoom.png"><img class="aligncenter size-medium wp-image-766" src="http://www.pmsipilot.org/wp-content/uploads/2011/04/split-zoom-300x280.png" alt="" width="300" height="280" /></a><br />
Le petit plus de PHPStorm : chaque onglet est indépendant  dans son zoom. Encore plus fort : quand on splitte notre fenêtre de travail en deux, on peut zoomer sur un fichier dans une partie du splitte sans impact sur l&#8217;autre partie (oui, sur le même fichier).</p>
<h2>Utiliser ses deux écrans</h2>
<p>Quand  on saisit un onglet et qu’on le glisse-déplace hors de la fenêtre  applicative de PHPStorm, l’onglet se met dans une fenêtre autonome, et  on peut lui ajouter d’autres onglets. Ensuite, on peut replacer les  onglets dans la fenêtre principale.<br />
C’est plutôt intéressant pour avoir un fichier sur un second écran, sans avoir à splitter la vue.</p>
<h2>Toute la ligne</h2>
<p>Et  une astuce tellement simple qu’on se demande pourquoi ne pas y avoir  pensé avant : quand on fait un Ctrl+C sans sélection, la ligne sur  laquelle on se trouve est copiée (fonctionne avec couper aussi). Pas besoin de sélectionner la ligne auparavant.</p>
<h2>Et vos astuces ?</h2>
<p>Ces astuces sont celles que j&#8217;ai notées au cours du dernier mois, et qui pourront vous servir. Evidemment, cet article est loin d&#8217;être exhaustif, alors n&#8217;hésitez pas à l&#8217;enrichir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/05/03/astuces-phpstorm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Atelier / débat bonnes pratiques sur l&#8217;architecture</title>
		<link>http://www.pmsipilot.org/2011/04/07/atelier-debat-bonnes-pratiques-sur-larchitecture/</link>
		<comments>http://www.pmsipilot.org/2011/04/07/atelier-debat-bonnes-pratiques-sur-larchitecture/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 10:29:44 +0000</pubDate>
		<dc:creator>pmsiadmin</dc:creator>
				<category><![CDATA[présentations (et autre powerpointerie)]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=730</guid>
		<description><![CDATA[Aujourd&#8217;hui a eu lieu un atelier / débat sur les bonnes pratiques. Un atelier / débat, c&#8217;est une sorte de réunion technique, mais où chacun est invité à exposer son opinion sur ce qui se dit pendant la réunion technique, un sorte de brainstorming géant. Le sujet des bonnes pratiques s&#8217;y prêtait bien, et malgré les peurs [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui a eu lieu un atelier / débat sur les bonnes pratiques. Un atelier / débat, c&#8217;est une sorte de réunion technique, mais où chacun est invité à exposer son opinion sur ce qui se dit pendant la réunion technique, un sorte de brainstorming géant. Le sujet des bonnes pratiques s&#8217;y prêtait bien, et malgré les peurs de certains, aucun lancé de troll malencontreux n&#8217;est à déplorer :-)</p>
<p>Expérience enrichissante pour tout le monde, que nous ne manqueront pas de réitérer !</p>
<div style="width:425px" id="__ss_7448597"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ubermuda/les-bonnes-pratiques-de-larchitecture-en-gnral" title="Les bonnes pratiques de l&#39;architecture en général">Les bonnes pratiques de l&#39;architecture en général</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/7448597" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ubermuda">Geoffrey Bachelet</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/04/07/atelier-debat-bonnes-pratiques-sur-larchitecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connaissez vous Sébastien Rogier ?</title>
		<link>http://www.pmsipilot.org/2011/02/18/connaissez-vous-sebastien-rogier/</link>
		<comments>http://www.pmsipilot.org/2011/02/18/connaissez-vous-sebastien-rogier/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 14:54:02 +0000</pubDate>
		<dc:creator>William Garcia</dc:creator>
				<category><![CDATA[PMSIpilot (meet the team)]]></category>

		<guid isPermaLink="false">http://www.pmsipilot.org/?p=699</guid>
		<description><![CDATA[Le développement, comment y êtes vous venu ? J&#8217;ai eu la chance d&#8217;avoir un contact très jeune avec les ordinateurs (j&#8217;ai quasiment appris à lire dessus&#8230;). Le développement a donc été une continuité logique, d&#8217;abord avec des bidouilles de fichiers bat puis un jeu de shoot basique où on devait tirer sur des têtes qui [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.pmsipilot.org/wp-content/uploads/2011/01/Photo1-1.jpg"></a><a href="http://www.pmsipilot.org/wp-content/uploads/2011/02/photo2.jpg"><img class="alignleft size-thumbnail wp-image-703" src="http://www.pmsipilot.org/wp-content/uploads/2011/02/photo2-e1298040628786-150x150.jpg" alt="" width="150" height="150" /></a>Le développement, comment y êtes vous venu ?<br />
</strong><br />
J&#8217;ai eu la chance d&#8217;avoir un contact très jeune avec les ordinateurs  (j&#8217;ai quasiment appris à lire dessus&#8230;). Le développement a donc été  une continuité logique, d&#8217;abord avec des bidouilles de fichiers bat puis  un jeu de shoot basique où on devait tirer sur des têtes qui émergaient  d&#8217;une haie. Je me suis finalement mis au php pendant mes études à l&#8217;IUT  pour ne quasiment faire que ça depuis que je travaille</p>
<p><strong>Pourquoi nous avez-vous rejoint ?</strong></p>
<p>Les tâches variées qui sont proposées, la bonne ambiance de travail,  l&#8217;aspect technique et la liberté laissée aux équipes de développement  ont été pour moi les arguments principaux dans ma venue chez PMSIpilot.</p>
<p><strong>Quel système d’exploitation préférez vous ?</strong></p>
<div>A titre personnel, j&#8217;utilise Windows 7 (et j&#8217;aime bien). Par contre  lorsque je développe, je préfère passer par Linux. Dans ce cas, que ce  soit chez moi ou à PMSIpilot, ma préférence va sur Ubuntu.</div>
<p><strong>Quel est le problème technique le plus important que vous avez rencontré ici ?</strong></p>
<p>Je dirais la réalisation et le test d&#8217;un module de répartition d&#8217;une  valorisation sur plusieurs éléments et selon différents paramètres. Il  m&#8217;a fallu comprendre le besoin métier et réussir à le transformer en  code tout en garantissant la fiabilité des calculs.</p>
<p><strong>En quelques mots, quelles sont vos tâches ?</strong></p>
<p>Je travaille principalement au développement de nouvelles  fonctionnalités ou à l&#8217;amélioration de nos produits. J&#8217;ai la chance  d&#8217;avoir en général des tâches plutôt variées. Dans une journée, mes  tâches peuvent être du développement de fonctionnalités, un refactoring  de l&#8217;existant, la réalisation de tests, une intervention au support afin  d&#8217;aider les clients, l&#8217;optimisation de code ou de base de données, etc.</p>
<p><strong>Quelle serait votre spécialité au sein de l’entreprise ?</strong></p>
<p>Ayant participé à sa mise en place dans le projet, je dirais que je  connais bien Propel et son Criteria. Étant dans l&#8217;équipe depuis quelques  temps, j&#8217;ai plutôt une bonne connaissance globale du projet sans être  forcement pointu sur un aspect en particulier.</p>
<p><strong>Quels sont vos styles musicaux préférés ?</strong></p>
<p>J&#8217;écoute pas de mal de rock et autres dérivés. Je suis un grand fan de  Muse, et ma liste Spotify passe par des groupes pouvant aller de Placebo  à Slipknot en passant par Prodigy, Transplants, The Offspring, Korn.</p>
<p><strong>Votre sport préféré ?</strong></p>
<p>A la base, je ne suis pas un grand sportif. J&#8217;ai quand même retenté une  approche cette année entre le PMSIbasket hebdomadaire et les sorties  skis. Si jamais je trouve un jour suffisamment de motivation, il faudra  que je me remette au ping pong ou me mette au badminton.</p>
<p><strong>Que faites-vous de votre temps libre ?</strong></p>
<p>J&#8217;aime bien la lecture, rentrer dans ma Creuse natale, etc. J&#8217;apprécie  également les sports mécaniques à 4 roues et faire du karting. Sinon, je  geeke et ai une trop grosse consommation de séries TV.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmsipilot.org/2011/02/18/connaissez-vous-sebastien-rogier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

