pinax
TRANSCRIPT
![Page 1: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/1.jpg)
history, state and vision
James Tauber
![Page 2: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/2.jpg)
Russ Keith-Magee
![Page 3: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/3.jpg)
idea realisation
![Page 4: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/4.jpg)
when is it okay to reinvent the wheel?
![Page 5: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/5.jpg)
web technologistvs
web site creator
![Page 6: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/6.jpg)
Leonardo
![Page 7: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/7.jpg)
Leonardo
Python Python
Django
Leonardo
![Page 8: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/8.jpg)
why layer?
• portability
• reusability
• efficiency through compromise
![Page 9: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/9.jpg)
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
![Page 10: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/10.jpg)
PyCon 2007:The Birth of the (second)Hotclub of France
• reusable apps
• app conventions
• mailing list
• some discussion but never got far
![Page 11: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/11.jpg)
•django-tagging•django-voting•django-registration
![Page 12: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/12.jpg)
Potter Predictions
• send invitations• connect to friends• make comments on
predictions• tag prediction• mass mailout to
users
![Page 13: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/13.jpg)
| I vi | ii V | I vi | ii V || I I7 | IV iv | I V | I || III7 | III7 | VI7 | VI7 || II7 | II7 | V7 | V7 |
![Page 14: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/14.jpg)
rhythm changes
contrafacts
![Page 15: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/15.jpg)
•django-friends•django-notification•django-mailer•django-things
![Page 16: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/16.jpg)
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
![Page 17: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/17.jpg)
Tony Hauber’sSummer of Code
![Page 18: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/18.jpg)
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
![Page 19: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/19.jpg)
starting point for new projects
scaffolding for developing new apps
app conventions
reusable apps
+
![Page 20: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/20.jpg)
Memorial DayWeekend...
![Page 21: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/21.jpg)
•django-friends•django-notification•django-mailer•django-email-confirmation
![Page 22: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/22.jpg)
•user profile pages•gravatars•user-to-user messages
•via django-messages
•announcements•a new app, django-announcements
•OpenID support•invitations to join
![Page 23: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/23.jpg)
![Page 24: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/24.jpg)
•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)
![Page 25: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/25.jpg)
•63% reusable apps•10% local apps•13% templates•8% localization•5% media•1% util
![Page 26: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/26.jpg)
•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
![Page 27: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/27.jpg)
![Page 28: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/28.jpg)
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
![Page 29: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/29.jpg)
![Page 30: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/30.jpg)
{ n | available(“cloud<n>.com”), n < 30 }=
{ 14, 26, 27, 28 }
![Page 31: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/31.jpg)
a platform for website development
conventions for reusable apps
collection of reusable apps
starting point for new projects
scaffolding for developing new apps
![Page 32: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/32.jpg)
![Page 33: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/33.jpg)
![Page 34: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/34.jpg)
![Page 35: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/35.jpg)
Your Project
Django Django
Pinax
Your Project
Python Python
![Page 36: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/36.jpg)
Django
Pinax
Your Project
the trade off:
how much to fix?how much to make configurable?how much to leavecompletely to site developer?
![Page 37: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/37.jpg)
•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
![Page 38: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/38.jpg)
•external apps•local apps•libraries•pinax project
Structure of SVN repos
![Page 39: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/39.jpg)
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
![Page 40: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/40.jpg)
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
![Page 41: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/41.jpg)
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
![Page 42: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/42.jpg)
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
![Page 43: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/43.jpg)
try: from notification import models as notificationexcept ImportError: notification = None
if notification: notification.send(...)
Optional Apps
should really rely on INSTALLED_APPS not path!
![Page 44: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/44.jpg)
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
![Page 45: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/45.jpg)
Django
Pinax
Social Networks
site
Internets Learning Management Systems
site
site
site
site
site
site
site
site
site
site
site
Django Contrib
![Page 47: Pinax](https://reader033.vdocuments.net/reader033/viewer/2022042814/554bd4b2b4c905ac708b4ddb/html5/thumbnails/47.jpg)
One More Thing...