SlideShare a Scribd company logo
1 of 47
Download to read offline
When not to use Plone
 And why you might consider Django or Pyramid

            Nate Aune, Jazkarta
          Plone Conference 2011
               San Francisco
Who is this guy?
• Plone developer since 2003
• Founded Jazkarta in 2004 (based in Boston)
 • Carlos de la Guardia, Sally Kleinfeldt
 • Oxfam America, UNICEF, Harvard, Rice,
    UMN Press, Bioneers, City of Albuquerque
 • Sponsoring ZODB Book
    http://zodbdocs.blogspot.com/
• Founded NodeRabbit in 2010
I <3 Plone.
Close your eyes
    (cue harp music)
Phil
            Alan Limi                   Auersperg  Paul
Godefroid                          Gogo           Everitt
                        Jonah Me
 Kapil              Stefan
login        contact


                                                                                      ready to share?   register



Home    Community     Invite   My Page   Forum   Events   Groups   Blogs   About Us




featured Health Activists
Client requirements
• email newsletter     • polls/surveys
• video                • ratings
• ad server            • tagging
• user tracking        • SEO
• single-signon        • custom workflow
• personal dashboard   • taxonomy
• support/helpdesk     • integration with forum
Risk #1
 Functionality proves to be too complex for implementation
within Plone in a given timeframe due to changing factors that
        require attention from the development team.
Risk #2
      System Architecture fails to achieve desired
performance metrics, particularly in its ability to handle
       many concurrent authoring transactions.
Risk #3
The Plone software stack is in a slight state of fluidity at the
 moment where the developers are determining the best
  areas to integrate the Zope 3 component architecture.

Because of this, APIs are changing a little more often than is
normal which means there is a potential for any third-party
   developed application to require additional changes.
Junemonths to delivery! 3
  Two
      25-Sept.
From Client: Also, it would be great if you can provide
the following asap:

1)     As many examples as possible of large Plone
implementations with hard numbers attached such as #
of users per month, concurrent # of users/second, page
requests/second, average response time per page.

Preferably reference “brand names” sites that most
people might know. This is extremely important for the
acceptance of non-technical stakeholders as Plone is
not well known (yet).

2)     Scalability of database “write” operations.
Strategies and techniques. This is important because we
are going to have lots of content creators/reviewers
( thousands or even tens of thousands).
Square peg in a round hole
Additive vs. Subtractive

• You are building on     • You are taking things
  top of what’s already     away and finding
  there.                    yourself fighting the
                            framework.
Content management features aren’t too
hard to create in any of the new crops of
Python web frameworks.
Writing a form, even auto-generating that
form using some framework, accepting input
from users, showing errors, managing users,
etc: for any given project, satisfying these
types of requirements tends to be pretty
easy without Plone.
It’s often much harder to remove
unnecessary features from Plone than it is to
create the necessary ones from scratch.

                           -Chris McDonough
Product or Platform?

Do we always ensure that the needs of the
product's users come ahead of the needs of
the developers that want freedom to change
anything/everything, take it in new
directions, etc.?
                                           -Paul Everitt
                                            Feb. 2008
     http://radio-weblogs.com/0116506/2008/02/05.html
Marketed differently

It's really, really important to figure out if
your product is a platform or not, because
platforms need to be marketed in a very
different way to be successful.
That's because a platform needs to appeal to
developers first and foremost, not end users.
                              - Joel Spolsky
Alienate developers

One of the biggest themes in software
industry failures is a platform vendor that
didn't understand that they were a platform
vendor, so they alienated their key
constituency: the developers.


                             - Joel Spolsky
Case study: KARL
• KARL started as a Plone application with
  FrankenPlone changes to its architecture.
• After fighting the framework, a switch was
  made to use the technologies of Zope
  combined with well-known packages from
  Python and WSGI.
• By removing most of the framework, KARL
  gained much faster performance, reliability,
  and simplicity.
A large part of the
          reason why I’ve enjoyed
          Zope3 so much, is that
          the impedence mismatch
          between application
          development is much
          less than with Plone.
                                       -Kapil Thangavelu
                                           July 2008


http://blog.kapilt.com/2008/07/02/introducing-content-mirror/
Plone is a product, and frankly thats a
good thing for both the software and its
users.
It’s however a bad thing when you’re
building applications, there tends to be
much more policy with products, that
needs to be replaced or worked around
when you’re building on them.
As a result, products tend to have two
other downsides in application
development: developer inefficiencies and
computational inefficiencies.
The Plone Tax
Starting up and serving a page from Plone.

         Over the course of a year
     its about a man month of work.

                  -Kapil
Pylons




Plone tarball
We could drop in a
Pylons in a cubby hole
  of a Plone tarball.
         -Kapil
Z shaped learning curve
A product is typically a much bigger software stack, and
Plone has and utilizes many components, from zope2,
zope3, cmf, archetypes providing foundations, in
addition to a growing number of plone specific
infrastructure.
                          -Kapil
Archetypes


    Plone
Five/z3
     CMF

   Zope
 Python
Product vs. Platform

• All-in-one product (CMS)   • Building a product or
                               customized web
• Minimal customization        application
                             • Don’t need all the
                               bells & whistles
                               provided by CMS
Go-Botany Database: Entity-Relationship Diagram
                                                                                                                           Name
                                 Last updated 23 Jul 2010. Auto primary keys (id) not shown
                                                                                                                                  Friendly Name
   Scientific Name                              TAXON
                                                                        1                                  1        PILE INFO            Description

 Taxonomic Authority                                                    DEPICTED               DEPICTED
                                                                           BY                     BY

                Simple Key                                  Image               N                N
                                                          Alt                               CONTENT
                                                                                             IMAGE
                       M                                  Rank
    Taxon Group
       Entry                                                                            1
                 GROUPED                                                                         1
                                                         Creator
                   BY
                                                                            IS OF TYPE                              1
                                                     M
                  N                                                                           IS OF TYPE                      1
                                                            Name                    1
                                                                                                               DESCRIBES

                                                BELONGS                         IMAGE
          TAXON                                                                                                            DESCRIBES
                                                   TO                            TYPE
          GROUP                                                     N                             1
                                 M
                                                                                             CONTENT                              1
                                              Literature Source                               TYPE
                                                                                                                1
                           EXHIBITS

                   Taxon                                            LISTS               M         PILE
               Character Value       N                                                                              M      PART OF

                                                                        N
                                                                                            Value String                               N
                                                            CHARACTER
                                                                                             Value Min                                   PILE
                                                              VALUE
                                                                                                                                        GROUP
                                                                        N                      Value Max
                                                 1
                                                                PERTAINS
                                                                   TO                       Value Float
                                     EXPLAINED
                                        BY
                                                                1

                                          1
                                                     CHARACTER                      Short Name

                                                                                 Name
                                                     M
                       Term                                             N
                                                EXPLAINED
    Lay Definition                                  BY               GATHERED
                                      N                                IN

Question Text
                                                         Name               1
                       GLOSSARY
   Hint
                         TERM                                                   CHARACTER
                                                                                  GROUP
     Visible

                  Image (temp)                                                                                                        Glossary Term
                                                                                                                    RELATES              for Pile
                                                                                                                                        Character
Django
A web framework named after a jazz musician
         can’t be all that bad, right?
Why Django?
• Batteries included (takes care of the hard
  stuff - ORM, routing, templates)
• Core system is still lightweight (but not as
  lightweight as Zope 3 or Pyramid)
• Lots of 3rd party plugins
• Great documentation / developer mindshare
• Faster to learn (important because of NSF)
• Big sites using it: Mozilla, Eventbrite, Disqus
Recombinant innovations
People do not suddenly come up with new ideas.
They piece them together from what they already
know. People often fail to come up with a new
understanding of what’s happening, new ways of
dealing with problems, when they lack the wide-
ranging set of ideas from which to piece together
alternatives.
The trick is to develop in-depth knowledge within a
given field but, at the same time, develop the
willingness to take that knowledge apart and
combine it in new ways.
-Andrew Hargadon, How Breakthroughs Happen
Bridging distant worlds
This is difficult because, people are reluctant
to abandon their old knowledge.
Bridging distant worlds provides a way to
acquire knowledge without acquiring the ties
that typically bind such knowledge to
particular worlds.

           -Andrew Hargadon
After I delivered the first app, things got very silent. I
                  stopped getting calls, no more emails, not even a
                  single postcard! ...

                  Until I realized: the team didn't need me anymore.
                  Python and Pyramid were too damn easy! My days
                  as a consultant would soon be counted. :-)

                                -Daniel Nouri

http://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/
How do you choose one framework over another?




 How long does it take
your team to learn it and
 be productive with it?
Plone          Django         Pyramid


CMS product       Full-stack    Light-weight
w/ framework     framework       framework


  “Batteries    Choices made
                                 More options
included” but   for you (ORM,
                                to choose from
 w/ overhead    templates, etc)
Thank you!
Questions? Fire away!
Photo credits
• http://www.flickr.com/photos/sjixxxy/4870201052/
• http://www.flickr.com/photos/epublicist/3546059144/
• http://www.flickr.com/photos/rosietulips/4093466966/
• http://www.flickr.com/photos/gamp/2803432466/
• http://www.flickr.com/photos/termie/3392894269/
•   How to use Plone as a framework
    http://stackoverflow.com/questions/854905/how-to-use-plone-as-a-framework

•   Introducing Content Mirror
    http://blog.kapilt.com/2008/07/02/introducing-content-mirror/

•   Pyramid is too damn easy
    http://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/

•   Paul Everitt - Market the Whole product
    http://www.zeapartners.org/presentations/marketproductwholeproduct.pdf

•   Product or Platform
    http://radio-weblogs.com/0116506/2008/02/05.html

•   How Breakthroughs Happen - book review
    http://www.vedpuriswar.org/book_review/How%20breakthroughs%20happen.PDF

•   What Django should learn from Zope (Mark Ramm)
    http://www.youtube.com/watch?v=fipFKyW2FA4

•   Where next for Plone development by Ian Bicking
    http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/

•   Drupal: Product vs. Framework
    http://london2011.drupal.org/sites/default/files/product-framework-drupal.pdf

More Related Content

More from Jazkarta, Inc.

Questions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendQuestions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendJazkarta, Inc.
 
The User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondThe User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondJazkarta, Inc.
 
WTA and Plone After 13 Years
WTA and Plone After 13 YearsWTA and Plone After 13 Years
WTA and Plone After 13 YearsJazkarta, Inc.
 
Collaborating With Orchid Data
Collaborating With Orchid DataCollaborating With Orchid Data
Collaborating With Orchid DataJazkarta, Inc.
 
Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Jazkarta, Inc.
 
Plone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifePlone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifeJazkarta, Inc.
 
Accessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyAccessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyJazkarta, Inc.
 
Getting Paid Without GetPaid
Getting Paid Without GetPaidGetting Paid Without GetPaid
Getting Paid Without GetPaidJazkarta, Inc.
 
An Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchAn Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchJazkarta, Inc.
 
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...Jazkarta, Inc.
 
Anatomy of a Large Website Project
Anatomy of a Large Website ProjectAnatomy of a Large Website Project
Anatomy of a Large Website ProjectJazkarta, Inc.
 
Anatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesAnatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesJazkarta, Inc.
 
The Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneThe Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneJazkarta, Inc.
 
Plone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionPlone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionJazkarta, Inc.
 
Academic Websites in Plone
Academic Websites in PloneAcademic Websites in Plone
Academic Websites in PloneJazkarta, Inc.
 
Online Exhibits in Plone
Online Exhibits in PloneOnline Exhibits in Plone
Online Exhibits in PloneJazkarta, Inc.
 
Pyramid Deployment and Maintenance
Pyramid Deployment and MaintenancePyramid Deployment and Maintenance
Pyramid Deployment and MaintenanceJazkarta, Inc.
 

More from Jazkarta, Inc. (20)

Questions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS FrontendQuestions: A Form Library for Python with SurveyJS Frontend
Questions: A Form Library for Python with SurveyJS Frontend
 
The User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and BeyondThe User Experience: Editing Composite Pages in Plone 6 and Beyond
The User Experience: Editing Composite Pages in Plone 6 and Beyond
 
WTA and Plone After 13 Years
WTA and Plone After 13 YearsWTA and Plone After 13 Years
WTA and Plone After 13 Years
 
Collaborating With Orchid Data
Collaborating With Orchid DataCollaborating With Orchid Data
Collaborating With Orchid Data
 
Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!Spend a Week Hacking in Sorrento!
Spend a Week Hacking in Sorrento!
 
Plone 5 Upgrades In Real Life
Plone 5 Upgrades In Real LifePlone 5 Upgrades In Real Life
Plone 5 Upgrades In Real Life
 
Accessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the UglyAccessibility in Plone: The Good, the Bad, and the Ugly
Accessibility in Plone: The Good, the Bad, and the Ugly
 
Getting Paid Without GetPaid
Getting Paid Without GetPaidGetting Paid Without GetPaid
Getting Paid Without GetPaid
 
An Open Source Platform for Social Science Research
An Open Source Platform for Social Science ResearchAn Open Source Platform for Social Science Research
An Open Source Platform for Social Science Research
 
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
For the Love of Volunteers! How Do You Choose the Right Technology to Manage ...
 
Anatomy of a Large Website Project
Anatomy of a Large Website ProjectAnatomy of a Large Website Project
Anatomy of a Large Website Project
 
Anatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter NotesAnatomy of a Large Website Project - With Presenter Notes
Anatomy of a Large Website Project - With Presenter Notes
 
The Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with PloneThe Mountaineers: Scaling the Heights with Plone
The Mountaineers: Scaling the Heights with Plone
 
Plone Hosting: A Panel Discussion
Plone Hosting: A Panel DiscussionPlone Hosting: A Panel Discussion
Plone Hosting: A Panel Discussion
 
Plone+Salesforce
Plone+SalesforcePlone+Salesforce
Plone+Salesforce
 
Academic Websites in Plone
Academic Websites in PloneAcademic Websites in Plone
Academic Websites in Plone
 
Plone
PlonePlone
Plone
 
Online Exhibits in Plone
Online Exhibits in PloneOnline Exhibits in Plone
Online Exhibits in Plone
 
ZODB Tips and Tricks
ZODB Tips and TricksZODB Tips and Tricks
ZODB Tips and Tricks
 
Pyramid Deployment and Maintenance
Pyramid Deployment and MaintenancePyramid Deployment and Maintenance
Pyramid Deployment and Maintenance
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

When Not to Use Plone: and Why You Might Consider Django or Pyramid

  • 1. When not to use Plone And why you might consider Django or Pyramid Nate Aune, Jazkarta Plone Conference 2011 San Francisco
  • 2. Who is this guy? • Plone developer since 2003 • Founded Jazkarta in 2004 (based in Boston) • Carlos de la Guardia, Sally Kleinfeldt • Oxfam America, UNICEF, Harvard, Rice, UMN Press, Bioneers, City of Albuquerque • Sponsoring ZODB Book http://zodbdocs.blogspot.com/ • Founded NodeRabbit in 2010
  • 4. Close your eyes (cue harp music)
  • 5.
  • 6.
  • 7. Phil Alan Limi Auersperg Paul Godefroid Gogo Everitt Jonah Me Kapil Stefan
  • 8.
  • 9.
  • 10. login contact ready to share? register Home Community Invite My Page Forum Events Groups Blogs About Us featured Health Activists
  • 11. Client requirements • email newsletter • polls/surveys • video • ratings • ad server • tagging • user tracking • SEO • single-signon • custom workflow • personal dashboard • taxonomy • support/helpdesk • integration with forum
  • 12. Risk #1 Functionality proves to be too complex for implementation within Plone in a given timeframe due to changing factors that require attention from the development team.
  • 13. Risk #2 System Architecture fails to achieve desired performance metrics, particularly in its ability to handle many concurrent authoring transactions.
  • 14. Risk #3 The Plone software stack is in a slight state of fluidity at the moment where the developers are determining the best areas to integrate the Zope 3 component architecture. Because of this, APIs are changing a little more often than is normal which means there is a potential for any third-party developed application to require additional changes.
  • 15. Junemonths to delivery! 3 Two 25-Sept.
  • 16. From Client: Also, it would be great if you can provide the following asap: 1) As many examples as possible of large Plone implementations with hard numbers attached such as # of users per month, concurrent # of users/second, page requests/second, average response time per page. Preferably reference “brand names” sites that most people might know. This is extremely important for the acceptance of non-technical stakeholders as Plone is not well known (yet). 2) Scalability of database “write” operations. Strategies and techniques. This is important because we are going to have lots of content creators/reviewers ( thousands or even tens of thousands).
  • 17. Square peg in a round hole
  • 18. Additive vs. Subtractive • You are building on • You are taking things top of what’s already away and finding there. yourself fighting the framework.
  • 19. Content management features aren’t too hard to create in any of the new crops of Python web frameworks. Writing a form, even auto-generating that form using some framework, accepting input from users, showing errors, managing users, etc: for any given project, satisfying these types of requirements tends to be pretty easy without Plone. It’s often much harder to remove unnecessary features from Plone than it is to create the necessary ones from scratch. -Chris McDonough
  • 20.
  • 21. Product or Platform? Do we always ensure that the needs of the product's users come ahead of the needs of the developers that want freedom to change anything/everything, take it in new directions, etc.? -Paul Everitt Feb. 2008 http://radio-weblogs.com/0116506/2008/02/05.html
  • 22. Marketed differently It's really, really important to figure out if your product is a platform or not, because platforms need to be marketed in a very different way to be successful. That's because a platform needs to appeal to developers first and foremost, not end users. - Joel Spolsky
  • 23. Alienate developers One of the biggest themes in software industry failures is a platform vendor that didn't understand that they were a platform vendor, so they alienated their key constituency: the developers. - Joel Spolsky
  • 24.
  • 25. Case study: KARL • KARL started as a Plone application with FrankenPlone changes to its architecture. • After fighting the framework, a switch was made to use the technologies of Zope combined with well-known packages from Python and WSGI. • By removing most of the framework, KARL gained much faster performance, reliability, and simplicity.
  • 26.
  • 27. A large part of the reason why I’ve enjoyed Zope3 so much, is that the impedence mismatch between application development is much less than with Plone. -Kapil Thangavelu July 2008 http://blog.kapilt.com/2008/07/02/introducing-content-mirror/
  • 28. Plone is a product, and frankly thats a good thing for both the software and its users. It’s however a bad thing when you’re building applications, there tends to be much more policy with products, that needs to be replaced or worked around when you’re building on them. As a result, products tend to have two other downsides in application development: developer inefficiencies and computational inefficiencies.
  • 29. The Plone Tax Starting up and serving a page from Plone. Over the course of a year its about a man month of work. -Kapil
  • 31. We could drop in a Pylons in a cubby hole of a Plone tarball. -Kapil
  • 32. Z shaped learning curve A product is typically a much bigger software stack, and Plone has and utilizes many components, from zope2, zope3, cmf, archetypes providing foundations, in addition to a growing number of plone specific infrastructure. -Kapil
  • 33. Archetypes Plone Five/z3 CMF Zope Python
  • 34. Product vs. Platform • All-in-one product (CMS) • Building a product or customized web • Minimal customization application • Don’t need all the bells & whistles provided by CMS
  • 35.
  • 36. Go-Botany Database: Entity-Relationship Diagram Name Last updated 23 Jul 2010. Auto primary keys (id) not shown Friendly Name Scientific Name TAXON 1 1 PILE INFO Description Taxonomic Authority DEPICTED DEPICTED BY BY Simple Key Image N N Alt CONTENT IMAGE M Rank Taxon Group Entry 1 GROUPED 1 Creator BY IS OF TYPE 1 M N IS OF TYPE 1 Name 1 DESCRIBES BELONGS IMAGE TAXON DESCRIBES TO TYPE GROUP N 1 M CONTENT 1 Literature Source TYPE 1 EXHIBITS Taxon LISTS M PILE Character Value N M PART OF N Value String N CHARACTER Value Min PILE VALUE GROUP N Value Max 1 PERTAINS TO Value Float EXPLAINED BY 1 1 CHARACTER Short Name Name M Term N EXPLAINED Lay Definition BY GATHERED N IN Question Text Name 1 GLOSSARY Hint TERM CHARACTER GROUP Visible Image (temp) Glossary Term RELATES for Pile Character
  • 37. Django A web framework named after a jazz musician can’t be all that bad, right?
  • 38. Why Django? • Batteries included (takes care of the hard stuff - ORM, routing, templates) • Core system is still lightweight (but not as lightweight as Zope 3 or Pyramid) • Lots of 3rd party plugins • Great documentation / developer mindshare • Faster to learn (important because of NSF) • Big sites using it: Mozilla, Eventbrite, Disqus
  • 39.
  • 40. Recombinant innovations People do not suddenly come up with new ideas. They piece them together from what they already know. People often fail to come up with a new understanding of what’s happening, new ways of dealing with problems, when they lack the wide- ranging set of ideas from which to piece together alternatives. The trick is to develop in-depth knowledge within a given field but, at the same time, develop the willingness to take that knowledge apart and combine it in new ways. -Andrew Hargadon, How Breakthroughs Happen
  • 41. Bridging distant worlds This is difficult because, people are reluctant to abandon their old knowledge. Bridging distant worlds provides a way to acquire knowledge without acquiring the ties that typically bind such knowledge to particular worlds. -Andrew Hargadon
  • 42. After I delivered the first app, things got very silent. I stopped getting calls, no more emails, not even a single postcard! ... Until I realized: the team didn't need me anymore. Python and Pyramid were too damn easy! My days as a consultant would soon be counted. :-) -Daniel Nouri http://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/
  • 43. How do you choose one framework over another? How long does it take your team to learn it and be productive with it?
  • 44. Plone Django Pyramid CMS product Full-stack Light-weight w/ framework framework framework “Batteries Choices made More options included” but for you (ORM, to choose from w/ overhead templates, etc)
  • 46. Photo credits • http://www.flickr.com/photos/sjixxxy/4870201052/ • http://www.flickr.com/photos/epublicist/3546059144/ • http://www.flickr.com/photos/rosietulips/4093466966/ • http://www.flickr.com/photos/gamp/2803432466/ • http://www.flickr.com/photos/termie/3392894269/
  • 47. How to use Plone as a framework http://stackoverflow.com/questions/854905/how-to-use-plone-as-a-framework • Introducing Content Mirror http://blog.kapilt.com/2008/07/02/introducing-content-mirror/ • Pyramid is too damn easy http://danielnouri.org/notes/2011/03/16/pyramid-is-too-damn-easy---a-success-story/ • Paul Everitt - Market the Whole product http://www.zeapartners.org/presentations/marketproductwholeproduct.pdf • Product or Platform http://radio-weblogs.com/0116506/2008/02/05.html • How Breakthroughs Happen - book review http://www.vedpuriswar.org/book_review/How%20breakthroughs%20happen.PDF • What Django should learn from Zope (Mark Ramm) http://www.youtube.com/watch?v=fipFKyW2FA4 • Where next for Plone development by Ian Bicking http://blog.ianbicking.org/2008/11/06/where-next-for-plone-development/ • Drupal: Product vs. Framework http://london2011.drupal.org/sites/default/files/product-framework-drupal.pdf