16. PyCon 2008:
The Birth of Tabula Rasa
build a dummy site to guide
development of apps
If you want to build a ship, don’t drum up the men to
gather wood, divide the work and give orders.
Instead, teach them to yearn for the vast and endless sea.
– Antoine de Saint-Exupéry
18. Pinax proposed by Orestis Markou
So far it's just my new django-email-confirmation app tied
together with password change and reset, login/logout, with the
beginnings of a tab-style UI. There's a ton more I want to refactor
out of my existing websites to put into it as well as adding
support for OpenID and the stuff I'm starting to do for django-
friends.
Even if one doesn't use Pinax as the starting point of a website,
I'm hoping it will prove very useful for another goal, namely a
quot;hostquot; project to develop and tryout reusable apps.
– blog post 10th May 2008
19. reusable apps
app conventions
+
starting point for new projects
scaffolding for developing new apps
24. •translations into German, Spanish and
Swedish
•a new design / logo
•auto-completion on message receipt field
•a basic Twitter clone
•OEmbed support in tweets
•the beginnings of tribes (i.e. groups)
26. By 4th July...
•localization into Brazilian Portuguese and Hebrew
•timezone localization
•external blog aggregation
•wikis
•threaded discussions
•bookmarks with voting
•contact import
•blogs with tagging and threaded comments
...and 1,000 users on the demo site
27.
28. It is becoming clear that what was originally intended to
be a demo site is a useful site in its own right,
irrespective of whether you care or even know about the
Pinax platform underlying it. So it will be moving over to
a new site with a new identity soon.
– blog post 2nd July 2008
29.
30. { n | available(“cloud<n>.com”), n < 30 }
=
{ 14, 26, 27, 28 }
31. collection of reusable apps
conventions for reusable apps
starting point for new projects
scaffolding for developing new apps
a platform for website development
36. Your Project
the trade off:
Pinax
how much to fix?
how much to make configurable?
how much to leave
Django
completely to site developer?
37. Features
•openid support •interest groups (called
•email ver ification tr ibes)
•password management •projects with basic task and
•site announcements issue management
•a notification fr amewor k •threaded discussions
•user-to-user messaging •wikis with multiple mar kup
•fr iend invitation (both suppor t
inter nal and exter nal to •blogging
the site) •bookmar ks
•a basic twitter clone •tagging
•oembed suppor t •contact impor t (from vCard,
•gr avatar suppor t Google or Yahoo)
•photo management
39. External apps
• all on Google Code Project Hosting
• use of svn:externals
• half were written independently of Pinax
• avoiding “rhythm section apps”
• do one thing
41. Local apps
• some core
• many are just incubated here
• about
• games
• account
• lifestream
• analytics
• photos
• authsub
• profiles
• bbauth
• projects
• blog
• tag_app
• core
• things
• django-openidconsumer
• tribes
• django-openidauth
• zwitschern
• friends_app
42. Libraries
• batteries included
• except for PIL
• makes for a huge checkout
• dateutil • python-openid-2.1.1
• diff-match-patch • python-twitter-0.5
• django-atompub (format) • python-yadis-1.1.0
• docutils-0.4 • pytz-2008b
• feedparser-4.1 • simplejson-1.9.1
• gdata.py-1.0.13 • textile-2.0.11
• geopy-trunk • vobject-0.6.6
• markdown-1.7 • ybrowserauth
• pownce-api-0.2
43. Optional Apps
try:
from notification import models as notification
except ImportError:
notification = None
if notification:
notification.send(...)
should really rely on
INSTALLED_APPS not path!
44. Tracking Trunk
we wanted to be part of the reason
people upgraded to 1.0, not one of
the reasons people didn't need to
45. site
site
site
site
site
site
site
site
site
site
site
site
Learning Management
Social Networks Internets
Systems
Pinax
Django Contrib
Django