The CMS that hits above its weightJuly 2011
HOW TO BUILD A WEBSITE?
Site building optionsEasy to update
Learn to develop
Flexible
Reuse 0
5HTML
Scripting (PHP, ASP etc)
LWF (Rails, django etc)
CMS (Plone, drupal)
SaaS (SquareSpace etc)
WHAT DOES A CMS LOOK LIKE?
DEMOhttp://ploud.nethttp://plone.org/products/plonetheme.earthlingtwo
PLONE VS. …
Why is Plone popular with big not small sites?
WHO USES PLONE?
Intranets
HOW DO I GET A PLONE SITE?
Self Host
Commercial Service Providers
SaaS
WHY PYTHON?
Python …
• Fast to write• Easy to maintain• Runs on anything• Can be optimised with C• Connects to anything• Secure• Popular…
WHERE’S THE DATABASE?
Zope Object Database
class User(Persistent): pass
dbroot = conn.root()# Ensure that a 'userdb' key is present# in the rootif not dbroot.has_key('userdb'): from BTrees.OOBTree import OOBTree dbroot['userdb'] = OOBTree()
userdb = dbroot['userdb']
# Create new User instancenewuser = User()
# Add whatever attributes you want to tracknewuser.id = 'amk'newuser.first_name = 'Andrew' ; newuser.last_name = 'Kuchling'...
# Add object to the BTree, keyed on the IDuserdb[newuser.id] = newuser
# Commit the changetransaction.commit()
storage = FileStorage.FileStorage(’db.fs')db = DB(storage)conn = db.open()
ZODB makes complex structures easyhttp://david.wglick.org/2009/visualizing-the-zodb-with-graphviz
DOES PLONE SCALE?
RelStorage: Speed & Replication
IS IT SECURE?
Plone Security Record (3Y)• Plone/Zope/Python stack:
– CVE Entries containing Plone: 13 (9)– CVE Entries containing Zope: 27 (9)– CVE Entries containing Python: 111 (65)
• PHP-based stacks:– CVE Entries containing Drupal: 371 (269)– CVE Entries containing Joomla: 653 (441)– CVE Entries containing MySQL: 282 (84)– CVE Entries containing Postgre: 82 (22)
• Other stacks:– CVE Entries containing Perl: 3,835 (1,780)
http://plone.org/products/plone/security
@LulzSec
VS.
HOW DO I MAKE IT LOOK COOL?
diazo
WHO IS PLONE?
WHAT’S THE FUTURE OF PLONE?
CMSUI & Deco
Chameleon
HOW DO I GET SUPPORT?
DYLAN [email protected] http://www.pretaweb.com