SlideShare a Scribd company logo
1 of 63
Download to read offline
State of
 James Tauber


                DjangoCon 2009
pi in hex
def pi():
    N = 0
    n, d = 0, 1
    while True:
        xn = (120*N**2 + 151*N + 47)
        xd = (512*N**4 + 1024*N**3 +
              712*N**2 + 194*N + 15)
        n = ((16 * n * xd) + (xn * d)) % (d * xd)
        d *= xd
        yield 16 * n // d
        N += 1
Your Site
Your Site
            Django



 Python      Python
idea   realisation
Quisition
            • currently has:
              • signup, login, password
                management
              • announcements
              • deck searching and sort

            • want to add:
              • user profiles
              • rating, tagging and commenting
                  on decks
              •   groups, friendships
              •   membership levels
              •   notifications
              •   OpenID
Hot Club of France

      reusable apps

     app conventions
Potter Predictions
               • send invitations
               • connect to friends
               • make comments on
                 predictions
               • tag prediction
               • mass mailout to
                 users
Tabula Rasa
          reusable apps

         app conventions


                +
  starting point for new projects

scaffolding for developing new 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
Let’s Build a
Social Networking Site
{ 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
•   AuthX (AuthN + AuthZ)

Modern Web Infrastructure                                       ◦ Capabilities
                                                                ◦ Multifactor Auth
                                                                ◦ Rate Limiting
                                                                ◦ Signup
                                                                ◦ OpenID
                                                                ◦ OAuth
                                                                ◦ External import
   •   API Metering                                       •   Groups
   •   Backups & Snapshots                                •   Invites
   •   Counters                                           •   Lists
   •   Cloud/Cluster Management Tools                     •   Notifications
         ◦ Instrumentation/Monitoring (Ganglia, Nagios)         ◦ Spam filtering
         ◦ Failover                                             ◦ Multi-protocol routing
         ◦ Node addition/removal and hashing                    ◦ Fine-grained controls/rules
         ◦ Autoscaling for cloud resources                •   Presence
   •   CSRF/XSS Protection                                •   Social Activity Log (Newsfeed)
   •   Data Retention/Archival                                  ◦ Filtering
   •   Deployment Tools                                   •   Social Model
         ◦ Multiple Devs, Staging, Prod                         ◦ Connectivity (uni/bidi)
         ◦ Data model upgrades                                  ◦ Privacy (private, reciprocal, public)
         ◦ Rolling deployments                                  ◦ Views
         ◦ Multiple versions (selective beta)                   ◦ Traversal
         ◦ Bucket Testing                                 •   Social Object
         ◦ Rollbacks                                            ◦ Privacy, Social Scoping
         ◦ CDN Management                                       ◦ Voting
   •   Distributed File Storage                                 ◦ Sharing
   •   Distributed Log storage, analysis                        ◦ Publishing
   •   Graphing                                                 ◦ Comments
   •   HTTP Caching                                             ◦ Favoriting
   •   Input/Output Filtering                                   ◦ Social editing
   •   Memory Caching                                           ◦ Permissions
   •   Non-relational Key Stores                          •   Tagging
   •   Rate Limiting                                            ◦ Combinations
   •   Relational Storage                                       ◦ Relatedness
   •   Queues                                             •   User
   •   Rate Limiting                                            ◦ Achievements/Awards
   •   Real-time messaging (XMPP)                               ◦ Activity Log
   •   Search                                                   ◦ External User ID Mapping
         ◦ Ranging                                              ◦ Permissions (see AuthX)
         ◦ Geo                                                  ◦ Deletion/Archival
   •   Sharding                                                 ◦ Flagging
   •   Smart Caching                                            ◦ Direct Messaging
         ◦ dirty-table management                               ◦ User Cards
What seems the biggest shame to me is that everyone is
currently rebuilding this stuff over and over again and rationalizing
it as some sort of secret sauce competitive advantage when it’s
really infrastructure - stuff that really should be standardized so
you can actually get around to doing the new and interesting
stuff.
                                                                      — Leonard Lin
                              http://randomfoo.net/2009/01/28/infrastructure-for-modern-web-sites
Your Project
               the trade off:
   Pinax
               how much to fix?
               how much to make configurable?
               how much to leave
  Django
               completely to site developer?
Reusability is not just
  at the app layer
reusable app




quisition          potterpredictions
djangopeople   pythonpeople
pinax project




djangopeople             pythonpeople
Ole Kirk Christiansen
• blocks
• sets
• themes
Pinax IS Django
Pinax IS NOT Django
“Pinax is
opinionated so
Django doesn’t
 have to be”
“PINAX:
   Even more
opinionated than
    Django”
Milestones

  •   0.5.0 — October 2008
  •   0.5.1 — January 2009
  •   0.7beta1— April 2009 (485)
  •   0.7beta2 — April 2009 (58)
  •   0.7beta3 — July 2009 (445)
  •   0.7rc1— September 2009 (291)
1271 commits
343 tickets closed
 between 0.5 and 0.7
 (not counting external apps)
Features in 0.5
•   openid support                                 • interest groups
                                                           (called tr ibes)
•   email ver ification
•   password management                            • projects
                                                        with basic task and issue management
•   site announcements                             • threaded discussions
•   a notification fr amewor k                     • wikis
•   user-to-user messaging                                 with multiple mar kup suppor t
•   fr iend invitation                             •   blogging
      (both inter nal and exter nal to the site)
                                                   •   bookmar ks
•   a basic twitter clone
                                                   •   tagging
•   oembed suppor t
                                                   •   contact impor t
•   gr avatar suppor t                                     (from vCard, Google or Yahoo)
                                                   • photo management
0.5 Structure
  • external apps
      • all on Google Code (SVN)
      • half written independently of Pinax
  •     local apps
  •     libraries (batteries included)
  •     two sample projects
  •     path hacking
Sites Using Pinax
Sites Using Pinax
Sites Using Pinax
Sites Using Pinax
Sites Using Pinax
0.7 Release
•   translation removal
•   locations
•   frontend-admin and generic flat-blocks
•   account and group improvements
•   new task app
•   uni-form and Section 508
•   better shared templates and media
•   more sample projects
    (and complete renamed social)

• virtualenv and pip
• pinax is now a package
New Account App

 •   turn OpenID on/off
 •   turn sign up on/off
 •   waiting list
 •   invite only / private beta
 •   token-based password reset
 •   (resend signup email confirmation)
 •   (use email for login)
you signed up for       admin initiated           each user has fixed        user can invite
       beta                account               number to hand out            anyone



           admin sent code                                        user invited you



    general code                          unique invite
                                                                       just go to site
      (type in)                            (email link)



         have code                                                     external auth




               username / password                 username
                     signup                      (no password)




                                  SIGNED UP
New Group App
 •   Don’t Repeat Yourself!
 •   endo vs exo
 •   group apps versus content apps
 •   membership app
Endo Approach
(framework-like)
Endo Approach
(framework-like)
Exo Approach
(library approach)
Exo Approach
(library approach)
Shared Templates and Media
 • look up:
  • project
  • pinax            new level (multiple themes)
  • app
 • media build command
 • ship with famfamfam silk icons
Problems with 0.5 structure
 • it largely relies on external dependencies
   being in svn and this is increasingly not the
   case (although it was when Pinax started)
 • it makes it difficult for Pinax itself to move
   away from svn
 • there is no management of dependencies
   between external dependencies, nor between
   particular projects in Pinax and their individual
   dependencies
virtualenv and pip
 • encourage externals apps to be distutils-
   compliant
 • pip for package install (at least during
   development)
 • optional “batteries included” release
 • virtualenv to provide isolation, remove
   need for path hacking and just because it
   kicks ass
release install
(download tarball, extract and cd)

$ python scripts/pinax-boot.py ../pinax-env
$ source ../pinax-env/bin/activate
(pinax-env)$ cd ..

(pinax-env)$ pinax-admin clone_project
                      social_project mysite
(pinax-env)$ cd mysite/
(pinax-env)$ python manage.py syncdb
(pinax-env)$ python manage.py runserver
development install
(download pinax-boot.py from github)

$ python pinax-boot.py --development ./pinax-env
$ source ./pinax-env/bin/activate
(pinax-env)$


(pinax-env)$ cd ./pinax-env/
(pinax-env)$ pip install --requirement
         src/pinax/requirements/external_apps.txt
Move to github
http://github.com/pinax/pinax/
35 contributors
108 members of pinax-core-dev list
    58 at PyCon

336 users on code.pinaxproject.com
403 watchers on github
    157 at PyCon

649 members of pinax-users list
    398 at PyCon
Pinax is NOT just for
   social networks
site
       site
              site
                     site
                              site
                                        site
                                               site
                                                      site
                                                             site
                                                                    site
                                                                           site
                                                                                  site
                                                  Learning
Social Networks             Intranets                                 e-commerce
                                                 Management


                                         Pinax

                                        Django
site
       site
              site
                     site
                              site
                                        site
                                               site
                                                      site
                                                             site
                                                                    site
                                                                           site
                                                                                  site
                                                  Learning
Social Networks             Intranets                                 e-commerce
                                                 Management


                                         Pinax

                                        Django
Editions

 •   social networking
 •   intranet
 •   learning management
 •   e-commerce
 •   clubs and associations
 •   conference management
 •   software project management
Roadmap
 • 0.7rc1 out last week
 • 0.7 final in next day or two
 • 0.8 “translation release”
     based off 0.7 and in parallel to 0.9
   •

 • 0.9 “big feature release” and invitations
     rethink friends: split into friends, contacts
   •
   •   rethink profiles
   •   workflow
   •   open stack
   •   calendar / events
   •   new apps
   •   new projects
   •   new editions?
Join Us During Sprint
(even if just in #pinax-sprint on freenode)
http://pinaxproject.com/

More Related Content

Viewers also liked

Brave new world private banking
Brave new world private bankingBrave new world private banking
Brave new world private bankingJuris Cernavskis
 
Salesforce1 Platform - Der schnellste Weg von der Idee zur App
Salesforce1 Platform - Der schnellste Weg von der Idee zur AppSalesforce1 Platform - Der schnellste Weg von der Idee zur App
Salesforce1 Platform - Der schnellste Weg von der Idee zur AppSalesforce Deutschland
 
Companies
CompaniesCompanies
Companiesecsrdl
 
Viii Semana MatemáTica Ies Sierra Minera Alumnos
Viii Semana MatemáTica Ies Sierra Minera AlumnosViii Semana MatemáTica Ies Sierra Minera Alumnos
Viii Semana MatemáTica Ies Sierra Minera AlumnosDe Mates Na
 
Workshop rapport - First edition
Workshop rapport - First editionWorkshop rapport - First edition
Workshop rapport - First editionTeoriogPraksis
 
مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen
 مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen
مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcenAbdelkader Benhaddou
 
Mayli Sepulveda Acceso A La Informacion Para La Incidencia Publica
Mayli Sepulveda   Acceso A La Informacion Para La Incidencia PublicaMayli Sepulveda   Acceso A La Informacion Para La Incidencia Publica
Mayli Sepulveda Acceso A La Informacion Para La Incidencia PublicaMarco Giuseppe Gomero
 
Protagonistas II Guerra Mundial
Protagonistas II Guerra MundialProtagonistas II Guerra Mundial
Protagonistas II Guerra MundialJeanpado7
 
Poveste De Succes.
Poveste De Succes.Poveste De Succes.
Poveste De Succes.guest7a1d88
 
Gsx code two gsx final
Gsx code two gsx finalGsx code two gsx final
Gsx code two gsx finalGSX Solutions
 
Oficinas en Renta en Hermosillo Espacios Habitat Bienes Raices
Oficinas en Renta en Hermosillo Espacios Habitat Bienes RaicesOficinas en Renta en Hermosillo Espacios Habitat Bienes Raices
Oficinas en Renta en Hermosillo Espacios Habitat Bienes RaicesEspacios hábitat Bienes Raíces
 
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).Sociedad Española de Cardiología
 
Catalogo quiko criadores profesional
Catalogo quiko criadores profesionalCatalogo quiko criadores profesional
Catalogo quiko criadores profesionalPornis Pipo
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsChristian Trabold
 
Las tic en la educación
Las tic en la educaciónLas tic en la educación
Las tic en la educaciónLizeth_08
 

Viewers also liked (18)

Brave new world private banking
Brave new world private bankingBrave new world private banking
Brave new world private banking
 
Salesforce1 Platform - Der schnellste Weg von der Idee zur App
Salesforce1 Platform - Der schnellste Weg von der Idee zur AppSalesforce1 Platform - Der schnellste Weg von der Idee zur App
Salesforce1 Platform - Der schnellste Weg von der Idee zur App
 
Companies
CompaniesCompanies
Companies
 
Viii Semana MatemáTica Ies Sierra Minera Alumnos
Viii Semana MatemáTica Ies Sierra Minera AlumnosViii Semana MatemáTica Ies Sierra Minera Alumnos
Viii Semana MatemáTica Ies Sierra Minera Alumnos
 
Te lo cuento octubre 2011
Te lo cuento octubre 2011Te lo cuento octubre 2011
Te lo cuento octubre 2011
 
Workshop rapport - First edition
Workshop rapport - First editionWorkshop rapport - First edition
Workshop rapport - First edition
 
مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen
 مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen
مركز الدراسات الاندلسية بتلمسان Centre d'études andalouses de tlemcen
 
Mayli Sepulveda Acceso A La Informacion Para La Incidencia Publica
Mayli Sepulveda   Acceso A La Informacion Para La Incidencia PublicaMayli Sepulveda   Acceso A La Informacion Para La Incidencia Publica
Mayli Sepulveda Acceso A La Informacion Para La Incidencia Publica
 
Protagonistas II Guerra Mundial
Protagonistas II Guerra MundialProtagonistas II Guerra Mundial
Protagonistas II Guerra Mundial
 
Poveste De Succes.
Poveste De Succes.Poveste De Succes.
Poveste De Succes.
 
Gsx code two gsx final
Gsx code two gsx finalGsx code two gsx final
Gsx code two gsx final
 
Oficinas en Renta en Hermosillo Espacios Habitat Bienes Raices
Oficinas en Renta en Hermosillo Espacios Habitat Bienes RaicesOficinas en Renta en Hermosillo Espacios Habitat Bienes Raices
Oficinas en Renta en Hermosillo Espacios Habitat Bienes Raices
 
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).
Ejemplo de buenas prácticas en el Complejo Hospitalario de Vigo (Pontevedra).
 
Catalogo quiko criadores profesional
Catalogo quiko criadores profesionalCatalogo quiko criadores profesional
Catalogo quiko criadores profesional
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensions
 
Tubos pvc
Tubos pvcTubos pvc
Tubos pvc
 
Mercadotecnia
MercadotecniaMercadotecnia
Mercadotecnia
 
Las tic en la educación
Las tic en la educaciónLas tic en la educación
Las tic en la educación
 

Similar to State of Pinax

Drupal By Design - Business Case for Drupal
Drupal By Design - Business Case for DrupalDrupal By Design - Business Case for Drupal
Drupal By Design - Business Case for DrupalGlenn Lim
 
The OSS Forge Ecosystem: Today and Tomorrow
The OSS Forge Ecosystem: Today and TomorrowThe OSS Forge Ecosystem: Today and Tomorrow
The OSS Forge Ecosystem: Today and Tomorrowoostendo
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcasecloud4le
 
TechSoup Global - Technology Resources for Nonprofits Webinar 012413
TechSoup Global - Technology Resources for Nonprofits Webinar 012413TechSoup Global - Technology Resources for Nonprofits Webinar 012413
TechSoup Global - Technology Resources for Nonprofits Webinar 012413Community IT Innovators
 
Django - non-technical introduction
Django - non-technical introductionDjango - non-technical introduction
Django - non-technical introductionjakaspaka
 
Monitoring with Icinga @ SF Bay Area LSPE meetup
Monitoring with Icinga @ SF Bay Area LSPE meetupMonitoring with Icinga @ SF Bay Area LSPE meetup
Monitoring with Icinga @ SF Bay Area LSPE meetupPromet Source
 
Tools for Entrepreneurs: Create. Collaborate. Communicate.
Tools for Entrepreneurs: Create. Collaborate. Communicate.Tools for Entrepreneurs: Create. Collaborate. Communicate.
Tools for Entrepreneurs: Create. Collaborate. Communicate.Sara Rosso
 
Achieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefAchieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefMatt Ray
 
Big Data Approaches to Cloud Security
Big Data Approaches to Cloud SecurityBig Data Approaches to Cloud Security
Big Data Approaches to Cloud SecurityPaul Morse
 
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Centre of Competence
 
Better Tools, Better Mindset
Better Tools, Better MindsetBetter Tools, Better Mindset
Better Tools, Better MindsetYusup
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptOpenStack Foundation
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptOpenStack Foundation
 
Frokost seminar windows 8 februar 2013
Frokost seminar   windows 8 februar 2013Frokost seminar   windows 8 februar 2013
Frokost seminar windows 8 februar 2013Olav Tvedt
 
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in Production
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in ProductionJoel Jacobson (Datastax) - Diagnosing Cassandra Problems in Production
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in ProductionOutlyer
 
OpenStack Deployments with Chef
OpenStack Deployments with ChefOpenStack Deployments with Chef
OpenStack Deployments with ChefMatt Ray
 
Chef for OpenStack - OpenStack Fall 2012 Summit
Chef for OpenStack  - OpenStack Fall 2012 SummitChef for OpenStack  - OpenStack Fall 2012 Summit
Chef for OpenStack - OpenStack Fall 2012 SummitMatt Ray
 

Similar to State of Pinax (20)

Drupal By Design - Business Case for Drupal
Drupal By Design - Business Case for DrupalDrupal By Design - Business Case for Drupal
Drupal By Design - Business Case for Drupal
 
The OSS Forge Ecosystem: Today and Tomorrow
The OSS Forge Ecosystem: Today and TomorrowThe OSS Forge Ecosystem: Today and Tomorrow
The OSS Forge Ecosystem: Today and Tomorrow
 
Offience's Node showcase
Offience's Node showcaseOffience's Node showcase
Offience's Node showcase
 
TechSoup Global - Technology Resources for Nonprofits Webinar 012413
TechSoup Global - Technology Resources for Nonprofits Webinar 012413TechSoup Global - Technology Resources for Nonprofits Webinar 012413
TechSoup Global - Technology Resources for Nonprofits Webinar 012413
 
Django - non-technical introduction
Django - non-technical introductionDjango - non-technical introduction
Django - non-technical introduction
 
Monitoring with Icinga @ SF Bay Area LSPE meetup
Monitoring with Icinga @ SF Bay Area LSPE meetupMonitoring with Icinga @ SF Bay Area LSPE meetup
Monitoring with Icinga @ SF Bay Area LSPE meetup
 
Drupal In 1 Hour
Drupal In 1 HourDrupal In 1 Hour
Drupal In 1 Hour
 
Tools for Entrepreneurs: Create. Collaborate. Communicate.
Tools for Entrepreneurs: Create. Collaborate. Communicate.Tools for Entrepreneurs: Create. Collaborate. Communicate.
Tools for Entrepreneurs: Create. Collaborate. Communicate.
 
Achieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefAchieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with Chef
 
Big Data Approaches to Cloud Security
Big Data Approaches to Cloud SecurityBig Data Approaches to Cloud Security
Big Data Approaches to Cloud Security
 
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens Neudecker
 
Better Tools, Better Mindset
Better Tools, Better MindsetBetter Tools, Better Mindset
Better Tools, Better Mindset
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.ppt
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.ppt
 
Frokost seminar windows 8 februar 2013
Frokost seminar   windows 8 februar 2013Frokost seminar   windows 8 februar 2013
Frokost seminar windows 8 februar 2013
 
Deep thoughts from the real world of azure
Deep thoughts from the real world of azureDeep thoughts from the real world of azure
Deep thoughts from the real world of azure
 
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in Production
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in ProductionJoel Jacobson (Datastax) - Diagnosing Cassandra Problems in Production
Joel Jacobson (Datastax) - Diagnosing Cassandra Problems in Production
 
OpenStack Deployments with Chef
OpenStack Deployments with ChefOpenStack Deployments with Chef
OpenStack Deployments with Chef
 
Chef for OpenStack - OpenStack Fall 2012 Summit
Chef for OpenStack  - OpenStack Fall 2012 SummitChef for OpenStack  - OpenStack Fall 2012 Summit
Chef for OpenStack - OpenStack Fall 2012 Summit
 
Chef for OpenStack- Fall 2012.pdf
Chef for OpenStack- Fall 2012.pdfChef for OpenStack- Fall 2012.pdf
Chef for OpenStack- Fall 2012.pdf
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

State of Pinax

  • 1. State of James Tauber DjangoCon 2009
  • 2.
  • 4. def pi(): N = 0 n, d = 0, 1 while True: xn = (120*N**2 + 151*N + 47) xd = (512*N**4 + 1024*N**3 + 712*N**2 + 194*N + 15) n = ((16 * n * xd) + (xn * d)) % (d * xd) d *= xd yield 16 * n // d N += 1
  • 5. Your Site Your Site Django Python Python
  • 6. idea realisation
  • 7. Quisition • currently has: • signup, login, password management • announcements • deck searching and sort • want to add: • user profiles • rating, tagging and commenting on decks • groups, friendships • membership levels • notifications • OpenID
  • 8. Hot Club of France reusable apps app conventions
  • 9. Potter Predictions • send invitations • connect to friends • make comments on predictions • tag prediction • mass mailout to users
  • 10. Tabula Rasa reusable apps app conventions + starting point for new projects scaffolding for developing new apps
  • 11.
  • 12. 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
  • 13. Let’s Build a Social Networking Site
  • 14.
  • 15.
  • 16. { n | available(“cloud<n>.com”), n < 30 } = { 14, 26, 27, 28 }
  • 17. collection of reusable apps conventions for reusable apps starting point for new projects scaffolding for developing new apps + a platform for website development
  • 18. Your Project Your Project Pinax Django Django Python Python
  • 19. AuthX (AuthN + AuthZ) Modern Web Infrastructure ◦ Capabilities ◦ Multifactor Auth ◦ Rate Limiting ◦ Signup ◦ OpenID ◦ OAuth ◦ External import • API Metering • Groups • Backups & Snapshots • Invites • Counters • Lists • Cloud/Cluster Management Tools • Notifications ◦ Instrumentation/Monitoring (Ganglia, Nagios) ◦ Spam filtering ◦ Failover ◦ Multi-protocol routing ◦ Node addition/removal and hashing ◦ Fine-grained controls/rules ◦ Autoscaling for cloud resources • Presence • CSRF/XSS Protection • Social Activity Log (Newsfeed) • Data Retention/Archival ◦ Filtering • Deployment Tools • Social Model ◦ Multiple Devs, Staging, Prod ◦ Connectivity (uni/bidi) ◦ Data model upgrades ◦ Privacy (private, reciprocal, public) ◦ Rolling deployments ◦ Views ◦ Multiple versions (selective beta) ◦ Traversal ◦ Bucket Testing • Social Object ◦ Rollbacks ◦ Privacy, Social Scoping ◦ CDN Management ◦ Voting • Distributed File Storage ◦ Sharing • Distributed Log storage, analysis ◦ Publishing • Graphing ◦ Comments • HTTP Caching ◦ Favoriting • Input/Output Filtering ◦ Social editing • Memory Caching ◦ Permissions • Non-relational Key Stores • Tagging • Rate Limiting ◦ Combinations • Relational Storage ◦ Relatedness • Queues • User • Rate Limiting ◦ Achievements/Awards • Real-time messaging (XMPP) ◦ Activity Log • Search ◦ External User ID Mapping ◦ Ranging ◦ Permissions (see AuthX) ◦ Geo ◦ Deletion/Archival • Sharding ◦ Flagging • Smart Caching ◦ Direct Messaging ◦ dirty-table management ◦ User Cards
  • 20. What seems the biggest shame to me is that everyone is currently rebuilding this stuff over and over again and rationalizing it as some sort of secret sauce competitive advantage when it’s really infrastructure - stuff that really should be standardized so you can actually get around to doing the new and interesting stuff. — Leonard Lin http://randomfoo.net/2009/01/28/infrastructure-for-modern-web-sites
  • 21. Your Project the trade off: Pinax how much to fix? how much to make configurable? how much to leave Django completely to site developer?
  • 22. Reusability is not just at the app layer
  • 23. reusable app quisition potterpredictions
  • 24. djangopeople pythonpeople
  • 29. Pinax IS NOT Django
  • 30. “Pinax is opinionated so Django doesn’t have to be”
  • 31. “PINAX: Even more opinionated than Django”
  • 32. Milestones • 0.5.0 — October 2008 • 0.5.1 — January 2009 • 0.7beta1— April 2009 (485) • 0.7beta2 — April 2009 (58) • 0.7beta3 — July 2009 (445) • 0.7rc1— September 2009 (291)
  • 33. 1271 commits 343 tickets closed between 0.5 and 0.7 (not counting external apps)
  • 34. Features in 0.5 • openid support • interest groups (called tr ibes) • email ver ification • password management • projects with basic task and issue management • site announcements • threaded discussions • a notification fr amewor k • wikis • user-to-user messaging with multiple mar kup suppor t • fr iend invitation • blogging (both inter nal and exter nal to the site) • bookmar ks • a basic twitter clone • tagging • oembed suppor t • contact impor t • gr avatar suppor t (from vCard, Google or Yahoo) • photo management
  • 35. 0.5 Structure • external apps • all on Google Code (SVN) • half written independently of Pinax • local apps • libraries (batteries included) • two sample projects • path hacking
  • 41. 0.7 Release • translation removal • locations • frontend-admin and generic flat-blocks • account and group improvements • new task app • uni-form and Section 508 • better shared templates and media • more sample projects (and complete renamed social) • virtualenv and pip • pinax is now a package
  • 42. New Account App • turn OpenID on/off • turn sign up on/off • waiting list • invite only / private beta • token-based password reset • (resend signup email confirmation) • (use email for login)
  • 43. you signed up for admin initiated each user has fixed user can invite beta account number to hand out anyone admin sent code user invited you general code unique invite just go to site (type in) (email link) have code external auth username / password username signup (no password) SIGNED UP
  • 44. New Group App • Don’t Repeat Yourself! • endo vs exo • group apps versus content apps • membership app
  • 49. Shared Templates and Media • look up: • project • pinax new level (multiple themes) • app • media build command • ship with famfamfam silk icons
  • 50. Problems with 0.5 structure • it largely relies on external dependencies being in svn and this is increasingly not the case (although it was when Pinax started) • it makes it difficult for Pinax itself to move away from svn • there is no management of dependencies between external dependencies, nor between particular projects in Pinax and their individual dependencies
  • 51. virtualenv and pip • encourage externals apps to be distutils- compliant • pip for package install (at least during development) • optional “batteries included” release • virtualenv to provide isolation, remove need for path hacking and just because it kicks ass
  • 52. release install (download tarball, extract and cd) $ python scripts/pinax-boot.py ../pinax-env $ source ../pinax-env/bin/activate (pinax-env)$ cd .. (pinax-env)$ pinax-admin clone_project social_project mysite (pinax-env)$ cd mysite/ (pinax-env)$ python manage.py syncdb (pinax-env)$ python manage.py runserver
  • 53. development install (download pinax-boot.py from github) $ python pinax-boot.py --development ./pinax-env $ source ./pinax-env/bin/activate (pinax-env)$ (pinax-env)$ cd ./pinax-env/ (pinax-env)$ pip install --requirement src/pinax/requirements/external_apps.txt
  • 55.
  • 56. 35 contributors 108 members of pinax-core-dev list 58 at PyCon 336 users on code.pinaxproject.com 403 watchers on github 157 at PyCon 649 members of pinax-users list 398 at PyCon
  • 57. Pinax is NOT just for social networks
  • 58. site site site site site site site site site site site site Learning Social Networks Intranets e-commerce Management Pinax Django
  • 59. site site site site site site site site site site site site Learning Social Networks Intranets e-commerce Management Pinax Django
  • 60. Editions • social networking • intranet • learning management • e-commerce • clubs and associations • conference management • software project management
  • 61. Roadmap • 0.7rc1 out last week • 0.7 final in next day or two • 0.8 “translation release” based off 0.7 and in parallel to 0.9 • • 0.9 “big feature release” and invitations rethink friends: split into friends, contacts • • rethink profiles • workflow • open stack • calendar / events • new apps • new projects • new editions?
  • 62. Join Us During Sprint (even if just in #pinax-sprint on freenode)