Un Electron Libre...

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 17 août 2008

Lecture : Practical Django Projects

Je viens de finir la lecture de Practical Django Projects, écrit par James Bennett, qui occupe le poste de "Django Release Manager" et qui a publié sur son blog de nombreux billets sur Django et les bonnes pratiques à avoir/appliquer. Autant le dire tout de suite, le livre est de la même qualité que ses billets : accessibles, pédagogiques et pertinents.

Le livre se décompose en cinq grandes sections :

  • Présentation de Django
  • Réalisation d'un CMS simple (permettant de poser les bases)
  • Réalisation d'un weblog (permettant de découvrir les concepts de "template tags", manager, l'utilisation de librairies tiers, les vues génériques, etc)
  • Réalisation d'un dépôt de code (qui complète les points abordés précédemment et permet d'aborder le gestionnaire de formulaires).
  • Synthèse sur les bonnes pratiques à suivre pour du code flexible, adaptable, réutilisable, distribuable et surtout documenté !

Autant je n'ai pas appris grand chose avec les deux premières sections, autant j'ai adoré la troisième et cinquième. Pour la quatrième section, mon niveau en python & django font que pas mal de choses me sont passées pour le moment au dessus de la tête et que cela ne répond pas à mes besoins immédiats (contrairement à la troisième section).

Même si l'arrivée de la nouvelle interface d'administration et le fait que le code sur les "Signals" ait été réécrit font que quelques infimes parties du livre se trouvent aujourd'hui un peu obsolètes, le livre a le grand mérite de tout bien expliquer, de poser les bases et d'accompagner le lecteur dans une montée en puissance au niveau de sa maîtrise de Django.

Le seul reproche que je peux formuler concerne la quatrième section où l'accent n'est mis que sur les nouveautés. Du coup, on appréhende moins la construction de l'application en tant que telle. A ce jour le code source utilisé dans le livre (section de gauche) n'étant pas encore dispo sur le site d'Apress, cela n'aide pas non plus pour prendre le train en route...

Pour tout ce qui est bonnes pratiques, elles sont présentes partout dans le livre. Point besoin d'attendre la 5ème section pour en bénéficier. L'auteur prend même au début le plaisir à montrer la "mauvaise façon" (ie sans prendre en compte les besoins d'extensibilité/flexibilité/...) puis montre ensuite la "bonne façon" de faire. Des conseils qui sont en général assez simple à suivre et donne de solides avantages au code généré (lisibilité, simplicité, réutilisabilité, etc).

(Mal)heureusement, je n'avais pas de PC sous la main pour coder en parallèle. Je n'ai donc pas pu capitaliser / jouer avec ce qui a été abordé. (J'aurais en outre pu en profiter pour coder la base de mon projet Atome...)

Pour conclure, si quelqu'un souhaite se mettre aujourd'hui à Django, je ne saurais trop lui recommander de lire en premier lieu "The definitive guide to Django : web development done right" puis ce livre ensuite. Avec ça et ensuite la documentation en ligne, il est prêt pour mener à bien des projets (perso/pro).

mercredi 23 juillet 2008

Django 1.0 alpha is out (mais en juillet)

Le framework Django, vient de sortir en version 1.0 alpha, premier jalon d'une série de release devant nous emmener à la version 1.0 final début septembre, comme l'annonce la roadmap.

Au menu des principales nouveautés depuis la version 0.96.x :

Pour ceux qui mettraient à jour leur site d'une version 0.96.x vers cette version, n'oubliez pas de consulter la liste des incompatibilités ascendantes et le traitement à "infliger" à votre code pour le faire évoluer.

Sur la partie admin, je vous invite à consulter également la page dédiée à cette fonctionnalité qui donne beaucoup d'informations pour la migration. A lire et voir également, ce tutoriel et screencast pour la migration vers cette nouvelle interface d'administration.

Et pendant ce temps-là sur django-fr, David a (enfin ;-) ) publié mes traductions de la contrib webdesign, l'installation de django avec Apache/mod_python ou sous fastcgi. Il faut d'ailleurs que je mette à jour ces deux documents suite aux derniers commits...

PS : désolé pour le jeux de mot... fatigue, besoin de vacances, tout ça tout ça... ;-)

samedi 19 juillet 2008

MiaM

La branche tant attendue newforms-admin est arrivée dans le trunk de Django.

Du coup, django.newforms devient django.forms.

Un grand pas en avant de fait vers la version 1.0 et qui ouvre un grand nombre de possibilités pour la constitution de back-office d'une appli Django... (pas encore testé).

Bref de quoi me motiver un peu plus pour me remettre à mes dev... ;-)

Edit du 20/07 : A lire absolument en plus de la page sur la branche newforms-admin indiquée plus haut, la documentation sur l'interface d'administration et tout ce qui s'y réfère (modèles, options d'affichage, etc)

mardi 20 mai 2008

Un mail effacé un peu vite - A mail deleted too quickly (django inside)

En consultant mes mails ce matin, en regardant mes spams, j'ai parcoucu la liste d'un oeil rapide en cliquant automatiquement sur "Supprimer tous les spams" quand mon oeil a été attiré par les mots "Parter Django Project" (ou quelque chose d'approchan). Si cette personne lit ce blog, je veux bien qu'elle me renvoit son mail sur la même adresse, je ferais plus attention sur les spams dans les jours à venir :-)

When reading my new mails this morning, I jumped to the Spam section and clicked on "Delete all spams" button when my eye was attracted by a title looking like "Partner Django Project" (or something approaching). If the sender read this blog, I would appreciate that he sends me again the related mail on the same email adress. I would be more careful with spam mails in the following days :-)

Edit : Merci à David pour le forward du mail en provenance de Djangogigs apparemment (tiens, je me rappelle pas m'y être inscrit...)

mardi 25 mars 2008

Lecture : Programmation Python

Je viens de terminer la lecture de "Programmation Python", qui possède d'ailleurs son |propre site dédié au livre|http://programmation-python.org/sections/blog|fr].

J'ai trouvé le livre très intéressant et très complet. J'ai compris beaucoup de choses vu ici et là dans des bouts de code python. Autant "Apprendre à programmer en python m'avait permis d'appréhender python et son modèle objet mais sans forcément me donner toutes les clés, autant là, j'ai l'impression d'avoir une bonne bible sous la main et d'avoir fait un grand pas (quitte à avoir trop de clés dans ma besace ;-) ).

A sa décharge et au vu de mon niveau actuel en python, y a des pans du livre qui me sont passés au dessus de la tête / que j'ai survolé, estimant que j'y reviendrais surement plus tard.

Autre petit point négatif mais inhérant à sa date de publication, c'est qu'il ne couvre que la version 2.4 de Python.Sur ce point précis, j'avais hésité avec l'achat de "Au coeur de Python" (Tome 1 et Tome 2) qui couvre python 2.5. Toutefois, en parcourant ce dernier livre, j'ai eu l'impression de parcourir un peu la documentation à la php.net où on assiste à un listing exhaustif des fonctions disponibles mais sans plus. Je trouve "Programmation Python" pour le coup plus pédagogique et mieux enrobé quitte pour certains points à ne donner que l'essentiel (et un peu plus) et des pointeurs si nécessaire.

Pour finir sur un point positif, l'aspect méthodologie (test, doctest, design pattern, etc) est très bien documentée et sera complétée dans le livre Petit guide à l'usage du développeur agile.

Bref, un livre à lire tant pour des débutants (qui se focaliseront sur la première partie du livre) ou des développeurs plus expérimentés qui se focaliseront sur la seconde partie.

Il me reste juste à trouver un éditeur de code python qui me va bien pour aller plus loin... (je veux un textmate-like pour Linux)

mardi 19 février 2008

SPE (Stani's Python Editor) 0.8.4.c dispo sous Archlinux

Archlinux disposant d'une fort vieille version de SPE, je me suis décidé à mettre à jour le fichier PKGBUILD existant en partant de ce qui existait originellement et aussi du paquet spe-svn (paquet orphelin, tout comme spe jusqu'à ce soir).

Cela donne donc SPE 0.8.4.c pour Archlinux.

Pour l'installer :

yaourt -S spe

Par contre, sous Debian Testing, spe ne fonctionne pas suite à un problème de dépendances sur wxpython :-(

vendredi 18 janvier 2008

Lecture : The Definitive Guide to Django: Web Development Done Right

Je viens de terminer la lecture du livre "The Definitive Guide to Django: Web Development Done Right",écrit par les développeurs principaux du framework python Django, à savoir Jacob Kaplan-Moss et Adrian Holovaty.

Le livre est décomposé en trois grandes parties :

  • Partie 1 : Présentation de l'outil
  • Partie 2 : Dans les entrailles de Django : présentation des modules et "sous-frameworks"
  • Partie 3 : Annexes avec des témoignages et de la documentation

On peut dire qu'à l'issue de la partie 1, vous êtes en mesure de jouer avec Django pour construire une application de démo, simple et sans prétention. A l'issue de la partie 2, vous l'avez bien enrichit et même déployer en production. Si vous avez réussi à intégrer/mémoriser la partie 3, vous êtes un expert Django ;-)

Ce que j'ai bien aimé :

  • Le livre se veut plus un guide qu'une documentation : le livre ne va pas présenter dans le détail tous les aspects de Django. Il va en présenter suffisamment pour s'en faire une idée, voir l'intérêt de tel ou tel module mais pas détailler l'option X du module Y. La documentation de référence reste celle en ligne et du coup, ils sont à voir comme étant complémentaires et non comme une version papier de la documentation officielle.
  • De nombreuses "bonnes pratiques" tant au niveau de Django que du développement web en général sont données au fur et à mesure du livre. J'ai plié un gros nombre de pages pour me rappeler d'intégrer plein de petits trucs dans mes projets actuels.
  • Si on connait rien en python, les auteurs fournissent suffisamment d'information pour comprendre la logique de l'ensemble. Globalement je trouve le livre très pédagogique.
  • J'ai appris plein de choses que je n'avais pas vu en parcourant la documentation officielle.

Ce que j'ai moins aimé :

  • La partie déploiement est un peu légère à mon goût, je m'attendais à un truc un peu plus solide - pour le coup, c'est pas top évident de déployer une appli django la première fois - surtout quand on vient des applis PHP qui sont "upload & play".

Même si certains choses du livre ont un peu bougé, je pense que ça vaut le coup de l'acheter si on veut se familiariser avec Django. Le livre est également lisible en ligne sur le site djangobook.com. Il paraitrait même que des gens ont proposé de le traduire en français :-)

mardi 11 décembre 2007

Djangoseries du moment

Y a eu pas mal de choses d'intéressant ces derniers temps sur Django, c'était un "morceau choisi". Tout le reste est sur mon tag "django" sur del.icio.us...

vendredi 30 novembre 2007

Django : activer l'autocomplétion dans votre console

Utilisant la version de développement (svn) de Django, j'ai farfouillé dans le contenu du répertoire extras de django et on y trouve un symathique fichier django_bash_completion.

Il vous suffit de placer ce fichier dans /etc/bash_completion.d/ (ou de faire un lien symbolique, ce qui peut être pratique si le fichier est mis à jour et si vous suivez régulièrement la version de développement).

Pour profiter de cette complétion suivant votre distribution GNU/Linux et où l'autocomplétion est définie :

source /etc/profile
 
et/ou :
 
source ~/.bashrc

Ensuite, à la racine de votre projet django, faites :

python manage.py [Tab] [Tab]

et toutes les options possibles vont apparaître :

$ python manage.py
adminindex        loaddata          sqlclear          startproject
createcachetable  reset             sqlcustom         syncdb
dbshell           runfcgi           sqlflush          test
diffsettings      runserver         sqlindexes        validate
dumpdata          shell             sqlreset
flush             sql               sqlsequencereset
inspectdb         sqlall            startapp

Toujours ça de pris :-)

dimanche 18 novembre 2007

Pygments et ReST (partie 2 sur je-sais-pas-combien-encore)

Suite de mon aventure sur Pygments et ReST :

En lisant la documentation rapide (QuickStart) de Pygments, on trouve comment récupérer la feuille de style fournit par défaut :

pygmentize -S default -f html > style.css

Ensuite, lors de la transformation Rest vers HTML, il suffit de faire :

rst2html.py source.txt cible.html --stylesheet-path=style.css

Il y a surement plus propre mais bon, ça marche... Cela veut aussi et surtout dire que pour produire un site à partir de document s au format ReST, il faut construire sa feuille de style CSS en incluant celle de pygments notamment.

Et voilà le résultat :

ReST et Pygments

Voir la capture d'écran

- page 1 de 4