title:      ★ Objectifs et motivations de la refonte de ce blog
slug:       objectifs-et-motivations-de-la-refonte-de-ce-blog
date:       2007-02-24 20:00:24
type:       post
vignette:   images/logos/biologeek.png
contextual_title1:  Biologeek (enfin) propulsé par Django
contextual_url1:    20080423-biologeek-enfin-propulse-par-django
contextual_title2:  Ajout des flux RSS, du sitemap et des commentaires avec Django
contextual_url2:    20070623-ajout-des-flux-rss-du-sitemap-et-des-commentaires-avec-django
contextual_title3:  De Dotclear à Django : migration des données et redirections
contextual_url3:    20070523-de-dotclear-a-django-migration-des-donnees-et-redirections

<p>Je comptais faire un premier billet listant les différentes étapes de la refonte mais je me suis finalement ravisé, je n'aime pas <a href="http://fr.wikipedia.org/wiki/Spoiler">spoiler</a> les bonnes séries ;-). Tout ce que je peux vous dire c'est qu'il y aura une dizaine d'étapes et qu'en comptant une étape par semaine environ ça nous amène vers fin avril (les étapes paraissent longues mais c'est surtout la rédaction du billet associé qui prend du temps...). Étant donné qu'on travaille mieux avec des jalons, je fixe arbitrairement le 23 avril comme date de mise en production.</p>

<p>Lorsque je débute un projet, j'aime bien commencer par une <strong>phrase clef</strong> qui permet de garder le cap tout au long du projet (certains appellent ça le <a href="https://launchpad.net/ubuntu/+bug/1">bug n°1</a> par exemple). Voici celle choisie pour cette refonte&nbsp;:</p>


<blockquote><p><strong>Accroître la flexibilité de l'application de manière à davantage mettre en valeur le contenu existant et permettre d'augmenter l'interactivité du site en proposant de nouveaux contenus.</strong></p></blockquote>


<p>Explications point par point&nbsp;:</p>


<h2>Accroître la flexibilité de l'application</h2>


<p>C'est la raison essentielle de cette refonte&nbsp;: <strong>reprendre le contrôle du code de l'application dont je me sers pour avoir la liberté de faire ce qui me plaît facilement et rapidement</strong>. Je ressens une énorme frustration actuellement à ne pas pouvoir ajouter les fonctionnalités qui me semblent intéressantes sans devoir passer par un plugin (lorsqu'il existe...). D'autant que je dois avoir une aversion au moins équivalente pour PHP de celle que j'ai pour Java (hop un petit troll au passage ça fait pas de mal ;-)).</p>


<p>En contrepartie, il y a un travail conséquent à réaliser, même avec un framework web. Heureusement des snippets commencent à voir le jour un peu partout permettant d'accélérer ce développement avec Django, pour ajouter des <a href="http://www.personal-api.com/train/2007/jan/31/how-add-trackbacks-django/">trackbacks</a>, des <a href="http://www.personal-api.com/train/2007/feb/01/pingbacks-xml-rpc-and-django/">pingbacks</a> ou même une <a href="http://code.djangoproject.com/wiki/CookBookShortcutsOpenIDAuthentication">identification via OpenId</a>, c'est autant de boulot en moins. Alors bien sûr le prix à payer est énorme puisqu'il s'agit de recoder une application complète mais justement cela va me permettre de faire la distinction entre les différents contenus.</p>


<p>Il y a aussi de nombreuses limitations propres à Dotclear 1 qui m'énervent (syntaxe wiki exotique, administration, etc) et je voudrais en profiter pour changer tout ça. Je ne fais pas ici le procès de <a href="http://www.dotclear.net/">Dotclear</a> qui est un formidable outil de blog et qui doit surement avoir corrigé certaines de ces irritations dans sa version 2 mais je crois qu'un outil de blog n'est tout simplement plus adapté à ce que je veux faire ici.</p>


<p><em>Un autre inconvénient est bien sûr l'hébergement, j'ai la chance de connaitre <a href="http://www.typhon.eu/">un hébergeur de qualité</a> mais je suis conscient qu'il n'en est pas de même pour tout le monde.</em></p>


<h2>davantage mettre en valeur le contenu existant</h2>


<p>Le contenu actuel est un pré-requis à la refonte (qui serait sinon un nouveau départ), j'ai commencé à passer en méta-données les premières images que je mettais en dur dans le code, c'est un travail fastidieux. J'essaye au passage de corriger quelques fautes d'orthographes grâce à Firefox, c'est marrant c'est toujours les mêmes :-). Par ailleurs, j'ai enfin trouver un convertisseur python wiki2xhtml, <a href="http://sveetch.net/">merci David</a>&nbsp;! Ce n'était pas un point bloquant car j'aurais pu me baser sur le html mais c'est toujours plus agréable si je veux éditer de vieux billets.</p>


<p>En ce qui concerne la mise en valeur, le <a href="https://larlet.fr/david/biologeek/archives/20070205-ergonomie-d-un-blog-analyse-des-reponses/">sondage précédemment réalisé</a> va m'être d'une grande aide. Je n'ai pas encore fignolé les vues (c'est l'objet de la prochaine itération) mais c'est bien parti. Les billets ne seront plus basés sur leur date de publication mais sur leurs tags. Enfin je ne me suis pas encore décidé entre tags ou tags + catégorie principale. J'ai bien envie aussi de rajouter des billets et des liens externes relatifs aux billets de façon manuelle.</p>


<p>Il reste deux problèmes auxquels je veux tordre le cou&nbsp;:</p>


<h3>La pagination</h3>


<p>Ça fait un moment que j'y pense et plus j'y pense plus je me dis que c'est crétin de mettre de la pagination sur un affichage antéchronologique car le contenu d'une <abbr title="Uniform Resource Locator">URL</abbr> change à chaque nouveau billet. Il y a deux solutions à ma connaissance&nbsp;:</p>
<ul>
<li>tout mettre sur la même page mais dans ce cas là interviennent les problèmes d'indexation par les moteurs de recherche et de temps de téléchargement lors des visites. Je pourrais ne mettre que les introductions des billets pour alléger la page mais vous n'aimez pas ça non plus...</li>
<li>mettre en place <a href="http://www.humanized.com/weblog/2006/04/25/no_more_more_pages/">un défilement infini</a> (enfin presque) comme vous pouvez le voir sur <a href="http://www.humanized.com/reader/">l'agrégateur d'Humanized</a>. C'est un concept intéressant même s'il faut des alternatives au niveau du référencement et de la mise en favori d'une page donc ça devient un peu lourd.</li>
</ul>

<p>Ces deux solutions ne sont pas très satisfaisantes, peut-être avez-vous mieux à proposer&nbsp;?</p>


<h3>Le référencement</h3>


<p>Les <abbr title="Uniform Resource Locator">URL</abbr> du site vont forcément changer. Ce n'est pas une limitation de Django, c'est plus un blocage personnel à conserver «&nbsp;index.php » dans chacun de mes liens. Alors bien sûr un tas de redirections vont être mises en place pour ne pas perdre les visiteurs et... les moteurs de recherche. Cela signifie que toutes les pages vont être réindexées lors de la refonte. À ce moment là, pourquoi ne pas changer de nom de domaine&nbsp;? Je crois savoir que Google se base sur l'ancienneté des noms de domaines mais est-ce un frein suffisant&nbsp;? J'aime pas trop orienter mes décisions en fonction du <abbr title="Page Rank">PR</abbr> donc ça reste à déterminer...</p>


<h2>augmenter l'interactivité du site en proposant de nouveaux contenus</h2>


<p>Une nouvelle partie va apparaître sur ce site&nbsp;: <strong>le bistrot</strong>. Ça fait longtemps que j'attends de pouvoir faire ça, la rubrique Ailleurs actuelle étant trop réductrice. Il s'agit à la fois d'un <a href="http://www.lespacedunmatin.info/blog/index.php?2007/02/07/728-agregateur-humain">filtre à la masse d'information quotidienne</a> qui peut transiter sur la toile mais aussi une occasion de vous faire participer à ce filtrage en proposant vos brèves. Je ne sais pas encore si ça peut marcher, je voudrais vraiment que cette partie se distingue des digg-like par la qualité des brèves/liens proposés. Je commencerais sûrement en solo pour donner le ton mais je compte implémenter quelque chose dans ce sens, ça pourra aussi être l'occasion d'être un peu plus léger.</p>


<p>Une <a href="https://larlet.fr/david/biologeek/archives/20070104-comment-utiliser-openid-la-solution-d-identification-tant-attendue/">identification via OpenID</a> est aussi envisagée bien entendu avec la liberté que ça laisse pour faire des comptes utilisateurs personnalisés.</p>


<p>Concernant maintenant les contenus qui vont disparaître, la page sur la syndication probablement (ce sera l'objet d'un billet) et les liens en partie remplacés par les brèves. La page contact sera étoffée d'un «&nbsp;à propos de l'auteur » qui vous semble important à la lecture d'un blog.</p>


<p>Au final, pas mal de boulot mais rien d'irréalisable avec un peu de volonté (et beaucoup de temps ;-), prochaine étape&nbsp;: <strong>les interfaces</strong>.</p>


<h3>Étapes de la refonte réalisées&nbsp;:</h3>

<ul>
<li><a href="https://larlet.fr/david/biologeek/archives/20070308-contenus-templates-url-agencement-interfaces/">Contenus + templates + URL + agencement = interfaces</a></li>
<li><a href="https://larlet.fr/david/biologeek/archives/20070412-initialisation-et-modeles-de-donnees-de-la-refonte/">Initialisation et modèles de données de la refonte</a></li>
<li><a href="https://larlet.fr/david/biologeek/archives/20070424-vues-generiques-heritage-et-templatetags-developpez-rapidement-avec-django/">Vues génériques, héritage et templatetags&nbsp;: développez rapidement avec Django</a></li>
<li><a href="https://larlet.fr/david/biologeek/archives/20070523-de-dotclear-a-django-migration-des-donnees-et-redirections/">De Dotclear à Django&nbsp;: migration des données et redirections</a></li>
<li><a href="https://larlet.fr/david/biologeek/archives/20070623-ajout-des-flux-rss-du-sitemap-et-des-commentaires-avec-django/">Ajout des flux RSS, du sitemap et des commentaires avec Django</a></li>
</ul>
