<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://particul.es/blog/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Particul.es blog</title>
  <link>http://particul.es/blog/index.php?</link>
  <atom:link href="http://particul.es/blog/index.php?feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Blog centré sur les technologies et méthodologies Web, présentant des billets colorés sur : symfony, php5, scrum, gtd, bash, python, ruby, osx, ubuntu, gentoo, apache, rup agile, zsh, ...</description>
  <language>en</language>
  <pubDate>Wed, 08 Sep 2010 17:23:41 +0200</pubDate>
  <copyright>© particul.es</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Django Rapido sur Snow Leo</title>
    <link>http://particul.es/blog/index.php?post/Django-Rapido-sur-Snow-Leo</link>
    <guid isPermaLink="false">urn:md5:695907d7095836896fc1608d4f09057d</guid>
    <pubDate>Tue, 04 May 2010 23:38:00 +0200</pubDate>
    <dc:creator>stef</dc:creator>
        <category>django</category>
        <category>django</category><category>framework</category><category>osx</category><category>python</category><category>snow</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.Capture_d_ecran_2010-05-05_a_00.55.57_m.jpg&quot; alt=&quot;bb-django&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;bb-django, mai 2010&quot; /&gt;
(Philippe Lopez/Getty Images)&lt;/p&gt;


&lt;p&gt;Approche rugueuse à la réinstallation de Django sur 10.6.3&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- python manage.py runserver
Traceback (most recent call last):
  File &amp;quot;manage.py&amp;quot;, line 2, in &amp;lt;module&amp;gt;
    from django.core.management import execute_manager
ImportError: No module named django.core.management&lt;/pre&gt;


&lt;p&gt;Du coup, billet express à l'attention des gens pressés et frustrés de ne pas avoir assité à la &lt;a href=&quot;http://rencontres.django-fr.org/&quot;&gt;Django conf&lt;/a&gt; Marseillaise.&lt;br /&gt;&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- sudo port install py26-django
$ .- echo &amp;quot;alias python='/opt/local/bin/python2.6'&amp;quot; &amp;gt;&amp;gt; ~/.zsh/aliases.local # ou dans le .bashrc si !zsh
$ .- source !$&lt;/pre&gt;


&lt;p&gt;Toujours un petit doute sur la justesse du choix &lt;em&gt;macport&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- type -a python

python is an alias for /opt/local/bin/python2.6
python is /usr/bin/python&lt;/pre&gt;


&lt;p&gt;L'alias est à mon avis préférable au lien qui risquerait de sauter avec les mises à jour semi-auto d'Apple.&lt;br /&gt;&lt;/p&gt;


&lt;h2&gt;Création d'un projet&lt;/h2&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- cd /Users/pointbar/WebServer/Document
$ .- django-admin.py startproject bouarf
$ .- mate bouarf&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;L'occasion de faire un peu de &lt;em&gt;settings&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;Si vous êtes sous &lt;em&gt;screen&lt;/em&gt;&amp;nbsp;: &lt;em&gt;ctrl-A&lt;/em&gt; (sinon pensez-y)&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- cd boaurf # ; chown +x manage.py
$ .- manage.py runserver # [tab] pour prendre un bol de complétion&lt;/pre&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.completion-django_m.jpg&quot; alt=&quot;completion-django&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;completion-django, mai 2010&quot; /&gt;&lt;/p&gt;


&lt;pre&gt;&lt;em&gt;screen&lt;/em&gt; so &lt;em&gt;ctrl-A&lt;/em&gt;&lt;/pre&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$ .- open http://127.0.0.1:8000&lt;/pre&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.welcome-django_m.jpg&quot; alt=&quot;welcome-django&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;welcome-django, mai 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Merci à Django ready to enjoy...&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;See Ya&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Django-Rapido-sur-Snow-Leo#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Django-Rapido-sur-Snow-Leo#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/71</wfw:commentRss>
      </item>
    
  <item>
    <title>sfPot 2.1 à montpellier !</title>
    <link>http://particul.es/blog/index.php?post/sfPot-2.1-%C3%A0-montpellier-%21</link>
    <guid isPermaLink="false">urn:md5:69cea979c87874d866da12ded8a9110e</guid>
    <pubDate>Tue, 06 Apr 2010 14:18:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>symfony</category>
        <category>sfPot</category>    
    <description>    &lt;p&gt;&lt;br /&gt;
Nous voilà déjà au sfPot du mois d'Avril&amp;nbsp;! Même lieu, même heure. La météo semble clémente, nous pourrons boire un verre tranquillement à l'extérieur pour reprendre les bonnes habitudes.&lt;/p&gt;


&lt;p&gt;Ce sera ce jeudi 8 Avril 2010 à 18h30 au &lt;a href=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=shakespeare+montpellier&amp;amp;sll=43.61057,3.878367&amp;amp;sspn=0.006067,0.009645&amp;amp;ie=UTF8&amp;amp;hq=shakespeare&amp;amp;hnear=Montpellier&amp;amp;ll=43.611533,3.862553&amp;amp;spn=0.048535,0.077162&amp;amp;z=14&amp;amp;iwloc=B&quot;&gt;Shakespeare&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Un petit message comme d'hab pour estimer le nombre de personnalités présentent ;)&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/sfPot-2.1-%C3%A0-montpellier-%21#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfPot-2.1-%C3%A0-montpellier-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/69</wfw:commentRss>
      </item>
    
  <item>
    <title>sfPot 2.x à Montpellier</title>
    <link>http://particul.es/blog/index.php?post/sfPot-2.x-%C3%A0-Montpellier</link>
    <guid isPermaLink="false">urn:md5:f6595d2d485b02c811ac0899d87a6152</guid>
    <pubDate>Mon, 08 Mar 2010 21:55:00 +0100</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>symfony</category>
            
    <description>    &lt;p&gt;Initialement j'annonçais la reprise des sfPot à Montpellier avec l'arrivée du printemps. Le soir même 10 cm de neige sur Montpellier, le climat est taquin&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-68-1&quot; id=&quot;rev-pnote-68-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;h3&gt;sfPot 2.0 lancement de la saison&lt;/h3&gt;

&lt;p&gt;La version du sfPot tombe comme la neige, et nous permet donc d'aborder le sujet de symfony 2.0&amp;nbsp;! Alors elle farte cette version&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Ce sera ce jeudi 11 Mars 2010 à 18h30 au &lt;a href=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=shakespeare+montpellier&amp;amp;sll=43.61057,3.878367&amp;amp;sspn=0.006067,0.009645&amp;amp;ie=UTF8&amp;amp;hq=shakespeare&amp;amp;hnear=Montpellier&amp;amp;ll=43.611533,3.862553&amp;amp;spn=0.048535,0.077162&amp;amp;z=14&amp;amp;iwloc=B&quot;&gt;Shakespeare&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Comme d'habitude merci de me dire si vous venez.&lt;/p&gt;

&lt;h3&gt;Les prochains sfPot à Montpellier&lt;/h3&gt;

&lt;p&gt;A la demande générale, cette année sera un peu plus riche en sfPot. Donc même principe tous les 2iem jeudi du mois. Une confirmation sera faite sur ce blog pour les lieux et dates. Le principe est simple pour 1 sfPot il suffit d'1 bar et de 2 geek :)&lt;/p&gt;


&lt;p&gt;Liste des sfPot&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2.1 le jeudi 8 Avril 2010&lt;/li&gt;
&lt;li&gt;2.2 le jeudi 13 Mai 2010 &lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-68-2&quot; id=&quot;rev-pnote-68-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;2.3 le jeudi 10 Juin 2010 &lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-68-3&quot; id=&quot;rev-pnote-68-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;2.4 le jeudi 8 Juillet 2010&lt;/li&gt;
&lt;li&gt;2.5 le jeudi 12 Août 2010&lt;/li&gt;
&lt;li&gt;2.6 le jeudi 9 Septembre 2010&lt;/li&gt;
&lt;li&gt;2.7 le jeudi 14 Octobre 2010&lt;/li&gt;
&lt;li&gt;2.8 le jeudi 11 Novembre 2010&lt;/li&gt;
&lt;li&gt;2.9 le jeudi 9 Décembre 2010&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bon j'espère que ça ravira certaines personnes que cette saison ait un peu plus de dates. Au plaisir de vous voir.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-68-1&quot; id=&quot;pnote-68-1&quot;&gt;1&lt;/a&gt;] Pour le moment parce que dans quelques années qu'est-ce qu'il va nous mettre...&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-68-2&quot; id=&quot;pnote-68-2&quot;&gt;2&lt;/a&gt;] je cherche quelqu'un pour l'organiser à ma place, je suis pas là&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-68-3&quot; id=&quot;pnote-68-3&quot;&gt;3&lt;/a&gt;] idem, je suis pas là&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/sfPot-2.x-%C3%A0-Montpellier#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfPot-2.x-%C3%A0-Montpellier#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/68</wfw:commentRss>
      </item>
    
  <item>
    <title>symfony live 2010 : l'événement international incontournable</title>
    <link>http://particul.es/blog/index.php?post/symfony-live-2010-evenement-international</link>
    <guid isPermaLink="false">urn:md5:d63cb7d2232ccad8c33998d658c97a21</guid>
    <pubDate>Thu, 18 Feb 2010 08:30:00 +0100</pubDate>
    <dc:creator>vince</dc:creator>
        <category>symfony</category>
        <category>git</category><category>particul.es</category><category>php5</category><category>sensio</category><category>svn</category><category>symfony</category><category>Symfony 2</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/vince/symfony-live/.cite-universitaire_m.jpg&quot; alt=&quot;cite-universitaire.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;cite-universitaire.jpg, fév. 2010&quot; /&gt;&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-67-1&quot; id=&quot;rev-pnote-67-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;Qui n'y était pas&amp;nbsp;? Vous&amp;nbsp;? Impossible !! C'était l'ÉVÉNEMENT de &lt;a href=&quot;http://particul.es/blog/index.php?tag/symfony&quot;&gt;symfony&lt;/a&gt;.&lt;br /&gt;
Si vous étiez &quot;dans la place&quot; l'année dernière, vous ne pouviez décemment pas manquer ce nouveau cru.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Le symfony live étant un événement international, ce sera un billet en français. Paradoxe&amp;nbsp;? Au contraire&amp;nbsp;! C'était un événement totalement anglophone&amp;nbsp;! Bilan, une minorité de français et beaucoup plus de développeurs de toutes origines. On peut donc légitimement s'attendre à beaucoup de retours en anglais sur le web et on tentera ici de contenter la communauté francophone.&lt;br /&gt;
&lt;br /&gt;
La crème de la crème y était, les grands noms et les plus impliqués.&lt;br /&gt;
&lt;br /&gt;
Top de partager avec des développeurs d'Anglette, d'Espagne, d'Italie, de Russie, de Bielo-Russie, des Emirats, du Danemark, de Belgique et j'en passe.&lt;br /&gt;
&lt;br /&gt;
De nombreux sujets ont été couverts et je resterai volontairement synthétique.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://particul.es/blog/index.php?tag/Symfony%202&quot;&gt;Symfony 2&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Pour commencer par le dessert, Fabien Potencier a présenté le futur framework &lt;a href=&quot;http://particul.es/blog/index.php?tag/Symfony%202&quot;&gt;Symfony 2&lt;/a&gt; qui est disponible depuis une paire d'heures sur &lt;a href=&quot;http://github.com/symfony/symfony&quot; hreflang=&quot;en&quot;&gt;Github&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Un site (temporaire) est dédié à la version alpha&amp;nbsp;: &lt;a href=&quot;http://symfony-reloaded.org&quot; hreflang=&quot;en&quot;&gt;http://symfony-reloaded.org&lt;/a&gt; avec une installation par sanbox, git ou svn (&lt;a href=&quot;http://symfony-reloaded.org/code&quot; hreflang=&quot;en&quot;&gt;http://symfony-reloaded.org/code&lt;/a&gt;) et de la &lt;a href=&quot;http://symfony-reloaded.org/learn&quot;&gt;documentation/tutoriels sur Symfony 2&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
De grandes révolutions ont été présentées, comme&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l'autocomplétion de config XML en namespace par déclaration DTD&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de l'import de fichiers de conf vers d'autres fichiers de conf et ce même en format différents (xml, php, yaml, ini)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;une externalisation de mot de passe de la DB&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un système de mise en cache automatique (Zend Cache) sous chaque environnement qui stocke le PHP à plat. Un système de fichiers *.meta pour gérer la validité de chaque fichier en cache. Le tout fortement allégé&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Un système de bundle pour chaque élément du framework (application, noyau, module complémentaire,…)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Une uniformité sur les vues&amp;nbsp;: tout est template et les helpers sont des objets&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un lazy loading garantissant la légèreté de l'application puisque les objets ne sont créés que si une instance est utilisée&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;une amélioration des logs (end Logger) avec davantage de pertinance sur le traçage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;http://particul.es/blog/index.php?tag/Symfony%202&quot;&gt;Symfony 2&lt;/a&gt; est annoncé, par son auteur, comme très facile à prendre en main (peut-être le plus facile à appréhender), s'apprend en 20 minutes et se maitrise en moins d'une journée (dixit son créateur).&lt;br /&gt;
&lt;br /&gt;
Pas de système de formulaire ou d'admin gen pour l'instant. Le framework de formulaires peut cependant être récupéré de la symfony 1.4 ainsi que le système d'i18n et d'autres composants.&lt;br /&gt;
&lt;br /&gt;
Globalement, on peut observer que &lt;a href=&quot;http://particul.es/blog/index.php?tag/Symfony%202&quot;&gt;Symfony 2&lt;/a&gt; a effectivement l'air plus souple et moins complexe dans son architecture.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Présentation de Git&lt;/h2&gt;


&lt;p&gt;Scott Chason a fait une présentation extraordinaire de &lt;a href=&quot;http://particul.es/blog/index.php?tag/git&quot;&gt;Git&lt;/a&gt;. Impossible d'assimiler de tels concepts en si peu de temps, sauf si Scott est au micro. A tous ceux qui étaient encore sour &lt;a href=&quot;http://particul.es/blog/index.php?tag/svn&quot;&gt;SVN&lt;/a&gt; jusqu'à présent, l'intérêt de git leur est certainement aujourd'hui, devenu évident.&lt;br /&gt;
&lt;br /&gt;
Quelques références indispensable au passage :&lt;br /&gt;
&lt;a href=&quot;http://git-scm.com&quot; hreflang=&quot;en&quot;&gt;http://git-scm.com&lt;/a&gt; (sources, doc, references), &lt;a href=&quot;http://progit.org&quot; hreflang=&quot;en&quot;&gt;http://progit.org&lt;/a&gt; (Livre et ebook),&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Riche en ressources&lt;/h2&gt;


&lt;p&gt;De nombreux sujets ont donc également été traités. Outre le bon souvenir, on pourra retenir quelques plugins à tester (si ce n'est déjà fait), de nombreux conseils sur la performance, certaines révolutions en cours et des retours d'expérience diverses et variées. En vrac&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.phpbb.com&quot;&gt;PhpBB 4&lt;/a&gt; est en cours de développement sous &lt;a href=&quot;http://particul.es/blog/index.php?tag/Symfony%202&quot;&gt;Symfony 2&lt;/a&gt; avec une pre-release privée,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.symfony-project.org/plugins/mgI18nPlugin&quot;&gt;mgI18nPlugin&lt;/a&gt; permet de faire de la traduction d'application en interface web,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.symfony-project.org/plugins/ahDoctrineEasyEmbeddedRelationsPlugin&quot;&gt;ahDoctrineEasyEmbeddedRelationsPlugin&lt;/a&gt; permet d'embarquer un formulaire en relation simplement,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/henrikbjorn/sfTwigPlugin&quot;&gt;sfTwigPlugin&lt;/a&gt; embarque le Twig Templating sur symfony 1.4&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.symfony-project.org/plugins/sfDoctrineMasterSlavePlugin&quot;&gt;sfDoctrineMasterSlavePlugin&lt;/a&gt; rend compatible symfony pour le Cloud Computing (Amazon S3),&lt;/li&gt;
&lt;li&gt;Dustin Whittle nous rappelle la multitude d'outils open source pour les développeurs disponibles sur http://developer.yahoo.com&amp;nbsp;: &lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;YQL&lt;/a&gt; (webservices), &lt;a href=&quot;http://developer.yahoo.com/yslow&quot;&gt;Yslow&lt;/a&gt; (analyse de performances), &lt;a href=&quot;http://developer.yahoo.com/r3/&quot;&gt;R3&lt;/a&gt; (gestion i18n),…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
En conclusion, vivement l'année prochaine&amp;nbsp;!&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-67-1&quot; id=&quot;pnote-67-1&quot;&gt;1&lt;/a&gt;] (credit photo : josema)&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/symfony-live-2010-evenement-international#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/symfony-live-2010-evenement-international#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/67</wfw:commentRss>
      </item>
    
  <item>
    <title>Symfony Live : Particul.es s'invite à Paris</title>
    <link>http://particul.es/blog/index.php?post/Symfony-Live-Particules-s-invite-a-Paris</link>
    <guid isPermaLink="false">urn:md5:f7c823b21b00b94873d7bb17148ff90d</guid>
    <pubDate>Fri, 12 Feb 2010 15:06:00 +0100</pubDate>
    <dc:creator>vince</dc:creator>
        <category>symfony</category>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/vince/symfony-live/logo-sf-live.png&quot; alt=&quot;logo-sf-live.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;logo-sf-live.png, fév. 2010&quot; /&gt;&lt;/p&gt;



&lt;p&gt;Tout le monde attend l'évènement avec impatience, Twitter est gavé de &lt;a href=&quot;http://search.twitter.com/search?q=%23sflive2010&quot; hreflang=&quot;en&quot;&gt;#sflive2010&lt;/a&gt; et on a tous reçu nos confirmations.&lt;/p&gt;


&lt;p&gt;Je parle évidemment du Symfony-Live 2010 ce mardi 16.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://particul.es/blog/index.php?tag/particul.es&quot;&gt;Particul.es&lt;/a&gt; sera encore et toujours de la partie. Donc si ca vous chiffonne, que vous voulez geeker ou que vous tournez sur place, n'hésitez pas à venir me voir&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Je serai facile à trouver, j'aurai une veste fluo, des semelles qui clignotent et un chapeau en tête de bison.&lt;/p&gt;


&lt;p&gt;Et si jamais j'oublie les accessoires, j'aurai peut-être aussi un badge qui dit &quot;Vincent Agnano&quot;...&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Symfony-Live-Particules-s-invite-a-Paris#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Symfony-Live-Particules-s-invite-a-Paris#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/66</wfw:commentRss>
      </item>
    
  <item>
    <title>Doctrine generate migrations or how to upgrade your database in production</title>
    <link>http://particul.es/blog/index.php?post/Doctrine-generate-migrations-or-how-to-upgrade-your-database-in-production</link>
    <guid isPermaLink="false">urn:md5:8464d552a44c81218603c072456857cf</guid>
    <pubDate>Tue, 02 Feb 2010 08:30:00 +0100</pubDate>
    <dc:creator>vince</dc:creator>
        <category>symfony</category>
        <category>database</category><category>doctrine</category><category>migration</category><category>model</category><category>symfony</category><category>task</category><category>versionning</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/vince/doctrine-migration.png&quot; alt=&quot;Doctrine migration&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Doctrine migration, fév. 2010&quot; /&gt;&lt;/p&gt;


&lt;p&gt;4 months ago, you published a website on a production server. Ok, no a big deal. You work on next iterations and today you must update the website.&lt;/p&gt;


&lt;p&gt;Some &lt;em&gt;git push&lt;/em&gt; here, &lt;em&gt;git pull&lt;/em&gt; there (or whatever you use). Still ok. But what about the database ? You did upgade you schema, still you cannot delete all existing datas in the production database, right ?&lt;/p&gt;


&lt;p&gt;How should you manage that ? Check every field you changed, go to phpMyAdmin and manually build each field and table, launch functional tests to check no error appears ? Come on, let's not get silly ! You'll use &lt;a href=&quot;http://particul.es/blog/index.php?tag/doctrine&quot;&gt;Doctrine&lt;/a&gt; migration task !&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Starting up the project&lt;/h5&gt;


&lt;p&gt;One upon a time your schema was straight and clear.
You basically has a list of members with a fistname and a lastname&lt;/p&gt;



&lt;h4&gt;Schema at its first version&lt;/h4&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;Member:
  columns:
    id:         { type: integer(4), primary: true, autoincrement: true }
    firstname:  string(50)
    lastname:   string(50)&lt;/pre&gt;



&lt;h3&gt;Of course you had some basic fixtures :&lt;/h3&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;Member:
  pointbar:
    firstname:  Stéphane
    lastname:   Langlois
  ioo:
    firstname:  Lionel
    lastname:   Chanson
  vinyll:
    firstname:  Vincent
    lastname:   Agnano&lt;/pre&gt;



&lt;p&gt;Then you did something like :&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;symfony doctrine:build --all --and-load&lt;/pre&gt;


&lt;p&gt;Made your modules, wrote your &lt;a href=&quot;http://particul.es/blog/index.php?tag/tests&quot;&gt;tests&lt;/a&gt;, refactored, enjoyed, had lunch and fun, pushed your site on the staging, got it tested and validated and finally run it in production !
Phew, what a journey you had.&lt;/p&gt;


&lt;p&gt;Some time later, you reached today. And today is a great new day because you must update your website. And its database. Push all that in production. Oh, and preserving the datas from that database. Ok ok, you got the point and its issue. Let's go then !&lt;/p&gt;




&lt;h5&gt;Updating the project&lt;/h5&gt;


&lt;p&gt;Members are required to get username.
A new functionality also comes up as they may have tasks.
Easy...&lt;/p&gt;


&lt;h3&gt;First thing first, you update your schema as necessary :&lt;/h3&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;Task:
  columns:
    id:         { type: integer(4), primary: true, autoincrement: true }
    title:      string(100)
    body:       clob
    member_id:  integer(4)
  relations:
    Member:
      class:        Member
      local:        member_id
      foreign:      id
      foreignAlias: Tasks

Member:
  columns:
    id:         { type: integer(4), primary: true, autoincrement: true }
    firstname:  string(50)
    lastname:   string(50)
    username:   string(20)&lt;/pre&gt;



&lt;h3&gt;And update your fixtures :&lt;/h3&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;Member:
  pointbar:
    username:   pointbar
    firstname:  Stéphane
    lastname:   Langlois
  ioo:
    username:   ioo
    firstname:  Lionel
    lastname:   Chanson
  vinyll:
    username:   vinyll
    firstname:  Vincent
    lastname:   Agnano
    
Task: 
  migrations:
    title:    Finish blog article
    body:     Will I ever make it ?
    Member:   vinyll
  mediabrowser:
    title:    Fix sfMediaBrowser tickets
    body:     &amp;quot;Ask some Windows to solve http://github.com/vinyll/sfMediaBrowserPlugin/issues/issue/5&amp;quot;
    Member:   vinyll&lt;/pre&gt;


&lt;h3&gt;Update your model&lt;/h3&gt;


&lt;p&gt;Here is the point. Don't update your schema as you're used to as it would fully recreate your &lt;a href=&quot;http://particul.es/blog/index.php?tag/model&quot;&gt;model&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Instead, you'll use the &lt;a href=&quot;http://particul.es/blog/index.php?tag/migration&quot;&gt;migration&lt;/a&gt; generation from difference.&lt;/p&gt;



&lt;h4&gt;Generating a &lt;a href=&quot;http://particul.es/blog/index.php?tag/migration&quot;&gt;migration&lt;/a&gt;&lt;/h4&gt;


&lt;p&gt;As of &lt;a href=&quot;http://particul.es/blog/index.php?tag/doctrine&quot;&gt;Doctrine&lt;/a&gt; 1.1, you can generate migrations classes automatically from schema differences and not type the whole thing.
Warning : Do NOT run some &quot;symfony doctrine:build --model&quot; if you don't want to run through some error.&lt;/p&gt;


&lt;p&gt;So you may safely hit this line :&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;symfony doctrine:generate-migrations-diff&lt;/pre&gt;


&lt;p&gt;Magic comes out and as the tasks says, it generates migration classes from the differences.&lt;/p&gt;


&lt;p&gt;Check out /lib/migration/doctrine/ and you'll see 2 new files (2 in our example case).
Those are the classes that will updagrade-enable and downgrade-enable our application without reconstructing the whole structure.
The first generated file is the basic columns modification while the second is for indexes and relations (as it must be done after columns creation/deletion, database-wise).&lt;/p&gt;



&lt;h4&gt;Applying a migration&lt;/h4&gt;


&lt;p&gt;Simply run !&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;symfony doctrine:migrate&lt;/pre&gt;



&lt;h3&gt;What happened ?&lt;/h3&gt;


&lt;p&gt;Check out your Base model classes and your &lt;a href=&quot;http://particul.es/blog/index.php?tag/database&quot;&gt;database&lt;/a&gt;. They have been updated, just as if you had run a &quot;doctrine:build --all&quot; but with the awareness of &lt;a href=&quot;http://particul.es/blog/index.php?tag/versionning&quot;&gt;versionning&lt;/a&gt;. We could compare it to &lt;a href=&quot;http://particul.es/blog/index.php?tag/svn&quot;&gt;svn&lt;/a&gt; or &lt;a href=&quot;http://particul.es/blog/index.php?tag/git&quot;&gt;git&lt;/a&gt;.&lt;/p&gt;



&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Doctrine's versionning system&lt;/h2&gt;


&lt;p&gt;It actually happens in 2 places :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One that holds the current version : that's your database ! If you have a look at it, you'll see a table called &quot;migration_version&quot; that has 1 column named &quot;version&quot; and 1 record that holds &quot;2&quot; (&quot;2&quot; in our specific case). That &quot;2&quot; is as you understood the current version you are at !&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The file system : these classes you opened earlier (/lib/migration/doctrine/*) are named by their version number.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore it will be very easy to know at what version you currently are, how far your are from head version and what happens in next/previous version just reading the class files.&lt;/p&gt;



&lt;h4&gt;Update in staging/prod environment&lt;/h4&gt;


&lt;p&gt;You'll be required to migrate your prod version as well.
First update your files going for a &quot;git pull&quot; or whatever. That brings in your migration classes.
Next you just need to run your migration task :&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;symfony doctrine:migrate&lt;/pre&gt;


&lt;p&gt;Now you may run your tests again.
All datas are preserved. You can go back for lunch and fun.&lt;/p&gt;



&lt;p&gt;You may freely &lt;a href=&quot;http://particul.es/blog/index.php?post/#comment-form&quot; hreflang=&quot;en&quot;&gt;comment&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/vinyll&quot; hreflang=&quot;en&quot;&gt;tweet me&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Doctrine-generate-migrations-or-how-to-upgrade-your-database-in-production#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Doctrine-generate-migrations-or-how-to-upgrade-your-database-in-production#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/64</wfw:commentRss>
      </item>
    
  <item>
    <title>Time machine à la mano pour un site Web</title>
    <link>http://particul.es/blog/index.php?post/Time-machine-a-la-mano-pour-un-site-Web</link>
    <guid isPermaLink="false">urn:md5:d05879a212a9b5c7f0d875cf68149c1d</guid>
    <pubDate>Tue, 19 Jan 2010 20:33:00 +0100</pubDate>
    <dc:creator>stef</dc:creator>
        <category>symfony</category>
        <category>rsnapshot</category><category>rsync</category><category>symfony</category><category>synology</category><category>sysadmin</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.ds210j_s.jpg&quot; alt=&quot;ds210j&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;ds210j, janv. 2010&quot; /&gt;
&lt;br /&gt;
En quelques semaines, le disque dur de mon pwG4 est passé en mode casserole et les pistons de ma 306 ont gaufrés leurs soupapes - #fail&lt;br /&gt;
J'ai regardé mon vieux serveur de backup... prise de conscience...  et achat rapide d'un petit NAS&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-65-1&quot; id=&quot;rev-pnote-65-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;.&lt;br /&gt;
&lt;br /&gt;
Pas convaincu par la &lt;em&gt;wonderful ajax webadmin&lt;/em&gt; de &lt;em&gt;synology,&lt;/em&gt; j'ai préféré une solution de &lt;em&gt;backup incrémental&lt;/em&gt; avec &lt;a href=&quot;http://www.rsnapshot.org&quot;&gt;rsnapshot&lt;/a&gt;. L'occasion de poster un billet éclair.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;rsnapshot&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.rsnapshot.org&quot;&gt;rsnapshot&lt;/a&gt;, basé sur &lt;a href=&quot;http://particul.es/blog/index.php?tag/rsync&quot;&gt;rsync&lt;/a&gt;, permet de prendre des instantanés d'un système de fichiers à un moment T. Il créé l'illusion de multiples sauvegardes complètes mais n'occupe, en réalité, qu'une seule sauvegarde accompagnée des incréments.&lt;br /&gt;
&lt;br /&gt;
Facile à mettre en place, c'est une solution plutôt souple et efficace pour garantir l'intégrité des sites Web versatiles.&lt;/p&gt;


&lt;h3&gt;Installation et configuration&lt;/h3&gt;

&lt;p&gt;Quelques scripts &lt;em&gt;perl&lt;/em&gt; à &lt;a href=&quot;http://www.rsnapshot.org/downloads.html&quot; hreflang=&quot;en&quot;&gt;télécharger&lt;/a&gt; et le tour est presque joué.
&lt;br /&gt;
Tuning du fichier de conf. &lt;em&gt;/etc/rsnapshot.conf&lt;/em&gt; :&lt;br /&gt;
&lt;br /&gt;
On spéc. la racine du répertoire de backup&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;# All snapshots will be stored under this root directory.
snapshot_root   /mnt/backup&lt;/pre&gt;


&lt;p&gt;On spéc. les &lt;em&gt;snapshots&lt;/em&gt;, ici :&lt;br /&gt;
2 par jour&lt;br /&gt;
7 jours sur 7&lt;br /&gt;
1 par semaine&lt;br /&gt;
et les 3 derniers mois&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  2
interval        daily   7
interval        weekly  4
interval        monthly 3&lt;/pre&gt;


&lt;p&gt;On en profite pour exclure les lourdos&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;# The include_file and exclude_file parameters, if enabled, simply get
# passed directly to rsync. Please look up the --include-from and
# --exclude-from options in the rsync man page for more details.
#
#include_file   /path/to/include/file
exclude_file    /mnt/backup/exclude&lt;/pre&gt;


&lt;p&gt;Avec dans&lt;em&gt; /mnt/backup/exclude&lt;/em&gt; des trucs du genre&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;cache/&lt;/pre&gt;


&lt;p&gt;Pour être cohérent avec le précédent billet sur &lt;a href=&quot;http://particul.es/blog/index.php?post/La-Nuit-des-morts-vivants-2&quot;&gt;l'accès sécurisé au serveur&lt;/a&gt; on spéc. le port&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;ssh_args        -p 10068&lt;/pre&gt;


&lt;p&gt;Enfin, le coeur, on spéc. l'adresse du distant et le lien &lt;em&gt;relatif&lt;/em&gt; sur le &lt;em&gt;local&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;# EXAMPLE.COM
#backup root@example.com:/etc/  example.com/
backup  particul@88.191.38.139:/www/ particul.es/&lt;/pre&gt;


&lt;p&gt;Pour les pépins de &lt;em&gt;passphrase&lt;/em&gt; et d'authentification par clé&amp;nbsp;: &lt;a href=&quot;http://particul.es/blog/index.php?post/La-Nuit-des-morts-vivants-2&quot;&gt;La-Nuit-des-morts-vivants&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;Test et automatisation&lt;/h3&gt;


&lt;p&gt;Pour tester la validité du fichier de config&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-$ rsnapshot configtest&lt;/pre&gt;


&lt;p&gt;Pour tirer à blanc&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;rsnapshot -t hourly&lt;/pre&gt;


&lt;p&gt;Reste plus qu'à &lt;em&gt;croner&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-$ sudo crontab -e 

0 */12 * * * /usr/local/bin/rsnapshot hourly
50 3 * * *  /usr/local/bin/rsnapshot daily
40 2 * * 6  /usr/local/bin/rsnapshot weekly
30 1 1 * *  /usr/local/bin/rsnapshot monthly&lt;/pre&gt;


&lt;h3&gt;Résultat&lt;/h3&gt;


&lt;p&gt;Nous disposons de &lt;em&gt;snapshots&lt;/em&gt; où les sauvegardes sont stockées. Les dossiers sont créés pour les différents intervalles qui ont été définis. Après quelques mois, le dossier de &lt;em&gt;backup&lt;/em&gt; devrait ressembler à çà&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-$ rsnapshot du particul.es/
5.2G    /.snapshots/hourly.0/particul.es/
5.4M    /.snapshots/hourly.1/particul.es/
5.4M    /.snapshots/daily.0/particul.es/
728M    /.snapshots/daily.1/particul.es/
4.8M    /.snapshots/daily.2/particul.es/
4.8M    /.snapshots/daily.3/particul.es/
6.2M    /.snapshots/daily.4/particul.es/
4.8M    /.snapshots/daily.5/particul.es/
4.8M    /.snapshots/daily.6/particul.es/
12M     /.snapshots/weekly.0/particul.es/
5.3M    /.snapshots/weekly.1/particul.es/
5.4M    /.snapshots/weekly.2/particul.es/
4.9M    /.snapshots/weekly.3/particul.es/
4.8M    /.snapshots/monthly.0/particul.es/
120M     /.snapshots/monthly.1/particul.es/
5.3M    /.snapshots/monthly.2/particul.es/
6.0G    total&lt;/pre&gt;


&lt;h3&gt;Sauvegarde SQL&lt;/h3&gt;


&lt;p&gt;Ne pas oublier de sauvegarder la &lt;em&gt;BD&lt;/em&gt; du site, une petit ajout dans le fichier de conf&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;$.- vi /etc/rsnapshot.conf

backup_script ssh particul@88.191.38.139 mysqldump -u particul --password=s|&amp;lt;1llz --quick --single-transaction particul | /bin/gzip &amp;gt;| ./mysqldump.gz&lt;/pre&gt;


&lt;h3&gt;Conclusion&lt;/h3&gt;


&lt;p&gt;Quelques liens devraient suffire pour clôturer le post...&lt;br /&gt;
&lt;br /&gt;
Rsnapshot est très largement inspiré de l'article de &lt;a href=&quot;http://www.mikerubel.org/computers/rsync_snapshots/&quot; hreflang=&quot;en&quot;&gt;Mike Rubel&lt;/a&gt;&lt;br /&gt;
Un petit &lt;a href=&quot;http://oreilly.com/catalog/9780596102463/index.html&quot; hreflang=&quot;en&quot;&gt;livre&lt;/a&gt; pour aller plus loin.&lt;br /&gt;
&lt;br /&gt;
See ya !!!&lt;br /&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-65-1&quot; id=&quot;pnote-65-1&quot;&gt;1&lt;/a&gt;] &lt;a href=&quot;http://www.clubic.com/article-151126-1-stockage-reseau-nas.html&quot; hreflang=&quot;fr&quot;&gt;comparatif explicite sur clubic&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Time-machine-a-la-mano-pour-un-site-Web#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Time-machine-a-la-mano-pour-un-site-Web#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/65</wfw:commentRss>
      </item>
    
  <item>
    <title>Poste de développeur symfony à Nice</title>
    <link>http://particul.es/blog/index.php?post/Poste-de-d%C3%A9veloppeur-symfony-%C3%A0-Nice</link>
    <guid isPermaLink="false">urn:md5:2627f5353fac6fd8d1b8a0a192e53ca7</guid>
    <pubDate>Tue, 05 Jan 2010 17:17:00 +0100</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>symfony</category>
            
    <description>    &lt;p&gt;L'Agence Pix recherche un développeur symfony confirmé pour démarrer dès janvier 2010 sur un projet de grosse envergure.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Votre rôle&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Avec le directeur multimédia de l'agence et l'équipe technique, vous travaillerez sur les aspects suivants&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;conseil fonctionnel auprès du client&lt;/li&gt;
&lt;li&gt;conception et rédaction du cahier des charges technique&lt;/li&gt;
&lt;li&gt;développement&lt;/li&gt;
&lt;li&gt;maintenance et suivi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;skills&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;développeur symfony confirmé (1 an minimum)&lt;/li&gt;
&lt;li&gt;bonne connaissance d'un framework javascript&lt;/li&gt;
&lt;li&gt;passionné par les nouvelles technologies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le site de l'agence&amp;nbsp;: &lt;a href=&quot;http://www.agencepix.com/&quot; title=&quot;http://www.agencepix.com/&quot;&gt;http://www.agencepix.com/&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Envoyez votre candidature à&amp;nbsp;: recrutement(chez)agencepix(.)com&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Poste-de-d%C3%A9veloppeur-symfony-%C3%A0-Nice#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Poste-de-d%C3%A9veloppeur-symfony-%C3%A0-Nice#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/63</wfw:commentRss>
      </item>
    
  <item>
    <title>sfCheckOut : svn co symfony tags</title>
    <link>http://particul.es/blog/index.php?post/sfCheckOut-svn-co-symfony-tags</link>
    <guid isPermaLink="false">urn:md5:3f11d0fe0ac99a5c73749a5e9b9e2090</guid>
    <pubDate>Thu, 10 Dec 2009 09:00:00 +0100</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>bash</category><category>svn</category><category>symfony</category>    
    <description>    &lt;h3&gt;Un bon développeur est un flemmard.&lt;/h3&gt;


&lt;p&gt;J'en ai eu marre de taper &lt;em&gt;svn co blabla bla&lt;/em&gt; pour récupérer les tags de symfony. Alors me suis fait un script en bash rapide.&lt;/p&gt;


&lt;p&gt;Et comme vous êtes encore plus flemmard que moi&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-62-1&quot; id=&quot;rev-pnote-62-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; vous n'avez plus qu'à télécharger la source dispo en fin de billet.&lt;/p&gt;


&lt;p&gt;Pour l'installer rien de plus simple. Copiez-là dans votre dossier &lt;em&gt;/usr/bin&lt;/em&gt; ou autre endroit de votre &lt;em&gt;$PATH&lt;/em&gt;.
Un petit &lt;em&gt;chmod a+x sfCheckOut&lt;/em&gt; et voilà y a plus qu'à.&lt;/p&gt;


&lt;p&gt;La commande attend comme paramètre la version de symfony qui vous intéresse. Elle crée un dossier avec le numéro de version dans le répertoire courant où vous l'exécutez&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@particul.es:/home/ioo]sfCheckOut 1.4.1

#installe la version 1.4.1 dans le répertoire courant ( /home/ioo/ )

[ioo@particul.es:/home/ioo] ls -la
drwxr-xr-x  7 ioo ioo 4096 déc.  10 00:06  1.4.1&lt;/pre&gt;


&lt;p&gt;Pour ceux qui voudrait installer ceci dans un répertoire type &lt;em&gt;sfProjet/lib/vendor/symfony&lt;/em&gt; vous pouvez facilement remplacer la ligne&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-62-2&quot; id=&quot;rev-pnote-62-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;pre class=&quot;brush: python&quot;&gt;#checkout de svn
if svn co $URL $VERSION&lt;/pre&gt;


&lt;p&gt;par&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: python&quot;&gt;#checkout de svn
if svn co $URL symfony&lt;/pre&gt;


&lt;p&gt;Amusez-vous bien&amp;nbsp;! Et pour ceux qui sont sur Montpellier ce Jeudi 10 Décembre je vous rappelle le qu'il y a un le &lt;a href=&quot;http://particul.es/blog/index.php?post/sfPot-1.4-%C3%A0-montpellier-%21&quot;&gt;sfPot 1.4&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-62-1&quot; id=&quot;pnote-62-1&quot;&gt;1&lt;/a&gt;] Je viens quand même de dire implicitement meilleur, c'est pas gentil ?&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-62-2&quot; id=&quot;pnote-62-2&quot;&gt;2&lt;/a&gt;] Le répertoire courant ici doit être /lib/vendor/&lt;/p&gt;&lt;/div&gt;
</description>
    
          <enclosure url="http://particul.es/blog/public/lionel/sfCheckOut"
      length="423" type="text/plain" />
    
    
          <comments>http://particul.es/blog/index.php?post/sfCheckOut-svn-co-symfony-tags#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfCheckOut-svn-co-symfony-tags#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/62</wfw:commentRss>
      </item>
    
  <item>
    <title>sfPot 1.4 à montpellier !</title>
    <link>http://particul.es/blog/index.php?post/sfPot-1.4-%C3%A0-montpellier-%21</link>
    <guid isPermaLink="false">urn:md5:86e342ebc36a4bfac0db4ea3312565f1</guid>
    <pubDate>Sat, 05 Dec 2009 15:18:00 +0100</pubDate>
    <dc:creator>ioO</dc:creator>
            
    <description>    &lt;h2&gt;C'est l'heure codeur.&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Alors que les releases de symfony suivent le même rythme que les sfPot de montpellier... bon d'accord c'est l'inverse, et pourtant vu la différence de travail :D&lt;/p&gt;


&lt;p&gt;Ce sera une bonne occasion de discuter de la dernière release 1.4 de symfony et de la dernière feature dont vous êtes tombé amoureux.&lt;/p&gt;


&lt;p&gt;Olivier Loynet propose de faire un petit plugin sfFoodPlugin pour l'occasion. Pour cela merci de me faire un retour pour que je réserve dans un restaurant&amp;nbsp;: lionel.chanson &lt;a href=&quot;http://particul.es/blog/index.php?post/[quelque part à&quot; title=&quot;[quelque part à&quot;&gt;[quelque part à&lt;/a&gt;] particul.es. Pour le resto je pensais au Chat Perché.&lt;/p&gt;


&lt;p&gt;Ce sfPot&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-61-1&quot; id=&quot;rev-pnote-61-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; se tient ce &lt;strong&gt;jeudi 10 Décembre&lt;/strong&gt;, encore et toujours au &lt;a href=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=shakespeare+montpellier&amp;amp;sll=43.61147,3.859219&amp;amp;sspn=0.04493,0.076561&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=A&quot;&gt;ShakeSpeare&lt;/a&gt; à partir de 18h30.&lt;/p&gt;


&lt;p&gt;A jeudi&amp;nbsp;!&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-61-1&quot; id=&quot;pnote-61-1&quot;&gt;1&lt;/a&gt;] Est-ce que Lexik sera encore en surnombre ?&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/sfPot-1.4-%C3%A0-montpellier-%21#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfPot-1.4-%C3%A0-montpellier-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/61</wfw:commentRss>
      </item>
    
  <item>
    <title>Workshop Scrum les 2, 3 et 4 décembre prochains par Claude Aubry</title>
    <link>http://particul.es/blog/index.php?post/Workshop-Scrum-les-2%2C-3-et-4-d%C3%A9cembre-prochains-par-Claude-Aubry</link>
    <guid isPermaLink="false">urn:md5:bb4dfa65ddda24271609a2cfb3412db8</guid>
    <pubDate>Wed, 11 Nov 2009 09:38:00 +0100</pubDate>
    <dc:creator>stef</dc:creator>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.scrum-aubry_m.jpg&quot; alt=&quot;scrum-aubry&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;scrum-aubry, oct. 2009&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Formation Scrum animée par Claude Aubry&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Cette formation s'adresse à des équipes qui veulent appliquer Scrum. Elle leur permet de démarrer le projet dans de bonnes conditions.&lt;br /&gt;
La formation s'appuie sur Scrum et inclut des pratiques de XP comme les histoires d'utilisateur (user stories) et le pilotage par les tests d'acceptation (ATDD).&lt;br /&gt;
l'objectif étant de fournir les pistes suffisantes pour se lancer dans un projet web Python.&lt;br /&gt;
&lt;br /&gt;
Pour &lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/inscription-scrum&quot; hreflang=&quot;fr&quot;&gt;s'inscrire&lt;/a&gt; - (8 stagiaires max.)&lt;br /&gt;
Le &lt;a href=&quot;http://scrumpy.particul.es/pdf/programme-formation-scrum-montpellier.pdf&quot; hreflang=&quot;fr&quot;&gt;programme&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/formation-scrum&quot; hreflang=&quot;fr&quot;&gt;Présentation&lt;/a&gt; du stage.&lt;br /&gt;
&lt;br /&gt;
Contact :&lt;br /&gt;
stephane.langlois {at} particul.es&amp;nbsp;: +33 (0) 611 782 563&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Workshop-Scrum-les-2%2C-3-et-4-d%C3%A9cembre-prochains-par-Claude-Aubry#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Workshop-Scrum-les-2%2C-3-et-4-d%C3%A9cembre-prochains-par-Claude-Aubry#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/60</wfw:commentRss>
      </item>
    
  <item>
    <title>Formation Django les 18, 19 et 20 novembre prochains par David Larlet</title>
    <link>http://particul.es/blog/index.php?post/Workshop-Django-les-18%2C-19-et-20-novembre-prochains-par-David-Larlet</link>
    <guid isPermaLink="false">urn:md5:1444be9176009032580ada551ea25db6</guid>
    <pubDate>Mon, 02 Nov 2009 08:33:00 +0100</pubDate>
    <dc:creator>stef</dc:creator>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.django_s.jpg&quot; alt=&quot;django-logo&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;django-logo, oct. 2009&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Formation Django animée par David Larlet&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
Cette formation s'adresse à des développeurs curieux de découvrir les possibilités de Python pour le Web de l'origine du projet à la mise en ligne.&lt;br /&gt;
&lt;br /&gt;
L'accent sera mis sur Django mais des outils Python d'administration système seront aussi mis en pratique au cours de la formation,&lt;br /&gt;
l'objectif étant de fournir les pistes suffisantes pour se lancer dans un projet web Python.&lt;br /&gt;
&lt;br /&gt;
Pour &lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/inscription-django&quot; hreflang=&quot;fr&quot;&gt;s'inscrire&lt;/a&gt; - (8 stagiaires max.)&lt;br /&gt;
Le &lt;a href=&quot;http://scrumpy.particul.es/pdf/programme-formation-django-montpellier.pdf&quot; hreflang=&quot;fr&quot;&gt;programme&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/formation-django&quot; hreflang=&quot;fr&quot;&gt;Présentation&lt;/a&gt; du stage.&lt;br /&gt;
&lt;br /&gt;
Contact :&lt;br /&gt;
stephane.langlois {at} particul.es&amp;nbsp;: +33 (0) 611 782 563&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Workshop-Django-les-18%2C-19-et-20-novembre-prochains-par-David-Larlet#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Workshop-Django-les-18%2C-19-et-20-novembre-prochains-par-David-Larlet#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/59</wfw:commentRss>
      </item>
    
  <item>
    <title>Retour sur la présentation scrumpy, formation Django et workshop Scrum</title>
    <link>http://particul.es/blog/index.php?post/Pr%C3%A9sentation-scrumpy-retour</link>
    <guid isPermaLink="false">urn:md5:3e60cad1a69e7a253514c1ec10cbd803</guid>
    <pubDate>Thu, 29 Oct 2009 14:43:00 +0100</pubDate>
    <dc:creator>stef</dc:creator>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/Capture_d_ecran_2009-10-29_a_14.22.22.png&quot; alt=&quot;logo-scrumpy&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;logo-scrumpy, oct. 2009&quot; /&gt;
&lt;br /&gt;
Vendredi 23 octobre, les aventuriers qui ont réussi à déjouer les travaux de Clapiers ont pu assister à la conférence &lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/presentation&quot; hreflang=&quot;fr&quot;&gt;scrumpy&lt;/a&gt;. L'occasion de se retrouver, de se rencontrer, pour partager la qualité et la clarté des interventions de &lt;a href=&quot;http://aubryconseil.com&quot; hreflang=&quot;fr&quot;&gt;Claude Aubry&lt;/a&gt; et &lt;a href=&quot;http://larlet.fr&quot; hreflang=&quot;fr&quot;&gt;David Larlet&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Un joli voyage dans le monde de Python, Scrum et Django sous forme de &lt;a href=&quot;http://pomodorotechnique.com/&quot; hreflang=&quot;fr&quot;&gt;pomodori&lt;/a&gt; sessions.&lt;br /&gt;
&lt;br /&gt;
Quelques comptes rendus ont poussé sur le web :&lt;br /&gt;
- celui de &lt;a href=&quot;http://bballizlife.com/blog/post/2009/10/Compte-rendu-de-Scrumpy-à-Monptellier&quot; hreflang=&quot;fr&quot;&gt;Loïc Mathaud&lt;/a&gt;&lt;br /&gt;
- et &lt;a href=&quot;http://www.notmyidea.org/article/retours-sur-le-scrumpy-montpellier/&quot; hreflang=&quot;fr&quot;&gt;Alexis Métaireau&lt;/a&gt;&lt;br /&gt;
- ou encore le blog&amp;nbsp;: &lt;a href=&quot;http://www.areyouagile.com/2009/10/django-python-and-the-meaning-of-scrum/&quot; hreflang=&quot;fr&quot;&gt;Are you agile ?&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;
Nous attendons maintenant avec impatience les vidéos de &lt;a href=&quot;http://www.docmorzy.info&quot; hreflang=&quot;fr&quot;&gt;M. Morzy&lt;/a&gt;, retenu dans l'enfer du &lt;a href=&quot;http://www.kino-mtp.fr&quot; hreflang=&quot;fr&quot;&gt;micro-cinéma&lt;/a&gt;. Réception des livrables&amp;nbsp;: semaine prochaine.&lt;br /&gt;
&lt;br /&gt;
Pour patienter &lt;a href=&quot;http://aubryconseil.com&quot; hreflang=&quot;fr&quot;&gt;Claude Aubry&lt;/a&gt; vous propose de replonger dans la conférence en téléchargeant les &lt;a href=&quot;http://particul.es/blog/public/stef/ScrumPourScrumPy.pdf&quot;&gt;slides&lt;/a&gt; de ses interventions.&lt;br /&gt;
&lt;br /&gt;
Pour faciliter l'immersion, la &lt;a href=&quot;http://particul.es/blog/public/stef/prez.pdf&quot;&gt;prez&lt;/a&gt; de &lt;a href=&quot;http://prendreuncafe.com&quot; hreflang=&quot;fr&quot;&gt;Nicolas Perriault&lt;/a&gt; est également disponible.&lt;br /&gt;
&lt;br /&gt;
Surveillez également &lt;a href=&quot;http://biologeek.com&quot; hreflang=&quot;fr&quot;&gt;Biologeek&lt;/a&gt;&amp;nbsp;; les slides de &lt;a href=&quot;http://larlet.fr&quot; hreflang=&quot;fr&quot;&gt;David Larlet&lt;/a&gt; devrait bientôt faire leur apparition.&lt;br /&gt;
&lt;br /&gt;
Un grand merci à David Larlet, Claude Aubry, Nicolas Perriault, Vincent Agnano, Mathieu Vilcot, Lionel Chanson, Jeremy Barthe, Mathieu Tricoire, Loïc Mathaud, Olivier Loynet, Cyril Esnos, Daniel Blanc, IOcean, Wonderful, Capstan, Inra, Neosysteme, Marcopolis, Kokora, Normind, Pyxis, PopDev, ThinkDry, La Souris Verte et ++
&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Workshops Scrum et formation Django&lt;/h2&gt;

&lt;p&gt;&lt;br /&gt;
La présentation Scrumpy est terminée... :-( mais, les ateliers de formations démarrent... ;-)&lt;br /&gt;
&lt;br /&gt;
Inscrivez-vous rapidement (8 stagiaires max.), à l'une ou l'autre des sessions (ou soyez fo{u,lle} venez aux deux) :&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Formation Django animée par &lt;a href=&quot;http://larlet.fr&quot; hreflang=&quot;fr&quot;&gt;David Larlet&lt;/a&gt;&amp;nbsp;: les 18, 19 et 20 novembre prochains&lt;br /&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/inscription-django&quot; hreflang=&quot;fr&quot;&gt;S'inscrire&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/formation-django&quot; hreflang=&quot;fr&quot;&gt;Pour en savoir plus&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Formation Scrum animée par &lt;a href=&quot;http://aubryconseil.com&quot; hreflang=&quot;fr&quot;&gt;Claude Aubry&lt;/a&gt;&amp;nbsp;: les 2, 3 et 4 décembre prochains&lt;br /&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/inscription-scrum&quot; hreflang=&quot;fr&quot;&gt;S'inscrire&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://scrumpy.particul.es/scrum-python-django-montpellier/formation-scrum&quot; hreflang=&quot;fr&quot;&gt;Renseignements complémentaires&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
N'hésitez pas à nous contacter pour d'éventuels renseignements complémentaires :&lt;br /&gt;
stephane.langlois [at] particul.es - +33 (0) 611 782 563&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Pr%C3%A9sentation-scrumpy-retour#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Pr%C3%A9sentation-scrumpy-retour#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/58</wfw:commentRss>
      </item>
    
  <item>
    <title>scrumpy : Django, Python et Scrum à Montpellier avec Claude Aubry et David Larlet</title>
    <link>http://particul.es/blog/index.php?post/scrumpy-%3A-Django%2C-Python-et-Scrum-%C3%A0-Montpellier-avec-Claude-Aubry-et-David-Larlet</link>
    <guid isPermaLink="false">urn:md5:c4068023cbfe46e8a7541e3cfb32b173</guid>
    <pubDate>Wed, 14 Oct 2009 11:50:00 +0200</pubDate>
    <dc:creator>stef</dc:creator>
        <category>django</category><category>python</category><category>scrum</category><category>scrumpy</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/tag.png&quot; alt=&quot;scrumpy&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;scrumpy, oct. 2009&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Scrum, Django et Python s'invite à Montpellier&lt;/h3&gt;


&lt;p&gt;Plongez (tête la première) dans les &lt;em&gt;best practices&lt;/em&gt; de développement et dans l'agilité en vous invitant au séminaire &lt;em&gt;Scrumpy&lt;/em&gt; &lt;strong&gt;gratuit&lt;/strong&gt; et ouvert à tous (managers, chefs de projets, développeurs, IT, …) autour du framework &lt;em&gt;Django&lt;/em&gt;, du langage &lt;em&gt;Python&lt;/em&gt; et du processus agile &lt;em&gt;Scrum&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
L'évènement est programmé pour le &lt;ins&gt;vendredi 23 octobre de 14h00 à 18h00&lt;/ins&gt; à l'hôtel &lt;a href=&quot;http://www.victoriagarden.com/spip.php?rubrique9&quot; hreflang=&quot;fr&quot;&gt;Terracotta&lt;/a&gt; Victoria Garden de Clapiers.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette journée est d'éclairer les participants sur les applications, les potentiels et les bonnes pratiques liées au framework Django et au processus Agile&amp;nbsp;: Scrum :&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pourquoi adopter une méthode agile pour piloter un projet Web&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Pourquoi utiliser un framework dans le développement Web&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Quels sont les atouts de Django face aux autres framework&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Comment utiliser un backlog de produit&amp;nbsp;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
Pour ce faire, &lt;em&gt;Particul.es&lt;/em&gt; a fait appel à &lt;a href=&quot;http://larlet.fr/&quot; hreflang=&quot;fr&quot;&gt;David Larlet&lt;/a&gt; (expert Django/Python) et à &lt;a href=&quot;http://aubryconseil.com&quot; hreflang=&quot;fr&quot;&gt;Claude Aubry&lt;/a&gt; (expert Scrum) qui donneront une conférence durant laquelle ils auront l'occasion de présenter &lt;em&gt;Django',' &lt;/em&gt;Python&lt;em&gt; et &lt;/em&gt;Scrum'' et de répondre aux questions des participants.&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Programme de la présentation du 23 octobre&amp;nbsp;:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;13h00 - 13h45 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Accueil des participants&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;13h45 - 14h15&lt;/strong&gt;&amp;nbsp;:&lt;/li&gt;
&lt;li&gt;Présentation de l'événement =&amp;gt; objectifs &amp;amp; contexte&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14h15 - 14h45 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Les méthodes agiles&amp;nbsp;: le Manifeste agile, la fédération par les valeurs et principes&lt;/li&gt;
&lt;li&gt;La ScrumMania&amp;nbsp;: origines de Scrum, les raisons du succès&lt;/li&gt;
&lt;li&gt;Scrum sur le terrain&amp;nbsp;: utilisations, pratiques d'ingénierie complémentaires pour le développement de logiciel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;15h00 - 15h30 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Découvrez Python&amp;nbsp;: - Automatisation de tâches d’administration sytème - Développement Web Python pour gagner du temps Présentation de Django&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;16h00 - 16h30 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;La mécanique de Scrum avec un exemple Les rôles (équipe, Product Owner, ScrumMaster) Le backlog de produit Les sprints&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;16h45 - 17h15 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Démonstration de développement d’application Web avec Django&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;17h15 - 18h00 :&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Questions réponses&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
Informations et inscriptions sur le site &lt;a href=&quot;http://scrumpy.particul.es&quot; hreflang=&quot;fr&quot;&gt;scrumpy&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ps: n'oubliez pas de vous inscrire les places sont chères d'un côté et gratuites de l'autre.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Contact&lt;/strong&gt; :&lt;br /&gt;
stephane.langlois (at) particul.es&lt;br /&gt;
Tél&amp;nbsp;: +33 (0) 954 813 075&lt;br /&gt;
Mob.&amp;nbsp;: +33 (0) 611 782 563&lt;br /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/scrumpy-%3A-Django%2C-Python-et-Scrum-%C3%A0-Montpellier-avec-Claude-Aubry-et-David-Larlet#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/scrumpy-%3A-Django%2C-Python-et-Scrum-%C3%A0-Montpellier-avec-Claude-Aubry-et-David-Larlet#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/57</wfw:commentRss>
      </item>
    
  <item>
    <title>Reprendre un projet : svn tips pour changer l'url du dépot</title>
    <link>http://particul.es/blog/index.php?post/Reprendre-un-projet-%3A-svn-tips-pour-changer-l-url-du-d%C3%A9pot</link>
    <guid isPermaLink="false">urn:md5:6b8da1368fcbb12ee56baebc887c4933</guid>
    <pubDate>Mon, 12 Oct 2009 08:00:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>ssh</category><category>svn</category><category>svnadmin</category><category>symfony</category>    
    <description>    &lt;p&gt;Suite du billet &lt;a href=&quot;http://particul.es/blog/index.php?post/Reprendre-un-projet-svn-tips-avec-option-depth&quot;&gt;svn tips avec l'option depth&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Maintenant que notre projet est versioné &lt;em&gt;proprement&lt;/em&gt;&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-55-1&quot; id=&quot;rev-pnote-55-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;, je vais changer l'url du dépôt car j'ai changé de serveur. Je nommerai &lt;em&gt;oldsrv/oldrepos&lt;/em&gt; l'ancien dépôt sur l'ancienne machine et &lt;em&gt;newsrv/newrepos&lt;/em&gt; le nouveau dépôt sur la nouvelle machine.&lt;/p&gt;


&lt;h3&gt;svnadmin avec hotcopy&lt;/h3&gt;

&lt;p&gt;Je fais une petite parenthèse sur un moyen simple de déplacer un dépôt sur un même serveur physique.&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@oldsrv]# svnadmin hotcopy oldrepos newrepos&lt;/pre&gt;


&lt;p&gt;Côté copie de travail la commande est un peu plus bas dans le post.&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-55-2&quot; id=&quot;rev-pnote-55-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;h3&gt;svnadmin avec dump&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://svnbook.red-bean.com/en/1.1/ch05s03.html#svn-ch-5-sect-3.5&quot; hreflang=&quot;en&quot;&gt;La documentation complète en anglais &lt;/a&gt;&lt;br /&gt;
La commande avec hotcopy permet des copies locales, les commandes dump et load permettent le changement de serveur.&lt;/p&gt;


&lt;p&gt;La commande svnlook permet d'avoir des infos sur votre dépôt. Pour le dump on a besoin de savoir le nombre de révision du dépôt.&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-55-3&quot; id=&quot;rev-pnote-55-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@oldsrv]# svnlook youngest oldrepos
23&lt;/pre&gt;


&lt;p&gt;On va faire un dump de 23 révision dans un fichier de dump&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@oldsrv]# svnadmin dump oldrepos &amp;gt; reposdump
* Révision 0 déchargée.
* Révision 1 déchargée.
* Révision 2 déchargée.
......
* Révision 22 déchargée.
* Révision 23 déchargée&lt;/pre&gt;


&lt;p&gt;Suivant le dépôt l'opération peut-être lourde, en voir par la taille du fichier de dump.&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@oldsrv]# du -sh reposdump
18M     reposdump&lt;/pre&gt;


&lt;p&gt;Je transfère le fichier sur le nouveau serveur. Petite piqure de rappel &lt;a href=&quot;http://particul.es/blog/index.php?post/La-Nuit-des-morts-vivants-2&quot;&gt;ssh&lt;/a&gt; si besoin ;-)&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@oldsrv]$ rsync reposdump newsrv:/path&lt;/pre&gt;


&lt;p&gt;Je crée le nouveau dépôt sur la nouvelle machine&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@newsrv]# svnadmin create newrepos&lt;/pre&gt;


&lt;p&gt;Je loade dans ce dépôt vide le fichier de dump&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@newsrv]# svnadmin load newrepos &amp;lt; reposdump&lt;/pre&gt;


&lt;p&gt;C'est parti pour un joli défilé d'information, dont voici un extrait&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;------- Révision 12 propagée (commit) &amp;gt;&amp;gt;&amp;gt;

&amp;lt;&amp;lt;&amp;lt; Début d'une nouvelle transaction basée sur la révision 13
     * ajout du chemin : trunk/batch ... fait.
     * ajout du chemin : trunk/batch/load_data.php ... fait.
     * ajout du chemin : trunk/config ... fait.
     * ajout du chemin : trunk/config/config.php ... fait.
     * ajout du chemin : trunk/config/databases.yml ... fait.
     * ajout du chemin : trunk/config/generated-schema-transformed.xml ... fait.
     * ajout du chemin : trunk/config/propel.ini ... fait.
     * ajout du chemin : trunk/config/properties.ini ... fait.
     * ajout du chemin : trunk/config/rsync_exclude.txt ... fait.
     * ajout du chemin : trunk/config/schema.yml ... fait.

------- Révision 13 propagée (commit) &amp;gt;&amp;gt;&amp;gt;&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Changer l'url du dépôt de la copie de travail&lt;/h3&gt;

&lt;p&gt;&lt;br /&gt;
Maintenant que le dépôt est sur le nouveau serveur, il faut modifier les url des copies de travail pour faire un commit au bon endroit.&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-55-4&quot; id=&quot;rev-pnote-55-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;C'est très simple à partir de mon poste client à la racine de la copie je tape&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua]$ svn switch --relocate svn+ssh://oldsrv/oldrepos svn+ssh://newsrv/newrepos
[ioo@namua]$ svn info
Chemin : .
URL : svn+ssh://newsrv/newrepos
Racine du dépôt : svn+ssh://newsrv/newrepos
UUID du dépôt : c6163508-4486-4b83-b2ed-77abc40e56cb
Révision : 23
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : ioo
Révision de la dernière modification : 23
Date de la dernière modification: 2009-10-05 21:25:07 +0200 (lun. 05 oct. 2009)&lt;/pre&gt;


&lt;p&gt;L'URL du dépôt est bien changée et la révision est bien 23 comme sur le précédent dépôt.&lt;/p&gt;


&lt;p&gt;Si vous êtes sage vous aurez droit dans le prochain billet à une petite suite pour reprendre le projet et mettre à jour symfony en limitant les risques de problèmes toujours très rapidement compte tenu du temps/budget.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-55-1&quot; id=&quot;pnote-55-1&quot;&gt;1&lt;/a&gt;] oui rappelez-vous le rep lib n'était pas versioné... une semaine après c'est toujours énorme&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-55-2&quot; id=&quot;pnote-55-2&quot;&gt;2&lt;/a&gt;] je vous force à lire&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-55-3&quot; id=&quot;pnote-55-3&quot;&gt;3&lt;/a&gt;] simple contrôle&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-55-4&quot; id=&quot;pnote-55-4&quot;&gt;4&lt;/a&gt;] sinon on se complique pas mal la tâche. J'ai jamais expérimenté.&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Reprendre-un-projet-%3A-svn-tips-pour-changer-l-url-du-d%C3%A9pot#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Reprendre-un-projet-%3A-svn-tips-pour-changer-l-url-du-d%C3%A9pot#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/55</wfw:commentRss>
      </item>
    
  <item>
    <title>Reprendre un projet : svn tips avec l'option depth</title>
    <link>http://particul.es/blog/index.php?post/Reprendre-un-projet-svn-tips-avec-option-depth</link>
    <guid isPermaLink="false">urn:md5:3b82c582780058658a490a8807d0e4f8</guid>
    <pubDate>Mon, 05 Oct 2009 22:39:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
        <category>svn</category><category>symfony</category>    
    <description>    &lt;p&gt;Pour ce billet un soupçon de nostalgie, beaucoup d'humour&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-54-1&quot; id=&quot;rev-pnote-54-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;
Il y a des jours avec surprise, un petit coup de téléphone d'un client et nous voilà propulsé quelques années plus tôt.
Faut reprendre le projet pour le mettre à jour, sans trop de budget&amp;nbsp;? &lt;strong&gt;un bon petit test d'agilité.&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;L'état des lieux.&lt;/h3&gt;

&lt;p&gt;&lt;br /&gt;
On reprend un projet en symfony 1.0.2, en gros fait en mars/avril 2007 ;-)&lt;br /&gt;
Dose d'humour&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quoi il est pas à jour, en plus il est en prod&lt;/li&gt;
&lt;li&gt;ah oui y a un joli répertoire tests, très très joli même&lt;/li&gt;
&lt;li&gt;oh un peu de svn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Etat des lieux du dépôt avec svn info&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;Chemin : .
URL : svn+ssh://vieuxserveur/svn/rep&lt;/pre&gt;


&lt;p&gt;Etat des lieux de la copie de travail avec svn status (svn st)&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua]$ svn st
?       log
?       lib
?      cache&lt;/pre&gt;


&lt;p&gt;J'ai donc une copie de travail où je n'ai jamais versionné le répertoire lib&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-54-2&quot; id=&quot;rev-pnote-54-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;, et n'est pas définie la propriété svn:ignore sur les répertoires log et cache du projet symfony.
De plus le dépôt n'est plus au bon endroit, ente temps j'ai installé un serveur pour y centraliser mes dépôts.&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Préparer la copie de travail&lt;/h3&gt;

&lt;p&gt;&lt;br /&gt;
Pour le dossier lib c'est très simple&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua]$ svn add lib/ &amp;amp;&amp;amp; svn ci -m &amp;quot;ajout des libs du projet&amp;quot; lib/&lt;/pre&gt;


&lt;p&gt;On regrettera amèrement le fait de n'avoir aucune version des libs sur l'ensemble du projet, mais au moins on peut les récupérer à partir de maintenant.&lt;/p&gt;


&lt;p&gt;Maintenant au tour du cache et du log. N'ayant plus les libs symfony 1.0.2 et ne voyant pas l'utilité pour le moment de les installer, je ne peux supprimer le cache ou purger les logs.
Il faut donc les ajouter au svn sans ajouter leur contenu pour setter la propriété svn:ignore par la suite.&lt;/p&gt;


&lt;p&gt;Je vais utiliser l'option &lt;em&gt;--depth&lt;/em&gt; de la commande &lt;em&gt;svn add&lt;/em&gt; pour définir la profondeur de l'ajout.&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua]$ svn add --depth=empty log
A         log&lt;/pre&gt;


&lt;p&gt;Un petit commit&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-54-3&quot; id=&quot;rev-pnote-54-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;svn ci -m &amp;quot;ajout du rep log&amp;quot; log
Ajout          log
Révision 17 propagée.&lt;/pre&gt;


&lt;p&gt;Je peux tranquillement setter ma propriété svn:ignore&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua]$ svn pset svn:ignore &amp;quot;*&amp;quot; log
Propriété 'svn:ignore' définie sur 'log'&lt;/pre&gt;


&lt;p&gt;et je commit l'ajout de la propriété.&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;[ioo@namua ~/web/api/fr]$ svn ci -m &amp;quot;ajout propriété svn:ignore sur le rep log&amp;quot; log
Envoi          log
Révision 18 propagée.&lt;/pre&gt;


&lt;p&gt;L'option --depth a 4 arguments&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;empty&amp;nbsp;: ajoute le dossier sans les fichiers ou répertoires qu'il contient.&lt;/li&gt;
&lt;li&gt;files&amp;nbsp;: ajoute le dossier avec les fichiers qu'il contient mais pas les répertoires du premier niveau&lt;/li&gt;
&lt;li&gt;immediates&amp;nbsp;: ajout le dossier avec les fichiers et les répertoires sans leur fichier du premier niveau.&lt;/li&gt;
&lt;li&gt;infinity&amp;nbsp;: ajoute récursivement tous les fichiers et répertoires.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La dernière option est équivalent à un svn add rep/&lt;br /&gt;
A noter que cette option est disponible dans d'autres commandes svn comme commit ou checkout par exemple.&lt;/p&gt;


&lt;p&gt;Suite au prochain billet !!!
Nous verrons comment changer l'URL du dépôt pour conserver le versionning.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-54-1&quot; id=&quot;pnote-54-1&quot;&gt;1&lt;/a&gt;] toutes les infos réelles sont supprimées pour des questions de sécu ;-)&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-54-2&quot; id=&quot;pnote-54-2&quot;&gt;2&lt;/a&gt;] c'est énorme !!!&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-54-3&quot; id=&quot;pnote-54-3&quot;&gt;3&lt;/a&gt;] au passage on remarque le nombre excessif de commit du projet :D&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Reprendre-un-projet-svn-tips-avec-option-depth#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Reprendre-un-projet-svn-tips-avec-option-depth#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/54</wfw:commentRss>
      </item>
    
  <item>
    <title>Passer à zsh avec osx snow leopard - (MAJ)</title>
    <link>http://particul.es/blog/index.php?post/Passer-%C3%A0-zsh-avec-osx</link>
    <guid isPermaLink="false">urn:md5:eac8bb5649d51e5bf17353a3710644a9</guid>
    <pubDate>Sat, 26 Sep 2009 14:36:00 +0200</pubDate>
    <dc:creator>stef</dc:creator>
        <category>osx</category><category>shell</category><category>sysadmin</category><category>zsh</category>    
    <description>    &lt;p&gt;Pourquoi faire le pas vers un autre &lt;em&gt;shell&lt;/em&gt; alors que le bon vieux &lt;em&gt;bourne&lt;/em&gt; a toujours fait l'affaire&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Peut-être, juste parce que c'est le genre d'outil qui fait bronzer les &lt;em&gt;geeks&lt;/em&gt;...  &lt;a href=&quot;http://particul.es/blog/index.php?tag/zsh&quot;&gt;zsh&lt;/a&gt; ne retire rien à vos &lt;em&gt;basheries&lt;/em&gt;, il ajoute juste un peu de relief, du confort et une touche de couleur à vos sessions.&lt;/p&gt;


&lt;p&gt;Le présent billet est dédié à &lt;a href=&quot;http://particul.es/blog/index.php?tag/osx&quot;&gt;osx&lt;/a&gt;, si vous appréciez &lt;em&gt;aqua&lt;/em&gt; vous adopterez certainement la philosophie &lt;em&gt;zsh&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/zsh.png&quot; alt=&quot;zsh&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;zsh, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Mettre à jour la version de zsh&lt;/h3&gt;

&lt;p&gt;Sur &lt;em&gt;osx&lt;/em&gt;, &lt;em&gt;zsh&lt;/em&gt; est déjà à sa place &lt;em&gt;/bin/zsh&lt;/em&gt;, mais avant de commencer, on va mettre un coup de blanc.&lt;br /&gt;
Si vous ne jouez pas avec &lt;a href=&quot;http://finkproject.org&quot; hreflang=&quot;fr&quot;&gt;fink&lt;/a&gt;, c'est peut être l'occasion de plonger&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-37-1&quot; id=&quot;rev-pnote-37-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-$ fink install zsh
.-$ fink install zsh-multibyte&lt;/pre&gt;


&lt;p&gt;Sinon vous pourrez &lt;em&gt;compiler&lt;/em&gt; &lt;em&gt;zsh&lt;/em&gt; à la mano à l'adresse suivante&amp;nbsp;: &lt;em&gt;ftp://ftp.zsh.org/pub/&lt;/em&gt;
&lt;br /&gt;&lt;/p&gt;


&lt;h3&gt;Template files for zsh customization&lt;/h3&gt;


&lt;p&gt;&lt;em&gt;Gary Kerbaugh&lt;/em&gt;, &lt;em&gt;William Scott&lt;/em&gt; et &lt;em&gt;Wataru Kagawa&lt;/em&gt; ont développés &lt;a href=&quot;http://code.google.com/p/zsh-templates-osx/downloads/list&quot; hreflang=&quot;en&quot;&gt;un ensemble d'outils&lt;/a&gt; qui font de &lt;em&gt;zsh&lt;/em&gt; et d&lt;em&gt;'osx&lt;/em&gt; les meilleurs potes du monde.&lt;/p&gt;


&lt;p&gt;Par &lt;em&gt;fink&lt;/em&gt;, l'installation est un jeu d'enfant.&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-% fink install zsh-templates
.-% fink install zsh-helpfiles&lt;/pre&gt;


&lt;p&gt;Pour les autres, ce sera à la mano avec la &lt;a href=&quot;http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/ZSH_on_OS_X:_Installing_customization_templates&quot; hreflang=&quot;en&quot;&gt;documentation de Scott&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;Basculer en zsh&lt;/h3&gt;


&lt;p&gt;Pour faire de &lt;em&gt;fink zsh&lt;/em&gt; votre &lt;em&gt;shell&lt;/em&gt; par défaut :&lt;br /&gt;
&lt;br /&gt;
1- Remplacez &lt;em&gt;/bin/zsh&lt;/em&gt; par &lt;em&gt;/sw/bin/zsh&lt;/em&gt; dans &lt;em&gt;/etc/shells&lt;/em&gt;&lt;br /&gt;
2- Exécutez la commande suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;.-$ chsh -s /sw/bin/zsh&lt;/pre&gt;


&lt;p&gt;3- relancez une nouvelle session de terminal&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Configurer zsh&lt;/h3&gt;


&lt;p&gt;Au 1er lancement d'&lt;a href=&quot;http://iterm.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;iterm&lt;/a&gt; - ⌘-n et ⌘-⏎ (&lt;em&gt;enter full screen&lt;/em&gt;), vous tombez directement sur le menu de configuration &lt;em&gt;zsh&lt;/em&gt;, puis sur la configuration spécifique &lt;em&gt;osx&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/editor-zsh.png&quot; alt=&quot;editor-zsh&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;editor-zsh, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Si vous préférez, vous pourrez revenir à cette étape plus tard&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% configure_zsh_templates&lt;/pre&gt;


&lt;p&gt;Pour plus de détails&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% help_zsh_templates&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;Jouer avec zsh sur osx&lt;/h3&gt;


&lt;p&gt;La commande &lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/gdirs.html&quot; hreflang=&quot;en&quot;&gt;gdirs&lt;/a&gt; présente graphiquement vos répertoires.&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% gdirs&lt;/pre&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.gdirs-zsh_m.jpg&quot; alt=&quot;gdirs-zsh&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;gdirs-zsh, mar. 2009&quot; /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/dirstack.html&quot; hreflang=&quot;en&quot;&gt;dirstack&lt;/a&gt; affiche la &lt;em&gt;pile&lt;/em&gt; des répertoires parcourus.&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% dirstack
1 /Users/pointbar
2 /Users/pointbar/Desktop
3 /tmp
4 /Library/WebServer/Documents/jobeet
5 /Library/WebServer/Documents/jobeet/config
6 /Users/pointbar/Documents
7 /Library/WebServer/symfony
8 /Users/stef/Desktop
...
zsh% cd5
/Library/WebServer/Documents/jobeet/config&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;cdf&lt;/strong&gt;&amp;nbsp;: change le &lt;em&gt;répertoire courant&lt;/em&gt; pour celui de la &lt;em&gt;fenêtre active&lt;/em&gt; dans le &lt;em&gt;finder&lt;/em&gt;.&lt;br /&gt;
&lt;strong&gt;fdc&lt;/strong&gt;&amp;nbsp;: change le répertoire de la &lt;em&gt;fenêtre active&lt;/em&gt; pour &lt;em&gt;pwd&lt;/em&gt;.&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-37-2&quot; id=&quot;rev-pnote-37-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;br /&gt;
&lt;strong&gt;posd&lt;/strong&gt;&amp;nbsp;: à l'instar de &lt;em&gt;pwd&lt;/em&gt;, retourne le répertoire courant mais pour la &lt;em&gt;fenêtre active&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Exemple d'utilisation :&lt;/em&gt;&lt;br /&gt;
Dans le &lt;em&gt;finder&lt;/em&gt; la &lt;em&gt;fenêtre courante&lt;/em&gt; montre un &lt;em&gt;site web&lt;/em&gt; en construction&amp;nbsp;: &lt;a href=&quot;http://www.symfony-project.org/jobeet/1_2/&quot; hreflang=&quot;en&quot;&gt; jobeet&lt;/a&gt;. Pour lister récursivement tous les &lt;em&gt;liens symboliques&lt;/em&gt; présents dans les dossiers&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/.jobeet-zsh_s.jpg&quot; alt=&quot;jobeet-zsh&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;jobeet-zsh, mar. 2009&quot; /&gt;&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% pwd
~
zsh% cdf
/Library/WebServer/Documents/jobeet
zsh% print -l **/*(@)

web/sfDoctrinePlugin
web/sfFormExtraPlugin
web/sfProtoculousPlugin&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;posgrep&lt;/strong&gt;&amp;nbsp;: effectue un &lt;em&gt;grep&lt;/em&gt; sur le répertoire de la fenêtre active.&lt;/p&gt;


&lt;p&gt;En reprenant le contexte présenté ci-dessus, pour rechercher une info&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% pwd
~
zsh% posgrep 'password'
/Library/WebServer/Documents/jobeet/config/databases.yml:7:      password: PuCNiK01&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;rmm&lt;/strong&gt;&amp;nbsp;: un &lt;em&gt;rm&lt;/em&gt; qui utilise la &lt;em&gt;corbeille&lt;/em&gt; du &lt;em&gt;finder&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Pour changer son &lt;em&gt;prompt&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% switch_prompt&lt;/pre&gt;


&lt;p&gt;Les &lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/sysadmin_functions.html&quot; hreflang=&quot;en&quot;&gt;fonctions d'administration&lt;/a&gt; d&lt;em&gt;'utilisateurs&lt;/em&gt; et de &lt;em&gt;groupes&lt;/em&gt; sont également très pratiques&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/add_user.html&quot; hreflang=&quot;en&quot;&gt;add_user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/addgroup.html&quot; hreflang=&quot;en&quot;&gt;addgroup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/adduser2group.html&quot; hreflang=&quot;en&quot;&gt;adduser2group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/delete_user.html&quot; hreflang=&quot;en&quot;&gt;delete_user&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/delete_group.html&quot; hreflang=&quot;en&quot;&gt;delete_group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/remove_user_from_group.html&quot; hreflang=&quot;en&quot;&gt;remove_user_from_group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/switch_users.html&quot; hreflang=&quot;en&quot;&gt;switch_user&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un petit exemple rapide&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;zsh% add_user krash &amp;quot;krash&amp;quot; 106 staff 
zsh% switch_users krash&lt;/pre&gt;


&lt;p&gt;Pour virer le gros &lt;em&gt;dashboard&lt;/em&gt; et ses vilains &lt;em&gt;widgets&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;zsh% disable_Dashboard
zsh% enable_Dashboard&lt;/pre&gt;


&lt;p&gt;Au passage, la commande &lt;a href=&quot;http://sage.ucsc.edu/Library/init/zsh/man/html/macmail.html&quot; hreflang=&quot;en&quot;&gt;macmail&lt;/a&gt; utilise l'application &lt;em&gt;mail&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% alias mail='macmail'&lt;/pre&gt;


&lt;p&gt;Et pour le reste&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% man airport
zsh% man function_key_toggle
zsh% man unixify_rootfiles
zsh% man renew_dhcp
zsh% man depfinder&lt;/pre&gt;


&lt;h3&gt;Sésame open toi&amp;nbsp;!&lt;/h3&gt;


&lt;p&gt;La fonction &lt;em&gt;open&lt;/em&gt; est également revisitée&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% open -&amp;lt;tab&amp;gt;
-F    -- open with edit function
-a    -- specify application
-d    -- open with default application
-e    -- open with TextEdit
-f    -- open piped in file
-p    -- open PreferencePane of System Preferences
-s    -- open with sudo_open function
-w    -- open widget
-x    -- open with open-X11&lt;/pre&gt;


&lt;p&gt;Par exemple, pour modifier une préférence&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;zsh% open -p &amp;lt;tab&amp;gt;&lt;/pre&gt;


&lt;p&gt;Pour les applications mieux vaut indéxer la complétion&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% mdfind -onlyin /Applications -onlyin /Developer &amp;quot;kMDItemContentType == 'com.apple.application-*'&amp;quot;&lt;/pre&gt;


&lt;p&gt;ou plus simplement&amp;nbsp;:&lt;/p&gt;
&lt;pre class=&quot;brush: plain&quot;&gt;zsh% enable_faster_open&lt;/pre&gt;


&lt;p&gt;&lt;em&gt;edit&lt;/em&gt; complète &lt;em&gt;open&lt;/em&gt; en ouvrant les &lt;em&gt;fichiers&lt;/em&gt; avec des &lt;em&gt;applications&lt;/em&gt; prédéfinies.&lt;/p&gt;


&lt;p&gt;Pour spécifier vos &lt;em&gt;éditeurs&lt;/em&gt; et autres &lt;em&gt;readers&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% autoload -U my_prefs_edit; my_prefs_edit&lt;/pre&gt;


&lt;p&gt;Puis&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% edit ~/Desktop/*.png&lt;/pre&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;De .bashrc à .zshrc&lt;/h3&gt;

&lt;p&gt;Le billet est vraiment signé &lt;em&gt;zsh&lt;/em&gt; pour &lt;em&gt;osx&lt;/em&gt;, pour profiter rapidement des possibilités propres à &lt;em&gt;zsh&lt;/em&gt;, il suffit de &lt;a href=&quot;http://dotfiles.org/.zshrc&quot; hreflang=&quot;en&quot;&gt;récupérer des ~/.zshrc&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Le &lt;a href=&quot;http://particul.es/blog/public/stef/zshrc.hidden&quot; hreflang=&quot;en&quot;&gt;mien&lt;/a&gt; en perpétuelle mutation...&lt;br /&gt;
Un &lt;a href=&quot;http://particul.es/blog/index.php?post/en&quot;&gt;liste/blog/public/stef/aliases.local&lt;/a&gt; de mes &lt;em&gt;alias&lt;/em&gt; préférés.&lt;/p&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3&gt;La suite...&lt;/h3&gt;


&lt;p&gt;Certaines de ces commandes prennent sens lorsqu'elles sont intégrées dans des &lt;a href=&quot;http://www.apress.com/book/view/1430210591&quot; hreflang=&quot;en&quot;&gt;scripts d'automatisation&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour faciliter cette intégration, chercher les commandes &lt;em&gt;osascript&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre class=&quot;brush: plain&quot;&gt;zsh% dialogue_text=&amp;quot;Do you like Bouzigue's oysters ?&amp;quot;
zsh% osa_display_dialog yes no 'a donf'&lt;/pre&gt;

&lt;p&gt;&lt;img src=&quot;http://particul.es/blog/public/stef/osa-zsh.png&quot; alt=&quot;osa-zsh&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;osa-zsh, mar. 2009&quot; /&gt;&lt;/p&gt;



&lt;p&gt;Nous avons survolé les &lt;em&gt;commandes&lt;/em&gt; relatives à &lt;em&gt;osx&lt;/em&gt;, sans prendre le temps de regarder les &lt;em&gt;fonctions&lt;/em&gt; généralistes relatives à &lt;em&gt;zsh&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://delicious.com/s.langlois/zsh&quot; hreflang=&quot;en&quot;&gt;Quelques liens&lt;/a&gt;...&lt;/p&gt;


&lt;p&gt;Pour les prochains épisodes&amp;nbsp;: &lt;em&gt;completion&lt;/em&gt;, &lt;em&gt;globbing&lt;/em&gt;, &lt;em&gt;alias&lt;/em&gt;, &lt;em&gt;options&lt;/em&gt;, ... et pleins d'autres choses adaptées de &lt;a href=&quot;http://www.apress.com/book/view/1590593766&quot; hreflang=&quot;en&quot;&gt;from bash to z shell&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Maintenant, que celui qui n'a jamais pesté pour faire un &lt;em&gt;2+2&lt;/em&gt; en &lt;em&gt;bash&lt;/em&gt; me jette le 1er pavé...&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-37-3&quot; id=&quot;rev-pnote-37-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;See yah&amp;nbsp;!&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-37-1&quot; id=&quot;pnote-37-1&quot;&gt;1&lt;/a&gt;] install &lt;a href=&quot;http://sage.ucsc.edu/~wgscott/xtal/wiki/index.php/64-bit_Fink_for_10.6#How_to_Bootstrap-Install_Fink-64bit&quot;&gt;fink-64bits&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-37-2&quot; id=&quot;pnote-37-2&quot;&gt;2&lt;/a&gt;] identique à &lt;em&gt;open $PWD&lt;/em&gt; mais sans quitter le shell courant.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-37-3&quot; id=&quot;pnote-37-3&quot;&gt;3&lt;/a&gt;] &lt;em&gt;zcalc 2+2&lt;/em&gt; en zsh VerSus echo 2+2 | &lt;em&gt;bc&lt;/em&gt; ou &lt;em&gt;echo $((2+2))&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Passer-%C3%A0-zsh-avec-osx#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Passer-%C3%A0-zsh-avec-osx#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/37</wfw:commentRss>
      </item>
    
  <item>
    <title>Google sauve Microsoft et le web.</title>
    <link>http://particul.es/blog/index.php?post/Google-sauve-Microsoft-et-le-web.</link>
    <guid isPermaLink="false">urn:md5:6f076f3f3366e1a7b10f45e08ca76640</guid>
    <pubDate>Thu, 24 Sep 2009 00:12:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
            
    <description>    &lt;h2&gt;I had a dream&amp;nbsp;!&lt;/h2&gt;


&lt;p&gt;&lt;br /&gt;
La prise en otage des développeurs et des utilisateurs vient de prendre fin. Google vient de sortir un plugin open source &lt;a href=&quot;http://code.google.com/intl/fr/chrome/chromeframe/&quot;&gt;google chrome frame&lt;/a&gt;, Ce plugin s'installe dans internet explorer 6, 7 et 8, et permet d'utiliser le moteur WebKit et la machine javascript de chrome dans internet explorer.&lt;/p&gt;


&lt;p&gt;Avant même d'exalter sur les possibilités d'utiliser html5 ou des libs comme jquery à fond, une chose fait plaisir. C'est le gain de temps en développement d'un site, fini les tests sur ie 6, 7 et 8, les hacks ou rustines, vous produisez un code au standard pointbar ;-)&lt;/p&gt;


&lt;p&gt;Pour cela une balise meta à rajouter.&lt;/p&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;chrome=1&amp;quot; /&amp;gt;&lt;/pre&gt;


&lt;p&gt;Un navigateur avec le plugin affichera votre site avec le moteur WebKit. Cerise sur le gateau vos png 24 avec transparence seront aux petits ognons même sur ie 6.&lt;/p&gt;


&lt;p&gt;Cela reste un plugin il faut qu'il soit installé, et tout ceci ne tient qu'à sa large diffusion. Encourageons le mouvement&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/Google-sauve-Microsoft-et-le-web.#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/Google-sauve-Microsoft-et-le-web.#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/53</wfw:commentRss>
      </item>
    
  <item>
    <title>sfPot Montpellier bilan et rappel</title>
    <link>http://particul.es/blog/index.php?post/sfPot-Montpellier-rappel-et-bilan</link>
    <guid isPermaLink="false">urn:md5:e5c181b67d81e62bc61bfd5905c1f64b</guid>
    <pubDate>Fri, 11 Sep 2009 09:36:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
            
    <description>    &lt;p&gt;sfPot en petit comité hier soir, n'empêchant aucunement une soirée sympathique. Ce sfPot aura été l'occasion de rencontrer devant une bonne bière l'auteur du blog &lt;a href=&quot;http://www.miximum.fr/&quot;&gt;miximum&lt;/a&gt; dont je vous recommande chaudement la lecture&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-52-1&quot; id=&quot;rev-pnote-52-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;p&gt;La population s'est vu doublée simplement par la présence de la petite agence qui monte &lt;a href=&quot;http://www.lexik.fr&quot;&gt;lexik&lt;/a&gt; apportant dans leur poche l'ambiance festive.&lt;/p&gt;


&lt;p&gt;J'aborderai à peine la désertion spectaculaire de certaines personnes encore scotchées à leur clavier pour taper des messages inférieurs à 140 caractères sur un outils révolutionnairement régressif pour le vocabulaire et les relations sociales. En tout cas je vous souhaite de retrouver votre mojo agile pour pas tourner qu'au café.&lt;sup&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#pnote-52-2&quot; id=&quot;rev-pnote-52-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;


&lt;p&gt;Le prochain sfPot Montpellier release 1.4 se déroulera le Jeudi 10 Décembre 2009. Pour rester informé&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le blog et son fil RSS&lt;/li&gt;
&lt;li&gt;la liste sfPot@particul.es inscription sfpot-subscribe@particul.es&lt;/li&gt;
&lt;li&gt;et sur smsland...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A+&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-52-1&quot; id=&quot;pnote-52-1&quot;&gt;1&lt;/a&gt;] si vous ne connaissez pas déjà... c'est pas bien&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://particul.es/blog/index.php?post/#rev-pnote-52-2&quot; id=&quot;pnote-52-2&quot;&gt;2&lt;/a&gt;] c'est dangereux pour la santé&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/sfPot-Montpellier-rappel-et-bilan#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfPot-Montpellier-rappel-et-bilan#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/52</wfw:commentRss>
      </item>
    
  <item>
    <title>sfPot 1.3 Montpellier</title>
    <link>http://particul.es/blog/index.php?post/sfPot-1.3-Montpellier</link>
    <guid isPermaLink="false">urn:md5:abc9a7594ef73c6c326ba72242240344</guid>
    <pubDate>Tue, 08 Sep 2009 09:41:00 +0200</pubDate>
    <dc:creator>ioO</dc:creator>
            
    <description>    &lt;h2&gt;C'est l'heure codeur&amp;nbsp;!&lt;/h2&gt;


&lt;p&gt;Pendant que Vince écrit des posts sérieux, agiles, et qui vous apprennent des choses utiles, pendant que Stef pompe le style des anciens posts d'un blog tellement pas connu qu'il pensait que ça passerait inaperçu, moi, j'en fous pas une.... mais avec classe.&lt;/p&gt;


&lt;p&gt;Il m'a fallu tout l'été pour préparer la release 1.3 du sfPot Montpellier. C'est ce &lt;strong&gt;jeudi 10 Septembre&lt;/strong&gt;, toujours au &lt;a href=&quot;http://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=shakespeare+montpellier&amp;amp;sll=43.61147,3.859219&amp;amp;sspn=0.04493,0.076561&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=A&quot;&gt;ShakeSpeare&lt;/a&gt; à 18h30.&lt;/p&gt;


&lt;p&gt;Merci de votre petit retour sur lionel.chanson &lt;a href=&quot;http://particul.es/blog/index.php?post/[quelque part à&quot; title=&quot;[quelque part à&quot;&gt;[quelque part à&lt;/a&gt;] particul.es pour estimer le nombre de personnes.&lt;/p&gt;


&lt;p&gt;A jeudi&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://particul.es/blog/index.php?post/sfPot-1.3-Montpellier#comment-form</comments>
      <wfw:comment>http://particul.es/blog/index.php?post/sfPot-1.3-Montpellier#comment-form</wfw:comment>
      <wfw:commentRss>http://particul.es/blog/index.php?feed/atom/comments/51</wfw:commentRss>
      </item>
    
</channel>
</rss>