SlideShare a Scribd company logo
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
                               •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
                                 •
       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...

More Related Content

Similar to 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
Chris Schalk
 
Getting Started With Django
Getting Started With DjangoGetting Started With Django
Getting Started With Django
jeff_croft
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
Rowan Merewood
 
Free the Bandwidth of News
Free the Bandwidth of NewsFree the Bandwidth of News
Free the Bandwidth of News
Shih-Chieh Li
 
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
 
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
Lars Trieloff
 
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
Stoyan Stefanov
 
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
Marc Canter
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Long Nguyen
 
Jython on Django
Jython on DjangoJython on Django
Jython on Django
fwierzbicki
 
Presentation eXo Foss Bridge
Presentation eXo Foss BridgePresentation eXo Foss Bridge
Presentation eXo Foss Bridge
Jeremi Joslin
 
[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 Library
Scott Abel
 
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
 
Mojomojo Talk
Mojomojo TalkMojomojo Talk
Mojomojo Talk
Marcus Ramberg
 
Fedora App Slide 2009 Hastac
Fedora App Slide 2009 HastacFedora App Slide 2009 Hastac
Fedora App Slide 2009 Hastac
Loretta Auvil
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
Jazkarta, Inc.
 
Django & Buildout (en)
Django & Buildout (en)Django & Buildout (en)
Django & Buildout (en)
zerok
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
Marshall Culpepper
 
Drupal.org Search Evaluation
Drupal.org Search EvaluationDrupal.org Search Evaluation
Drupal.org Search Evaluation
Isriya Paireepairit
 

Similar to Pinax (20)

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
 
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
 
Free the Bandwidth of News
Free the Bandwidth of NewsFree the Bandwidth of News
Free the Bandwidth of News
 
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...
 
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
 
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
 
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
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
Jython on Django
Jython on DjangoJython on Django
Jython on Django
 
Presentation eXo Foss Bridge
Presentation eXo Foss BridgePresentation eXo Foss Bridge
Presentation eXo Foss Bridge
 
[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
 
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...
 
Mojomojo Talk
Mojomojo TalkMojomojo Talk
Mojomojo Talk
 
Fedora App Slide 2009 Hastac
Fedora App Slide 2009 HastacFedora App Slide 2009 Hastac
Fedora App Slide 2009 Hastac
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
 
Django & Buildout (en)
Django & Buildout (en)Django & Buildout (en)
Django & Buildout (en)
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Drupal.org Search Evaluation
Drupal.org Search EvaluationDrupal.org Search Evaluation
Drupal.org Search Evaluation
 

More from DjangoCon2008

Why I Hate Django
Why I Hate DjangoWhy I Hate Django
Why I Hate Django
DjangoCon2008
 
Satchmo
SatchmoSatchmo
Satchmo
DjangoCon2008
 
Reusable Apps
Reusable AppsReusable Apps
Reusable Apps
DjangoCon2008
 
What’S New In Newforms Admin
What’S New In Newforms AdminWhat’S New In Newforms Admin
What’S New In Newforms Admin
DjangoCon2008
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
DjangoCon2008
 
High Performance Django
High Performance DjangoHigh Performance Django
High Performance Django
DjangoCon2008
 

More from DjangoCon2008 (6)

Why I Hate Django
Why I Hate DjangoWhy I Hate Django
Why I Hate Django
 
Satchmo
SatchmoSatchmo
Satchmo
 
Reusable Apps
Reusable AppsReusable Apps
Reusable Apps
 
What’S New In Newforms Admin
What’S New In Newforms AdminWhat’S New In Newforms Admin
What’S New In Newforms Admin
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
 
High Performance Django
High Performance DjangoHigh Performance Django
High Performance Django
 

Recently uploaded

PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 

Recently uploaded (20)

PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 

Pinax

  • 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 •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
  • 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-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 •
  • 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