Skip to content

Rhaptos Software Development

Personal tools
You are here: Home » Developer Blog » Kyle C's Old Blog » Plone Conference Update

Plone Conference Update Plone Conference Update

Document Actions
Submitted by . on 2005-07-25 10:26.
The things I learned from the Plone Conference in New Orleans

Tutorial 1: Best Practices for Development – Joel Burton

  • Our Products and Development Practices, in general, are good
  • Editing things on the file system is almost always better than editing Through The Web (TTW)
  • I need to write scripts for my new Products that automate any changes in the ZODB
  • skins directories should be lowercase by convention
  • Class definitions should be inside a content directory by convention
  • Archetypes are good - traditional development is bad
  • Selenium is good - Unit tests are limited
  • The origin of the name Selenium
  • The zope debug interface is good - WingIDE is better
  • Version Control is good - subversion is better than CVS

Tutorial 2: Hands On: Skinning Plone and Usability – Alexander Limi

  • Plone 2.1 is the first release of Plone that Limi is proud of
  • Plone 2.1 will dramatically change skinning be making ResourceRegistries, modular CSS files
  • ResourseRegistries will allow TAL expressions in the CSS and JS files (even though Limi doesn't like it... CSS and JS shouldn't have TAL or DTML expressions in them, according to him)
  • Third Party Products will be able to register global CSS in Plone 2.1
  • Use the Firefox "Web Developer Extensions" and "DOM Inspector" to debug CSS files

Also, Limi had a lot of User Interfaces advice for good useability

  • Links: make it obvious that they are links - always have them be underlined unless they are obviously navigation links (like in a sidebar) - they should be a different color, preferably blue, to make them stand out - make visited links a shade of purple or red - never underline anything that isn't a link
  • Use semantic naming on ids
  • Never use a class name that is equivalent to the tag name, like: <a class="link"...>
  • Never rely only on colors - they are good for a quick overview, but a lot of males are colorblind
  • Don't put actions on each row of a table (like delete, cut, copy, etc...)
  • use class="vertical listing" for vertically oriented tables
  • Portlets should use <dl> based-structures
  • Use inline Portlets (CMF Content Panels)
  • Use checkboxes if there are about 5 (+/- 2) or multiple selection boxes if there are more - checkboxes are much better for usability, but take up a lot of space
  • Use radio buttons if there are about 5 (+/- 2) or a pulldown list if there are more - radio buttons are much better for usability, but take up a lot of space

Talk 1: Keynote talk: Plone – Growing Up – Alan Runyan, Alexander Limi

  • Plone is now owned by the Plone Foundation
  • Plone is a Worldwide Trademark
  • 385,000 total downloads of Plone
  • Plone 2.1 is the first release that "does not suck"
  • Plone 2.1 has many features including: Zope 2.8 compatability, Five compatability, CMF 1.5 based, ATCT as default, LiveSearch, SmartFolders, Display menu - per folder instance, Right to Left writing support, Over 50 translations, ResourceRegistries

Talk 2: Plone in the Enterprise – Bryan Simmons

  • General Physics doesn’t have anything to do with physics
  • I'm glad I'm not currently working in the Enterprise

Talk 3: Tabajara, a Taxonomy Builder – Chalu Kim

  • Tabajara is a Product developed by several Brazillians to sort content by subject
  • Has some potential for us to use, but would probably require fairly heavy customization
  • Wanted a simple system to handle a variety of situations
  • Tabajara uses “dimensions” – like a set of rows or columns of a table
  • Define structure like chapters in a book: 1 – Eduction, 1.1 – Physical Education, 1.1.1 – Warm-up

Talk 4: PlonePAS Presentation – J. Cameron Cooper

  • Cannot be dropped directly into Plone
  • PlonePAS integrates between PAS and Plone
  • PAS will replace GRUF in the future as the new way to handle users
  • All user folder tasks and functionality is pluggable
  • Provides several default plugins
  • Can get plugins from third parties
  • Flexible administration
  • Ask Cameron if you have any quetsions

Talk 5: Five – Sidnei da Silva

  • Five is a way to use Zope 3 technologies inside of Zope 2.*
  • Zope 2.8 and Zope 3 include Five
  • New Features: Interfaces, Schema, ZCML, Global utilities, Edit forms, Menus, Zope 3-style macros
  • Flon – Five in Plone
  • Fate – Five for Archetypes: Base_add-like functionality, Kills portal_factory
  • CMF and Zope are slowly converging to using Zope 3 interfaces
  • Five is the path of transistion to Zope 3
  • Its an immediately cleaner way to write views

Talk 6: Taking Advantage of Windows with Zope – Mark Hammond

  • Useful in the Enterprise due to existing architecture
  • Not very useful to us

Talk 7: Zelenium: Browser Testing for Zope – Tres Seaver

  • Zelenium is a modification of Selenium to make it integrate better with Zope
  • Could use Tcpwatch to record “wire-level” information: Artifacts make “intent” of user hard to infer, Ideally, browser-based “gesture” recording might help
  • Zelenium provides generator.py to autogenerate test cases from Tcpwatch output - cleanup generally takes more time than writing tests yourself
  • No Plone/ CMF dependency
  • CMF will have Zelenium tests soon
  • Favors “static” test cases – don’t want to test the tests!
  • test suite can pull test cases from the file system (so you can keep them with a Product on the file system with version control)
  • Allows recursive test suites
  • ‘?auto=true’ query string trigger runs all tests and captures results in a n object which generates a log file -export test suite as a zip file
  • DemoStorage – underlying storage can have “known state” - teardown is simply restarting appserver - wrap around normal storage
  • hard to get it to work with EPOZ or kupu

Talk 8: ZODB Tips and Tricks – Chris McDonough

  • ZODB is persistent Object Store – doesn’t have query language – uses Python
  • ZODB doesn’t depend on Zope in any way – could be used in any python app
  • Zope handles: Storage, Database, Connection, Transaction – for you
  • One storage per database
  • Any object stored in the ZODB must inherit from the Persistent class
  • ZODB has no native indexing mechanism
  • You do the indexing of your data – Zcatalog
  • Recent ZODB improvements: Multiversion concurrency control (MVCC), can now persist “new-style” classes
  • Coming improvements – Blobs, multiple connection pools

Talk 9: Case Study: University of North Carolina – Charlie Hitlin, Kapil Thangavelu

  • For syllabus material
  • Resource manager – builds on ATManagedFile, ATVocabularManager, PortalTransforms, and ATReferenceManager
  • Curriculum manager – the core of the system presents multiple calendar views displaying courses and topics - Courses and topics support delegation to users with appropriate roles for management - LDAP Backed User Search Widget - Builds on Calendaring, ATVocabularyManager, and python-icalendar projects
  • Could possibly be integrated with Connexions by having their course material in Connexions

Talk 10: CMF Deployment – Kapil Thangavelu

  • Remove Plone/Zope for content delivery, only use it for content management
  • Static Plone Sites are fast
  • Kapil is way over my head

Talk 11: ArchGenXML / UML - Nate Aune

  • Autogenerates an Archetypes Product from a UML diagram
  • Suggests using Poseidon for UML (gentlewear.com)
  • Inserts documentation
  • Placeholders for custom code
  • I18n message ids
  • Inserts author information
  • Is not currently "round-trip" - Changes made in the Archetypes files or ZMI cannot be ported back to UML
  • Resources at: http://www.jazkarta.com/presentations

Talk 12: How to make your Plone Site fast – Geoff Davis

  • Can use Apache benchmark to simulate lots of users hitting a single page
  • Use Selenium for speed tests
  • Cache static content in browsers using HTTP
  • Use Load balancing
  • Optimize code
  • Smarter browser caching with ETag validation
  • Install SpeedPack and psyco – boosts rendering speed by 10-40% - Psycho will compile the slowest Zope functions

Talk 13: Case Study: A Major Medical Association – Ken Wasetis

  • I'm glad I don't have to worry about selling an implementation to a major company
  • CMF Content Panels for arranging portlets on a page

In General

  • The Plone Community is very open and friendly
  • The Plone Community has some very smart people in it
  • I learned quite a bit of other little tidbits from just listening to people talk about their project
  • It was a good trip

Re: Plone Conference Update

Posted by lizzardg at 2005-07-25 14:17
The moral of the story: Kyle does "mistype occasionally", but he "rarely misspells".

Re: Re: Plone Conference Update

Posted by kclarks at 2005-07-25 14:19
I wouldn't even say that I "rarely misspell"... I misspell very often. But, I don't misspell "lots"... I only misstype "lots."