This blog is available in English too. The English version is a bit less complete than the French one. Go to the English version of this blog.

Archives de la catégorie Autres

14 décembre 2009

Django mieux qu’un CMS ?

Logo DjangoJ’ai du récemment réécrire un site web que je gère pour une très petite entreprise : Le fil à soi. Cette entreprise comprend 3 animatrices qui proposent des ateliers et stages de massage chinois, qi gong et Gestalt-thérapie à Bordeaux. Les spécifications du site sont assez simples :

  • présentation du lieu, des animatrices et informations de contact ;
  • pages pour chaque atelier et stage classées en catégories ;
  • gestion automatique des dates de stages et génération d’un flux RSS ;
  • une interface d’administration simple pour modifier les infos sur les ateliers et stages (qui devrait être utilisée par les animatrices, même si en réalité elles ne sont pas fans d’informatique et préfèrent m’envoyer un mail…).

La version que je voulais remplacer était un site web fait à la main en PHP à partir de rien. Je l’avais commencée il y a des années avant de savoir grand chose sur la conception de sites web. Elle était donc devenue plutot difficile à gérer. Je voulais une version plus propre pour pouvoir laisser quelqu’un d’autre maintenir ce site.

Utiliser un CMS : Drupal ou WordPress

Un CMS (Content Management System : système de gestion de contenu)est une plateforme qui simplifie la création d’un site web. WordPress a été créé pour faire des blogs, mais il existe plein d’extensions qui permettent de créer n’importe quel type de site web. Drupal a vraiment été prévu pour créer n’importe quel type de site web. Il possède aussi de nombreuses extensions qui pourvoient à tous types de besoins  (calendrier, magasin en ligne…)

La force de ces CMSs est qu’il gèrent les deux parties du site web : la partie utilisateurs et la partie administration. L’administration donne aux responsables du site de nombreux moyens de personnaliser et de surveiller la partie utilisateurs.

J’ai donc commencé deux petits prototypes utilisant chaque CMS et j’en suis venu à la même conclusion :  aucun des deux ne répond parfaitement à mes besoins, pourtant très simples.

Par exemple pour la gestion des dates de stages : des tas d’extensions font des choses très proches de ce que je veux, mais aucun ne le fait tout à fait. Il va donc falloir que je personnalise une extension, dont le code n’est probablement pas vraiment documenté. Ensuite cette extension sera mise à jour (à nouveau sans documentation) par son auteur, et je devrais maintenir mes modifications…

Même chose pour le thème : de nombreux thèmes sont disponibles mais il ne serait pas sérieux d’utiliser un design tout fait sans l’adapter.

Je peux donc faire mon petit site web avec un CMS mais :

  • le résultat sera énorme, avec plein de fonctionnalités dont je ne me servirai pas (pas besoin de blog, de gestion des utilisateurs…) ;
  • il sera difficile à maintenir, et il faudra que je surveille toutes les mises à jour des extensions que j’aurai modifiées ;
  • je devrai faire des mises à jour régulières quand le CMS sera mis à jour, car les failles de sécurité connues des grands CMSs sont très rapidement utilisées par des « pirates ».

Ça fait beaucoup de travail pour un tout petit site.

Utiliser Django

Django n’est pas vraiment un CMS. C’est un framework Python pour créer des sites web (comparable à PHP Zend, Ruby on Rails…). Cela veut donc dire qu’il faut écrire du code pour l’utiliser.

La grosse différence avec d’autres frameworks web est que Django a été développé à l’origine pour un site web d’actualité, la gestion du contenu était donc primordiale. C’est pourquoi un fonction très impressionnante est disponible : la génération automatique de la zone d’administration du site.

J’ai juste eu à définir mes modèles (ce qu’est un stage, une animatrice, une date de stage, une catégorie…). C’était ensuite lié à ma base de données et la partie administration était générée. J’ai enfin défini mes vues, c’est à dire la façon dont ces modèles sont affichés aux utilisateurs (avec des outils simples pour générer des flux RSS, des sitemaps…)

Les avantages de cette approche sont :

  • l’application finale est très petite, sans fonctions inutiles ;
  • on obtient exactement ce qu’on veut : pas besoin de s’adapter aux extensions trouvées sur Internet ;
  • on sait exactement ce que chaque ligne de code fait (même si on omet de documenter…) ;
  • les seules mises à jour à surveiller sont celles de Python et de Django, qui sont rares et plutôt bien gérées.

Les seuls inconvénients que je vois :

  • il y a beaucoup moins de gnes qui connaissent Python Django que de gens qui connaissent WordPress, il sera donc plus difficile de trouver des gens pour gérer le site (mais ils seront meilleurs :p) ;
  • Python doit etre supporté par votre hébergeur. J’utilise OVH, qui ne supporte Django qu’en CGI, mais ça suffit pour un si petit site ;
  • il n’y a pas d’éditeur WYSIWYG par défaut dans l’adminstration générée par Django : ça peut être un problème pour éditer des articles (ou des descriptions de stages dans mon cas). Mais il est plutôt simple d’ajouter TinyMCE qui est purement en javascript.

Conclusion

Si vous voulez créer un blog simple et complet, utilisez WordPress. Si vous voulez faire des choses compliquées comme un magasin en ligne, utilisez Drupal.

Mais si vous voulez construire un site web simple, dynamique et facile à maintenir, et si coder ne vous fait pas trop peur, utilisez Python Django. Vous obtiendrez exactement ce que vous voulez sans trop d’efforts, et le résultat sera vraiment simple à maintenir.

Accueil du site du fil à soi

Accueil du site du fil à soi

Administration des pages du fil à soi

Administration des pages du fil à soi

2 commentaires »

11 janvier 2009

Remplaçons Facebook par les blogs !

Beaucoup de gens qui ont des blogs disent qu’il s’agit de leur principal réseau social. Ils y interagissent avec les autres par les commentaires. Ils découvrent les blogs des commentateurs et enrichissent leur réseau de blogs intéressants, où ils deviennent eux-même commentateurs.

Ce qui est bien avec le réseau des blogs, c’est qu’il est décentralisé. Ainsi les informations sur une personne sont contrôlées par cette personne. Contrairement aux réseaux sociaux comme Facebook. Je pense qu’avec quelques fonctions supplémentaires et une meilleure interface, les blogs pourraient remplacer avantageusement Facebook.

Des discussions plus ouvertes et décentralisées

Quand quelqu’un commence une discussion sur un blog, il serait intéressant que les autres bloggeurs puissent continuer les discussions, en contribuant à la fois à leur blog, et au blog original de la discussion. Il existe déjà les trackbacks pour cela, mais ils ne servent qu’à faire un lien, avec une description souvent incompréhensible et me semblent assez inefficaces.

Le mieux serait d’écrire un commentaire sur le blog original, et qu’il soit directement envoyé au blog de l’auteur. La discussion se poursuivrait alors sur les deux blogs en même temps, les deux audiences des blogs seraient alors mélangées, ce qui enrichirait la discussion.

Une gestion « à la Facebook »

Beaucoup de blogs ont déjà une liste des plus gros commentateurs, une liste de blogs intéressants… Mais pour transformer les blogs en réseaux sociaux, il faudrait une liste des commentateurs, comme un liste des amis sur Facebook.

Il serait aussi intéressant de créer un panneau de contrôle qui permettrait de suivre les derniers sujets postés par les commentateurs sur leurs blogs, créant une sorte de « news feed » Facebook.

Des plugins de gestion des photos, des évènements… permettraient de retrouver toutes les fonctions les plus intéressantes de Facebook. Tout cela dans un réseau décentralisé, où les acteurs controleraient mieux les informations qu’ils publient.

On pourrait aussi imaginer un site comme Wordpress.com qui permettrait de créer son blog social en quelques clics, aussi facilement que l’on crée un profil sur Facebook.Cette idée de blogs sociaux ressemble un peu à ce que font les skyblogs ou myspace, mais ces sites ne me semblent pas permettre de faire un vrai blog, ni de créer son propre blog sur son hébergement (et ils ne proposent pas de faire des discussions mutualisées entre plusieurs blogs).

La réalisation ?

J’hésite à me lancer dans la création d’un plugin wordpress, et peut-être d’une plateforme de « blogs sociaux » pour faire ça. Peut-être existe-t-il déjà des idées similaires ?

Il est évident que cette vision des blogs ne serait pas adaptée à tous les blogs : les blogs thématiques par exemple n’ont pas grand chose à voir avec les réseaux sociaux.

Mais je pense que les blogs pourraient permettre de créer un réseau social à la fois plus intéressant, plus extensible, et plus contrôlable que Facebook, car on pourrait utiliser son propre hébergement pour ses données.

3 commentaires »

1 juin 2008

TvOnResEl : Regardez la TV facilement sur le ResEl

[lang_fr]Logo de TvOnResEl[/lang_fr][lang_en]Logo of TvOnResEl[/lang_en]

En arrivant à TELECOM Bretagne, j’ai découvert le ResEl : le réseau des élèves. J’ai aussi découvert qu’ils diffusaient toutes les chaînes de la TNT sur le réseau. Seul problème : le logiciel recommandé pour regarder ces chaînes est VLC, lecteur multimédia très puissant mais à l’interface complexe et peu adaptée pour regarder la télévion.

J’ai donc eu l’idée de créer un logiciel multiplateformes open-source en Java qui contrôle VLC avec une interface plus adaptée : TvOnResEl. J’ai sorti la première version le 16 octobre 2006.

Dans sa version actuelle, TvOnResEl permet de regarder et d’enregistrer des émissions, de programmer des enregistrements et de consulter le programme TV.

Pour plus d'informations sur TvOnResEl, allez voir la page dédiée au projet.

Aucun commentaire »

31 mai 2008

Une courte aventure : annuaire des modules Netvibes

[lang_fr]Un mini module Netvibes[/lang_fr][lang_en]A Netvibes mini module[/lang_en]

Connaissez-vous Netvibes ? Il s’agit (à mon avis) de la meilleure page d’accueil personnalisable (concurrente de iGoogle).

Elle permet de rassembler sur une page toutes les informations qui nous intéressent sur internet, actualisées automatiquement. Pour cela, elle utilise une structure modulaire : chaque utilisateur peut ajouter les modules qui l’intéressent.

L’idée d’un annuaire des modules Netvibes

Au début, seuls les développeurs de Netvibes créaient des modules, qui étaient accessibles à partir d’une barre latérale dans Netvibes.

Mais le 3 mars 2006, Netvibes a annoncé sur son blog la sortie de la Mini Module API. Ainsi, tout le monde pouvait faire des modules, simplement avec des connaissances en HTML (PHP et javascript pouvaient aider aussi). Je me suis alors amusé à créer quelques modules.

Quelques jours plus tard, quelques modules avaient été créés par des utilisateurs, et il n’existait pas de liste pratique pour référencer ces modules. Je me suis alors lancé dans la création d’un annuaire des modules Netvibes, que j’ai sorti quelques semaines plus tard à l’adresse http://twisterss.free.fr/netvibes. Le site étant maintenant fermé, vous pouvez toujours le consulter dans les archives de ce blog.

Cet annuaire, disponible en Anglais, Français puis Allemand a rencontré un certain succès, et la plupart des modules Netvibes ont été ajoutés rapidement à cet annuaire par leurs auteurs.

Collaboration avec Netvibes

Peu de temps après, j’ai été contacté par Tariq Krim, qui dirigeait alors Netvibes, dans le but d’intégrer cet annuaire à leur site. Cette collaboration a conduit à l’amélioreration du design de l’annuaire grâce à un designer de Netvibes (Maurice Svay), et à l’ajout des flux RSS et ICal à l’annuaire, sur une idée de Tariq.

Des difficultés d’intégration ont empêché d’utiliser mon code de départ pour l’annuaire de Netvibes, mais ma base de données a été intégrée lors de la sortie de l’annuaire de Netvibes, qui fonctionne toujours.

Pour éviter la duplication des listes de modules, j’ai alors désactivé mon annuaire, et je l’ai remplacé par une redirection vers l’annuaire de Netvibes.

Conclusion

Finalement, mon annuaire n’a fonctionné que quelques mois, mais il a attiré un très grand nombre de visiteurs (ce qui m’a obligé à faire un système de mise en cache évolué pour éviter de surcharger mon hébergement gratuit).

Cette courte aventure m’a permis de commencer à découvrir l’équipe de Netvibes, et de découvrir en même temps la nécessité d’écrire un code clair et de séparer l’apparence du site du reste du code, pour permettre une collaboration plus facile par la suite avec d’autres développeurs. En l’occurence, l’utilisation propre du framework Zend de PHP aurait sûrement permis de réutiliser mon code dans l’annuaire de Netvibes.

Aucun commentaire »

Création du site internet d’une très petite entreprise : Le fil à soi

[lang_fr]Logo du fil à  soi[/lang_fr][lang_en]Logo of Le fil à  soi[/lang_en]

Il s’agit de l’un des premiers sites internet que j’ai créés (j’en avais créés d’autres avant, mais ils ont disparu dans les entrailles d’internet).

Historique

La première version ressemblait très fortement à un sapin de noël. Elle avait été faite avec un éditeur WYSIWYG. Il y avait des frames et des images GIF animées, qui donnaient au site un aspect pas très pro :) . Je n’ai malheureusement pas gardé de capture d’écran de cette version.

La seconde version était un peu meilleure : j’avais découvert PHP, ce qui m’a permis de remplacer les frames par des include. Cependant, j’étais hébergé gratuitement par libertysurf (qui a été racheté par tiscali qui a été racheté par Alice qui va être racheté par je ne sais pas encore qui) à ce moment-là. Je n’avais donc pas de base de données à ma disposition, et toutes les pages étaient stockées dans des fichiers texte.

Cette architecture n’étant pas très souple, elle n’a pas facilité la mise en place des nouveautés qui se sont ajoutées par la suite : gestion d’une version imprimable des pages, centralisation des dates de stages et génération d’un flux RSS, création d’une interface de gestion facile à utiliser pour que les animatrices puissent gérer le contenu du site, refonte du design (le nouveau design était beaucoup plus joli que le précédent, mais faisait une utilisation massive de table dans la mise en page)…

État actuel

Il y a quelques années, j’ai migré le site chez free, et j’ai décidé de refaire complètement le site pour lui faire utiliser une base de données, et des templates pour faciliter les changements de design. J’ai aussi fait un nouveau design plus propre, avec une meilleure utilisation des CSSs, mais encore loin d’être compatible XHTML.

Vous pouvez voir le site du fil à soi dans sa version actuelle.

Conclusions

Je ne suis pas encore très satisfait du design actuel du site, mais mes talents de designer me limitent fortement.

Si vous aussi devez faire un site pour une très petite entreprise, je vous conseille fortement de ne pas faire comme moi, et d’utiliser une plateforme existante (drupal par exemple). Cela vous permettra de réutiliser les fonctions et thèmes implémentés par les autres utilisateurs, et d’obtenir rapidement un site fonctionnel, sans nécessairement limiter vos possibilités de personnalisation.

La prochaine étape pour moi dans la gestion de ce site serait sûrement de le migrer vers une plateforme comme Drupal, et de convaincre ses propriétaires de payer un vrai hébergement et un vrai nom de domaine.

Aucun commentaire »