Pinax Presentation at DjangoCon 2008

Post on 08-May-2015

3,186 views 2 download

description

A talk on the Pinax platform at DjangoCon 2008 by James Tauber.

transcript

history, state and vision

James Tauber

Russ Keith-Magee

idea realisation

when is it okay to reinvent the wheel?

web technologistvs

web site creator

Leonardo

Leonardo

Python Python

Django

Leonardo

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

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

build a dummy site to guidedevelopment of apps

Tony Hauber’sSummer of Code

PinaxSo 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 "host" project to develop and tryout reusable apps.

– blog post 10th May 2008

proposed by Orestis Markou

starting point for new projects

scaffolding for developing new apps

app conventions

reusable apps

+

Memorial DayWeekend...

•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

•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

By 4th July...

...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 }

a platform for website development

conventions for reusable apps

collection of reusable apps

starting point for new projects

scaffolding for developing new apps

Your Project

Django Django

Pinax

Your Project

Python Python

Django

Pinax

Your Project

the trade off:

how much to fix?how much to make configurable?how much to leavecompletely to site developer?

•openid support•emai l ver i ficat ion•password management•site announcements•a noti ficat ion framework•user-to-user messaging•fr iend invitat ion (both

internal and external to the s ite)

•a basic twitter clone•oembed suppor t•gravatar suppor t

Features

•interest groups (cal led tr ibes)

•projects with basic task and issue management

•threaded discussions•wikis with mult iple markup

suppor t•blogging•bookmarks•tagging•contact impor t (from vCard,

Google or Yahoo)•photo management

•external apps•local apps•libraries•pinax project

Structure of SVN repos

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-email-confirmation• django-command-extensions• django-robots• django-dbtemplates• django-friends• django-notification• django-mailer• django-messages• django-announcements• django-logging• django-oembed• django-pagination• django-threadedcomments• django-wikiapp

• django-timezones• django-feedutil• django-app-plugins• django-voting• django-tagging• django-bookmarks• django-ajax-validation• django-crashlog• django-photologue• django-avatar• django-gravatar• django-arcade• swaps from django-social-economics• django-locations

Local apps•some core•many are just incubated here

• about• account• analytics• authsub• bbauth• blog• core• django-openidconsumer• django-openidauth• friends_app

• games• lifestream• photos• profiles• projects• tag_app• things• tribes• zwitschern

Libraries

•batteries included•except for PIL•makes for a huge checkout

• dateutil• diff-match-patch• django-atompub (format)• docutils-0.4• feedparser-4.1• gdata.py-1.0.13• geopy-trunk• markdown-1.7• pownce-api-0.2

• python-openid-2.1.1• python-twitter-0.5• python-yadis-1.1.0• pytz-2008b• simplejson-1.9.1• textile-2.0.11• vobject-0.6.6• ybrowserauth

try:    from notification import models as notificationexcept ImportError:    notification = None

if notification:    notification.send(...)

Optional Apps

should really rely on INSTALLED_APPS not path!

we wanted to be part of the reason people upgraded to 1.0, not one of the reasons people didn't need to

Tracking Trunk

Django

Pinax

Social Networks

site

Internets Learning Management Systems

site

site

site

site

site

site

site

site

site

site

site

Django Contrib

http://pinaxproject.com/

One More Thing...