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

More Related Content

Similar to Pinax Presentation at DjangoCon 2008

Pinax
PinaxPinax
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
 
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
Tara Hunt
 
Clearspring Widgetsphere
Clearspring WidgetsphereClearspring Widgetsphere
Clearspring Widgetsphere
eraz
 
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
 
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 web
Patrick 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 Django
fwierzbicki
 
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
 
[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
 
Making of GameOver
Making of GameOverMaking of GameOver
Sensible scaling
Sensible scalingSensible scaling
Sensible scaling
Rowan Merewood
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
Jazkarta, Inc.
 
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
Patrick Chanezon
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
Brian LeRoux
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
Marshall Culpepper
 
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
 

Similar to 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
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 

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