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

<channel>
	<title>providenz le mag &#187; django</title>
	<atom:link href="http://blog.providenz.fr/Us/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.providenz.fr</link>
	<description>Un magazine pour webdesigners et développeurs</description>
	<lastBuildDate>Mon, 14 Nov 2011 16:11:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Haystack, la recherche avec Django</title>
		<link>http://blog.providenz.fr/2010/03/haystack-la-recherche-avec-django/</link>
		<comments>http://blog.providenz.fr/2010/03/haystack-la-recherche-avec-django/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 23:50:59 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[haystack]]></category>
		<category><![CDATA[recherche]]></category>

		<guid isPermaLink="false">http://blog.providenz.fr/?p=237</guid>
		<description><![CDATA[Les fonctionnalités de recherche sont indispensables pour tout site qui dépasse quelques pages. L&#8217;habitude de taper l&#8217;objet de notre curiosité dans le champ d&#8217;un moteur de recherche a profondément modifié nos habitudes de navigation, et il est souvent plus rapide et intuitif d&#8217;utilser la recherche embarquée d&#8217;un site que de naviguer laborieusement dans son arborescence [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-large wp-image-242 alignnone" title="haystack" src="http://blog.providenz.fr/wp-content/uploads/2010/03/haystack-520x195.jpg" alt="haystack" width="520" height="195" /></p>
<p>Les fonctionnalités de recherche sont indispensables pour tout site qui dépasse quelques pages. L&#8217;habitude de taper l&#8217;objet de notre curiosité dans le champ d&#8217;un moteur de recherche a profondément modifié nos habitudes de navigation, et il est souvent plus rapide et intuitif d&#8217;utilser la recherche embarquée d&#8217;un site que de naviguer laborieusement dans son arborescence et ses différentes catégories.</p>
<p>Implémenter une fonction de recherche dans un site Django n&#8217;est pas une tâche triviale, notamment si des critères de performance entrent en jeu.</p>
<p>Le projet le plus abouti dans ce domaine est <a title="recherche avec django" href="http://haystacksearch.org/">Haystack </a>(meule de foin). Développé par Daniel Lindsay, de <a href="http://toastdriven.com/">toastdriven</a>, haystack est en fait une interface entre votre contenu et un des moteurs de recherche supportés. Haystack s&#8217;intègre assez facilement avec la plupart de vos applis. Nous avons à plusieurs reprises utilisés Haystack pour des clients de <a href="http://providenz.fr">providenz</a>.</p>
<p>Les moteurs de recherches sont les suivants:</p>
<ul>
<li><a href="http://lucene.apache.org/solr/">solr</a>: moteur open source basé sur la lib java Lucene</li>
<li><a href="http://xapian.org/">xapian</a>: moteur open source écrit en c++</li>
<li><a href="http://bitbucket.org/mchaput/whoosh/wiki/Home">whoosh</a>: moteur open source en pur python. Pas le plus performant pour un site volumineux, mais le plus simple à installer, notamment sur un serveur mutualisé.</li>
</ul>
<p>La mise en place d&#8217;haystack  est assez simple.</p>
<ol>
<li>installer haystack et le moteur désiré</li>
<li>créer un searchindex.py qui va définir les champs des models à inclure et enregistrer (register) l&#8217;index, un peu sur le principe des admin.py</li>
<li>écrire un template qui va générer le contenu que le moteur va indexer. C&#8217;est très intéressant pour les rendus complexes.</li>
<li>ajouter les urls d&#8217;haystack à l&#8217;urlconf</li>
<li>ecrire un template de recherche (champ/resultat)</li>
</ol>
<p>L&#8217;indexation est commandée par un &#8216;manage.py rebuild_index&#8217;, les mises à jour par &#8216;manage.py update_index&#8217;. ces commandes peuvent être déclenchée par des cronjobs pour maintenir l&#8217;index à jour.</p>
<p>Haystack dispose de nombreuses options et possibilités, dépendant en partie du moteur choisi : faceting, plus de résultats, mise en surbrillance, recherche temps réel&#8230;</p>
<p>La logique de l&#8217;appli est conforme aux principes généraux de django, on n&#8217;est pas dépaysé.</p>
<p>On apprécie vraiment haystack, c&#8217;est une appli vraiment agréable à mettre en place.</p>
<p>Vous trouverez <a href="http://haystacksearch.org/">la page d&#8217;Haystack</a>, les <a href="http://docs.haystacksearch.org/dev/">docs</a>, et un <a href="http://groups.google.com/group/django-haystack">groupe de discussion</a>.</p>
<p>Bonne recherche !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.providenz.fr/2010/03/haystack-la-recherche-avec-django/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Django</title>
		<link>http://blog.providenz.fr/2009/11/django/</link>
		<comments>http://blog.providenz.fr/2009/11/django/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 16:35:06 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[run-up.fr]]></category>

		<guid isPermaLink="false">http://www.blog.providenz.fr/?p=191</guid>
		<description><![CDATA[Nous avons eu quelques questions au sujet de Django après le lancement de run-up. &#171;&#160;C&#8217;est quoi, un framework? &#171;&#160;,&#160;&#187;Pourquoi celui-là et pas un autre&#160;&#187;, &#171;&#160;Pourquoi Django pour un site simple&#160;&#187; etc. Donc on a décidé de se fendre d&#8217;un petit post pour expliquer notre vision des choses sur Django. Django est tout simplement un framework [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blog.providenz.fr/"><img class="alignnone size-large wp-image-196" title="django" src="http://www.blog.providenz.fr/wp-content/uploads/2009/11/django-520x236.png" alt="django" width="520" height="236" /></a><br />
Nous avons eu quelques questions au sujet de Django après le lancement de <a href="http://run-up.fr">run-up</a>.</p>
<p>&laquo;&nbsp;C&#8217;est quoi, un framework? &laquo;&nbsp;,&nbsp;&raquo;Pourquoi celui-là et pas un autre&nbsp;&raquo;, &laquo;&nbsp;Pourquoi Django pour un site simple&nbsp;&raquo; etc.</p>
<p>Donc on a décidé de se fendre d&#8217;un petit post pour expliquer notre vision des choses sur Django.<span id="more-191"></span> Django est tout simplement un framework web, c&#8217;est à dire une bibliothèque de programmation augmentée de plusieurs outils pour vous simplifier le travail.</p>
<p>Django est basé sur python, un language orienté objet qui existe depuis une vingtaine d&#8217;années. Django est comparable à Symphony (pour php), cakephp, ruby on rails et une rafale de frameworks qui fleurissent depuis 10ans pour le développement web. l&#8217;avantage d&#8217;un (bon) framework, c&#8217;est de vous donner accès à des classes de haut niveau pour développer lus vite sans réinventer la roue, tout en gardant la granularité suffisante du language de base.</p>
<p>Django nous a séduit, car il dipose d&#8217;un ORM (mapping relationnel objet) plutôt efficace, d&#8217;une utilisation du design pattern MVC (modèle vue contrôleur), d&#8217;une interface d&#8217;amin automatiquement générée, d&#8217;une gestion des urls très fines et performante, d&#8217;un langage de template, de cache, d&#8217;outils de sécurité.</p>
<p>Développé depuis<del datetime="2009-11-28T13:23:02+00:00"> 2006</del>2003 par les développeurs d&#8217;un journal du Kansas, c&#8217;est un outil mature utilisé sur de nombreux sites. Django a été baptisé en hommage à Django Reihnardt C&#8217;est django que google utilise (avec un autre ORM) sur l&#8217;app engine. Si google s&#8217;en sert, ça doit pas être si mal&#8230;</p>
<p><img class="alignnone size-large wp-image-200" title="magic-pony-django-wallpaper-green" src="http://www.blog.providenz.fr/wp-content/uploads/2009/11/magic-pony-django-wallpaper-green-520x325.png" alt="magic-pony-django-wallpaper-green" width="520" height="325" /></p>
<p>La communauté a un sens certain de l&#8217;auto dérision</p>
<p>Comme on l&#8217;a dit plus haut, Django repose sur python. A la base, on était plutôt php.  Mais un des avantages de python, c&#8217;est que ça ne sert pas qu&#8217;au web. Vous pouvez écrire des applis <ins datetime="2009-11-28T13:23:02+00:00">multi </ins>plateformes en python, automatiser des tâches systèmes sur votre desktop ou votre serveur. Php, ruby on rails, ça ne sert qu&#8217;au web. Ce qui choque au début avec python, c&#8217;est l&#8217;indentation.</p>
<p>Python n&#8217;utilise pas de bloc d&#8217;indentation comme des accolades, des begin ou je ne sais quoi. La structure est basée sur des retraits de paragraphes, et ça contraint à présenter un code super propre visuellement. Voici un extrait de code du <a href="http://www.djangobook.com">livre de django</a></p>
<p><code>class Author(models.Model):<br />
&nbsp;&nbsp;&nbsp;first_name = models.CharField(max_length=30)<br />
&nbsp;&nbsp;&nbsp;last_name = models.CharField(max_length=40)<br />
&nbsp;&nbsp;&nbsp;email = models.EmailField()<br />
class Book(models.Model):<br />
&nbsp;&nbsp;&nbsp;title = models.CharField(max_length=100)<br />
&nbsp;&nbsp;&nbsp;authors = models.ManyToManyField(Author)<br />
&nbsp;&nbsp;&nbsp;publisher = models.ForeignKey(Publisher)<br />
&nbsp;&nbsp;&nbsp;publication_date = models.DateField()<br />
</code></p>
<p>Quand on a tendance à être quelque peu désordonné, ça aide à bien ranger son code ! Django est conçu pour développer rapidement, proprement et efficacement. En moins de 30 lignes de code, vous aurez développé un blog basique. Pour le développement, django embarque un serveur spécifique qui vous permet de travailler en local.  Attention cependant. Django demeure un outil de développeur, et réaliser l&#8217;équivalent de CMS tels que Typolight ou wordpress va vous demander un peu de travail !  La documentation disponible sur django est très importante, mais principalement en anglais. La <a href="http://docs.django-fr.org/">documentation française de django</a> n&#8217;est pas encore achevée. Plusieurs ouvrages sont également disponibles (en anaglais).  Au chapitre des inconvénients:</p>
<ul>
<li>La plupart des ressources sont en anglais.</li>
<li>Comme tous les frameworks, il représente une charge pour le serveur.Mais bon, on préfère que la charge de travail soit pour le serveur plutôt que pour nous .</li>
<li>Peu d&#8217;hébergeurs proposent Django.</li>
</ul>
<p>On vous recommande au passage notre <a href="http://alwaysdata.com">hébergeur django</a> et son pack gratuit, pour tester le framework.  Enfin, pour répondre à une question issue des commentaires, on a jugé qu&#8217;il valait mieux développer nos applis maison que de bricoler des cms existants, ce qui requiert la compréhension leur code source.  Django permet de faire ça plus vite, et mieux.<br />
La prochaine fois, on vous parlera d&#8217;un <a href="http://spinlock.ch/pub/feincms/">cms django</a> très prometteur</p>
<p>Une petite webographie :<br />
<a href="http://www.djangoproject.com/">django</a><br />
<a href="http://www.djangosites.org/">www.djangoproject.com/</a><br />
<a href="http://www.djangosites.org/">www.djangosites.org/</a><br />
<a href="http://www.djangosnippets.org/">www.djangosnippets.org/</a><br />
<a href="http://www.biologeek.com/">Un des évangélistes français de django</a><br />
<a href="http://www.breek.fr/le-lab/frameworks">Benchmark de frameworks web</a><br />
<a href="http://www.django-fr.org/">Django-fr</a><br />
<a href="http://groups.google.com/group/django-users/">Le google group django</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.providenz.fr/2009/11/django/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Lancement de run-up.fr</title>
		<link>http://blog.providenz.fr/2009/10/lancement-de-run-up-fr/</link>
		<comments>http://blog.providenz.fr/2009/10/lancement-de-run-up-fr/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 13:53:25 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Graphisme]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[mantel]]></category>
		<category><![CDATA[nouveau]]></category>

		<guid isPermaLink="false">http://www.blog.providenz.fr/?p=162</guid>
		<description><![CDATA[Le 1er octobre, nous avons mis en ligne le site run-up.fr Run-up.fr est un site de coaching pour la course de trail. Le trail, ou ultrarunning est une activité (considérée comme sport extreme) consistant à courir de longues distances en pleine nature. Longue distance ça veut dire 40, 50 60 bornes&#8230;(oui c&#8217;est long!) et pleine [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://run-up.fr"><img class="size-medium wp-image-167 alignnone" title="run-up_fr_accueil" src="http://www.blog.providenz.fr/wp-content/uploads/2009/10/run-up_fr_accueil-456x500.png" alt="run-up.fr coaching pour l'ultrarunning et le trail running" width="456" height="500" /></a></p>
<p>Le 1er octobre, nous avons mis en ligne le site <a title="coach trail running" href="http://run-up.fr/" target="_blank">run-up.fr</a></p>
<p>Run-up.fr est un site de coaching pour la course de trail. Le trail, ou ultrarunning est une activité (considérée comme sport extreme) consistant à courir de longues distances en pleine nature.</p>
<p>Longue distance ça veut dire 40, 50 60 bornes&#8230;(oui c&#8217;est long!) et pleine nature ça veut dire qui monte beaucoup (plusieurs milliers de mètres).</p>
<p><span id="more-162"></span></p>
<p>Run-up.fr est édité par Franck Mantel, un des meilleurs français de la discipline.Franck est également un ami avec lequel nous avons partagé des ascensions alpines sur le granit chamoniard.</p>
<p>Franck est venu nous trouver au mois de juillet pour nous parler de son projet. Il entraînait bénévolement des athlètes depuis pas mal de temps et souhaitait passer à la vitesse supérieure pour en faire son activité.</p>
<p>Le développement du site s&#8217;est déroulé d&#8217;une manière extrêmement fluide malgré le planning chargé de Franck.Ce dernier vient également d&#8217;obtenir un master Recherche en science et mouvement humain et maintien un entraînement au plus haut niveau pour la saison de trail .</p>
<p>Après avoir jeté les bases de l&#8217;architecture du site, Franck a rédigé la base du contenu que nous avons reformulé pour l&#8217;adapter aux internautes.</p>
<p>Cinq séances de photos dans les collines varoises et les stades de Hyères et de Toulon nous ont permis de récolter les images nécessaires. Franck s&#8217;est prêté inlassablement au jeu du mannequin photo, bien que ça ne soit pas sa tasse de thé, et notre photographe a réussi quelques clichés bien sympas.</p>
<p>Franck a immédiatement aimé la maquette présentée. On connait un peu le client, et on savait qu&#8217;il apprécierait un design épuré.</p>
<p>La phase la plus longue a sûrement été le travail sur le logo. Franck a produit une ébauche sous word, d&#8217;après une suggestionde notre part.</p>
<p>On l&#8217;a repris sous illustrator après quelques modifs et le choix concerté d&#8217;une belle police (Gotham)</p>
<p>Le logo est très réussi et délivre un message en accord avec l&#8217;esprit du site : montagne, effort&#8230;</p>
<p>Plutôt qu&#8217;utiliser notre cms de prédilection typolight, on s&#8217;est orienté vers un développement maison basé sur django (un framework python) en prévision des futures évolutions du site : blog, gallerie et plateforme de suivi d&#8217;athlètes.</p>
<p>Une semaine de test sur un hébergement&#8230;de test, puis la mise en ligne.</p>
<p>On est assez content du résultat ( attention on va se balancer des fleurs)</p>
<p>Visuellement, s&#8217;est simple et de bon gôut, les images sont percutantes.</p>
<p>Techniquement, on a implémenté des fonctionnalités pratiques pour le webmaster : signalement automatique  par mail des éventuels problèmes, antispam, éditeur riche pour rédiger ou modifier les pages, sitemaps et ping.</p>
<p>Niveau performances, on craignait d&#8217;avoir à réduire les images pour accélérer le chargement, mais le temps de chargement est très acceptable, notamment grâce au cache et à la rapidité de Django, des pages réduites et compressées et un <a href="http://www.alwaysdata.com" target="_blank">hébergeur super véloce et efficace</a>.</p>
<p>Franck s&#8217;est dit satisfait, c&#8217;est le plus important.</p>
<p>Profitons-en pour remercier Steeve, Hélène (les athlètes en photos) et Xavier Nesi pour son accueil au sein de la structure <a href="http://www.esphi.fr" target="_blank">Esphi</a>.</p>
<p><a href="http://providenz.fr">Providenz</a> souhaite beaucoup de succès à Franck dans ce projet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.providenz.fr/2009/10/lancement-de-run-up-fr/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

