Upcoming SlideShare
Loading in...5







Total Views
Views on SlideShare
Embed Views



1 Embed 1 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Pinax Pinax Presentation Transcript

  • history, state and vision James Tauber
  • Russ Keith-Magee
  • idea realisation View slide
  • when is it okay to reinvent the wheel? View slide
  • web technologist vs web site creator
  • Leonardo
  • Leonardo Leonardo Django Python Python
  • why layer? • portability • reusability • efficiency through compromise
  • Quisition • currently has: announcements • sign up • deck searching and sort • user analytics • • want to add: • rating, tagging and commenting on decks • groups, friendships • membership levels • notifications
  • PyCon 2007: The Birth of the (second) Hotclub of France reusable apps • app conventions • mailing list • some discussion but never got far •
  • •django-tagging •django-voting •django-registration
  • Potter Predictions • send invitations • connect to friends • make comments on predictions • tag prediction • mass mailout to users
  • | I vi | ii V | I vi | ii V | | I I7 | IV iv | I V | I | | III7 | III7 | VI7 | VI7 | | II7 | II7 | V7 | V7 |
  • rhythm changes contrafacts
  • •django-friends •django-notification •django-mailer •django-things
  • 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
  • Tony Hauber’s Summer of Code
  • 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
  • reusable apps app conventions + starting point for new projects scaffolding for developing new apps
  • Memorial Day Weekend...
  • •django-friends •django-notification •django-mailer •django-email-confirmation
  • •user profile pages •gravatars •user-to-user messages •via django-messages •announcements •a new app, django-announcements •OpenID support •invitations to join
  • •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)
  • •63% reusable apps •10% local apps •13% templates •8% localization •5% media •1% util
  • 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
  • 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
  • { n | available(“cloud<n>.com”), n < 30 } = { 14, 26, 27, 28 }
  • collection of reusable apps conventions for reusable apps starting point for new projects scaffolding for developing new apps a platform for website development
  • Your Project Your Project Pinax Django Django Python Python
  • Your Project the trade off: Pinax how much to fix? how much to make configurable? how much to leave Django completely to site developer?
  • Features •interest groups (called •openid support •email ver ification tr ibes) •projects with basic task and •password management •site announcements issue management •threaded discussions •a notification fr amewor k •wikis with multiple mar kup •user-to-user messaging •fr iend invitation (both suppor t •blogging inter nal and exter nal to •bookmar ks the site) •tagging •a basic twitter clone •contact impor t (from vCard, •oembed suppor t •gr avatar suppor t Google or Yahoo) •photo management
  • Structure of SVN repos •external apps •local apps •libraries •pinax project
  • 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
  • External apps django-timezones • django-email-confirmation • django-feedutil • django-command-extensions • django-app-plugins • django-robots • django-voting • django-dbtemplates • django-tagging • django-friends • django-bookmarks • django-notification • django-ajax-validation django-mailer • • django-crashlog django-messages • • django-photologue django-announcements • • django-avatar django-logging • • django-oembed django-gravatar • • django-pagination • django-arcade • django-threadedcomments • swaps from django-social-economics • django-wikiapp • django-locations •
  • 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 •
  • 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 • • textile-2.0.11 • geopy-trunk • vobject-0.6.6 • markdown-1.7 • ybrowserauth • pownce-api-0.2 •
  • 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!
  • 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
  • site site site site site site site site site site site site Learning Management Social Networks Internets Systems Pinax Django Contrib Django
  • One More Thing...