Entries in the Category “francais”

Repoze.BFG sort en version 1.0, et vole la vedette à Grok

written by ccomb, on Jul 8, 2009 3:25:00 PM.

Les technologies Zope évoluent d'une manière extrêmement positive. Alors que le vieux Zope 2 survit encore après plus de dix ans de service, sa réécriture modulaire et pythonique, connue sous le nom « Zope 3 », a abouti principalement à trois choses :

  • l'Architecture de Composants (la Zope Component Architecture)
  • une multitude de composants basés sur cette architecture (la Zope Library)
  • des frameworks web utilisant cette architecture

Parmi ces frameworks, on retrouve d'abord « Zope 3 » lui-même, qui peut s'utiliser tout seul. Puis Grok, un projet parallèle, basé sur Zope 3, qui simplifie la configuration des composants en évitant l'écriture de XML. Grok n'est pas encore sorti en version 1.0 qu'il vient de se faire griller la priorité par Repoze.BFG. BFG est un framework ultra-léger, beaucoup moins orienté Zope, plus proche de Pylons ou Django, mais quand-même basé sur l'Architecture de Composants.

La légèreté de Pylons ? La modularité de l'Architecture de Composants de Zope 3 ? La possibilité d'utiliser tous les middlewares WSGI ? Le choix entre modèle MVC ou modèle à la Zope ? Le menu est alléchant. Voici la traduction de l'annonce :

(Annonce originale : http://lists.repoze.org/pipermail/repoze-dev/2009-July/001936.html )


Résumé

La première version majeure 1.0 du framework web BFG (ou « repoze.bfg »), est disponible. Les infos générales sont sur : http://bfg.repoze.org.

Détails en gros

BFG est un framework web en Python, basé sur WSGI. Il s'inspire de Zope, Pylons et Django. Il utilise en arrière plan de nombreuses technologies de Zope.

BFG est une partie du projet plus général Repoze (http://repoze.org). Il est distributé sous une licence de type BSD (http://repoze.org/license.html).

BFG 1.0 représente l'équivalent d'une année de développement. La première version 0.1 date de juillet 2008 et près de 80 versions pre-1.0 se sont succédé depuis cette date. Aucune d'entre elles n'a jusqu'à présent promis de rétrocompatibilité de manière explicite. Cependant la version 1.0, constitue le point de départ d'un gel de l'API. Les prochaines versions de la branche 1.x garantiront cette rétrocompatibilité avec 1.0. Tout manquement à cette règle sera considéré comme un bug.

Gros détails

BFG contient des améliorations modérées et incrémentales des principes rencontrés dans les frameworks de génération précédente. Il s'efforce de rendre le développement d'applications web plus amusant, plus prédictible, et plus productif, en particulier pour les vrais projets de la vraie vie.

À cette fin, BFG offre les fonctionnalités suivantes :

  • Déploiement basé sur WSGI : compatible PasteDeploy et mod_wsgi.
  • Fonctionne avec Python 2.4, 2.5 et 2.6.
  • Fonctionne sur UNIX, Windows et Google App Engine.
  • Documentation complète : 100% des fonctionnalités et de l'API est documenté
  • Ensemble impressionnant de tests unitaires. Le paquet repoze.bfg contient 11000 lignes de code Python : 8000 lignes sont des tests unitaires servant à couvrir les 3000 lignes restantes.
  • Très économe : BFG possède une faible empreinte mémoire et ne gaspille aucun cycle processeur.
  • Ne contient pas de dépendances exagérées : installer repoze.bfg grâce à "easy_install" prend moins d'une minute.
  • Lancement rapide : une application BFG typique démarre en 1 seconde.
  • Templating XML/HTML/texte ultra-rapide grâce à Chameleon (http://chameleon.repoze.org/).
  • Utilise n'importe quelle couche de persistance : SQLAlchemy, SQL brut, ZODB, CouchDB, fichiers, ou n'importe quoi d'autre correspondant aux besoins de l'application.
  • Fournit de nombreux templates de démarrage de projet. Chacun d'entre eux permet de démarrer une application BFG correspondant à une utilisation particulière.
  • Permet, au choix, de faire correspondre une URL à du code comme avec le routage d'URL de Django ou Pylons, ou bien d'utiliser une traversée de graphe d'objets comme avec Zope. Ceci permet aux développeurs Zope ou Pylons de retrouver leurs habitudes.
  • Offre des modes de débogage pour les erreurs courantes (vue introuvable, autorisation accordée ou refusée à tort)
  • Permet aux développeurs d'organiser leur code comme bon leur semble : le framework n'impose pas de structure d'organisation du code.
  • Permet d'écrire du code qui peut être facilement testé. BFG évite d'utiliser des structures de données propres à chaque thread, qui nuisent à l'écriture de tests. Il fournit des outils pour simuler des composants du framework comme les templates et les vues.
  • Fournit un système d'autorisation déclaratif dépendant du contexte. Ceci empêche ou autorise l'exécution de code par comparaison des données d'identification avec les informations d'ACL stockées par une application BFG.
  • Le comportement d'une application BFG peut être augmenté ou modifié de manière arbitraire par un développeur tiers sans aucune modification du code source original de l'application. Ceci fait de BFG un bon choix pour construire des frameworks ou des applications extensibles.
  • Les développeurs Zope et Plone se sentiront à l'aise avec la terminologie et les concepts utilisés par BFG. Ils sont en grande majorité dérivés de Zope.

Détails insoutenables

Installation rapide :

easy_install -i http://dist.repoze.org/bfg/current repoze.bfg

Support et information :

http://bfg.repoze.org

Tutoriels

http://docs.repoze.org/bfg/current/#tutorials

Exemples d'applications

http://docs.repoze.org/bfg/current/#sample-applications

Documentation détaillée (explications et API) :

http://docs.repoze.org/bfg/current

Bug tracker :

http://bfg.repoze.org/trac

Liste de diffusion :

http://lists.repoze.org/listinfo/repoze-dev

canal IRC :

irc://irc.freenode.net#repoze

Repoze.bfg est principalement développé par Agendaless Consulting et une équipe de contributeurs.

Un grand merci aux personnes suivantes, sans qui cette version n'aurait pas vu le jour :

Malthe Borch, Carlos de la Guardia, Chris Rossi, Shane Hathaway, Tom Moroz, Yalan Teng, Jason Lantz, Todd Koym, Jessica Geist, Hanno Schlichting, Reed O'Brien, Sebastien Douche, Ian Bicking, Jim Fulton, Martijn Faassen, Ben Bangert, Fernando Correa Neto, YoungKing, Rob Miller, Wichert Akkermann, David Pratt, Mark Ramm, and Chris Perkins.

Tux et Python en 3d-Relief pour le stand AFPY

written by ccomb, on Apr 1, 2009 12:35:00 AM.

Si vous êtes passé au Salon Linux et OpenSource cette année et si vous avez eu la bonne idée de marcher jusqu'au fond à gauche du hall, vous n'aurez certainement pas raté le stand AFPY. J'ai eu la chance de pouvoir emmener un écran 3D-Relief sans lunettes, 24 pouces, de marque Alioscopy, prêté par la société Relief.fr. Pour l'occasion, j'ai effectué une journée de prise de vue en studio avec deux célèbres peluches, Tux et Alain. Tux, tout le monde connait, c'est le pingouin de Linux. Mais si vous ne connaissez pas Alain, il s'agit de la mascotte de l'AFPY, un Python en peluche ramené des JDLL 2008.

Tux et Python

Cette technologie est extraordinaire pour attirer l'attention des visiteurs. Les gens étaient subjugués par l'effet de Relief et la majorité n'avait jamais vu ça. Il y avait un attroupement permanent devant le stand et j'ai passé les trois jours à expliquer comment les écrans fonctionnent. Tout le monde a déjà vu des images en relief, ça fait au moins 200 ans que ça existe (bien avant la photographie). Mais du relief sans lunettes sur un écran LCD, ça paraît surnaturel. J'aurais vraiment du préparer un petit papier explicatif à distribuer...

Pour rappel, le principe est entièrement passif, il s'agit d'une dalle en verre composée d'un réseau très complexe de microlentilles qui permettent de restituer 8 images selon 8 angles différents. Derrière le réseau, les 8 images d'origine sont recomposées en une seule (une sorte de multiplexage), en voici un aperçu grossi 4 fois:

Tux et Python

Cela dit l'écran ne fait pas tout, il faut maîtriser la fabrication d'images sur 8 points de vue. Ici c'est plus que de la stéréoscopie classique à deux images : il y a 8 images ! Du coup le travail de post-prod est plus important et plus complexe, il faut choisir la bonne base, collimater au bon endroit, travailler la lumière, s'assurer que le jaillissement et la profondeur sont correctement proportionnés et positionnés par rapport au cadre de l'écran, etc. Il faut aussi créer un décor. Pour cette fois j'avoue que je me suis pas foulé.

Ces photos correspondent à une des photos de la série des 8 points de vue. Bien entendu le Relief n'apparaît pas sur votre écran, mais je me suis quand-même amusé avec le GIMP à reconstituer tout en bas de l'article une image en stéréoscopie anaglyphique. Si vous avez des lunettes rouge et bleue vous pourrez avoir un aperçu de ce que les visiteurs du Salon ont pu voir. Un aperçu seulement, car sur écran Alioscopy, vous pouvez légèrement tourner autour de l'objet en vous déplaçant. En stéréoscopie classique c'est impossible.

Tux et Python
Tux et Python
Tux et Python
Tux et Python
Tux et Python
Tux et Python

Mmmh, oui, Python donne des forces à votre Linux ;)

Tux et Python

Sur celle-ci le relief était exagéré. le jaillissement du Python atteignait quasiment 1m, et la tête est floue et trop sombre.

En anaglyphe

Là il faut des lunettes rouge et bleu. Si vous n'en avez pas, vous pouvez toujours en commander ici.

Tux et Python en anaglyphe

La création d'une image anaglyphique est un jeu d'enfant. Dans le GIMP (v2.4), vous ouvrez les deux images, puis menu Couleur -> Composants -> RVB en calque, puis vous intervertissez le rouge et le bleu, vous fusionnez les deux verts à 50%, et vous recomposez. C'est la technique la plus basique, on peut faire plus subtil. Le résultat est moyen car il y a des images fantômes, mais c'est fait en 2 minutes.

En vision croisée

Sans lunettes, en plaçant les images gauche et droite côte à côte puis en louchant pour aligner les deux images, vous pouvez voir le relief, et même mieux qu'avec les lunettes. C'est de la vision croisée, ça fait mal à la tête mais c'est paraît-il un excellent exercice de rééducation orthoptique.

Tux et Python en vision croisée

test