Plone pwns

Embed Size (px)

DESCRIPTION

Plone: Why it is better than your CMS. When to use a CMS vs a framewo. What makes a good CMS.

Citation preview

  • 1. Sydney Python Meetup Feb

2. Why its better than your CMS 3. How sites are built 4. Backend Developer (plugins) 5. Themer 6. Integrator 7. Content Editor 8. Administrator 9. Simple Blog Simple CMS e.g. wordpressYour Team Off the shelf 10. CMS ShopClient TeamYour Team Off the shelf 11. Intranet/ECMSYour TeamOff the shelf 12. CMSaaS (e.g.ploud.com/squarespace)SaaS providerYou team 13. Startup/Appe.g. Django/pyramidYour Team Off the shelf 14. Dylans Law of FrameworksThe bigger the framework, the bigger thelearning curve, the greater the inflexibility...but the bigger the chance you can usesomeone else code 15. Plone is easy to use 16. DEMOhttp://ploud.nethttp://plone.org/products/plonetheme.earthlingtwo 17. Plone vs. 18. Who uses Plone? 19. Intranets 20. Plone is Fast 21. Chameleon 22. Easy to cache 23. Is it secure? 24. Plone Security Record (3Y)http://plone.org/products/plone/security 25. @LulzSecVS. 26. LulzSec targetedHacked...DDoSWordpress sub-site 27. Easy Theming 28. Diazo 29. Diazoe.g. 30. Easy Codefrom five import grokfrom Products.CMFDefault.interfaces importIDocumentclass HelloWorld(grok.View): grok.context(IDocument) grok.requires(zope2.View) grok.name(hello-world)http://plone.org/products/dexterity/documentation/manual/five.grok 31. True Open Development 32. How do I get a Plone site? 33. Self Host 34. Commercial Service Providers 35. SaaS 36. Why Python? 37. Python Fast to writeEasy to maintainRuns on anythingCan be optimised with CConnects to anythingSecurePopular 38. Wheres the database? 39. Zope Object Databasestorage = FileStorage.FileStorage(db.fs) new User instance # Createdb = DB(storage) newuser = User()conn = db.open() # Add whatever attributes you want to track class User(Persistent): newuser.id = amkpass newuser.first_name = Andrew ; newuser.last_name = Ku ...dbroot = conn.root()# Add object to the BTree, keyed on the ID# Ensure that a userdb key is presentuserdb[newuser.id] = newuser# in the rootif not dbroot.has_key(userdb):# Commit the change from BTrees.OOBTree import OOBTreetransaction.commit() dbroot[userdb] = OOBTree()userdb = dbroot[userdb] 40. ZODB makes complex structures easyhttp://david.wglick.org/2009/visualizing-the-zodb-with-graphviz 41. Whats the future of Plone? 42. CMSUI & Deco 43. How do I get support? 44. [email protected] http://www.pretaweb.comDylan Jay