SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
history, state and vision
James Tauber
Russ Keith-Magee
idea   realisation
when is it okay to
reinvent the wheel?
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
•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
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-email-confirmation    •   django-timezones
•   django-command-extensions   •   django-feedutil
•   django-robots               •   django-app-plugins
•   django-dbtemplates          •   django-voting
•   django-friends              •   django-tagging
•   django-notification          •   django-bookmarks
•   django-mailer               •   django-ajax-validation
•   django-messages             •   django-crashlog
•   django-announcements        •   django-photologue
•   django-logging              •   django-avatar
•   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
   •   gdata.py-1.0.13           •   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
http://pinaxproject.com/
One More Thing...

Más contenido relacionado

Similar a Pinax Presentation at DjangoCon 2008

Open Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial MeetupOpen Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial MeetupChris Schalk
 
Getting Started With Django
Getting Started With DjangoGetting Started With Django
Getting Started With Djangojeff_croft
 
Community 2.0 Community Bootcamp: the technology part by Tara Hunt
Community 2.0 Community Bootcamp: the technology part by Tara HuntCommunity 2.0 Community Bootcamp: the technology part by Tara Hunt
Community 2.0 Community Bootcamp: the technology part by Tara HuntTara Hunt
 
Clearspring Widgetsphere
Clearspring WidgetsphereClearspring Widgetsphere
Clearspring Widgetsphereeraz
 
How To Build The Open Mesh 09
How To Build The Open Mesh 09How To Build The Open Mesh 09
How To Build The Open Mesh 09Marc Canter
 
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...Open Social Technical Update for Java developers - Presented at sv-gtug.org m...
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...Chris Schalk
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webPatrick Chanezon
 
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...adunne
 
Jython on Django
Jython on DjangoJython on Django
Jython on Djangofwierzbicki
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLars Trieloff
 
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...Scott Abel
 
Analyzing Your Deliverables: Developing the Optimal Documentation Library
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryAnalyzing Your Deliverables: Developing the Optimal Documentation Library
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryScott Abel
 
Goodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social UpdateGoodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social UpdatePatrick Chanezon
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConfBrian LeRoux
 
Image Optimization for the Web at php|works
Image Optimization for the Web at php|worksImage Optimization for the Web at php|works
Image Optimization for the Web at php|worksStoyan Stefanov
 

Similar a Pinax Presentation at DjangoCon 2008 (20)

Pinax
PinaxPinax
Pinax
 
Open Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial MeetupOpen Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial Meetup
 
Getting Started With Django
Getting Started With DjangoGetting Started With Django
Getting Started With Django
 
Community 2.0 Community Bootcamp: the technology part by Tara Hunt
Community 2.0 Community Bootcamp: the technology part by Tara HuntCommunity 2.0 Community Bootcamp: the technology part by Tara Hunt
Community 2.0 Community Bootcamp: the technology part by Tara Hunt
 
Clearspring Widgetsphere
Clearspring WidgetsphereClearspring Widgetsphere
Clearspring Widgetsphere
 
How To Build The Open Mesh 09
How To Build The Open Mesh 09How To Build The Open Mesh 09
How To Build The Open Mesh 09
 
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...Open Social Technical Update for Java developers - Presented at sv-gtug.org m...
Open Social Technical Update for Java developers - Presented at sv-gtug.org m...
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
 
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
 
Jython on Django
Jython on DjangoJython on Django
Jython on Django
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
 
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...
 
Analyzing Your Deliverables: Developing the Optimal Documentation Library
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryAnalyzing Your Deliverables: Developing the Optimal Documentation Library
Analyzing Your Deliverables: Developing the Optimal Documentation Library
 
Making of GameOver
Making of GameOverMaking of GameOver
Making of GameOver
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
 
Goodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social UpdateGoodle Developer Days Madrid 2008 - Open Social Update
Goodle Developer Days Madrid 2008 - Open Social Update
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Image Optimization for the Web at php|works
Image Optimization for the Web at php|worksImage Optimization for the Web at php|works
Image Optimization for the Web at php|works
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Pinax Presentation at DjangoCon 2008

  • 1. history, state and vision James Tauber
  • 3. idea realisation
  • 4. when is it okay to reinvent the wheel?
  • 5. web technologist vs web site creator
  • 7. Leonardo Leonardo Django Python Python
  • 8. why layer? • portability • reusability • efficiency through compromise
  • 9. 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
  • 10. PyCon 2007: The Birth of the (second) Hotclub of France • reusable apps • app conventions • mailing list • some discussion but never got far
  • 12. Potter Predictions • send invitations • connect to friends • make comments on predictions • tag prediction • mass mailout to users
  • 13. | I vi | ii V | I vi | ii V | | I I7 | IV iv | I V | I | | III7 | III7 | VI7 | VI7 | | II7 | II7 | V7 | V7 |
  • 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
  • 22. •user profile pages •gravatars •user-to-user messages •via django-messages •announcements •a new app, django-announcements •OpenID support •invitations to join
  • 23.
  • 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)
  • 25. •63% reusable apps •10% local apps •13% templates •8% localization •5% media •1% util
  • 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
  • 32.
  • 33.
  • 34.
  • 35. Your Project Your Project Pinax Django Django Python Python
  • 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
  • 38. Structure of SVN repos •external apps •local apps •libraries •pinax project
  • 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
  • 40. External apps • django-email-confirmation • django-timezones • django-command-extensions • django-feedutil • django-robots • django-app-plugins • django-dbtemplates • django-voting • django-friends • django-tagging • django-notification • django-bookmarks • django-mailer • django-ajax-validation • django-messages • django-crashlog • django-announcements • django-photologue • django-logging • django-avatar • django-oembed • django-gravatar • django-pagination • django-arcade • django-threadedcomments • swaps from django-social-economics • django-wikiapp • django-locations
  • 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