# Biologeek (enfin) propulsé par Django

On pourra dire que j'ai tenu les délais annoncés (j'ai été bien inspiré de ne pas indiquer l'année :-)). Il y aura eu des hauts et des bas niveau motivation avec une très longue période de pause. Petit tour du propriétaire.

## Moteur

La motivation finale vient du fait que je ne peux pas mener deux projets personnels de front et celui-ci va me servir de bac à sable pour le second donc je lui ai donné la priorité. Vous voila averti(e)s.

Ça m'a demandé pas mal de temps pour tout peaufiner, l'application django est hébergée par Typhon (si ça rame c'est entièrement ma faute car je suis sur une bête de course) et vous pouvez télécharger le code sur le dépôt mercurial (un énorme merci à Intuxication au passage qui propose un service excellent).

## Intérieur

Comme annoncé précédemment, les URL ont changées pour adopter une architecture que je trouve plus logique qui me permet de bien faire la distinction entre ce qui est éphémère ou pas, donnée ou représentation. Normalement toutes les précédentes adresses sont redirigées au bon endroit. N'hésitez pas à me prévenir si ce n'est pas le cas.

Au niveau de la sémantique, j'ai ajouté du RDFa sur les pages d'articles/pensées seuls, j'utilise pour l'instant pyRdfa directement car je n'ai pas réussi à installer rdflib sur une Debian Etch... mais je ne désespère pas. Il y a aussi quelques microformats par-ci par-là aussi, surtout car je souhaitais au départ en parler lors de l'atelier.

La bonne nouvelle pour vous (et surtout moi car j'en avais marre de supprimer du spam à tour de bras) c'est que les commentaires sans modérations sont de retour.

## Finitions

La première chose visible c'est un design, je trouve le CSS naked day intéressant mais au quotidien ça risque d'être lassant. J'ai quand même fait le minimum mais je ne suis pas graphiste, c'est un métier à part entière et j'aimerais bien à terme avoir une cohérence/identité avec le reste. Je suis à la recherche d'un bon carrossier ;-).

OpenID n'est pas encore supporté, je voudrais faire quelque chose de plus intéressant en automatisant le processus d'acquisition d'un OpenID par les commentateurs (et en devenant en fait provider). Après il y aura des fonctionnalités additionnelles pour les titulaires d'un compte comme le suivi des commentaires etc.

Il y a un gros travail de contextualisation à faire pour les pages d'agrégation en pointant notamment vers des ressources externes. J'aimerais bien arriver à l'équivalent de l'ancienne page des liens mais pour chaque catégorie. Ça demande pas mal de crawling mais je vais voir ce que je peux faire à partir de FeedJack.

## Tour de chauffe

Il y a encore pas mal de détails à régler, les prochaines heures vont sûrement être un peu agitées mais soyez persévérants. Normalement je reçois des mails lorsque vous tombez sur une 404 ou une 500 donc je pourrais corriger au fur et à mesure.

Vous pouvez retrouver l'ensemble des billets consacrés à la refonte django de ce site si vous êtes nostalgique, billets qui devraient normalement s'afficher ci-dessous si j'ai pas foiré mon algo.

Normalement les agrégateurs devraient suivre les redirections, désolé pour le flood par contre...

[edit] : vraiment désolé pour le flood, oublier de mettre la date dans les flux c'était vraiment pas malin. Shame on me.

### Articles peut-être en rapport

- Enfin un design pour biologeek !
- Initialisation et modèles de données de la refonte
- Contenus + templates + URL + agencement = interfaces

### Commentaires

David, biologeek le 23/04/2008 :

Bon il faut vraiment que je style les commentaires par contre :-)

No' le 23/04/2008 :

Holy Cow, Batman!
J'ai l'impression qu'on annonce une grande vague de froid sur l'enfer, là.

:)

NiCoS le 23/04/2008 :

Congrats, moi qui pensait pas vivre assez vieux pour voir ça... ;-)

Je trouve l'ensemble plutôt réussi de premier abord.

Petite suggestion pour les commentaires, indiquer que l'étoile correspond à un champ obligatoire...

kib2 le 23/04/2008 :

Chapeau David,

ça a pris le temps, mais c'est plus crédible ainsi.

Autre chose : tu pourrais ajouter un langage de markup dans les commentaires, je suis allergique au (X)HTML :)

Note : le lien du flux "EC2 pour les bioinformaticiens" ne pointe nulle part.

NiKo le 24/04/2008 :

Félicitations, c'est très réussi :)

vincent le 24/04/2008 :

Oouuuuaaa.. Moi non plus je ne pensais pas vivre assez vieux pour voir cela. Et je dis chapeaux.. Je pense qu'il y a quelques trucs à faire sur le design, mais le principal est la fonctionne.. et ce qui nous intéresse c'est le contenu de toute façon ;-)

Encore chapeau !

David, biologeek le 24/04/2008 :

Merci les djangonautes !

Bon il faut aussi que je règle un problème d'invalidation de cache lorsqu'on laisse un commentaire apparemment...

@NiCoS : tu as essayé de laisser un commentaire vide ?!

@kib2 : chez moi ça marche, c'était pas un problème de cache DNS ?
Pour le markup dans les commentaires, j'étudie la question.

thomasc le 24/04/2008 :

Yeah.....enfin......
Bravo pour cette refonte. Bon courage pour tous les peaufinages mais làça en jette déjà pas mal!
( j'adore le "Tu t'es pris sur un skyblog ?! Le terme "2x!" n'est pas le bienvenu ici." pour "2x!"
:)

Julien le 24/04/2008 :

Bon courage pour cette refonte

giz404 le 24/04/2008 :

Enfin ! On ne l'attendait plus !

Je voulais commenter hier soir, mais j'avais des bizarreries (problèmes de liens, mélange d'anciennes et nouvelles pages... Je ne sais pas si c'était dû à mon cache, je n'ai pas approfondi), mais là, tout à l'air de bien fonctionner.

Alors, concernant cette refonte, plein de choses à dire.
Déjà, chapeau ! On sent la réflexion derrière cette nouvelle organisation, la page d'accueil permet un aiguillage rapide vers ce que l'on cherche, tout en conservant la présentation du site, vraiment, j'apprécie.
De même, la vue "billet seul" avec le billet sur toute la largeur a vraiment de la gueule. C'est sobre, minimaliste, j'adore.

Ce que j'apprécie moins, c'est les virgules dans les URL. Ça a du sens, c'est indéniable, mais je n'y suis pas habitué (ça viendra avec le temps...)

Au niveau du design, je sais que je ne devrais pas me focaliser là-dessus -- en même temps c'est un peu mon taf, donc voilà, je suis superficiel, j'assume
Donc j'ai quand même quelques critiques : que l'ensemble soit peu "stylé" pour le moment m'importe peu, mais il y a des choses que j'aurai organisé différemment.

- les titres centrés me gènent, surtout dans le corps du billet, ou ils se détachent un peu trop du texte.
- les infos "date, tags" qui sont un peu grandes à mon goût, alors que ce n'est pas le contenu le plus important.
- Les alinéas "text-indent" cassent également la fluidité de la lecture, notamment sur le bloc "en savoir plus" (dans le contenu des billets aussi d'ailleurs)
- l'emplacement du bloc "billets contextuels" dans l'affichage d'un billet seul est étrange, dans la mesure où il coupe le corps du billet des commentaires qui y sont associés.
- Favicon pas très zoulie (oui oui, on nage dans le subjectif)
- Titres un peu trop gros dans la liste des billets. Et un peu plus d'air entre chaque billet serait le bienvenu.
- en revanche, il y a beaucoup d'espace entre les noms des auteurs et leur commentaires (en colonne de droite)
- très bonne idée de mettre une étoile pour les billets choisis, mais ça rend mal (sous windows - je suis au taf)

Ce qui apparait comme un paquet de critiques n'est en fait que de petits ajustements qui pourront être effectués rapidement pour tirer le meilleur de ton nouveau design. Le choix de Blueprint comme framework me semble d'ailleurs judicieux (grille rigoureuse, flexibilité, gains de temps énormes)

Et enfin, de façon complètement irrationnelle, c'est en voyant un blog comme le tien que j'ai envie de me mettre à Django (ou autre) et coder mon propre blog from scratch... Félicitations !

"Tu t'es pris sur un skyblog ?! Le terme "2x" n'est pas le bienvenu ici." Roooh. Là, t'abuses. On a droit à l'emphase. 2 points d'exclamation, même trois, c'est autorisé. Il faudrait interdir à partir de quatre.

Tu filtres aussi sur "Kik00" et "L0L" ?

Ah ben ouais.

Hugo le 24/04/2008 :

Bravo c'est très réussi et ça permet de découvrir un site qui fonctionne sous Python :)

Linux le 24/04/2008 :

Félicitations pour le site

Tu sais toucher un mot sur ce que tu fais avec RDF?

NiCoS le 25/04/2008 :

@David : non, en effet on l'a si on soumet le formulaire vide mais c'est pas "anti-ergonomique" comme principe ça ? ;-)

Sinon, je crois qu'il manque un "Commentaire envoyé" - je croyais que le mien s'était perdu dans l'espace ou bloqué par un antispam...

NiCoS le 25/04/2008 :

Je précise ma pensée : l'autre jour, on le voyait pas directement publié (bug de cache ?)

Fabien le 25/04/2008 :

Joli travail, le design me semble plus vide, mais la lecture reste agréable et le contenu toujours aussi intéressant, le plus important est sauvé ;)

Deux questions de n00b en Django (et Python).

Qu'est ce que tu utilises pour convertir le titre de tes articles en chaînes épurées de tout accents ? J'imagine que pour les espaces un simple replace suffit mais pour les autres caractères spéciaux il doit y avoir un module.

Et la 2eme question, je suppose que tu retrouves tes articles via le titre et non l'id. Donc je suppose que tu dois demander à Django de créer un index sur le champ contenant le titre ?

En fait, je voudrai aussi faire des urls avec le titre dedans, donc je profites de ton expérience pour vérifier que j'emprunte la bonne voie :)

Gilles le 25/04/2008 :

Salut David,

Mais quelle journée ! Mitt, toi... Hé bé :) Félicitations ! Beau boulot. Concernant les "critiques", je rejoins giz404 (mais c'est assez subjectif).

C'est vrai que les URLs avec les virgules, ça désoriente. A ce sujet, pourquoi avoir adopté une telle structure ? Même si ça peut paraître "logique" pour certains, ça ne l'est pas pour moi :p

Et si tu décides un jour de poster des billets en anglais, ce sera structuré comment (idem pour les pages) ?

Bonne journée à toi.

David, biologeek le 25/04/2008 :

@thomasc : je me demandais qui allait le remarquer le premier ;)

C'était surtout pour tester les fonctionnalités de django-newcomments, j'avoue. Après j'ai trouvé ça marrant.

@Julien : merci

@giz404 : wow merci pour le feedback ! (pour les problèmes étranges de redirections, c'était un problème de cache DNS).

> les titres centrés me gènent, surtout dans le corps du billet, ou ils se détachent un peu trop du texte.
Je trouve que ça permet de faire une pause entre les paragraphes, le fait de n'avoir que le billet permet justement de calmer un peu le rythme sans être attiré par d'autres choses. Mais j'y réfléchis.

> les infos "date, tags" qui sont un peu grandes à mon goût, alors que ce n'est pas le contenu le plus important.
C'était surtout pour être cohérent avec les autres pages du site, je prends ta remarque en compte dans l'évolution.

> Les alinéas "text-indent" cassent également la fluidité de la lecture, notamment sur le bloc "en savoir plus" (dans le contenu des billets aussi d'ailleurs)
Oui, j'ai ajouté le plugin fancy pour blueprint mais il va falloir que j'enlève certaines règles qui ne me plaisent pas non plus.

> l'emplacement du bloc "billets contextuels" dans l'affichage d'un billet seul est étrange, dans la mesure où il coupe le corps du billet des commentaires qui y sont associés.
C'est un peu voulu, en fait je voulais casser la colonne et permettre de rebondir pour ceux qui ne veulent pas lire les commentaires.

> Favicon pas très zoulie (oui oui, on nage dans le subjectif)
C'est un peu les vestiges d'un design expérimental. Il faut que je retravaille ça.

> Titres un peu trop gros dans la liste des billets. Et un peu plus d'air entre chaque billet serait le bienvenu.
Ok.

> en revanche, il y a beaucoup d'espace entre les noms des auteurs et leur commentaires (en colonne de droite)
Oui, la sidebar doit évoluer aussi.

> très bonne idée de mettre une étoile pour les billets choisis, mais ça rend mal (sous windows - je suis au taf)
Je m'en doutais, j'ai pas du tout testé sous windows/ie. Je suis assez attaché à cette petite étoile, je vais voir ce que je peux faire à ce niveau.

@Hugo : il y en a beaucoup d'autres (pownce, ljworld, etc cf djangosites.com) notamment jehaisleprintemps.net depuis peu ;-).

@Linux : oui c'est prévu.

@NiCoS : je me suis basé sur l'acquis au niveau ergonomie (étoile == bien souvent requis) et ça me semblait évident qu'il fallait au moins annoncer qui on est pour poster un commentaire.
Concernant les commentaires qui ne s'affichent pas du premier coup c'est effectivement un problème de cache.

@Fabien :

> Qu'est ce que tu utilises pour convertir le titre de tes articles en chaînes épurées de tout accents ?

En mettant un populate_from, une petite fonction js fait tout le travail pour moi : http://code.biologeek.com/file/fa5f8ccedebe/journal/models.py#l29

> Et la 2eme question, je suppose que tu retrouves tes articles via le titre et non l'id.

Tout à fait, les vues génériques me permettent de spécifier le champs qui doit être pris en compte : http://code.biologeek.com/file/fa5f8ccedebe/biologeek/urls.py#l85

Pour l'index, tu peux le spécifier dans la déclaration du modèle il me semble.

Bon il faut absolument que j'ajoute du markup et des sauts de lignes à ces commentaires...

aurels le 25/04/2008 :

Félicitations pour cette nouvelle mouture de ton blog qui, je n'en doute pas, restera de qualité dans l'avenir.

giz404 le 26/04/2008 :

Confirmation : sous linux, l'étoile est nickel :)
C'est donc bien windows et son faux mode de lissage de polices qui est en cause.

NiKo le 26/04/2008 :

Pourquoi tu as viré la date des urls de billets ? Je me rends compte après avoir navigué un peu sur le site et en naviguant dans mon historique que ça manque un peu... Bon, ok, peut-être que ça ne gêne que moi :P

Et j'aurais peut-être mis les tags en fin d'url, voire je les aurais pas mis du tout ;) C'est orienté SEO ?

Bon sinon c'est super chouette loooooool

(Pardon.)

David, biologeek le 27/04/2008 :

@Gilles : merci pour les remarques :)

> Et si tu décides un jour de poster des billets en anglais, ce sera structuré comment (idem pour les pages) ?
A priori je compte rester en français.

@giz404 : oui on m'a rapporté ça aussi... je dois avouer que je n'ai pas du tout testé sous Windows ni IE.

@NiKo : je trouvais que la date n'était pas pertinente dans les urls pour les billets car ils ne se rapportent pas forcément à l'actualité (contrairement au bistrot).

> C'est orienté SEO ?
En partie oui. On verra si c'est utile.

er:k le 29/04/2008 :

Félicitations ! cette fois-ci s'est fait, et ça devrait permettre de mettre en avant ton travail et tes compétences.

Louevie le 16/05/2008 :

Bonjour,

Je lis dernièrement ce blog assez régulièrement et je le trouve très intéressant. Aussi, au vu de ton expérience, je voulais te demander pourquoi ou pourquoi pas tu préfères t'orienter vers des développements web en python, plutôt qu'en J2EE?
Je ne cherche pas vraiment à connaitre les avantages, inconvénients, puisqu'on les trouve sur de nombreux forums, mais je voudrais savoir pourquoi toi, en particulier, tu as choisi?
Merci et à bientôt sur d'autre article.